diff --git a/media/refs/bulb.png b/media/refs/bulb.png new file mode 100644 index 000000000..99a2daa3b Binary files /dev/null and b/media/refs/bulb.png differ diff --git a/site/2023.html b/site/2023.html index 5d4dcc42c..7507174c8 100644 --- a/site/2023.html +++ b/site/2023.html @@ -4,6 +4,18 @@
XXIIVV

2023

+

17P

+
+

2023-08-06 Lambdas

+

So, the first pass of review for Wiktopher is done.

+

Implementing the recent changes to Varvara in Oquonie, I noticed how many single-purpose labels I used merely to hop over short lengths of code, enough that having ran of ideas for names to called them, I would default to things such as &skip, or &continue. The solution was to create anonymous labels, and as to be capable of nesting them, I ended up inadvertently adding lambdas to Uxntal which has drastically improve code readability, and as a side effect allowed for the rapid creation of tree data-structures.

+ + +
+

17O

2023-07-28 Maintenance All The Things

@@ -12,14 +24,14 @@

2023-07-28 Maintenance All The Things

Week after week, I find myself revisiting Drifblim's implementation, and each time I leave convinced that I've succeeded in improving it as much as I ever could, -considering the negligeable scale of the program, yet more elegant solutions, +considering the negligible scale of the program, yet more elegant solutions, entirely unimaginable at the time, always become nothing less than obvious, a week later. — The destination that I'm grasping for is getting ever farther at the same rate that I approach it, but for as long as the program decreases in size, and increases in reliability, the chase remains exhilarating.

diff --git a/site/drifblim.html b/site/drifblim.html index da4e95a3d..d74828847 100644 --- a/site/drifblim.html +++ b/site/drifblim.html @@ -51,137 +51,132 @@

drifblim.rom

This is the hexadecimal data of the drifblim assembler, I am keeping a copy of it here just in case.

-8017 1620 0006 a007 c660 0663 a001 1380
-1037 0080 1216 0680 5e08 2000 2880 0460
-0567 2000 0100 a001 2d80 1037 0080 1216
-8035 6005 5420 0001 0060 003e a080 0310
+8017 1620 0006 a007 7d60 061a a001 1380
+1037 0080 1216 0680 5e08 2000 2880 0660
+0534 2000 0100 a001 2d80 1037 0080 1216
+8037 6005 2120 0001 0060 003e a080 0010
 1d80 0f17 0002 a001 4d80 1037 0080 1216
