shithub: sl

Download patch

ref: d947890106aec2221abbe43c7a39331283f25515
parent: bd27f0f713c79a7fd6124dfce9238024e0766308
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Apr 15 22:31:00 EDT 2025

bootstrap after several changes

--- a/boot/sl.boot
+++ b/boot/sl.boot
@@ -18,9 +18,10 @@
   :to destination)
   (data :size decompressed-bytes))  defstruct ((name doc options… (slot-1 DEFAULT) slot-2 (slot-3
   :read-only))
-                                               (name (:type 'vec) (:named NIL) (:constructor T) (:conc-name
-  NIL)
-                                                     (:predicate T) . slots))  compare ((x y))  buffer (NIL)  num? ((v))  add-exit-hook ((fun))  rand-float (NIL)  builtin? ((v))  set-car! ((cell
+                                               (name (:type 'vec)
+                                                     (:named NIL named-supplied) (:constructor T)
+                                                     (:conc-name NIL) (:predicate T) . slots))  compare ((x
+  y))  buffer (NIL)  num? ((v))  add-exit-hook ((fun))  rand-float (NIL)  builtin? ((v))  set-car! ((cell
   new-first))  cons? ((v))  doc-group ((group-name doc))  1+ ((n))  aref ((sequence subscript0 . rest))  zero? ((x))  vec (rest)  >= ((a . rest))  sym? ((v))  void? ((x))  length= ((lst
   n))  positive? ((x))  doc-for ((term . doc))  aset! ((sequence subscripts… new-value))  car ((lst))  <= ((a . rest))  str (term)  cons ((first
   second))  - ((a . rest))  remprop ((symbol key))  negative? ((x))  rand (NIL)  void (rest)  file ((path
@@ -79,7 +80,7 @@
   #fn(get) *properties* :kind *doc-extra* filter #fn("n10<20Q:" #(:doc-fmt))
   #fn("n10<20Q:" #(:doc-see)) princ foldl #fn("n20=161:") newline "See also:" #fn("n1A<0=700=21522263:" #(getprop
   *formals-list* "    ")) "Members:" #fn("n1A<070021522263:" #(getprop *formals-list* "    ")) void
-  "no help for " #fn(str) " " "" " (undefined)"))  defstruct #fn("O10005000*///z6W1000J7021?14W2000J60q?24W3000J60D?34W4000J60q?44W5000J60D?54IIb;228;230>1_5142224?<5147586518=<8==268?5127288?528<8?51121Q82;J5048C;3404085;3\\0485DCC08D;3:042902:52@D08DJ=02;2<2=52@40858C3:02>0e2@7002?e283;3\\0483H;3M0483DQ;3:04292@052;J504838BP;J5048384;J:042A02B52I222C8C18D8G848508?>8?I5148>3G07D02E8>2F8IPe15252@30q42G2He18E3{02I8E2Je28C3E02K2L2Je22M8Fe2e3@V02N2O2P2JEe32M0e2e32Q2R2Je27S8@51e3e3e3@30qe18G3\xae08C3t02H2I8G2G1e12M2Te2e12M0e2e12U7V2Wq8A535154e32X2M0e22M2Ye28G<e4e3@d02I8G8D3K02G2Ze12M8De2e12U8A5153@@02G2Ze12U8A5152e3@30qe12U7[2\\8;8B8A8H8C8E8F8D0>98@525164:" #(#(:constructor
+  "no help for " #fn(str) " " "" " (undefined)"))  defstruct #fn("O10005000*///z6W1000J7021?14W2000;J60q?24W3000J60D?34W4000J60q?44W5000J60D?54IIb<228<230>1_5142224?=5147586518><8>=268@5127288@528=8@51121C60D@C0129C60q@907:2;1528D3T08;S;J70482DQ360q@807:2<51;J404D@4082;3404085;3Z0485DCC08E;3:042=02>52@B08EJ;07:2?51@40858D3:02@0e2@7002Ae283;3\\0483H;3M0483DQ;3:042=2B052;J504838CP;J5048384;J:042C02D52I222E8D18E8H848508@>8?J5148?3G07F02G8?2H8JPe15252@30q42I2Je18F3{02K8F2Le28D3E02M2N2Le22O8Ge2e3@V02P2Q2R2LEe32O0e2e32S2T2Le27U8A51e3e3e3@30qe18H3\xae08D3t02J2K8H2I1e12O2Ve2e12O0e2e12W7X2Yq8B535154e32Z2O0e22O2[e28H<e4e3@d02K8H8E3K02I29e12O8Ee2e12W8B5153@@02I29e12W8B5152e3@30qe12W7\\2]8<8C8B8I8D8F8G8E0>98A525164:" #(#(:constructor
   2 :predicate 4 NIL NIL :type 0 :named 1 :conc-name 3 NIL NIL) vec #0#
   #fn("n17005121220A>28552485:" #(cddr #fn(for-each)
                                   #fn("n17002152340q:722324A<25F2605661:" #(member (:read-only)
@@ -87,14 +88,15 @@
                                                                             " of struct " ": "))) slot-opts)
   #fn("n12021062:" #(#fn(map) #fn("n10B;35040<85;J404085;35040=;J604qe186RS;J9042086513=071228652@30q423242586522087<51390q87P@408762:" #(#fn(keyword?)
   error "invalid slot name: " #fn(list*) #fn(sym) #\:))) tokw) separate-doc-from-body #fn(length)
