axiom-developer
[Top][All Lists]
Advanced

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

RE: [Axiom-developer] sbcl and Axiom


From: Weiss, Juergen
Subject: RE: [Axiom-developer] sbcl and Axiom
Date: Wed, 26 Jul 2006 10:28:52 +0200

The SPAD parser is actually able to translate boot to lisp. So
you do not need the bootsys image. You can build the depsys
image immediately (as Bill noted you need a few pretranslated
files from the interpreter directory).  

The quoted function stuff refers to the usage of for example
map('car, ....) in the sources (lisp and boot). I had to  
change it to map(function car, .. ) in boot and map(#'car .. ) in
lisp. Not a big deal but distributed all over the sources.
This change should be made for gcl as well. 

Regards

Juergen Weiss

Juergen Weiss     | Universitaet Mainz, Zentrum fuer Datenverarbeitung,
address@hidden| 55099 Mainz, Tel: +49(6131)39-26361, FAX:
+49(6131)39-26407
 

> -----Original Message-----
> From: address@hidden 
> [mailto:address@hidden
>  On Behalf Of Page, Bill
> Sent: Wednesday, July 26, 2006 7:36 AM
> To: C Y
> Cc: address@hidden
> Subject: RE: [Axiom-developer] sbcl and Axiom
> 
> On Tuesday, July 25, 2006 9:31 PM C Y wrote:
> > ... 
> > The axiom_cmu.tgz archive does not contain the boot directory.
> 
> I have to admit that I had not previously looked deeply at the
> axiom_cmu build but it seems to me that it is based on a different
> version of boot then the one built by the standard distribution
> of Axiom (i.e. Tim's). Although I do see '#+:tpd' in the util.lisp
> file...
> 
> Apparently in axiom_cmu boot is compiled as part of the
> /interp/Makefile. See especially the clisp "bootstrap boot files"
> in the inter/lisp subdirectory. These are similar to but different
> from the clisp boot bootstrap files embedded in the *.pamphlet
> files in the boot directory of the standard distribution. If
> you look for 'BOOTTOCL' for example you will see that it is
> implemented in ptyout.boot.pamphlet in the standard distribution
> but in interp/util.lisp in the axiom_cmu version.
> 
> I do believe that there was an "old" and a "new" boot compiler
> so it could be that axiom_cmu is using an older version.
> 
> I suppose that only Tim Daly and/or Juergen Weiss will be able
> to sort all this out for us... :(
> 
> > Also, when trying to load src-pkg.lisp, there appear to be
> > exports which are in conflict with definitions made in the boot
> > files - I'm not completely sure about that but some of the
> > errors make me wonder.
> > 
> > > No the boot directory is not redundant.
> > > 
> > > Yes you need to compile boot first before you can compile
> > > anything from interp.
> > 
> > There is however a second option - take the intermediate lisp files
> > produced in the current "normal" build, and build those directly
> > without first generating them from the boot files.  I was reluctant
> > to do that until Axiom formally makes the switch, but the boot
> > translator appears to do a few non-ANSI things and it will take
> > some digging to change that.
> 
> I think there are some changes in the axiom_cmu source specifically
> for this. In
> 
> http://lists.nongnu.org/archive/html/axiom-developer/2005-11/m
sg00373.ht
> ml
> 
> Juergen Weiss wrote:
> 
> > ... there is the quoted function stuff and some minor
> > changes (a few macros and one or two places in the algebra
> > code) for string-char, both of which I already have taken care
> > of in my cmucl port 2 years ago.
> 
> So I guess you should look specifically for the ':cmu' specific
> code in vmlisp.lisp (i.e. macros). A diff between int/interp/
> vmlisp.lisp file from the standard distribution and this file
> shows a lot of cmu specific changes (including changing :cmulisp
> to :cmu). There are other changes but in some cases it is rather
> hard to tell if these are applicable or regressions due to a
> differences in the base version of vmlisp.lisp.
> 
> Maybe
> 
> +#+:cmu
> +(defmacro define-function (f v)
> +  `(eval-when (eval load compile)
> +     (setf (symbol-function ,f) ,v)
> +     #+(or :akcl :cmu)
> +     (define-compiler-macro ,(cadr f) (&rest args)
> +         `(,',(cadr v) ,@args))
> +   ))
> 
> is the "quoted function stuff" referred to by Weiss?
> 
> Anyway, such is the difficulty that is cut out for you in this
> task... :) I hope you can attract the help of others more
> knowledgeable.
> 
> > I can load the boot-strap lisp files in boot (after some
> > tweaking) but I have not as yet attempted to repeat the cycle
> > by loading the clisp files produced from that process.  For
> > that cycle to work automatically, changes at the boot->lisp
> > level are necessary.
> 
> Could you give some examples of the "tweaking"?
> 
> > 
> > > No the interp directory code does not contain all of the
> > > functionality of boot (nor any of the functionality of boot
> > > for that matter).
> > 
> > Hmm.  OK :-).
> > 
> > > No what you have been doing so far is not a waste of time.
> > > However, I think you should be using the make process as
> > > defined in the current Axiom makefiles first before trying
> > > to change things in a radical manner.
> > 
> > Since I'm not familiar with make as a tool, I'm trying to keep
> > everything as much as possible in lisp.
> 
> Good luck! make is fundamental to almost all open source (with
> some lisp code and some python code as the only exceptions that
> I know about). I really recommend taking a look at the gnu make
> documentation.
> 
> > Theoretically the build order is the key point, at least once
> > I figure out the technical reason for using multiple images.
> > Also, once the changes needed to run in sbcl are made, those
> > pamphlet files should just plug right into the make process.
> 
> Could you explain a little more about how you see this working?
> It seems to me that more than build order is important.
> 
> > During development though, I find asdf a bit more convenient
> > for lisp loading - I can easily load, for example, the boot
> > subsystem defined in the boot dir without the rest of the
> > compile proceeding, then incrementally attempt loading each
> > file from the next step. 
> 
> I suppose it is possible to integrate asdf into parts of the
> current build process. You will end up using both make and
> asdf.
> 
> > (Currently I'm a bit stalled on interp/sys-pkg.lisp - VMLISP
> > and BOOT exports appear to be causing a bit of confusion,
> > although it may be I haven't sorted out what's really going
> > on yet.)
> 
> Are you trying to build interp starting with the boot image?
> I think that is not the way the current build works. Even the
> axiom_cmu Makefile builds two separate images (depsys and
> interpsys).
> 
> > I'm using both the Makefiles and debugsys.lisp for file orders,
> > so they're definitely playing a role, and the files themselves
> > should just plug back into their old spots, once they're working.
> > 
> 
> We are here to try to help ... :)
> 
> Regards,
> Bill Page.
> 
> 
> _______________________________________________
> Axiom-developer mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/axiom-developer
> 




reply via email to

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