-8035 6005 3420 0001 00a0 0160 8010 3700
-8012 1680 0460 0521 2000 0100 6000 0ba0
-0036 2660 05ea 6005 d600 a000 3680 b837
-a001 b617 a000 0180 ba37 a004 3234 a009
-2760 059e a000 0311 a000 00a0 0390 35a0
-0a57 a004 3235 a000 00a0 0448 3580 0160
-0016 2000 0e80 0060 000e 2000 0660 0402
-4004 4ca0 01b6 176c 8000 11a0 0100 6001
-f580 00a0 04c7 15a0 07f6 6002 15a0 0005
-6000 0480 0310 6c80 a837 a000 0180 aa37
-a000 00a0 01fe 6004 0b20 0009 2180 0060
-0017 40ff ee1d 2000 0fa0 0927 a000 6760
-052e a008 3060 01b2 6c80 6660 046b 2000
-016c a000 6726 6000 0340 0523 9480 2808
-2000 2a94 8008 13a0 0927 a008 f194 8000
-0820 0037 a000 0338 aa20 fff1 2222 6002
-e420 00f3 6002 f420 0025 4000 7ba0 0267
-6003 a120 04e9 a000 2889 2000 06a0 087d
-6001 5701 0920 ffe5 4004 d423 2134 2c60
-02da 4000 f921 6002 7c80 0130 3940 007a
-2160 0271 4000 7321 4001 5721 6001 3340
-016f 8080 6000 d721 6001 b260 0263 4000
-cd80 8060 00c8 2160 01a3 3403 4000 bf80
-a060 00ba 2160 0195 3440 00ae 2180 2040
-009b 2180 4040 0095 8060 4000 9021 0660
-03d8 8004 0880 501f 8080 1d60 0090 4000
-5621 4000 4c22 4001 dfa1 a009 27af 6004
-3f60 044b 6f40 fedf 226c 0780 801c 2000
-14a0 0000 a820 000a 8000 6000 6121 aa20
-fff6 2222 6c80 0130 a001 012b 2000 06a0
-086f 6000 9580 0130 3840 008a 9460 003e
-2194 20ff f722 6c06 6003 6f06 8002 0820
-000d 8004 0820 000f 22a0 083f 4000 6b02
-6001 a203 4000 1760 019b 4000 0d60 000e
-6000 ea34 8001 3021 2139 0460 0000 8034
-13a0 0001 1008 2000 1980 0010 2000 25a0
-0000 8001 302b 2000 29a0 03b5 80be 3740
-0020 8010 1280 0008 2000 17a0 0884 6000
-1940 000e 8000 8000 0820 0006 8001 3080
-ce33 8001 3021 8001 316c 6003 d5a0 0103
-116c 0660 02e4 80c7 6002 df18 802f 0a20
-000a a000 0060 0358 a000 c76c a008 6640
-ffd8 26a0 0097 6003 4726 a000 c78f 6003
-3fa0 2f00 4f60 02ad 8f31 8000 4f01 80d2
-3380 0010 2000 0222 6c60 0119 2000 3060
-0129 2000 2a26 6000 7121 1d20 0028 8001
-30a0 0a57 af35 6161 6126 ef60 0302 6002
-866f 3821 80eb 33a0 0000 2180 fa33 6c22
-a008 5940 ff74 22a0 0835 40ff 6d94 807b
-0920 0003 6000 5f80 0010 2000 2494 8026
-0920 0004 2160 ff5a 6000 1fa1 a000 0028
-2000 08a1 2194 0105 0515 6ca0 0846 60ff
-3922 a004 966c ffff 3f00 800d 33a0 0432
-34a0 0a57 a000 0338 26a0 0000 6002 1f20
-000e 6002 0d21 aa20 ffea 2222 a0ff ff6c
-a000 0339 236c 8000 8180 fb13 06a0 0957
-a180 fa33 1540 0012 80f3 32a0 0001 3994
-6000 0760 ff2b 80e5 336c 0680 041f 6002
-1c04 6002 1880 0a33 a004 fc6c 6c61 6d62
-6461 3030 0060 002d 2002 11a0 083f 40fe
-b980 0010 2000 1a34 8001 3039 a000 0239
-26a0 0080 3802 2000 0203 6ca0 0850 60fe
-9922 80ff 6c26 9460 01bb 0120 0004 2280
-006c 2194 20ff ef22 8001 6c26 6000 0d20
-0007 26a0 08ee 4001 8d80 016c 2fa0 2000
-8000 0780 031a a008 8e38 ef60 0178 2000
-0a01 8a20 ffea 2262 8000 6c03 0680 0008
-8070 1f1d 6fa0 0003 38c0 0094 8020 0780
-3208 2000 2106 1807 8072 0820 0018 0618
-0780 6b08 2000 0f06 1807 8000 0820 0006
-a008 7660 fe14 030f 5d21 9420 ffcd 224f
-186c a000 3626 6000 f9a0 0820 2760 0170
-2480 b837 a00a 57a0 0002 80ba 3726 80be
-37a0 0003 3826 6000 de21 af80 ba37 2680
-be37 6f38 26a0 0003 3814 20ff da22 8000
-0505 156c 80ac 3780 a236 a000 0028 6ca0
-0432 34a0 0a57 a121 1420 002d a000 0338
-9480 4119 801a 0b20 001f 9480 2808 2000
-1826 a007 f660 0096 2000 0ea0 07ea 6001
-2e26 6001 2aa0 0a19 1760 0076 21aa 20ff
-c522 22a0 07fc 6001 16a0 0036 6001 10a0
-0807 6001 0aa0 0390 34a0 00ff 3960 0105
-a008 0c60 00f9 a004 4834 6000 f8a0 0814
-6000 eca0 081c 4000 e607 8021 0b20 001d
-9080 2f08 2000 100f 8000 cf90 1801 314f
-9001 0411 8000 6ca0 0860 60fd 1d03 9080
-0005 116c 0190 20ff fb6c 0660 fff7 0419
-6c21 9420 fffb 6c26 60ff f724 396c 2f94
-d44f 8920 000c 061e 8820 0006 2221 6140
-ffed 2362 086c 2fd4 944f 0920 0002 6121
-7434 6f28 6c80 3019 0680 0a0b 2000 0d80
-2719 0680 100b 2000 0302 80ff 6c80 0f1c
-0680 090a 8027 1a18 8030 186c e000 00c0
-407f 9460 ffcf c000 0f78 2194 20ff f022
-6f6c a000 0027 3521 21aa 20ff f522 226c
-2f94 8000 ef35 6121 9420 fff5 2262 6c80
-0005 0595 2194 20ff fa15 6c94 8018 1721
-9420 fff7 22a0 0a18 176c 9480 1917 2194
-20ff f722 6ca0 2710 e000 fbbb a000 0abb
-3a39 4488 07cf 081c 2000 0806 8030 1880
-1917 4122 a000 0a3b 4441 cf20 ffdd 6222
-226c a008 2560 ffc2 60ff bfa0 2019 17a0
-0067 60ff b5a0 0807 60ff b4a0 0097 60ff
-aea0 0a19 176c 7573 6167 653a 2064 7269
-6662 6c69 6d2e 726f 6d20 696e 2e74 616c
-206f 7574 2e72 6f6d 0a00 2d2d 2055 6e75
-7365 643a 2000 5245 5345 5400 4173 7365
-6d62 6c65 6420 0020 696e 2000 2062 7974
-6573 2800 206c 6162 656c 7300 292e 0a00
-2e73 796d 0021 2120 4572 726f 723a 2000
-4669 6c65 0044 7570 6c69 6361 7465 004e
-756d 6265 7200 5265 6665 7265 6e63 6500
-4469 7374 616e 6365 0053 796d 626f 6c00
-546f 6b65 6e00 5375 626c 6162 656c 0052
-6577 696e 6400 4f70 636f 6465 004e 6573
-7465 6400 5a65 726f 2d70 6167 6500 4c49
-5449 4e43 504f 504e 4950 5357 5052 4f54
-4455 504f 5652 4551 554e 4551 4754 484c
-5448 4a4d 504a 434e 4a53 5253 5448 4c44
-5a53 545a 4c44 5253 5452 4c44 4153 5441
-4445 4944 454f 4144 4453 5542 4d55 4c44
-4956 414e 444f 5241 454f 5253 4654 4252
-4b7c 0285 2402 9040 0297 2602 9b2c 02a2
-5f02 a72e 02b1 2d02 b63b 02bf 3d02 c43f
-02cc 2102 d25b 0308 5d03 087d 02f5 2302
-dd22 02f1 7e02 f9
+8037 6005 0120 0001 00a0 0160 8010 3700
+8012 1680 0660 04ee 2000 0100 6000 0ba0
+0038 2660 05a1 6005 8d00 a000 3880 a837
+a001 a617 a003 d934 a008 d660 055b a000
+0011 a00a 06a0 03d9 35a0 0000 a003 ef35
+8001 6000 1920 0011 8000 6000 1120 0009
+6004 0e60 03c9 4004 2aa0 01a6 176c 8001
+11a0 0100 6001 8a80 00a0 046e 15a0 07ad
+6001 c6a0 0007 6000 0480 0010 6c80 a837
+a000 0180 aa37 a000 00a0 01f4 6003 e920
+0009 2180 0060 0017 40ff ee1d 2000 0fa0
+08d6 a000 6960 04ef a007 e660 0147 6c80
+6860 0442 2000 016c a000 6926 6000 0340
+04e4 9480 2808 2000 2a94 8008 13a0 08d6
+a008 a094 8000 0820 0037 a000 0338 aa20
+fff1 2222 6002 ab20 00c1 6002 bb20 0025
+4000 7ba0 025d 6003 7f20 04aa a000 2889
+2000 06a0 082c 6000 ec01 0920 ffe5 4004
+9523 2134 2c60 02a1 4000 c721 6002 2d40
+00cf 2160 0226 8002 3038 4000 c421 4001
+0821 6000 e440 0120 8080 6000 a521 6001
+8f60 022a 4000 9b80 8060 0096 2160 0180
+3403 4000 8d80 a060 0088 2160 0172 3440
+007c 2180 2040 0069 2180 4040 0063 8060
+4000 5e21 0660 03af 8004 0880 501f 8080
+1d60 005e 4000 2421 4000 1a22 4001 90a1
+a008 d6af 6004 0060 040c 6f40 fedf 226c
+9460 003e 2194 20ff f722 6c06 6003 7806
+8002 0820 000d 8004 0820 000f 22a0 07f5
+4000 3202 6001 8503 4000 1760 017e 4000
+0d60 000e 6000 f934 8002 3021 2139 0460
+0000 0680 0230 a12f a080 0038 1560 000d
+6f80 0231 6c60 0401 a001 0011 6c20 0001
+6c80 0110 2000 016c 8002 3007 2000 06a0
+0833 60ff e080 0431 6c06 6003 0a80 c960
+0305 1880 300b 2000 06a0 081c 40ff c6a0
+0000 6003 62a0 00c9 6c26 a000 9960 0357
+26a0 00c9 8f60 034f a02f 004f 6002 d38f
+3180 004f 0180 d833 8001 1020 0002 226c
+6001 2f20 0030 6001 3f20 002a 2660 0034
+211d 2000 2880 0230 a00a 06af 3561 6161
+26ef 6003 1260 02ac 6f38 2180 eb33 a000
+0021 80fa 336c 22a0 080f 40ff 5822 a007
+eb40 ff51 800d 33a0 03d9 34a0 0a06 a000
+0338 26a0 0000 6002 8220 000e 6002 7021
+aa20 ffea 2222 a0ff ff6c a000 0339 236c
+9480 7b09 2000 0360 0033 8001 1020 0024
+9480 2609 2000 0421 60ff 2e60 ffb6 a1a0
+0000 2820 0008 a121 9401 0505 156c a007
+fc60 fef1 22a0 0469 6cff ff3f 0080 0081
+80fb 1306 a009 06a1 80fa 3315 4000 1280
+f332 a000 0139 9460 0007 60ff 2b80 e533
+6c06 8004 1f60 0242 0460 023e 800a 33a0
+04a3 6c6c 616d 6264 6130 3000 6000 4320
+0006 a007 f540 fe9d e000 00c0 407f 9460
+0200 c000 0f78 2194 20ff f022 6f6c 8001
+1020 001a 3480 0230 39a0 0002 3926 a000
+8038 0220 0002 036c a008 0660 fe67 2280
+ff6c 2694 6001 cb01 2000 0422 8000 6c21
+9420 ffef 2280 016c 2660 000d 2000 0726
+a008 9d40 019d 8001 6c2f a020 0080 0007
+8003 1aa0 083d 38ef 6001 8820 000a 018a
+20ff ea22 6280 006c 0306 8000 0880 701f
+1d6f a000 0338 c000 9480 2007 8032 0820
+0021 0618 0780 7208 2000 1806 1807 806b
+0820 000f 0618 0780 0008 2000 06a0 0825
+60fd e203 0f5d 2194 20ff cd22 4f18 6ca0
+0038 2660 0109 a007 d627 6001 6a24 80a8
+37a0 0a06 a000 0280 aa37 2680 ae37 a000
+0338 2660 00ee 21af 80aa 3726 80ae 376f
+3826 a000 0338 1420 ffda 2280 0005 0515
+6ca0 0038 80a8 3780 0430 a000 ff39 80aa
+37a0 8100 80ae 376c 80ac 3780 a236 a000
+0028 6ca0 03d9 34a0 0a06 a121 1420 002d
+a000 0338 9480 4119 801a 0b20 001f 9480
+2808 2000 1826 a007 ad60 008f 2000 0ea0
+07a1 6001 1126 6001 0da0 0a19 1760 006f
+21aa 20ff c522 22a0 07b3 6000 f9a0 0038
+6000 f3a0 07be 6000 ed80 0430 a000 ff39
+6000 e9a0 07c3 6000 dda0 03ef 3460 00dc
+a007 cb40 00d0 0780 210b 2000 1d90 802f
+0820 0010 0f80 00cf 9018 0131 4f90 0104
+1180 006c a008 1660 fcdb 0390 8000 0511
+6c01 9020 fffb 6c06 60ff f704 196c 2194
+20ff fb6c 2660 fff7 2439 6c2f 94d4 4f89
+2000 0c06 1e88 2000 0622 2161 40ff ed23
+6208 6c2f d494 4f09 2000 0261 2174 346f
+286c 8030 1906 800a 0b20 000d 8027 1906
+8010 0b20 0003 0280 ff6c 800f 1c06 8009
+0a80 271a 1880 3018 6ca0 0000 2735 2121
+aa20 fff5 2222 6c2f 9480 00ef 3561 2194
+20ff f522 626c 8000 0505 9521 9420 fffa
+156c 9480 1817 2194 20ff f722 a00a 1817
+6c94 8019 1721 9420 fff7 226c a027 10e0
+00fb bba0 000a bb3a 3944 8807 cf08 1c20
+0008 0680 3018 8019 1741 22a0 000a 3b44
+41cf 20ff dd62 2222 6ca0 07db 60ff c260
+ffbf a020 1917 a000 6960 ffb5 a007 be60
+ffb4 a000 9960 ffae a00a 1917 6c75 7361
+6765 3a20 6472 6966 626c 696d 2e72 6f6d
+2069 6e2e 7461 6c20 6f75 742e 726f 6d0a
+002d 2d20 556e 7573 6564 3a20 0052 4553
+4554 0041 7373 656d 626c 6564 2000 2069
+6e20 0020 6279 7465 7328 0020 6c61 6265
+6c73 292e 0a00 2e73 796d 0021 2120 4572
+726f 723a 2000 4669 6c65 0044 7570 6c69
+6361 7465 004e 756d 6265 7200 5265 6665
+7265 6e63 6500 4469 7374 616e 6365 0053
+796d 626f 6c00 546f 6b65 6e00 5375 626c
+6162 656c 004f 7063 6f64 6500 4e65 7374
+6564 005a 6572 6f2d 7061 6765 004c 4954
+494e 4350 4f50 4e49 5053 5750 524f 5444
+5550 4f56 5245 5155 4e45 5147 5448 4c54
+484a 4d50 4a43 4e4a 5352 5354 484c 445a
+5354 5a4c 4452 5354 524c 4441 5354 4144
+4549 4445 4f41 4444 5355 424d 554c 4449
+5641 4e44 4f52 4145 4f52 5346 5442 524b
+7c02 7b24 0282 4002 8d26 0291 2c02 985f
+029d 2e02 a72d 02ac 3b02 b53d 02ba 3f02
+c221 02c8 5b02 fe5d 02fe 7d02 eb23 02d3
+2202 e77e 02ef