This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
Re: guile-vm-0.1
- To: Keisuke Nishida <kxn30 at po dot cwru dot edu>
- Subject: Re: guile-vm-0.1
- From: Mikael Djurfeldt <mdj at mdj dot nada dot kth dot se>
- Date: 15 Aug 2000 04:18:11 +0200
- Cc: guile at sourceware dot cygnus dot com
- Cc: djurfeldt at nada dot kth dot se
- References: <m3lmy2wsbh.fsf@indy.STUDENT.CWRU.Edu>
- Reply-To: djurfeldt at nada dot kth dot se
Keisuke Nishida <kxn30@po.cwru.edu> writes:
> Anyway, this is the current snapshot of my VM, just for those who
> want to read the source:
>
> http://home.cwru.edu/~kxn30/guile-vm-0.1.tar.gz
> (If you installed guile-vm-0.0, please remove the old directory
> (i.e., /usr/local/share/guile/vm) before installation.)
>
> It uses the option 3 (not completed) and is somehow working (but buggy):
I've had a quick look at your vm now and am very impressed
I like your code. It's really good quality.
I'm very happy that you are working on this.
Thanks!
I tested it with a small benchmark function which is slightly more
similar to a real program than the usual empty loop:
(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.
But QScheme fails to do many checks (it's for example possible to
evaluate (foo 10000000)), and when you implement option 1 I guess your
vm will be faster.
Best regards,
Happy Mikael 8-)