Summary
define-foreign-type is broken inside modules
Metadata
- Id: 77011c0abba1909d2921276d3269d7689cc22bc9
- Trac id: 1614
- Type: defect
- Reporter: sjamaan
- Owner:
- Cc:
- Status: closed
- Component: expander
- Estimated difficulty:
- Resolution: fixed
- Priority: critical
- Milestone: 5.1
- Version: 5.0.0
- Changetime: 2019-05-17 21:36:13 UTC
- Created: 2019-05-07 11:32:29 UTC
- Keywords: define-foreign-type
Attachments
- 77011c0abba1909d2921276d3269d7689cc22bc9/attachments/test.patch
Description
The change of `define` to `##core#set!` broke `define-foreign-type`. It is wrong; if used inside a lambda it should expand to a local define, if used at global it should use `##core#set!` and register the export (but it's a gensym, so that's a bit odd anyway).
The best way to fix this is probably to expand to `define` in the macro instead of in the compiler core. This requires moving some machinery.
Changes and comments
[2019-05-07 11:34:04 UTC] sjamaan attached test.patch (description=Regression test)
[2019-05-17 21:36:13 UTC] sjamaan changed status from new to closed
[2019-05-17 21:36:13 UTC] sjamaan set resolution to fixed
[2019-05-17 21:36:13 UTC] sjamaan wrote:
Fixed by 9dcd35b7862054a96321767eabe85c5215b2bcb6