Merge remote-tracking branch 'origin/test'

Conflicts:
	urb/urbit.pill
This commit is contained in:
Philip C Monk 2015-07-13 16:09:26 -04:00
commit 07d129a3c9
203 changed files with 586 additions and 251 deletions

0
.d/v/.gitignore vendored
View File

322
Makefile
View File

@ -67,7 +67,7 @@ else
LIBS=-lssl -lcrypto -lgmp -lncurses -lsigsegv $(OSLIBS)
endif
INCLUDE=i
INCLUDE=include
MDEFINES=-DU3_OS_$(OS) -DU3_OS_ENDIAN_$(ENDIAN) -D U3_LIB=\"$(LIB)\"
# NOTFORCHECKIN - restore -O3
@ -113,165 +113,169 @@ else
endif
N_OFILES=\
n/a.o \
n/e.o \
n/h.o \
n/i.o \
n/j.o \
n/m.o \
n/n.o \
n/r.o \
n/t.o \
n/x.o \
n/v.o \
n/z.o
noun/allocate.o \
noun/events.o \
noun/hashtable.o \
noun/imprison.o \
noun/jets.o \
noun/manage.o \
noun/nock.o \
noun/retrieve.o \
noun/trace.o \
noun/xtract.o \
noun/vortex.o \
noun/zave.o
J_A_OFILES=\
j/a/add.o \
j/a/dec.o \
j/a/div.o \
j/a/gte.o \
j/a/gth.o \
j/a/lte.o \
j/a/lth.o \
j/a/mod.o \
j/a/mul.o \
j/a/sub.o
jets/a/add.o \
jets/a/dec.o \
jets/a/div.o \
jets/a/gte.o \
jets/a/gth.o \
jets/a/lte.o \
jets/a/lth.o \
jets/a/mod.o \
jets/a/mul.o \
jets/a/sub.o
J_B_OFILES=\
j/b/bind.o \
j/b/clap.o \
j/b/drop.o \
j/b/flop.o \
j/b/lent.o \
j/b/levy.o \
j/b/lien.o \
j/b/need.o \
j/b/reel.o \
j/b/roll.o \
j/b/skim.o \
j/b/skip.o \
j/b/scag.o \
j/b/slag.o \
j/b/snag.o \
j/b/sort.o \
j/b/turn.o \
j/b/weld.o
jets/b/bind.o \
jets/b/clap.o \
jets/b/drop.o \
jets/b/flop.o \
jets/b/lent.o \
jets/b/levy.o \
jets/b/lien.o \
jets/b/need.o \
jets/b/reel.o \
jets/b/roll.o \
jets/b/skim.o \
jets/b/skip.o \
jets/b/scag.o \
jets/b/slag.o \
jets/b/snag.o \
jets/b/sort.o \
jets/b/turn.o \
jets/b/weld.o
J_C_OFILES=\
j/c/bex.o \
j/c/can.o \
j/c/cap.o \
j/c/cat.o \
j/c/con.o \
j/c/cut.o \
j/c/dor.o \
j/c/dis.o \
j/c/end.o \
j/c/gor.o \
j/c/hor.o \
j/c/lsh.o \
j/c/mas.o \
j/c/met.o \
j/c/mix.o \
j/c/mug.o \
j/c/peg.o \
j/c/po.o \
j/c/rap.o \
j/c/rip.o \
j/c/rsh.o \
j/c/vor.o
jets/c/bex.o \
jets/c/can.o \
jets/c/cap.o \
jets/c/cat.o \
jets/c/con.o \
jets/c/cut.o \
jets/c/dor.o \
jets/c/dis.o \
jets/c/end.o \
jets/c/gor.o \
jets/c/hor.o \
jets/c/lsh.o \
jets/c/mas.o \
jets/c/met.o \
jets/c/mix.o \
jets/c/mug.o \
jets/c/peg.o \
jets/c/po.o \
jets/c/rap.o \
jets/c/rip.o \
jets/c/rsh.o \
jets/c/vor.o
J_D_OFILES=\
j/d/in_has.o \
j/d/in_int.o \
j/d/in_gas.o \
j/d/in_mer.o \
j/d/in_put.o \
j/d/in_tap.o \
j/d/in_uni.o \
j/d/by_gas.o \
j/d/by_get.o \
j/d/by_has.o \
j/d/by_int.o \
j/d/by_put.o \
j/d/by_uni.o
jets/d/in_has.o \
jets/d/in_int.o \
jets/d/in_gas.o \
jets/d/in_mer.o \
jets/d/in_put.o \
jets/d/in_tap.o \
jets/d/in_uni.o \
jets/d/in_bif.o \
jets/d/in_dif.o \
jets/d/by_gas.o \
jets/d/by_get.o \
jets/d/by_has.o \
jets/d/by_int.o \
jets/d/by_put.o \
jets/d/by_uni.o \
jets/d/by_bif.o \
jets/d/by_dif.o
J_E_OFILES=\
j/e/aesc.o \
j/e/cue.o \
j/e/jam.o \
j/e/mat.o \
j/e/mink.o \
j/e/mule.o \
j/e/parse.o \
j/e/rd.o \
j/e/repg.o \
j/e/rexp.o \
j/e/rub.o \
j/e/scr.o \
j/e/shax.o \
j/e/lore.o \
j/e/loss.o \
j/e/trip.o
jets/e/aesc.o \
jets/e/cue.o \
jets/e/jam.o \
jets/e/mat.o \
jets/e/mink.o \
jets/e/mule.o \
jets/e/parse.o \
jets/e/rd.o \
jets/e/repg.o \
jets/e/rexp.o \
jets/e/rub.o \
jets/e/scr.o \
jets/e/shax.o \
jets/e/lore.o \
jets/e/loss.o \
jets/e/trip.o
J_E_OFILES_ED=\
j/e/ed_puck.o \
j/e/ed_sign.o \
j/e/ed_veri.o
jets/e/ed_puck.o \
jets/e/ed_sign.o \
jets/e/ed_veri.o
J_F_OFILES=\
j/f/al.o \
j/f/ap.o \
j/f/bull.o \
j/f/cell.o \
j/f/comb.o \
j/f/cons.o \
j/f/core.o \
j/f/cube.o \
j/f/face.o \
j/f/fitz.o \
j/f/flan.o \
j/f/flay.o \
j/f/flip.o \
j/f/flor.o \
j/f/fork.o \
j/f/hike.o \
j/f/look.o \
jets/f/al.o \
jets/f/ap.o \
jets/f/bull.o \
jets/f/cell.o \
jets/f/comb.o \
jets/f/cons.o \
jets/f/core.o \
jets/f/cube.o \
jets/f/face.o \
jets/f/fitz.o \
jets/f/flan.o \
jets/f/flay.o \
jets/f/flip.o \
jets/f/flor.o \
jets/f/fork.o \
jets/f/hike.o \
jets/f/look.o \
J_F_OFILES_UT=\
j/f/ut.o \
j/f/ut_burn.o \
j/f/ut_busk.o \
j/f/ut_bust.o \
j/f/ut_conk.o \
j/f/ut_crop.o \
j/f/ut_cull.o \
j/f/ut_find.o \
j/f/ut_fink.o \
j/f/ut_fire.o \
j/f/ut_firm.o \
j/f/ut_fish.o \
j/f/ut_fuse.o \
j/f/ut_gain.o \
j/f/ut_heal.o \
j/f/ut_lose.o \
j/f/ut_mint.o \
j/f/ut_mull.o \
j/f/ut_nest.o \
j/f/ut_park.o \
j/f/ut_peek.o \
j/f/ut_play.o \
j/f/ut_repo.o \
j/f/ut_rest.o \
j/f/ut_seek.o \
j/f/ut_swab.o \
j/f/ut_tack.o \
j/f/ut_tock.o \
j/f/ut_wrap.o
jets/f/ut.o \
jets/f/ut_burn.o \
jets/f/ut_busk.o \
jets/f/ut_bust.o \
jets/f/ut_conk.o \
jets/f/ut_crop.o \
jets/f/ut_cull.o \
jets/f/ut_find.o \
jets/f/ut_fink.o \
jets/f/ut_fire.o \
jets/f/ut_firm.o \
jets/f/ut_fish.o \
jets/f/ut_fuse.o \
jets/f/ut_gain.o \
jets/f/ut_heal.o \
jets/f/ut_lose.o \
jets/f/ut_mint.o \
jets/f/ut_mull.o \
jets/f/ut_nest.o \
jets/f/ut_park.o \
jets/f/ut_peek.o \
jets/f/ut_play.o \
jets/f/ut_repo.o \
jets/f/ut_rest.o \
jets/f/ut_seek.o \
jets/f/ut_swab.o \
jets/f/ut_tack.o \
jets/f/ut_tock.o \
jets/f/ut_wrap.o
J_G_OFILES=\
j/g/down.o
jets/g/down.o
J_OFILES=\
$(J_A_OFILES) \
@ -283,7 +287,7 @@ J_OFILES=\
$(J_F_OFILES) \
$(J_F_OFILES_UT) \
$(J_G_OFILES) \
j/tree.o
jets/tree.o
BASE_OFILES=$(N_OFILES) $(J_OFILES)
@ -294,25 +298,25 @@ OUT_OFILES=\
outside/jhttp/http_parser.o
V_OFILES=\
v/ames.o \
v/cttp.o \
v/http.o \
v/loop.o \
v/raft.o \
v/reck.o \
v/sist.o \
v/temp.o \
v/term.o \
v/time.o \
v/unix.o \
v/save.o \
v/walk.o
vere/ames.o \
vere/behn.o \
vere/cttp.o \
vere/http.o \
vere/loop.o \
vere/raft.o \
vere/reck.o \
vere/sist.o \
vere/term.o \
vere/time.o \
vere/unix.o \
vere/save.o \
vere/walk.o
MAIN_FILE =\
v/main.o
vere/main.o
MEME_FILE =\
w/test.o
tests/test.o
VERE_OFILES=\
$(CRE2_OFILES) \
@ -411,7 +415,7 @@ $(LIBSCRYPT):
$(CRE2_OFILES): outside/cre2/src/src/cre2.cpp outside/cre2/src/src/cre2.h $(LIBRE2)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(V_OFILES): i/v/vere.h
$(V_OFILES): include/vere/vere.h
ifdef NO_SILENT_RULES
$(BIN)/urbit: $(LIBCRE) $(LIBCOMMONMARK) $(VERE_OFILES) $(LIBUV) $(LIBRE2) $(LIBED25519) $(LIBANACHRONISM) $(LIBSCRYPT)

