David Steuber <david.steuber@verizon.net> wrote:
+---------------
| rpw3@rpw3.org (Rob Warnock) writes:
| > p.s. I'll be writing up the cute/ugly hack I used to make that
| > "#!/usr/local/bin/cmucl -script" business work...
|
| I would love to see this posted here.
+---------------
I will, I promise, "real soon now". ;-} ;-}
I'm just trying to get something [that uses it!]
out the door first.
+---------------
| It looks like a great way to pretend that Lisp is just another
| scripting language...
+---------------
As someone else pointed out, CLISP does it "out of the box" already,
so if you just want to start playing with "Lisp scripting" I'd say
go ahead and try CLISP. I use it myself for a few things.
In fact, I even have a few scripts with the following few lines in
the front: ;-}
#!/usr/local/bin/clisp
#!/usr/local/bin/cmucl -script
;;; This will work *whichever* of the above lines is first. --rpw3
(require :clx)
#+cmu (shadow 'define-keysym)
#+clisp (shadowing-import 'xlib:char-width)
(use-package :xlib)
...
+---------------
| Also, after the first startup of Lisp and its core file, the system
| will cache it. Lots of successive startups should reduce the overall
| startup overhead.
+---------------
Indeed it does, as I've shown with the microbenchmarks I mentioned
previously.
+---------------
| Perl also goes through the process of starting up Perl, compiling the
| Perl script, and then finally running it. With that nasty syntax,
| I'm surprised that the compiler is so fast.
+---------------
Well, even when "interpreting", CMUCL "minimally compiles" everything
to an intermediate representation, too, yet it seems fast enough for
a lot of "scripting" stuff. [Remember: A Lisp "script" can explicitly
compile selected functions within itself as it runs, so critical pieces
can run at full speed.]
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607