3 ms·
(While it seems that the project isn’t active) I’m interested not because of the Rust part but because of the more independent part, with plans to implement con
by goranmoomin 5y ago
(While it seems that the project isn’t active) I’m interested not because of the Rust part but because of the more independent part, with plans to implement conditions and restarts [0].
I’ve mentioned a few days ago [1] about the lack of a clean and consistent lisp (in the development sense, not in the core-language-is-tiny sense) with a CL-like REPL-driven development workflow: maybe Clojure with conditions and restarts can be part of the picture?
(In Common Lisp, restarts and conditions are a major part of the REPL as it allows the REPL to have a mechanism to catch error conditions and allows the user to resume execution appropriately, after the user debugs and fixes errors.)
[0]: https://lisper.in/restarts https://lisper.in/restarts
[1]: https://news.ycombinator.com/item?id=31179701 https://news.ycombinator.com/item?id=31179701
- capableweb 5y ago> I’ve mentioned a few days ago [1] about the lack of a clean and consistent lisp (in the development sense, not in the core-language-is-tiny sense) with a CL-like REPL-driven development workflow: maybe Clojure with conditions and restarts can be part of the picture? There seems to be some efforts of adding user-land conditions, see for example https://nextjournal.com/pangloss/a-tutorial-on-conditions-and-restarts-in-clojure?version=latest https://nextjournal.com/pangloss/a-tutorial-on-conditions-an... One could imagine another user-land REPL that also makes use of that, to give a similar REPL for Clojure as for Common Lisp.
- tko38 5y agoOh hey, yea this is mine. Stopped for a while initially because of serious epilepsy. Don't know when I'll pick it back up but in my free time I've been trying to think of what direction I want to take with it, because another goal not listed there (I think) is a Smalltalk-like development environment, but I almost wonder if I should just make that in vanilla Clojure. I do have a branch locally starting the implementation built upon some Rust graphics lib (iced or druid maybe)
- capableweb 5y agoNice to see you here, thanks for stopping by :) Really sad to hear about the epilepsy, hope it's going better now! Regarding picking it back up, would you have any interest in being funded by the community to work on the project? I know myself and others are very interested in seeing Clojure in Rust with interop, and would be interested in funding the effort if it's something you're interested in. Maybe you could leave some contact details on your about page here on HN (no one except HN mods/admins can see your email) and we could talk privately if you prefer that.
- tko38 5y agoNot sure, would have to discuss and think about it. I just put my email on my about page if that helps
- joshlemer 5y agoThanks for sharing! I think these restarts could definitely be implemented as a library in Clojure with the help of a coroutine library like https://github.com/leonoel/cloroutine#guides https://github.com/leonoel/cloroutine#guides
- didibus 5y agoSomeone added conditions/restarts to Clojure: https://github.com/IGJoshua/farolero https://github.com/IGJoshua/farolero It does allow errors to be caught by the Repl and choose how to handle them. Honestly though, I haven't found the interactive restarts at the REPL useful. It's way faster to just re-evaluate the code again. Maybe in CL they are more useful because the language is full of mutation? I can't say, I've only ever done Clojure and Emacs Lisp, but in Clojure I tried that library, and found picking options at the REPL to handle the condition was more laborious than just fixing whatever or adding a catch and pressing Ctrl+Enter again.