axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] Re: Debian ports


From: Camm Maguire
Subject: [Axiom-developer] Re: Debian ports
Date: Wed, 13 Jan 2010 14:08:52 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Greetings!

Tim Daly <address@hidden> writes:

> Camm,
>
> Good to hear from you. Sorry for the delay. I was off at a conference all
> of last week.
>

No problem -- welcome back!

> 1) I've apparently fixed the issue with the non-native-reloc ports, at
> least temporarily, by loading bookvol5 in makeint.lisp as a .lsp the
> first time.  I provide more detail later if desired.
>
>
>
> 1) The bookvol5 file is eventually going to be the full interpreter. I am
> moving all of the code (slowly and carefully) into that file. At the moment
> only some of the macros have been moved. These macros need to be
> in the compile environment so bookvol5 has to be loaded to pick up the
> moved macros. This file also needs to be compiled and loaded later
> since there are some functions that are currently defined in other files.
>
> This is a temporary situation. I am "tree-shaking" the whole interpreter
> so that I only pick up functions that are actually used. I have thrown away
> piles of code that can never be referenced. There are still well over 100
> files to process so the tree-shaking will probably take the rest of
> the year.
> However, once the interpreter is isolated there will only be one literate
> file that contains everything.
>

OK, but for now, if we want ia64, mips, mipsel, alpha, and hppa ports
(which maybe we don't), I need to get the interpsys build to load all
binary modules just once.  As I said before, things apparently work by
changing the bookvol5 load at the top of makeint.lisp to a .lsp load
as far as this file goes.  But there is alas something else that is
loading (autoloading?) the following file three times:

Error: Binary module load error:
 /home/camm/axiom-20091101/mnt/linux/algebra/exposed.o

Can you help here?  Can I use the same trick to load the first two
instances in .lsp form?

The issue is that on these platforms, native object relocation is
currently absent.  In gcl cvs, mips, mipsel, and alpha relocation become
available, but this still leaves ia64 and hppa, so we need
compiler::link for full portability.  

The idea here is to run the init sequence keeping a list of all loaded
.o files (which use dlopen on these systems and do not persist across
save-system), link in these binaries with the system linker, ld, and
then rerun the init sequence in the produced executable redirecting
all load calls to the previously linked in .o files to a simple
initialization of their program data.  This is reported as
"Initializing" instead of "Loading".  

The problem is that these files can exist in only one instance at the
ld stage, and at the init stage.  (I suppose I could try something
really fancy to copy and rename the files on the fly to file1, file2,
etc. if I had to.  This is tough as the compiled in init function in
each object is named according to the file name at compile time --
these function names have to be unique too.)

> 2) I've just committed to the 2.6.8pre branch socket code which I hope
> will obviate the need for your recent read.d patch regarding
> read-char-no-hang.  I really think the current behavior is correct,
> though I could of course be overlooking something.  Newlines are read
> and returned.  The old implementation, among other things, returned
> 'eof for (read-char-no-hang *standard-input* nil 'eof)<Return>. 
>
> I think you are rolling your own socket code, but I've been testing
> briefly with this:
>
>
> I don't want my own socket code but I was unable to get the behavior I
> needed to
> implement using Axiom as a web server. I will pick up your latest
> release and do a
> build and test using it. I'm more than happy to use an unpatched lisp.
>

Great!

>>
>>
>> 3) I don't really know how to test or use )browse at the moment.  And
>> I have forgotten how to escape to the lisp propmt, (as opposed to one
>> command at a time )lisp)
>>   
>
> From the top level you can drop into lisp using ")fin" and you can
> return to Axiom
> from lisp using "(restart)" You can also do ")lisp (setq $dalymode t)"
> which will
> cause Axiom to interpret any expression that starts with an open-paren
> as lisp thus:
>
>  )lisp (setq $dalymode t)
>  (+ 1 1) => 2
>
>
>
> From the top level you type ")browse" and Axiom will now function as a
> web server on
> the port (8085). At the moment you need to give a full path to the
> root page thus:
>
> http://127.0.0.1:8085/home/axiom/mnt/ubuntu/doc/hypertex/rootpage.xhtml
>
> Try Topics -> Numbers -> Integers -> x:=factorial(200) as an example.
> You should see the result of the computation pasted inline in the webpage.
>
> This should be easier and automatic but I have to write that code and
> I have not.
>
>

Thanks!

Alas my browser is hanging on the above url, so something needs
fixing.  I don't even get to read-char-no-hang:

(1) -> )lisp (trace read-char-no-hang)

Warning: READ-CHAR-NO-HANG is being redefined.
Value = (READ-CHAR-NO-HANG)
(1) -> )browse
listening on port 8085
 .....

Debugging suggestions?

