[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #57833] letrec-syntax is broken
From: |
Arthur A. Gleckler |
Subject: |
[bug #57833] letrec-syntax is broken |
Date: |
Sun, 16 Feb 2020 14:14:58 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36 |
URL:
<https://savannah.gnu.org/bugs/?57833>
Summary: letrec-syntax is broken
Project: MIT/GNU Scheme
Submitted by: aag
Submitted on: Sun 16 Feb 2020 07:14:57 PM UTC
Category: runtime
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Incorrect behavior
Status: None
Privacy: Public
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Keywords:
_______________________________________________________
Details:
letrec-syntax is now broken:
1 ]=> (define-syntax foo
(syntax-rules ()
((_ xy)
(letrec-syntax
((bar1 (syntax-rules ()
((_ (else* destination))
(destination))))
(bar2 (syntax-rules ()
((_ z)
(bar1 z)))))
(bar2 xy)))))
;Value: foo
1 ]=> (pp (lambda () (foo (else* start))))
(lambda ()
(bar1 (else* start)))
;Unspecified return value
1 ]=>
Under 9.2.1 the answer was:
(lambda ()
(start))
Splitting the define-syntax form into three separate definitions solves this
specific problem, but there seem to be other problems, too, with unbound
references. I haven't yet managed to distill that into a reproducible test
case, though. I hope it's just another manifestion of the same bug.
This is the bug that appeared after #57793 was fixed.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?57833>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #57833] letrec-syntax is broken,
Arthur A. Gleckler <=