shithub: femtolisp

Download patch

ref: e05b80c03df443e113a4cbff78caf0c1312f7b39
parent: f6115b5ebb70bffd3ba4b11dbe05d96d7e1cc12c
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Dec 31 13:15:25 EST 2024

print-stack-trace: avoid creating a bunch of symbols for nothing

--- a/flisp.boot
+++ b/flisp.boot
@@ -340,14 +340,14 @@
 									       #fn(function:vals)
 									       1- #fn(length)
 									       #fn("8000n170A0G513>0F<A0G929363:O:" #(closure?))) find-in-f)
-  #fn(";000n220A01>321{863I02273247576865152275261:28:" #(#fn("8000n02021AF>292524O:" #(#fn(for-each)
-											#fn("8000n1A<0Fq63:" #())))
-							  #fn("6000n10B3F00<20C?00T21C8072061:23061:" #(thrown-value
-  ffound caddr #fn(raise))) #fn(symbol) string-join #fn(map) string reverse! "/" λ) fn-name)
-  reverse! length> list-tail *interactive* filter closure? #fn(map)
-  #fn("6000n10Z;380420061:" #(#fn(top-level-value)))
-  #fn(environment) #fn(for-each) #fn("8000n170A<0KGF5271051==P5147250492<El23?0730KG0EG52@30O49292<KM_:" #(print
-  vector->list newline disassemble))) print-stack-trace)
+  #fn(":000n220A01>321{863E0722374758651522662:27:" #(#fn("8000n02021AF>292524O:" #(#fn(for-each)
+										    #fn("8000n1A<0Fq63:" #())))
+						      #fn("6000n10B3F00<20C?00T21C8072061:23061:" #(thrown-value
+  ffound caddr #fn(raise))) string-join #fn(map) string reverse! "/" "λ") fn-name) reverse! length>
+  list-tail *interactive* filter closure? #fn(map) #fn("6000n10Z;380420061:" #(#fn(top-level-value)))
+  #fn(environment) #fn(for-each) #fn("9000n17021A<0KGF52524222374051==52470257652492<El23?0770KG0EG52@30O49292<KM_:" #(princ
+  "(" #fn(for-each) #fn("6000n1702151472061:" #(princ " " print)) vector->list ")" *linefeed*
+  disassemble))) print-stack-trace)
 	    print-to-string #fn("8000n1205021085524228561:" #(#fn(buffer)
 							      #fn(write)
 							      #fn(iostream->string)) print-to-string)
binary files a/flisp.boot.builtin b/flisp.boot.builtin differ
--- a/system.lsp
+++ b/system.lsp
@@ -980,8 +980,8 @@
                                 e)
                       #f))))
       (if p
-          (symbol (string-join (map string (reverse! p)) "/"))
-          'λ)))
+          (string-join (map string (reverse! p)) "/")
+          "λ")))
   (let ((st (reverse! (if (length> st 3)
                           (list-tail st (if *interactive* 5 4))
                           st)))
@@ -991,10 +991,12 @@
         (n 0))
     (for-each
      (λ (f)
-       (print (cons (fn-name (aref f 1) e)
-                    (cdr (cdr (vector->list f)))))
-       (newline)
-       (when (= n 0) (disassemble (aref f 1) (aref f 0)))
+       (princ "(" (fn-name (aref f 1) e))
+       (for-each (λ (p) (princ " ") (print p))
+                 (cdr (cdr (vector->list f))))
+       (princ ")" *linefeed*)
+       (when (= n 0)
+         (disassemble (aref f 1) (aref f 0)))
        (set! n (+ n 1)))
      st)))