~ambrosebs

Recent activity

Re: October Fennel group 2 months ago

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

Re: [PATCH fennel] Reintroduce gensyms to unique renaming machinery 1 year, 9 months ago

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

Scoping bug with nested let + gensym 1 year, 10 months ago

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:

Re: [PATCH v2 antifennel] Flatten associative operations 1 year, 10 months ago

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