32
i/all.h
View File

@ -1,32 +0,0 @@
/* include/all.h
**
** This file is in the public domain.
*/
/** c3: C environment.
**/
# include "c/portable.h" // C and OS portability
# include "c/types.h" // c3 types
# include "c/defs.h" // c3 macros
# include "c/motes.h" // c3 constants
/** u3: noun environment.
**/
# include "n/u.h" // general u3
# include "n/a.h" // u3a: allocation
# include "n/e.h" // u3e: persistence
# include "n/h.h" // u3h: hashtables
# include "n/i.h" // u3i: noun construction
# include "n/j.h" // u3j: jet control
# include "n/m.h" // u3m: master state
# include "n/n.h" // u3n: nock execution
# include "n/o.h" // u3o: config options
# include "n/r.h" // u3r: noun access (error returns)
# include "n/t.h" // u3t: profiling / tracing
# include "n/x.h" // u3x: noun access (error crashes)
# include "n/v.h" // u3v: arvo kernel
# include "n/z.h" // u3z: memoization
# include "j/k.h" // u3k: jets (transfer, args)
# include "j/q.h" // u3q: jets (retain, args)
# include "j/w.h" // u3w: jets (retain, core)

32
include/all.h Normal file
View File

@ -0,0 +1,32 @@
/* include/all.h
**
** This file is in the public domain.
*/
/** c3: C environment.
**/
# include "c/portable.h" // C and OS portability
# include "c/types.h" // c3 types
# include "c/defs.h" // c3 macros
# include "c/motes.h" // c3 constants
/** u3: noun environment.
**/
# include "noun/aliases.h" // general u3
# include "noun/allocate.h" // u3a: allocation
# include "noun/events.h" // u3e: persistence
# include "noun/hashtable.h" // u3h: hashtables
# include "noun/imprison.h" // u3i: noun construction
# include "noun/jets.h" // u3j: jet control
# include "noun/manage.h" // u3m: master state
# include "noun/nock.h" // u3n: nock execution
# include "noun/options.h" // u3o: config options
# include "noun/retrieve.h" // u3r: noun access (error returns)
# include "noun/trace.h" // u3t: profiling / tracing
# include "noun/xtract.h" // u3x: noun access (error crashes)
# include "noun/vortex.h" // u3v: arvo kernel
# include "noun/zave.h" // u3z: memoization
# include "jets/k.h" // u3k: jets (transfer, args)
# include "jets/q.h" // u3q: jets (retain, args)
# include "jets/w.h" // u3w: jets (retain, core)

