4 ms·
Nice article, I learned a couple tricks. A first gotcha: > you could just replace it with… #!/usr/bin/sbcl –load /home/youruser/.sbclrc –script this doesn't
by vindarel 2y ago
Nice article, I learned a couple tricks.
A first gotcha:
> you could just replace it with… #!/usr/bin/sbcl –load /home/youruser/.sbclrc –script
this doesn't work, since a shebang only accepts one argument.
---
There are 2 main caveats to the described approach: starting SBCL like this from sources and not from a binary takes a little time. And you don’t have batteries included. Want a HTTP client, a CSV parser? You have to quickload them and this adds up in the startup time.
We can rely on long-running images in the editor and run stuff from there, bypassing the terminal altogether, or build binaries, or try other approaches (Lish shell, a lisp server https://notabug.org/quasus/lserver/ https://notabug.org/quasus/lserver/)
But that’s why I started CIEL, CL with batteries included. You can get a binary and run scripts that start fast and can do common tasks. It’s also a superset of useful libraries that you can quickload or use with a core image (for a fast startup in your editor).
https://github.com/ciel-lang/CIEL/ https://github.com/ciel-lang/CIEL/
http://ciel-lang.org/ http://ciel-lang.org/
It’s in beta, polishing phase.
- latexr 2y ago> a shebang only accepts one argument. I don’t think that’s right. I regularly use `#!/usr/bin/osascript -l JavaScript` as a shebang on macOS and it works as expected. It’s also good practice to use `/bin/zsh --no-rcs` so the script does not load `~/.zshenv`.
- phlakaton 2y agoPerhaps this is because osascript can handle '-l JavaScript' as a single arg? The single-arg limitation is a well-known "feature" (ha) of UNIX shebangs.
- Xophmeister 2y agoIt's true on Linux.
- bananskalhalk 2y agoIt isn't defined in posix. Some bsd:s did split but doesn't anymore, other (which?) does still split. macOS does, linux doesn't. Sun probably did.