From Ambrose Bonnaire-Sergeant to ~technomancy/fennel
Also can't make it this time but I also feel inspired by Fennel related stuff that I could use help on fleshing out. I have some half-baked ideas on building a Fennel linter that lives in a separate process but can connect to a Fennel repl to expand macros it doesn't understand into primitives it does. Couldn't quite figure out the repl protocol built for Emacs, please email me if you can give me pointers in how you'd connect and interact with a Fennel REPL from JVM Clojure. After reading the Fennel survey I'm curious if I can repurpose the work I've done in Clojure verification by using graalvm for startup time and representing a Fennel AST instead of a Clojure one. Except for the mutability of tables, there's a lot of shared concepts. Ambrose
From Ambrose Bonnaire-Sergeant to ~technomancy/fennel
> Brilliant; I think this solution gets right to the heart of the > problem. Nice work. Thanks Phil! > That's OK; the lua special is documented as not being reliable when it > comes to identifiers. I will clarify in the documentation that this > unreliability goes beyond just kebab->snake mangling. We shouldn't let > > that hold us back. =) Ah, thanks for clarifying. Honestly, I was a little confused that
From Ambrose Bonnaire-Sergeant to ~technomancy/fennel
Hi, Here's a case where auto-gensym generates correct code, and gensym doesn't. Here's the buggy case: (fn returns-2 [] (let [g (gensym)] `(let [,g (let [,g 1] 2)] g))) generates:
From Ambrose Bonnaire-Sergeant to ~technomancy/fennel
> This works because an idiosyncrasy in Fennel where the type predicates > return their argument rather than true Ah! I noticed the same useful behavior with Lua's `assert`. > Never mind; figured it out. =) Nice! Ambrose