Closed dyoo closed 13 years ago
Isolated. branch tail-call-bug (starting at e4f9481bc1736c2c3fca6defff5f8e8e89893374). Fixing now.
Issue corrected in d2eb1dea77b0e210a48895d45cbfd1c4ce2b6e27. Bug involved let1 not properly routing around values when it is popping its stack space off. Used the same code that letvoid uses; I need to go back later and refactor this code, because it's a copy-and-paste.
However, another bug is showing up with the conform test case. Looking at this now.
Got it. Closing bug. But I really do need to look at the compiler at some point and clean the code up: I have to admit that I don't completely understand it anymore... :(
There's something about the following macro that is being miscompiled. This is a high-priority thing to fix!
Context: trying to compile the signature implementation in the cs019 language. For some reason, the constructor name gets bound to the first selector name. It's like I'm off by one somewhere, which is very bad.
(define-syntax (define-struct: stx) (syntax-case stx (:) [(_ sn ([f : S] ...)) (with-syntax ([(names ...) (build-struct-names #'sn (syntax->list #'(f ...))
f #f)]