From 54c4c651bbefab00f1d072d207a1fd263a130944 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Mon, 20 Apr 2026 11:11:47 -0400 Subject: [PATCH] portal-rng: asm xoshiro256** + cross-impl tests + default seed=0 Completes ticket 0001 started in 27f468c. All three impls now carry bit-identical xoshiro256**; portal state round-trips across process boundaries in every producer x consumer cell (Python <-> C <-> asm). asm impl: - 4 new builtins: random-seed!, random-int, random-state, random-state! - g_rng_state in BSS (4 x u64); rng_splitmix64_step, rng_seed, rng_next - Binary portal header bumped LUMBDAB1/48 -> LUMBDAB2/80; carries 32 bytes of rng state at offsets 40..64, reserved moved to 72 - No float support in asm, so (random) intentionally omitted there - _start seeds with 0 so the stream is deterministic from startup Python + C (supplements 27f468c): - rng_seed(0) auto-invoked at module load / register_portal_builtins so (random) without explicit (random-seed!) returns a real value instead of the all-zero xoshiro fixed point Tests: - tests/functional.lsp: 7 new shared assertions (Python + C) - asm/test.sh: 5 new asm-local assertions (142 -> 147) - tests/portal-rng-save.lsp / portal-rng-load.lsp: portable S-expression portal that captures both state AND next-5 baseline so loader self- verifies without a separate harness - tests/portal-cross-test.sh: 9 new producer x consumer RNG cells; all 18 cells pass end-to-end Verified: seed=42, (random-int 1000000) draws 1..10 = 558742 543102 559009 124193 317476 750584 200754 814407 344958 929085 identical in Python, C, and asm. unmoad scan: zero new findings in added code. --- asm/lumbda | Bin 56264 -> 57560 bytes asm/lumbda-gc | Bin 60896 -> 62192 bytes asm/lumbda-gc.o | Bin 64088 -> 66296 bytes asm/lumbda.o | Bin 54760 -> 57104 bytes asm/lumbda.s | 275 +++++++++++++++++++++++++++++++++++-- asm/test.sh | 5 + c/portal.c | 3 + lumbda.py | 7 +- tests/functional.lsp | 24 ++++ tests/portal-cross-test.sh | 35 ++++- tests/portal-rng-load.lsp | 17 +++ tests/portal-rng-save.lsp | 30 ++++ 12 files changed, 383 insertions(+), 13 deletions(-) create mode 100644 tests/portal-rng-load.lsp create mode 100644 tests/portal-rng-save.lsp diff --git a/asm/lumbda b/asm/lumbda index 6cf479073e35b5cee0390a656dade2425ca93eaf..1ef3a7b3211693920750812c541428933de5eb46 100755 GIT binary patch literal 57560 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 R;>$*BYO*q9@7*}g{{bjucL4wZ diff --git a/asm/lumbda-gc b/asm/lumbda-gc index 55eba6e00ef99a1847bf4e32ed9c4b8185659974..5f58cf6ba667bcb0888ebee618079ac5f652253a 100755 GIT binary patch literal 62192 zcmeIb33$}i+4uj;G9-XF0Ywo(BcOsx1QcWmkU#>zk;$F_0d<@tlSM)jCKDEmip@|N z$7r9b-JiDF?P=B4*1A_Epak5vDvDL4E)%07Zh%_z|K8`^XJ&pkp-EP#j<~M-af(&c^+%-|as7dU=-Q%f z!+!A~1?al@uPN$y0OA*aO;cjg)X!miv09%uKzz=KU9N4_h(F?b0t5~_jYE&?F^J>= zX{61(PGd?Xq^sX22RpLQ?Xs_aRLN6!*_*ezZ|b%q!+r#Rv58A8D|QfH@D_VA2WIEo zt0?TyDF{yo+oO!G=^qutxo2A@B5}K7J5eAAD>UEkJTx}6(~k6bBcI1ULJ}0X7a(@Z zF!CXS`I8QY0(HCkZh(8PPBv26*^^;+zI({t+~1L5_w-Oy6=mg1tMW_p%ks-1d_&qyzUI-gnMd#(?;?k1}z@+1m|+nhJ@&e7W&lF{!DzlcL7v^;OhUQgsP%5Ze#ENXO} zUu3&G?}ek?HEiO20Fm_PAdbC1#qvhZdCuQF16n!B+cVPX=&D{j!*!oFm;nO7$|^ zeb3^Tv2-Z`ZK5??x4NjeH&X^vv4Xe(I9w@!j^UmxIG0 zY=h9A$=!Xsr+;hTYpNot_o1n+;4TIZZE6=jpN1~d2NS__aecJA)ajgullxh!YZQkV$zeQQ= z-vy@`gu14mOZw3M$|LZk7W8p^@9D^!K=L7@(OXM|e& zenHhcPNh=^5xp`qHUjp(?~qHTa5+SMizAC(nH4(^_TFkzik^Ui^~`$K-FYFb<@u#c zFN|*7kr~?ojZ5;Eub^VwYe$Q-l-f>r=Xj`vFaY(eNYrR zpt=Gl{6$sZSkxm`VC|CV7?j!LcK_o@L}<{GXzsSYG;gHep7mvWz8yW!6Zyo`-Irw_ z+(F@nMxwmFwj<|xQ^tOAcbau!*F`61_Pv0X{~`jkBNZ42$L@lt9Uh=${cwA1%2&u~ z&(^UBA^)O_SE6#}{sq2cbcSt5$a)7^=PBzB8jt71RpYY(bl^6rfpxg6q5%{hOyrtMmhR+PEX`hgzrM( zVTkw6dh?1CY5MBk=dx3tMFNf=N@jm|-&^+S{b)RP>}Qjj}7baC!vcNmLVD|d?f zy79zjxvzg6_TCdHlZOIqn~xFJsSUEsm%^PfPb z$Z~(~6lFnk-`;mS2k@&3yX#w-u?s#`y)$j49T`O{$yu*lam=;HAG4)06DzLnzWrt^ z(z$bxs=Ru{8p9GyRVB5=X-IIahm+|JKMkkcN$zkrnK_{`v0};)>fl+`q||&d^b4+| zlPIt#Jf@T;1oyTg06G{_x(M@t#*a2oooY6#t5rcu&fGWN)B ztOnB%goPC@t#0PwJ2hn6b7L6lufXIp{r49lj-G9_yzI+^{oW+|6xg?DJ56JK*|3L_ z?Bu^b$&P^ZzArj=;u0E1RicoH0p_~sTvtM+Yx-F_m}4lK`w{FJ+CGHrze71v5Z)*f zu-vRRF@|iv5CdY@^r}3S1?uaGxidQV*W?;`-K)03@r2!={hXHUMt@V7VPdLOQ>6g&K9@Xib~aF+EWLXX;Sa94(ZCXwWK@zWWlMKK7^#m1|F^ zBFYdd^l@ta@dQ4pwMHffom|q9?cV5kPv=+tA#BaQ`Z_eBuOQ+12JQKig(`P6uyQrU zgI}#RUe_8!2hdoeHU5Y#1DXys4J1=9E^=vKl3kXF?^LbZq;+*2RhQAGKDzOV%-Bch zFGzbejS`O}eDz|7kD8s9?2EEkLA_@4)(zuJ6S@y+-RxxD<@UkdcGuWHlT+vR`8#M= zu(bnY(Gxq;ru2=W_0oy<)aS7gq!wl$Jg{lo6gX}<4$Gh}*SD0nt@G_kyJ@Y2MSQ$) zO5ud{!S;$OI+pk>sS~@y`zR>v7~J9AT5{=u3=AFjQO(eqAJ7uI`h8kTac}+&NxUkI zj`Bt?#j1uHz1qFGH{XDZW3cpQQZgck^nyO}VN8!`Slwgs zt(U?>X%%{sUJ83P8j-v(#k%kk-}Xy10MNLl6yCE#An-vDhbw3==?7&^$WX(M&s9npsxvjl3H>Q&r~RNkV z_3*yed!L1noSL{7Q6;INIy=&<23I>?wrCOQRiZVN8MR~0MBMNTE z@@ijPVLbw14Lh^%J`8_IUGHJ6kW_tp;w73?q4A=dGxvi9I7}E*rd!2d)#43Da_GxQ zE&B3Xw_!64QQi~^}fNh z*BJu@I93NZE)n3XD!><2Gw&U)!;FW6lGh#%sD&U_fG7=W1DJ=9lSdQdHwORrRExq1 z*yTtHO@fKN{Z)Bn+jb(LTD_=)adWtVW{ExgXR6Au9p#aN%l8e6tsSwKa?DTb#j!8; z(TDy0Y9Ef+s4;6fzJ^h4Iog(mrI8A`07u5I(7a_ha*f9^(~dlwXblGtAhm`SqB*ci zX=dL&YBqeP_dV?PDeJuMbcg?oW)ZcVeL_o^_XZl=_)6(hg@K;(o!yUc`GXV6?bcb)&5;pjmbU)L12%D?#Xz46$AdXe+Ys2+dM!Kmc++~MzQ>3r1NaOHP8 z(xRmq?(l6|y1*TNPD?Z0;jgtc+Z`T@K7o|ZafkD@l!_VrF7rVnXI%L}&z8$B2aP^=*Ml0z;cX;s_ zB`tA>f3GF4JN&kmirnGR82;d+7_M3>afe?%OR-XHiqBS3nLB*^IZ7&bhtHj?qzZTV z4lPx>!=*aBDtEZx6y>_q9bTZNW$v)0!&{E_tXZ`?{Jxe}pucHpC0gvM%I`%et867* z><(Y5rAyr5{aW%Nzo#kJOWom#kwk{ay3~e z(yhFYRo|lr2xJlka_|)jr@(}RO-KsHXys?r0Djzm+}XE}e2hr=;1e-1wK+Uz+TDk7 zs((a2W_5>XqZOaW94bfmwDH>ifhYG3Wi%!IugB)Te$@ZaW7ivc=%J%;#oXbU|Bc=uOfScijtX^%&{mCQDrW{e z57h|O;*2(ou8tFErAAY*I_TM$VNa$5A6f@dQ!_gV-E>FA{y=3N9Tu9EVqrn)YKECu zy$lKs!BQu-_ye3HpF+z`x~q?#Xm_nkI*FMDFK!oBp00Drb5fVmn}+DH6FG3VcBf=u zbCW{0uIb;)p?Md`*Jy6x^zKq8q z!uRU!$iVI7DE$B{bSl^%c@AQA{W9Ix9*d~GQ@7HYM4C6HC)P4xtp8SUv1tSPHEqVi z^5tJ9+0nFdCEe`~zn~8u2hOAH3oewtDr9@s*P#`(qdL`9BTgibNQ`qlD3U2y4*kw4*>_VQne)79wfp7$}_f@91HT zya$_tqmH`h+q6H#Kyerg@H7fxQyENQR>%k_z#lfi8=Z~Kos52Qm+K9c*J8H{2!|wdr6`B&?$-N@8RO&cEJ> zy`ay(dhBRuLT2o}H^`-6LZ%~`_xNH5vE2M$kGv!ic_yaGXG|G&s%Ufq$|(W*RAU6G zsC3i}n2y_gvDSYh9eDm|Z(=E`izIT)1XW|6M2cqOkpq3j`swScJaD`|AuIN-wy46n z2eStbPaj3a$ujxV@_(Z^Q2x`CA~f-Z5e1GrC<^qkSSiKgDDcO)hyM3bMBXr=453ht z^l(IBAWc(Evn```i^H|K7(H-Ifgu*p8=2;U_W2wvD#)Yum4Skv5f37Z4ng@;1V<$t z+cW5+5rAwe?2q9ZVI=v4HxJ>`4nKNBz@c z08=D9^u*HsKJXYq8j)_{4fA7x`<{Xn^rs#iL0I{vvCfy^e>tAaNV9wJ)PrReY@tI< zx}n9s0%u#e(V@17Gqn@Z*X_=KAm%x0`Im-A9T#TOe&`8m<()m5vFQj+g%x?sj$Dif z#)_~;t}+3fn-lNTX>+qI0IFATj_cx`Io7Ca2HP0jAR`rfO_gab)F)@eHd` zdY&ulw&xt{-uwX_`F34}M?}_A(AbazT$?d_kbCp<NT?p0T21^3XQ>|FL|3joRYWc>%n*&cGXrq)$oya?t6olQf7g)<5g}vN9_zMO7}hM zGh;tCx4sB&^a>&XH(?kS$sJH z$8g$@J=^W1szwTRjqBe0TjiJbIag)&?QwXaVj(Ro$2%y@jWSHtlyD-uH!*6fHNkRI zS*WJLw)>BG=xSHr$5>ayX1_9UM@FALGMM-(ck?bgBP-@QJjYwn$wAkDx6BlX%xI+h*&&oxpNz? zhai;UY>M~j6M)|7TzN7ElGrLzrMmxw+R?`}psQysW#KnWRE3Yzu7L{QECnCKSvPj$ zBcE)da*Nr|#q4PMHv8aX)H*P@b;q*%QfUX=6T1dc!K8yT1 zQsHR3qwoNFh{DCM9Xh|xykd>I-r_Z#z`_u3UDmIFUmY+NwVt2orZ4b`vrU%b+ zQTrGj(V^)kuzyG2y(lC#EXN)Pmo z%)a+9ba&-Gg%f=%cF8kp>~`_k{e>EU>9zz@;&bYjEs6!m1vCZP(K4D6J9lPydLE5$ zrX8igb-c|1Gs`Kuzp3c<;|d3}sH+y4M}&7X&kvGMByilhH&JWPcsjx1q} zW$zwx223Y_cC_G`0ZyxqqV4dHUQqcA9rDC4;~dUvg1{;$cKM3~k2UepIK#cUst*lD zRUSQw;oedRd++)98YoEgu8lhpv0Bj505{6++@Fa{Ry?yl5|LrK@52)#yJ!J2(C&hs zAO9ECyEIX~S3Sk$jXjH=Tq7T=%dme{y+@Y4E(-cJOwy>&l|8^p%$~G!Sy?IdA6g!K z`J`SRsJk^(I-XbV+UQ2jW5K$Oa__!2V+)oRX65p}T7wQW#i~lBl@Kj}%nyOyDH|w^ z9fPcD)GVI;Kv#bkMV${3Gt{rpqcA@66NOY$`;>|~I-~)>y^+&zBKMxHC8Awz|r;`fnaeIzqB|8e(9k2U#HMuc zo>4`d_n0nXJjf-s_J!AG7Hk=U`wIHCrQF&l_L>$h*XULS>$^kS31f8+6F)`6^IOs3 zcGnsjD%6j6Fy)-2_CIgpmpeQ0JCI|^pu>#E`}X0u21jS=gq$8qo*7>%qsFlxr$zHj zJWKXYEc+cCjv-2QHn!U=r~9xL-ih-zYHzf1)nd;mbf4HokE%Ql!XXg`5sV^v)aFnp zd0Ba6cG;saGApqsMW57mW1aeV2aePSTBj!UcdQHN(iuCi3)M)T4bXcgz8n?63oK_( zotUIT&xS|#$8M$0)wy@R-Br1L6s@45vvF)+7W+FmW!u$(t=E1OL|N>~U4&@$-cuHP zL|L#i?8o6$Qp=^Jc_WuPSW>KX5=V&_L&!u*%84c^(T$Xp4`bB|V84N1K~ja}>18>h zqh_3VAgqlZV(Hm79#9RNx!RSKu-J00Fb9e}Nrg-0I(nv#O2s7QX$6i*3Va@|dk>Vu z=`z@L94sCWdIPmsg|DQG9n? zNZImy^yhAJy2VEadpMAA+x_?*cT&?BAZL;7yz{er9?PRz>sm4jtM3m&bJ5UJ?9Oi7 z8_ZQ>_N;II$9h}J%wK!{STu(&l&BhGFpnOBp%luiVH(jB8$$UY)X76!}$D8>{2ye z$l>d6s2Ex*@DN7hd-4$Wqes*bhN0g=AN)T(gkAocYMZD{3<8+u!%UJ z8Yw=Y>rU0Uz1v68KLLo&qVeKWJzfl>oAmu2dIJ0;OgElL`UD=O{`pL6pV~!qII}9~$_PaI` z!4`urz@DZig1rYFlkcL_F>F1i;{SBeQD@QA=jqq0Q{TeRK+lIaE7T4ts3aUOxXLJ~ zxtq{_*4l6&tA!tf_Ybqlq2D!28>7kSaqVAEt0y&fQ&M8{@zqDa0m4I%NRjI}sP$3O zVrRo06HSaZ0e#0Ipxy9_AzyjZYdC#qhBQ1yPPG0$+qI2EJY_P-c2Q>4;yB{E9n?7! z@==59_bOD^H8ALdBwiO66Q?+M?xqPiwrv{~6jo~b;_yLbrC(+*B-dZDD~|YXiMz}q zmunL)*Th{i$fYgevO4ba_ByyMO}JFVUAB`;Zo*|2MAgRRKY#EiR1r2Kzrc-|3H4A?EL=^&=&vyfymMR|3e5t zB>n#fBqsjcKwp68d>?3Q_EH8d=e}WxNv(=S<#{$$Z&VMdS%j|ob z+WOh9A4ADbaot5m)O8&UwX$}tg+w1Tq-!9?4pNv?x8nJ%9@mP5TRXY!Ave9okpFT* zAC~uQeT#zX=}{p@-oc_HiZMo=jpNkYZrVyaLVolK-KnQLZvp;=$-x8Ol&#cGRgKZw z)v-X(l)-cOL`owAD;o+GVSGYWkBgto46kJ&j|E^3Y{O^Np5s2`F<9j z5TJep4>J^`kw61JDcFa(J{?ZT8D$7w>ft99{$ur#?)vWT%=(CTLTXRJ1kyr41rvCU zyLBpusE%o8M!`J)5)}IF1S4h`s+cH)SYMU4g;pQMVqkr=gG8!`g@y z3uP)B2~?v<&sIF`tK!i6H~POmbm*fa>WOtGMRe4C&0bm!IUZDf3~^*44up+Kf^NFh zsi7VvsYm2thmnDw-kx;Ml-$AYYv?!BMYvA%pw8(ea#!E0_`QF@mh^O7*?Q>tp{}2j z3I<*6{2)6c&quGu^{coF2dobq$7JF9COx@6@X)d<3|SvoKX8$}5o^OTR5!|`vd0wy z=^VWVyn69!ZLCF_921WoUFXto^sl7tBMEfa#QW?y_r~|x%26fI?6y%`s44tMqVx$W z%)|!!D3uj^R4sMU67b}KGaW}gnLrGK6Fu?hS!|-9sq?(2N^!u@|3`<%2=2%ujLm@b zI~aXPp{`sUXMpSROEv1{)Yamy6cWk|zyCrTJPocB0nmA{_Cw$IL>|`#nvJ_AJWKs5 z6sUK>J9*k4+y9`m>a{~siNqg#qQ{BG>Ww%WKYrVV4KiJ4-Hi}X@V>skW8q0ZIPIGI zIiiUD_95b~-B@%1^%A;Cqo*`_h0xU+ZPVx}LMLv z(f2j_0ikgkMKy{La%;3nqss|>^;ebD4vj7&)T_~DKZ z=Kdr0D3oyI@^0+l0~CP%#Ujc0!K0`D(LVeTYUOsSpl?3kl)(SRCD7clx~9%QFMG&1 z*P4#jP$0Fbeo$SYzNsaU-W~{@HmKQ8?yj0ZLsLsyb0Cyn+uBl>=5MJ>Z4IUen%e^@ zXQxa~IV)vuN^Z(La%@kl^#{{x>w>P9j^^h1t~P&DaDG}#Ybc|xslBb)zagU~u&$ZH zZ*FQ24QdXwG=v&cbLXbco9ntf5Nw@4Xmx8{M{{dN3sM#c&QA}lSv!AFU`>a=dH&#F zV70%gr7jRm^VhVetwxeo``2gIw6-<}{4Mh{+BdAOX>EoX3O2Pg%pcMgY^@E{bp!+R zGbwXTftJwVmOz6))U-A*e{frCdy|q<&P{KvtDEl%tPQlxALMUq3$)Z_1Yrxd2M|Hq zp!%lfP#`$CzO}h-a&w?Qlv&>zoE-4iHoBnPykXGl043GsZ*Om{b*&3Fg#yEL5}-}l z8^X3=px!v>STeQ4-1*1q+)kdS!LjUNp2ov!8~wq_^O{;hfrdbE7@L#l5zbO>{^qtu ze@!6NR6AcQ!($)_+n}|9+E8n7h&Co81w&b+>K(?iPG*L-%^$kjzbY_UTaICkc~o1+ z(AVU78o4Oq`7T292e)_B=p?5H*0+Vy8fxoYP3>!fp<{w*Dy^$0w+8}srww5X(jVs` zKMKnzk>#{Z&fff?ZLPtOzj<=Ie{EnG%fUc9GM3)l>aWXcMLkV!?FhAXgeIeg0z+z> zTiXMZNz+AN^M|OaP;SSNf+^i0q1v{|l(*tY$&By9CYm(+xMc?ReZ=4+R*E9!)CdB#fgpBw@ryZMQN4=ilw4RGz?C)p} zjYz_E0rcR&X~`(C9_7&P47=&_KyqBG0vpRaPu zS%z1PA%XF^iA2w13xb_j7!0-sXJ;oIsaMR-UftB*j!`2U*&X7oDq2vGzW_U){7duH z=)aK7LN*t(>0xsTn?-Dvv$>Sb6>MJ0W<8siu^D9ZayGAG^E+%t*u0L-@3HwKHg93` zH*DU)=Dln_$mSz#ZfEmJHeY1(H8$U6^CLFDU^CsX%VQ9mL)je8<|sC^*_^=U*=$Z{ za~_)oY%XE5jLl_i2H0$4^GY_aVe|WJ{+i9Z*z9KWc{ca5`7WCuv-vff$JFS29nWSq zo0Hj`&1N2(i`Xn>vx?2{vH24=f6M0GY(Bu|6KuZ3=4))e%jTzS_Om&pHqWBZ32dIq z=0rB>-opNFXY+10x3c*po7~AeT54K5TI#ab`h!h0 zp3cr@2P{ak{n_ya!Vt!oPO@9;voWE!1~(X}X0qAYX62CW4>n*DY6%(l#Iy#b?A0CZ zq3oJKwpm^XEgHZAr_IjBJc%JKP?t?ZC&f84n%{i>nBbcpS!lTsSYDoJe81Z zIS%^nUk&8cWP4fH)pS%I>h?_ z=aYhH)2##jGIngz@Hx;=?#UnA3*vL6{;ABRKApReeyTDPUvy|iJS~BgL>G<3X+xg; zS)?on`srDmL=`7U!h1x)_@Tv-nE>-;5L{)_p<1X9x7%-<4R9grekfvuNVUzYRh%w@gM z=?kS_^3Ryda8i}xk?{^?F2lhAxC%c{g_rmmW5N*;sMFH{@->AisN$;b6H;v%<*qg9G_O^_%|qy&j#ksTCuFFm=AYoTh?agBLu&m`Ei2(kU2de zn*8}CbJ?zLW3K0ugpa$K;~%CtKHHe%ADTEmyO`tOn>aqtGRHqVaeQ88ezJpF)?Vgg z1n*-m+yCdx@h?goA3f0>=-2aM!fB{#um}3H6G%y;n4c#2>CDFoeh%~Tf}hWPg5YzR zpDy@f=4S|A&iqWltC`Drs+PH&XPcSJc~)Pa9y!l$VtxEG8OP^Z=93-NvTkIKf7;;q z{FM2*4r*DyV?IT2I{2o3D(81~qz^9V_s3cPJQ2=I%+D8mAM@#g?`JO8312b4KKRmOb2;FmDZ6MPl( ze8EG^7YKd@^M!(6!@NN78<-ag{(a_pU72vamHFZXQqrBwZNb%@F4~Dl@SUuGq2Mnt zUn2Nk=3c>jnHLHEIrCz{)6_(FpkJ?x6OLKTOA|;*W0{u;em3)R!Dle95ImoGrQk)( zs|2rRzEto4^JRj!F<&nDx0qK8-pO3=0}_t(PfV%5uS_5%{h0Yhg5S#gV!>}`eu?1s zF!u?ro)kp9mkRy_>-z=Y&AdkNe=x5V{6pq-f*)oc5Zt8}J_q{i1_ z%(Da^$NV_K&tX1V@C%rqDtJEgGX%eo`8k4@F`puMHS_6$U&?%z;PuRN1#e-VFL(!Y zbKY!C{C(!%5&UE35y1~JH|OsrJt?X~ zq*~t-`a_wU^Le9x0`psh{wd6VBltw-<~-koGo86P-#0v$xjFAQd?E8kMEDmnH}?TX zzk<2BA29q9=H|Y@@FwQ3iSUEW&3%H=zmmDRUobq%{0kAz51E_$2c!RU=H@=a@ZT~w z_Y;QS$=uvm82$irbAMs@W6aHchT%^#H}@Nczr@_!cNqQ#b94V;_$K2e%7(SP|xsNg2!`$4@ z7+%HP+}9Xh!`$587~aa<+~*j61#@%1V|awQx$iOjM&{=J$MFATZtjB&|1EQKKV*MYWQ2s&3&xlA2K)hvxXmHZthR0>zKKU#MjLn9#q3^;I^KLTYCH zPlWz@)*qjwOX3#RKOvCkaH0P>PWw=B^;MXv}Rq*SX|3UB@ncpY)kC{Ir z_%E4n6`Y=rru1|R{uk!k1bE3vjlHtK1%Q_ znP&@r9rKBT|B(3{Ko+tQUncITzQasHn75s%bcb;(no%!<1ocvwpmkRzF z^G3nxKi*qbn$;$Fnp^Yrf)8Q7N$?TOw+cSS@ZUSrc?R>Hf=^-otl+td4{#sK91o#5 zKFc|rk3=|4M&F@rS!k6_(;Q_ zaO#gU{7EOD%G`R&$>%Z86xB>_&?4UtwM>crWucf`86@z2F%mboiT2bjIsu zen{w_#JuA;r~U-y&4TAJZxB3>dDrpIaJo|C0GZp?@dyQ-%Ik=Fz$V&z2D3HeWAad`2wN;Eb|J% z|IWNk@DG_+iFNEj=B0wCo~Y~hk0PAm%yWePXy$JU{d1VRg#J9{9>JF|zhCeQ=DP&< zF)u#V+5Q`teP7X&|n`DcPpWPYM32YPoTtuto| zzJU1#!AqIf2!1j19>D|5_X*y{{AQSf`2|6+nO{O!yKpYG&OGtUuxH}eL;_cEV$rZb#g=3RmxVE($` zhnSxy(w}*fg%9do@Z*@qzvzTudd?xc31TSRnI>XsMmoje=Jiz?5l}`O2^EZV4Cgx{~_Iw?4 z*)M*~{A!{9U(7cMe$P?(qs(^*{pXqADEJ%9y9Ixr`SXH*!F;qBmoiS)_4Ss}KaTlG zp?@m#sNj>B=TCB$^9<%M3;l)6pAdWr^Y;a>WIjWLzmmBv_!{P4Om?PcJ@Yejoct>0 zt%84t`Tc@l$NWRVzsG$1xz6x^$owL~f5!Y~!GFd4X~A!2{;A-1F+X;SGu{W7PZE4P z^CH2YWZoh83(WTk{<;Zgsx#hR<~Is{fcZ}Z|C0GLf~SwM@JX>g7yMY}h0~nzp3MAe z!Ovj+JHd09zbg1l=D$AA8UB3cPYS+>dDi(({UYX-f-hzMZNdG_e=m45^XCQcV4gAE z8SmB17Ycqo^UDPP3G*p4oZ;NcyjgI1^ETDX_XWR;`BuRnVqSHDGyI**R}20O^Y;XQ zg?VtMGn{?Q4-5VQ^NVIV^*?9cCAc*f*+RbF7kn`D(%H^%Mlio#@Kc%JDflGjt~t(d zW-$M*;Cam75!}oCJGstqmNP#rc!2pybDjD@<{rT}G2bNkbnZGRfFPM*B z=+viovr{?G68z81_vJhF|H`~*fs^+zUoFCUk@;PMzsdYIk+1id|6TA;n4ezYjQ5|+ zr_OV7*C`f0Db@zTk753l;3Jtg{viuF^$ZRW?7<&i@CNF;Ab(f5&S&nYX#3`ev{yZ%x@9Ag!vtUuVDU5vCeE}{;J^XnV&4yhntws68t*m zw+ntV^KF9vjQN~tdGRtP;djg}u@3wTbD!W3Gj9-l7xPxZ|Hiya@P9CWQ}7R&r-}99 zVdkd`o<5Fpkzy?t+|B$y#QN|Q<_`#dHuLR*&tyJ9tOGsFcMJUr=En>D8s(#@|O9f9Guj~DHf*;F#ui&GZ?-u+F=9yxBdmi%w!Sk8t3SPo|m{{Ll%=|3D z8<`gizK(gP;8!zWE%%umY8i>IB0yP0V!B1x1 zC-|AnQx-V$bsqC&g!%Og^Q`1g6Z6{y4>5mS@J-D33Vt2) ze!+jhe2myP-OBtr!S7)H3&HPW{;c4SGJi|(=a_$5=*;imndb@K%lvPGf5!Yt!Bftl zQcSVNEpmoGnE4FBPhkFv;MvS?6MP!;9}7O0`9p#iGatOznVx0L#|j=`9u@o07Uow8 zeg$)%;MXw!mf$xtcMJYA=4S|gJM$k1zV#^lapt!P{TG>MiGA_w%&P>CF~3RhPnhS3 zee^$>A1n5o8E5MDkSh3z%nJq2X8yL|XEUEK_N^B%uM&Kr;&?kfe<&67DPf+cY>BUx z%;zVNk}hLDO7P1KPjxy(6i>1IB0V=TUoZGinQs#OSIln~{7=m968vH2e-Zpi<_`(} zGV?D5e~0;}f`80>rr7WQlljo%JV!wcnMl?Yt3~ip%nu8GCi6dtef>1%!^Hl5F7uCt zzRi5J&|k*9SnxXL-xYif^NR$(f_YT%EzBPk{AT7EWzO=smHG2R{}0Slh5r4_=Lo)o zdAr~*F!u=l2J;rd-&6cRKi*`cKBh81XZ@>$e)=R`zgq-%Gk;j{Q<&c+_*u-q6nr}K zKZ$dah0GUKILot?`IUlS%)C9+PbCPc}FA@BD#SipvG6lxwFIj)S(EkJT zje`Gon8L^%IszD?+7o<-hMtTzQ8#eBcuWue1 z<_Cp-9`jR$ekt>5g0Ey=CHN}lO@enY4-0-3^9KcwGJi$zo0*@#%$cuSm@g9i4(3gQ z-_5*wxig%HnHLHE6!Uuoe~EcYwKJT(%ohp%9`iE=|Css9f~TBq;ge!XK7{!$p??zd zJ%UeWUc17X&Kb-n2tJqj!-6kj{_IL;IHk;o3BH{9X@UosKPq?!^UZ=^#r!tGuVMa{ z;NNAQagj5fKVtrY;I}eA>0+n;o#0t0e=Ez$Z&Uop-%;MHc=`E%cUDXymOZEL@^kQBi)W z7OIMkSW&WYNnxe-Qc_%8xKPXa3l|oaYH@+5SjXb^R8(^46@``Lv4m9$mwU8sMPYHl zB9B)`j3g{v;#*u;S?MV%w6qOL_9|=sBA=(2A|{=RO7J4cUY|)%3369efeaRuTaXJ% zioMkkmX))x5I!maD$A>i7h04>9}=YnB*Lo9UyKMUm06naDOW;8b&)cuaH`4+mAs(J zgA^5O_tL_Jo_w#CE6Y8_iQ->II&PQg42>(kWc#MNN=M6|Bs{;>DG=mgsx2 za$QkaUZTP%Dk-S)mXJd+USd(G11>CEsvHZ;s`7Q5<%LE0XgY-|CHV_f@`_N<@K=<- zoQwq}C0Z5rvcQO{*ma`IOBO1jtg58aQ;5o>C<_RuJax;RNj zGIffo%GJmO6|{f?lV@~P@`WZEPm5iN7Q95|45CUnOfGjwTo+nW@k1;qRN+9vXjxII zx&thxpF>o-)8 zg!k{%_*)uC)Nd9eNxfW5p+JZXdc_!-cy$yRtwH*xca2#!Ek3+Mhzz`Nij37A&13}D z(06l)z8lmxy@`x$co~^8>XbpRBx@r(y_HM}cn=8K`Q2nBa-K+}S92&+y~RsQ^xdFR zLT@WmVdxi@k%N9+mx6e08Jl=>nUdl!FC$I7zl;pL!b}bC%#^BrDU=q~yP}jx z?*UPQd6^mcF>fW&8vIH#WvOdgOA2_knX=N`&6J>DJw{Iajx!SRnlm!=o6eMkmz}Ay z#k4>df}Nu^v*L9)VsDwKoilg6JrZruEbIzV(0|cs0dMFp;l^D+GnU0 zfMj~PSf~|mL?H`|P%9DRqF#5V{1b&2CF}Q+kq#t|782SVGitKhRq50Fs^HEj)EcjD zRC}nET_^&jO|DAN?>Zx2^sX~9@wziI)O%t`&@Y6ccb+9|oE3JWm%t?4)H`7~nfwwM z6_bAH8NL6EbhS;t0gdeR5;QXDJ!p7u4T)9b{vMDH-u5~5;By|hfh z_IOn7I>qfg$~3m)En!+E9#*?)CJnXxUNTZ>s8w$!BavQCrrtzG7A3@;l#Sj^X0`k1 z{bTAKZ^^Qcny7Z8+{Puv1HquLF@!Orz1>QZm78uH=*A6AwU(aYF(EDXEcDSjgMnR8 zuBV@xCSQwxbwCHh??_TXvK)^N!y}D4%8li?TWjlT#bL&o>H;(-DVMk{?jCGu@YVS1 zd@ag7ZgaTfO?qg+ltFS=Hs#*#3k5r<GkvIZ9hhbE2*Hak!7Q5&mrukYZN^Q|{U26!9rkzIej&_(-ttL9I zl(kdAiYyGz6M6<90o9#;t1hjN8z;<1)>oaSJBXxZE0y zi!`k&OH&Kpqv)&YsJFC)*H^Jby*=*gYr|NrZB3{N8dPA0LK`fM!pb{khTAoyTD*QM zWYG|SdPl7_=t@=NA69L&F0y?KJXo2;ZEDd)p-@pG$l6tbP`iaC*rM`6?7y(4qa7nm zvr&YI^&ssBNm9ENlGHLQt2mR!MnxBQ(nSGleJ~KvYYSLb z`-7`6XCffdRJJ<2jj~bs)9*cOqO}YhoAKIGU(JRP`mGvBeEwQ`e<@pnQ>XjXkgMHl z{mmHYw2aZ0icnhu?X~{4cn~T$jK#IhevHd?4js&6n5DEYybQIezA4b|YhTrb7o-|R z^tzgWuH?GbbuFyyuk*K2%6w|5Yieo2!VzyfYw|byu$ov+4GV~0W!7$~ZcdYBFwoYl ziZe$^Ev?k6vFxRMX@ zN(WPXu)eu6@zz?3TGe@=Wi82V9cc0x3aG(;EINR&5-T9@ru$Y8OV4w@`xDQ*98KUs?{AnZrB(M zusG9ApBw_pK?$J^XeGW@3bqYRw-ud4NiD5x>hfr7YQ(TkWkeDM3*U9R5s;uOizHgI zYe!n;;HAFWf@K=swyI?sFyhq239pzmIRWkK;)#XGfkW!RD2NUO&#vP%hSx1pIXAgqP7HCdqia{|aWoD|^*m|#pqI@(mfA(N*I z#o%9=dH{f<=}Dw$I+F5aYOakofHW$oseuBWalQ(IR*a;{b=4NHt2Vu6Bsaa0C5a+5 zwZt~gvT;=TgoPT4TJvDSqOMQAiBT_15G0DGFr5UlaK)b;xtNlsMWR!&N}oRBq3~%f zOsjg5c`;ny(Snwmuwz!n?i)QXfokw(cxzpdR+{v-dMjsL4V@2#n#?$9QrezKDa3e6 zA)A!Ou}LYp>G78fD3L(D{?=8A#AqvCY)u8RR&BHDu;f=YMkaPBEp@0;xG7s}9mYmd zB%9e##sM|&I!pCHb6Asbqx{Bg4VYIEj9T-@6Qg$krYMz7oukDyYfSXCJ>W3|p^z;e z2wCF!Aqx+1(8ER|;R%+wAIQp!YNdL-MUzbQR%1)9GbwKA2 z(J@q$J_2mgM}STG2(U>V0XC^4K+MHBYk-WsKVlq(&~YI4!1_24olGAG zg3xgwb+-1lX8#7I6Ij>Wgasq0$_JTz9N6UJBS0jgwXUPNm6VcB`6vRK9&n~W>7(;N zGWB^NvO!0H@JdI3Fz5)d$s7S9cWRPRUi6HlMB3#lA#ntVSON{0N7rI)h5*cKhm}Pg z0b;;VM}UZ19|0n2EaB03pl(`~N`dl&JslPd>r#?!Bj{s3gSP}3MU=xku<_J)`m?J=KLqV&= zW9a0_AkoqY>4T&W{*+|2Xm(I}<|9DmXpR7NRr3*`jzIaN2A~9U1c)M4M}V~aQ^m82U0}`Lzn{0c_7lP z&I3`~s9TyNXg{ydN7&^qz?(3)J{h2OL35+6xCS(t$om_$RmyfaY_^N(Yc@xYYZT@?5M}qFDWVd zj1VnE^$TY*)smX#TRwO|5DA-4)D?(6v{G1v;5B?DJ(yj&vbhKcGsiy@9>|)k~ zHD=L@-2<=5NYe8Qnn-Ii&JavX##|R{#SK!ZPOX1x>Zoxb_&VwWsxjr%G@GcJ<59Kp z9C_=Xfrfd5mCU(PGVQHMCtjYAj6065)Mmb>o)+_Tlv0Daz(5kYKo#Z{ z70&)}Ph^y|#i+4O?P$?j(2y{GnI_{m2RGzExlVH7*x^8@SaAo`Bl~Wd)=sl*l8wua z97s%ZF@a4>#0@ct>h)huJE&Td*VOub9hgU{4XTO3#7a|wL*_s*MHoyX)A$)Vg3&T= zBbu>zWE;kT2CQY-#tGJnYSY9HbgW`Ts&;jzhRdDM>ZbKG&PT(>>VTNuxYq<*u+*Sa zt(suGdn!p2z0oE&PGt}aV2+!_B&tvADIC&J-fK)Ow2{%Lo;fun^BJ6y(atE7gekOX zkXNszsfZ{fj$-Y!cpD^C(wE${w-_m}CxuMApV^t!f*}Bx>5$u1|63XhO?$ zBZ3mq7G2v~)*07wvS(eEZNUZ~)?_)_G@%1>5ag_8U!FRZ;%eRJ$q!wJ;2^Rcr@U59 zGY&%3Hk<_x4mKScVHH^1%Ij}9&_QHEO(z&F4NaLv>LM6INovJF@Lbu#4*s_p5E)&$<2V3fKXimqQ%0;D`W$x0AA#6Sq9;hS4 zJ)pPf(_eVTR#VRlII&3f;7|5|u{Q3(uRY))mUuNaqO!@Iyr9c8wkOJs#H4Z~YogrL zjS+S5Mhx2iW?JW=`@zep_nF0|Lu@{$FGK6(1Liw-BwR>D!|jl-ey__&zlPv0$&OS``w?Sv$KqoZY&mq1G`?wIv* zzb=rFbL!|84iy$c5vvml2+6$`ErL0&BK$$z*X4u|lU`jxQs-STNhwJo?#B@ptF^SM zkmzPH2OWfUgX(Gky@&01!Y3ioa2f)M4?fD0H13gI_fwMSlA+lw)*$G<)nsNY2#WZ8 zHSM^+3Sn1i`2y&(ehbHKc;vue12cr(6q$`i3aMVA)G%+fTmNT1CnFd=gQR$I4f7YQf*qXMl8s5QUObIx;S<~{`5Uw^;X>-WdcdA%~{ zIq&nF<(~aK_fGCLMc#RR($XyR>0`~dlrJ-1A^mMxS??PS%gVQ=S?T!hZ}n5UeUm|u zObqSDILx?KrUsOUi$wNYoS$*8x$ec^L?zH*Fv*8uIkt0`RzCVlPu z>ier2_^JlJs)4U+;Hw(=ss_HQfv;-ds~Y&K2EM9+uWI0{8uBnD5}lj0 zZ^&+ypzG;BrYZA)-R(O6Pw7f5p7IHN=T>Wb1H?&2>~x)6jr=37@gNAuG6CJLu@ET& z%1DQKUB%NT-p<+#Z{(;q?eE^{``1peBd^$9dow+eQQpWAyJK^PC$g*H z(t>3LOAD$CmRz=cY4x(LvF}o3B$CdFyx~k_WN(SYAMr+F-bqOFNM>8M9ob@cyq94| zp0m6Do@rmV!y1V05OLelAr{)#6DdWZW_|n!#I$a^b3ulE-BD`)H6!iox_WxtRHLdt z9Dc<<{kb@yfA3@oAR3 z<6#8aokJQP28i^14&r5hNVB|=bDy(&w%CyqOQE^{&tLTP*iqL4ilur-Xq_F+w7cHR zw5NaCR%=IFGwh8!+6UN?sb@ha-q((-Mx8$EnRLX{ab$E`uD8=WEyL3h%P5X)@u235 zBg4GWv7aHQ;z%_rVaP$sG@9wTZm-ot)&429k9WZHb|jP9XR96QvZMJK@eX^+=B?=4 zul+&Wrpl-bEKcnM-LAVh%o{lzdxyGDbk@;@=)yNsLq>-L(6Dyr)a8rdY}^q#xqOiw zosC`afQ?d8>W$F>Z+XGi?+RNtz4rWQ~fC|}5`Y@rH5+i%z(&bvtN3^BONk9I2Y&imAC4ErT z9@l#hr&}rg(nlS0$yO?>J9aH1(HO(PC_R#GAD({%C9vAZsdN|H(YzQc4;7a? zfvzlu$v|CWX8h}0QJd$X;}lQX?Cl(K1}@OsdE%)Lp*v6C9z1P9bVQdu{pGe{5Vk-F zX7F&|>gm}We@!(cjXsrgTIeLoKXd}V(?dh>-7iEX>L0?TMZT~*_8nPlqdjlJ6lyN( zA`Y+*&(lRd1Le8*p>#}YN3DFz3Z95&{t1d>M{=LBduTrU212RS5z^YY!ySH`F0E$= zg4Ph~oZ3SA(J{~1kvAyQMA|#;j*=s3sK|L#k!him@!cnsgKt-8A-?;C+VR~#)Dr(G zHSai8PMt*b>WtWM_~SQFNQMYGLSu_Fi(Z`>y8!Ckhejw;-CkC7$k$^w`rs3l`YX3p|m3db;A7_Tg=m zZsG+qT9ge~v5d-aHm5 z6kK}QGBnPtj~+<3V#QR@2zfss?`-AWM)UE^glb~-z-XbiJExp3Zp(@AVZGqBqgyRe z@T0GF?MdIdco7y4S_EUiI*NMqZOcEJW=E#k5zJv7+tUzU0fo_|5P`x{rP0S|M9MH| zwx^>{s?;F&O^vZQ5d&AN(?kqtAEcp**>YN_ALg;l_(7V@wl3xofeiT)rj@BnI7wZC zk8yK~m0Z_u>e_W;d+(~F}S#qNiO z6;I#WepYd3d0O$5SBs~=b(MS0O?^+9JEQN(?ZZ4hTjTG0Bim7JeJ(4wblKKon$x#< zIyX#6i=A?$rw5JEw{TMy`eX6*Jy#8#bJO7TIh(vz8g-Tr%8=n*Wi&j8{OnfhQhj&n zQT;9QaijkAuu5e>wH?WT{w4~FjyPaP%FrTx;U+W3Rb6a%UX!-}QyPL%*K4KFo#}cV z&V~YPB;JBxwJ)qhwV*=Prm1u4!=LzJ_Eq2em`Oa8$cN^lw*yLT0+^;iznzAXx2%&TR9K&2}8JokDTDU8ho%M79$M zQnra)Dr4WK2?e`>P)=@EXn5{`(9qn0p@F$WLj7`Qh6cn($390L#COL&rm7&lez^nN z55>EeQTK@b39)14CW+~}6Ww7yI&AKw(1p2Yg=XZAbBBM266B5#U6z~e4sSwHawogL zKAzZg_sws>zkeh=nDeRCW49m|2=Uuv8zIHMPbp)pV^`e0jqYg07SpT{*@n@7024vX zhF3*gMC#@E$_<6wx%Huus7F0@VCLxFj4dT*5hc8$n{}{gPDX+#FjPl7)9+^A+n&GiG{zdU)lkJtS4z$y@#$UA$ze;n_ zFF)gg{n;o)w#FtN8~?{9I1wL_ui(gL500!qPaqgv|44p&#o!Dy#%582Ru&wWyfygudLT*TT29Rf4ZkzH9 zADb;+HC{b(jbRI>nv#0r`6zI#n~UiVKZBs$N$zkLxjCURu@brSYSis2)NLc`G@vfom+TQa+#_PkIit`?h;kxShoKpU#GXaN@pZk%RsAqB zF@;C=YOJ9DqLsgnB|%-w{gfEOTBsO(sTh;mU9m9IvLm~d#yXNQ2PdzWPBe)+25h(NaHmc%PQ~yTj=iv#KL>eU?r|d&&4C zyRjQgM-moxxU{>Ojqg4o+nyD}RDTr~pQ!_JGZ||uZ7<{b@Q+IIPli86=fmzTw2Z~G z;D0g2Pw}^<_@SuJebHH)E}?l;6$*vuWvz?O3M5rJr{1KK8BEzcf@E*dew?eU_}!>S zO2QjO0hXBECgzawNCCQ+<*OpnSWm8<(OE7EjlAJiN8m)k4tP|YNvUyEF%ue3YmF0i z2{={0i0HJk*epx~OYA5L((#!q)SwGTd)l=2smThsQK#}8w$-S8Z{d?uODBQ)E%pJuT9lmVjtdZca9xSK^

&+x^~NC1a3M3+n`R@tMe(^<~)1SZrUqh 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 HS;qfgR1CwA diff --git a/asm/lumbda-gc.o b/asm/lumbda-gc.o index 29f33f3d88141b0c330a13637786e45dac602d17..b418552193c1171e6803f1feb079fa9de4b28653 100644 GIT binary patch literal 66296 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 literal 64088 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%0AmVf_%PwtS7X$1lI{ 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

`bu!z`}T9YNK-<>_5zz3?v$(1 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 diff --git a/asm/lumbda.o b/asm/lumbda.o index 8e1a7e1904be4849c25d7b77f65bc4f2aafd25e2..7470d5cfc7c9e8dcf963888651a4025095474a4e 100644 GIT binary patch literal 57104 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 Tg>Qb|giw$5;5M*v(e?iT{WPSp diff --git a/asm/lumbda.s b/asm/lumbda.s index 0d2fd50..26101e3 100644 --- a/asm/lumbda.s +++ b/asm/lumbda.s @@ -195,15 +195,19 @@ .equ BI_HS_LIST, 107 .equ BI_TCPSENDFILE, 108 .equ BI_ISQRT, 109 +.equ BI_RANDOMSEED, 110 +.equ BI_RANDOMINT, 111 +.equ BI_RANDOMSTATE, 112 +.equ BI_RANDOMSTATESET, 113 .ifdef GC_NAIVE -.equ BI_GC_COLLECT, 110 -.equ BI_GC_STATS, 111 -.equ BI_WITH_ARENA, 112 -.equ BI_ARENA_STATS, 113 -.equ BI_ARENA_SET_MODE, 114 -.equ BI_COUNT, 115 +.equ BI_GC_COLLECT, 114 +.equ BI_GC_STATS, 115 +.equ BI_WITH_ARENA, 116 +.equ BI_ARENA_STATS, 117 +.equ BI_ARENA_SET_MODE, 118 +.equ BI_COUNT, 119 .else -.equ BI_COUNT, 110 +.equ BI_COUNT, 114 .endif # ============================================================ @@ -301,6 +305,10 @@ bn_substr: .byte 9; .ascii "substring" bn_expt: .byte 4; .ascii "expt" bn_gcd: .byte 3; .ascii "gcd" bn_isqrt: .byte 5; .ascii "isqrt" +bn_randomseed: .byte 12; .ascii "random-seed!" +bn_randomint: .byte 10; .ascii "random-int" +bn_randomstate: .byte 12; .ascii "random-state" +bn_randomstateset: .byte 13; .ascii "random-state!" bn_integerp: .byte 8; .ascii "integer?" bn_portalsave: .byte 11; .ascii "portal-save" bn_portalresume:.byte 13; .ascii "portal-resume" @@ -356,9 +364,13 @@ s_hashset: .ascii "#" err_ht_miss: .ascii "Error: hash-table-ref: missing key\n" .equ err_ht_miss_len, . - err_ht_miss -portal_magic: .ascii "LUMBDAB1" +portal_magic: .ascii "LUMBDAB2" .equ PORTAL_MAGIC_LEN, 8 -.equ PORTAL_HDR_SIZE, 48 # magic(8) + heap_size(8) + heap_base(8) + r14(8) + r15(8) + reserved(8) +# magic(8) + heap_size(8) + heap_base(8) + r14(8) + r15(8) +# + rng_state[0..3] (32) + reserved(8) = 80 bytes +# Bumped from LUMBDAB1/48 to LUMBDAB2/80 for xoshiro256** state capture. +# See docs/tickets/0001-portal-rng.md. +.equ PORTAL_HDR_SIZE, 80 # Builtin name table (pointers filled at init) .align 8 @@ -391,6 +403,7 @@ bi_names: .quad bn_hsmake, bn_hsp, bn_hsadd, bn_hshas, bn_hssize, bn_hslist .quad bn_tcpsendfile .quad bn_isqrt + .quad bn_randomseed, bn_randomint, bn_randomstate, bn_randomstateset .ifdef GC_NAIVE .quad bn_gccollect, bn_gcstats, bn_witharena, bn_arenastats, bn_arenamode .endif @@ -404,6 +417,10 @@ err_oom: .ascii "Error: out of memory\n" .equ err_oom_len, . - err_oom err_isqrt_neg: .ascii "Error: isqrt: negative argument\n" .equ err_isqrt_neg_len, . - err_isqrt_neg +err_rng_bad_n: .ascii "Error: random-int: n must be positive\n" +.equ err_rng_bad_n_len, . - err_rng_bad_n +err_rng_short: .ascii "Error: random-state!: expected list of 8 integers\n" +.equ err_rng_short_len, . - err_rng_short # Print strings s_true: .ascii "#t" @@ -463,6 +480,11 @@ num_buf: .skip 64 sym_table: .skip 16384 # 2048 symbol pointers sym_count: .skip 8 heap_base: .skip 8 +# xoshiro256** state — 4 × u64 words. Portal header at LUMBDAB2 layout +# offset 40 carries these; save/resume copies to/from here. +# See docs/tickets/0001-portal-rng.md. +.align 8 +g_rng_state: .skip 32 # Hash table for O(1) symbol interning (MOAD-0001 fix) # 1024 buckets, each a pointer to chain head (or 0 = empty) # Chain nodes: 16 bytes [sym_ptr, next_ptr], allocated from heap @@ -602,6 +624,11 @@ _start: # Register builtins call init_builtins + # Default xoshiro256** seed = 0 so (random) is deterministic and + # non-zero from process start. All three impls agree on this state. + xorq %rdi, %rdi + call rng_seed + # Set up a generous stack area (16 KB stack frame for deep recursion) # Actually the OS already gave us a stack, so we're fine. @@ -3362,6 +3389,14 @@ eval_list: je bi_gcd cmpq $BI_ISQRT, %rax je bi_isqrt + cmpq $BI_RANDOMSEED, %rax + je bi_random_seed_bang + cmpq $BI_RANDOMINT, %rax + je bi_random_int + cmpq $BI_RANDOMSTATE, %rax + je bi_random_state + cmpq $BI_RANDOMSTATESET, %rax + je bi_random_state_bang cmpq $BI_INTEGERP, %rax je bi_integerp cmpq $BI_PORTALSAVE, %rax @@ -4722,6 +4757,202 @@ bi_isqrt: movq $1, %rdi syscall +# ============================================================ +# xoshiro256** — deterministic, portable PRNG shared with Python +# and C impls. Reference: Blackman & Vigna 2018. Portal serializes +# g_rng_state so simulations continue across processes with a +# bit-identical random stream. See docs/tickets/0001-portal-rng.md. +# ============================================================ + +# rng_splitmix64_step: %rdi = pointer to z (u64). Output in %rax. +# Only increments *z by the constant; mixing happens on a local copy. +rng_splitmix64_step: + movabs $0x9e3779b97f4a7c15, %rax + addq %rax, (%rdi) + movq (%rdi), %rax + movq %rax, %rcx + shrq $30, %rcx + xorq %rcx, %rax + movabs $0xbf58476d1ce4e5b9, %rcx + imulq %rcx, %rax + movq %rax, %rcx + shrq $27, %rcx + xorq %rcx, %rax + movabs $0x94d049bb133111eb, %rcx + imulq %rcx, %rax + movq %rax, %rcx + shrq $31, %rcx + xorq %rcx, %rax + ret + +# rng_seed: %rdi = seed (u64). Fills g_rng_state[0..3] via splitmix64. +rng_seed: + # Stack: [rsp]=z scratch, [rsp+8]=saved state base + subq $16, %rsp + movq %rdi, (%rsp) # z = seed + leaq g_rng_state(%rip), %rax + movq %rax, 8(%rsp) + movq %rsp, %rdi + call rng_splitmix64_step + movq 8(%rsp), %rcx + movq %rax, (%rcx) + movq %rsp, %rdi + call rng_splitmix64_step + movq 8(%rsp), %rcx + movq %rax, 8(%rcx) + movq %rsp, %rdi + call rng_splitmix64_step + movq 8(%rsp), %rcx + movq %rax, 16(%rcx) + movq %rsp, %rdi + call rng_splitmix64_step + movq 8(%rsp), %rcx + movq %rax, 24(%rcx) + addq $16, %rsp + ret + +# rng_next: no args. Returns raw u64 in %rax. Mutates g_rng_state. +rng_next: + leaq g_rng_state(%rip), %rdi + # result = rotl(s[1]*5, 7) * 9 + movq 8(%rdi), %rax + leaq (%rax, %rax, 4), %rax # * 5 + rolq $7, %rax + leaq (%rax, %rax, 8), %rax # * 9 + pushq %rax # save result + # t = s[1] << 17 + movq 8(%rdi), %rcx + shlq $17, %rcx + # s[2] ^= s[0] + movq (%rdi), %rax + xorq %rax, 16(%rdi) + # s[3] ^= s[1] + movq 8(%rdi), %rax + xorq %rax, 24(%rdi) + # s[1] ^= s[2] + movq 16(%rdi), %rax + xorq %rax, 8(%rdi) + # s[0] ^= s[3] + movq 24(%rdi), %rax + xorq %rax, (%rdi) + # s[2] ^= t + xorq %rcx, 16(%rdi) + # s[3] = rotl(s[3], 45) + movq 24(%rdi), %rax + rolq $45, %rax + movq %rax, 24(%rdi) + popq %rax # result + ret + +# bi_random_seed_bang: (random-seed! k) -> void +bi_random_seed_bang: + GETARG %rax + sarq $3, %rax # untag → raw int64 + movq %rax, %rdi + call rng_seed + movq $VAL_VOID, %rax + RET_VAL + +# bi_random_int: (random-int n) -> int in [0, n) +bi_random_int: + GETARG %rax + sarq $3, %rax # untag → n + testq %rax, %rax + jle .brni_bad + movq %rax, %rbx # save n + call rng_next # %rax = u64 + xorq %rdx, %rdx + divq %rbx # %rdx = rax mod rbx (unsigned) + movq %rdx, %rdi + call make_int + RET_VAL +.brni_bad: + movq $SYS_WRITE, %rax + movq $2, %rdi + leaq err_rng_bad_n(%rip), %rsi + movq $err_rng_bad_n_len, %rdx + syscall + movq $SYS_EXIT, %rax + movq $1, %rdi + syscall + +# bi_random_state: () -> (w0_lo w0_hi w1_lo w1_hi w2_lo w2_hi w3_lo w3_hi) +# Builds list back-to-front from i=7 down to i=0. +bi_random_state: + movq $VAL_NIL, %rbx # list accumulator + movq $7, %rbp # i +.brs_loop: + leaq g_rng_state(%rip), %rdx + movq %rbp, %rax + shrq $1, %rax # word index = i/2 + movq (%rdx, %rax, 8), %rax # word[i/2] + testq $1, %rbp # i odd? + jz .brs_lo + shrq $32, %rax # hi half + jmp .brs_have +.brs_lo: + movl %eax, %eax # lo half (zero-extend) +.brs_have: + movq %rax, %rdi + call make_int + movq %rax, %rdi # car + movq %rbx, %rsi # cdr + call make_pair + movq %rax, %rbx + testq %rbp, %rbp + jz .brs_done + decq %rbp + jmp .brs_loop +.brs_done: + movq %rbx, %rax + RET_VAL + +# bi_random_state_bang: (random-state! (list 8 ints)) -> void +bi_random_state_bang: + GETARG %rbx # list cursor + leaq g_rng_state(%rip), %rcx + xorq %rsi, %rsi # i = 0 +.brsb_loop: + cmpq $8, %rsi + jge .brsb_done + cmpq $VAL_NIL, %rbx + je .brsb_short + # car + movq %rbx, %rax + andq $-8, %rax + movq (%rax), %rdi # car + sarq $3, %rdi # untag + movl %edi, %edi # mask to 32 bits + # store into word[i/2]; i even → lo (overwrite); i odd → hi (OR in) + movq %rsi, %rax + shrq $1, %rax # word index + testq $1, %rsi + jz .brsb_lo + shlq $32, %rdi # hi half + orq %rdi, (%rcx, %rax, 8) + jmp .brsb_next +.brsb_lo: + movq %rdi, (%rcx, %rax, 8) # lo half (overwrites previous contents) +.brsb_next: + # advance cursor + movq %rbx, %rax + andq $-8, %rax + movq 8(%rax), %rbx # cdr + incq %rsi + jmp .brsb_loop +.brsb_short: + movq $SYS_WRITE, %rax + movq $2, %rdi + leaq err_rng_short(%rip), %rsi + movq $err_rng_short_len, %rdx + syscall + movq $SYS_EXIT, %rax + movq $1, %rdi + syscall +.brsb_done: + movq $VAL_VOID, %rax + RET_VAL + bi_vector: # (vector e1 e2 ...) — build from remaining args in %r12 # Count args @@ -5010,8 +5241,19 @@ bi_portal_save: # r15 (bump pointer) movq %r15, 32(%rsp) - # Reserved - movq $0, 40(%rsp) + # xoshiro256** state: 4 × u64 at offsets 40, 48, 56, 64 + leaq g_rng_state(%rip), %rdi + movq (%rdi), %rax + movq %rax, 40(%rsp) + movq 8(%rdi), %rax + movq %rax, 48(%rsp) + movq 16(%rdi), %rax + movq %rax, 56(%rsp) + movq 24(%rdi), %rax + movq %rax, 64(%rsp) + + # Reserved (offset 72, last 8 bytes) + movq $0, 72(%rsp) # Write header movq $SYS_WRITE, %rax @@ -5316,6 +5558,17 @@ bi_portal_resume: movq 24(%rsp), %r14 # restore global env movq 32(%rsp), %r15 # restore bump pointer + # Restore xoshiro256** state from header offsets 40..64 + leaq g_rng_state(%rip), %rdi + movq 40(%rsp), %rax + movq %rax, (%rdi) + movq 48(%rsp), %rax + movq %rax, 8(%rdi) + movq 56(%rsp), %rax + movq %rax, 16(%rdi) + movq 64(%rsp), %rax + movq %rax, 24(%rdi) + addq $PORTAL_HDR_SIZE, %rsp # Remap heap at the saved base address so pointers are valid diff --git a/asm/test.sh b/asm/test.sh index d11bfe6..d8e1058 100644 --- a/asm/test.sh +++ b/asm/test.sh @@ -57,6 +57,11 @@ check "isqrt-1" "(isqrt 1)" "1" check "isqrt-perfect" "(isqrt 144)" "12" check "isqrt-floor" "(isqrt 10)" "3" check "isqrt-big" "(isqrt 1000000000000)" "1000000" +check "random-int-1" "(begin (random-seed! 42) (random-int 1000000))" "558742" +check "random-int-2" "(begin (random-seed! 42) (random-int 1000000) (random-int 1000000))" "543102" +check "random-reseed" "(begin (random-seed! 42) (random-int 1000000) (random-seed! 42) (random-int 1000000))" "558742" +check "random-state-len" "(begin (random-seed! 42) (length (random-state)))" "8" +check "random-state-restore" "(begin (random-seed! 42) (define s (random-state)) (random-int 1000000) (random-state! s) (random-int 1000000))" "558742" check "odd?" "(odd? 3)" "#t" check "odd?-even" "(odd? 4)" "#f" check "even?" "(even? 4)" "#t" diff --git a/c/portal.c b/c/portal.c index e2382b4..7eee21b 100644 --- a/c/portal.c +++ b/c/portal.c @@ -809,4 +809,7 @@ void register_portal_builtins(Env *env) { env_define(env, intern("random-int"), VAL_BUILTIN(builtin_random_int)); env_define(env, intern("random-state"), VAL_BUILTIN(builtin_random_state)); env_define(env, intern("random-state!"), VAL_BUILTIN(builtin_random_state_bang)); + /* Default seed = 0 so (random) without (random-seed!) is deterministic + * and non-zero. All three impls agree on this startup state. */ + rng_seed(0); } diff --git a/lumbda.py b/lumbda.py index f213e8a..0262e3e 100644 --- a/lumbda.py +++ b/lumbda.py @@ -1969,7 +1969,7 @@ _MASK64 = (1 << 64) - 1 _rng_state = [0, 0, 0, 0] -def _rng_splitmix64_step(z): +def _rng_splitmix64_step(z): # noqa: E501 forward decl — _rng_seed(0) runs below """Returns (output, next_counter). Reference: Vigna splitmix64. The persistent counter advances only by the constant; the mixing is on a local copy.""" @@ -2026,6 +2026,11 @@ def _rng_state_from_halves(halves): _rng_state[i] = (hi << 32) | lo +# Default seed = 0 at module load so (random) without (random-seed!) is +# deterministic and non-zero. All three impls agree on this startup state. +_rng_seed(0) + + ############################################################################### # Portal — Serialize/resume full machine state across machines ############################################################################### diff --git a/tests/functional.lsp b/tests/functional.lsp index 8d16486..a632ea2 100644 --- a/tests/functional.lsp +++ b/tests/functional.lsp @@ -58,6 +58,30 @@ (assert-equal "isqrt-just-above" (isqrt 101) 10) (assert-equal "isqrt-large" (isqrt 1000000000000) 1000000) +;;; ═══════════════════════════════════════════════════════════════ +;;; Random (xoshiro256**) — deterministic stream, portal-serializable +;;; across Python + C + asm. See docs/tickets/0001-portal-rng.md. +;;; ═══════════════════════════════════════════════════════════════ + +(random-seed! 42) +(assert-equal "random-int-1" (random-int 1000000) 558742) +(assert-equal "random-int-2" (random-int 1000000) 543102) +(assert-equal "random-int-3" (random-int 1000000) 559009) + +;; Re-seeding to same seed reproduces the stream. +(random-seed! 42) +(assert-equal "random-int-reseed-1" (random-int 1000000) 558742) +(assert-equal "random-int-reseed-2" (random-int 1000000) 543102) + +;; random-state / random-state! round-trips state exactly. +(random-seed! 42) +(define saved-state (random-state)) +(assert-equal "random-state-len" (length saved-state) 8) +(random-int 1000000) ; advance +(random-int 1000000) ; advance +(random-state! saved-state) +(assert-equal "random-state-restore" (random-int 1000000) 558742) + ;;; ═══════════════════════════════════════════════════════════════ ;;; Comparison ;;; ═══════════════════════════════════════════════════════════════ diff --git a/tests/portal-cross-test.sh b/tests/portal-cross-test.sh index a982dda..41cef62 100755 --- a/tests/portal-cross-test.sh +++ b/tests/portal-cross-test.sh @@ -67,7 +67,40 @@ rm -f "$SEXP" /tmp/cross.sexp echo echo "═══════════════════════════════════════════════════════" -echo "Cross-impl portal: $PASS passed, $FAIL failed" +echo "RNG portal cross-impl (xoshiro256** state via S-expression)" +echo "Proves: seed in one impl, resume in another, identical stream." +echo "Ticket: docs/tickets/0001-portal-rng.md" +echo "═══════════════════════════════════════════════════════" + +RNG_SEXP=/tmp/cross-rng-xtest.sexp + +for PRODUCER in "Python|$PY tests/portal-rng-save.lsp" \ + "C|$C tests/portal-rng-save.lsp" \ + "Asm|$ASM < tests/portal-rng-save.lsp"; do + P_NAME="${PRODUCER%%|*}" + P_CMD="${PRODUCER#*|}" + echo + echo "── producer: $P_NAME ──" + rm -f "$RNG_SEXP" /tmp/cross-rng.sexp + eval "$P_CMD" >/dev/null 2>&1 + cp /tmp/cross-rng.sexp "$RNG_SEXP" + + for CONSUMER in "Python|$PY tests/portal-rng-load.lsp" \ + "C|$C tests/portal-rng-load.lsp" \ + "Asm|$ASM < tests/portal-rng-load.lsp"; do + C_NAME="${CONSUMER%%|*}" + C_CMD="${CONSUMER#*|}" + cp "$RNG_SEXP" /tmp/cross-rng.sexp + OUTPUT=$(eval "$C_CMD" 2>&1) + verify "$P_NAME → $C_NAME" "$OUTPUT" + done +done + +rm -f "$RNG_SEXP" /tmp/cross-rng.sexp + +echo +echo "═══════════════════════════════════════════════════════" +echo "Cross-impl portal + RNG: $PASS passed, $FAIL failed" if [ $FAIL -ne 0 ]; then exit 1 fi diff --git a/tests/portal-rng-load.lsp b/tests/portal-rng-load.lsp new file mode 100644 index 0000000..953acf3 --- /dev/null +++ b/tests/portal-rng-load.lsp @@ -0,0 +1,17 @@ +;;; portal-rng-load.lsp — resume xoshiro256** state from a file written +;;; by another (or same) impl, draw 5 values, and compare against the +;;; baseline captured by portal-rng-save.lsp. + +(define expected-baseline '()) +(load "/tmp/cross-rng.sexp") ; sets rng state + binds expected-baseline + +(define actual + (list (random-int 1000000) (random-int 1000000) (random-int 1000000) + (random-int 1000000) (random-int 1000000))) + +(display "expected: ") (display expected-baseline) (newline) +(display "actual: ") (display actual) (newline) + +(if (equal? actual expected-baseline) + (display "PASS: cross-impl RNG portal round-trip\n") + (display "FAIL: cross-impl RNG portal round-trip\n")) diff --git a/tests/portal-rng-save.lsp b/tests/portal-rng-save.lsp new file mode 100644 index 0000000..8020132 --- /dev/null +++ b/tests/portal-rng-save.lsp @@ -0,0 +1,30 @@ +;;; portal-rng-save.lsp — seed, advance, capture state AND next-5 baseline +;;; to /tmp/cross-rng.sexp so another impl can resume and self-verify. +;;; +;;; Uses S-expression portal (portable across Python, C, asm) rather than +;;; impl-specific JSON/binary format. Proves: (random-state) + (random-state!) +;;; preserves xoshiro256** state across processes AND implementations. + +(random-seed! 42) + +;; Advance the stream by 5 draws. +(define (advance n) + (if (= n 0) 'done (begin (random-int 1000000) (advance (- n 1))))) +(advance 5) + +;; Snapshot state *before* drawing the 5 baseline values. +(define rng-snapshot (random-state)) + +;; Compute next 5 draws — these are the baseline the loader must reproduce. +(define baseline + (list (random-int 1000000) (random-int 1000000) (random-int 1000000) + (random-int 1000000) (random-int 1000000))) + +;; Write a portable portal file. Any impl can (load) it. +(define port (open-output-file "/tmp/cross-rng.sexp")) +(display ";; lumbda cross-impl RNG portal (S-expression)\n" port) +(display "(random-state! '" port) (write rng-snapshot port) (display ")\n" port) +(display "(define expected-baseline '" port) (write baseline port) (display ")\n" port) +(close-port port) + +(display "saved baseline: ") (display baseline) (newline)