This is the mail archive of the guile@sources.redhat.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: debug evaluator is faster than regular one?


Keisuke Nishida <kxn30@po.cwru.edu> writes:

> Mikael Djurfeldt <mdj@mdj.nada.kth.se> writes:
> 
> > >   % guile
> > >   guile> (time (do ((n 1000000 (1- n))) ((< n 0))))
> > >   clock utime stime cutime cstime gc
> > >   8.64  8.5   0.14  0      0      6.5
> > 
> > You're running the debug evaluator here as well.
> 
> Do you mean the interactive session always uses the debugging evaluator?

Yes.  By default it does.

> > Have you studied the technology used in QScheme before starting work
> > on your own VM?
> 
> Yes, I looked at their VM.  I originally tried to port it to Guile,
> but I found that writing it from scratch is easier for me, and I
> thought I could write better code.  Is there any problem with looking
> at their code?

No, not at all.  I just wanted to make sure that you were making use
of that information, so that we can build on top of the experiences
from QScheme.  :-)

> The basic idea is the same.  I use GCC's `&&' operator to get labels'
> addresses and execute "goto *pc;" to run VM's instructions.  The
> instructions are defined like this:

I'll look more closely at this later--have to run now.  This is so
interesting!

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]