-  #fn(map) #fn("n10B3500<:0:") #fn(sym) #\? #fn(raise) arg-error ("predicate not possible unless the struct is :named")
-  struct … "make-" #fn(str) "-" #fn("n12002152853=0220E8553@300853<02208552@40232486252627e1A360q@7028Fe292360q@802992e293360q@802:93e2943;02;94e2@30q95S;J80495DQS;39042<95e29697P578764:" #(#fn(str-find)
+  #fn(map) #fn("n10B3500<:0:") list arg-error "invalid struct type: " "structs of type `vec` are always :named T"
+  #fn(sym) #\? "predicate not possible unless the struct is :named T" struct … "make-" #fn(str) "-"
+  #fn("n12002152853=0220E8553@300853<02208552@40232486252627e1A360q@7028Fe292360q@802992e293360q@802:93e2943;02;94e2@30q95S;J80495DQS;39042<95e29697P578764:" #(#fn(str-find)
   "\n\n" #fn(str-sub) "" #fn(str) "\n\n    " #fn(append) defstruct :type :named :constructor
   :conc-name :predicate) fmt) sym-set-doc #fn(append) :doc-fmt #fn(nconc) begin def s equal?
   type-of quote and eq? aref = length 1+ %struct% #fn(copy-list) foldr #fn("n2202105201PP:" #(#fn(sym)
-  ":")) putprop constructor list map-int #fn("n1A<70F05251709205221938652943<0r20i2KM@30022872324q25e3e3953U0269523e22728292:e22996e223e4e2e3@30q2;2<25e22=2397360K@30E88Me37>2?85523O02@2A2B2986e22C2998e22De6e2@G02E2397360K@30E88M24e4e4e4:" #(list-ref
-  #fn(sym) def s v v-supplied? unless raise list quote type-error if not aref member :read-only
-  error str "slot " " in struct " " is :read-only" aset!))))  bcode:ctable #fn("n1200Ke3:" #(aref))  with-output-to #fn("z12021e1220e2e1e12315163:" #(#fn(nconc)
+  ":")) putprop constructor map-int #fn("n1A<70F05251709205221938652943<0r20i2KM@30022872324q25e3e3953K0269523e2272896e223e3e3@30q292:25e22;2397360K@30E88Me37<2=85523O02>2?2@2886e22A2898e22Be6e2@G02C2397360K@30E88M24e4e4e4:" #(list-ref
+  #fn(sym) def s v v-supplied? unless type-error quote if not aref member :read-only error str "slot "
+  " in struct " " is :read-only" aset!))))  bcode:ctable #fn("n1200Ke3:" #(aref))  with-output-to #fn("z12021e1220e2e1e12315163:" #(#fn(nconc)
   with-bindings *io-out* #fn(copy-list)))  catch #fn("n22012122e123242522e2262722e22829e2e3262:22e20e3e42;22e22<22e2e4e3e3:" #(trycatch
   λ #:g429 if and cons? eq? car quote thrown-value cadr caddr raise))  let* #fn("z10H3E02021e1qe12215153e1:2021e173051e1e1220=B3H02024e10=e12215153e1@301515375051e2:" #(#fn(nconc)
   λ #fn(copy-list) caar let* cadar))  letrec #fn("z1202021e12273052e122240522515154e1227605262:" #(#fn(nconc)
