Skip to content

Releases: bakpakin/Fennel

999

12 Dec 01:21
Compare
Choose a tag to compare

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

08 Aug 19:05
Compare
Choose a tag to compare

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

12 Jul 00:21
Compare
Choose a tag to compare

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

26 May 21:57
Compare
Choose a tag to compare

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

13 May 18:32
Compare
Choose a tag to compare

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, and bxor
  • 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 and pick-args macros (as limit-*: #246, as pick-*: #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

15 Jan 03:59
Compare
Choose a tag to compare
  • 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

15 Jan 04:06
Compare
Choose a tag to compare
  • 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

15 Jan 04:13
Compare
Choose a tag to compare

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 to path
  • 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 and luastatement for a single lua special
  • Improve code generation for if expressions in many situations
  • Alias # special with length
  • 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

15 Jan 04:13
Compare
Choose a tag to compare

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

15 Jan 04:13
Compare
Choose a tag to compare

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