You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, there is no plan to add R7RS style modules. Not because I'm opposed to the idea, but because I currently have no time to do it.
There are a couple of lower-level things that probably need to be done before adding R7RS module support becomes relevant:
Implement syntax-case macros. It should be possible to implement that on top of the current hygiene system, but it is non-trivial because syntax-case macros require macros to be a closure that takes one argument, but in Black Hole's implementation macros are closures that take three arguments. It should be possible to use some of the syntax-rules code though.
Properly implement implicit phasing on imports (see issue 22). This is partially implemented, but the current implementation does, because of a small detail, not in practise support macros that depend on other modules.
We also might want to go away from the current implementation of having each module be invoked once per phase: The paper linked to on issue 22 argues rather convincingly that it's best to have one module instance even across phases.
This is important to do to make Black Hole easier to use for people other than me.
A draft of a proposal for a version roadmap:
0.1: Syntactic tower
0.1.1: Bug fixes: Issue 23, issue 7, issue 15, issue 16
0.2: Implicit phasing on imports and making it a syntax error to have unbound variables in modules
0.3: A command line interface
0.4: syntax-case macros
The text was updated successfully, but these errors were encountered: