clone url: git://git.m455.casa/fa
esperbuild/espersrc/fennel-0.7.0/changelog.md
,reload
; see ,help
for a full list--no-compiler-sandbox
did not apply in import-macros
macrodebug
fail to print correctly--no-sandbox-compiler
to --no-compiler-sandbox
in help/docs:
when used with methods that are not valid Lua namesThis release introduces the plugin system as well as starting to sandbox the compiler environment for safer code loading. Nothing is blocked yet, but it emits warnings when macros use functionality that is not considered safe; future versions will prevent this.
@
list?
and sym?
in compiler API.--lua
CLI flag for specifying a custom Lua command/executable. (#324)This release features a version of the Fennel compiler that is self-hosted and written entirely in Fennel!
include
would get skipped.This release mostly includes small bug fixes but also adds the
with-open
macro for automating closing file handles, etc.
include
calls would splice locals incorrectly$...
(#298)with-open
macro for auto-closing file handles (#295)--native-module
and --native-library
to --compile-binary
command#
) couldn't be used as multisyms (#294)fennel.searchModule
function to module APIinclude
to ignore compiler options$HOME
env var was not setThis release mostly includes small bug fixes, but also introduces a very experimental command for compiling standalone executables.
--compile-binary
command (#281)This release adds support for Lua 5.3's bitwise operators as well as a
new way of importing macro modules. It also adds pick-values
and
pick-args
for a little more flexibility around function args and
return values. The compiler now tries to emit friendlier errors that
suggest fixes for problems.
import-macros
for more flexible macro module loading (#269)rshift
, lshift
, bor
, band
, bnot
, and bxor
FENNEL_DEBUG=trace
__fennelview
metamethod for custom serializationdofile
would report the wrong filenameinclude
of Lua modules that lack a trailing newline (#234)pick-values
and pick-args
macros (as limit-*
: #246, as pick-*
: #256)macroexpand
helper to expand macro forms during compilation (#258)macrodebug
utility macro for printing expanded macro forms in REPL (#258)This release mostly contains small bug fixes.
include
could not be nested without repetition (#214)else
to emit twice in some contexts (#212)This release mostly contains small bug fixes.
--load FILE
argument to command-line launcher (#193)each
to work with raw iterator values (#201)--check-unused-locals
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.
doc
for displaying them in repl:detect-cycles? false
in fennelview to turn off "#<table 1>" outputx#
syntax for auto-gensym inside backticklambda
arity checks when using destructuring:one-line
output in fennelviewinclude
special form to selectively inline modules in compiled output--require-as-include
to inline required modules in compiled output--eval
argument to command-line launcherFENNEL_PATH
to path
match
?
in pattern matchingreadline.lua
is available--globals
and --globals-only
options to launcher scriptluaexpr
and luastatement
for a single lua
specialif
expressions in many situations#
special with length
@
(unquote) with ,
; comma is no longer whitespace~
in symbols other than ~=
hashfn
and #
reader macro for shorthand functions like #(+ $1 $2)
macro
to make defining a single macro easier(comment)
special which emits a Lua comment in the generated source(foo:bar baz)
; disallow :
in symbolsThis release mostly contains small bug fixes.
not=
as an alias for ~=
in-scope?
which caused match
outer unification to fail~=
comparisonsThe 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.
macros
--add-package-path
and --add-fennel-path
to launcher script-?>
and -?>>
macros@
(later changed to ,
)match
macro for pattern matchingThis release contains a few small bug fixes.
The first real release sees the addition of several "creature comfort" improvements such as comments, iterator support, line number tracking, accidental global protection, pretty printing, and repl locals. It also introduces the name "Fennel".
defn
macrodoto
macro->
and ->>
macrospack
, $
, block
, *break
, special
.
formvar
; disallow regular locals from being setglobal
; refuse to set globals without it&
require-macros
//
for integer division on Lua 5.3+fennel.dofile
and fennel.searcher
for require
supportpartial
local
:
for method callseach
lambda
/λ
for arity-checked functionswhen
The initial version (named "fnl") was created in 8 days and then set aside for several years.