Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After some discussion on the
#fennel
freenode channel it wasobserved that the current
macro
andspecial
calls could beproblematic on larger codebases because they are global.
I started thinking about what a macro system would look like which
used the existing module system and didn't affect global compiler
state, and I came up with the
require-macros
form.This allows you to import macros just for the scope of a single file
(or if you really want to, for the scope of a single function). The
mymacros.fnl
file would be loaded in the same kind context aseval-compiler
currently works.I think it's comprehensive enough that it could replace the existing
macro
,special
, andeval-compiler
forms, but I'll admit Ihaven't thought thru the implications of that fully. Maybe
special
and
eval-compiler
are still needed in some contexts?What do you think?