View File

@ -1019,7 +1019,6 @@
# define c3__teal c3_s4('t','e','a','l')
# define c3__teck c3_s4('t','e','c','k')
# define c3__tell c3_s4('t','e','l','l')
# define c3__temp c3_s4('t','e','m','p')
# define c3__terg c3_s4('t','e','r','g')
# define c3__term c3_s4('t','e','r','m')
# define c3__test c3_s4('t','e','s','t')

View File

@ -62,6 +62,8 @@
/** Tier 4.
**/
u3_noun u3qdb_bif(u3_noun, u3_noun);
u3_noun u3qdb_dif(u3_noun, u3_noun);
u3_noun u3qdb_gas(u3_noun, u3_noun);
u3_noun u3qdb_get(u3_noun, u3_noun);
u3_noun u3qdb_has(u3_noun, u3_noun);
@ -70,6 +72,8 @@
# define u3qdb_tap u3qdi_tap
u3_noun u3qdb_uni(u3_noun, u3_noun);
u3_noun u3qdi_bif(u3_noun, u3_noun);
u3_noun u3qdi_dif(u3_noun, u3_noun);
u3_noun u3qdi_gas(u3_noun, u3_noun);
u3_noun u3qdi_has(u3_noun, u3_noun);
u3_noun u3qdi_int(u3_noun, u3_noun);

