ref: d7f9a3b3bfb373bd6ba2753907a0e695ca683d22
parent: 49b352fcd5ec7cca5f34b5f417e79211d7384291
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Feb 6 22:12:21 EST 2025
make-system-image: don't print pretty
--- a/boot/flisp.boot
+++ b/boot/flisp.boot
@@ -1,447 +1,1 @@
-(*builtins* #(0 0 0 0 0 0 0 0 0 0 0 0 #fn("5000n10<:" #())
- #fn("5000n10=:" #()) 0 0 0 0 #fn("5000n10B:" #()) 0 0 0 0 0 #fn("5000n10H:" #()) 0 0
- 0 #fn("8000z0700}2:" #(<)) 0 #fn("6000n201N:" #()) 0 #fn("6000n201P:" #())
- #fn("6000n201Q:" #()) #fn("5000n10R:" #())
- #fn("5000n10S:" #()) #fn("5000n10T:" #()) 0 #fn("5000n10V:" #())
- #fn("5000n10W:" #()) #fn("5000n10X:" #())
- #fn("5000n10Y:" #()) #fn("5000n10Z:" #())
- #fn("5000n10[:" #()) #fn("5000n10\\:" #())
- #fn("5000n10]:" #()) 0 #fn("6000n201_:" #()) 0 0 0 #fn("6000n201c:" #())
- #fn("6000n201d:" #()) #fn("7000z00:" #())
- #fn("8000z0700}2:" #(apply)) #fn("8000z0700}2:" #(+))
- #fn("8000z0700}2:" #(-)) #fn("8000z0700}2:" #(*))
- #fn("8000z0700}2:" #(/)) #fn("8000z0700}2:" #(div0))
- #fn("8000z0700}2:" #(=)) #fn("6000n201m:" #()) 0 #fn("8000z0700}2:" #(vector))
- #fn("8000z0700}2:" #(aset!)) 0 0 0 0 0 0 0 0 0 0 0 #fn("9000n3012082>1|:" #(#fn("6000n1A061:" #())))
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #fn("8000z0700}2:" #(aref)) 0 #fn("5000n10\x8e:" #())
- 0)
- *properties* #table(*funvars* #table(*prompt* (#f) lz-unpack ((data :to destination)
- (data :size
- decompressed-bytes)) void? ((x)) >= ((a . rest)) rand-uint64 (nil) help ((term)) length= ((lst
- n)) = ((a . rest)) car ((lst)) <= ((a . rest)) rand-uint32 (nil) /= ((a . rest)) void (rest) lz-pack ((data
- (level 0))) rand (nil) nan? ((x)) rand-float (nil) cons? ((value)) vm-stats (nil) * ((number…)) rand-double (nil) cdr ((lst)) + ((number…)) > ((a . rest))) *doc* #table(>= "Return #t if the arguments are in non-increasing order (previous\none is greater than or equal to the next one)." void? "Return #t if x is #<void> and #f otherwise." length= "Bounded length test.\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates." car "Returns the first element of a list or nil if not available." *builtins* "VM instructions as closures." <= "Return #t if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)." void "Return the constant #<void> while ignoring any arguments.\n#<void> is mainly used when a function has side effects but does not\nproduce any meaningful value to return, so even though #t or nil could\nbe returned instead, in case of #<void> alone, REPL will not print\nit." rand "Return a random non-negative fixnum on its maximum range." nan? "Return #t if the argument is NaN, regardless of the sign." Instructions "VM instructions mapped to their encoded byte representation." rand-double "Return a random double on [0.0, 1.0] interval." > "Return #t if the arguments are in strictly decreasing order (previous\none is greater than the next one)." cdr "Returns the tail of a list or nil if not available." + "Return sum of the numbers or 0 with no arguments." lz-unpack "Return decompressed data previously compressed using lz-pack.\nEither destination for the decompressed data or the expected size of\nthe decompressed data must be specified. In the latter case a new\narray is allocated." rand-uint64 "Return a random integer on [0, 2⁶⁴-1] interval." help "Display documentation for the specified term, if available." = "Return #t if the arguments are equal." rand-uint32 "Return a random integer on [0, 2³²-1] interval." /= "Return #t if not all arguments are equal. Shorthand for (not (= …))." lz-pack "Return data compressed using Lempel-Ziv.\nThe data must be an array, returned value will have the same type.\nThe optional level is between 0 and 10. With level 0 a simple LZSS\nusing hashing will be performed. Levels between 1 and 9 offer a\ntrade-off between time/space and ratio. Level 10 is optimal but very\nslow." rand-float "Return a random float on [0.0, 1.0] interval." arg-counts "VM instructions mapped to their expected arguments count." *prompt* "Function called by REPL to signal the user input is required.\nDefault function prints \"#;> \"." cons? "Returns #t if the value is a cons cell." vm-stats "Print various VM-related information, such as the number of GC calls\nso far, heap and stack size, etc." * "Return product of the numbers or 1 with no arguments." *properties* "All properties of symbols recorded with putprop are recorded in this table."))
- *syntax-environment* #table(bcode:nconst #fn("7000n1200r2e3:" #(aref)) doc-for #fn("@000\x8710002000\x881000I60O?140B;35040<;I40402086510B;35040=88II087\\3?07122862353@30O@F087\\360O@<071228624534252686e2261e22688e2e4:" #(#fn(top-level-value)
- error "docs: " ": no funvars specified" ": funvars set but isn't a function" symbol-set-doc quote)) with-input-from #fn("<000z12021e1220e2e1e12315163:" #(#fn(nconc)
- with-bindings *input-stream* #fn(copy-list))) unless #fn("<000z1200O211Pe4:" #(if begin)) time #fn("=000n1202122e1e2e123024252622e121e32728e5e3e3:" #(let
- #:g358 time-now prog1 princ "Elapsed time: " - " seconds" *linefeed*)) cond #fn(";000z0\x8d\x8a520852185>1_51485<061:" #(#0=#fn("7000z0\x8d:" #() void)
- #fn(">000n10H340O:0<85<20Q;I80485<DQ3C085=J6085<:2185=P:85=J@02285<A<0=51e3:85T23C\x94074758551513c07675855151278685<e2e12886217975855151PA<0=51e4e3:272:85<e2e1282:7585512:e2A<0=51e4e3:2885<2185=PA<0=51e4:" #(else
- begin or => 1arg-lambda? caddr caadr let if cddr #:g26) cond-clauses->if))) do #fn("I000z21<2071052207205220230522425268827872829e12:1=51522829e12:82512825e18:52e153e4e3e2e12825e18952e3:" #(#fn(map)
- car cadr #fn("6000n170051B38071061:0<:" #(cddr caddr)) letrec #:g328 λ if #fn(nconc) begin #fn(copy-list))) mark-label #fn("8000n22002122e21e4:" #(emit
- quote label)) with-bindings #fn("G000z12071052207205220230522425e12076888653e12720288687535129242:e12715152242:e127202;8688535152e3e164:" #(#fn(map)
- car cadr #fn("5000n12060:" #(#fn(gensym))) #fn(nconc) let list #fn(copy-list)
- #fn("7000n22001e3:" #(set!)) unwind-protect begin #fn("7000n22001e3:" #(set!)))) let #fn(">000z1O0R3B00?641<?041=?1@30O42021e12223052e124151532225052863C0268687e2e186e3@408788P:" #(#fn(nconc)
- λ #fn(map) #fn("5000n10B3500<:0:" #()) #fn(copy-list)
- #fn("5000n10B3500T:7060:" #(void)) letrec)) bcode:code #fn("7000n1200Ee3:" #(aref)) define-macro #fn("A000z170151863D0710<860=5341=?1@30O42223240<e22526e10=e12715153e3e2:" #(value-get-doc
- symbol-set-doc void set-syntax! quote #fn(nconc) λ #fn(copy-list))) make-label #fn("5000n120e1:" #(gensym)) bcode:cenv #fn("7000n1200r3e3:" #(aref)) > #fn("<000z12021e12273151510e163:" #(#fn(nconc)
- < #fn(copy-list) reverse!)) quasiquote #fn("7000n1700E62:" #(bq-process)) when #fn(";000z1200211POe4:" #(if
- begin)) help #fn(";000n17002152853W072855147350424250>170026q535247350@B0722728051524735047960:" #(getprop
- *doc* princ newline #fn(for-each) #fn("7000n17050471A0P61:" #(newline print)) *funvars* "no help for "
- #fn(string) void)) bcode:ctable #fn("7000n1200Ke3:" #(aref)) with-output-to #fn("<000z12021e1220e2e1e12315163:" #(#fn(nconc)
- with-bindings *output-stream* #fn(copy-list))) catch #fn("?000n22012122e123242522e2262722e22829e2e3262:22e20e3e42;22e22<22e2e4e3e3:" #(trycatch
- λ #:g353 if and cons? eq? car quote thrown-value cadr caddr raise)) let* #fn("@000z10H3E02021e1qe12215153e1:2021e173051e1e1220=B3H02024e10=e12215153e1@301515375051e2:" #(#fn(nconc)
- λ #fn(copy-list) caar let* cadar)) letrec #fn(">000z1202021e12273052e122240522515154e1227605262:" #(#fn(nconc)
- λ #fn(map) car #fn("8000n12021e12205162:" #(#fn(nconc) set! #fn(copy-list)))
- #fn(copy-list) void)) /= #fn("=000z1202122e10e12315153e2:" #(not #fn(nconc) = #fn(copy-list))) bcode:sp #fn("7000n1200r4e3:" #(aref)) bcode:stack #fn(":000n2200r421220e21e3e4:" #(aset!
- + bcode:sp)) assert #fn(";000n1200D2122230e2e2e2e4:" #(if raise quote assert-failed)) case #fn("A000z1\x8d\x8a6208621_514225023870e2e12425e126278687>215252e3:" #(#0#
- #fn("8000n2120C5020:1J40O:1R3=021072151e3:1H3=023072151e3:1=J>0230721<51e3:74751523=0260271e2e3:280271e2e3:" #(else
- eq? quote-value eqv? every symbol? memq quote memv) vals->cond)
- #fn(gensym) let #fn(nconc) cond #fn(map) #fn("7000n1A<F0<520=P:" #()))) receive #fn("?000z22021q1e32221e10e123825153e3:" #(call-with-values
- λ #fn(nconc) #fn(copy-list))) unwind-protect #fn("?000n2202122q1e3e2e1232402225e12621e12725e2e3e3e321e1e3e3:" #(let
- #:g354 λ prog1 trycatch #:g355 begin raise)) dotimes #fn("A000z10<0T20E2187Ke32223e186e1e12415153e4:" #(for
- - #fn(nconc) λ #fn(copy-list))) throw #fn("9000n220212223e201e4e2:" #(raise list quote
- thrown-value)))
- 1+ #fn("6000n10KM:" #() 1+) 1-
- #fn("6000n10K~:" #() 1-) 1arg-lambda? #fn("7000n10B;3E04700<51;3:04710TK62:" #(is-lambda?
- length=) 1arg-lambda?)
- <= #fn(";000z1\x8d\x8a6862086>1_486<^10162:" #(#fn("7000n21V;IL041<0L2;I5040\x8e340O:A<1<1=62:" #())) <=)
- > #fn(";000z1\x8d\x8a6862086>1_486<^10162:" #(#fn("7000n21V;IE041<0L2;3;04A<1<1=62:" #())) >)
- >= #fn(";000z1\x8d\x8a6862086>1_486<^10162:" #(#fn("7000n21V;IL0401<L2;I5040\x8e340O:A<1<1=62:" #())) >=)
- Instructions #table(call.l 81 trycatch 75 largc 79 loadg.l 68 aref2 23 box 90 cadr 36 argc 62 setg 71 load0 21 nan? 94 vector? 45 fixnum? 41 loadc0 17 loada0 0 div0 59 keyargs 89 call 5 loada.l 69 brt.l 50 sub2 78 add2 29 loadc.l 70 loadc 9 builtin? 43 set-car! 47 brt 25 ret 10 loadi8 66 tapply 77 loadvoid 93 loada1 1 shift 46 boolean? 39 atom? 24 cdr 13 brne.l 83 / 58 loadf 31 equal? 52 apply 54 dup 11 loadt 20 jmp.l 48 null? 38 not 35 = 60 set-cdr! 30 eq? 33 * 57 load1 27 bound? 42 brf 3 function? 44 box.l 91 < 28 brnn.l 84 jmp 16 loadv 2 for 76 lvargc 80 dummy_eof 95 + 55 brne 19 compare 61 neg 37 loadv.l 67 number? 40 vargc 74 brn 85 brbound 88 vector 63 loadc1 22 setg.l 72 cons? 18 brf.l 49 aref 92 symbol? 34 aset! 64 car 12 cons 32 tcall.l 82 - 56 brn.l 86 optargs 87 closure 14 pop 4 eqv? 51 list 53 seta 15 seta.l 73 brnn 26 loadnil 65 loadg 7 loada 8 tcall 6)
- __init_globals #fn("7000n07021d37022@402384w4^147025d;350426;I50427w8429w:47;w<47=w>47?w@:" #(*os-name*
- "macos" #fn("6000n0702161:" #(princ "\e[0m\e[1m#;> \e[0m"))
- #fn("6000n0702161:" #(princ "#;> ")) *prompt* "dos" "\\" "/" *directory-separator* "\n"
- *linefeed* *stdout* *output-stream* *stdin* *input-stream* *stderr* *error-stream*) __init_globals)
- __rcscript #fn("=000n0708421c360O@T08422c37023@G08424c3=07526514O@4027^184;390428845185;3=0429857:2;53863B02<86513907=8661:O:" #(*os-name*
- "unknown" "plan9" "home" "macos" princ "\e]0;femtolisp v0.999\a" "HOME" #fn(os-getenv)
- #fn(string) *directory-separator* ".flisprc" #fn(path-exists?) load) __rcscript)
- __script #fn("6000n1200>121{:" #(#fn("6000n070A61:" #(load))
- #fn("6000n170051421K61:" #(top-level-exception-handler
- #fn(exit)))) __script)
- __start #fn("7000n1705040=B3D00=w14Ow24730T51@C00w14Dw24745047550426E61:" #(__init_globals
- *argv*
- *interactive*
- __script
- __rcscript
- repl #fn(exit)) __start)
- abs #fn("6000n10EL23500U:0:" #() abs) any
- #fn("7000n21B;3D0401<51;I:047001=62:" #(any) any) arg-counts #table(bound? 1 function? 1 symbol? 1 car 1 cons 2 cadr 1 nan? 1 for 3 boolean? 1 fixnum? 1 vector? 1 cdr 1 atom? 1 div0 2 equal? 2 eqv? 2 compare 2 null? 1 not 1 number? 1 set-cdr! 2 builtin? 1 eq? 2 cons? 1 set-car! 2)
- argc-error #fn(";000n2702102211Kl237023@402465:" #(error "compile error: " " expects "
- " argument." " arguments.") argc-error)
- array? #fn("7000n10];IF042005185B;390485<21Q:" #(#fn(typeof) array) array?) assoc
- #fn("7000n21J40O:701510d3501<:7101=62:" #(caar assoc) assoc) assv #fn("7000n21J40O:701510c3501<:7101=62:" #(caar
- assv) assv)
- bcode:indexfor #fn(";000n20KG0r2G20861523:02186162:2286187534870r287KMp4:" #(#fn(has?)
- #fn(get) #fn(put!)) bcode:indexfor)
- box-vars #fn("9000n2\x8d\x8a68620086>2_486<^1161:" #(#fn("9000n10B3Q00<T3B070A21720<5153@30O4F<0=61:O:" #(emit
- box caddr))) box-vars)
- bq-bracket #fn(";000n20H3=070710152e2:0<22CS01El2380700=P:707324710=1K~52e3e2:0<25CT01El2390260Te2:707027710T1K~52e3e2:0<28CP01El23500T:707029710T1K~52e3e2:70710152e2:" #(list
- bq-process unquote cons 'unquote unquote-splicing copy-list 'unquote-splicing unquote-nsplicing
- 'unquote-nsplicing) bq-bracket)
- bq-bracket1 #fn(":000n20B3S00<20CL01El23500T:7122730=1K~52e3:730162:" #(unquote cons 'unquote
- bq-process) bq-bracket1)
- bq-process #fn("<000n20R380200e2:0]3T0717205115286<73C907486=P:757486e3:0H3400:0<26CB07327710T1KM52e3:0<28CV01El23?0790r2523500T:7:2;710=1K~52e3:7<7=052It07>0512?2@1>105286J807387P:87=JA07:87<7186152e3:2A7B87P7186152e162:\x8d\x8a6862C186>2_486<^10q62:" #(quote
- bq-process vector->list list vector apply quasiquote 'quasiquote unquote length= cons 'unquote
- any splice-form? lastcdr #fn(map) #fn("7000n1700A62:" #(bq-bracket1))
- #fn(nconc) list* #fn("=000n20J;02071151P:0B3o00<22CX020731AEl23700=@C07425e2760=AK~52e252P:F<0=770<A521P62:2071760A521P51P:" #(nconc
- reverse! unquote nreconc list 'unquote bq-process bq-bracket))) bq-process)
- builtin->instruction #fn("8000n120A0O63:" #(#fn(get)) #(#table(#.cadr cadr #.aset! aset! #.nan? nan? #.+ + #.- - #.equal? equal? #.eq? eq? #.builtin? builtin? #.not not #.cons? cons? #.cdr cdr #./ / #.div0 div0 #.set-car! set-car! #.vector vector #.set-cdr! set-cdr! #.< < #.for for #.cons cons #.apply apply #.eqv? eqv? #.vector? vector? #.list list #.aref aref #.car car #.bound? bound? #.function? function? #.null? null? #.symbol? symbol? #.compare compare #.boolean? boolean? #.fixnum? fixnum? #.atom? atom? #.= = #.number? number? #.* *)))
- caaaar #fn("5000n10<<<<:" #() caaaar) caaadr
- #fn("5000n10T<<:" #() caaadr) caaar #fn("5000n10<<<:" #() caaar) caadar
- #fn("5000n10<T<:" #() caadar) caaddr #fn("5000n10=T<:" #() caaddr) caadr
- #fn("5000n10T<:" #() caadr) caar #fn("5000n10<<:" #() caar) cadaar
- #fn("5000n10<<T:" #() cadaar) cadadr #fn("5000n10TT:" #() cadadr) cadar
- #fn("5000n10<T:" #() cadar) caddar #fn("5000n10<=T:" #() caddar) cadddr
- #fn("5000n10==T:" #() cadddr) caddr #4=#fn("5000n10=T:" #() caddr) call-with-values
- #fn("7000n205086B3@0A86<C90186=}2:18661:" #() #(#3=(*values*))) capture-var! #fn("<000n20r3G70186E5387;IG042186510r322861e152p4:" #(index-of
- #fn(length) #fn(nconc)) capture-var!)
- cdaaar #fn("5000n10<<<=:" #() cdaaar) cdaadr
- #fn("5000n10T<=:" #() cdaadr) cdaar #fn("5000n10<<=:" #() cdaar) cdadar
- #fn("5000n10<T=:" #() cdadar) cdaddr #fn("5000n10=T=:" #() cdaddr) cdadr
- #fn("5000n10T=:" #() cdadr) cdar #fn("5000n10<=:" #() cdar) cddaar
- #fn("5000n10<<==:" #() cddaar) cddadr #fn("5000n10T==:" #() cddadr) cddar
- #fn("5000n10<==:" #() cddar) cdddar #fn("5000n10<===:" #() cdddar) cddddr
- #fn("5000n10====:" #() cddddr) cdddr #fn("5000n10===:" #() cdddr) cddr
- #fn("5000n10==:" #() cddr) char? #fn("6000n12005121Q:" #(#fn(typeof) rune) char?)
- closure? #fn("6000n10\\;36040[S:" #() closure?) compile
- #fn("8000n170q7105162:" #(compile-f lower-define) compile) compile-and #fn("<000n570018283D218467:" #(compile-short-circuit
- brf) compile-and)
- compile-app #fn("E000n483<88R3U07088152IK088Z3E0218851[3;0218851@40887283=23523q07401O895440r40r4GKMp4750183=530r40r4G8:UMp47608237027@40288:63:89[;3904798951892:Cf07089152I\\0212:517:d3P07;83r2523E07401O83T5447602:62:89B3P07<89<513F07=83513=07>01828364:8:360O@F07401O895440r40r4GKMp4750183=530r40r4G8;UMp48:360O@=00r40r4Gr/Mp48:3C07?018283898:8;67:760823702@@402A8;63:" #(in-env?
- #fn(top-level-value) length> 255 compile-in compile-arglist emit tcall.l call.l
- builtin->instruction cadr length= is-lambda? inlineable? compile-let compile-builtin-call tcall
- call) compile-app)
- compile-arglist #fn("8000n3202101>282524228261:" #(#fn(for-each)
- #fn("9000n170AFO0544Ar4Ar4GKMp:" #(compile-in))
- #fn(length)) compile-arglist)
- compile-aset! #fn("=000n3208251r2~87Kl23?07101O2282P64:K87L23h07101O2374828752P544750176828752530r40r4G88UMp47702262:7822r362:" #(#fn(length)
- compile-app aset! aref list-head compile-arglist list-tail emit argc-error) compile-aset!)
- compile-begin #fn("9000n483H3?0700182715064:83=H3>070018283<64:7001O83<5447202352474018283=64:" #(compile-in
- void emit pop compile-begin) compile-begin)
- compile-builtin-call #fn(">000n7\x8d202186850>3?;514227385O538<3I07483=8<52I=075858<52@30O4858=26CL086El23:07702862:770858663:8=29C708;60:8=2:C708;60:8=2;C]086El23:07702<62:86r2l23:07702=62:770858663:8=2>Cm086El23:07585K62:86Kl23:07702?62:86r2l23:07702@62:770858663:8=2ACL086El23:07702B62:770858663:8=2CCL086El23:07585K62:770858663:8=2DCN086El23<07702E2F63:770858663:8=2GCX086r2L23;07585r262:770823702H@402G8663:8=2ICb086r2l23:07702J62:r286L23?07708586r3~63:7585r262:7708562:" #(#0#
- #fn("8000n0AEl239070FK62:7192FA63:" #(argc-error emit) num-compare)
- #fn(get) arg-counts length= argc-error list emit loadnil < = + load0 add2 - neg sub2 * load1 /
- vector loadv #() apply tapply aref aref2) compile-builtin-call)
- compile-f #fn("8000n2702101>22262:" #(call-with-values #fn("7000n070AF62:" #(compile-f-))
- #fn("5000n20:" #())) compile-f)
- compile-f- #fn("O000n270501T711T517215173741T52711518;J7025@408;87H360E@802687518=268:51~73778:528:\x85\xa208?JL07886298>88J708=@508=U54@r07:867;2<7=2<7>8?527?268?5151535152478862@8>268?5188J708=@508=U5547A8608:898>55@30O42B8=L23I0788688J702C@402D8=53@W088\x85?078862E8=53@E08:J?078862F8=53@30O47G0897H7I1518952537J868@<52486r4268951r4Mp47K868@D7I15154478862L5247M2N7O86EG517P86518<5386r3G62:" #(make-code-emitter
- lastcdr lambda:vars filter cons? λ #fn(length) keyword-arg? emit optargs bcode:indexfor
- make-perfect-hash-table #fn(map) cons car iota keyargs emit-optional-arg-inits 255 largc lvargc
- vargc argc extend-env complex-bindings lambda:body box-vars compile-in ret values #fn(function)
- encode-byte-code const-to-idx-vec) compile-f-)
- compile-if #fn("A000n420502050205083T718351728351B3;0738351@30O8;DC=07401828<64:8;OC=07401828=64:7401O8;89554750268953475027885347401828<544823<07502852@;0750298:53475027895347401828=544750278:63:" #(#fn(gensym)
- caddr cdddr cadddr compile-in emit brf label ret jmp) compile-if)
- compile-in #fn("B000\x8740005000\x884000I60O?4483R3<0700183D64:83H3\xa6083EC:07102262:83KC:07102362:83DC:07102462:83OC:07102562:83qC:07102662:7783513:07102862:7983513<07102:8363:7102;8363:83<2<C<07=0183=63:83<RS;ID0483<Z;I;047>83<1523=07?01828364:83<892@CS07A83T513>07B018283T64:7102;83T63:892CC=07D01828364:892EC>07F018283=64:892GC;07H018363:892ICD07J2K183>22L01>262:892MC@07N018283=8465:892OC>07P018283=64:892QCE07R0183T2E7S8351P64:892TCE07B01D83T5447102U62:892VC\x93083T7S83517W8;518:R360O@807X2Y5148<3`08;=?;47Z8:8<8;<B;3G047[8;<<51;3:047\\8;<5153@30O47]018:8;<64:892^Cp07B01O2Iq83Te35447_7`835151360O@807X2a5147B01O7`83515447102^62:7?01828364:" #(compile-sym
- emit load0 load1 loadt loadf loadnil void? loadvoid fits-i8 loadi8 loadv aset! compile-aset!
- in-env? compile-app quote self-evaluating? compile-in if compile-if begin compile-begin prog1
- compile-prog1 λ call-with-values #fn("7000n070AF62:" #(compile-f-))
- #fn("9000n270A2105341\x85K02223AF>2152470A242515163:O:" #(emit loadv #fn(for-each)
- #fn("9000n170AF0O64:" #(compile-sym))
- closure #fn(length))) and compile-and
- or compile-or while compile-while cddr return ret set! value-get-doc error "set!: name must be a symbol"
- symbol-set-doc is-lambda? lambda:vars compile-set! trycatch 1arg-lambda? caddr "trycatch: second form must be a 1-argument lambda") compile-in)
- compile-let #fn("A000n483<83=0r4G88T70018953718;727388518;528:537408=524258=1<521=P7608>827388515440r40r4G8<UMp4E8<L23A082I<0770288<63:O:" #(compile-arglist
- vars-to-env complex-bindings caddr box-vars #fn(nconc) compile-in emit shift) compile-let)
- compile-or #fn("<000n470018283O21O67:" #(compile-short-circuit brt) compile-or)
- compile-prog1 #fn(":000n37001O82T544718251B3_00r40r4GKMp47201O718251544730245240r40r4Gr/Mp:O:" #(compile-in
- cddr compile-begin emit pop) compile-prog1)
- compile-set! #fn("?000n470821E538821CF07201O83544730248263:88<El288=T893<07588=51@9076082528:3o07308937027@40288;5340r40r4GKMp47201O835440r40r4Gr/Mp47302962:7201O8354489IA07:2;2<825251@30O47302=8;63:" #(lookup-sym
- global compile-in emit setg vinfo:index capture-var! loada loadc set-car! error #fn(string)
- "internal error: misallocated var " seta) compile-set!)
- compile-short-circuit #fn("?000n783H3?0700182848665:83=H3@070018283<8665:86;I70421507001O83<865540r40r4GKMp486360O@9072023524720858;5340r40r4Gr/Mp486360O@907202452475018283=84858657486340O:720268;63:" #(compile-in
- #fn(gensym) emit dup pop compile-short-circuit label) compile-short-circuit)
- compile-sym #fn(";000n470821E538821C`02282513M073248251513@07502624825163:750278263:88<El23W0750287988=51534833A088=T3:07502:62:O:7502;7<08252534833A088=T3:07502:62:O:" #(lookup-sym
- global #fn(constant?) printable? #fn(top-level-value) emit loadv loadg loada vinfo:index car
- loadc capture-var!) compile-sym)
- compile-thunk #fn(":000n170q21q72051e362:" #(compile-f λ lower-define) compile-thunk)
- compile-while #fn(";000n4205020507101O72505440r40r4GKMp473024885347101O825447302589534730265240r40r4Gr/Mp47101O835447302788534730248963:" #(#fn(gensym)
- compile-in void emit label brf pop jmp) compile-while)
- complex-bindings #fn("=000n2205020507101OO8687564722386>174875162:" #(#fn(table)
- complex-bindings-
- filter #fn("7000n120A062:" #(#fn(has?)))
- table-keys) complex-bindings)
- complex-bindings- #fn("=000n61J40O:0R3K0833D02001523;021840D63:O:0H;I80472051340O:0<23Co0200T1523Q021850TD534833>021840TD53@30O@30O474750511O83848566:760<513U074770517817905152O82S;I50483848566:740<17:051838485562;2<1838485>40=52P:" #(#fn(memq)
- #fn(put!) quoted? set! complex-bindings- caddr is-lambda? lambda:body diff lambda:vars
- inlineable? #fn(map) #fn(";000n1700AOF929366:" #(complex-bindings-))) complex-bindings-)
- const-to-idx-vec #fn("9000n1200r2G51212285>10KG52485:" #(#fn(vector-alloc)
- #fn(for-each)
- #fn("7000n2A10p:" #())) const-to-idx-vec)
- copy-tree #fn("7000n10H3400:700<51700=51P:" #(copy-tree) copy-tree) count
- #fn("9000n2\x8d\x8a620862186>1_51486<01E63:" #(#0#
- #fn("9000n31J5082:A<01=01<5139082KM@408263:" #() count-)) count)
- delete-duplicates #fn(":000n1700rD523O02150\x8d\x8a686228586>2_486<^10q62:0H3400:0<0=73858652390748661:85748651P:" #(length>
- #fn(table) #fn("8000n20H38070161:21A0<523:0F<0=162:22A0<D534F<0=0<1P62:" #(reverse! #fn(has?)
- #fn(put!))) member
- delete-duplicates) delete-duplicates)
- diff #fn("8000n20J40q:200<1523:0710=162:0<710=152P:" #(#fn(memq) diff) diff)
- disassemble #fn("U000\x871000.///\x881000I60O?14z282JG07001E534715047260:@30O482<2305124051\x8d\x8d252687>1?:5142527187>2?;514r4288851\x8a<\x8d8<<8=L23\x9124292:888<>2O7;53r48<<L23907150@30O4E87K~2<|48<8<<KM_48>2=8?2>523[08;8>8<<r45348:897?888<<52G5148<8<<r4M_@\x1f12=8?2@523V08;8>8<<K5348:89888<<GG5148<8<<KM_@\xf012=8?2A523e08;8>8<<K5347B2C888<<G8>2DC70r3@30EM515148<8<<KM_@\xb212=8?2E523\\08;8>8<<r45347B2C7?888<<52515148<8<<r4M_@}12=8?2F523\xb808;8>8<<r88>2GC70r4@30EM5347B2C7?888<<52512H5248<8<<r4M_47B2C7?888<<52515148<8<<r4M_48>2GCY07B2H5147B2C7?888<<52512H5248<8<<r4M_@30O@\xec08?2Ic3^08;8>8<<r45347B2C7?888<<52512H5248<8<<r4M_@\xb802=8?2J523e08;8>8<<r25347B2K7L8<<r,7M888<<52g3515248<8<<r2M_@z02=8?2N523e08;8>8<<r45347B2K7L8<<r,7?888<<52g3515248<8<<r4M_@<08;8>8<<E53^1^1@\xc9-:" #(disassemble
- newline void #fn(function:code) #fn(function:vals)
- #1=#fn("7000z0\x8d:" #() void) #fn("9000n10\\3F00[IA070504710OAKM63:72061:" #(newline disassemble
- print) print-val)
- #fn(";000n370A3U0FEl23N071A72151523A0A182ML237023@4024751r5~512602765:" #(princ >= 1- " >" " "
- hex5 ": " " ") print-inst)
- #fn(length) #fn(table-foldl) #fn("7000n382;I?041AF<GQ;34040:" #()) Instructions #fn("6000n1702161:" #(princ
- "\t")) #fn(memq) (loadv.l loadg.l setg.l) ref-int32-LE (loadv loadg setg)
- (loada seta loadc call tcall list + - * / < = vector argc vargc loadi8 apply tapply closure box
- shift aref) princ #fn(number->string) aref (loada.l seta.l loadc.l largc lvargc call.l tcall.l
- box.l) (optargs keyargs) keyargs " " brbound
- (jmp brf brt brne brnn brn) "@" hex5 ref-int16-LE (jmp.l brf.l brt.l brne.l brnn.l brn.l)) disassemble)
- div #fn("7000n201k0EL2;3D041EL2;3404K;I504r/;I404EM:" #() div) emit
- #fn("Q000z2\x8d2021?75140EG82Jk0122CB088<23C:08824_@R0125CE08788<513;00E88=p@900E188Pp@\x9a126127523A078082<52e1?2@30O42912:52893D02;82<L23:089T?1@30O^142912<52893D02;82<L23:089T?1@30O^1412=C\\0822>d3=02??14q?2@F0822@d3=02A?14q?2@30O@30O412BC\\0822>d3=02C?14q?2@F0822@d3=02D?14q?2@30O@30O488<12EQ;3\x9b04892FCM088T2GCE00E82<2H7I8851PPp@x0892FCB00E82<2J88=PPp@a0892KCB00E82<2L88=PPp@J0892GCB00E82<2M88=PPp@30O;I]0412JCI0892GCB00E82<2H88=PPp@?00E7N182P8852p^140:" #(#0#
- #fn("7000n17002162:" #(member (load0 load1 loadt loadf loadnil loadvoid)) load?) car cdr cadr pop
- #fn(memq) (loadv loadg setg) bcode:indexfor #fn(assq)
- ((loadv loadv.l) (loadg loadg.l) (setg setg.l) (loada loada.l) (seta seta.l) (box box.l)) 255 ((loadc
- loadc.l)) loada (0) loada0 (1) loada1 loadc loadc0 loadc1 brf not null? brn cddr brt eq? brne
- brnn nreconc) emit)
- emit-optional-arg-inits #fn("<000n582B3\x91020507102284534710238953474075176838452q53O7782515447102884534710295247102:895347;0182=8384KM65:O:" #(#fn(gensym)
- emit brbound brt compile-in extend-env list-head cadar seta pop label emit-optional-arg-inits) emit-optional-arg-inits)
- encode-byte-code #fn("S000n17005171855172238651r3238651r2ki2M2452238651E255025502650OO278<28524\x8d8988L23\xda148689G?=48=29CP02:8:8689KMG2;8<5153489r2M?9@\xa91278<2<2=7>873\x8308=8D2?C702@@p08D2AC702B@d08D2CC702D@X08D2EC702F@L08D2GC702H@@08D2IC702J@408=^1@408=525152489KM?948988L23:08689G@30O?>42K8=2L523`02:8;2;8<518>534278<873707M@407NE5152489KM?9@\xeb08=2OCH0278<2P8>5152489KM?9@\xce08>X3\xc708=2K8?2Q523H0278<2P8>5152489KM?9@\x9f02K8?2R523\x810278<2P8>5152489KM?94278<2P8689G5152489KM?948=2SCK0278<2P8689G5152489KM?9@30O@E0278<2T8>5152489KM?9^1@30O@\x81.42U2V8<878:>38;5242W8<61:" #(reverse!
- list->vector >= #fn(length) 65536 #fn(table) #fn(buffer)
- #fn(io-write) #int32(0) label #fn(put!) #fn(sizeof)
- #fn(byte) #fn(get) Instructions jmp jmp.l brt brt.l brf brf.l brne brne.l brnn brnn.l brn brn.l
- #fn(memq) (jmp brf brt brne brnn brn) int32 int16 brbound #fn(int32)
- (loadv.l loadg.l setg.l loada.l seta.l largc lvargc call.l tcall.l loadc.l box.l) (optargs
- keyargs)
- keyargs #fn(uint8) #fn(for-each) #fn(";000n220A052421AF37072@407324921520~5162:" #(#fn(io-seek)
- #fn(io-write)
- int32 int16 #fn(get)))
- #fn(iostream->string)) encode-byte-code)
- error #fn("9000z020210P61:" #(#fn(raise) error) error) eval
- #fn("7000n170710515160:" #(compile-thunk expand) eval) even? #fn("7000n1200K52El2:" #(#fn(logand)) even?)
- every #fn("7000n21H;ID0401<51;3:047001=62:" #(every) every) expand
- #fn("G000n1\x8d\x8d\x8d\x8d\x8d\x8d\x8d\x8d\x8d\x8d\x8d\x8a5\x8a6\x8a7\x8a8\x8a9\x8a:\x8a;\x8a<\x8a=\x8a>\x8a?208521_51420862286>1_514208723e1_51420882485868?87>4_5142089258?89>2_514208:268:>1_514208;278:8988>3_514208<288?8:8988>4_514208=29888?>2_514208>2:_514208?2;8?8>8;8<8=>5_5148?<0q62:" #(#0#
- #fn("7000n20Z;I904200152S:" #(#fn(assq)) top?) #fn("8000n10H3400:020d3400:0<B3P07105122CF023A<7405151A<0=5162:0<A<0=51P:" #(((begin))
- caar begin #fn(append) cdar) splice-begin) *expanded* #fn("A000n20H3400:A<201523:0F<051@300A<21152873;0728651@30q2324758852152\x8a987IA024269289>28662:\x8d\x8a:8:278:928993>4_48:<^186518:\x8d8;B3c0493<788;51QIC08;92<8;<89<52_@;08;798;51_48;=?;@\xfb/48::" #(begin
- define get-defined-vars #fn(nconc) #fn(map) list #fn("7000n1A<0F<62:" #())
- #fn(";000n10H3400:0<B3F02071051C<00<A<0=51P:F<0<92<52922223747585515292<52_493<85PA<0=51P:" #(define
- caar #fn(nconc) #fn(map) list get-defined-vars)) caar cdar) expand-body)
- #fn("9000n20H3400:0<B3M00<=B3F070051A<71051152e2@400<F<0=152P:" #(caar cadar) expand-lambda-list)
- #fn("7000n10H3600e1:0<B3?070051A<0=51P:0<A<0=51P:" #(caar) l-vars)
- #fn("?000n20T7005171051A<0T5122237489521522225e1F<868:52e192<888:528764:" #(lastcdr cddr #fn(nconc)
- #fn(map) list λ) expand-lambda)
- #fn("D000n20=V;I6040TH3o070051J400:0T717005151873B00=?0472868752@30O42386A<74051152e3:750517605170051718851F<86512728798:52152893E088=?847287898653@30O42723e18792<868;52Pe193<888;5263:" #(cddr
- value-get-doc symbol-set-doc define caddr cdadr caadr #fn(nconc)
- #fn(map) list) expand-define) #fn("=000n20T20A<71051222324F1>2865215252P:" #(begin cddr #fn(nconc)
- #fn(map)
- #fn("9000n10<70A<0TF525150Fe3:" #(compile-thunk))) expand-let-syntax)
- #fn("5000n20:" #() local-expansion-env) #fn("<000n20H3400:0<208615221A10>3873P087=B3I0A<87T0=f2F<72875115262:73051893>0A<890=f2162:87;I?0486RS;I60486Z3708860:8624C400:8625C:092<0162:8625C:092<0162:8626C:093<0162:8627C:094<0162:8860:" #(#fn(assq)
- #fn(":000n0\x8d\x8a48420AF84>3_484<^19261:" #(#fn("8000n10H3400:0<H3700<@90A<0<F5292<0=51P:" #())))
- caddr macrocall? quote λ define let-syntax) expand-in)) expand)
- expand-define #fn("@000n10T70051B3:070051@H085R37021@=07223740515285R3@021258586<e3e2:212585<2627e185=e128865185<54e3e2:" #(cddr
- #1# error "compile error: invalid syntax " print-to-string set! #fn(nconc) λ #fn(copy-list)) expand-define)
- extend-env #fn("8000n370182E530P:" #(vars-to-env) extend-env) filter
- #fn("9000n2\x8d20210>1?65148601qe163:" #(#0#
- #fn("8000n382\x8d1B3Q04A1<513?0821<qPN=?2@30O41=?1@\x0e/4=:" #() filter-)) filter)
- fits-i8 #fn("8000n10Y;3<0470r\xaf0r\xb063:" #(>=) fits-i8) foldl
- #fn("9000n382J401:700082<15282=63:" #(foldl) foldl) foldr #fn(":000n382J401:082<700182=5362:" #(foldr) foldr)
- get-defined-vars #fn("7000n170A<05161:" #(delete-duplicates) #(#2=(#fn("8000n10H340q:0<20Cj00=B3d00TR;37040Te1;IS040TB;3E0471051R;3:0471051e1;I404q:0<22C?07324A<0=52}2:q:" #(define
- caadr begin nconc #fn(map)) #(#2#)))))
- getprop #fn(":000\x8720003000\x882000I60O?2420711O5387;3<04208708253;I50482:" #(#fn(get)
- *properties*) getprop)
- hex5 #fn("8000n170210r@52r52263:" #(string-lpad #fn(number->string) #\0) hex5) identity
- #fn("5000n10:" #() identity) in-env? #fn("7000n21B;3F042001<52;I:047101=62:" #(#fn(assq)
- in-env?) in-env?)
- index-of #fn("9000n31J40O:01<C5082:7001=82KM63:" #(index-of) index-of) inlineable?
- #fn("9000n10<85B;3u047085<51;3i047185T51;3]04727385T52;3O047485T2552S;3@047685T270=5162:" #(is-lambda?
- list? every symbol? length> 255 length= #fn(length)) inlineable?)
- io-readall #fn("8000n1205021850524228561:" #(#fn(buffer)
- #fn(io-copy)
- #fn(iostream->string)) io-readall)
- io-readline #fn("7000n12002162:" #(#fn(io-readuntil) #\newline) io-readline)
- io-readlines #fn("7000n17071062:" #(read-all-of io-readline) io-readlines) iota
- #fn("7000n17071062:" #(map-int identity) iota) is-lambda? #fn("6000n1020Q;I704020Q:" #(λ) is-lambda?)
- keyword->symbol #fn(";000n1200513K021220512386K24865153^161:0:" #(#fn(keyword?)
- #fn(symbol)
- #fn(string)
- #fn(string-sub)
- #fn(string-length)) keyword->symbol)
- keyword-arg? #fn("6000n10B;3904200<61:" #(#fn(keyword?)) keyword-arg?) lambda-vars
- #fn(":000n1\x8d\x8a520852185>1_51485<00OO54422237405162:" #(#0#
- #fn(":000n40V;I5040R340D:0B3Z00<R3T082;I504833<0702112263:A<0=1828364:0B3\x8d00<B3\x870730<r2523?074051R360O@=070250<2615442774051513=0A<0=182D64:833<0702112863:A<0=1D8364:0B3>070290<26164:01C:07021162:7029026164:" #(error
- "compile error: invalid argument list " ": optional arguments must come after required." length=
- caar "compile error: invalid optional argument " " in list " #fn(keyword?)
- ": keyword arguments must come last." "compile error: invalid formal argument ") check-formals)
- #fn(map)
- #fn("6000n10B390700<61:0:" #(keyword->symbol))
- to-proper) lambda-vars)
- lambda:body #fn("6000n170061:" #(caddr) lambda:body) lambda:vars
- #fn("6000n1700T61:" #(lambda-vars) lambda:vars) last-pair #fn("6000n10=H3400:700=61:" #(last-pair) last-pair)
- lastcdr #fn("6000n10H3400:70051=:" #(last-pair) lastcdr) length=
- #fn("8000n21EL2340O:1El23500H:0H3701El2:700=1K~62:" #(length=) length=) length> #fn("8000n21EL23400:1El23;00B;34040:0H3701EL2:700=1K~62:" #(length>) length>)
- list->vector #fn("6000n1700}2:" #(vector) list->vector) list-head
- #fn("9000n2701E52340q:0<710=1K~52P:" #(<= list-head) list-head) list-ref #fn("7000n2700152<:" #(list-tail) list-ref)
- list-tail #fn("8000n2701E523400:710=1K~62:" #(<= list-tail) list-tail) list?
- #fn("6000n10V;I@040B;3904700=61:" #(list?) list?) load #fn("9000n120021522285>123850>2{:" #(#fn(file)
- :read #fn("9000n0\x8d\x8a48420A84>2_484<^1\x8d\x8d\x8d63:" #(#fn("9000n320A51IG0F<21A510721514735063:24A514737215161:" #(#fn(io-eof?)
- #fn(read) load-process void #fn(io-close))))) #fn("8000n120A5142122F0e361:" #(#fn(io-close)
- #fn(raise)
- load-error))) load)
- load-process #fn("6000n170061:" #(eval) load-process) lookup-sym
- #fn(";000n31J5020:1<2108752883808288P:7201=82KM63:" #(global #fn(assq) lookup-sym) lookup-sym)
- lower-define #fn(";000n1\x8d2021?55140H;I804720513400:0<23C<0747505161:760<513K02728e10Te185051e17905164:2:74062:" #(#1#
- #fn("=000n170051B3N071051B3=02270051P@7073051@60745075855176855186J5087:278687e328748652P:" #(cddr
- cdddr begin caddr void get-defined-vars lower-define λ #fn(map)) λ-body) quoted? define
- lower-define expand-define is-lambda? #fn(nconc) λ lastcdr #fn(map)) lower-define)
- macrocall? #fn("6000n10<R;3904700<61:" #(symbol-syntax) macrocall?) macroexpand-1
- #fn("7000n10H3400:7005185390850=}2:0:" #(macrocall?) macroexpand-1) make-code-emitter
- #fn("9000n0q2050EqEo5:" #(#fn(table)) make-code-emitter)
- make-perfect-hash-table #fn(";000n1\x8d\x8a5208521_514\x8d\x8a6862285860>3_486<^12305161:" #(#1#
- #fn("8000n270712205151162:" #(mod0 abs #fn(hash)) $hash-keyword)
- #fn("=000n120r20i2O52\x8d\x8a68621A085F86>5_486<^19261:" #(#fn(vector-alloc)
- #fn(":000n10B3p070051r2A<85F52i29286G3;093<FKM61:928685p49286KM71051p494<0=61:92:" #(caar
- cdar)))) #fn(length)) make-perfect-hash-table)
- make-system-image #fn("@000n120021222354202402552212223542650277879Dw84Dw942:898:>22;88878586>42<8;>1{8;504:" #(#fn(file)
- :write :create :truncate #fn(string) ".builtin" #fn(buffer)
- (*linefeed* *directory-separator* *argv* that *print-pretty* *print-width* *print-readably*
- *print-level* *print-length* *os-name* *interactive* *prompt* *os-version*)
- *print-pretty* *print-readably* #fn("5000n0Aw04Fw1:" #(*print-pretty* *print-readably*))
- #fn("?000n07021A>17223505152742576842577845253f22885F52428859252429927:52^1^142;F512<2=F51r:522>2?E2@2A84522B84r(522B84r 522B84r\x18525629938652429938552^1^1^142C925142C9361:" #(filter
- #fn("8000n10Z;3u0420051S;3j0421051[S;IC0422051222105151dS;3I04230A52S;3=04242105151S:" #(#fn(constant?)
- #fn(top-level-value) #fn(string) #fn(memq) #fn(iostream?))) simple-sort #fn(environment) nconc #fn(map)
- list top-level-value #fn(write) #fn(io-write) *linefeed* #fn(sizeof)
- #fn(lz-pack) #fn(iostream->string) #fn(array) byte #fn(logand) 255 #fn(ash)
- #fn(io-close))) #fn("6000n1A50420061:" #(#fn(raise)))) make-system-image)
- map! #fn("8000n21\x8d1B3B04101<51_41=?1@\x1d/4:" #() map!) map-int
- #fn(";000n2701E52340q:0E51qPq\x8a78786_4K7115122870>2|486:" #(<= 1- #fn("7000n1A<F051qPN4AA<=_:" #())) map-int)
- max #fn(";000z11J400:70210163:" #(foldl #fn("6000n201L23401:0:" #())) max) member
- #fn("7000n21J40O:1<0d3401:7001=62:" #(member) member) memv #fn("7000n21J40O:1<0c3401:7001=62:" #(memv) memv)
- min #fn(";000z11J400:70210163:" #(foldl #fn("6000n201L23400:1:" #())) min) mod
- #fn("8000n207001521i2~:" #(div) mod) mod0 #fn("7000n2001k1i2~:" #() mod0) negative?
- #fn("6000n10EL2:" #() negative?) nestlist #fn(":000n37082E52340q:1710015182K~53P:" #(<=
- nestlist) nestlist)
- newline #fn("8000\x8700001000\x880000I7070?04210725247360:" #(*output-stream* #fn(io-write)
- *linefeed* void) newline)
- nreconc #fn("7000n2701062:" #(reverse!-) nreconc) odd?
- #fn("6000n170051S:" #(even?) odd?) partition #fn(":000n2\x8d2021?65148601qe1qe164:" #(#0#
- #fn("9000n48283P\x8d1B3Z0401<513?0821<qPN=?2@<0831<qPN=?341=?1@\x05/47088<=88==62:" #(values) partition-)) partition)
- positive? #fn("6000n1E0L2:" #() positive?) princ
- #fn(";000z070Ow042185>1220>12386>1{86504:" #(*print-readably* #fn("5000n0Aw0:" #(*print-readably*))
- #fn("7000n02071A62:" #(#fn(for-each) write))
- #fn("6000n1A50420061:" #(#fn(raise)))) princ)
- print #fn("9000z02071062:" #(#fn(for-each) write) print) print-exception
- #fn("=000n10B3e00<20C^0710r3523T072230T2425760515127554787605151@\x0e00B3Z00<29CS0710r3523I0722:760512;534780T51@\xe100B3P00<2<CI0710r2523?0722=0T2>53@\xbe00B3I00<2?CB0722@514720=f2@\xa200B3N00<2ACG07B76051514722C0T52@\x8107D0513m0710r2523c0780<51472275140T2E8551;I60485R37072@40788551^1@>0722F514780514727G61:" #(type-error
- length= princ "type error: expected " ", got " #fn(typeof) caddr ": " print bounds-error "index "
- " out of bounds for " unbound-error "eval: variable " " has no value" error "error: " load-error
- print-exception "in file " list? #fn(string?) "*** Unhandled exception: " *linefeed*) print-exception)
- print-stack-trace #fn("@000n1\x8d\x8d\x8a5\x8a620852185>1_51420862285>1_51473740r3523F075076370r5@40r452@300517778292:2;505252E\x8a92<2=868889>38762:" #(#0#
- #fn("=000n32005182P2105121151C?022232487e361:25051E76278851512888A187>4|:" #(#fn(function:name)
- #fn(function:code)
- #fn(raise)
- thrown-value ffound
- #fn(function:vals)
- 1- #fn(length)
- #fn("8000n170A0G513>0F<A0G929363:O:" #(closure?))) find-in-f)
- #fn(":000n220A01>321{863E0722374758651522662:27:" #(#fn("8000n02021AF>292524O:" #(#fn(for-each)
- #fn("8000n1A<0Fq63:" #())))
- #fn("6000n10B3F00<20C?00T21C8072061:23061:" #(thrown-value
- ffound caddr #fn(raise))) string-join #fn(map) string reverse! "/" "λ") fn-name) reverse! length>
- list-tail *interactive* filter closure? #fn(map) #fn("6000n10Z;380420061:" #(#fn(top-level-value)))
- #fn(environment) #fn(for-each) #fn("9000n17021A<0KGF52524222374051==52470257652492<El23?0770KG0EG52@30O49292<KM_:" #(princ
- "(" #fn(for-each) #fn("6000n1702151472061:" #(princ " " print)) vector->list ")" *linefeed*
- disassemble))) print-stack-trace)
- print-to-string #fn("8000n1205021085524228561:" #(#fn(buffer)
- #fn(write)
- #fn(iostream->string)) print-to-string)
- printable? #fn("6000n120051;IB0471051;I80422051S:" #(#fn(iostream?) void? #fn(eof-object?)) printable?)
- putprop #fn(";000n320711O5387360O@F02250237118853488?7^14238708253482:" #(#fn(get)
- *properties*
- #fn(table)
- #fn(put!)) putprop)
- quote-value #fn("6000n1700513400:210e2:" #(self-evaluating? quote) quote-value) quoted?
- #fn("6000n10<20Q:" #(quote) quoted?) random #fn("7000n1200513<0712250062:23500i2:" #(#fn(integer?)
- mod #fn(rand) #fn(rand-double)) random)
- read-all #fn("7000n17071062:" #(read-all-of read) read-all) read-all-of
- #fn(":000n2\x8d\x8a686201860>3_486<^1q015162:" #(#fn("8000n220A5138071061:F<10P92A5162:" #(#fn(io-eof?)
- reverse!))) read-all-of)
- ref-int16-LE #fn(":000n2202101EMGE522101KMGr852M61:" #(#fn(int16)
- #fn(ash)) ref-int16-LE)
- ref-int32-LE #fn("<000n2202101EMGE522101KMGr8522101r2MGr@522101r3MGrH52g461:" #(#fn(int32)
- #fn(ash)) ref-int32-LE)
- remprop #fn("8000n220711O5386;3F042286052;3:042386062:" #(#fn(get) *properties* #fn(has?)
- #fn(del!)) remprop)
- repl #fn(";000n0\x8d\x8d\x8a4\x8a5208421_5142085228485>2_51485<5047360:" #(#0#
- #fn("9000n07050421725142324{257651S;3Z04778451788551360O@=079855147:5047;85w<61:" #(*prompt*
- #fn(io-flush) *output-stream* #fn("5000n02060:" #(#fn(read)))
- #fn("6000n1207151422061:" #(#fn(io-discardbuffer) *input-stream* #fn(raise)))
- #fn(io-eof?) *input-stream* load-process void? print newline void that) prompt)
- #fn("6000n020A>121{370F<60:O:" #(#fn("5000n0A<60:" #())
- #fn("6000n1700514D:" #(top-level-exception-handler))) reploop) newline) repl)
- revappend #fn("7000n2701062:" #(reverse-) revappend) reverse
- #fn("7000n170q062:" #(reverse-) reverse) reverse! #fn("7000n170q062:" #(reverse!-) reverse!)
- reverse!- #fn("8000n2\x8d1B3B041=101?04N4?1@\x1d/40:" #() reverse!-) reverse-
- #fn("7000n21J400:701<0P1=62:" #(reverse-) reverse-) self-evaluating? #fn("7000n120051S;3Z040H;36040RS;IK0421051;3A040R;3:04022051Q:" #(#fn(gensym?)
- #fn(constant?) #fn(top-level-value)) self-evaluating?)
- set-syntax! #fn("8000n220710163:" #(#fn(put!)
- *syntax-environment*) set-syntax!)
- simple-sort #fn("9000n10V;I6040=V3400:0<7021850>22285>162:" #(call-with-values #fn("7000n07021A>1F=62:" #(partition
- #fn("6000n10AL2:" #()))) #fn("9000n22071051Ae17115163:" #(#fn(nconc) simple-sort))) simple-sort)
- splice-form? #fn("7000n10B;3X040<20Q;IN040<21Q;ID040<22Q;3:04730r252;I704022Q:" #(unquote-splicing
- unquote-nsplicing unquote length>) splice-form?)
- string-join #fn("9000n20J5020:215022860<5242324861>20=524258661:" #("" #fn(buffer)
- #fn(io-write)
- #fn(for-each)
- #fn("7000n120AF52420A062:" #(#fn(io-write)))
- #fn(iostream->string)) string-join)
- string-lpad #fn(":000n3207182122051~52062:" #(#fn(string) string-rep #fn(string-length)) string-lpad)
- string-map #fn("=000n2205021151E\x8d8887L23O0422860231885251524748851?8@\x0c/^14258661:" #(#fn(buffer)
- #fn(string-length) #fn(io-putc) #fn(string-char) 1+ #fn(iostream->string)) string-map)
- string-rep #fn(":000n21r4L23b0701E5235021:1Kl238022061:1r2l2390220062:2200063:731513@02207401K~5262:742200521r2j262:" #(<=
- "" #fn(string) odd? string-rep) string-rep)
- string-rpad #fn(";000n32007182122051~5262:" #(#fn(string) string-rep #fn(string-length)) string-rpad)
- string-tail #fn("7000n2200162:" #(#fn(string-sub)) string-tail) string-trim
- #fn(">000n3\x8d\x8d\x8a7\x8a820872187>1_51420882288>1_5142305124087<01E895488<082895363:" #(#0#
- #fn("9000n48283L23P02012108252523A0A<017282518364:82:" #(#fn(string-find)
- #fn(string-char) 1+) trim-start)
- #fn(":000n3E82L23R020121072825152523?0A<0172825163:82:" #(#fn(string-find)
- #fn(string-char) 1-) trim-end)
- #fn(string-length) #fn(string-sub)) string-trim)
- symbol-set-doc #fn("A000z213=070021153@30O482B3H0700222374022q53825263:O:" #(putprop
- *doc* *funvars* #fn(append) getprop) symbol-set-doc)
- symbol-syntax #fn("8000n120710O63:" #(#fn(get)
- *syntax-environment*) symbol-syntax)
- table-clone #fn("9000n12050212285>1q053485:" #(#fn(table)
- #fn(table-foldl)
- #fn("8000n320A0163:" #(#fn(put!)))) table-clone)
- table-invert #fn("9000n12050212285>1q053485:" #(#fn(table)
- #fn(table-foldl)
- #fn("8000n320A1063:" #(#fn(put!)))) table-invert)
- table-keys #fn("8000n12021q063:" #(#fn(table-foldl)
- #fn("6000n3082P:" #())) table-keys)
- table-pairs #fn("8000n12021q063:" #(#fn(table-foldl)
- #fn("6000n301P82P:" #())) table-pairs)
- table-values #fn("8000n12021q063:" #(#fn(table-foldl)
- #fn("6000n3182P:" #())) table-values)
- to-proper #fn("7000n10J400:0H3600e1:0<700=51P:" #(to-proper) to-proper)
- top-level-exception-handler #fn("9000n17071w042285>1230>12486>1{86504:" #(*output-stream*
- *stderr* #fn("5000n0Aw0:" #(*output-stream*))
- #fn("6000n070A51471225061:" #(print-exception
- print-stack-trace #fn(stacktrace))) #fn("6000n1A50420061:" #(#fn(raise)))) top-level-exception-handler)
- trace #fn("@000n120051718551Ig0220732425262728290e225e3e22:e12;2985e225e3e4e35152@30O^147<60:" #(#fn(top-level-value)
- traced? #fn(set-top-level-value!) eval λ #:g356 begin write cons quote newline apply void) trace)
- traced? #fn("7000n170051;3?042105121A<51d:" #(closure? #fn(function:code)) #((#fn("9000z020210P51472504230}2:" #(#fn(write)
- x newline #.apply)))))
- untrace #fn("9000n1200517185513C0220238551r3G52@30O^147460:" #(#fn(top-level-value)
- traced? #fn(set-top-level-value!)
- #fn(function:vals) void) untrace)
- value-get-doc #fn("8000n10<0=208551;3=0486B;350485:" #(#fn(string?)) value-get-doc)
- values #fn("8000z00B3:00=J500<:A0P:" #() #(#3#)) vars-to-env
- #fn(":000n32021182>2072230515163:" #(#fn(map)
- #fn("9000n2700210A52SS1FM63:" #(vinfo #fn(memq)))
- iota #fn(length)) vars-to-env)
- vector->list #fn("<000n120051q\x8a6K852186085>3|486<:" #(#fn(length)
- #fn("8000n1AF920~GA<P_:" #())) vector->list)
- vector-map #fn("<000n220151218651E86K~228701>3|487:" #(#fn(length)
- #fn(vector-alloc)
- #fn("9000n1A0F920G51p:" #())) vector-map)
- vinfo #fn("7000n30182e3:" #() vinfo) vinfo:heap? #.cadr vinfo:index
- #4# vinfo:sym #.car void
- #1# void? #fn("6000n10\x8dQ:" #() void?) zero?
- #fn("6000n10El2:" #() zero?))
+(*builtins* #(0 0 0 0 0 0 0 0 0 0 0 0 #fn("5000n10<:" #()) #fn("5000n10=:" #()) 0 0 0 0 #fn("5000n10B:" #()) 0 0 0 0 0 #fn("5000n10H:" #()) 0 0 0 #fn("8000z0700}2:" #(<)) 0 #fn("6000n201N:" #()) 0 #fn("6000n201P:" #()) #fn("6000n201Q:" #()) #fn("5000n10R:" #()) #fn("5000n10S:" #()) #fn("5000n10T:" #()) 0 #fn("5000n10V:" #()) #fn("5000n10W:" #()) #fn("5000n10X:" #()) #fn("5000n10Y:" #()) #fn("5000n10Z:" #()) #fn("5000n10[:" #()) #fn("5000n10\\:" #()) #fn("5000n10]:" #()) 0 #fn("6000n201_:" #()) 0 0 0 #fn("6000n201c:" #()) #fn("6000n201d:" #()) #fn("7000z00:" #()) #fn("8000z0700}2:" #(apply)) #fn("8000z0700}2:" #(+)) #fn("8000z0700}2:" #(-)) #fn("8000z0700}2:" #(*)) #fn("8000z0700}2:" #(/)) #fn("8000z0700}2:" #(div0)) #fn("8000z0700}2:" #(=)) #fn("6000n201m:" #()) 0 #fn("8000z0700}2:" #(vector)) #fn("8000z0700}2:" #(aset!)) 0 0 0 0 0 0 0 0 0 0 0 #fn("9000n3012082>1|:" #(#fn("6000n1A061:" #()))) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #fn("8000z0700}2:" #(aref)) 0 #fn("5000n10\x8e:" #()) 0) *properties* #table(*funvars* #table(*prompt* (#f) lz-unpack ((data :to destination) (data :size decompressed-bytes)) void? ((x)) >= ((a . rest)) rand-uint64 (nil) help ((term)) length= ((lst n)) = ((a . rest)) car ((lst)) <= ((a . rest)) rand-uint32 (nil) /= ((a . rest)) void (rest) lz-pack ((data (level 0))) rand (nil) nan? ((x)) rand-float (nil) cons? ((value)) vm-stats (nil) * ((number…)) rand-double (nil) cdr ((lst)) + ((number…)) > ((a . rest))) *doc* #table(>= "Return #t if the arguments are in non-increasing order (previous\none is greater than or equal to the next one)." void? "Return #t if x is #<void> and #f otherwise." length= "Bounded length test.\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates." car "Returns the first element of a list or nil if not available." *builtins* "VM instructions as closures." <= "Return #t if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)." void "Return the constant #<void> while ignoring any arguments.\n#<void> is mainly used when a function has side effects but does not\nproduce any meaningful value to return, so even though #t or nil could\nbe returned instead, in case of #<void> alone, REPL will not print\nit." rand "Return a random non-negative fixnum on its maximum range." nan? "Return #t if the argument is NaN, regardless of the sign." Instructions "VM instructions mapped to their encoded byte representation." rand-double "Return a random double on [0.0, 1.0] interval." > "Return #t if the arguments are in strictly decreasing order (previous\none is greater than the next one)." cdr "Returns the tail of a list or nil if not available." + "Return sum of the numbers or 0 with no arguments." lz-unpack "Return decompressed data previously compressed using lz-pack.\nEither destination for the decompressed data or the expected size of\nthe decompressed data must be specified. In the latter case a new\narray is allocated." rand-uint64 "Return a random integer on [0, 2⁶⁴-1] interval." help "Display documentation for the specified term, if available." = "Return #t if the arguments are equal." rand-uint32 "Return a random integer on [0, 2³²-1] interval." /= "Return #t if not all arguments are equal. Shorthand for (not (= …))." lz-pack "Return data compressed using Lempel-Ziv.\nThe data must be an array, returned value will have the same type.\nThe optional level is between 0 and 10. With level 0 a simple LZSS\nusing hashing will be performed. Levels between 1 and 9 offer a\ntrade-off between time/space and ratio. Level 10 is optimal but very\nslow." rand-float "Return a random float on [0.0, 1.0] interval." arg-counts "VM instructions mapped to their expected arguments count." *prompt* "Function called by REPL to signal the user input is required.\nDefault function prints \"#;> \"." cons? "Returns #t if the value is a cons cell." vm-stats "Print various VM-related information, such as the number of GC calls\nso far, heap and stack size, etc." * "Ret
\ No newline at end of file
binary files a/boot/flisp.boot.builtin b/boot/flisp.boot.builtin differ
--- a/src/system.lsp
+++ b/src/system.lsp
@@ -1078,7 +1078,7 @@
*print-pretty* *print-width* *print-readably*
*print-level* *print-length* *os-name* *interactive*
*prompt* *os-version*)))
- (with-bindings ((*print-pretty* #t)
+ (with-bindings ((*print-pretty* #f)
(*print-readably* #t))
(let* ((syms
(filter (λ (s)