News for hackers. Stuff that matters.
Re:Why I haven't jumped ship from Common Lisp to Racket just... by aerique on Wednesday August 23, 2017 @04:27AM (#15079618)
You are correct, but why is this a problem in the case mentioned by the author?

    $ cat > hello-world.lisp
    (defun main () (format t "Hello, World!~%"))
    $ sbcl 
    * (load "hello-world.lisp")
    T
    * (save-lisp-and-die "hello-world" :toplevel #'main :executable t)
    [undoing binding stack and other enclosing state... done]
    [defragmenting immobile space... 1110+19908+28500+22601 objects... done]
    [saving current Lisp image into hello-world:
    writing 4816 bytes from the read-only space at 0x20000000
    writing 2320 bytes from the static space at 0x20100000
    writing 2383872 bytes from the immobile space at 0x20300000
    writing 15190112 bytes from the immobile space at 0x21b00000
    writing 39911424 bytes from the dynamic space at 0x1000000000
    done]
    $ ./hello-world 
    Hello, World!
    $ ls -lh hello-world
    -rwxr-xr-x 1 user user 56M Aug 23 10:23 hello-world
Re:Why I haven't jumped ship from Common Lisp to Racket just... by farray on Wednesday August 23, 2017 @07:01AM (#15080365)
Executing fasls is cool, but they will start from a new empty image, and loading fasls is actually kind of slow, so if you use lots of libraries rather than write a trivial example, that may consume hundreds of milliseconds before the program actually starts. Then again, this supposes you compiled everything into a single .fasl (which ASDF makes easy). But that will be a big fasl for each program; if you want to load from libraries, then there's also the overhead of setting up and using ASDF itself, which can also be in the hundreds of milliseconds. I can imagine many ways to improve the situation, but none are cheap (e.g. implement a background daemon to serve ready executables and/or watch the source registry for modified source; or break compatibility with the entire ASDF setup, angrying the entire community).
Re:Why I haven't jumped ship from Common Lisp to Racket just... by CaptObvious2 on Friday August 25, 2017 @01:17AM (#15096287)
It's still too big, too slow [compared to gerbil] and uses a lot more memory. Gambit GC is amazingly fast, and never tenures garbage to a gen where it will collect like SBCL tends to do on many workloads. [acl/ccl/lw do not have this issue, although they are slower than sbcl]
Re:Why I haven't jumped ship from Common Lisp to Racket just... by lottin on Wednesday August 23, 2017 @04:52AM (#15079729)
It's not necessarily a problem, but personally for small utilities I much prefer something that supports #!-style scripts, like Guile or Racket, or that can be compiled into small, efficient executables. Let's say it's a matter of personal preference.
Re:Why I haven't jumped ship from Common Lisp to Racket just... by farray on Wednesday August 23, 2017 @06:50AM (#15080290)
I wrote cl-launch so you can use #!/usr/bin/cl with lots of options and write scripts that are either portable or implementation-specific (and trivially switch from one implementation to the other).
Re:Why I haven't jumped ship from Common Lisp to Racket just... by juki on Wednesday August 23, 2017 @05:06AM (#15079781)
You can use CL for #!-scripts too. SBCL has a `--script` option for running scripts. You'll probably want to create a core with whatever libraries you need for scrips, so that the start-up time will be fast. The core will be big, but it can be shared for all scripts, so that's not much of a problem.
Re:Why I haven't jumped ship from Common Lisp to Racket just... by ebzzry on Friday August 25, 2017 @06:58AM (#15097548)
I wrote a short introduction to a more portable Common Lisp scripting system—made by Fare, himself—at https://ebzzry.io/en/script-lisp/
Re:Why I haven't jumped ship from Common Lisp to Racket just... by kazinator on Friday August 25, 2017 @10:21AM (#15098628)
If you do scripting and like Lisp, you definitely should take a look at TXR.

I wrote TXR to basically be the "acceptable {awk, perl, ruby, Python, ...}" for Lisp-minded people. Well, for me, that is; but anyone else too.