Hacker News new | ask | show | jobs
by nextos 409 days ago
A modern CL that borrows ideas from Clojure, and with a strongly typed language (Coalton) also available is indeed very appealing!
1 comments

Have you (or anyone else reading this) used Coalton? What's your experience been like? Seems quite appealing to me.
My experience is good, but I have only written smallish programs. Documentation is pretty polished.

Installation-wise, NixPkgs is fairly straightforward.

The language looks amazing on paper, the install process (last I tried) was a nightmare of fighting quicklisp.
That's on quicklisp, not Coalton. Honestly, quicklisp is one of the worst parts of CL nowadays (right after the lack of coroutines[1], which is by far the worst offender.) It should have been replaced a long time ago. ASDF3 provides a lot of flexibility, and quicklisp uses maybe 15% of its capabilities. There are reasons why it's still so bad, but it gets less and less excusable each year :(

[1] Does anybody know how to ping Kartik Singh about the coroutines implementation in SBCL? Apparently, he made an experimental port of the green threads implementation from CMUCL, but I can't find it anywhere online, nor any obvious way to catch anyone involved. Is the mailing list the only way?

From what I heard he's not working on it anymore but the code can be found here:

https://github.com/kartik-s/sbcl/blob/coroutines/src%2Fcode%...

Thank you!! I was very interested in `convert-thread-to-coroutine` - I saw it on the ELS presentation, and when I went spelunking in the CMUCL codebase, I found the prototypes for `fork` and `resume`, but (probably because CMUCL is single-threaded?) nothing that would suggest how that `convert...` should look like.

Why is there so little interest in green threads/coroutines in CL community? cl-cont really isn't something to point to when asked about C10K problem... or yield/yield*... or async/await...

There's great interest for it, not little. The challenge is who can do compiler programming, add a production ready implementation as contrib SBCL package, and maintain it?