Last active 1 year, 2 months ago
View more

Recent activity

Re: [PATCH] Require autogensym for identifiers inside backticked macros 2 years ago

From Calvin Rose to ~technomancy/fennel

I think its a good idea, and probably not too much wrong in the way of
backwards incompatibility. It's definitely a useful feature for macros
and I can't really think of any big problems with it. The patch looks

As for stricter hygiene, I don't think that its worth it. This is
partially personal taste, but Scheme's hygienic macros are under-powered
and over-complicated. This is apparent in the multiple macro systems
created to replace syntax-rules. I also don't think that a more complicated
system meshes with Fennel ideologically. 

- Calvin

Fennel Conf 2019 and Future Fennel Changes 2 years ago

From Calvin Rose to ~technomancy/fennel

Hi Everyone!

Fennel Conf 2019 was very productive; we had lots of discussion about
using Fennel and the language itself. It was great to hear more about
the projects people have been creating with Fennel.

It was also informative to hear about the difficulties encountered in
the Fennel language and compiler. At Fennel Conf, we pinpointed some
issues that could be addressed in future releases, some small and
trivial, some complex and fundamental to the core language.

First, there is a little bit of unnecessary friction caused by Fennel
not conforming to established lisp syntax. There is also no compelling
reason to keep the current syntax besides backwards compatibility (which

Re: Optimizations in Lua code generation 2 years ago

From Calvin Rose to ~technomancy/fennel

On Mon, Jan 28, 2019 at 12:10:06PM -0800, Phil Hagelberg wrote:
> Phil Hagelberg <phil@hagelb.org> writes:
> > I loaded the new version into EXO_encounter-667, which is my largest
> > Fennel codebase. It removed all but 3 unnecessary IIFEs (at least, those
> > 3 seemed unnecessary to me; maybe they in fact are needed.)

Thanks for the feedback, Phil.

Addressing the IIFEs you presented, the hard part about some of these
situations is that the compiler doesn't look inside functions before
compiling them (it is purely top down). For all cases, although your
intent is to return either nothing or a single value, imagine you were

Optimizations in Lua code generation 2 years ago

From Calvin Rose to ~technomancy/fennel

Hi Everyone,

This is a heads up on some changes I have been working on for Fennel
having to do with code generation. Some discussion on IRC has been about
how the Fennel compiler (0.2.1) was generating anonymous functions that
are immediately called (IIFE, or Imediately Invoked Function Expression)
in many cases, even when not strictly necessary. There will probably
always be some need for these IIFEs, but they do result in slower, more
obtuse Lua, especially when this happens in a tight loop. The latest
Fennel has eliminated many of these IIFEs, and generates better quality

As an example, we can look at some old code generated by Fennel for the
fennelview.fnl module, the module included with fennel for

Fennel 0.2.0 2 years ago

From Calvin Rose to ~technomancy/fennel

Hey everyone, Fennel 0.2.0 is out and up on Luarocks!

A number of changes and improvements have been made
to the fennel compiler and library, including new and 
improved threading and match macros in the core
macro library. I won't list them
here, as they can be found in changelog.md.


A lot of people have been contributing code to Fennel,
which is really awesome. If you have more suggestions.
code to contribute, bugs to report, or use cases that
could be made smoother, let us know on the mailing list,

Re: Plans for 0.2.0 2 years ago

From Calvin Rose to ~technomancy/fennel

On Mon, Jan 07, 2019 at 12:00:39PM -0800, Phil Hagelberg wrote:
> Phil Hagelberg <phil@hagelb.org> writes:
> > Any other ideas for what we might want to include in the next release?
> > Or questions about the above?
> A friend of mine is a debian developer who's considering packaging
> Fennel in the upcoming Debian Buster release, which has a freeze in a
> week or two.
> If we could cut a release of Fennel 0.2.0 it would make it easier for
> her to do this. Is there anything else that should be considered for the
> release?

Re: behavior of -> etc. 2 years ago

From Calvin Rose to ~technomancy/fennel

I understand technomancy's concern over the auto conversion not being as
useful as in Clojure, but I think there are many other cases where it
can be applied besides looking up values in nested table. Also, I can't
imagine what other possible meaning a lone symbol in the threading macro
could have. The only other future syntax I can imagine would having some
dsl syntax like the convention of using :else in an if expression, but
this seems unlikely.

In general, I think (-> x f g print) looks nicer than (-> x (f) (g)

On Tue, Jan 01, 2019 at 04:52:52PM -0800, Justin Smith wrote:
> In response to a concern raised on the #fennel IRC channel I made a PR
> to auto-wrap threading macro args in lists, as would be done in