From a3bb81f397018fbd0532b50c9cf2ea7af09bea96 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Sun, 8 Feb 2015 13:22:33 -0800 Subject: [PATCH 01/26] Check in some testing stuff. --- i/c/motes.h | 1 + n/m.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- v/term.c | 15 +++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/i/c/motes.h b/i/c/motes.h index 5c86c8e81..557c7c088 100644 --- a/i/c/motes.h +++ b/i/c/motes.h @@ -886,6 +886,7 @@ # define c3__scry c3_s4('s','c','r','y') # define c3__scsg c3_s4('s','c','s','g') # define c3__seal c3_s4('s','e','a','l') +# define c3__seat c3_s4('s','e','a','t') # define c3__see c3_s3('s','e','e') # define c3__seed c3_s4('s','e','e','d') # define c3__seek c3_s4('s','e','e','k') diff --git a/n/m.c b/n/m.c index 08a09326c..891f0518c 100644 --- a/n/m.c +++ b/n/m.c @@ -188,6 +188,47 @@ _cm_signal_reset(void) u3R->kid_u = 0; } +/* _cm_stack_recover(): recover stack trace, with lacunae. +*/ +static u3_noun +_cm_stack_recover(u3a_road* rod_u) +{ + c3_w len_w; + + len_w = 0; + { + u3_noun tax = rod_u->bug.tax; + + while ( tax ) { + len_w++; + tax = u3t(tax); + } + + if ( len_w < 4096 ) { + return u3a_take(rod_u->bug.tax); + } + else { + u3_noun beg, fin; + c3_w i_w; + + tax = rod_u->bug.tax; + beg = u3_nul; + for ( i_w = 0; i_w < 2048; i_w++ ) { + beg = u3nc(u3a_take(u3h(tax)), beg); + tax = u3t(tax); + } + beg = u3kb_flop(beg); + + for ( i_w = 0; i_w < (len_w - 4096); i_w++ ) { + tax = u3t(tax); + } + fin = u3nc(u3nc(c3__lose, c3__over), u3a_take(tax)); + + return u3kb_weld(beg, fin); + } + } +} + /* _cm_signal_recover(): recover from a deep signal, after longjmp. Free arg. */ static u3_noun @@ -235,9 +276,13 @@ _cm_signal_recover(c3_l sig_l, u3_noun arg) u3R = &(u3H->rod_u); rod_u = u3R; - + while ( rod_u->kid_u ) { - tax = u3kb_weld(u3a_take(rod_u->kid_u->bug.tax), tax); +#if 0 + fprintf(stderr, "collecting %d frames\r\n", + u3kb_lent(rod_u->kid_u->bug.tax)); +#endif + tax = u3kb_weld(_cm_stack_recover(rod_u->kid_u), tax); rod_u = rod_u->kid_u; } } diff --git a/v/term.c b/v/term.c index 8114e165c..83abf0cc1 100644 --- a/v/term.c +++ b/v/term.c @@ -306,6 +306,7 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); u3z(pax); } @@ -668,6 +669,17 @@ _term_it_save(u3_noun pax, u3_noun pad) free(pax_c); } +/* _term_io_flow(): send flow. +*/ +static void +_term_io_flow(u3_utty* uty_u) +{ + u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); + u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); + + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); +} + /* _term_io_belt(): send belt. */ static void @@ -818,6 +830,9 @@ _term_io_suck_char(u3_utty* uty_u, c3_y cay_y) else if ( 13 == cay_y ) { _term_io_belt(uty_u, u3nc(c3__ret, u3_nul)); } + else if ( 6 == cay_y ) { + _term_io_flow(uty_u); // XX hack + } else if ( cay_y <= 26 ) { _term_io_belt(uty_u, u3nc(c3__ctl, ('a' + (cay_y - 1)))); } From 045f862a84002942558da5da0e6dc1204e7fe0cc Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Mon, 9 Feb 2015 12:40:44 -0800 Subject: [PATCH 02/26] Full test pathway. --- v/term.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v/term.c b/v/term.c index 83abf0cc1..c4faee708 100644 --- a/v/term.c +++ b/v/term.c @@ -677,7 +677,7 @@ _term_io_flow(u3_utty* uty_u) u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__galk, u3_nul)); } /* _term_io_belt(): send belt. From 2c80dd529703f47493b774c7f6031bab705c858d Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Wed, 11 Feb 2015 18:57:33 -0800 Subject: [PATCH 03/26] Reverse i search --- i/c/motes.h | 1 + v/term.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/i/c/motes.h b/i/c/motes.h index 557c7c088..c1abcf8b6 100644 --- a/i/c/motes.h +++ b/i/c/motes.h @@ -412,6 +412,7 @@ # define c3__gab c3_s3('g','a','b') # define c3__galb c3_s4('g','a','l','b') # define c3__gald c3_s4('g','a','l','d') +# define c3__galk c3_s4('g','a','l','k') # define c3__game c3_s4('g','a','m','e') # define c3__gamp c3_s4('g','a','m','p') # define c3__gant c3_s4('g','a','n','t') diff --git a/v/term.c b/v/term.c index c4faee708..6d01d6cce 100644 --- a/v/term.c +++ b/v/term.c @@ -306,7 +306,7 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__galk, u3_nul)); u3z(pax); } From 4f0a620972a3a317db5bcceb8ddc3c4968639f48 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Fri, 13 Feb 2015 16:37:40 -0800 Subject: [PATCH 04/26] Various fixes and improvements. --- v/term.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v/term.c b/v/term.c index 6d01d6cce..83abf0cc1 100644 --- a/v/term.c +++ b/v/term.c @@ -306,7 +306,7 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__galk, u3_nul)); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); u3z(pax); } @@ -677,7 +677,7 @@ _term_io_flow(u3_utty* uty_u) u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__galk, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); } /* _term_io_belt(): send belt. From 95fbf2915bd3a6b805c16a300151fe1c1343abb2 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Tue, 17 Feb 2015 19:30:53 -0800 Subject: [PATCH 05/26] Before experiment in reversing arvo moves. --- i/c/motes.h | 1 + v/term.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/i/c/motes.h b/i/c/motes.h index c1abcf8b6..9339fe5f4 100644 --- a/i/c/motes.h +++ b/i/c/motes.h @@ -300,6 +300,7 @@ # define c3__do c3_s2('d','o') # define c3__doc c3_s3('d','o','c') # define c3__dogo c3_s4('d','o','g','o') +# define c3__dojo c3_s4('d','o','j','o') # define c3__dome c3_s4('d','o','m','e') # define c3__done c3_s4('d','o','n','e') # define c3__door c3_s4('d','o','o','r') diff --git a/v/term.c b/v/term.c index 83abf0cc1..7bf1f4c19 100644 --- a/v/term.c +++ b/v/term.c @@ -677,7 +677,9 @@ _term_io_flow(u3_utty* uty_u) u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); } /* _term_io_belt(): send belt. From 37cbb041c919b56c50ab0524a8d2e85843bc91ce Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Thu, 19 Feb 2015 19:55:18 -0800 Subject: [PATCH 06/26] Fixed ford ot anchor at current main revision, not time --- n/t.c | 20 ++++++++++++++++++++ v/raft.c | 5 ++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/n/t.c b/n/t.c index 84eb5858b..766a5a77e 100644 --- a/n/t.c +++ b/n/t.c @@ -42,6 +42,26 @@ u3_lo_tank(c3_l tab_l, u3_noun tac); void u3t_slog(u3_noun hod) { + #ifdef GHETTO + + static int old; + static struct timeval b4, f2, d0; + c3_w ms_w; + + if ( old ) { + gettimeofday(&f2, 0); + timersub(&f2, &b4, &d0); + ms_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); + if(ms_w > 10){ + printf("%3d.%dms ", ms_w, (d0.tv_usec % 1000) / 10); + gettimeofday(&b4, 0); + } + } + else gettimeofday(&b4, 0); + + old = 1; + + #endif if ( c3y == u3du(hod) ) { u3_noun pri = u3h(hod); diff --git a/v/raft.c b/v/raft.c index 852c02e68..1c474e764 100644 --- a/v/raft.c +++ b/v/raft.c @@ -1573,11 +1573,14 @@ _raft_punk(u3_noun ovo) #ifdef GHETTO c3_w ms_w; + c3_w clr_w; gettimeofday(&f2, 0); timersub(&f2, &b4, &d0); ms_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); - uL(fprintf(uH, "%%punk %s %d.%dms\n", txt_c, ms_w, (d0.tv_usec % 1000) / 10)); + clr_w = ms_w > 1000 ? 1 : ms_w < 100 ? 2 : 3; // red, green, yellow + uL(fprintf(uH, "\x1b[3%dm%%punk %s %d.%dms\x1b[0m\n", + clr_w, txt_c, ms_w, (d0.tv_usec % 1000) / 10)); free(txt_c); #endif From aa1cfca2dd8bbaf93386ee8985965e5ac701449a Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Thu, 19 Feb 2015 21:27:23 -0800 Subject: [PATCH 07/26] dbg wip --- Makefile | 9 +++++---- n/t.c | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index e1e95c43c..02406c819 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,15 @@ # A simple makefile. # -# Pick one of: -# linux -# osx - default: all -include make.conf CORE=.MAKEFILE-VERSION +# Pick one of: +# linux +# osx + UNAME=$(shell uname) ifeq ($(UNAME),Darwin) OS=osx @@ -65,6 +65,7 @@ MDEFINES=-DU3_OS_$(OS) -DU3_OS_ENDIAN_$(ENDIAN) -D U3_LIB=\"$(LIB)\" # NOTFORCHECKIN - restore -O3 CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math \ + -DGHETTO \ -funsigned-char \ -I/usr/local/include \ -I/opt/local/include \ diff --git a/n/t.c b/n/t.c index ec2d0cd87..408546a97 100644 --- a/n/t.c +++ b/n/t.c @@ -52,8 +52,8 @@ u3t_slog(u3_noun hod) gettimeofday(&f2, 0); timersub(&f2, &b4, &d0); ms_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); - if(ms_w > 10){ - printf("%3d.%dms ", ms_w, (d0.tv_usec % 1000) / 10); + if(ms_w > 10 || 1){ + printf("%3d.%02dms ", ms_w, (d0.tv_usec % 1000) / 10); gettimeofday(&b4, 0); } } From 9ff256099c7866241d914a36008a4de1122d2111 Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Fri, 20 Feb 2015 13:42:57 -0800 Subject: [PATCH 08/26] Cached %bake --- v/raft.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/v/raft.c b/v/raft.c index 1c474e764..77964b532 100644 --- a/v/raft.c +++ b/v/raft.c @@ -1566,7 +1566,9 @@ _raft_punk(u3_noun ovo) #ifdef GHETTO struct timeval b4, f2, d0; gettimeofday(&b4, 0); - uL(fprintf(uH, "%%soft %s\n", txt_c)); + if( c3__belt != u3h(u3t(ovo)) ){ + uL(fprintf(uH, "%%soft %s\n", txt_c)); + } #endif gon = u3m_soft(sec_w, u3v_poke, u3k(ovo)); @@ -1579,8 +1581,10 @@ _raft_punk(u3_noun ovo) timersub(&f2, &b4, &d0); ms_w = (d0.tv_sec * 1000) + (d0.tv_usec / 1000); clr_w = ms_w > 1000 ? 1 : ms_w < 100 ? 2 : 3; // red, green, yellow - uL(fprintf(uH, "\x1b[3%dm%%punk %s %d.%dms\x1b[0m\n", - clr_w, txt_c, ms_w, (d0.tv_usec % 1000) / 10)); + if(c3__belt != u3h(u3t(ovo)) || clr_w != 2){ + uL(fprintf(uH, "\x1b[3%dm%%punk %s %d.%dms\x1b[0m\n", + clr_w, txt_c, ms_w, (d0.tv_usec % 1000) / 10)); + } free(txt_c); #endif From 479311153d22fb69ff2a84ec7e2f9f7b623c5da4 Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Fri, 20 Feb 2015 13:50:30 -0800 Subject: [PATCH 09/26] de-DGHETTO --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 02406c819..ca52e8a1d 100644 --- a/Makefile +++ b/Makefile @@ -65,7 +65,6 @@ MDEFINES=-DU3_OS_$(OS) -DU3_OS_ENDIAN_$(ENDIAN) -D U3_LIB=\"$(LIB)\" # NOTFORCHECKIN - restore -O3 CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math \ - -DGHETTO \ -funsigned-char \ -I/usr/local/include \ -I/opt/local/include \ From 597cfd11caa2b48cce473abd77be05294b2b0368 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Tue, 24 Feb 2015 14:53:31 -0800 Subject: [PATCH 10/26] Barnaby, almost working. --- i/c/motes.h | 1 + v/term.c | 1 + 2 files changed, 2 insertions(+) diff --git a/i/c/motes.h b/i/c/motes.h index 9339fe5f4..49c0c22c9 100644 --- a/i/c/motes.h +++ b/i/c/motes.h @@ -479,6 +479,7 @@ # define c3__head c3_s4('h','e','a','d') # define c3__heal c3_s4('h','e','a','l') # define c3__hear c3_s4('h','e','a','r') +# define c3__helm c3_s4('h','e','l','m') # define c3__helo c3_s4('h','e','l','o') # define c3__hep c3_s3('h','e','p') # define c3__hept c3_s4('h','e','p','t') diff --git a/v/term.c b/v/term.c index 056740ec8..9eb4b9c88 100644 --- a/v/term.c +++ b/v/term.c @@ -679,6 +679,7 @@ _term_io_flow(u3_utty* uty_u) // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); } /* _term_io_belt(): send belt. From 21e3a0aee88bcf04b94a64b1cb6389d5280b9031 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Tue, 24 Feb 2015 15:31:58 -0800 Subject: [PATCH 11/26] Recover a BUNCH of old stuff from a stash. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e1e95c43c..813d76c17 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ INCLUDE=i MDEFINES=-DU3_OS_$(OS) -DU3_OS_ENDIAN_$(ENDIAN) -D U3_LIB=\"$(LIB)\" # NOTFORCHECKIN - restore -O3 -CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math \ +CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math -DGHETTO \ -funsigned-char \ -I/usr/local/include \ -I/opt/local/include \ From 34431f53e9de62a95aa8143f740f7ab018aae3b8 Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Tue, 24 Feb 2015 18:08:20 -0800 Subject: [PATCH 12/26] BTC base58check @uc odour v1 --- i/j/q.h | 1 + i/j/w.h | 1 + j/e/shax.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ j/tree.c | 2 ++ 4 files changed, 65 insertions(+) diff --git a/i/j/q.h b/i/j/q.h index 5134f6dd0..9d490f6d2 100644 --- a/i/j/q.h +++ b/i/j/q.h @@ -94,6 +94,7 @@ u3_noun u3qea_en(u3_atom, u3_atom); u3_noun u3qe_shax(u3_atom); + u3_noun u3qe_shay(u3_atom, u3_atom); u3_noun u3qe_shas(u3_atom, u3_atom); u3_noun u3qe_shal(u3_atom, u3_atom); diff --git a/i/j/w.h b/i/j/w.h index 4699545e0..615f237c9 100644 --- a/i/j/w.h +++ b/i/j/w.h @@ -106,6 +106,7 @@ u3_noun u3wea_en(u3_noun); u3_noun u3we_shax(u3_noun); + u3_noun u3we_shay(u3_noun); u3_noun u3we_shas(u3_noun); u3_noun u3we_shal(u3_noun); diff --git a/j/e/shax.c b/j/e/shax.c index 6c5e78b99..d2896ddba 100644 --- a/j/e/shax.c +++ b/j/e/shax.c @@ -12,7 +12,44 @@ /* functions */ + u3_noun + u3qe_shay(u3_atom a, + u3_atom b) + { + c3_assert(_(u3a_is_cat(a))); + c3_y* fat_y = c3_malloc(a + 1); + + u3r_bytes(0, a, fat_y, b); + { + c3_y dig_y[32]; +#if defined(U3_OS_osx) + CC_SHA256_CTX ctx_h; + + CC_SHA256_Init(&ctx_h); + CC_SHA256_Update(&ctx_h, fat_y, a); + CC_SHA256_Final(dig_y, &ctx_h); +#else + SHA256_CTX ctx_h; + + SHA256_Init(&ctx_h); + SHA256_Update(&ctx_h, fat_y, a); + SHA256_Final(dig_y, &ctx_h); +#endif + free(fat_y); + return u3i_bytes(32, dig_y); + } + } + +// u3_noun +// u3qe_shax( +// u3_atom a) +// { +// c3_w met_w = u3r_met(3, a); +// return u3qe_shay(met_w, a); +// } +// XX preformance +u3_noun u3qe_shax( u3_atom a) { @@ -40,6 +77,8 @@ } } +// XX end preformance + u3_noun u3qe_shal(u3_atom a, u3_atom b) @@ -95,6 +134,28 @@ } } + u3_noun + u3we_shay(u3_noun cor) + { + u3_noun a, b; + +// static int few = 0; +// if(few == 0) printf("foo\r\n"); +// few++; few %= 1000; + + + if ( (u3_none == (a = u3r_at(u3x_sam_2, cor))) || + (u3_none == (b = u3r_at(u3x_sam_3, cor))) || + (c3n == u3ud(a)) || + (c3n == u3a_is_cat(a)) || + (c3n == u3ud(b)) ) + { + return u3m_bail(c3__exit); + } else { + return u3qe_shay(a, b); + } + } + u3_noun u3we_shal(u3_noun cor) { diff --git a/j/tree.c b/j/tree.c index 253cd511d..1b612b73e 100644 --- a/j/tree.c +++ b/j/tree.c @@ -236,6 +236,7 @@ static u3j_harm _mood__hoon_plug_a[] = {{".2", u3we_plug}, {}}; static u3j_harm _mood__hoon_pose_a[] = {{".2", u3we_pose}, {}}; static u3j_harm _mood__hoon_sfix_a[] = {{".2", u3we_sfix}, {}}; static u3j_harm _mood__hoon_shax_a[] = {{".2", u3we_shax}, {}}; +static u3j_harm _mood__hoon_shay_a[] = {{".2", u3we_shay}, {}}; static u3j_harm _mood__hoon_shas_a[] = {{".2", u3we_shas}, {}}; static u3j_harm _mood__hoon_shal_a[] = {{".2", u3we_shal}, {}}; @@ -454,6 +455,7 @@ static u3j_core _mood__hoon_d[] = { "sfix", _mood__hoon_sfix_a }, { "shax", _mood__hoon_shax_a }, + { "shay", _mood__hoon_shay_a }, { "shas", _mood__hoon_shas_a }, { "shal", _mood__hoon_shal_a }, From a3a2ec226097ca92c54297ea759c460c25b24a83 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Wed, 25 Feb 2015 08:57:43 -0800 Subject: [PATCH 13/26] Basic dialog workings. --- Makefile | 2 +- v/term.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 813d76c17..e1e95c43c 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ INCLUDE=i MDEFINES=-DU3_OS_$(OS) -DU3_OS_ENDIAN_$(ENDIAN) -D U3_LIB=\"$(LIB)\" # NOTFORCHECKIN - restore -O3 -CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math -DGHETTO \ +CFLAGS= $(COSFLAGS) -O3 -msse3 -ffast-math \ -funsigned-char \ -I/usr/local/include \ -I/opt/local/include \ diff --git a/v/term.c b/v/term.c index 9eb4b9c88..e15e8d26e 100644 --- a/v/term.c +++ b/v/term.c @@ -678,8 +678,8 @@ _term_io_flow(u3_utty* uty_u) // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); - // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); + // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); } /* _term_io_belt(): send belt. From 4eefaeb9539f9197f8ff38f1bc78bb564c7e40d2 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Thu, 5 Mar 2015 13:25:08 -0800 Subject: [PATCH 14/26] Start dojo. --- v/term.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v/term.c b/v/term.c index e15e8d26e..9eb4b9c88 100644 --- a/v/term.c +++ b/v/term.c @@ -678,8 +678,8 @@ _term_io_flow(u3_utty* uty_u) // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); - // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); } /* _term_io_belt(): send belt. From d11b55c8791d5275a602d3328410476274137704 Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Fri, 6 Mar 2015 17:15:51 -0800 Subject: [PATCH 15/26] %- stack trace annotation --- j/f/ap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/j/f/ap.c b/j/f/ap.c index cd2c796e0..566c7a306 100644 --- a/j/f/ap.c +++ b/j/f/ap.c @@ -403,6 +403,7 @@ u3k(p_gen), u3k(q_gen))); } +#if 0 _open_do_pq(cncl) // %: { return u3nq @@ -411,6 +412,7 @@ u3k(p_gen), u3k(q_gen)); } +#endif _open_do_pq(cndt) // %. { return u3nt @@ -816,7 +818,7 @@ _open_p (cltr); _open_p (clsg); _open_pq (cncb); - _open_pq (cncl); + // _open_pq (cncl); _open_pq (cndt); _open_pqrs(cnkt); _open_pq (cnhp); From a1a6cc8ad310f53925b33488a2ff4512c869c2c0 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Tue, 17 Mar 2015 10:56:54 -0700 Subject: [PATCH 16/26] Right before pill switch from dull to dill. --- v/term.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v/term.c b/v/term.c index 21b28bd6a..fc99e0c11 100644 --- a/v/term.c +++ b/v/term.c @@ -305,7 +305,7 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3z(pax); } From f98eeda22854822426cb79d941390d5a3a8897f0 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Tue, 17 Mar 2015 13:53:38 -0700 Subject: [PATCH 17/26] Adjust dill for forward compatibility. --- v/term.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/v/term.c b/v/term.c index fc99e0c11..bed9c1c43 100644 --- a/v/term.c +++ b/v/term.c @@ -303,9 +303,9 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) { u3_noun tid = u3dc("scot", c3__ud, tty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3z(pax); } @@ -1016,6 +1016,7 @@ u3_term_ef_boil(void) u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); // u3v_plan(u3k(pax), u3nc(c3__init, u3k(u3h(u3A->own)))); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__harm, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); @@ -1032,6 +1033,7 @@ u3_term_ef_bake(u3_noun fav) u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(u3k(pax), u3nc(c3__boot, fav)); + u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); From 6257937fccacc51a0dc88bec23b155b64ca4e368 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Wed, 18 Mar 2015 09:40:40 -0700 Subject: [PATCH 18/26] Various fixes and improvements. --- v/reck.c | 2 +- v/term.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/v/reck.c b/v/reck.c index 32366d8a7..64289d422 100644 --- a/v/reck.c +++ b/v/reck.c @@ -104,7 +104,7 @@ _reck_kick_term(u3_noun pox, c3_l tid_l, u3_noun fav) u3_unix_ef_init(u3k(p_fav)); - // uL(fprintf(uH, "kick: init: %d\n", p_fav)); + uL(fprintf(uH, "kick: init: %d\n", p_fav)); u3z(pox); u3z(fav); return c3y; } break; } diff --git a/v/term.c b/v/term.c index bed9c1c43..f68998979 100644 --- a/v/term.c +++ b/v/term.c @@ -1016,7 +1016,6 @@ u3_term_ef_boil(void) u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); // u3v_plan(u3k(pax), u3nc(c3__init, u3k(u3h(u3A->own)))); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__harm, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); From 5732f8bd1afccdf9d5f525fbd15689fa640eb5a9 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Wed, 18 Mar 2015 15:01:47 -0700 Subject: [PATCH 19/26] :begin on cruiser works. --- v/term.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/v/term.c b/v/term.c index f68998979..387e01782 100644 --- a/v/term.c +++ b/v/term.c @@ -303,7 +303,7 @@ _term_listen_cb(uv_stream_t *wax_u, int sas_i) { u3_noun tid = u3dc("scot", c3__ud, tty_u->tid_l); u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + // u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3nc(80, 25))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); u3z(pax); @@ -673,12 +673,12 @@ _term_it_save(u3_noun pax, u3_noun pad) static void _term_io_flow(u3_utty* uty_u) { - u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); - u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); + // u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); + // u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); - u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); } @@ -1032,7 +1032,7 @@ u3_term_ef_bake(u3_noun fav) u3_noun pax = u3nq(u3_blip, c3__term, '1', u3_nul); u3v_plan(u3k(pax), u3nc(c3__boot, fav)); - u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); + // u3v_plan(u3k(pax), u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); u3v_plan(u3k(pax), u3nc(c3__blew, u3_term_get_blew(1))); u3v_plan(u3k(pax), u3nc(c3__hail, u3_nul)); From 0308c9a00a40114a902a84a40fb433b2c6f91db5 Mon Sep 17 00:00:00 2001 From: Steven Dee Date: Wed, 18 Mar 2015 18:48:29 -0400 Subject: [PATCH 20/26] Use getentropy(2) on OpenBSD --- i/c/portable.h | 9 +++++++++ i/v/vere.h | 5 +++++ v/sist.c | 12 ++++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/i/c/portable.h b/i/c/portable.h index 30381ced1..4cbf0a3c7 100644 --- a/i/c/portable.h +++ b/i/c/portable.h @@ -178,3 +178,12 @@ # else # error "port: timeconvert" # endif + +/* Entropy + */ +# if defined(U3_OS_bsd) && defined(__OpenBSD__) +# define c3_rand(rd) (getentropy((void*)rd, 32) == 0 ? \ + (void)0 : c3_assert(!"ent")) +# else +# define c3_rand u3_sist_rand +# endif diff --git a/i/v/vere.h b/i/v/vere.h index e4ebb4e12..6e6868031 100644 --- a/i/v/vere.h +++ b/i/v/vere.h @@ -1094,6 +1094,11 @@ void u3_sist_get(const c3_c* key_c, c3_y* val_y); + /* u3_sist_rand(): fill 8 words (32 bytes) with high-quality entropy. + */ + void + u3_sist_rand(c3_w* rad_w); + /** New timer system. **/ /* u3_temp_io_init(): initialize time timer. diff --git a/v/sist.c b/v/sist.c index b3655f5ff..7013d05b5 100644 --- a/v/sist.c +++ b/v/sist.c @@ -444,10 +444,10 @@ _sist_bask(c3_c* pop_c, u3_noun may) } #endif -/* _sist_rand(): fill a 256-bit (8-word) buffer. +/* u3_sist_rand(): fill a 256-bit (8-word) buffer. */ -static void -_sist_rand(c3_w* rad_w) +void +u3_sist_rand(c3_w* rad_w) { c3_i fid_i = open(DEVRANDOM, O_RDONLY); @@ -589,7 +589,7 @@ _sist_zest() { c3_w rad_w[8]; - _sist_rand(rad_w); + c3_rand(rad_w); sal_l = (0x7fffffff & rad_w[0]); } @@ -599,7 +599,7 @@ _sist_zest() c3_w rad_w[8]; u3_noun pas; - _sist_rand(rad_w); + c3_rand(rad_w); pas = u3i_words(2, rad_w); u3A->key = _sist_fatt(sal_l, u3k(pas)); @@ -1201,7 +1201,7 @@ _sist_zen() { c3_w rad_w[8]; - _sist_rand(rad_w); + c3_rand(rad_w); return u3i_words(8, rad_w); } From 330dd3da35932881e3ac6a4b8036b7852c84115c Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Fri, 20 Mar 2015 11:31:02 -0700 Subject: [PATCH 21/26] About to work :talk into the command line mix. --- v/term.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v/term.c b/v/term.c index 387e01782..ecd33d705 100644 --- a/v/term.c +++ b/v/term.c @@ -673,10 +673,10 @@ _term_it_save(u3_noun pax, u3_noun pad) static void _term_io_flow(u3_utty* uty_u) { - // u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); - // u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); + u3_noun tid = u3dc("scot", c3__ud, uty_u->tid_l); + u3_noun pax = u3nq(u3_blip, c3__term, tid, u3_nul); - // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); + u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__talk, u3_nul)); // u3v_plan(pax, u3nt(c3__flow, c3__seat, u3_nul)); // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__dojo, u3_nul)); // u3v_plan(pax, u3nq(c3__flow, c3__seat, c3__helm, u3_nul)); From 45d60e75de320ab4ec544532603f54a7784b58b1 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Sun, 22 Mar 2015 21:37:01 -0700 Subject: [PATCH 22/26] Fix up :seat a bunch. --- v/reck.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v/reck.c b/v/reck.c index 64289d422..32366d8a7 100644 --- a/v/reck.c +++ b/v/reck.c @@ -104,7 +104,7 @@ _reck_kick_term(u3_noun pox, c3_l tid_l, u3_noun fav) u3_unix_ef_init(u3k(p_fav)); - uL(fprintf(uH, "kick: init: %d\n", p_fav)); + // uL(fprintf(uH, "kick: init: %d\n", p_fav)); u3z(pox); u3z(fav); return c3y; } break; } From a500899603499ad4317d2866b8ca32b730c1041e Mon Sep 17 00:00:00 2001 From: TJamesCorcoran Date: Thu, 26 Mar 2015 14:32:56 -0400 Subject: [PATCH 23/26] modeline bar better --- extras/hoon-mode.el/hoon-mode.el | 75 ++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/extras/hoon-mode.el/hoon-mode.el b/extras/hoon-mode.el/hoon-mode.el index b4ecd074a..aab6d0568 100644 --- a/extras/hoon-mode.el/hoon-mode.el +++ b/extras/hoon-mode.el/hoon-mode.el @@ -1,9 +1,14 @@ ;;; hoon-mode.el --- Major mode for editing hoon files for urbit -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 20014 -2015 Free Software Foundation, Inc. -;; Author: Adam Bliss -;; Keywords: extensions +;; Author: +;; * Adam Bliss https://github.com/abliss +;; Contributors: +;; * N Gvrnd https://github.com/ngvrnd +;; * TJamesCorcoran https://github.com/TJamesCorcoran +;; +;; Keywords: extensions, hoon, nock, urbit, neoreaction, Mars ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -25,6 +30,7 @@ ;; This is my first Major Mode, so don't expect much. It's heavily based on ;; SampleMode from the emacs wiki. + ;;; Code: (defvar hoon-mode-hook nil) @@ -37,6 +43,7 @@ ;;;###autoload (add-to-list 'auto-mode-alist '("\\.hoon$" . hoon-mode)) +(add-to-list 'auto-mode-alist '("\\.hook$" . hoon-mode)) (defvar hoon-mode-syntax-table (let ((st (make-syntax-table lisp-mode-syntax-table))) @@ -95,5 +102,67 @@ 0) ;;TODO + +;;---------- +;; hack the mode line +;;---------- + +; In the urbit webserver a directory is basically a resource fork, +; and contains a single file, always named "hymn.hook". Emacs' +; default buffer-naming will, of course, name this hymn.hook. +; +; But if you are visitng two files, 5/hymn.hook and 6/hymn.hook, they +; will both appear the same on the mode line. +; +; This sucks, and we'd rather have them appear as "5/hymn.hook" and "6/hymn.hook". +; +; Trivial, right? No. + +; The mode line is an interesting beast. +; 1) it's defined in two variables: +; * mode-line-format, which includes in turn the variable... +; * mode-line-buffer-identification +; 2) both of these include "magic" string components which +; constitute a micro-DSL (domain specific language), which includes tags like +; '%b', indicating that the buffer-name should be substituted in +; (see emacs variable docs for 'mode-line-format') +; 3) this magic DSL is evaluated by lisp funcs that are written in C +; and thus which can not be monkey-patched +; https://www.gnu.org/software/emacs/manual/html_node/elisp/Primitive-Function-Type.html +; translation: "do not sharpen chainsaw while it is running" +; 4) the commands that are executed when the DSL is interpreted are likewise written in C +; +; The upshot is ... this: + +(defvar hoon-buffer-string "") +(make-variable-buffer-local 'hoon-buffer-string) + +(defun hoon-mode-hack-the-modeline () + (setq mode-line-format + '("%e" + mode-line-front-space + mode-line-mule-info + mode-line-client + mode-line-modified + mode-line-remote + mode-line-frame-identification + hoon-buffer-string + " " + mode-line-position + (vc-mode vc-mode) + " " + mode-line-modes + mode-line-misc-info + mode-line-end-spaces)) + (setq hoon-buffer-string + (concat + (nth 1 (reverse (split-string (file-name-directory (buffer-file-name)) "/"))) + "/" + (file-name-nondirectory (buffer-file-name))))) + +(add-hook 'hoon-mode-hook 'hoon-mode-hack-the-modeline) + + + (provide 'hoon-mode) ;;; hoon.el ends here From b5343f227bf8760bd888cbb5c20e1bb22831c3f2 Mon Sep 17 00:00:00 2001 From: Steven Dee Date: Fri, 27 Mar 2015 12:14:23 -0400 Subject: [PATCH 24/26] Overflow detection in u3a_calloc This implementation assumes that u3a_calloc is always called with safe sizes and just asserts that. --- n/a.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/n/a.c b/n/a.c index 798966168..caaf501b2 100644 --- a/n/a.c +++ b/n/a.c @@ -522,7 +522,10 @@ void* u3a_calloc(size_t num_i, size_t len_i) { size_t byt_i = num_i * len_i; - c3_w* out_w = u3a_malloc(byt_i); + c3_w* out_w; + + c3_assert(byt_i / len_i == num_i); + out_w = u3a_malloc(byt_i); memset(out_w, 0, byt_i); return out_w; From 27a0e0e1dce000822485264a0f6c2562ec82e18e Mon Sep 17 00:00:00 2001 From: TJamesCorcoran Date: Fri, 27 Mar 2015 14:03:03 -0400 Subject: [PATCH 25/26] smarter way to accomplish the verbosity on the mode line: rename-buffer --- extras/hoon-mode.el/hoon-mode.el | 49 +++++++++++++++++++------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/extras/hoon-mode.el/hoon-mode.el b/extras/hoon-mode.el/hoon-mode.el index aab6d0568..a0970c689 100644 --- a/extras/hoon-mode.el/hoon-mode.el +++ b/extras/hoon-mode.el/hoon-mode.el @@ -132,33 +132,44 @@ ; translation: "do not sharpen chainsaw while it is running" ; 4) the commands that are executed when the DSL is interpreted are likewise written in C ; -; The upshot is ... this: +; The upshot is... +; +; WAIT. A better way exists. Instead of hacking the mode-line format, +; just invoke 'rename-buffer, which also lives down in the C +; underbelly. Everything falls out nicely. (defvar hoon-buffer-string "") (make-variable-buffer-local 'hoon-buffer-string) (defun hoon-mode-hack-the-modeline () - (setq mode-line-format - '("%e" - mode-line-front-space - mode-line-mule-info - mode-line-client - mode-line-modified - mode-line-remote - mode-line-frame-identification - hoon-buffer-string - " " - mode-line-position - (vc-mode vc-mode) - " " - mode-line-modes - mode-line-misc-info - mode-line-end-spaces)) - (setq hoon-buffer-string + ;; (setq mode-line-format + ;; '("%e" + ;; mode-line-front-space + ;; mode-line-mule-info + ;; mode-line-client + ;; mode-line-modified + ;; mode-line-remote + ;; mode-line-frame-identification + ;; hoon-buffer-string + ;; " " + ;; mode-line-position + ;; (vc-mode vc-mode) + ;; " " + ;; mode-line-modes + ;; mode-line-misc-info + ;; mode-line-end-spaces)) + ;; (setq hoon-buffer-string + ;; (concat + ;; (nth 1 (reverse (split-string (file-name-directory (buffer-file-name)) "/"))) + ;; "/" + ;; (file-name-nondirectory (buffer-file-name)))) + + (rename-buffer (concat (nth 1 (reverse (split-string (file-name-directory (buffer-file-name)) "/"))) "/" - (file-name-nondirectory (buffer-file-name))))) + (file-name-nondirectory (buffer-file-name)))) +) (add-hook 'hoon-mode-hook 'hoon-mode-hack-the-modeline) From 5802a4e52d52a117cb1cd91905d6cfe03160e181 Mon Sep 17 00:00:00 2001 From: "C. Guy Yarvin" Date: Wed, 1 Apr 2015 13:56:43 -0700 Subject: [PATCH 26/26] Various fixes and improvements. --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 2c4b0d377..cf1a8ea5a 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ # default: all --include make.conf +-include .make.conf CORE=.MAKEFILE-VERSION @@ -351,12 +351,12 @@ LIBCOMMONMARK=outside/commonmark/build/src/libcmark.a all: vere -.MAKEFILE-VERSION: Makefile make.conf +.MAKEFILE-VERSION: Makefile .make.conf @echo "Makefile update." @touch .MAKEFILE-VERSION -make.conf: - @echo "# Set custom configuration here, please!" > "make.conf" +.make.conf: + @echo "# Set custom configuration here, please!" > ".make.conf" vere: $(BIN)/vere meme: $(BIN)/meme