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: guile-vm-0.2


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?

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