------------------------------------------------------------------- Wed Dec 3 18:31:43 UTC 2025 - Matej Cepl - Proper multi-variant SPEC with properly set-up alternatives Fixes: https://src.opensuse.org/pool/lua-fennel/issues/1 ------------------------------------------------------------------- Thu Nov 6 14:37:26 UTC 2025 - Matej Cepl - Update to 1.6.0: - New Features - Support extra-compiler-env in options table when compiling. - Accept path in options table of fennel.install. - Improve printing of large integers in Lua 5.3+. - Allow disk reads from compiler sandbox. - Add --to-be-closed option for better stack traces in with-open on Lua 5.4. - Stack traces from macro errors shouldn't contain compiler internals. - Look for macros in .fnlm files in addition to .fnl files. - Support extra-env in compiler API when evaluating in compiler scope. - Allow --compile-binary to work on .lua and .luac files. - Add --lambda-as-fn option to remove overhead from arg checking. - Bug Fixes - Fix a bug where ,find repl command didn't work on files with long names. - Some 3-decimal string escapes ignored the 3rd digit; e.g. \x7f -> \127 -> \f7. - In PUC Lua 5.1, the escape "\127" compiled to a literal byte in the string. ------------------------------------------------------------------- Tue Mar 11 22:21:38 UTC 2025 - Matej Cepl - Update to 1.5.3: - Bug Fixes - Correct a typo causing builds to fail on a fresh checkout. - Update to 1.5.2: - New Features - Added pack cross-Lua helper/polyfill to the compiler env alongside unpack - Precompile built-in macros, improving startup time significantly. - Accept :global-mangle false in compiler opts to disable global mangling. - Stop printing sparse tables as sequences by default. - Bug Fixes - Defaults on fennel.repl.view-opts are no longer clobbered by (fennel.repl {:view-opts {}}) - Fix a bug where fennel.view allowed non-integer :max-sparse-gap settings. - Prevent incorrect fennel.view output like {1 :x 1.2 :y 2 :z} -> ["x" "y" "z"] when max-sparse-gap is still satisfied by gaps between decimal keys. - Ensure fennel --plugin plug.lua loads the compiler env like it does for plug.fnl - Work around string formatting bug in Fengari. - Use options.warn when provided in the parser. - Fix an issue where unquoting a regular table would fail outside compile scope. - Update to 1.5.1: - 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. - Update to 1.5.0: - 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 - 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, ..) - Update to 1.4.2: - 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 - Update to 1.4.1: - 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. This accidentally caused incompatibility with coroutine.create. - 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. - Update to 1.4.0: - 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. - Update to 1.3.1: - New Features - 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 - Update to 1.3.0: - 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 ------------------------------------------------------------------- Wed Jan 25 10:52:05 UTC 2023 - Michal Suchanek - Opencode %make_build to prevent build failure when not defined. ------------------------------------------------------------------- Fri Oct 21 14:39:15 UTC 2022 - Mia Herkt - Update to 1.2.1 New Features * Add `fennel.install` function to the API for adding the searcher * Add missing `table?` predicate to fennel API to go with `list?`, `sym?`, etc Bug Fixes * Skip autogenerated locals in repl locals saving to avoid exceeding local limit * Ensure `(values)` consistently evaluates to zero values * Fix bug preventing new macros from shadowing other macros * Ensure macros use stable `pairs` table traversal for reproducible builds - Changes in 1.2.0: New Forms * Add `fcollect` macro for range "comprehension" New Features * Make `include` splice modules in where they're used instead of at the top * Add `ast-source` function to API to get file/line info from AST nodes * Show errors using terminal control codes instead of arrow indicator * Parser now includes column information (byte-based) in AST nodes * For greater consistency, add `&into`/`&until` to certain looping constructs Bug Fixes * Duplicate table keys no longer crash the compiler * Don't print stack trace for compiler errors in built-in macros * Fix an issue with native modules in `--compile-binary` * Improve argument handling so unused arguments get passed on to script * Fix a bug where macros modifying table literals would emit incorrect output * Fix a bug in the REPL where parser errors display the error message as `nil` * Fix a bug when `nil` were emitted by `unquote` in a macro, and the macro was not compiled correctly because the resulting list length was calculated incorrectly * Fix a REPL bug where `,doc m.foo` did not resolve multisym to macro for macro modules loaded as macro table via `(import-macros m :my.macro.module)` Changes in 1.1.0: New Forms * Add `match-try` macro for chained pattern matching for steps which might fail New Features * The `fennel.parser` function now accepts a string in addition to an iterator * The `accumulate` macro can now accumulate over multiple values * The `fn` special now accepts a metadata table in place of a docstring * The `,reload mod` repl command can now reload macro modules Bug Fixes * Fix an issue where built-in macros would modify their AST arguments * Fix a bug where `--skip-include` would mistakenly emit a warning * Remove hex string escapes to preserve PUC Lua 5.1 compatibility * Prevent errors resolving the target of certain repl commands from crashing * Fix a bug where disabling the compiler sandbox broke module require scope * Fix a bug where certain specials wouldn't short-circuit in `and`/`or` * Fix a bug where symbols bound to `nil` did not show up in REPL completion Changes and Removals * Deprecate the `granulate` and `string-stream` functions in the API * Deprecate the `global` form in favor of using the `_G` table ------------------------------------------------------------------- Mon Nov 15 08:14:24 UTC 2021 - Fabio Pesari - Updated to 1.0.0 ------------------------------------------------------------------- Sat Aug 28 16:55:27 UTC 2021 - Matej Cepl - Update to 0.10.0 and trying to make the build working. Number of changes is just too long and changelog.md is packaged. ------------------------------------------------------------------- Sat Jun 6 17:22:25 UTC 2020 - Fabio Pesari - First upload, v0.4.1