gcl-devel
[Top][All Lists]
Advanced

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

Re: [Gcl-devel] conditions/clos/gcl unified build patch and inst


From: Vadim V. Zhytnikov
Subject: Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions.
Date: Fri, 14 Jun 2002 18:34:14 +0300
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.0.0) Gecko/20020526

Camm Maguire пишет:
Hi Vadim!  And thanks for the patch!

We're almost there.  I'm using maxima-5.6 for tests as that the most
recent stable release.  And at the final initialization, this is what
I get:


<snip>

Error: The package named COMMON-LISP-USER, does not exist
Error signalled by PROGN.
Broken at SYSTEM::BREAK-LEVEL.  Type :H for Help.


It is turned out that this problem is due to the way Maxima 5.6 make procedure works. Maxima files are compiled with saved_gcl (full GCL with new packages) while saved_maxima is build with raw_gcl.
I'm resending modified patch which takes care for this problem.
Now make sequentially generates images

(1) /unixport/raw_gcl
(2) /unixport/saved_gcl
(3) /pcl/saved_gcl_pcl
(4) /clcs/saved_full_gcl
(5) /unixport/saved_ansi_gcl

(1) and (2) are just old GCL without extra packages; (3) gcl+pcl;
(4) gcl+pcl+clcs; (5) is (4) with new COMMON-LISP and COMMON-LISP-USER packages. So finally we have two images saved_gcl and saved_ansi_gcl. This procedure works well with both Maxima 5.9.0 (new build system) and Maxima 5.6.

And some bad news. Its seems that recent (June 12 and later) patches broke something in gcl. Saved_gcl seems to be OK. But when I try to build image with pcl the result is broken. I can get the image but it crashes is I enter anything erroneous. So the attached patch works
with June 10 CVS.

Best wishes,

Vadim



diff -uNr gcl-2.5.0-orig/clcs/makefile gcl-2.5.0/clcs/makefile
--- gcl-2.5.0-orig/clcs/makefile        Sat Jun  8 09:59:04 2002
+++ gcl-2.5.0/clcs/makefile     Fri Jun 14 16:01:38 2002
@@ -1,6 +1,13 @@
 
-LISP=../unixport/saved_gcl
+LISP=../pcl/saved_gcl_pcl
+
 compile: ${LISP}
-       echo '(jamei-load-lcs :compile)' | ${LISP}
+       echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs 
:compile)' | ${LISP}
+
+saved_full_gcl: ${LISP}
+       echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs 
:compiled)(system::save-system "saved_full_gcl")' | ${LISP}
+
+clean:
+       rm -f *.o
 
 -include ../makedefs
diff -uNr gcl-2.5.0-orig/h/att_ext.h gcl-2.5.0/h/att_ext.h
--- gcl-2.5.0-orig/h/att_ext.h  Sat Jun  8 09:59:09 2002
+++ gcl-2.5.0/h/att_ext.h       Wed Jun 12 23:35:47 2002
@@ -348,7 +348,6 @@
 EXTER object lisp_package;
 EXTER object user_package;
 EXTER object common_lisp_package;
-EXTER object common_lisp_user_package;
 EXTER object keyword_package;
 EXTER object system_package;
 EXTER object sLApackageA;
diff -uNr gcl-2.5.0-orig/h/notcomp.h gcl-2.5.0/h/notcomp.h
--- gcl-2.5.0-orig/h/notcomp.h  Sat Jun  8 09:59:09 2002
+++ gcl-2.5.0/h/notcomp.h       Wed Jun 12 23:35:47 2002
@@ -21,7 +21,7 @@
 EXTER int gc_enabled, saving_system;
 
 EXTER object lisp_package,user_package;
-EXTER object common_lisp_package,common_lisp_user_package;
+EXTER object common_lisp_package;
 EXTER char *core_end;
 EXTER int catch_fatal;
 EXTER int real_maxpage;
