[Comment removed by author]
I am tempted to port it to racket, to be quite honest. But, guile is probably more appropriate.
What are the differences between these languages that would matter here?
Porting to guile wouldn’t allow it to run in Racket, or vis a versa, for instance, as there is a lot of C in scsh, and the FFIs are different.
Though, I wonder how far you can get by porting only the scheme code, and using the implementation, e.g., racket, provided libraries that scsh needs.
But, even with that, Guile and racket are different enough that reusing it wouldn’t be trivial…
There’s two kinds of ports. A “guile-ish” port, and a “faithful” port. I’m more interested in the faithful port, a guile-ish port is in progress already on github.
Care to expand on your meaning? It would be fun to have the link too.
My meaning is basically: scsh realistically has two modes, interactive and non-interactive. The interactive use case really wants a faithful port of scsh. So tty support, good CLI (possibly adding in even auto-complete) etc. The non-interactive use case doesn’t need that full of a port, thus there are several efforts that bring in things like the (run) syntax or SRE, but not much else.
There’s a guile-ish port: https://github.com/ChaosEternal/guile-scsh
And I’m personally working on a faithful port, but on the order of 1 hour / week. so.. that’s not happening any time soon. The most important thing is probably to use ashinn’s wonderful irregex library so you don’t depend on implementation’s SRE. Ideally a really nice scsh implementation would actually build with multiple scheme implementations.
Go plus little languages make a great combination. This looks like a great combination, and an interesting shell.
Wow this is pretty cool!
But hey i like my parens :P
I, too, am missing parens for the scripting. However, I think I’m OK with out them for pure interactive shell…
If we had parinfer and structure editing in the shell it would be fine I think.