A bunch of restructuring.

This commit is contained in:
C. Guy Yarvin 2014-09-05 12:55:16 -07:00
parent 14c22cf9da
commit f0d6edce20
153 changed files with 4442 additions and 797 deletions

313
Makefile
View File

@ -76,6 +76,18 @@ CWFLAGS=-Wall
.c.o:
$(CC) -c $(CWFLAGS) $(CFLAGS) -o $@ $<
N_OFILES=\
n/a.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/z.o
F_OFILES=\
f/rail.o \
f/loom.o \
@ -93,162 +105,161 @@ F_OFILES=\
f/unix.o \
f/nock.o
J164_1_OFILES=\
gen164/1/add.o \
gen164/1/dec.o \
gen164/1/div.o \
gen164/1/gte.o \
gen164/1/gth.o \
gen164/1/lte.o \
gen164/1/lth.o \
gen164/1/mod.o \
gen164/1/mul.o \
gen164/1/sub.o
J_1_OFILES=\
j/1/add.o \
j/1/dec.o \
j/1/div.o \
j/1/gte.o \
j/1/gth.o \
j/1/lte.o \
j/1/lth.o \
j/1/mod.o \
j/1/mul.o \
j/1/sub.o
J164_2_OFILES=\
gen164/2/bind.o \
gen164/2/clap.o \
gen164/2/drop.o \
gen164/2/flop.o \
gen164/2/lent.o \
gen164/2/levy.o \
gen164/2/lien.o \
gen164/2/need.o \
gen164/2/reel.o \
gen164/2/roll.o \
gen164/2/skim.o \
gen164/2/skip.o \
gen164/2/scag.o \
gen164/2/slag.o \
gen164/2/snag.o \
gen164/2/sort.o \
gen164/2/turn.o \
gen164/2/weld.o
J_2_OFILES=\
j/2/bind.o \
j/2/clap.o \
j/2/drop.o \
j/2/flop.o \
j/2/lent.o \
j/2/levy.o \
j/2/lien.o \
j/2/need.o \
j/2/reel.o \
j/2/roll.o \
j/2/skim.o \
j/2/skip.o \
j/2/scag.o \
j/2/slag.o \
j/2/snag.o \
j/2/sort.o \
j/2/turn.o \
j/2/weld.o
J164_3_OFILES=\
gen164/3/bex.o \
gen164/3/can.o \
gen164/3/cap.o \
gen164/3/cat.o \
gen164/3/con.o \
gen164/3/cut.o \
gen164/3/dor.o \
gen164/3/dis.o \
gen164/3/end.o \
gen164/3/gor.o \
gen164/3/hor.o \
gen164/3/lsh.o \
gen164/3/mas.o \
gen164/3/met.o \
gen164/3/mix.o \
gen164/3/mug.o \
gen164/3/peg.o \
gen164/3/po.o \
gen164/3/rap.o \
gen164/3/rip.o \
gen164/3/rsh.o \
gen164/3/vor.o
J_3_OFILES=\
j/3/bex.o \
j/3/can.o \
j/3/cap.o \
j/3/cat.o \
j/3/con.o \
j/3/cut.o \
j/3/dor.o \
j/3/dis.o \
j/3/end.o \
j/3/gor.o \
j/3/hor.o \
j/3/lsh.o \
j/3/mas.o \
j/3/met.o \
j/3/mix.o \
j/3/mug.o \
j/3/peg.o \
j/3/po.o \
j/3/rap.o \
j/3/rip.o \
j/3/rsh.o \
j/3/vor.o
J164_4_OFILES=\
gen164/4/in_has.o \
gen164/4/in_int.o \
gen164/4/in_gas.o \
gen164/4/in_mer.o \
gen164/4/in_put.o \
gen164/4/in_tap.o \
gen164/4/in_uni.o \
gen164/4/by_gas.o \
gen164/4/by_get.o \
gen164/4/by_has.o \
gen164/4/by_int.o \
gen164/4/by_put.o \
gen164/4/by_uni.o
J_4_OFILES=\
j/4/in_has.o \
j/4/in_int.o \
j/4/in_gas.o \
j/4/in_mer.o \
j/4/in_put.o \
j/4/in_tap.o \
j/4/in_uni.o \
j/4/by_gas.o \
j/4/by_get.o \
j/4/by_has.o \
j/4/by_int.o \
j/4/by_put.o \
j/4/by_uni.o
J164_5_OFILES=\
gen164/5/aesc.o \
gen164/5/cue.o \
gen164/5/jam.o \
gen164/5/mat.o \
gen164/5/mink.o \
gen164/5/mule.o \
gen164/5/parse.o \
gen164/5/rd.o \
gen164/5/repg.o \
gen164/5/rexp.o \
gen164/5/rub.o \
gen164/5/shax.o \
gen164/5/lore.o \
gen164/5/loss.o \
gen164/5/trip.o
J_5_OFILES=\
j/5/aesc.o \
j/5/cue.o \
j/5/jam.o \
j/5/mat.o \
j/5/mink.o \
j/5/mule.o \
j/5/parse.o \
j/5/rd.o \
j/5/repg.o \
j/5/rexp.o \
j/5/rub.o \
j/5/shax.o \
j/5/lore.o \
j/5/loss.o \
j/5/trip.o
J164_5_OFILES_ED=\
gen164/5/ed_puck.o \
gen164/5/ed_sign.o \
gen164/5/ed_veri.o
J_5_OFILES_ED=\
j/5/ed_puck.o \
j/5/ed_sign.o \
j/5/ed_veri.o
J164_6_OFILES=\
gen164/6/al.o \
gen164/6/ap.o \
gen164/6/bull.o \
gen164/6/cell.o \
gen164/6/comb.o \
gen164/6/cons.o \
gen164/6/core.o \
gen164/6/cube.o \
gen164/6/face.o \
gen164/6/fitz.o \
gen164/6/flan.o \
gen164/6/flay.o \
gen164/6/flip.o \
gen164/6/flor.o \
gen164/6/fork.o \
gen164/6/hike.o \
gen164/6/look.o \
J_6_OFILES=\
j/6/al.o \
j/6/ap.o \
j/6/bull.o \
j/6/cell.o \
j/6/comb.o \
j/6/cons.o \
j/6/core.o \
j/6/cube.o \
j/6/face.o \
j/6/fitz.o \
j/6/flan.o \
j/6/flay.o \
j/6/flip.o \
j/6/flor.o \
j/6/fork.o \
j/6/hike.o \
j/6/look.o \
J164_6_OFILES_UT=\
gen164/6/ut.o \
gen164/6/ut_burn.o \
gen164/6/ut_busk.o \
gen164/6/ut_bust.o \
gen164/6/ut_conk.o \
gen164/6/ut_crop.o \
gen164/6/ut_cull.o \
gen164/6/ut_find.o \
gen164/6/ut_fink.o \
gen164/6/ut_fire.o \
gen164/6/ut_firm.o \
gen164/6/ut_fish.o \
gen164/6/ut_fuse.o \
gen164/6/ut_gain.o \
gen164/6/ut_heal.o \
gen164/6/ut_lose.o \
gen164/6/ut_mint.o \
gen164/6/ut_mull.o \
gen164/6/ut_nest.o \
gen164/6/ut_park.o \
gen164/6/ut_peek.o \
gen164/6/ut_play.o \
gen164/6/ut_repo.o \
gen164/6/ut_rest.o \
gen164/6/ut_seek.o \
gen164/6/ut_swab.o \
gen164/6/ut_tack.o \
gen164/6/ut_tock.o \
gen164/6/ut_wrap.o
J_6_OFILES_UT=\
j/6/ut.o \
j/6/ut_burn.o \
j/6/ut_busk.o \
j/6/ut_bust.o \
j/6/ut_conk.o \
j/6/ut_crop.o \
j/6/ut_cull.o \
j/6/ut_find.o \
j/6/ut_fink.o \
j/6/ut_fire.o \
j/6/ut_firm.o \
j/6/ut_fish.o \
j/6/ut_fuse.o \
j/6/ut_gain.o \
j/6/ut_heal.o \
j/6/ut_lose.o \
j/6/ut_mint.o \
j/6/ut_mull.o \
j/6/ut_nest.o \
j/6/ut_park.o \
j/6/ut_peek.o \
j/6/ut_play.o \
j/6/ut_repo.o \
j/6/ut_rest.o \
j/6/ut_seek.o \
j/6/ut_swab.o \
j/6/ut_tack.o \
j/6/ut_tock.o \
j/6/ut_wrap.o
J164_OFILES=\
$(J164_1_OFILES) \
$(J164_2_OFILES) \
$(J164_3_OFILES) \
$(J164_4_OFILES) \
$(J164_5_OFILES) \
$(J164_5_OFILES_ED) \
$(J164_6_OFILES) \
$(J164_6_OFILES_UT)
J_OFILES=\
$(J_1_OFILES) \
$(J_2_OFILES) \
$(J_3_OFILES) \
$(J_4_OFILES) \
$(J_5_OFILES) \
$(J_5_OFILES_ED) \
$(J_6_OFILES) \
$(J_6_OFILES_UT)
BASE_OFILES=\
$(F_OFILES) \
$(J164_OFILES)
W_OFILES=\
w/test.o
CRE2_OFILES=\
outside/cre2/src/src/cre2.o
@ -286,8 +297,6 @@ LIBED25519=outside/ed25519/ed25519.a
LIBANACHRONISM=outside/anachronism/build/libanachronism.a
BPT_O=outside/bpt/bitmapped_patricia_tree.o
all: $(BIN)/meme
$(LIBUV):
@ -302,9 +311,6 @@ $(LIBED25519):
$(LIBANACHRONISM):
$(MAKE) -C outside/anachronism static
$(BPT_O): outside/bpt/bitmapped_patricia_tree.c
$(CC) -g -o $@ -c $<
$(CRE2_OFILES): outside/cre2/src/src/cre2.cpp outside/cre2/src/src/cre2.h $(LIBRE2)
$(CXX) $(CXXFLAGS) -c $< $(LIBRE2) -o $@
@ -316,8 +322,7 @@ $(BIN)/vere: $(LIBCRE) $(VERE_OFILES) $(LIBUV) $(LIBRE2) $(LIBED25519) $(BPT_O)
meme: $(BIN)/meme
MEME_OFILES=f/meme.o f/zock.o f/test.o f/kjet.o \
$(J164_OFILES) $(CRE2_OFILES)
MEME_OFILES=$(N_OFILES) $(J_OFILES) $(W_OFILES) $(CRE2_OFILES)
$(BIN)/meme: $(MEME_OFILES) $(LIBED25519)
$(CLD) -g $(CLDOSFLAGS) -o $(BIN)/meme $(MEME_OFILES) $(LIBRE2) $(LIBED25519) -lgmp

