This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
MzScheme--so long! (Re: guile-vm-0.1)
- To: Keisuke Nishida <kxn30 at po dot cwru dot edu>
- Subject: MzScheme--so long! (Re: guile-vm-0.1)
- From: Mikael Djurfeldt <mdj at mdj dot nada dot kth dot se>
- Date: 15 Aug 2000 05:20:49 +0200
- Cc: guile at sourceware dot cygnus dot com
- Cc: djurfeldt at nada dot kth dot se
- References: <m3lmy2wsbh.fsf@indy.STUDENT.CWRU.Edu><xy7wvhjmfmk.fsf@mdj.nada.kth.se>
- Reply-To: djurfeldt at nada dot kth dot se
Mikael Djurfeldt <mdj@mdj.nada.kth.se> writes:
> (define (foo n p)
> (cond ((zero? n) p)
> ((null? p) (foo (- n 1) (cons p p)))
> (else (foo (- n 1) (car p)))))
>
> Your vm evaluates (foo 10000000 '()) in 31 s.
>
> The normal Guile evaluator does it in 53 s,
> MzScheme in 25 s
> and QScheme in 11 s.
With the patch below which
1. Makes a small fix in the Makefile.am in the vm directory.
2. Fixes the calls to `eval' so that they now pass a second arg
(required by current CVS Guile) but keeps the same semantics as
before (by using (interaction-environment)).
3. Adds the new VM instruction `null?'.
your VM runs the benchmark above in 18 s!
I believe we have just beaten MzScheme. :)