gcl-devel
[Top][All Lists]
Advanced

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

Re: [Gcl-devel] Re: [Axiom-developer] New design for Axiom web site


From: Camm Maguire
Subject: Re: [Gcl-devel] Re: [Axiom-developer] New design for Axiom web site
Date: 30 Sep 2003 10:39:54 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings, and good to hear of everyone's work!

May I please suggest that we collectively move toward an axiom build
with an externally installed GCL?  To my knowledge, all of Tim's
patches are in 2.6.1 and higher but two (compiler noise and banner
removal), and I'd like to put in functionality to address these latter
two shortly (separate post forthcoming).  Mark, my intention is to
also merge in your BSD patches as well -- hopefully I'll find time to
get to it today.  I just feel it will be much harder to support GCL
with miscellaneous patches scattered about, not to mention that if the
patch author every should become unavailable, their effective
contribution to GCL may get lost.  Of course, this is lisp, and the
user can and should feel free to redefine/shadow whatever lisp
functions they desire and save local images.  The core files needed to
build GCL from C are my primary concern here.  I feel they should
follow the model which works well in the C world, namely read-only
code accessible through a well defined API.  It would be some world if
people patched gcc for each software project :-).

Mark, you might want to take a look at the way Debian does this as
outlined in the debian/rules file of the Debian package.  You can
likely follow the smaller 'patch.nosave' route if your platforms are
confined to amd64,i386,sparc,s390,arm,m68k,ppc.  Tim, would it be
possible to put in some configure like option to the build which could
select the GCL's alternate image creation mechanism as I've outlined
in an earlier email?  That way the Debian package can dispense with
all patches.

To refresh our memory, here is the patch application code from
debian/rules:

=============================================================================
ARCHT:=$(shell dpkg --print-architecture)
ifeq ($(ARCHT),ia64)
NO_SAVE_SYS:=t
endif
ifeq ($(ARCHT),mips)
NO_SAVE_SYS:=t
endif
ifeq ($(ARCHT),mipsel)
NO_SAVE_SYS:=t
endif
ifeq ($(ARCHT),hppa)
NO_SAVE_SYS:=t
endif
ifeq ($(ARCHT),alpha)
NO_SAVE_SYS:=t
endif

ifeq ($(ARCHT),powerpc)
NO_STRIP:=--exclude=axiom
endif

debian/patches_applied: 
        ! [ -e debian/patches_unapplied ] || patch -p0 <debian/patch.all
        ! [ -e debian/patches_unapplied ] || [ "$(NO_SAVE_SYS)" = "" ] || patch 
-p0 <debian/patch.save
        ! [ -e debian/patches_unapplied ] || [ "$(NO_SAVE_SYS)" != "" ] || 
patch -p0 <debian/patch.nosave
        rm -f debian/patches_unapplied
        touch $@

=============================================================================

and here are the small patch files:

=============================================================================
patch.all
=============================================================================
--- lsp/Makefile.pamphlet       31 Aug 2003 03:00:46 -0000      1.2
+++ lsp/Makefile.pamphlet       13 Sep 2003 18:59:40 -0000
@@ -152,17 +152,7 @@
        @echo 1 building ${LSP} ${GCLVERSION}
 
 gcldir: 
-       @echo 2 building ${GCLVERSION}
-       @tar -zxf ${ZIPS}/${GCLVERSION}.tgz
-<<gcl-2.5.2.socket.patch>>
-<<gcl-2.5.2.fortran.patch>>
-<<gcl-2.5.2.libspad.patch>>
-<<gcl-2.5.2.toploop.patch>>
-<<gcl-2.5.2.objecttofloat.patch>>
-<<gcl-2.5.2.in-package.patch>>
-<<gcl-2.5.2.exit.patch>>
-<<gcl-2.5.2.tail-recursive.patch>>
-<<gclConfigureMake>>
+       echo "(compiler::link nil \"${OUT}/lisp\" \"(setq 
compiler::*default-system-p* t)\" \"${OBJ}/${SYS}/lib/cfuns-c.o 
${OBJ}/${SYS}/lib/sockio-c.o ${OBJ}/${SYS}/lib/libspad.a\")" | gcl
        @echo 13 finished system build on `date` | tee >gcldir
 
 ccldir: ${LSP}/ccl/Makefile
