This is the mail archive of the
guile@cygnus.com
mailing list for the Guile project.
Re: Is guile byte-code compiled?
Mikael Djurfeldt <mdj@nada.kth.se> writes:
> Michael Vanier <mvanier@bbb.caltech.edu> writes:
> > As you point out, thought BC isn't a panacea, and I'd like to
> > understand more about the tradeoffs.
>
> Since Guile is supposed to be an application scripting language you
> don't want it to be too large. If you use BC, you need both a BC
> compiler and a BC interpreter, which increases the size of the
> system. (Look at Scheme48 or RScheme. They are really huge compared
> to Guile.)
From the size aspect you are right:
-rw-r--r-- 1 root root 2239776 Jan 25 1998 system.img
-rw-r--r-- 1 root root 1195624 Jan 30 20:16 scheme48.image
-rwxr-xr-x 1 root root 455676 Apr 4 19:44 libguile.so.4.0.0*
But from the speed aspect.. hmm.. Somewhere in guile's internals
is some slowdown.
Solving the Queens problem using a R5RS-compliant implementation
of amb takes 3 seconds in Scheme48 to run. In guile, it takes 33
seconds. (both times measured on the second run to get "lazy
evaluation" etc)
So, there's alot of speedup to get in the evaluator...
But, to get some good stuff on guile - the number subsystem is
really fast.
On a totally unrelated note:
<0>forcer@forcix[2]:~$ guile -c '(write match:count)'
ERROR: While evaluating arguments to write in expression
(write match:count):
ERROR: Unbound variable: match:count
<2>forcer@forcix[2]:~$ guile
guile> (write match:count)
#<procedure match:count (match)>
(yes i know that i have to (use-modules (ice-9 regex)) but
shouldn't guile express the same behaviour wether it's evaluating
a -s file, a -c expression, or simple input?)
-forcer
--
((email . "forcer@mindless.com") (www . "http://forcix.cx/")
(irc . "forcer@#StarWars (IRCnet)") (gpg . "/other/forcer.gpg"))