~technomancy/fennel

2 2

[ANN] Fennel 1.4.1 released

Details
Message ID
<87cyssgc8b.fsf@hagelb.org>
DKIM signature
pass
Download raw message
Hello everyone.

I'm happy to announce version 1.4.1 of Fennel is out.

Mostly we wanted to get this out because of the bugfix to assert-repl in
order to make sure people didn't end up with code that depended on the
old broken implementation, but there's some other handy bug fixes in
here too.

We've got some great stuff lined up for 1.5.0 and just wanted to get out
the little things out before we start with that.

## 1.4.1 / 2024-02-19

### 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.

As a side note, this will probably be our last release where we offer
precompiled arm32 binaries from fennel-lang.org since that platform is
fairly obscure, and users (on all platforms) are almost always better
off using script builds with a platform-supported Lua build. I've
adjusted the wording on the setup page to reflect this.

As always, you can get the latest version from git or precompiled from
https://fennel-lang.org/setup

Thanks to everyone who contributed to making this release happen!

-Phil
Details
Message ID
<874je3bycn.fsf@the-brannons.com>
In-Reply-To
<87cyssgc8b.fsf@hagelb.org> (view parent)
DKIM signature
permerror
Download raw message
Phil Hagelberg <phil@hagelb.org> writes:

> We've got some great stuff lined up for 1.5.0 and just wanted to get out
> the little things out before we start with that.

Sweet!
And now I'm really curious to know what's on the roadmap for 1.5.0.

-- Chris
Details
Message ID
<878r3dgus3.fsf@hagelb.org>
In-Reply-To
<874je3bycn.fsf@the-brannons.com> (view parent)
DKIM signature
pass
Download raw message
Chris Brannon <chris@the-brannons.com> writes:

> Phil Hagelberg <phil@hagelb.org> writes:
>> We've got some great stuff lined up for 1.5.0 and just wanted to get out
>> the little things out before we start with that.
>
> Sweet!
> And now I'm really curious to know what's on the roadmap for 1.5.0.

The first thing I was thinking of was to generalize `set' to work on
table field access. Today you can do (set tbl.x.y 99), but if we added
support for using (set (. tbl :x :y) 99) then we could deprecate `tset'
altogether.

The other bigger one is for the API to make it so that `fennel.compile'
can be generic so you can pass it a string, a file, an iterator, etc and
it will just do the right thing.

I'd like to change the default settings for table output in the REPL so
it limits the depth it will descend into, but this will require adding
the ability to change the depth from within the REPL as well, so we'll
probably add a new `,view-settings' command for that.

Adding a sourcemap-aware variant of `debug.getinfo' would make it a lot
easier to integrate with existing Lua debugging tools.

Beyond that most of the things I was thinking of were improvements to
the compilation output, like reducing IIFEs and unnecessary
locals. That's not too exciting, but it did seem like at the last Fennel
survey that there were a good number of people interested in cleaner
compiler output.

If any of these changes sound interesting, let me know if you want to
help out with implementation. I don't think any of these other than
maybe the IIFE stuff requires too much in-depth knowledge of how the
compiler works.

-Phil
Reply to thread Export thread (mbox)