gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: Axiom uses unmodified GCL on Debian?


From: Camm Maguire
Subject: [Gcl-devel] Re: Axiom uses unmodified GCL on Debian?
Date: Wed, 14 Dec 2005 20:50:17 -0500
User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.3 (Unebigory ōmae) APEL/10.3 Emacs/21.2 (i386-debian-linux-gnu) MULE/5.0 (SAKAKI)

Greetings!

OK, for accuracy, here is the full patch I am using for
axiom_20050901-4.  This is debian/patch.merge in the Debian source
package.   It is far more complex than it looks, as it supports as
well the platforms on which native object relocation is not yet
implemented (2.6.x hppa ia64 mips alpha, 2.7.0 hppa ia64).  For the
ubiquitous x86, we just need the #+native-reloc code.

I'll be happy to try to explain this again as time permits, but for
now let me say that the purpose of

the first patch is to load gcl_collectfn, turn sgc on, and link in
cfuns-c.o, sock-io.o, and libspad.a,

the second and third patches is to avoid making the databases when
native object relocation is not available, and to use prebuilt copies
supplied under debian instead, as on such machines one cannot have
more than 1024 open file descriptors, which likewise bounds the number
of binary loads.

the fourth patch is to link $(OBJS1) into the image.  This might now
be made obsolete by the first patch, or vice versa.

the fifth and sixth patches are only to support machines without
native object relocation.  They use the same compiler::link mechanism
to link in all the compiled lisp objects which normally would be
achieved via a load and a si::save-system.  I'm hoping 2.7.0 will be
the end of this requirement.

Take care,
=============================================================================
--- ./lsp/Makefile.pamphlet.~1.5.~      2005-09-05 18:50:31.000000000 +0000
+++ ./lsp/Makefile.pamphlet     2005-09-20 21:20:10.000000000 +0000
@@ -1012,14 +1012,7 @@
        @echo 1 building ${LSP} ${GCLVERSION}
 
 gcldir: 
-       @echo 2 building ${GCLVERSION}
-       @tar -zxf ${ZIPS}/${GCLVERSION}.tgz
-<<gcl-2.6.7.socket.patch>>
-<<gcl-2.6.7.libspad.patch>>
-<<gcl-2.6.7.toploop.patch>>
-<<gcl-2.6.7.tail-recursive.patch>>
-<<gcl-2.6.7.collectfn.fix>>
-<<gclConfigureMake>>
+       echo '(compiler::link nil "${OUT}/lisp" (format nil "(progn (let 
((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn 
t))(when (fboundp (quote si::sgc-on)) (si::sgc-on t))#-native-reloc(setq 
compiler::*default-system-p* t))" si::*system-directory* (quote (list 
#+native-reloc".o" ".lsp"))) "${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/algebra/Lattice.pamphlet.orig 2005-01-04 23:45:59.000000000 +0000
+++ ./src/algebra/Lattice.pamphlet      2005-02-14 18:45:10.000000000 +0000
@@ -39620,13 +39620,14 @@
        @ cp -p ${SRC}/doc/gloss.text ${LIB}
        @ cp -p ${SRC}/doc/topics.data ${MID}
        @ echo rebuilding daase files
