Christopher R. Barry <firstname.lastname@example.org> wrote:
| email@example.com (Rob Warnock) writes:
| > though, I still think it [SIOD] has its uses...
| When would it be a better choice than Guile, or a more complete
I think that's up to the user, and also very much depends on the
application & environment. One of SIOD's *really* nice features is
how small and fast-starting it is. Here are some (admittedly very
old) results of running a trivial task in several flavors of Scheme
[except the first, which is just /bin/sh]. Each number is the lowest
time repeatably seen in a number of runs.
Total start-up & run time for a trivial task
in Scheme: (display "hello, world!")(newline)
XXX time notes
=== ==== =====
sh 0.02 Used /bin/sh's builtin "echo"
siod 0.05 Not R4RS, so no "display"; used "print".
gsi 0.15 Very first run took 0.68 sec [1.8 MB executable?]
But as soon as you so something more complicated, SIOD's simple
interpreter starts to fall behind other implementations which do
some sort of preprocessing (compiling or "half-compiling") or
shallow binding of lexicals, etc..
So for classic HTTP cgi-bin scripts [for which the SIOD distribution
includes various bits of sample code] where startup time of a new Unix
process is important, SIOD still has a place, IMHO. For most other
applications, use a "real" Scheme. (My current favorite is MzScheme,
Rob Warnock, 8L-846 firstname.lastname@example.org
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. FAX: 650-933-0511
Mountain View, CA 94043 PP-ASEL-IA