@@ -115,7 +117,8 @@
             #fn("z1Ib6862086>1_486<^10162:" #(#fn("n21S;JE041<0L2;3;04A<1<1=62:")) >) >= #fn("z1Ib6862086>1_486<^10162:" #(#fn("n21S;JL0401<L2;J5040V340q:A<1<1=62:")) >=)
             Instructions #table(call.l #u8(81)  trycatch #u8(75)  loadg.l #u8(68)  aref2 #u8(23)  box #u8(50)  cadr #u8(36)  argc #u8(62)  setg #u8(71)  load0 #u8(21)  nan? #u8(38)  fixnum? #u8(41)  loadc0 #u8(17)  loada0 #u8(0)  div0 #u8(59)  keyargs #u8(31)  call #u8(5)  loada.l #u8(69)  num? #u8(40)  sub2 #u8(78)  add2 #u8(29)  loadc.l #u8(70)  loadc #u8(9)  builtin? #u8(43)  set-car! #u8(47)  vargc.l #u8(80)  vec #u8(63)  ret #u8(10)  loadi8 #u8(66)  tapply #u8(77)  loadvoid #u8(25)  loada1 #u8(1)  shift #u8(46)  atom? #u8(24)  cdr #u8(13)  brne.l #u8(83)  / #u8(58)  equal? #u8(52)  apply #u8(54)  dup #u8(11)  loadt #u8(20)  bounda #u8(39)  jmp.l #u8(48)  = #u8(60)  not #u8(35)  set-cdr! #u8(30)  fn? #u8(44)  eq? #u8(33)  * #u8(57)  load1 #u8(27)  bound? #u8(42)  box.l #u8(86)  < #u8(28)  brnn.l #u8(84)  jmp #u8(16)  loadv #u8(2)  for #u8(76)  dummy_eof #u8(88)  + #u8(55)  brne #u8(19)  argc.l #u8(79)  compare #u8(61)  brn #u8(3)  neg #u8(37)  loadv.l #u8(67)  vargc #u8(74)  loadc1 #u8(22)  setg.l #u8(72)  cons? #u8(18)  aref #u8(85)  sym? #u8(34)  aset! #u8(64)  car #u8(12)  cons #u8(32)  tcall.l #u8(82)  - #u8(56)  brn.l #u8(49)  optargs #u8(87)  closure #u8(14)  vec? #u8(45)  pop #u8(4)  eqv? #u8(51)  list #u8(53)  seta #u8(15)  seta.l #u8(73)  brnn #u8(26)  loadnil #u8(65)  loadg #u8(7)  loada #u8(8)  tcall #u8(6))
             S #fn("z170021521}2:" #(getprop constructor) S) __finish
-            #fn("n120210>17262:" #(#fn(for-each) #fn("n10A61:") *exit-hooks*) __finish)
+            #fn("n120Z3>021220>17062:q:" #(*exit-hooks* #fn(for-each)
+                                           #fn("n10A61:")) __finish)
             __init_globals #fn("n07021d37022@402384w4^147025d;350426;J50427w8429w:4qw;47<w=47>w?47@wA:" #(*os-name*
   "macos" #fn("n0702161:" #(princ "\e[0m\e[1m#;> \e[0m"))
   #fn("n0702161:" #(princ "#;> ")) *prompt* "dos" "\\" "/" *directory-separator* "\n" *linefeed*
@@ -132,8 +135,8 @@
             abs #fn("n10EL23500U:0:" #() abs) add-exit-hook
             #fn("n1070Pw047160:" #(*exit-hooks* void) add-exit-hook) any #fn("n21B;3D0401<51;J:047001=62:" #(any) any)
             arg-counts #table(bound? 1  sym? 1  car 1  cons 2  cadr 1  nan? 1  for 3  fixnum? 1  cdr 1  atom? 1  div0 2  vec? 1  equal? 2  eqv? 2  compare 2  not 1  set-cdr! 2  num? 1  fn? 1  eq? 2  builtin? 1  cons? 1  set-car! 2)
-            argc-error #fn("n2702102211Kl237023@402465:" #(error "compile error: " " expects " " argument."
-                                                           " arguments.") argc-error)
+            arg-error #fn("z020210P61:" #(#fn(raise) arg-error) arg-error) argc-error
+            #fn("n2702102211Kl237023@402465:" #(error "compile error: " " expects " " argument." " arguments.") argc-error)
             arr? #fn("n10];JF042005185B;390485<21Q:" #(#fn(type-of) arr) arr?) assoc
             #fn("n2701510d3501<:13:07101=62:q:" #(caar assoc) assoc) assv #fn("n2701510c3501<:13:07101=62:q:" #(caar
   assv) assv)
@@ -502,9 +505,9 @@
   traced? #fn(set-top-level-value!) eval λ #:g432 write cons quote newline apply void) trace)
             traced? #fn("n170051;3>042105121A51d:" #(closure? #fn(fn-code)) #(#fn("z020210P51472504230}2:" #(#fn(write)
   x newline #.apply))))
-            untrace #fn("n1200517185513C0220238551r3G52@30q^147460:" #(#fn(top-level-value) traced?
-                                                                       #fn(set-top-level-value!)
-                                                                       #fn(fn-vals) void) untrace)
+            type-error #fn("z020210P61:" #(#fn(raise) type-error) type-error) untrace
+            #fn("n1200517185513C0220238551r3G52@30q^147460:" #(#fn(top-level-value) traced? #fn(set-top-level-value!)
+                                                               #fn(fn-vals) void) untrace)
             values #fn("z00B3:00=J500<:A0P:" #() #(#3#)) vars-to-env
             #fn("n32021182>2072230515163:" #(#fn(map)
                                              #fn("n2700210A52SS1FM63:" #(vinfo #fn(memq))) iota #fn(length)) vars-to-env)