Path to this page:
./
lang/fennel,
The Fennel programming language
Branch: CURRENT,
Version: 1.5.1,
Package name: lua54-fennel-1.5.1,
Maintainer: pkgsrc-usersFennel is a lisp that compiles to Lua. It aims to be easy to use,
expressive, and has almost zero overhead compared to writing Lua directly.
Features:
- Full Lua compatibility: Easily call any Lua function or library from
Fennel and vice-versa.
- Zero overhead: Compiled code should be just as efficient as hand-written
Lua.
- Compile-time macros: Ship compiled code with no runtime dependency
on Fennel.
- Embeddable: Fennel is a one-file library as well as an executable.
Embed it in other programs to support runtime extensibility and interactive
development.
Master sites:
Version history: (Expand)
- (2024-10-13) Updated to version: lua54-fennel-1.5.1
- (2024-05-30) Updated to version: lua54-fennel-1.4.2
- (2023-07-23) Updated to version: lua54-fennel-1.3.1
- (2023-04-27) Updated to version: lua54-fennel-1.3.0
- (2023-01-11) Package added to pkgsrc.se, version lua54-fennel-1.2.1 (created)
CVS history: (Expand)
2024-10-13 23:04:53 by Yorick Hardy | Files touched by this commit (3) | |
Log message:
lang/fennel: update to fennel-1.5.1
== 1.5.1 / 2024-08-24
--- Bug Fixes
* `,doc`/`fennel.doc`: Don't mutate `:fnl/arglist` directly when
showing callable form
* `(set (. tgt k1 ...) v)` now works on known globals and
`$, $1 ... $9` in hashfns
* Macro quote expansion no longer breaks when `sym`, `list` or
`sequence` is shadowed
* Bring `fennel.traceback` behavior closer to Lua's `traceback` by
not modifying non-string and non-`nil` values.
* Avoid losing precision when compiling large numbers on LuaJIT.
* Add syntax for representing infinity and NaN values.
== 1.5.0 / 2024-06-23
--- New Features
* Macro `pick-values` is now a special, allowing it to emit better
Lua output.
* Add `fennel.getinfo` as source-map-aware equivalent of
`debug.getinfo`.
* Optimize allocation away when destructuring tables to tables.
* Allow `&` and `&as` in the same destructure clause.
* More consistent module-not-found warnings for `--require-as-include`.
* Improve compiler output for `and`/`or` forms with potential
side-effects.
* Allow locals in places where they make sense rather than
mid-expression.
* Accept `--keywords` option to add to the list of built-in
Lua keywords.
* REPL completion now works on partial REPL commands:
e.g. `,complete ,d` -> `,doc`.
* Tables in the REPL default to printing with limited depth.
* View settings in REPL can be changed:
`(set ___repl___.view-opts.depth 100)`.
* Support dynamic field names in `(set (. tbl field) val)`.
* The `fennel.compile` function now accepts an AST, iterator, or file.
* Catch typos when a space is missing after a string.
--- Bug Fixes
* `(pick-values 0 (side-effects))` now correctly preserves side
effects
* Don't non-nil assert on `_foo` arguments in `lambda`.
* Propagate compile options into `,compile` repl command.
* IIFEs emitted by `and`/`or` inside `(fn [...])` now propagate
varargs.
* `macrodebug` on cyclic macro expansions now serialize to valid code
(no `@1, ..`)
|
2024-05-30 22:17:34 by Yorick Hardy | Files touched by this commit (3) | |
Log message:
lang/fennel: update to fennel-1.4.2
Changelog:
== 1.4.2 / 2024-02-23
=== Bug Fixes
* Fix a bug where `(tail! (f x))` could sometimes compile to
`return return f(x)`
* Make `tail!` ensure its target is not a special form call
like `(tail! (or x (f)))`
* Fix broken man page installation on `make install` in Fennel 1.4.1
== 1.4.1 / 2024-02-19
This was the last release that provided Linux arm32 binaries.
=== New Features
* Iterators accept locals wrapped in parens like all other multi-value
bindings.
* `fennel.repl` is now a callable table, allowing the default
`(fennel.repl)` options to be customized by setting option fields
on the table itself.
=== Bug Fixes
* Fix a bug with metadata tables in `lambda` being ignored.
* Fix identity value for `band` operator.
* Fix a bug in `icollect` with `&into` and multiple values.
* `assert-repl`, as a drop-in replacement for `assert`, no longer
takes an `opts` param
* Fix a bug where `(. (a-macro) k)` bypassed protections against
invalid Lua output
=== Changes and Removals
* Deprecate the `__fennelrest` destructuring metamethod.
== 1.4.0 / 2023-12-01
=== Bug Fixes
* Prevent metadata from being accessible in compiler sandbox.
=== New Forms
* Add `tail!` which asserts that the argument is called in tail
position.
* Add `assert-repl` to make an assertion which opens a repl when
it fails.
=== New Features
* Add `--assert-as-repl` flag to replace `assert` calls with
`assert-repl`.
* Allow you to return a value from the repl with `,return FORM`
command.
* Save previous REPL values in `*1`, `*2`, and `*3` locals.
* Make repl prompt change when repl sessions get nested.
|
2023-07-22 23:38:18 by Yorick Hardy | Files touched by this commit (4) | |
Log message:
lang/fennel: update to fennel-1.3.1
1.3.1 / 2023-07-07
New Features
* fennel.runtime-version will return version information as a
table if given optional argument
* Expose REPL's methods in the ___repl___ table, allowing method
redefinition at runtime.
* Allow following docstring with a metadata table syntax.
* Return whole metadata table when metadata.get is called without
a key.
* Add :byte-escape option to fennel.view for overriding default
char escapes
* Generate man pages for fennel-api(3), fennel-reference(5), and
fennel-tutorial(7) from their respective documentation.
Note for packagers: The man page fennel.1 has been moved to
man/man1/fennel.1 along with the new generated man pages. For build
scripts that copy files manually in lieu of make install, this may
require an update.
Bug Fixes
* Fix a bug where operator compiler output had incorrect precedence
with 3+ args
* Fix a bug where the comment special would fail on forms
containing "]]"
* Fix a bug where tables like {:true 1 true 2} emit with unstable
key order
* Fix a bug where table literals mutated by a macro emit with
unstable key order when AOT-compiled in Lua > 5.2
* Fix a bug where very long individual lines in the repl would be
truncated
* Fix an edge case where {:__metatable true} (as in pandoc-lua)
breaks fennel.view
* Fix a 1.3.0 bug where macros only accepts table literals, not
table-returning exprs
* Fix a bug where metadata tables with different arglists break
lambdas
* Fix a bug with detecting cycles for tables that have custom
__pairs metamethod in fennel.view
* Fix a bug where vararg couldn't be the only thing in a hashfn
|
2023-04-27 14:45:56 by Yorick Hardy | Files touched by this commit (2) | |
Log message:
lang/fennel: update to fennel-1.3.0
1.3.0 / 2023-02-13
New Forms
* Add case which does pattern matching without pinning existing locals
* Add case-try which works like match-try without pinning locals
* Add faccumulate macro as range analog to accumulate
New Features
* Reduced compiler memory footprint
* Omit escape codes highlighting errors when NO_COLOR env var is set
* Support & for rest args in function arglists for consistency with let
* Add error-pinpoint option to support custom error highlighting
* The fn special now allows arbitrary compiler metadata keys via the
metadata table syntax
* Options in fennel.view can be altered for the next invocation of the
pretty-printer by setting them to {:once val} or {:once val :after
other-val}. See fennel.view docstring for more info
Bug Fixes
* Fix a bug where readline repl history would be saved to the wrong file
* Fix a bug where set did not catch unknown locals when setting table
fields
* Add a workaround for a bug around ctrl-d in readline
|
2023-01-10 22:51:30 by Nikita | Files touched by this commit (6) |
Log message:
Import lang/fennel as fennel version 1.2.1
Packaged by charlotte@ in wip.
Fennel is a lisp that compiles to Lua. It aims to be easy to use,
expressive, and has almost zero overhead compared to writing Lua directly.
Features:
- Full Lua compatibility: Easily call any Lua function or library from
Fennel and vice-versa.
- Zero overhead: Compiled code should be just as efficient as hand-written
Lua.
- Compile-time macros: Ship compiled code with no runtime dependency
on Fennel.
- Embeddable: Fennel is a one-file library as well as an executable.
Embed it in other programs to support runtime extensibility and interactive
development.
|