-       @ (cd ${MID} ; \
-          echo ')set out le 200' >/tmp/tmp.input ; \
-          echo ')fin' >>/tmp/tmp.input ; \
-          echo '(make-databases "" (QUOTE ("unix")))' >>/tmp/tmp.input ; \
-          echo '(bye)' >>/tmp/tmp.input ; \
-          cat /tmp/tmp.input | ${INTERPSYS} ; \
-          rm -f /tmp/tmp.input )
+       @ (cd ${MID} ; \
+          echo ')set out le 200' >/tmp/tmp.input ; \
+          echo ')fin' >>/tmp/tmp.input ; \
+          echo "#+native-reloc(make-databases \"\" (QUOTE 
(\"unix\")))#-native-reloc(system \"cp ${SRC}/../debian/*.daase ${MID}\")" 
>>/tmp/tmp.input ; \
+          echo '(bye)' >>/tmp/tmp.input ; \
+          cat /tmp/tmp.input | ${INTERPSYS} ; \
+          rm -f /tmp/tmp.input )
+#      @ (cp ${SRC}/../debian/*.daase ${MID})
        @ echo If all went well, go-ahead Mike and do a db-install as well !
 
 db-install:
@@ -39758,7 +39759,8 @@
        @ echo rebuilding databases...
        @ cp ${SRC}/doc/gloss.text ${MID}
        @ cp ${SRC}/doc/topics.data ${MID}
-       @ (cd ${MID} ; echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
+       @ (cd ${MID} ; echo ")lisp (progn #+native-reloc(make-databases \"\" 
nil)#-native-reloc(system \"cp ${SRC}/../debian/*.daase ${MID}\"))" | 
${INTERPSYS} )
+#      @ (cp ${SRC}/../debian/*.daase ${MID})
 
 check:
        @ echo Checking that INTERP.EXPOSED and NRLIBs are consistent
--- ./src/etc/Makefile.pamphlet.orig    2005-01-30 12:03:12.000000000 +0000
+++ ./src/etc/Makefile.pamphlet 2005-02-14 18:47:16.000000000 +0000
@@ -33,9 +33,10 @@
        @ cp ${SRC}/doc/gloss.text ${INT}/algebra
        @ cp ${SRC}/doc/topics.data ${INT}/algebra
        @ cp ${SRC}/doc/topics.data ${INT}/algebra
-       @ (cd ${INT}/algebra ; \
-           echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
-       @ cp ${INT}/algebra/*.daase ${MNT}/${SYS}/algebra
+       @ (cd ${INT}/algebra ; \
+           echo ")lisp (progn #+native-reloc(progn (make-databases \"\" 
nil)(system \"cp ${INT}/algebra/*.daase 
${MNT}/${SYS}/algebra\"))#-native-reloc(system \"cp ${SRC}/../debian/*.daase 
${MNT}/${SYS}/algebra\"))" | ${INTERPSYS} )
+#      @ cp ${INT}/algebra/*.daase ${MNT}/${SYS}/algebra
+#      @ (cp ${SRC}/../debian/*.daase ${MNT}/${SYS}/algebra)
 
 @
 \section{summary}
--- ./src/boot/Makefile.pamphlet.orig   2005-06-05 03:23:35.000000000 +0000
+++ ./src/boot/Makefile.pamphlet        2005-09-20 21:36:15.000000000 +0000
@@ -1173,7 +1173,8 @@
 
 Until this is fixed we need to continue to use the old scheme.
 <<environment>>= 
-CMD0=  (progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) 
(system::save-system "${SAVESYS}"))
+#CMD0= (progn (mapcar (function (lambda (x) (load  x))) (quote (${OBJS1}))) 
(system::save-system "${SAVESYS}"))
+CMD0=  (if (member :native-reloc *features*) (progn (mapcar (function (lambda 
(x) (load  x))) (quote (${OBJS1}))) (system::save-system "${SAVESYS}")) 
(compiler::link (quote (${OBJS1})) "${SAVESYS}" (format nil "(let ((*load-path* 
(cons ~S *load-path*))(si::*load-types* ~S)) (compiler::emit-fn t)) (when 
(fboundp (quote si::sgc-on)) (si::sgc-on t)) (setq compiler::*default-system-p* 
t)" si::*system-directory* (quote  (list ".lsp")))))
  
 @
 \subsection{boothdr.lisp \cite{1}}
--- ./src/interp/Makefile.pamphlet.orig 2005-09-20 21:48:56.000000000 +0000
+++ ./src/interp/Makefile.pamphlet      2005-09-20 21:49:14.000000000 +0000
@@ -576,7 +576,28 @@
 \begin{verbatim}
 <<save depsys image>>=
        @ (cd ${MNT}/${SYS}/bin ; \
-          echo '(progn (load "${OUT}/makedep.lisp") (spad-save "${DEPSYS}"))' 
| ${LISPSYS})
+          echo '#+native-reloc(progn (load "${OUT}/makedep.lisp") (spad-save 
"${DEPSYS}"))#-native-reloc(progn \
+                       (setq si::*collect-binary-modules* t) \
+                       (load "${OUT}/makedep.lisp") \
+                       (compiler::link \
+                               (remove-duplicates si::*binary-modules* :test 
(quote equal)) \
+                               "$(DEPSYS)" \
+                               (format nil "\
+                                       (setq si::*collect-binary-modules* t) \
+                                       (let ((si::*load-path* (cons ~S 
si::*load-path*))\
+                                            (si::*load-types* ~S))\
+                                               (compiler::emit-fn 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)\
+                                       (when (fboundp (quote si::sgc-on)) 
(si::sgc-on t))\
+                                       (setq compiler::*default-system-p* t)\
+                               " si::*system-directory* (quote (list ".lsp")))\
+                               "" \
+                               nil))' | ${LISPSYS})
 @
 \end{verbatim}
 
@@ -880,8 +901,36 @@
        @ 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} )
+         echo '#+native-reloc(progn (gbc t) (setq x 
si::*system-directory*)(load "${OUT}/makeint.lisp") (setq 
si::*system-directory* x) (unintern (quote x))(gbc t)(user::spad-save 
"${SAVESYS}"))#-native-reloc(progn \
+                       (setq si::*collect-binary-modules* t)\
+                       (setq x si::*system-directory*)\
+                       (load "${OUT}/makeint.lisp")\
+                       (setq si::*system-directory* x)\
+                       (unintern (quote x))\
+                       (compiler::link \
+                               (remove-duplicates si::*binary-modules* :test 
(quote equal))\
+                               "$(SAVESYS)" \
+                               (format nil "\
+                                       (let ((si::*load-path* (cons ~S 
si::*load-path*))\
+                                             (si::*load-types* ~S))\
+                                               (compiler::emit-fn t))\
+                                        (setq si::*collect-binary-modules* t)\
+                                        (setq x si::*system-directory*)\
+                                        (load \"$(OUT)/makeint.lisp\")\
+                                        (setq si::*system-directory* x)\
+                                        (unintern (quote x))\
+                                        (when si::*binary-modules* \
+                                               (error si::*binary-modules*))\
+                                       (setq si::collect-binary-modules* nil 
si::*binary-modules* nil)\
+                                       (gbc t)\
+                                       (when (fboundp (quote si::sgc-on)) 
(si::sgc-on t))\
+                                       (setq compiler::*default-system-p* t)\
+                               " si::*system-directory* (quote (list ".lsp")))\
+                       "$(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
=============================================================================


root <address@hidden> writes:

> > > also, how do we handle the fact that users can build gcl
> > > using the -ansi switch. that means that their local copy
> > > of gcl cannot be used by axiom (yet).
> > > 
> > 
> > The Debian prerequiste for Axiom is the non-ansi version of
> > gcl. If the non-ansi version is not installed on the system
> > then 'apt-get install axiom' will also install it.
> 
> true but not everyone uses debian. 
> how do we solve the redhat9 issue?
> 
> t
> 
> 
> 

-- 
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]