shithub: femtolisp

Download patch

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