mit-scheme-devel
[Top][All Lists]
Advanced

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

[MIT-Scheme-devel] changes to primitive definitions


From: Taylor R Campbell
Subject: [MIT-Scheme-devel] changes to primitive definitions
Date: Sat, 5 Sep 2009 18:14:22 -0400
User-agent: IMAIL/1.21; Edwin/3.116; MIT-Scheme/7.7.90.+

You changed DEFINE-PRIMITIVES and a number of primitive definitions in
the run-time system to eta-reduce them.  I presume that this makes the
system run faster on your C# interpreter, but conversely, Chris had
made the opposite change about a year ago in order to make the system
run faster when compiled, because if the primitive is open-coded, as
most of them are, then the compiled procedure is much faster to call
from compiled code than the primitive procedure.  While I appreciate
that you'd like the system to run faster on your C# interpreter, I
suspect that even with the eta-reduced primitives, it's much slower
than compiled code, so personally I think I'd prefer the eta-expanded
definitions.

There's also a separate issue of which form is more documentative.  By
eta-reducing the definitions, M-A in Edwin will generally show the
primitive's documentation, including its parameter list as described
in the microcode -- if the primitive's microcode definition was
written with a documentation string.  Eta-expanding the definitions
with generated names makes M-A a little less useful for case when
documentation was available, but maybe we could make DEFINE-PRIMITIVES
generate parameter lists from the primitives' documentation strings if
available.  On the other hand, using DEFINE-PRIMITIVES at all makes
life hard for grep and tags, silly as those may be.




reply via email to

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