ref: 93cb376f97e98b222f869d7c027ed2fbeed1a240
parent: 3511285638220ee9837a51b88468df52da52156e
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Mar 10 13:04:54 EDT 2025
defstruct: fix default constructor References: https://todo.sr.ht/~ft/sl/48
--- a/boot/sl.boot
+++ b/boot/sl.boot
@@ -37,7 +37,7 @@
#fn("n10B3500T:7060:" #(void)) letrec)) bcode:code #fn("n1200Ee3:" #(aref)) make-label #fn("n120e1:" #(gensym)) bcode:cenv #fn("n1200r3e3:" #(aref)) > #fn("z12021e12273151510e163:" #(#fn(nconc)
< #fn(copy-list) reverse!)) when #fn("z1200211Pqe4:" #(if begin)) quasiquote #fn("n1700E62:" #(bq-process)) help #fn("n17002152853W072855147350424250>170026q535247350@B0722728051524735047960:" #(getprop
*doc* princ newline #fn(for-each) #fn("n17050471A0P61:" #(newline print)) *funvars* "no help for "
- #fn(string) void)) defstruct #fn("O10005000*///W1000J7071?14W2000J60D?24W3000J60q?34W4000J60q?44W5000J60q?54z6IIb;228;230>1_5142224?<5142586<51;360486<8=;360486=;J50486268>5127288>528<8>51292:12;525185;J>04292:02;525183;JB04292:2<052518Ae282;36040e184;J:042:02=522>502?2@e12A8C2Be22C8B2Be22D2E2F8Ee2e22G2H2BEe32F0e2e3e32I2J2Be2268E518?Me3e4e3e12K8=2L2F0e28=e3e3e12A8D2?1e12?2Fe12M8E5152e12M8@5153e3e12M7N2O8;8A8@8F8G8C8E0>88?525165:" #(#(NIL
+ #fn(string) void)) defstruct #fn("O10005000*///W1000J7071?14W2000J60D?24W3000J60q?34W4000J60q?44W5000J60q?54z6IIb;228;230>1_5142224?<5142586<51;360486<8=;360486=;J50486268>5127288>528<8>51292:12;525185;J>04292:02;525183;JD042<292:2=052518A5282;36040e184;J:042:02>522?502@2Ae12B8C2Ce22D8B2Ce22E2F2G8Ee2e22H2I2CEe32G0e2e3e32J2K2Ce2268E518?Me3e4e3e12L8=2M2G0e28=e3e3e12B8D2@1e12@2Ge12N8E5152e12N8@5153e3e12N7O2P8;8A8@8F8G8C8E0>88?525165:" #(#(NIL
NIL :named 1 :conc-name 3 :type 0 NIL NIL NIL NIL NIL NIL :predicate 4 NIL NIL NIL NIL NIL NIL
:constructor 2) vector #0# #fn("n17005121220A>28552485:" #(cddr #fn(for-each)
#fn("n17002152340q:722324A<25F2605661:" #(member
@@ -45,7 +45,7 @@
#fn("n17021062:" #(map! #fn("n10B;35040<85;J404085;35040=;J604qe186RS;J9042086513=071228652@30q4232425268652512087<51390q87P@408762:" #(#fn(keyword?)
error "invalid slot name: " #fn(list*) #fn(symbol)
#fn(string) ":"))) tokw) #fn(string?) #fn(length)
- #fn(map) #fn("n10B3500<:0:" #()) #fn(symbol) #fn(string) "?" "make-" "-" #fn(gensym)
+ #fn(map) #fn("n10B3500<:0:" #()) #fn(symbol) #fn(string) "?" #fn(list*) "make-" "-" #fn(gensym)
#fn(nconc) begin def s and or not quote eq? aref = length when symbol-set-doc #fn(copy-list)
map-int #fn("n1A<70F052517092052212293865251238724252694e2e2e3279524e2e22829252694e2e32:242;96510Me37<2=85523O02>2?2@2686e22A2697e22Be6e2@B02C242;96510M25e4e4e4:" #(list-ref
#fn(symbol) #fn(string) def s v quote assert if eq? aref #fn(length) member :read-only error
--- a/src/system.lsp
+++ b/src/system.lsp
@@ -914,7 +914,7 @@
(symbol (string name "?")))]
; constructor name and arguments
[constructor (or constructor
- (list (symbol (string "make-" name)) slots-kw))]
+ (list* (symbol (string "make-" name)) slots-kw))]
; should the struct name appear as the first element?
[named (and named (list name))]
; accessor prefix