This is the mail archive of the
guile@sources.redhat.com
mailing list for the Guile project.
Re: guile-vm-0.2
- To: Keisuke Nishida <kxn30 at po dot cwru dot edu>
- Subject: Re: guile-vm-0.2
- From: Mikael Djurfeldt <mdj at mdj dot nada dot kth dot se>
- Date: 21 Aug 2000 04:00:56 +0200
- Cc: guile at sourceware dot cygnus dot com
- Cc: djurfeldt at nada dot kth dot se
- References: <m3wvhbcszu.fsf@indy.STUDENT.CWRU.Edu>
- Reply-To: djurfeldt at nada dot kth dot se
Keisuke Nishida <kxn30@po.cwru.edu> writes:
> I've implemented some fancy stuff like a command line compiler and
> a Scheme level tracer for my VM:
Great!
> Or could I commit the source code in the Guile's CVS repository?
If we knew now how to make the integration into Guile and how to mix
code from your VM and from QScheme's, then we could add a subdirectory
under guile-core.
But we don't know that yet, so I've created the dirctory `guile-vm'
for your vm. Just check out this module using
cvs -d :ext:kei@sourceware.cygnus.com checkout guile/guile-vm
fill it with files, and commit the usual way.
> Is there any good Scheme compiler written in Scheme that does a
> certain optimization at the Scheme level?
I'm not the best person to answer this question, because I haven't
looked carefully at currently existing Scheme compilers.
The best (in the sense of producing efficient code) compiler I'm aware
of is ftp://ftp.nj.nec.com/pub/qobi/stalin-0.8.tar.gz. (You'll find
the actual compiler in the file "stalin.sc".)
It's a pretty special compiler, though, in the sense that it does
static, whole program, type analysis, thereby managing to work with
native, unboxed data (just as is visioned with Ior, but achieved by a
different strategy).
I think Stalin does interesting things at the closure level, but it
might be difficult to understand the code.
A compiler that might be more accessible is Twobit by William Clinger.
Here's some design notes for Twobit that you might find interesting:
http://www.ccs.neu.edu/home/will/Twobit/ultimate.html
> I use the module (ice-9 syncase) for macro expansion. This is very
> convenient. It seems ice-9/psyntax.ss doesn't include the definition
> of `cond', although it has a definition of `case'. Could I add it?
I'd rather like to add that myself.
The current psyntax.ss is specially tailored for cooperation with the
current Guile evaluator.
I know that you have your own `cond' form. Are you asking this
because you want to replace that one with a macro provided by the
syntax case package? (I think this is a valid reason, I'm just
asking.)
Which other core syntax forms would you like to have support for?