Note local optional parameter bug.
authorTaylor R Campbell <campbell@mumble.net>
Thu, 29 Nov 2018 02:11:51 +0000 (02:11 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 30 Nov 2018 06:53:15 +0000 (06:53 +0000)
src/relnotes/bug-localoptparam [new file with mode: 0644]

diff --git a/src/relnotes/bug-localoptparam b/src/relnotes/bug-localoptparam
new file mode 100644 (file)
index 0000000..803351c
--- /dev/null
@@ -0,0 +1,13 @@
+Bug fix: LIAR previously miscompiled local procedures with optional
+parameters if they were never passed.
+
+Formerly MIT Scheme used unassigned reference traps for optional
+parameters without values; now it uses a #!default object.  But LIAR
+hadn't gotten the memo, and if every call site omitted the argument,
+LIAR would constant-fold an unassigned reference trap instead of
+#!default.
+
+(let ()
+  (define (test #!optional x)
+    (pp (map-reference-trap (lambda () x))))
+  (test))