View File

@ -67,6 +67,8 @@
/** Tier 4.
**/
u3_noun u3wdb_bif(u3_noun);
u3_noun u3wdb_dif(u3_noun);
u3_noun u3wdb_gas(u3_noun);
u3_noun u3wdb_get(u3_noun);
u3_noun u3wdb_has(u3_noun);
@ -75,6 +77,8 @@
# define u3wdb_tap u3wdi_tap
u3_noun u3wdb_uni(u3_noun);
u3_noun u3wdi_bif(u3_noun);
u3_noun u3wdi_dif(u3_noun);
u3_noun u3wdi_gas(u3_noun);
u3_noun u3wdi_has(u3_noun);
u3_noun u3wdi_int(u3_noun);

View File

@ -369,13 +369,13 @@
#endif
} u3_unix;
/* u3_temp: just a timer for ever
/* u3_behn: just a timer for ever
*/
typedef struct _u3_temp {
uv_timer_t tim_u; // temp timer
typedef struct _u3_behn {
uv_timer_t tim_u; // behn timer
c3_w run_w; // run of consecutive alarms
c3_o alm; // alarm
} u3_temp;
} u3_behn;
/* u2_utfo: unix terminfo strings.
*/
@ -558,7 +558,7 @@
u3_save sav_u; // autosave
u3_opts ops_u; // commandline options
u3_unix unx_u; // sync and clay
u3_temp teh_u; // temp timer
u3_behn teh_u; // behn timer
c3_o liv; // if u3_no, shut down
c3_i xit_i; // exit code for shutdown
void* ssl_u; // struct SSL_CTX*
@ -976,22 +976,22 @@
u3_unix_io_poll(void);
/** Temp, just a timer.
/** behn, just a timer.
**/
/* u2_temp_io_init(): initialize temp timer.
/* u2_behn_io_init(): initialize behn timer.
*/
void
u2_temp_io_init(void);
u2_behn_io_init(void);
/* u2_temp_io_exit(): terminate timer.
/* u2_behn_io_exit(): terminate timer.
*/
void
u2_temp_io_exit(void);
u2_behn_io_exit(void);
/* u2_temp_io_poll(): update temp IO state.
/* u2_behn_io_poll(): update behn IO state.
*/
void
u2_temp_io_poll(void);
u2_behn_io_poll(void);
/** HTTP server.
@ -1125,20 +1125,20 @@
/** New timer system.
**/
/* u3_temp_io_init(): initialize time timer.
/* u3_behn_io_init(): initialize time timer.
*/
void
u3_temp_io_init(void);
u3_behn_io_init(void);
/* u3_temp_io_exit(): terminate timer.
/* u3_behn_io_exit(): terminate timer.
*/
void
u3_temp_io_exit(void);
u3_behn_io_exit(void);
/* u3_temp_io_poll(): update temp IO state.
/* u3_behn_io_poll(): update behn IO state.
*/
void
u3_temp_io_poll(void);
u3_behn_io_poll(void);
/** HTTP client.

79
jets/d/by_bif.c Normal file
View File

@ -0,0 +1,79 @@
/* jets/d/by_bif.c
**
*/
#include "all.h"
/* internal functions
*/
u3_noun _b_bif_putroot(u3_noun a, u3_noun b)
{
if ( u3_nul == a) {
return u3nt(u3k(b), u3_nul, u3_nul);
}
else {
u3_noun n_a, l_a, r_a;
u3_noun p_n_a, q_n_a;
u3_noun p_b, q_b;
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a))
|| (c3n == u3r_cell(b, &p_b, &q_b))
|| (c3n == u3r_cell(n_a, &p_n_a, &q_n_a)) ) {
return u3m_bail(c3__exit);
}
else if ( c3y == u3r_sing(p_b, p_n_a) ) {
return u3nt(u3k(b), u3k(l_a), u3k(r_a));
}
else {
u3_noun c, n_c, l_c, r_c;
u3_noun d;
if ( c3y == u3qc_gor(p_b, p_n_a) ) {
c = _b_bif_putroot(l_a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nt(u3k(n_c),
u3k(l_c),
u3nt(u3k(n_a), u3k(r_c), u3k(r_a))
);
u3z(c);
return d;
} else {
c = _b_bif_putroot(r_a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nt(u3k(n_c),
u3nt(u3k(n_a), u3k(l_a), u3k(l_c)),
u3k(r_c)
);
u3z(c);
return d;
}
}
}
}
/* functions
*/
u3_noun u3wdb_bif(u3_noun cor)
{
u3_noun a, b;
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
return u3m_bail(c3__exit);
} else {
return u3qdb_bif(a, b);
}
}
u3_noun u3qdb_bif(u3_noun a, u3_noun b)
{
u3_noun c, n_c, l_c, r_c;
u3_noun d;
c = _b_bif_putroot(a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nc(u3k(l_c), u3k(r_c));
u3z(c);
return d;
}
/*
u3_weak u3kdi_bif(u3_noun a, u3_noun b);
*/

83
jets/d/by_dif.c Normal file
View File

@ -0,0 +1,83 @@
/* jets/d/by_dif.c
**
*/
#include "all.h"
/* internal functions
*/
u3_noun _b_dif_join(u3_noun d, u3_noun e)
{
if ( u3_nul == d ) {
return u3k(e);
} else if (u3_nul == e) {
return u3k(d);
} else {
u3_noun n_d, l_d, r_d;
u3_noun n_e, l_e, r_e;
u3_noun p_n_d, q_n_d;
u3_noun p_n_e, q_n_e;
if ( c3n == u3r_trel(d, &n_d, &l_d, &r_d)
|| c3n == u3r_trel(e, &n_e, &l_e, &r_e)
|| c3n == u3r_cell(n_d, &p_n_d, &q_n_d)
|| c3n == u3r_cell(n_e, &p_n_e, &q_n_e) ) {
return u3m_bail(c3__exit);
} else {
if ( c3y == u3qc_vor(p_n_d, p_n_e) ) {
return u3nt(u3k(n_d),
u3k(l_d),
_b_dif_join(u3k(r_d), u3k(e)));
} else {
return u3nt(u3k(n_e),
_b_dif_join(u3k(d), u3k(l_e)),
u3k(r_e));
}
}
}
}
/* functions
*/
u3_noun u3wdb_dif(u3_noun cor)
{
u3_noun a, b;
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
return u3m_bail(c3__exit);
} else {
return u3qdb_dif(a, b);
}
}
u3_noun u3qdb_dif(u3_noun a, u3_noun b)
{
if ( u3_nul == b ) {
return u3k(a);
} else {
u3_noun n_b, l_b, r_b;
u3_noun c, l_c, r_c;
if ( c3n == u3r_trel(b, &n_b, &l_b, &r_b) ) {
return u3m_bail(c3__exit);
} else {
c = u3qdb_bif(a, n_b);
if ( c3n == u3r_cell(c, &l_c, &r_c) ) {
return u3m_bail(c3__exit);
} else {
u3_noun d;
u3_noun e;
d = u3qdb_dif(l_c, l_b);
e = u3qdb_dif(r_c, r_b);
u3z(c);
return _b_dif_join(d, e);
}
}
}
}
/*
u3_weak u3kdb_dif(u3_noun a, u3_noun b);
*/