diff -uNr gcl-2.5.0-orig/makefile gcl-2.5.0/makefile
--- gcl-2.5.0-orig/makefile     Sat Jun  8 09:59:04 2002
+++ gcl-2.5.0/makefile  Fri Jun 14 16:20:30 2002
@@ -20,6 +20,8 @@
 LSPDIR = lsp
 CMPDIR = cmpnew
 PORTDIR        = unixport
+CLCSDIR = clcs
+PCLDIR = pcl
 MPDIR  = mp
 GMP_DIR = gmp/
 
@@ -31,6 +33,9 @@
        (cd $(LSPDIR); make all)
        (cd $(CMPDIR); make all)
        (cd $(PORTDIR); make saved_gcl)
+       (cd $(PCLDIR); make compile; make saved_gcl_pcl)
+       (cd $(CLCSDIR); make compile; make saved_full_gcl)
+       (cd $(PORTDIR); make saved_ansi_gcl)
        make command
 
 #      After making successfully send in a notification to
@@ -76,7 +81,7 @@
 install-command:
        rm -f $(DESTDIR)${prefix}/bin/gcl
        (echo '#!/bin/sh' ; \
-       echo exec ${INSTALL_LIB_DIR}/unixport/saved_gcl$(EXE) \\ ; \
+       echo exec ${INSTALL_LIB_DIR}/unixport/saved_ansi_gcl$(EXE) \\ ; \
        echo '   -dir' ${INSTALL_LIB_DIR}/unixport/ \\ ; \
        echo '   -libdir' ${INSTALL_LIB_DIR}/ \\ ; \
        echo '   -eval '\''(setq si::*allow-gzipped-file* t)'\' \\ ;\
@@ -95,9 +100,9 @@
        mkdir -p $(DESTDIR)${INSTALL_LIB_DIR}
        make install-command "INSTALL_LIB_DIR=${INSTALL_LIB_DIR}" 
"prefix=${prefix}" DESTDIR=$(DESTDIR)
        rm -f $(DESTDIR)${prefix}/bin/gcl.exe
-       tar cf - unixport/saved_gcl$(EXE) info/*.info* ${LISP_LIB} \
+       tar cf - unixport/saved_ansi_gcl$(EXE) info/*.info* ${LISP_LIB} \
        gcl-tk/gcl.tcl gcl-tk/gcltkaux$(EXE)  |  (cd 
$(DESTDIR)${INSTALL_LIB_DIR} ;tar xf -)
-       ln ${SYMB} ${INSTALL_LIB_DIR}/unixport/saved_gcl$(EXE) \
+       ln ${SYMB} ${INSTALL_LIB_DIR}/unixport/saved_ansi_gcl$(EXE) \
         $(DESTDIR)${prefix}/bin/gcl.exe
        if [ -d "${TK_CONFIG_PREFIX}" ] ; then  \
        cat gcl-tk/gcltksrv$(BAT) | \
@@ -107,7 +112,7 @@
        chmod a+x $(DESTDIR)${INSTALL_LIB_DIR}/gcl-tk/gcltksrv$(BAT) ; fi
        if [ -d "${TK_CONFIG_PREFIX}" ] ; then  \
        (cd $(DESTDIR)${INSTALL_LIB_DIR}/gcl-tk/demos ; \
-       echo '(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp"))' | 
../../unixport/saved_gcl$(EXE)) ; fi
+       echo '(load "../tkl.o")(TK::GET-AUTOLOADS (directory "*.lisp"))' | 
../../unixport/saved_ansi_gcl$(EXE)) ; fi
        (cd elisp ; make install DESTDIR=$(DESTDIR))
        (cd info ; make ; make install DESTDIR=$(DESTDIR))
 
@@ -120,6 +125,7 @@
        (cd $(PORTDIR); make clean)
        (cd gcl-tk ; make clean)
        -(cd gmp ; make distclean)
+       (cd clcs ; make clean)
        (cd info ; make clean)
        rm -f foo.tcl config.log makedefs makedefsafter config.cache 
config.status makedefc
        rm -f h/config.h h/gclincl.h h/cmpinclude.h
diff -uNr gcl-2.5.0-orig/o/package.d gcl-2.5.0/o/package.d
--- gcl-2.5.0-orig/o/package.d  Sat Jun  8 09:59:10 2002
+++ gcl-2.5.0/o/package.d       Wed Jun 12 23:35:47 2002
@@ -1059,10 +1059,6 @@
        common_lisp_package
        = make_package(make_simple_string("COMMON-LISP"),
                       Cnil, Cnil,47,509);
-       common_lisp_user_package
-       = make_package(make_simple_string("COMMON-LISP-USER"),
-                      Cnil,
-                      make_cons(common_lisp_package, Cnil),509,97);
        keyword_package
        = make_package(make_simple_string("KEYWORD"),
                       Cnil, Cnil,11,509);
diff -uNr gcl-2.5.0-orig/pcl/makefile gcl-2.5.0/pcl/makefile
--- gcl-2.5.0-orig/pcl/makefile Thu Jan  1 03:00:00 1970
+++ gcl-2.5.0/pcl/makefile      Fri Jun 14 16:00:04 2002
@@ -0,0 +1,41 @@
+# makefile for making pcl -- W. Schelter.
+
+#  Directions:
+# make -f makefile.gcl compile
+# make -f makefile.gcl saved_pcl
+
+
+LISP=../unixport/saved_gcl
+
+
+SETUP='(load "sys-package.lisp")' \
+       '(setq *features* (delete (quote kcl) *features*))'\
+       '(load "defsys.lisp")(push (quote kcl) *features*)' \
+       '(setq pcl::*default-pathname-extensions* (cons "lisp" "o"))' \
+       '(setq pcl::*pathname-extensions* (cons "lisp" "o"))' \
+       '(load "sys-proclaim.lisp")(compiler::emit-fn t)'
+
+compile:
+       echo ${SETUP} '(pcl::compile-pcl)' | ${LISP}
+
+saved_gcl_pcl:
+       echo ${SETUP} '(pcl::load-pcl)(si::save-system "saved_gcl_pcl")' | 
${LISP}
+
+clean:
+       rm -f *.o *.fn
+
+
+# remake the sys-package.lisp and sys-proclaim.lisp files
+# Those files may be empty on a first build.
+remake-sys-files:
+       echo ${SETUP} '(pcl::load-pcl)(in-package "PCL")(renew-sys-files)' | 
${LISP}
+       cp sys-proclaim.lisp xxx
+       cat xxx | sed -e "s/COMPILER::CMP-ANON//g" > sys-proclaim.lisp
+       rm xxx
+
+
+tar:
+       make -f makefile.gcl  tar1 DIR=`pwd`
+
+tar1:
+       (cd .. ; tar cvf - `basename ${DIR}` | gzip -c > `basename ${DIR}`.tgz) 
diff -uNr gcl-2.5.0-orig/unixport/ansi_cl.lisp gcl-2.5.0/unixport/ansi_cl.lisp
--- gcl-2.5.0-orig/unixport/ansi_cl.lisp        Thu Jan  1 03:00:00 1970
+++ gcl-2.5.0/unixport/ansi_cl.lisp     Fri Jun 14 16:09:30 2002
@@ -0,0 +1,98 @@
+(setq clcs_shadow
+ '(CONDITIONS::BREAK
+   CONDITIONS::ERROR
+   CONDITIONS::CERROR
+   CONDITIONS::WARN
+   CONDITIONS::CHECK-TYPE
+   CONDITIONS::ASSERT
+   CONDITIONS::ETYPECASE
+   CONDITIONS::CTYPECASE
+   CONDITIONS::ECASE
+   CONDITIONS::CCASE ))
+
+(setq lisp_unexport
+ '(LISP::LAMBDA-BLOCK-CLOSURE
+   LISP::BYE
+   LISP::QUIT
+   LISP::EXIT
+   LISP::IEEE-FLOATING-POINT
+   LISP::DEFENTRY
+   LISP::VOID
+   LISP::ALLOCATE-CONTIGUOUS-PAGES
+   LISP::UNSIGNED-SHORT
+   LISP::DOUBLE
+   LISP::BY
+   LISP::GBC
+   LISP::DEFCFUN
+   LISP::SAVE
+   LISP::MAXIMUM-CONTIGUOUS-PAGES
+   LISP::SPICE
+   LISP::DEFLA
+   LISP::ALLOCATED-PAGES
+   LISP::SUN
+   LISP::INT
+   LISP::USE-FAST-LINKS
+   LISP::CFUN
+   LISP::UNSIGNED-CHAR
+   LISP::HELP
+   LISP::HELP*
+   LISP::MACRO
+   LISP::*BREAK-ENABLE*
+   LISP::CLINES
+   LISP::LAMBDA-CLOSURE
+   LISP::OBJECT
+   LISP::FAT-STRING
+   LISP::SIGNED-SHORT
+   LISP::MC68020
+   LISP::LAMBDA-BLOCK
+   LISP::TAG
+   LISP::PROCLAMATION
+   LISP::ALLOCATED-CONTIGUOUS-PAGES
+   LISP::*EVAL-WHEN-COMPILE*
+   LISP::SIGNED-CHAR
+   LISP::*IGNORE-MAXIMUM-PAGES*
+   LISP::*LINK-ARRAY*
+   LISP::KCL
+   LISP::BSD
+   LISP::ALLOCATE-RELOCATABLE-PAGES
+   LISP::ALLOCATE
+   LISP::UNIX
+   LISP::MAXIMUM-ALLOCATABLE-PAGES
+   LISP::ALLOCATED-RELOCATABLE-PAGES
+   LISP::SYSTEM
+   LISP::KYOTO
+   LISP::CCLOSURE))
+
+(do-external-symbols (s "LISP")
+  (if (not(member s lisp_unexport))
+      (progn 
+        (import (list s) "COMMON-LISP")
+        (import (list s) "USER")) ))
+
+(do-external-symbols (s "PCL")
+  (import (list s) "COMMON-LISP")
+  (import (list s) "USER"))
+
+(do-external-symbols (s "CONDITIONS")
+  (if (member s clcs_shadow)
+      (progn 
+        (shadowing-import (list s) "COMMON-LISP")
+        (shadowing-import (list s) "USER"))
+      (progn
+        (import (list s) "COMMON-LISP")
+        (import (list s) "USER"))))
+
+(do-symbols (s "COMMON-LISP")
+  (export (list s) "COMMON-LISP"))
+  
+(makunbound 'clcs_shadow)
+(makunbound 'lisp_unexport)
+(unintern 'clcs_shadow)
+(unintern 'lisp_unexport)
+(unintern 'int)
+
+
(rename-package 'common-lisp 'common-lisp '(cl))
+(rename-package 'user 'common-lisp-user '(cl-user user))
+
+(si::save-system "saved_ansi_gcl")
+
diff -uNr gcl-2.5.0-orig/unixport/makefile gcl-2.5.0/unixport/makefile
--- gcl-2.5.0-orig/unixport/makefile    Sat Jun  8 09:59:10 2002
+++ gcl-2.5.0/unixport/makefile Fri Jun 14 16:09:11 2002
@@ -4,6 +4,8 @@
 LSPDIR = ../lsp
 CMPDIR = ../cmpnew
 PORTDIR        = ../unixport
+CLCSDIR = ../clcs
+PCLDIR = ../pcl
 MPDIR  = ../mp
 GMP_DIR        = ../gmp/
 
@@ -74,6 +76,9 @@
        $(CMPDIR)/cmpvar.o $(CMPDIR)/cmpvs.o $(CMPDIR)/cmpwt.o
 
 SYSTEM=gcl
+
+saved_ansi_gcl: ansi_cl.lisp
+       $(CLCSDIR)/saved_full_gcl < ansi_cl.lisp
 
 $(LSPDIR)/auto_new.lsp: $(LSPDIR)/auto.lsp
        cp $< $@

reply via email to

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