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
include
would 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
include
calls would splice locals incorrectly - Support varargs in hashfn with
$...
(#298) - Add
with-open
macro for auto-closing file handles (#295) - Add
--native-module
and--native-library
to--compile-binary
command - Make autogensym symbols omit "#" when appending unique suffix
- Fix a bug where autogensyms (using
#
) couldn't be used as multisyms (#294) - Add
fennel.searchModule
function to module API - Fix a bug causing
include
to ignore compiler options - Fix a bug causing the repl to fail when
$HOME
env 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-macros
for 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
__fennelview
metamethod for custom serialization - Fix a bug where
dofile
would report the wrong filename - Fix bug causing failing
include
of Lua modules that lack a trailing newline (#234) - Introduce
pick-values
andpick-args
macros (aslimit-*
: #246, aspick-*
: #256) - Add new
macroexpand
helper to expand macro forms during compilation (#258) - Add
macrodebug
utility 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
include
could 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
else
to 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 FILE
argument to command-line launcher (#193) - Fix
each
to 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
doc
for displaying them in repl - Support
:detect-cycles? false
in 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
lambda
arity checks when using destructuring - Support
:one-line
output in fennelview - Add
include
special form to selectively inline modules in compiled output - Add
--require-as-include
to inline required modules in compiled output - Add
--eval
argument to command-line launcher - Add environment variable
FENNEL_PATH
topath
- 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.lua
is available - Add
--globals
and--globals-only
options to launcher script - Remove
luaexpr
andluastatement
for a singlelua
special - Improve code generation for
if
expressions in many situations - Alias
#
special withlength
- Replace
@
(unquote) with,
; comma is no longer whitespace - Disallow
~
in symbols other than~=
- Add
hashfn
and#
reader macro for shorthand functions like#(+ $1 $2)
- Allow hashfn arguments to be used in multisyms
- Add
macro
to 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-path
and--add-fennel-path
to launcher script - Add
-?>
and-?>>
macros - Add support for quoting with backtick and unquoting with
@
(later changed to,
) - Support key/value tables when destructuring
- Add
match
macro 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