75
jets/d/in_bif.c Normal file
View File

@ -0,0 +1,75 @@
/* jets/d/in_bif.c
**
*/
#include "all.h"
/* internal functions
*/
u3_noun _i_bif_putroot(u3_noun a, u3_noun b)
{
if ( u3_nul == a) {
return u3nt(u3k(b), u3_nul, u3_nul);
}
else {
u3_noun n_a, l_a, r_a;
if ( (c3n == u3r_trel(a, &n_a, &l_a, &r_a)) ) {
return u3m_bail(c3__exit);
}
else if ( c3y == u3r_sing(b, n_a) ) {
return u3k(a);
}
else {
u3_noun c, n_c, l_c, r_c;
u3_noun d;
if ( c3y == u3qc_hor(b, n_a) ) {
c = _i_bif_putroot(l_a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nt(u3k(n_c),
u3k(l_c),
u3nt(u3k(n_a), u3k(r_c), u3k(r_a))
);
u3z(c);
return d;
} else {
c = _i_bif_putroot(r_a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nt(u3k(n_c),
u3nt(u3k(n_a), u3k(l_a), u3k(l_c)),
u3k(r_c)
);
u3z(c);
return d;
}
}
}
}
/* functions
*/
u3_noun u3wdi_bif(u3_noun cor)
{
u3_noun a, b;
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
return u3m_bail(c3__exit);
} else {
return u3qdi_bif(a, b);
}
}
u3_noun u3qdi_bif(u3_noun a, u3_noun b)
{
u3_noun c, n_c, l_c, r_c;
u3_noun d;
c = _i_bif_putroot(a, b);
u3r_trel(c, &n_c, &l_c, &r_c);
d = u3nc(u3k(l_c), u3k(r_c));
u3z(c);
return d;
}
/*
u3_weak u3kdi_bif(u3_noun a, u3_noun b);
*/

79
jets/d/in_dif.c Normal file
View File

@ -0,0 +1,79 @@
/* jets/d/in_dif.c
**
*/
#include "all.h"
/* internal functions
*/
u3_noun _i_dif_join(u3_noun d, u3_noun e)
{
if ( u3_nul == d ) {
return u3k(e);
} else if (u3_nul == e) {
return u3k(d);
} else {
u3_noun n_d, l_d, r_d;
u3_noun n_e, l_e, r_e;
if ( c3n == u3r_trel(d, &n_d, &l_d, &r_d)
|| c3n == u3r_trel(e, &n_e, &l_e, &r_e) ) {
return u3m_bail(c3__exit);
} else {
if ( c3y == u3qc_vor(n_d, n_e) ) {
return u3nt(u3k(n_d),
u3k(l_d),
_i_dif_join(u3k(r_d), u3k(e)));
} else {
return u3nt(u3k(n_e),
_i_dif_join(u3k(d), u3k(l_e)),
u3k(r_e));
}
}
}
}
/* functions
*/
u3_noun u3wdi_dif(u3_noun cor)
{
u3_noun a, b;
if ( c3n == u3r_mean(cor, u3x_sam, &b, u3x_con_sam, &a, 0) ) {
return u3m_bail(c3__exit);
} else {
return u3qdi_dif(a, b);
}
}
u3_noun u3qdi_dif(u3_noun a, u3_noun b)
{
if ( u3_nul == b ) {
return u3k(a);
} else {
u3_noun n_b, l_b, r_b;
u3_noun c, l_c, r_c;
if ( c3n == u3r_trel(b, &n_b, &l_b, &r_b) ) {
return u3m_bail(c3__exit);
} else {
c = u3qdi_bif(a, n_b);
if ( c3n == u3r_cell(c, &l_c, &r_c) ) {
return u3m_bail(c3__exit);
} else {
u3_noun d;
u3_noun e;
d = u3qdi_dif(l_c, l_b);
e = u3qdi_dif(r_c, r_b);
u3z(c);
return _i_dif_join(d, e);
}
}
}
}
/*
u3_weak u3kdi_dif(u3_noun a, u3_noun b);
*/

Some files were not shown because too many files have changed in this diff Show More