Hacker News new | past | comments | ask | show | jobs | submit login

I tried to write a Lisp application once. Couldn't figure out how to make something standalone that could be run from bash. Most of the websites and discussions I looked at around the issue suggested that one would be wrong for even wanting such a thing. Eventually did my project in python.

You could have read a manual (creating standalone applications is documented for each implementation) or asked other users.





and so on...

SBCL: "This implementation is not as polished and painless as you might like:

"It corrupts the current Lisp image enough that the current process needs to be killed afterwards. This can be worked around by forking another process that saves the core.

"There is absolutely no binary compatibility of core images between different runtime support programs. Even runtimes built from the same sources at different times are treated as incompatible for this purpose.

"This isn't because we like it this way, but just because there don't seem to be good quick fixes for either limitation and no one has been sufficiently motivated to do lengthy fixes."

CLISP: "Memory images are not portable across different platforms (in contrast with platform-independent #P".fas" files). They are not even portable across linking sets: image saved using the full linking set cannot be used with the base runtime:

    $ clisp -K full -x '(EXT:SAVEINITMEM)'
    $ clisp -K base -M lispinit.mem
base/lisp.run: initialization file `lispinit.mem' was not created by this version of CLISP runtime"

These are the sorts of perennial problems common to image-based languages, specifically those that use "undump"-ish methods to create executables.

That dumping an image lets one quit the image dumped, that images are bound to certain versions of the runtime, etc. are inconvenient for users of images. It is a non-issue for creating an executable.

Yes, I was able to find the SBCL one, but as I recall at the time it interacted badly with the FFI (uffi? Something like that? I don't remember the name), and it wasn't clear how to combine it with a build system like make. I'm sure it can be done, but it was inordinately difficult compared to, say, python, where creating standalone scripts is essentially the very first thing in the tutorial.

I'm confused by what you mean as "standalone." Do you mean that you created object code that allowed users without Python installed to run your script? Because if not, getting Clisp or another CL to run a script from the command line is almost as trivial as with Python.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact