shithub: femtolisp

Download patch

ref: aae479671b93718deca9105317e03e3d5dea4e89
parent: 0d415fd062b8bf01d105e9b433a90ae70d46bfcd
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Jan 7 07:20:34 EST 2025

mk_symbol: fix setc done at the wrong place for keywords

--- a/flisp.boot
+++ b/flisp.boot
@@ -278,7 +278,7 @@
 	    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("9000n120071522285>123850>2{:" #(#fn(file)
+	    #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)
@@ -297,7 +297,7 @@
   #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("@000n120071727354202402552717273542650277879Dw84Dw942:898:>22;88878586>42<8;>1{8;504:" #(#fn(file)
+	    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*) *print-pretty*
binary files a/flisp.boot.builtin b/flisp.boot.builtin differ
--- a/flisp.c
+++ b/flisp.c
@@ -203,8 +203,8 @@
 	sym->numtype = NONNUMERIC;
 	if(fl_is_keyword_name(str, len)){
 		value_t s = tagptr(sym, TAG_SYM);
-		setc(s, s);
 		sym->flags = FLAG_KEYWORD;
+		setc(s, s);
 	}else{
 		sym->binding = UNBOUND;
 		sym->flags = 0;