266
f/kjet.c
View File

@ -1,266 +0,0 @@
/* f/meme.c
**
** This file is in the public domain.
*/
#include "f/meme.h"
/* u2_cka_add(): a + b.
*/
u2_noun
u2_cka_add(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_add(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_cka_sub(): a + b.
*/
u2_noun
u2_cka_sub(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_sub(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_cka_gth(): a + b.
*/
u2_noun
u2_cka_gth(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_gth(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_cka_mul(): a * b.
*/
u2_noun
u2_cka_mul(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_mul(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_cka_lte(): a * b.
*/
u2_noun
u2_cka_lte(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_lte(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_ckb_lent(): length of list `a`.
*/
u2_noun
u2_ckb_lent(u2_noun a)
{
u2_noun b = u2_cqb_lent(a);
u2z(a);
return b;
}
/* u2_ckb_flop(): reverse list `a`.
*/
u2_noun
u2_ckb_flop(u2_noun a)
{
u2_noun b = u2_cqb_flop(a);
u2z(a);
return b;
}
/* u2_ckb_weld(): concatenate lists `a` before `b`.
*/
u2_noun
u2_ckb_weld(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqb_weld(a, b);
u2z(a); u2z(b);
return c;
}
/* u2_ckc_lsh(): left shift.
*/
u2_noun
u2_ckc_lsh(u2_noun a, u2_noun b, u2_noun c)
{
u2_noun d = u2_cqc_lsh(a, b, c);
u2z(a); u2z(b); u2z(c);
return d;
}
/* u2_ckc_rsh(): right shift.
*/
u2_noun
u2_ckc_rsh(u2_noun a, u2_noun b, u2_noun c)
{
u2_noun d = u2_cqc_rsh(a, b, c);
u2z(a); u2z(b); u2z(c);
return d;
}
/* u2_ckdb_get(): map get for key `b` in map `a` with u2_none.
*/
u2_weak
u2_ckdb_get(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqdb_get(a, b);
u2z(a); u2z(b);
if ( u2_no == u2_cr_du(c) ) {
u2z(c);
return u2_none;
} else {
u2_noun pro = u2k(u2t(c));
u2z(c);
return pro;
}
}
/* u2_ckdb_got(): map get for key `b` in map `a` with fail.
*/
u2_noun
u2_ckdb_got(u2_noun a, u2_noun b)
{
u2_weak c = u2_ckdb_get(a, b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_ckdb_put(): map put for key `b`, value `c` in map `a`.
*/
u2_weak
u2_ckdb_put(u2_noun a, u2_noun b, u2_noun c)
{
// Bizarre asymmetry in old jets.
//
// (Mysterious comment in old glue code.)
//
u2_noun pro = u2_cqdb_put(a, b, c);
u2z(a); u2z(b); u2z(c);
return pro;
}
/* u2_ckdb_gas(): list to map.
*/
u2_noun
u2_ckdb_gas(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdb_gas(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_ckdi_gas(): list to map.
*/
u2_noun
u2_ckdi_gas(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_gas(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_ckdb_has(): test for presence.
*/
u2_bean
u2_ckdb_has(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdb_has(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_ckdi_has(): test for presence.
*/
u2_bean
u2_ckdi_has(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_has(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_ckdi_tap(): map/set convert to list. (solves by_tap also.)
*/
u2_noun
u2_ckdi_tap(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_tap(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}
/* u2_cke_cue(): expand saved pill.
*/
u2_noun
u2_cke_cue(u2_atom a)
{
u2_noun b = u2_cqe_cue(a);
u2z(a);
return b;
}
/* u2_cke_jam(): pack noun as atom.
*/
u2_atom
u2_cke_jam(u2_noun a)
{
u2_atom b = u2_cqe_jam(a);
u2z(a);
return b;
}
/* u2_cke_trip(): atom to tape.
*/
u2_atom
u2_cke_trip(u2_noun a)
{
u2_atom b = u2_cqe_trip(a);
u2z(a);
return b;
}

View File

@ -1,4 +0,0 @@
/* include/pit.h
**
** This file is in the public domain.
*/

View File

@ -1,275 +0,0 @@
/* genxxx/watt.c
**
** This file is in the public domain.
*/
#include "all.h"
#include "pit.h"
/* declarations
*/
/* models
*/
extern u2_ho_jet j2_mbj(PtM, tape)[];
/* tier 1
*/
extern u2_ho_jet j2_mbj(Pt1, add)[];
extern u2_ho_jet j2_mbj(Pt1, dec)[];
extern u2_ho_jet j2_mbj(Pt1, div)[];
extern u2_ho_jet j2_mbj(Pt1, gte)[];
extern u2_ho_jet j2_mbj(Pt1, gth)[];
extern u2_ho_jet j2_mbj(Pt1, lte)[];
extern u2_ho_jet j2_mbj(Pt1, lth)[];
extern u2_ho_jet j2_mbj(Pt1, mod)[];
extern u2_ho_jet j2_mbj(Pt1, mul)[];
extern u2_ho_jet j2_mbj(Pt1, sub)[];
/* tier 2
*/
extern u2_ho_jet j2_mbj(Pt2, bind)[];
extern u2_ho_jet j2_mbj(Pt2, clap)[];
extern u2_ho_jet j2_mbj(Pt2, drop)[];
extern u2_ho_jet j2_mbj(Pt2, flop)[];
extern u2_ho_jet j2_mbj(Pt2, lent)[];
extern u2_ho_jet j2_mbj(Pt2, levy)[];
extern u2_ho_jet j2_mbj(Pt2, lien)[];
extern u2_ho_jet j2_mbj(Pt2, need)[];
extern u2_ho_jet j2_mbj(Pt2, reel)[];
extern u2_ho_jet j2_mbj(Pt2, roll)[];
extern u2_ho_jet j2_mbj(Pt2, skim)[];
extern u2_ho_jet j2_mbj(Pt2, skip)[];
extern u2_ho_jet j2_mbj(Pt2, scag)[];
extern u2_ho_jet j2_mbj(Pt2, slag)[];
extern u2_ho_jet j2_mbj(Pt2, snag)[];
extern u2_ho_jet j2_mbj(Pt2, turn)[];
extern u2_ho_jet j2_mbj(Pt2, weld)[];
/* tier 3
*/
extern u2_ho_jet j2_mbj(Pt3, bex)[];
extern u2_ho_jet j2_mbj(Pt3, can)[];
extern u2_ho_jet j2_mbj(Pt3, cap)[];
extern u2_ho_jet j2_mbj(Pt3, cat)[];
extern u2_ho_jet j2_mbj(Pt3, con)[];
extern u2_ho_jet j2_mbj(Pt3, cut)[];
extern u2_ho_jet j2_mbj(Pt3, dis)[];
extern u2_ho_jet j2_mbj(Pt3, dor)[];
extern u2_ho_jet j2_mbj(Pt3, end)[];
extern u2_ho_jet j2_mbj(Pt3, gor)[];
extern u2_ho_jet j2_mbj(Pt3, hor)[];
extern u2_ho_jet j2_mbj(Pt3, lsh)[];
extern u2_ho_jet j2_mbj(Pt3, mas)[];
extern u2_ho_jet j2_mbj(Pt3, met)[];
extern u2_ho_jet j2_mbj(Pt3, mix)[];
extern u2_ho_jet j2_mbj(Pt3, mug)[];
extern u2_ho_jet j2_mbj(Pt3, peg)[];
extern u2_ho_jet j2_mbj(Pt3, rap)[];
extern u2_ho_jet j2_mbj(Pt3, rip)[];
extern u2_ho_jet j2_mbj(Pt3, ryp)[];
extern u2_ho_jet j2_mbj(Pt3, rsh)[];
extern u2_ho_jet j2_mbj(Pt3, vor)[];
extern u2_ho_driver j2_mbd(Pt3, po)[];
/* tier 4
*/
extern u2_ho_driver j2_mbd(Pt4, in)[];
extern u2_ho_driver j2_mbd(Pt4, by)[];
/* tier 5
*/
extern u2_ho_jet j2_mbj(Pt5, cue)[];
extern u2_ho_jet j2_mbj(Pt5, mat)[];
extern u2_ho_jet j2_mbj(Pt5, mink)[];
extern u2_ho_jet j2_mbj(Pt5, mule)[];
extern u2_ho_jet j2_mbj(Pt5, jam)[];
extern u2_ho_jet j2_mbj(Pt5, loss)[];
extern u2_ho_jet j2_mbj(Pt5, lore)[];
extern u2_ho_jet j2_mbj(Pt5, pfix)[];
extern u2_ho_jet j2_mbj(Pt5, plug)[];
extern u2_ho_jet j2_mbj(Pt5, pose)[];
extern u2_ho_jet j2_mbj(Pt5, repg)[];
extern u2_ho_jet j2_mbj(Pt5, rexp)[];
extern u2_ho_jet j2_mbj(Pt5, rub)[];
extern u2_ho_jet j2_mbj(Pt5, sfix)[];
extern u2_ho_jet j2_mbj(Pt5, shax)[];
extern u2_ho_jet j2_mbj(Pt5, tape)[];
extern u2_ho_jet j2_mbj(Pt5, trip)[];
extern u2_ho_driver j2_mbd(Pt5, aesc)[];
extern u2_ho_driver j2_mbd(Pt5, bend)[];
extern u2_ho_driver j2_mbd(Pt5, cold)[];
extern u2_ho_driver j2_mbd(Pt5, comp)[];
extern u2_ho_driver j2_mbd(Pt5, cook)[];
extern u2_ho_driver j2_mbd(Pt5, easy)[];
// extern u2_ho_driver j2_mbd(Pt5, coco)[];
extern u2_ho_driver j2_mbd(Pt5, coed)[];
extern u2_ho_driver j2_mbd(Pt5, glue)[];
extern u2_ho_driver j2_mbd(Pt5, here)[];
extern u2_ho_driver j2_mbd(Pt5, just)[];
extern u2_ho_driver j2_mbd(Pt5, mask)[];
extern u2_ho_driver j2_mbd(Pt5, og)[];
extern u2_ho_driver j2_mbd(Pt5, rd)[];
extern u2_ho_driver j2_mbd(Pt5, shim)[];
extern u2_ho_driver j2_mbd(Pt5, stag)[];
extern u2_ho_driver j2_mbd(Pt5, stew)[];
extern u2_ho_driver j2_mbd(Pt5, stir)[];
/* tier 6
*/
extern u2_ho_jet j2_mbj(Pt6, bull)[];
extern u2_ho_jet j2_mbj(Pt6, cell)[];
extern u2_ho_jet j2_mbj(Pt6, comb)[];
extern u2_ho_jet j2_mbj(Pt6, cons)[];
extern u2_ho_jet j2_mbj(Pt6, core)[];
extern u2_ho_jet j2_mbj(Pt6, cube)[];
extern u2_ho_jet j2_mbj(Pt6, face)[];
extern u2_ho_jet j2_mbj(Pt6, fitz)[];
extern u2_ho_jet j2_mbj(Pt6, flan)[];
extern u2_ho_jet j2_mbj(Pt6, flip)[];
extern u2_ho_jet j2_mbj(Pt6, flor)[];
extern u2_ho_jet j2_mbj(Pt6, fork)[];
extern u2_ho_jet j2_mbj(Pt6, hike)[];
extern u2_ho_jet j2_mbj(Pt6, look)[];
extern u2_ho_jet j2_mbj(Pt6, open)[];
extern u2_ho_jet j2_mbj(Pt6, rake)[];
extern u2_ho_jet j2_mbj(Pt6, ream)[];
extern u2_ho_jet j2_mbj(Pt6, vest)[];
extern u2_ho_jet j2_mbj(Pt6, ap)[];
extern u2_ho_driver j2_mbd(Pt6, ap)[];
extern u2_ho_jet j2_mbj(Pt6, ut)[];
extern u2_ho_driver j2_mbd(Pt6, ut)[];
/* structures
*/
static u2_ho_driver
_watt_drivers_0[],
_watt_drivers_1[],
_watt_drivers_2[];
u2_ho_driver
j2_da(Pt0) = { j2_sa(Pt0), 0, _watt_drivers_0, 0, u2_none };
static u2_ho_driver
_watt_drivers_0[] = {
{ j2_sb(Pt0, mood), 0, _watt_drivers_1, 0, u2_none },
{ }
};
static u2_ho_driver
_watt_drivers_1[] = {
{ j2_sb(PtM, tape), j2_mbj(PtM, tape), 0, 0, u2_none },
{ j2_sb(PtM, hoon), 0, _watt_drivers_2, 0, u2_none },
{ }
};
static u2_ho_driver
_watt_drivers_2[] = {
{ j2_sb(Pt1, add), j2_mbj(Pt1, add), 0, 0, u2_none },
{ j2_sb(Pt1, dec), j2_mbj(Pt1, dec), 0, 0, u2_none },
{ j2_sb(Pt1, div), j2_mbj(Pt1, div), 0, 0, u2_none },
{ j2_sb(Pt1, gte), j2_mbj(Pt1, gte), 0, 0, u2_none },
{ j2_sb(Pt1, gth), j2_mbj(Pt1, gth), 0, 0, u2_none },
{ j2_sb(Pt1, lte), j2_mbj(Pt1, lte), 0, 0, u2_none },
{ j2_sb(Pt1, lth), j2_mbj(Pt1, lth), 0, 0, u2_none },
{ j2_sb(Pt1, mod), j2_mbj(Pt1, mod), 0, 0, u2_none },
{ j2_sb(Pt1, mul), j2_mbj(Pt1, mul), 0, 0, u2_none },
{ j2_sb(Pt1, sub), j2_mbj(Pt1, sub), 0, 0, u2_none },
{ j2_sb(Pt2, bind), j2_mbj(Pt2, bind), 0, 0, u2_none },
{ j2_sb(Pt2, clap), j2_mbj(Pt2, clap), 0, 0, u2_none },
{ j2_sb(Pt2, drop), j2_mbj(Pt2, drop), 0, 0, u2_none },
{ j2_sb(Pt2, flop), j2_mbj(Pt2, flop), 0, 0, u2_none },
{ j2_sb(Pt2, lent), j2_mbj(Pt2, lent), 0, 0, u2_none },
{ j2_sb(Pt2, levy), j2_mbj(Pt2, levy), 0, 0, u2_none },
{ j2_sb(Pt2, lien), j2_mbj(Pt2, lien), 0, 0, u2_none },
{ j2_sb(Pt2, need), j2_mbj(Pt2, need), 0, 0, u2_none },
{ j2_sb(Pt2, reel), j2_mbj(Pt2, reel), 0, 0, u2_none },
{ j2_sb(Pt2, roll), j2_mbj(Pt2, roll), 0, 0, u2_none },
{ j2_sb(Pt2, skim), j2_mbj(Pt2, skim), 0, 0, u2_none },
{ j2_sb(Pt2, skip), j2_mbj(Pt2, skip), 0, 0, u2_none },
{ j2_sb(Pt2, scag), j2_mbj(Pt2, scag), 0, 0, u2_none },
{ j2_sb(Pt2, slag), j2_mbj(Pt2, slag), 0, 0, u2_none },
{ j2_sb(Pt2, snag), j2_mbj(Pt2, snag), 0, 0, u2_none },
{ j2_sb(Pt2, turn), j2_mbj(Pt2, turn), 0, 0, u2_none },
{ j2_sb(Pt2, weld), j2_mbj(Pt2, weld), 0, 0, u2_none },
{ j2_sb(Pt3, bex), j2_mbj(Pt3, bex), 0, 0, u2_none },
{ j2_sb(Pt3, can), j2_mbj(Pt3, can), 0, 0, u2_none },
{ j2_sb(Pt3, cap), j2_mbj(Pt3, cap), 0, 0, u2_none },
{ j2_sb(Pt3, cat), j2_mbj(Pt3, cat), 0, 0, u2_none },
{ j2_sb(Pt3, con), j2_mbj(Pt3, con), 0, 0, u2_none },
{ j2_sb(Pt3, cut), j2_mbj(Pt3, cut), 0, 0, u2_none },
{ j2_sb(Pt3, dor), j2_mbj(Pt3, dor), 0, 0, u2_none },
{ j2_sb(Pt3, dis), j2_mbj(Pt3, dis), 0, 0, u2_none },
{ j2_sb(Pt3, end), j2_mbj(Pt3, end), 0, 0, u2_none },
{ j2_sb(Pt3, gor), j2_mbj(Pt3, gor), 0, 0, u2_none },
{ j2_sb(Pt3, hor), j2_mbj(Pt3, hor), 0, 0, u2_none },
{ j2_sb(Pt3, lsh), j2_mbj(Pt3, lsh), 0, 0, u2_none },
{ j2_sb(Pt3, mas), j2_mbj(Pt3, mas), 0, 0, u2_none },
{ j2_sb(Pt3, met), j2_mbj(Pt3, met), 0, 0, u2_none },
{ j2_sb(Pt3, mix), j2_mbj(Pt3, mix), 0, 0, u2_none },
{ j2_sb(Pt3, mug), j2_mbj(Pt3, mug), 0, 0, u2_none },
{ j2_sb(Pt3, peg), j2_mbj(Pt3, peg), 0, 0, u2_none },
{ j2_sb(Pt3, rap), j2_mbj(Pt3, rap), 0, 0, u2_none },
{ j2_sb(Pt3, rip), j2_mbj(Pt3, rip), 0, 0, u2_none },
{ j2_sb(Pt3, rsh), j2_mbj(Pt3, rsh), 0, 0, u2_none },
{ j2_sb(Pt3, vor), j2_mbj(Pt3, vor), 0, 0, u2_none },
{ j2_sb(Pt3, po), 0, j2_mbd(Pt3, po), 0, u2_none },
{ j2_sb(Pt4, in), 0, j2_mbd(Pt4, in), 0, u2_none },
{ j2_sb(Pt4, by), 0, j2_mbd(Pt4, by), 0, u2_none },
{ j2_sb(Pt5, aesc), 0, j2_mbd(Pt5, aesc), 0, u2_none },
{ j2_sb(Pt5, bend), 0, j2_mbd(Pt5, bend), 0, u2_none },
#if 0
{ j2_sb(Pt5, coco), 0, j2_mbd(Pt5, coco), 0, u2_none },
#endif
{ j2_sb(Pt5, coed), 0, j2_mbd(Pt5, coed), 0, u2_none },
{ j2_sb(Pt5, cold), 0, j2_mbd(Pt5, cold), 0, u2_none },
{ j2_sb(Pt5, comp), 0, j2_mbd(Pt5, comp), 0, u2_none },
{ j2_sb(Pt5, cook), 0, j2_mbd(Pt5, cook), 0, u2_none },
{ j2_sb(Pt5, cue), j2_mbj(Pt5, cue), 0, 0, u2_none },
{ j2_sb(Pt5, easy), 0, j2_mbd(Pt5, easy), 0, u2_none },
{ j2_sb(Pt5, glue), 0, j2_mbd(Pt5, glue), 0, u2_none },
{ j2_sb(Pt5, here), 0, j2_mbd(Pt5, here), 0, u2_none },
{ j2_sb(Pt5, jam), j2_mbj(Pt5, jam), 0, 0, u2_none },
{ j2_sb(Pt5, loss), j2_mbj(Pt5, loss), 0, 0, u2_none },
{ j2_sb(Pt5, lore), j2_mbj(Pt5, lore), 0, 0, u2_none },
{ j2_sb(Pt5, just), 0, j2_mbd(Pt5, just), 0, u2_none },
{ j2_sb(Pt5, mask), 0, j2_mbd(Pt5, mask), 0, u2_none },
{ j2_sb(Pt5, mat), j2_mbj(Pt5, mat), 0, 0, u2_none },
{ j2_sb(Pt5, mink), j2_mbj(Pt5, mink), 0, 0, u2_none },
{ j2_sb(Pt5, mule), j2_mbj(Pt5, mule), 0, 0, u2_none },
{ j2_sb(Pt5, og), 0, j2_mbd(Pt5, og), 0, u2_none },
{ j2_sb(Pt5, pfix), j2_mbj(Pt5, pfix), 0, 0, u2_none },
{ j2_sb(Pt5, plug), j2_mbj(Pt5, plug), 0, 0, u2_none },
{ j2_sb(Pt5, pose), j2_mbj(Pt5, pose), 0, 0, u2_none },
{ j2_sb(Pt5, rd), 0, j2_mbd(Pt5, rd), 0, u2_none },
{ j2_sb(Pt5, repg), j2_mbj(Pt5, repg), 0, 0, u2_none },
{ j2_sb(Pt5, rexp), j2_mbj(Pt5, rexp), 0, 0, u2_none },
{ j2_sb(Pt5, rub), j2_mbj(Pt5, rub), 0, 0, u2_none },
{ j2_sb(Pt5, sfix), j2_mbj(Pt5, sfix), 0, 0, u2_none },
{ j2_sb(Pt5, shax), j2_mbj(Pt5, shax), 0, 0, u2_none },
{ j2_sb(Pt5, shim), 0, j2_mbd(Pt5, shim), 0, u2_none },
{ j2_sb(Pt5, stag), 0, j2_mbd(Pt5, stag), 0, u2_none },
{ j2_sb(Pt5, stew), 0, j2_mbd(Pt5, stew), 0, u2_none },
{ j2_sb(Pt5, stir), 0, j2_mbd(Pt5, stir), 0, u2_none },
{ j2_sb(Pt5, trip), j2_mbj(Pt5, trip), 0, 0, u2_none },
{ j2_sb(Pt6, bull), j2_mbj(Pt6, bull), 0, 0, u2_none },
{ j2_sb(Pt6, cell), j2_mbj(Pt6, cell), 0, 0, u2_none },
{ j2_sb(Pt6, comb), j2_mbj(Pt6, comb), 0, 0, u2_none },
{ j2_sb(Pt6, cons), j2_mbj(Pt6, cons), 0, 0, u2_none },
{ j2_sb(Pt6, core), j2_mbj(Pt6, core), 0, 0, u2_none },
{ j2_sb(Pt6, cube), j2_mbj(Pt6, cube), 0, 0, u2_none },
{ j2_sb(Pt6, face), j2_mbj(Pt6, face), 0, 0, u2_none },
{ j2_sb(Pt6, fitz), j2_mbj(Pt6, fitz), 0, 0, u2_none },
{ j2_sb(Pt6, flan), j2_mbj(Pt6, flan), 0, 0, u2_none },
{ j2_sb(Pt6, flip), j2_mbj(Pt6, flip), 0, 0, u2_none },
{ j2_sb(Pt6, flor), j2_mbj(Pt6, flor), 0, 0, u2_none },
{ j2_sb(Pt6, fork), j2_mbj(Pt6, fork), 0, 0, u2_none },
{ j2_sb(Pt6, hike), j2_mbj(Pt6, hike), 0, 0, u2_none },
{ j2_sb(Pt6, look), j2_mbj(Pt6, look), 0, 0, u2_none },
{ j2_sb(Pt6, ap), j2_mbj(Pt6, ap), j2_mbd(Pt6, ap), 0, u2_none },
{ j2_sb(Pt6, ut), j2_mbj(Pt6, ut), j2_mbd(Pt6, ut), 0, u2_none },
{ }
};

View File

@ -2,5 +2,71 @@
**
** This file is in the public domain.
*/
/** Prefix definitions:
***
*** u2_ca_: fundamental allocators.
*** u2_cc_: constants.
*** u2_ch_: HAMT hash tables.
*** u2_ci_: noun constructors
*** u2_cj_: jets.
*** u2_ck*: direct jet calls (modern C convention)
*** u2_cm_: system management etc.
*** u2_cn_: nock interpreter.
*** u2_co_: fundamental macros.
*** u2_cq*: direct jet calls (archaic C convention)
*** u2_cr_: read functions which never bail out.
*** u2_cs_: structures and definitions.
*** u2_ct_: tracing.
*** u2_cw_: direct jet calls (core noun convention)
*** u2_cx_: read functions which do bail out.
*** u2_cz_: memoization.
***
*** u2_cr_, u2_cx_ functions use retain conventions; the caller
*** retains ownership of passed-in nouns, the callee preserves
*** ownership of returned nouns.
***
*** Unless documented otherwise, all other functions use transfer
*** conventions; the caller logically releases passed-in nouns,
*** the callee logically releases returned nouns.
***
*** In general, exceptions to the transfer convention all occur
*** when we're using a noun as a key.
**/
# include "f/meme.h"
/** c: the c3 layer, C portability and definitions.
**/
# include "c/portable.h"
# include "c/tune.h"
# include "c/types.h"
# include "c/defs.h"
# include "c/motes.h"
# include "c/comd.h"
/** f: the u2 layer, definitions and data structures.
**/
# include "f/meze.h"
# include "f/tune.h"
# include "f/noun.h"
# include "f/hash.h"
# include "f/jets.h"
# include "f/road.h"
# include "f/glob.h"
/** g: the u2 layer, functions.
**/
# include "g/a.h"
# include "g/h.h"
# include "g/i.h"
# include "g/j.h"
# include "g/m.h"
# include "g/n.h"
# include "g/r.h"
# include "g/t.h"
# include "g/x.h"
# include "g/z.h"
/** j: the u2 layer, jets.
**/
# include "j/k.h"
# include "j/w.h"
# include "j/q.h"

View File

@ -2,71 +2,3 @@
**
** This file is in the public domain.
*/
/** Prefix definitions:
***
*** u2_ca_: fundamental allocators.
*** u2_cc_: constants.
*** u2_ch_: HAMT hash tables.
*** u2_ci_: noun constructors
*** u2_cj_: jets.
*** u2_ck*: direct jet calls (modern C convention)
*** u2_cm_: system management etc.
*** u2_cn_: nock interpreter.
*** u2_co_: fundamental macros.
*** u2_cq*: direct jet calls (archaic C convention)
*** u2_cr_: read functions which never bail out.
*** u2_cs_: structures and definitions.
*** u2_ct_: tracing.
*** u2_cw_: direct jet calls (core noun convention)
*** u2_cx_: read functions which do bail out.
*** u2_cz_: memoization.
***
*** u2_cr_, u2_cx_ functions use retain conventions; the caller
*** retains ownership of passed-in nouns, the callee preserves
*** ownership of returned nouns.
***
*** Unless documented otherwise, all other functions use transfer
*** conventions; the caller logically releases passed-in nouns,
*** the callee logically releases returned nouns.
***
*** In general, exceptions to the transfer convention all occur
*** when we're using a noun as a key.
**/
/** c: the c3 layer, C portability and definitions.
**/
# include "c/portable.h"
# include "c/tune.h"
# include "c/types.h"
# include "c/defs.h"
# include "c/motes.h"
# include "c/comd.h"
/** f: the u2 layer, definitions and data structures.
**/
# include "f/meze.h"
# include "f/tune.h"
# include "f/noun.h"
# include "f/hash.h"
# include "f/jets.h"
# include "f/road.h"
# include "f/glob.h"
/** g: the u2 layer, functions.
**/
# include "g/a.h"
# include "g/h.h"
# include "g/i.h"
# include "g/j.h"
# include "g/m.h"
# include "g/n.h"
# include "g/r.h"
# include "g/t.h"
# include "g/x.h"
# include "g/z.h"
/** j: the u2 layer, jets.
**/
# include "j/k.h"
# include "j/w.h"
# include "j/q.h"

View File

@ -57,6 +57,7 @@
# define u2_co_is_pom(som) ((3 == ((som) >> 30)) ? u2_yes : u2_no)
# define u2_co_to_off(som) ((som) & 0x3fffffff)
# define u2_co_to_ptr(som) (u2_co_into(u2_co_to_off(som)))
# define u2_co_to_wtr(som) ((c3_w *)u2_co_to_ptr(som))
# define u2_co_to_pug(off) (off | 0x80000000)
# define u2_co_to_pom(off) (off | 0xc0000000)

View File

@ -182,3 +182,34 @@
# define u2_co_into(x) ((void *)(u2_Loom + (x)))
# define u2_co_outa(p) (((c3_w*)(void*)(p)) - u2_Loom)
# define u2_co_north_is_senior(dog) \
u2_say((u2_co_to_wtr(dog) < u2R->rut_w) || \
(u2_co_to_wtr(dog) >= u2R->mat_w))
# define u2_co_north_is_junior(dog) \
u2_say((u2_co_to_wtr(dog) >= u2R->cap_w) && \
(u2_co_to_wtr(dog) < u2R->mat_w))
# define u2_co_north_is_normal(dog) \
u2_and(u2_not(u2_co_north_is_senior(dog)), \
u2_not(u2_co_north_is_junior(dog)))
# define u2_co_south_is_senior(dog) \
u2_say((u2_co_to_wtr(dog) >= u2R->mat_w) || \
(u2_co_to_wtr(dog) < u2R->cap_w))
# define u2_co_south_is_junior(dog) \
u2_say((u2_co_to_wtr(dog) >= u2R->cap_w) && \
(u2_co_to_wtr(dog) < u2R->mat_w))
# define u2_co_south_is_normal(dog) \
u2_and(u2_not(u2_co_south_is_senior(dog)), \
u2_not(u2_co_south_is_junior(dog)))
# define u2_co_is_junior(som) \
( u2_so(u2_co_is_cat(som)) \
? u2_no \
: u2_so(u2_co_is_north) \
? u2_co_north_is_junior(som) \
: u2_co_south_is_junior(som) )

View File

@ -33,6 +33,11 @@
c3_i
u2_cm_bail(c3_m how_m);
/* u2_cm_dump(): dump the current road to stderr.
*/
void
u2_cm_dump(void);
/* u2_cm_error(): bail out with %exit, ct_pushing error.
*/
c3_i

View File

@ -42,3 +42,12 @@
return u2_cqa_add(a, b);
}
}
u2_noun
u2_cka_add(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_add(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -43,3 +43,12 @@
return u2_cqa_gth(a, b);
}
}
u2_noun
u2_cka_gth(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_gth(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -43,3 +43,11 @@
return u2_cqa_lte(a, b);
}
}
u2_noun
u2_cka_lte(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_lte(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -42,4 +42,12 @@
return u2_cqa_mul(a, b);
}
}
u2_noun
u2_cka_mul(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_mul(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -8,8 +8,7 @@
/* functions
*/
u2_noun
u2_cqa_sub(u2_atom a,
u2_atom b)
u2_cqa_sub(u2_atom a, u2_atom b)
{
if ( u2_so(u2_co_is_cat(a)) && u2_so(u2_co_is_cat(b)) ) {
if ( a < b ) {
@ -35,9 +34,9 @@
return u2_ci_mp(a_mp);
}
}
u2_noun
u2_cwa_sub(
u2_noun cor)
u2_cwa_sub(u2_noun cor)
{
u2_noun a, b;
@ -51,3 +50,11 @@
}
}
u2_noun
u2_cka_sub(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqa_sub(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -8,8 +8,7 @@
/* functions
*/
u2_noun
u2_cqb_flop(
u2_noun a)
u2_cqb_flop(u2_noun a)
{
u2_noun b = 0;
@ -29,8 +28,7 @@
}
}
u2_noun
u2_cwb_flop(
u2_noun cor)
u2_cwb_flop(u2_noun cor)
{
u2_noun a;
@ -40,3 +38,12 @@
return u2_cqb_flop(a);
}
}
u2_noun
u2_ckb_flop(u2_noun a)
{
u2_noun b = u2_cqb_flop(a);
u2z(a);
return b;
}

View File

@ -8,8 +8,7 @@
/* functions
*/
u2_noun
u2_cqb_lent(
u2_noun a)
u2_cqb_lent(u2_noun a)
{
u2_noun len = 0;
@ -28,8 +27,7 @@
}
}
u2_noun
u2_cwb_lent(
u2_noun cor)
u2_cwb_lent(u2_noun cor)
{
u2_noun a;
@ -39,3 +37,12 @@
return u2_cqb_lent(a);
}
}
u2_noun
u2_ckb_lent(u2_noun a)
{
u2_noun b = u2_cqb_lent(a);
u2z(a);
return b;
}

View File

@ -32,4 +32,12 @@
return u2_cqb_weld(a, b);
}
}
u2_noun
u2_ckb_weld(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqb_weld(a, b);
u2z(a); u2z(b);
return c;
}

View File

@ -8,10 +8,7 @@
/* functions
*/
u2_noun
u2_cqc_lsh(
u2_atom a,
u2_atom b,
u2_atom c)
u2_cqc_lsh(u2_atom a, u2_atom b, u2_atom c)
{
if ( u2_ne(u2_co_is_cat(a)) || (a >= 32) ) {
return u2_cm_bail(c3__fail);
@ -44,8 +41,7 @@
}
}
u2_noun
u2_cwc_lsh(
u2_noun cor)
u2_cwc_lsh(u2_noun cor)
{
u2_noun a, b, c;
@ -61,4 +57,12 @@
return u2_cqc_lsh(a, b, c);
}
}
u2_noun
u2_ckc_lsh(u2_noun a, u2_noun b, u2_noun c)
{
u2_noun d = u2_cqc_lsh(a, b, c);
u2z(a); u2z(b); u2z(c);
return d;
}

View File

@ -58,4 +58,12 @@
return u2_cqc_rsh(a, b, c);
}
}
u2_noun
u2_ckc_rsh(u2_noun a, u2_noun b, u2_noun c)
{
u2_noun d = u2_cqc_rsh(a, b, c);
u2z(a); u2z(b); u2z(c);
return d;
}

View File

@ -53,3 +53,15 @@
return u2_cqdb_gas(a, b);
}
}
u2_noun
u2_ckdb_gas(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdb_gas(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -49,3 +49,30 @@
return u2_cqdb_get(a, b);
}
}
u2_weak
u2_ckdb_get(u2_noun a, u2_noun b)
{
u2_noun c = u2_cqdb_get(a, b);
u2z(a); u2z(b);
if ( u2_no == u2_cr_du(c) ) {
u2z(c);
return u2_none;
} else {
u2_noun pro = u2k(u2t(c));
u2z(c);
return pro;
}
}
u2_noun
u2_ckdb_got(u2_noun a, u2_noun b)
{
u2_weak c = u2_ckdb_get(a, b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -49,4 +49,15 @@
return u2_cqdb_has(a, b);
}
}
u2_bean
u2_ckdb_has(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdb_has(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -105,3 +105,16 @@
return u2_cqdb_put(a, b, c);
}
}
u2_weak
u2_ckdb_put(u2_noun a, u2_noun b, u2_noun c)
{
// Bizarre asymmetry in old jets.
//
// (Mysterious comment in old glue code.)
//
u2_noun pro = u2_cqdb_put(a, b, c);
u2z(a); u2z(b); u2z(c);
return pro;
}

View File

@ -46,3 +46,15 @@
return u2_cqdi_gas(a, b);
}
}
u2_noun
u2_ckdi_gas(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_gas(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -8,9 +8,7 @@
/* functions
*/
u2_bean
u2_cqdi_has(
u2_noun a,
u2_noun b)
u2_cqdi_has(u2_noun a, u2_noun b)
{
if ( u2_nul == a ) {
return u2_no;
@ -35,8 +33,7 @@
}
}
u2_noun
u2_cwdi_has(
u2_noun cor)
u2_cwdi_has(u2_noun cor)
{
u2_noun a, b;
@ -46,3 +43,15 @@
return u2_cqdi_has(a, b);
}
}
u2_bean
u2_ckdi_has(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_has(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -48,3 +48,14 @@
return u2_cqdi_tap(a, b);
}
}
u2_noun
u2_ckdi_tap(u2_noun a, u2_noun b)
{
u2_weak c = u2_cqdi_tap(a, b);
u2z(a); u2z(b);
if ( u2_none == c ) {
return u2_cm_bail(c3__exit);
}
else return c;
}

View File

@ -1,4 +1,4 @@
/* j/3/cue.c
/* j/5/cue.c
**
** This file is in the public domain.
*/
@ -86,3 +86,12 @@
return u2_cqe_cue(a);
}
}
u2_noun
u2_cke_cue(u2_atom a)
{
u2_noun b = u2_cqe_cue(a);
u2z(a);
return b;
}

View File

@ -1,4 +1,4 @@
/* j/3/jam.c
/* j/5/jam.c
**
** This file is in the public domain.
*/
@ -133,3 +133,12 @@
return u2_cqe_jam(a);
}
}
u2_atom
u2_cke_jam(u2_noun a)
{
u2_atom b = u2_cqe_jam(a);
u2z(a);
return b;
}

View File

@ -1,4 +1,4 @@
/* j/3/trip.c
/* j/5/trip.c
**
** This file is in the public domain.
*/
@ -26,3 +26,11 @@
return u2_cqe_trip(a);
}
}
u2_atom
u2_cke_trip(u2_noun a)
{
u2_atom b = u2_cqe_trip(a);
u2z(a);
return b;
}

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