[Top][All Lists]

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

Re: [Axiom-developer] vmlisp

From: Waldek Hebisch
Subject: Re: [Axiom-developer] vmlisp
Date: Sun, 13 May 2007 17:05:09 +0200 (CEST)

>   I understand the historical need for vmlisp.lisp -- which has now
> grown out of its original purpose.
>   In 2007 where we are working towards ANSI Lisp based, is there a
> fundamental reason why we should still have the package VMLISP
> separate from the BOOT package?
>   More specifically, I would like to move most of the content of
> VMLISP into BOOT, and minimize the size of the current web.  

I think that Lisp code in Axiom needs substantial cleanup.  There
is a lot of duplication (even more than in .boot files).  It is
likely that 50% or more of Lisp code is unused or duplicated.
OTOH packages are main Lisp tool to organize code and we should
make better use of them.  From my point of view just moving
symbols from VMLISP into BOOT gains us nothing -- intead of two
closely tied piles of code we get one pile which is as closly
tied as before.

I would like to see Lisp code reorganized along the following lines:

1) Portability wrappers and general purpose utilities.  This should
   abstract away most differences between Lisp implementations.
   File access and image dumping are prime examples of thing needed
   there.  This should be a file (possibly multiple files) in 
   src/lisp subdirectory and should be loaded into very first image
   that we dump (so that we can use the exported functionality
   during the whole build).  I think that this code deserves it
   own package (possibly multiple packages).
  I noticed that you load inital-env.lisp from src/boot into the
  first image.  I do not think it is a goog idea: inital-env.lisp
  contains a lot of Shoe specific code and misses many functions
  that are needed later (some of them could benefit Shoe).

2) Axiom virtual machine: Lisp code needed to support output of
   Spad compiler.  This part should depend weakly on host Lisp.
   Large parts of macros.lisp and vmlisp.lisp should go there.

3) Part of "normal" code which are written in Lisp, those should
   live in src/interp and src/boot as apropriate.

I planned to start implementing part 1, but I have noticed that
you are doing similar but different things in build-improvements.

I should say stress one point here: simultaneously with moving
code around or implementing new functionality we should remove
old code.

                              Waldek Hebisch

reply via email to

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