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 instr


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

Camm Maguire пишет:
Hi Vadim!  OK, so I take it you are hot on the trail.  Please let me
know when you get a patch version that doesn't break the maxima build,
and I'll take a look at it and commit.

1)  I'd love someone to do a quick experiment on firing up default
    gcl, creating a package, saving the image, starting the image and
    seeing the package again.  Likewise, have the package creation
    stuff in a file, compile and load the .o, save, restart, etc.

2)  This way, the "lisp" way, should certainly work.  But is there
    possibly a difference between run-time loaded objects and .o files
    linked in at compile time?  I don't think there should be, but in
    case there is, a quick approach might be to just modify the
    unixport/makefile to link in all the clcs and pcl .o files, and
    then be sure to call init_.... in unixport/sys_gcl.c


Please try the clean build of GCL and Maxima with the following procedure:

1) Take latest gcl cvs

2) Merge PCL into subdir /pcl

3) Remove the link /pcl/makefile.gcl

4) Apply the patch attached to this message

6) Build gcl

7) Copy newly created ../bin/gcl somewhere
into the $PATH.

8) Build GCL Maxima with latest Maxima CVS

Does it work? GCL? Maxima?

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     Tue Jun 11 00:20:20 2002
@@ -1,6 +1,12 @@
 
-LISP=../unixport/saved_gcl
+LISP=../pcl/saved_gcl
 compile: ${LISP}
-       echo '(jamei-load-lcs :compile)' | ${LISP}
+       echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs 
:compile)' | ${LISP}
+
+saved_gcl: ${LISP}
+       echo '(load "package.lisp")(load "loading.lisp")(jamie-load-clcs 
:compiled)(system::save-system "saved_gcl")' | ${LISP}
+       mv saved_gcl ../unixport/saved_gcl
+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       Tue Jun 11 00:20:20 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       Tue Jun 11 00:20:20 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  Tue Jun 11 00:20:20 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 -f makefile.gcl compile; make -f makefile.gcl 
saved_gcl)
+       (cd $(CLCSDIR); make compile; make saved_gcl)
+       (cd $(PORTDIR); make ansi_cl)
        make command
 
 #      After making successfully send in a notification to
@@ -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       Tue Jun 11 00:20:20 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 gcl-2.5.0/pcl/makefile.gcl
--- gcl-2.5.0-orig/pcl/makefile.gcl     Thu Jan  1 03:00:00 1970
+++ gcl-2.5.0/pcl/makefile.gcl  Tue Jun 11 00:20:20 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:
+       echo ${SETUP} '(pcl::load-pcl)(si::save-system "saved_gcl")' | ${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     Tue Jun 11 00:20:20 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_cl")
+
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 Tue Jun 11 00:20:20 2002
@@ -75,6 +75,11 @@
 
 SYSTEM=gcl
 
+ansi_cl: saved_$(SYSTEM) ansi_cl.lisp
+       $(PORTDIR)/saved_$(SYSTEM) < ansi_cl.lisp
+       rm -f saved_$(SYSTEM)
+       mv saved_ansi_cl saved_$(SYSTEM)
+
 $(LSPDIR)/auto_new.lsp: $(LSPDIR)/auto.lsp
        cp $< $@
        [ "$(RL_OBJS)" = "" ] || \

reply via email to

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