Greetings Fennel folk.
I have just cut a release for Fennel 0.5.0.
The user-visible changes for this release are quite minor:
* Fix a bug where lambdas with no body would return true instead of nil.
* Fix a bug where global mangling would break when used with an environment.
* Fix a bug where globals tracking would lose track of allowed list.
* Fix a bug where top-level expressions in `include` would get skipped.
However, the really big news about this change is that now Fennel is
self-hosted, which is to say that the entire compiler is written *in Fennel*:
https://github.com/bakpakin/Fennel/blob/master/src/fennel.fnl
Other than the bugs above that we found during the self-hosting process,
there should be no noticeable changes between this and Fennel 0.4.2, but
we decided to bump the version more to indicate that internally it was
a very substantial change. We have tested it pretty thoroughly,
including comparing the compiler output across every publicly listed
love2d game written in Fennel from the wiki[1], and found that in most
cases the compiler output was byte-for-byte identical.
If you're interested in how we did this, you can read more about it
here:
https://lists.sr.ht/~technomancy/fennel/%3C87r1u5shvf.fsf%40hagelb.org%3E
Thanks to everyone who contributed.
-Phil
[1] - https://github.com/bakpakin/Fennel/wiki/Codebases#l%C3%96ve-games
[2] - The only difference in compiler output was that auto-generated
local names were sometimes numbered in a slightly different order,
which would not affect behavior: https://p.hagelb.org/fallen-diff.html