guile-devel
[Top][All Lists]
Advanced

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

Re: Reviving Guile-VM


From: Ludovic Courtès
Subject: Re: Reviving Guile-VM
Date: Thu, 28 Apr 2005 09:53:04 +0200
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Hi,

address@hidden (Ludovic Courtès) writes:

> I've started trying to revive Guile-VM which was written by Keisuke
> Nishida 5 years ago [1] and was unfortunately never finished nor
> adopted.

I did not mention precisely what Guile-VM is and not everyone heard
about it before.  So here we go.

Guile-VM consists of a virtual machine, a compiler, and an assembler.
The VM itself is described in the doc as follows:

  A Guile VM has a set of registers and its own stack memory.  Guile may
  have more than one VM's.  Each VM may execute at most one program at a
  time.  Guile VM is a CISC system so designed as to execute Scheme and
  other languages efficiently.

So it's basically a CISC-like machine architecture.  The compiler can
compile Guile Scheme code into "assembly code" that uses the VM's
instruction set.  This instruction set is purposefully not too close to
Scheme, and not too close either to the underlying processor instruction
set.

Guile-VM's assembler takes a sequence of instructions and produces
bytecode which may be quickly loaded and (hopefully) interpreted by the
VM.  Other Free Scheme implementations, such as STklos [1], include an
ad hoc virtual machine.  Interpreting bytecode is usually significantly
faster than interpreting source code.  Yet, it is still potentially much
slower than equivalent code compiled to the machine's native code (as
with MIT/GNU Scheme [2]).  There were discussions about how well
Guile-VM would perform compared to an interpreter, as in [3].

Guile-VM has been dormant in the CVS repo [4] for...  4 years.  :-)

Ludovic.

[1] http://stklos.net
[2] http://www.gnu.org/software/mit-scheme/
[3] http://sources.redhat.com/ml/guile/2000-07/msg00421.html
[4] http://www.gnu.org/software/guile/anon-cvs.html




reply via email to

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