Skip to content

Fennel 0.3.0 / 2019-09-22

Compare
Choose a tag to compare
@jaawerth jaawerth released this 15 Jan 04:13
· 1591 commits to main since this release

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