>
>> 4) It would be great to integrate the compiler::link patches for now
>> at least.  At some point I hope to have native object relocation
>> everywhere, but this is likely a ways off.
>>
>> Note I'm turning off sgc for now, but this should not be permanent.
>>
>>   
> I have not used the compiler::link patch because I didn't understand
> it and could not get
> it to work.. I will rewrite the makefile to use your changes and see
> if I can get it to work.
>

Thanks!  Here are my patches, most of which are cosmetic:

=============================================================================
--- Makefile.orig       2009-11-30 16:45:00.000000000 +0000
+++ Makefile    2010-01-05 03:34:57.000000000 +0000
@@ -14,9 +14,9 @@
 #GCLVERSION=gcl-2.6.6
 #GCLVERSION=gcl-2.6.7pre
 #GCLVERSION=gcl-2.6.7
-#GCLVERSION=gcl-2.6.8pre
+GCLVERSION=gcl-2.6.8pre
 #GCLVERSION=gcl-2.6.8pre2
-GCLVERSION=gcl-2.6.8pre3 
+#GCLVERSION=gcl-2.6.8pre3 
 AWK:=gawk
 GCLDIR:=${LSP}/${GCLVERSION}
 SRC:=${SPD}/src
@@ -34,7 +34,7 @@
 DOCUMENT:=${SPADBIN}/document
 TANGLE:=${SPADBIN}/lib/notangle
 WEAVE:=${SPADBIN}/lib/noweave
-NOISE:="-o ${TMP}/trace"
+NOISE:=-o ${TMP}/trace
 PATCH:=patch
 UNCOMPRESS:=gunzip
 
@@ -45,7 +45,7 @@
 ENV:= SPAD=${SPAD} SYS=${SYS} SPD=${SPD} LSP=${LSP} GCLDIR=${GCLDIR} \
      SRC=${SRC} INT=${INT} OBJ=${OBJ} MNT=${MNT} ZIPS=${ZIPS} TMP=${TMP} \
      SPADBIN=${SPADBIN} INC=${INC} CCLBASE=${CCLBASE} PART=${PART} \
-     SUBPART=${SUBPART} NOISE=${NOISE} GCLVERSION=${GCLVERSION} \
+     SUBPART=${SUBPART} NOISE="${NOISE}" GCLVERSION=${GCLVERSION} \
      TANGLE=${TANGLE} VERSION=${VERSION} PATCH=${PATCH} DOCUMENT=${DOCUMENT} \
      WEAVE=${WEAVE} UNCOMPRESS=${UNCOMPRESS} BOOKS=${BOOKS}
 
@@ -59,16 +59,16 @@
        @ cp Makefile.dvi ${MNT}/${SYS}/doc/src/root.Makefile.dvi
        @ echo p2 starting parallel make of books
        @ echo p3 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet
-       @ ( cd ${SPD}/books ; \
-           ${DOCUMENT} ${NOISE} Makefile ; \
-           cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi ; \
-          ${ENV} ${MAKE} & )
+       @( cd ${SPD}/books && \
+           ${DOCUMENT} ${NOISE} Makefile && \
+           cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi && \
+          ${ENV} ${MAKE} )
        @ echo p4 starting parallel make of input documents
-       @ ${ENV} ${MAKE} parallelinput ${NOISE} &
+       @ ${ENV} ${MAKE} parallelinput ${NOISE} 
        @ echo p5 starting parallel make of xhtml documents
-       @ ${ENV} ${MAKE} parallelxhtml ${NOISE} &
+       @ ${ENV} ${MAKE} parallelxhtml ${NOISE} 
        @ echo p6 starting parallel make of help
-       @ ${ENV} $(MAKE) parallelhelp ${NOISE} &
+       @ ${ENV} $(MAKE) parallelhelp ${NOISE} 
        @ echo p7 starting parallel make of src
        @ ${ENV} $(MAKE) -f Makefile.${SYS} 
        @ echo 3 finished system build on `date` | tee >lastBuildDate
--- Makefile.pamphlet.orig      2010-01-04 21:51:21.000000000 +0000
+++ Makefile.pamphlet   2010-01-04 21:52:11.000000000 +0000
@@ -45,16 +45,16 @@
        @ cp Makefile.dvi ${MNT}/${SYS}/doc/src/root.Makefile.dvi
        @ echo p2 starting parallel make of books
        @ echo p3 ${SPD}/books/Makefile from ${SPD}/books/Makefile.pamphlet
-       @ ( cd ${SPD}/books ; \
-           ${DOCUMENT} ${NOISE} Makefile ; \
-           cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi ; \
-          ${ENV} ${MAKE} & )
+       @( cd ${SPD}/books && \
+           ${DOCUMENT} ${NOISE} Makefile && \
+           cp Makefile.dvi ${MNT}/${SYS}/doc/src/books.Makefile.dvi && \
+          ${ENV} ${MAKE} )
        @ echo p4 starting parallel make of input documents
