Live data from Hacker News

TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

github.com

11–20 of 43 posts

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#11
How difficult is it to write an "Emacs Lisp" interpreter in a foreign framwork like neovim? Wouldn't this basically convert any IDE into Emacs if the user wants it?

I mean, I know elisp is not the most efficient of Lisp compilers but doing so for a new IDE opens the door for all available codes and plugins people have written for emacs throughout the years.

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#13
post #6

There are things I'll never understand. Why would anybody do this? Why Clojure and not Emacs Lisp?

"There are things I'll never understand." => true

Hmm, that's

    > "There are things I'll never understand."
    "There are things I'll never understand."
for me. But

    > (cond ("There are things I'll never understand." 'true))
    true
works.

Seriously I'm glad to not understand everything, that would be quite worrying and/or boring.

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#15
This reminds me of a vim koan[0]:

> Master Pope once dreamt he was an Emacs user. When he awoke, he exclaimed:

> “I do not know if I am Tim Pope dreaming I am an Emacs user, or an Emacs user dreaming I am Tim Pope!”

---

0: https://blog.sanctum.geek.nz/vim-koans/

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#16

Is there anything like this on the works for Vimscript 9? Tangentially related: asking around in fora and in person, I was surprised to see that many plugin writers have had very good experience with the new Vimscript, and even prefer it to the more general purpose Lua (I was expecting the opposite). I myself have not used any Vimscript, but I am tempted to take a look at the new language.

[deleted]

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#18

Can anyone see how to start the repl?

From the readme:

  Start a repl with :TLrepl. Tab complete is your friend. The first time may take several seconds (if your computer is a piece of shit), but compilation is cached, so subsequent invocations will be super quick, even if Vim is restarted.

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#19

How difficult is it to write an "Emacs Lisp" interpreter in a foreign framwork like neovim? Wouldn't this basically convert any IDE into Emacs if the user wants it? I mean, I know elisp is not the most efficient of Lisp compilers but doing so for a new IDE opens the door for all available codes and plugins people have written for emacs throughout the years.

I think a huge compatibility layer would also needs to be part of that. Most IDEs probably use a completely different vocabulary and set of concepts than Emacs, starting with buffers and mode lines and minibuffers and modes.

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#20

Something similar: Fennel ( https://fennel-lang.org/ ) is a lisp that compiles into Lua, which neovim can use as plugins, so you can write neovim plugins in a lisp. Aniseed ( https://github.com/Olical/aniseed ) makes this really easy. Aniseed is also used by Conjure (Interactive development environment for neovim, used for evaluating Fennel code inside of neovim), which is also made by the same author. Really great p…

I've said this before but I think fennel is one of the most impressive languages around. Lua has a good reputation but I've used it professionally and find it one of the more practically painful languages to work in. Apparently fennel's author agrees, because fennel is laser-focused on correcting exactly its worst problems.

AND/BUT one of fennel's impressive things is that it sticks rigidly to lua runtime semantics. Which I found a little repulsive at first but has huge benefits in its context. You can drop fennel into any version of lua on any runtime (bc they vary a lot) and it works the same. You can hook the single-file fnl compiler into lua's module loader and mix fennel files into an existing lua program, freely sharing functions and metatables both ways.

Very flexible and powerful because of that tradeoff. Anywhere I have to use lua now I am actually using fennel.

The downside is this choice precludes it from having the clojure-like data structures and reference types. It could add a new standard library but doesn't, limiting itself to a handful of special forms (notably pattern match thank god) that mix nicely with the existing lua primitives. It looks like TimL has gone the other way with that decision, which I also appreciate. Makes it maybe a less flexible general-purpose lua replacement/extension, but probably makes it more powerfully suited for the specific purpose it'll be used for.

Post reply on HN