I won't be able to make it to the Fennel group meetup tomorrow.
https://fennel-lang.org/events
If someone else volunteers to join and facilitate, we can still have it;
if not we'll need to cancel, sorry!
-Phil
> I won't be able to make it to the Fennel group meetup tomorrow.
ah, it's a shame, I wanted to discuss require-as include hiccups. Been
trying to attend for months but couldn't come either. Well, next time, I
guess :)
--
Andrey Listopadov
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
Ambrose Bonnaire-Sergeant <ambrose@ambrosebs.com> writes:
> 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.
Have you tried the linting features of fennel-ls, the language server?
https://git.sr.ht/~xerool/fennel-ls/tree/main/docs/manual.md#cli-usage
It's actually much more advanced than any other LSP server I've seen,
because it already safely does the expansion you mentioned and is able
to lint the resulting forms. Due to Fennel's behavior ensuring macros
are sandboxed, it actually allows analysis to be done safely instead of
either skipping macros like clojure-lsp or running them unsafely like
elixir's and rust's.
> 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.
I'd love to hear more about this; what kind of verification did you have
in mind? It sounds like you think it would be easier to set up some kind
of communication between Fennel and Clojure than it would be to port the
algorithms you have? (This gets me thinking about what a barebones
Clojure->Fennel not-exactly-a-compiler might look like as a porting tool.)
-Phil
> 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.
If you need, we can discuss the protocol. It shouldn't be hard to
interface with Fennel REPL from Clojure REPL. You can open a ticket on
github[1] or gitlab[2] if you have an account, or contact me via email if
you want to keep it private.
[1] https://github.com/andreyorst/fennel-proto-repl-protocol
[2] https://gitlab.com/andreyorst/fennel-proto-repl-protocol