-       @ ${ENV} ${MAKE} parallelinput ${NOISE} &
+       @ ${ENV} ${MAKE} parallelinput ${NOISE} 
        @ echo p5 starting parallel make of xhtml documents
-       @ ${ENV} ${MAKE} parallelxhtml ${NOISE} &
+       @ ${ENV} ${MAKE} parallelxhtml ${NOISE} 
        @ echo p6 starting parallel make of help
-       @ ${ENV} $(MAKE) parallelhelp ${NOISE} &
+       @ ${ENV} $(MAKE) parallelhelp ${NOISE} 
        @ echo p7 starting parallel make of src
        @ ${ENV} $(MAKE) -f Makefile.${SYS} 
        @ echo 3 finished system build on `date` | tee >lastBuildDate
@@ -287,7 +287,7 @@
 \end{verbatim}
 with the default value of NOISE being:
 \begin{verbatim}
-   NOISE="-o ${TMP}/trace"
+   NOISE=-o ${TMP}/trace
 \end{verbatim}
 
 The reason NOISE exists is that the latex command will
@@ -371,7 +371,7 @@
 DOCUMENT:=${SPADBIN}/document
 TANGLE:=${SPADBIN}/lib/notangle
 WEAVE:=${SPADBIN}/lib/noweave
-NOISE:="-o ${TMP}/trace"
+NOISE:=-o ${TMP}/trace
 PATCH:=patch
 UNCOMPRESS:=gunzip

@@ -380,7 +380,7 @@
 ENV:= SPAD=${SPAD} SYS=${SYS} SPD=${SPD} LSP=${LSP} GCLDIR=${GCLDIR} \
      SRC=${SRC} INT=${INT} OBJ=${OBJ} MNT=${MNT} ZIPS=${ZIPS} TMP=${TMP} \
      SPADBIN=${SPADBIN} INC=${INC} CCLBASE=${CCLBASE} PART=${PART} \
-     SUBPART=${SUBPART} NOISE=${NOISE} GCLVERSION=${GCLVERSION} \
+     SUBPART=${SUBPART} NOISE="${NOISE}" GCLVERSION=${GCLVERSION} \
      TANGLE=${TANGLE} VERSION=${VERSION} PATCH=${PATCH} DOCUMENT=${DOCUMENT} \
      WEAVE=${WEAVE} UNCOMPRESS=${UNCOMPRESS} BOOKS=${BOOKS}

@@ -806,9 +806,9 @@
 #GCLVERSION=gcl-2.6.6
 #GCLVERSION=gcl-2.6.7pre
 #GCLVERSION=gcl-2.6.7
-#GCLVERSION=gcl-2.6.8pre
+GCLVERSION=gcl-2.6.8pre
 #GCLVERSION=gcl-2.6.8pre2
-GCLVERSION=gcl-2.6.8pre3 
+#GCLVERSION=gcl-2.6.8pre3 
 @
 
 \subsubsection{The [[GCLOPTS]] configure variable}
@@ -867,7 +867,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -914,7 +914,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -961,7 +961,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1008,7 +1008,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1055,7 +1055,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1102,7 +1102,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1148,7 +1148,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1201,7 +1201,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1255,7 +1255,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 SRCDIRS=bootdir interpdir sharedir algebradir etcdir docdir inputdir
 PATCH=patch
@@ -1363,7 +1363,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1425,7 +1425,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1472,7 +1472,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1757,7 +1757,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-CUSTRELOC>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1815,7 +1815,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1891,7 +1891,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -1967,7 +1967,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2043,7 +2043,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2093,7 +2093,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2169,7 +2169,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2245,7 +2245,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2354,7 +2354,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2402,7 +2402,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2450,7 +2450,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2497,7 +2497,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2549,7 +2549,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-LOCBFD>>
 <<SRCDIRS>>
 PATCH=gpatch
@@ -2596,7 +2596,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2643,7 +2643,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2690,7 +2690,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2737,7 +2737,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2785,7 +2785,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2832,7 +2832,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2880,7 +2880,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2927,7 +2927,7 @@
 LISP=lisp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS>>
 <<SRCDIRS>>
 PATCH=patch
@@ -2991,7 +2991,7 @@
 LISP=lsp
 DAASE=${SRC}/share
 # where the libXpm.a library lives
-XLIB=/usr/X11R6/lib
+XLIB=/usr/lib
 <<GCLOPTS-CUSTRELOC>>
 <<SRCDIRS>>
 PATCH=patch
