ref: 2925042a95930d1e6a52f44b864a1af28440e949
parent: 2728527553570e8cdec19b4c305a723f040e63ad
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Mar 20 11:33:36 EDT 2023
bootstrap
--- a/flisp.boot
+++ b/flisp.boot
@@ -33,23 +33,25 @@
#fn("7000r2|}[;" #())
#fn("8000r3|}g2\\;" #()))
*interactive* #f *syntax-environment*
- #table(with-bindings #fn(">000s1c0qc1c2|32c1e3|32c1c4|3243;" #(#fn("B000r3c0c1L1c2c3g2|33L1c4c2c5|}3331c6c0c7L1c4\x7f3132c0c7L1c4c2c8|g2333132L3L144;" #(#fn(nconc)
- let #fn(map) #.list #fn(copy-list) #fn("8000r2c0|}L3;" #(set!))
- unwind-protect begin #fn("8000r2c0|}L3;" #(set!))))
- #fn(map) #.car cadr #fn("6000r1c040;" #(#fn(gensym))))) letrec #fn("?000s1c0c0c1L1c2c3|32L1c2c4|32c5}3134L1c2c6|3242;" #(#fn(nconc)
+ #table(letrec #fn("?000s1c0c0c1L1c2c3|32L1c2c4|32c5}3134L1c2c6|3242;" #(#fn(nconc)
lambda #fn(map) #.car #fn("9000r1c0c1L1c2|3142;" #(#fn(nconc) set! #fn(copy-list)))
- #fn(copy-list) #fn("6000r1e040;" #(void)))) assert #fn("<000r1c0|]c1c2c3|L2L2L2L4;" #(if
- raise quote assert-failed)) do #fn("A000s2c0qc130}Mc2c3|32c2e4|32c2c5|3245;" #(#fn("B000r5c0|c1g2c2}c3c4L1c5\x7fN3132c3c4L1c5i0231c3|L1g432L133L4L3L2L1c3|L1g332L3;" #(letrec
- lambda if #fn(nconc) begin #fn(copy-list)))
- #fn(gensym) #fn(map) #.car cadr #fn("7000r1e0|31F680e1|41;|M;" #(cddr caddr)))) quasiquote #fn("8000r1e0|`42;" #(bq-process)) when #fn("<000s1c0|c1}K^L4;" #(if
- begin)) with-input-from #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" #(#fn(nconc)
- with-bindings
- *input-stream*
- #fn(copy-list))) unwind-protect #fn("8000r2c0qc130c13042;" #(#fn("@000r2c0}c1_\x7fL3L2L1c2c3~c1|L1c4}L1c5|L2L3L3L3}L1L3L3;" #(let
+ #fn(copy-list) #fn("6000r1e040;" #(void)))) quasiquote #fn("8000r1e0|`42;" #(bq-process)) when #fn("<000s1c0|c1}K^L4;" #(if
+ begin)) unwind-protect #fn("8000r2c0qc130c13042;" #(#fn("@000r2c0}c1_\x7fL3L2L1c2c3~c1|L1c4}L1c5|L2L3L3L3}L1L3L3;" #(let
lambda prog1 trycatch begin raise)) #fn(gensym))) dotimes #fn(";000s1c0q|M|\x8442;" #(#fn("=000r2c0`c1}aL3c2c3L1|L1L1c4\x7f3133L4;" #(for
- #fn(nconc) lambda #fn(copy-list))))) define-macro #fn("?000s1c0c1|ML2c2c3L1|NL1c4}3133L3;" #(set-syntax!
quote #fn(nconc) lambda #fn(copy-list))) receive #fn("@000s2c0c1_}L3c2c1L1|L1c3g23133L3;" #(call-with-values
- lambda #fn(nconc) #fn(copy-list))) unless #fn("=000s1c0|^c1}KL4;" #(if begin)) let #fn(":000s1c0q^41;" #(#fn("<000r1~C6D0~m02\x7fMo002\x7fNo01530]2c0qc1c2L1c3c4~32L1c5\x7f3133c3c6~3242;" #(#fn("8000r2~6@0c0~|L2L1~L3530|}K;" #(letrec))
+ lambda #fn(nconc) #fn(copy-list))) unless #fn("=000s1c0|^c1}KL4;" #(if begin)) let* #fn("A000s1|?6E0c0c1L1_L1c2}3133L1;c0c1L1e3|31L1L1c2|NF6H0c0c4L1|NL1c2}3133L1530}3133e5|31L2;" #(#fn(nconc)
+ lambda #fn(copy-list) caar let* cadar)) case #fn(":000s1c0q]41;" #(#fn("7000r1c0m02c1qc23041;" #(#fn("9000r2}c0\x8250c0;}\x8540^;}C6=0c1|e2}31L3;}?6=0c3|e2}31L3;}N\x85>0c3|e2}M31L3;e4c5}326=0c6|c7}L2L3;c8|c7}L2L3;" #(else
+ eq? quote-value eqv? every #.symbol? memq quote memv) vals->cond)
+ #fn("<000r1c0|i10L2L1c1c2L1c3c4qi113232L3;" #(let #fn(nconc) cond #fn(map)
+ #fn("8000r1i10~|M32|NK;" #())))
+ #fn(gensym))))) catch #fn("7000r2c0qc13041;" #(#fn("@000r1c0\x7fc1|L1c2c3c4|L2c5c6|L2c7c8L2L3c5c9|L2~L3L4c:|L2c;|L2L4L3L3;" #(trycatch
+ lambda if and pair? eq car quote thrown-value cadr caddr raise))
+ #fn(gensym))) assert #fn("<000r1c0|]c1c2c3|L2L2L2L4;" #(if
+ raise quote assert-failed)) do #fn("A000s2c0qc130}Mc2c3|32c2e4|32c2c5|3245;" #(#fn("B000r5c0|c1g2c2}c3c4L1c5\x7fN3132c3c4L1c5i0231c3|L1g432L133L4L3L2L1c3|L1g332L3;" #(letrec
+ lambda if #fn(nconc) begin #fn(copy-list)))
+ #fn(gensym) #fn(map) #.car cadr #fn("7000r1e0|31F680e1|41;|M;" #(cddr caddr)))) with-input-from #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" #(#fn(nconc)
+ with-bindings *input-stream* #fn(copy-list))) let #fn(":000s1c0q^41;" #(#fn("<000r1~C6D0~m02\x7fMo002\x7fNo01530]2c0qc1c2L1c3c4~32L1c5\x7f3133c3c6~3242;" #(#fn("8000r2~6@0c0~|L2L1~L3530|}K;" #(letrec))
#fn(nconc) lambda #fn(map) #fn("6000r1|F650|M;|;" #())
#fn(copy-list) #fn("6000r1|F650|\x84;e040;" #(void)))))) cond #fn("9000s0c0q]41;" #(#fn("7000r1c0qm02|~41;" #(#fn("7000r1|?640^;c0q|M41;" #(#fn(":000r1|Mc0<17702|M]<6@0|N\x8550|M;c1|NK;|N\x85@0c2|Mi10~N31L3;|\x84c3\x82W0e4e5|31316A0c6qe7e5|313141;c8qc93041;c:|Mc1|NKi10~N31L4;" #(else
begin or => 1arg-lambda? caddr #fn("=000r1c0|~ML2L1c1|c2e3e4~3131Ki20i10N31L4L3;" #(let
@@ -57,15 +59,11 @@
if caddr)) #fn(gensym) if))) cond-clauses->if))))) throw #fn(":000r2c0c1c2c3L2|}L4L2;" #(raise
list quote thrown-value)) time #fn("7000r1c0qc13041;" #(#fn(">000r1c0|c1L1L2L1c2~c3c4c5c1L1|L3c6L4L3L3;" #(let
time.now prog1 princ "Elapsed time: " - " seconds\n"))
- #fn(gensym))) let* #fn("A000s1|?6E0c0c1L1_L1c2}3133L1;c0c1L1e3|31L1L1c2|NF6H0c0c4L1|NL1c2}3133L1530}3133e5|31L2;" #(#fn(nconc)
- lambda #fn(copy-list) caar let* cadar)) case #fn(":000s1c0q]41;" #(#fn("7000r1c0m02c1qc23041;" #(#fn("9000r2}c0\x8250c0;}\x8540^;}C6=0c1|e2}31L3;}?6=0c3|e2}31L3;}N\x85>0c3|e2}M31L3;e4c5}326=0c6|c7}L2L3;c8|c7}L2L3;" #(else
- eq? quote-value eqv? every #.symbol? memq quote memv) vals->cond)
- #fn("<000r1c0|i10L2L1c1c2L1c3c4qi113232L3;" #(let #fn(nconc) cond #fn(map)
- #fn("8000r1i10~|M32|NK;" #())))
- #fn(gensym))))) with-output-to #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" #(#fn(nconc)
- with-bindings *output-stream* #fn(copy-list))) catch #fn("7000r2c0qc13041;" #(#fn("@000r1c0\x7fc1|L1c2c3c4|L2c5c6|L2c7c8L2L3c5c9|L2~L3L4c:|L2c;|L2L4L3L3;" #(trycatch
- lambda if and pair? eq car quote thrown-value cadr caddr raise))
- #fn(gensym))))
+ #fn(gensym))) with-output-to #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" #(#fn(nconc)
+ with-bindings *output-stream* #fn(copy-list))) with-bindings #fn(">000s1c0qc1c2|32c1e3|32c1c4|3243;" #(#fn("B000r3c0c1L1c2c3g2|33L1c4c2c5|}3331c6c0c7L1c4\x7f3132c0c7L1c4c2c8|g2333132L3L144;" #(#fn(nconc)
+ let #fn(map) #.list #fn(copy-list) #fn("8000r2c0|}L3;" #(set!))
+ unwind-protect begin #fn("8000r2c0|}L3;" #(set!))))
+ #fn(map) #.car cadr #fn("6000r1c040;" #(#fn(gensym))))))
*whitespace* "\t\n\v\f\r \u0085 \u2028\u2029 " 1+
#fn("7000r1|aw;" #() 1+) 1- #fn("7000r1|ax;" #() 1-) 1arg-lambda?
#fn("8000r1|F16T02|Mc0<16J02|NF16B02|\x84F16:02e1|\x84a42;" #(lambda