--- src/interp/util.lisp.pamphlet       28 Aug 2003 14:23:40 -0000      1.1
+++ src/interp/util.lisp.pamphlet       13 Sep 2003 18:59:49 -0000
@@ -68,10 +68,14 @@
   ;; perform system initializations for building a starter system
   (init-memory-config)
   #+:AKCL
-  (let ((collectfn (concatenate 'string (string lsp) "/cmpnew/collectfn")))
-   (unless (probe-file (concatenate 'string collectfn ".o"))
-     (compile-file collectfn))
-   (load collectfn)
+  (let ((collectfn (concatenate 'string si::*system-directory* 
"../cmpnew/gcl_collectfn.lsp"))
+       (collectfn1 (concatenate 'string obj "/" sys "/interp/collectfn")))
+   (with-open-file (st collectfn :direction :input)
+      (with-open-file (st1 (concatenate 'string collectfn1 ".lsp") :direction 
:output)
+       (si::copy-stream st st1)))
+   (unless (probe-file (concatenate 'string collectfn1 ".o"))
+     (compile-file collectfn1))
+   (load collectfn1)
    (compiler::emit-fn t)
    (mapcar
      #'load
=============================================================================
patch.save
=============================================================================
--- src/boot/Makefile.pamphlet  28 Aug 2003 12:15:28 -0000      1.1
+++ src/boot/Makefile.pamphlet  13 Sep 2003 18:59:46 -0000
@@ -1101,7 +1101,8 @@
 expansion. Adding a single quote symbol will break this expansion.
 
 <<environment>>= 
-CMD0=  (progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) 
(system::save-system "${SAVESYS}"))
+CMD0=   (compiler::link (quote (${OBJS1})) "${SAVESYS}" "(setq 
compiler::*default-system-p* t)")
+#CMD0= (progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) 
(system::save-system "${SAVESYS}"))
  
 @
 \subsection{boothdr.lisp \cite{1}}
--- src/interp/Makefile.pamphlet        5 Sep 2003 22:14:19 -0000       1.3
+++ src/interp/Makefile.pamphlet        13 Sep 2003 18:59:49 -0000
@@ -558,8 +558,10 @@
        @ echo '(load "${OUT}/c-util")' >> ${OUT}/makedep.lisp
        @ echo '(unless (probe-file "${OUT}/g-util.${O}") (compile-file 
"${OUT}/g-util.${LISP}" :output-file "${OUT}/g-util.${O}"))' >> 
${OUT}/makedep.lisp
        @ echo '(load "${OUT}/g-util")' >> ${OUT}/makedep.lisp
-       @ (cd ${MNT}/${SYS}/bin ; \
-          echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' 
| ${LISPSYS})
+#      @ (cd ${MNT}/${SYS}/bin ; \
+#         echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' 
| ${LISPSYS})
+       @ ( cd ${OBJ}/${SYS}/bin && \
+               echo '(setq si::*collect-binary-modules* t)(load 
"${OUT}/makedep.lisp")(compiler::link (remove-duplicates si::*binary-modules* 
:test (quote equal)) "$(DEPSYS)" "(setq si::*collect-binary-modules* t)(load 
\"$(OUT)/makedep.lisp\")(gbc t)(when si::*binary-modules* (error 
si::*binary-modules*))(setq si::collect-binary-modules* nil 
si::*binary-modules* nil)(gbc t)(setq compiler::*default-system-p* t)" "" nil)' 
| ${LISPSYS})
        @ echo 4 ${DEPSYS} created
 
 @
@@ -611,8 +613,10 @@
        @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> 
${OUT}/makeint.lisp
        @ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
        @ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> 
${OUT}/makeint.lisp
-       @ (cd ${OBJ}/${SYS}/bin ; \
-         echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) 
(user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+#      @ (cd ${OBJ}/${SYS}/bin ; \
+#        echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) 
(user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+       @ (cd ${MNT}/${SYS}/bin && \
+         echo '(setq si::*collect-binary-modules* t)(setq x 
si::*system-directory*)(load "${OUT}/makeint.lisp")(setq si::*system-directory* 
x)(compiler::link (remove-duplicates si::*binary-modules* :test (quote equal)) 
"$(SAVESYS)" "(setq si::*collect-binary-modules* t)(load 
\"$(OUT)/makeint.lisp\")(when si::*binary-modules* (error 
si::*binary-modules*)(setq si::collect-binary-modules* nil si::*binary-modules* 
nil)(setq compiler::*default-system-p* t)(gbc t))" 
"$(OBJ)/$(SYS)/lib/sockio-c.o $(OBJ)/$(SYS)/lib/cfuns-c.o 
$(OBJ)/$(SYS)/lib/libspad.a" nil)' | ${LISPSYS})
        @ echo 6 ${SAVESYS} created
        @ cp ${SAVESYS} ${AXIOMSYS}
        @ echo 6a ${AXIOMSYS} created
=============================================================================
patch.nosave
=============================================================================
--- src/interp/Makefile.pamphlet        5 Sep 2003 22:14:19 -0000       1.3
+++ src/interp/Makefile.pamphlet        13 Sep 2003 18:59:49 -0000
@@ -611,8 +613,10 @@
        @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> 
${OUT}/makeint.lisp
        @ echo '#+:akcl (si::gbc-time 0)' >> ${OUT}/makeint.lisp
        @ echo '#+:akcl (setq si::*system-directory* "${SPAD}/bin/")' >> 
${OUT}/makeint.lisp
-       @ (cd ${OBJ}/${SYS}/bin ; \
-         echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) 
(user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+#      @ (cd ${OBJ}/${SYS}/bin ; \
+#        echo '(progn (gbc t) (load "${OUT}/makeint.lisp") (gbc t) 
(user::spad-save "${SAVESYS}"))' | ${LISPSYS} )
+       @ (cd ${OBJ}/${SYS}/bin ; \
+         echo '(progn (gbc t) (setq x si::*system-directory*)(load 
"${OUT}/makeint.lisp") (setq si::*system-directory* x)(gbc t) (user::spad-save 
"${SAVESYS}"))' | ${LISPSYS} )
        @ echo 6 ${SAVESYS} created
        @ cp ${SAVESYS} ${AXIOMSYS}
        @ echo 6a ${AXIOMSYS} created
=============================================================================

Tim, if you'd like me to propose an axiom configure script, I'd be
happy to do so.

Take care,

Mark Murray <address@hidden> writes:

> root writes:
> > There are patches to noweb and GCL which are applied in the build process.
> 
> I saw those, and I'm trying to see how far I can get without them. Otherwise,
> if they look general purpose enough, I'd rather apply them to the FreeBSD
> ports of noweb and GCL. Make sense?
> 
> The latest build error is an inability to find vmlisp.o when building
> interpsys.
> 
> > I'll look for the make vs ${MAKE}. Mea Culpa.
> 
> Thanks! No problem.
> 
> > I'm happy to hear that it might build on FreeBSD. I have a BSD 4.8 port in
> > the queue of work to do but that won't happen anytime soon. It'll be great
> > if you do the "heavy lifting" :-)
> 
> Mostly done :-) (I hope!)
> 
> M
> --
> Mark Murray
> iumop ap!sdn w,I idlaH
> 
> 
> _______________________________________________
> Axiom-developer mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/axiom-developer
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

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