--- ./src/algebra/Makefile.pamphlet.orig        2010-01-04 15:26:34.000000000 
+0000
+++ ./src/algebra/Makefile.pamphlet     2010-01-04 14:55:31.000000000 +0000
@@ -15975,7 +15975,7 @@
          else \
           echo '(progn (in-package (quote boot)) (compile-file "$*.lsp" 
:output-file "$*.o"))' | ${DEPSYS} >${TMP}/trace ; \
          fi )
-       @ cp ${MID}/$*.o ${OUT}/$*.o
+       @ mkdir -p $$(dirname $(OUT)/$*.o) && cp ${MID}/$*.o ${OUT}/$*.o
 
 @
 <<genericSPADfiles>>=
=============================================================================
--- ./lsp/Makefile.pamphlet.orig        2010-01-04 16:45:15.000000000 +0000
+++ ./lsp/Makefile.pamphlet     2010-01-04 16:46:18.000000000 +0000
@@ -1161,12 +1161,8 @@
 
 gcldir: 
        @echo 2 building ${GCLVERSION}
-       @tar -zxf ${ZIPS}/${GCLVERSION}.tgz
-<<gcl-2.6.8pre.socket.patch>>
-<<gcl-2.6.8pre.libspad.patch>>
-<<gcl-2.6.8pre.toploop.patch>>
-<<gcl-2.6.8pre.collectfn.fix>>
-<<gclConfigureMake>>
+#      @tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+       echo '(compiler::link (list (compile-file "${BOOKS}/tangle.lisp")) 
"${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S 
*load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(fmakunbound (quote 
si::sgc-on))(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/interp/Makefile.pamphlet.orig 2010-01-11 17:34:04.000000000 +0000
+++ ./src/interp/Makefile.pamphlet      2010-01-11 17:33:38.000000000 +0000
@@ -426,8 +426,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 (apply (quote 
concatenate) (quote string) \"Binary module load error: \" 
si::*binary-modules*)))\
+                                       (setq si::collect-binary-modules* nil 
si::*binary-modules* nil)\
+                                       (gbc t)\
+                                       (fmakunbound (quote si::sgc-on))(when 
(fboundp (quote si::sgc-on)) (si::sgc-on t))\
+                                       (setq compiler::*default-system-p* t)\
+                               " si::*system-directory* (quote (list ".lsp")))\
+                               ""\
+                               nil))' | sed 's,\\$$,,g' | ${LISPSYS})
 @
 \end{verbatim}
 
@@ -697,7 +717,7 @@
 #      @ cp -p ${SRC}/doc/msgs/co-eng.msgs ${SPAD}/doc/msgs
        @ echo '${PROCLAIMS}' > ${OUT}/makeint.lisp
        @ echo '(load "${OUT}/nocompil")' >> ${OUT}/makeint.lisp
-       @ echo '(load "${OUT}/bookvol5")' >> ${OUT}/makeint.lisp
+       @ echo '(load "${OUT}/bookvol5.lsp")' >> ${OUT}/makeint.lisp
        @ echo '(load "${OUT}/util")' >> ${OUT}/makeint.lisp
        @ echo '(in-package "BOOT")' >> ${OUT}/makeint.lisp
        @ touch ${TIMESTAMP}
@@ -728,8 +748,33 @@
        @ 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} )
+         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 (apply (quote 
concatenate) (quote string) \"Binary module load error: \" 
si::*binary-modules*)))\
+                                       (setq si::collect-binary-modules* nil 
si::*binary-modules* nil)\
+                                       (gbc t)\
+                                       (fmakunbound (quote si::sgc-on))(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))' | sed 's,\\$$,,g' | $(LISPSYS))
        @ echo 6 ${SAVESYS} created
        @ cp ${SAVESYS} ${AXIOMSYS}
        @ echo 6a ${AXIOMSYS} created
--- ./src/etc/Makefile.pamphlet.orig    2010-01-04 15:26:34.000000000 +0000
+++ ./src/etc/Makefile.pamphlet 2010-01-04 14:55:31.000000000 +0000
@@ -24,7 +24,7 @@
        @ cp ${SRC}/doc/topics.data ${INT}/algebra
        @ cp ${SRC}/doc/topics.data ${INT}/algebra
        @ (cd ${INT}/algebra ; \
-           echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
+           echo ')lisp #+native-reloc(make-databases "" nil) 
#-native-reloc(system "cp ${SRC}/../debian/*.daase ${INT}/algebra/")' | 
${INTERPSYS} )
        @ cp -pr ${INT}/algebra/*.daase ${MNT}/${SYS}/algebra
 
 @
=============================================================================

> Do you know if GCL will build on a MAC? I used to have a MAC port
> working but
> something broke and I cannot figure out what.
>

It should, but our chief developer on this platform has disappeared,
and I have not tested here in quite a while.  It would be very good to
refresh this.

Take care,

> Tim
>
>
>
>
>

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