From 57f2d25e19e1fee51508732beb46992e319e594c Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Thu, 29 Nov 2018 02:11:51 +0000 Subject: [PATCH] Note local optional parameter bug. --- src/relnotes/bug-localoptparam | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/relnotes/bug-localoptparam diff --git a/src/relnotes/bug-localoptparam b/src/relnotes/bug-localoptparam new file mode 100644 index 000000000..803351c9f --- /dev/null +++ b/src/relnotes/bug-localoptparam @@ -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)) -- 2.25.1