changeset 93d6cbd4a22c in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=93d6cbd4a22c user: Simon Forman <sform****@hushm*****> date: Sun Nov 10 14:35:57 2019 -0800 description: Dup. ANd portray_clause to stablize output logical variable names. changeset 35b6abf68c5d in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=35b6abf68c5d user: Simon Forman <sform****@hushm*****> date: Mon Nov 11 07:45:22 2019 -0800 description: Simple push of empty list. changeset 9deae5f7cf34 in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=9deae5f7cf34 user: Simon Forman <sform****@hushm*****> date: Mon Nov 11 07:51:58 2019 -0800 description: head_addr changeset ef444dd60832 in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=ef444dd60832 user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 08:37:20 2019 -0800 description: The i combinator. changeset bd20c3479cb2 in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=bd20c3479cb2 user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 09:02:19 2019 -0800 description: dexpr//1 changeset 0401c43a818b in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=0401c43a818b user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 09:03:54 2019 -0800 description: Charming. changeset 78f05c53abcb in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=78f05c53abcb user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 09:06:22 2019 -0800 description: Even "nicer". changeset 4e36ae9eebef in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=4e36ae9eebef user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 09:18:58 2019 -0800 description: Forgot to "return" from i combinator. changeset 3cb6b7b1a305 in joypy/Joypy details: http://hg.osdn.jp/view/joypy/Joypy?cmd=changeset;node=3cb6b7b1a305 user: Simon Forman <sform****@hushm*****> date: Tue Nov 12 09:23:31 2019 -0800 description: dup cons i diffstat: thun/asm-dump.txt | 302 ++++++++++++++++++++++++++++++----------------- thun/compiler.markII.pl | 140 +++++++++++++++++++-- thun/dump-asm.py | 2 + thun/joy_asmii.bin | Bin thun/markII.rst | 63 ++++++++++ 5 files changed, 381 insertions(+), 126 deletions(-) diffs (truncated from 607 to 300 lines): diff -r 51de5a4098e3 -r 3cb6b7b1a305 thun/asm-dump.txt --- a/thun/asm-dump.txt Sun Nov 10 10:58:47 2019 -0800 +++ b/thun/asm-dump.txt Tue Nov 12 09:23:31 2019 -0800 @@ -1,111 +1,191 @@ -[word(0), -do_offset(_2170), -allocate(_2180,20), -label(_2170), -mov_imm(0,0), -store_word(0,0,0), -mov_imm(0,4096), -mov_imm(1,_2242), -mov_imm(2,0), -mov_imm(3,0), -store_word(2,0,0), -labelv_imm(3,0), -store_word(2,0,0), -label(_2290), -sub_imm(1,1,0), -eq_offset(_2302), -load_word(4,1,0), -lsl_imm(5,4,2), -asr_imm(5,5,17), -eq_offset(_24346,4,17), -asr_imm(6,6,17), -eq_offset(), -add(5,5,1), -label(_2434), -lsl_imm(6,4,17), -asr_imm(6,6,17), -eq_offset(_2502), -add(6,6,1), -label(_2502), -load_word(3,5,0), -mov(1,6), -asr_imm(6,3,t(6,16383), -ior_imm(6,6,65535), -and(30), -and_imm(6,6,2), -sub_imm(6,6,2), -ne_offset(_2564), -mov_imm_with_shift(6,16383), -ior_imm(6,6,65535), -and(6,6,3), -do(6), -label(_2564), -sub_imm(0(_2810), -store_word(2,0,0), -do_offse,0,4), -sub(2,5,0), -hi_offset(_2748), -and_imm(2,2,32767), -label(_2748), -lsl_imm(2,2,15), -ior_imm(2,2,4), -label(_2810), -store_word(2,0,0), -do_offset,lsl_imm(2,2,17), -asr_imm(2,2,17), -e(_2290), -label(_2302), -do_offset(_2302), -label(_2864), -symbol(_2864), -lsl_imm(6,2,2), -asr_imm(6,6,17), -eq_offset(_3064), -add(6,6,0), -label(_3064), -9,7,17), -asr_imm(9,9,17), -eq_offset(lsl_imm(2,2,17), -asr_imm(2,2,17), -eq_offset(_3132), -add(2,2,0), -label(_3132), -load_word(7,2,0), -lsl_imm(8,7,2), -asr_imm(8,8,17), -eq_offset(_3214)q_offset(_3394), -sub(6,6,0), -and_imm,add(8,8,2), -label(_3214), -lsl_imm(9,7,17), -asr_imm(9,9,17), -eq_offset(_3282), -add(9,9,2), -label(_3282), -sub_imm(0,0,4), -sub_imm(8,8,0), -eq_offset,9,32767), -label(_3518), -mov_imm_wit(_3326), -sub(8,8,0), -and_imm(8,8,32767), -label(_3326), -sub_imm(6,6,0), -eq_offset(_3394), -sub(6,6,0), -and_imm(6,6,32767), -label(_3394), -lsl_imm(8,8,15), -ior(8,8,6), -store_word(8,0,0), -sub_imm(0,0,4), -sub_imm(9,9,0), -eq_offset(_3518), -sub(9,9,0), -and_imm(9,9,32767), -label(_3518), -mov_imm_with_shift(2,2), -ior(2,2,9), -do_offset(_2810), -label(_2242), -expr_cell(_2864,0)] \ No newline at end of file +[word(0), +do_offset(A), +allocate(_, 20), +label(A), +mov_imm(0, 0), +store_word(0, 0, 0), +mov_imm(0, 4096), +mov_imm(1, I1), +mov_imm(2, 0), +mov_imm(3, 0), +store_word(2, 0, 0), +label(H), +sub_imm(1, 1, 0), +eq_offset(I), +load_word(4, 1, 0), +lsl_imm(5, 4, 2), +asr_imm(5, 5, 17), +eq_offset(B), +add(5, 5, 1), +label(B), +lsl_imm(6, 4, 17), +asr_imm(6, 6, 17), +eq_offset(C), +add(6, 6, 1), +label(C), +load_word(3, 5, 0), +mov(1, 6), +asr_imm(6, 3, 30), +and_imm(6, 6, 2), +sub_imm(6, 6, 2), +ne_offset(D), +mov_imm_with_shift(6, 16383), +ior_imm(6, 6, 65535), +and(6, 6, 3), +do(6), +label(D), +sub_imm(0, 0, 4), +sub_imm(5, 5, 0), +eq_offset(F), +sub(2, 5, 0), +hi_offset(E), +and_imm(2, 2, 32767), +label(E), +lsl_imm(2, 2, 15), +ior_imm(2, 2, 4), +do_offset(G), +label(F), +mov_imm(2, 4), +label(G), +store_word(2, 0, 0), +do_offset(H), +label(I), +do_offset(I), +label(J), +symbol(J), +lsl_imm(6, 2, 2), +asr_imm(6, 6, 17), +eq_offset(K), +add(6, 6, 0), +label(K), +lsl_imm(2, 2, 17), +asr_imm(2, 2, 17), +eq_offset(L), +add(2, 2, 0), +label(L), +load_word(7, 2, 0), +lsl_imm(8, 7, 2), +asr_imm(8, 8, 17), +eq_offset(M), +add(8, 8, 2), +label(M), +lsl_imm(9, 7, 17), +asr_imm(9, 9, 17), +eq_offset(N), +add(9, 9, 2), +label(N), +sub_imm(0, 0, 4), +sub_imm(8, 8, 0), +eq_offset(O), +sub(8, 8, 0), +and_imm(8, 8, 32767), +label(O), +sub_imm(6, 6, 0), +eq_offset(P), +sub(6, 6, 0), +and_imm(6, 6, 32767), +label(P), +lsl_imm(8, 8, 15), +ior(8, 8, 6), +store_word(8, 0, 0), +sub_imm(0, 0, 4), +sub_imm(9, 9, 0), +eq_offset(Q), +sub(9, 9, 0), +and_imm(9, 9, 32767), +label(Q), +mov_imm_with_shift(2, 2), +ior(2, 2, 9), +do_offset(G), +label(R), +symbol(R), +lsl_imm(5, 2, 2), +asr_imm(5, 5, 17), +do_offset(D), +label(S), +symbol(S), +lsl_imm(6, 2, 2), +asr_imm(6, 6, 17), +eq_offset(T), +add(6, 6, 0), +label(T), +lsl_imm(2, 2, 17), +asr_imm(2, 2, 17), +eq_offset(U), +add(2, 2, 0), +label(U), +sub_imm(6, 6, 0), +eq_offset(D1), +sub_imm(10, 0, 4), +mov_imm(9, 4), +label(B1), +load_word(3, 6, 0), +lsl_imm(7, 3, 2), +asr_imm(7, 7, 17), +eq_offset(V), +add(7, 7, 6), +label(V), +lsl_imm(8, 3, 17), +asr_imm(8, 8, 17), +eq_offset(W), +add(8, 8, 6), +label(W), +mov(6, 8), +sub_imm(0, 0, 4), +sub_imm(8, 8, 0), +eq_offset(X), +lsl_imm(7, 7, 15), +ior(7, 7, 9), +store_word(7, 0, 0), +do_offset(A1), +label(X), +sub_imm(7, 7, 0), +eq_offset(Y), +sub(7, 7, 0), +and_imm(7, 7, 32767), +label(Y), +sub_imm(1, 1, 0), +eq_offset(Z), +sub(1, 1, 0), +and_imm(1, 1, 32767), +label(Z), +lsl_imm(7, 7, 15), +ior(7, 7, 1), +store_word(7, 0, 0), +label(A1), +sub_imm(6, 6, 0), +eq_offset(C1), +do_offset(B1), +label(C1), +mov(1, 10), +label(D1), +load_word(7, 2, 0), +lsl_imm(6, 7, 2), +asr_imm(6, 6, 17), +eq_offset(E1), +add(6, 6, 2), +label(E1), +lsl_imm(7, 7, 17), +asr_imm(7, 7, 17), +eq_offset(F1), +add(7, 7, 2), +label(F1), +sub_imm(0, 0, 4), +sub_imm(6, 6, 0), +eq_offset(G1), +sub(6, 6, 0), +and_imm(6, 6, 32767), +label(G1), +sub_imm(7, 7, 0), +eq_offset(H1), +sub(7, 7, 0), +and_imm(7, 7, 32767), +label(H1), +lsl_imm(6, 6, 15),