[CM] Let formatted incorrectly

chohag at jtan.com chohag at jtan.com
Mon Mar 30 03:43:45 PDT 2026


It seems like it's printing a let's components ~A-like when it
should be printing ~S-like. It is correct when the directive in the
format string is ~S.

(format #t "LIST ~A\n" '(a "b c d" e 'f))
        ; LIST (a "b c d" e 'f)

(format #t "HASH ~A\n" (hash-table 'a "b c d" 'e #t))
        ; HASH (hash-table 'a "b c d" 'e #t)

(format #t "LET ~A\n" (inlet 'a "b c d" 'e 'f))
        ; LET (inlet 'a b c d 'e f)
                        ^^^^^ not quoted

The patch does result in the correct output but I'm not sure if
it's the correct way to do it.

Tested on today's s7.c (S7_DATE "31-Mar-2026").

Matthew


--- ../s7/s7.c	Mon Mar 30 11:33:30 2026
+++ s7.c	Mon Mar 30 11:35:07 2026
@@ -38204,7 +38204,7 @@
 		    else strport = port;
 		    if (use_write == p_Readable)
 		      sc->has_openlets = false;
-		    object_out(sc, obj, strport, use_write);
+		    object_out(sc, obj, strport, p_Write);
 		    if (use_write == p_Readable)
 		      sc->has_openlets = old_openlets;
 		    if (columnized)


More information about the Cmdist mailing list