[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] News from the Barnyard

From: Felix Winkelmann
Subject: Re: [Chicken-users] News from the Barnyard
Date: Fri, 13 Jun 2003 12:06:33 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.0) Gecko/20020530

Joerg F. Wittenberger wrote:

Anyway: rscheme uses (to my understanding) a register file (vector of
values) for parameters.  If I keep calling functions, which all have
the same signature and only modify a few of the parameters, the
rscheme compiler seems to feed mostly /* NOOP */ to C (except for the
modified parameters) - hardly beatable in runtime.  Chicken seems to
fill yet another stack frame.  Am I right?

Yes, right. Peter Keller had an interesting idea about "re-using" stack
frames (or better: using statically allocated ones), but this seems
to break the garbage collector... We have to look more into that.

Keep in mind: that's a wild guess.  There is also the fact that the
Scheme interpreter in rscheme apparently compiles into byte code,
which the one in Askemos does not.  I have no idea, which one would be
faster.  (Bytecompile effort doesn't really count, the Askemos caches
quite a few things, also calls to 'eval'.)

Yes, Chicken uses a "closure tree" for interpretation (as in that
paper by Feeley et. al) which is extremely elegant and quite simple
to implement. But a byte-compiler is still much faster, though.
Unfortunately, it's rather tricky to use normal direct-style
byte-compilation in a CPS environment (like Chicken's compiled
code representation) (I tried).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]