Releases: bakpakin/Fennel
999
We've moved off GitHub, so we don't store releases here any more.
Please see https://fennel-lang.org/setup for a link to the latest version or https://fennel-lang.org/ for a list of all the versions.
There is a raw list of all the files published at https://fennel-lang.org/downloads
0.5.0
0.5.0 / 2020-08-08
- 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
includewould get skipped. - The Fennel compiler is now self-hosted and written entirely in Fennel!
0.4.2
0.4.2 / 2020-07-11
- Fix a bug where multiple
includecalls would splice locals incorrectly - Support varargs in hashfn with
$...(#298) - Add
with-openmacro for auto-closing file handles (#295) - Add
--native-moduleand--native-libraryto--compile-binarycommand - Make autogensym symbols omit "#" when appending unique suffix
- Fix a bug where autogensyms (using
#) couldn't be used as multisyms (#294) - Add
fennel.searchModulefunction to module API - Fix a bug causing
includeto ignore compiler options - Fix a bug causing the repl to fail when
$HOMEenv var was not set
Fennel 0.4.1 / 2020-05-25
Changes since 0.4.0
- Experimental --compile-binary command (#281)
- Support shebang in all contexts, not just dofile.
- Pinpoint source in compile errors even when loading from a string
- Fix a bug where included modules could get included twice (#278)
- Fix a 0.4.0 bug where macros can't expand to string/boolean/number primitives (#279)
- Fix a bug in macros returning forms of a different length from their input (#276)
Installation
You can download the standalone fennel CLI launcher (requires Lua), or a pre-built archive containing the launcher, fennel.lua itself in library form, as well as the other built-in libraries and all development assets below.
Fennel 0.4.0 / 2020-05-12
Changes since 0.3.2
- Add
import-macrosfor more flexible macro module loading (#269) - Ensure deterministic compiler output (#257)
- Add bit-wise operators
rshift,lshift,bor,band,bnot, andbxor - Friendlier compiler/parse error messages with suggestions
- Omit compiler internal stack traces by default unless
FENNEL_DEBUG=trace - Add support for
__fennelviewmetamethod for custom serialization - Fix a bug where
dofilewould report the wrong filename - Fix bug causing failing
includeof Lua modules that lack a trailing newline (#234) - Introduce
pick-valuesandpick-argsmacros (aslimit-*: #246, aspick-*: #256) - Add new
macroexpandhelper to expand macro forms during compilation (#258) - Add
macrodebugutility macro for printing expanded macro forms in REPL (#258)
Installation note
As of 0.4.0, fennel CLI executable is self-contained and built with make fennel.
You can download a prebuilt release below to get going without make.
Fennel 0.3.2 / 2020-01-14
- Fix a bug where
includecould not be nested without invalid Lua output; embed via
package.preload to avoid repetition and referential equality issues (#214) - Fix a bug where globals checking would mistakenly flag locals (#213)
- Fix a bug that would cause incorrect filenames in error messages (#208)
- Fix a bug causing
elseto emit twice in some contexts (#212) - Dissallow naming a local the same as global in some contexts
Fennel 0.3.1 / 2019-12-17
- Look for init file for repl in XDG config dirs as well as ~/.fennelrc (#193)
- Add support for
--load FILEargument to command-line launcher (#193) - Fix
eachto work with raw iterator values (#201) - Optionally check for unused locals with
--check-unused-locals - Make repl completion descend into nested table fields (#192)
- Fix repl completer to correctly handle symbol mangling (#195)
Fennel 0.3.0 / 2019-09-22
This release introduces docstrings as well as several new features to
the macro system and some breaking changes; the most significant being
the new unquote syntax and the requirement of auto-gensym for
identifiers in backtick.
- Fix a bug where errors would show incorrect line numbers
- Add support for docstrings and
docfor displaying them in repl - Support
:detect-cycles? falsein fennelview to turn off "#<table 1>" output - Disallow non-gensym identifiers in backtick/macros
- Support
x#syntax for auto-gensym inside backtick - Fix a bug in
lambdaarity checks when using destructuring - Support
:one-lineoutput in fennelview - Add
includespecial form to selectively inline modules in compiled output - Add
--require-as-includeto inline required modules in compiled output - Add
--evalargument to command-line launcher - Add environment variable
FENNEL_PATHtopath - Fix a few bugs in
match - Remove undocumented support for single-quoted strings
- Add support for guard clauses with
?in pattern matching - Support completion in repl when
readline.luais available - Add
--globalsand--globals-onlyoptions to launcher script - Remove
luaexprandluastatementfor a singleluaspecial - Improve code generation for
ifexpressions in many situations - Alias
#special withlength - Replace
@(unquote) with,; comma is no longer whitespace - Disallow
~in symbols other than~= - Add
hashfnand#reader macro for shorthand functions like#(+ $1 $2) - Allow hashfn arguments to be used in multisyms
- Add
macroto make defining a single macro easier - Add
(comment)special which emits a Lua comment in the generated source - Allow lua-style method calls like
(foo:bar baz); disallow:in symbols
Fennel 0.2.0 / 2019-01-17
The second minor release introduces backtick, making macro authoring
much more streamlined. Macros may now be defined in the same file, and
pattern matching is added.
- Prevent creation of bindings that collide with special forms and macros
- Make parens around steps optional in arrow macros for single-arg calls
- Allow macros to be defined inline with
macros - Add
--add-package-pathand--add-fennel-pathto launcher script - Add
-?>and-?>>macros - Add support for quoting with backtick and unquoting with
@(later changed to,) - Support key/value tables when destructuring
- Add
matchmacro for pattern matching - Add optional GNU readline support for repl
- Fix a bug where runtime errors were not reported by launcher correctly
- Allow repl to recover gracefully from parse errors
Fennel 0.1.1 / 2018-12-05
This release contains a few small bug fixes.
- Fix luarocks packaging so repl includes fennelview
- Fix bug in the repl where locals-saving would fail for certain input
- Fix launcher to write errors to stderr, not stdout