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 instruct


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

Two attached to this message files are:

(1) A bit modified John's patch for building GCL with
PCL and CONDITIONS (we should not use ../bin/gcl for
building PCL since at first clean run time it does not
exist yet, some misprint in clcs compile->compiled).

(2) Modified lisp script which prepares COMMON-LISP
and COMMON-LISP-USER packages.

I've also noticed that COMMON-LISP -> COMMON-LISP-USER
inheritance made on the C level (package.d) doesn't
work properly (Camm, now I understand what you meant).
I don't know why but at least it works properly on LISP
level.

With (1) and (2) we already get some 0th approximation
to ANSI CL. In addition COMMON-LISP-USER must be made
default package when GCL starts.

I was able to run ansi-test with some limited
success. Tests stopped due to some problems with LOOP.
Some test passed giving sensible results.
Unfortunately the very first test "symboltest" (checks
for COMMON-LISP and COMMON-LISP-USER contents) gave no
results once again due to some problems with
LOOP. It seems that LOOP which we now have in GCL is not
very CL compliant.  As far as I understand this loop was
borrowed recently from ecls (right?). I've tried to
run ansi-test on ecls but they failed at the very beginning
with some obscure error message.

Maybe we should try to find out what is wrong with LOOP.
In addition we should try to build Maxima with new
packages setup.

Best wishes,

Vadim
(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))
      (import (list s) "COMMON-LISP")))

(do-external-symbols (s "PCL")
  (import (list s) "COMMON-LISP"))

(do-external-symbols (s "CONDITIONS")
  (if (member s clcs_shadow)
      (shadowing-import (list s) "COMMON-LISP")
      (import (list s) "COMMON-LISP")))

(do-symbols (s "COMMON-LISP")
  (export (list s) "COMMON-LISP"))

(import 'user::quit "COMMON-LISP-USER")
(import 'user::bye  "COMMON-LISP-USER")
(import 'user::exit "COMMON-LISP-USER")


(rename-package 'common-lisp 'common-lisp '(cl))
(rename-package 'common-lisp-user 'common-lisp-user '(cl-user))
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     Sun Jun  9 20:43:24 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/clcs/makefile.orig gcl-2.5.0/clcs/makefile.orig
--- gcl-2.5.0-orig/clcs/makefile.orig   Thu Jan  1 03:00:00 1970
+++ gcl-2.5.0/clcs/makefile.orig        Sat Jun  8 09:59:04 2002
@@ -0,0 +1,6 @@
+
+LISP=../unixport/saved_gcl
+compile: ${LISP}
+       echo '(jamei-load-lcs :compile)' | ${LISP}
+
+-include ../makedefs
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  Sun Jun  9 20:49:45 2002
@@ -20,6 +20,8 @@
 LSPDIR = lsp
 CMPDIR = cmpnew
 PORTDIR        = unixport
+CLCSDIR = clcs
+PCLDIR = pcl
 MPDIR  = mp
 GMP_DIR = gmp/
 
@@ -31,6 +33,8 @@
        (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)
        make command
 
 #      After making successfully send in a notification to
@@ -120,6 +124,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/makefile.orig gcl-2.5.0/makefile.orig
--- gcl-2.5.0-orig/makefile.orig        Thu Jan  1 03:00:00 1970
+++ gcl-2.5.0/makefile.orig     Sat Jun  8 09:59:04 2002
@@ -0,0 +1,158 @@
+# Compiling gcl:
+#   ./configure
+#   make
+# For more details see the file readme
+
+prefix=/usr/local
+# This would cause make install to create /usr/local/bin/gcl and
+# /usr/local/lib/gcl-x.yy/* with some basic files.
+# This prefix may be overridden e.g. with
+# ./configure --prefix=/usr/share
+
+
+-include makedefs
+
+
+BINDIR = bin
+HDIR   = h/
+CDIR   = c
+ODIR   = o
+LSPDIR = lsp
+CMPDIR = cmpnew
+PORTDIR        = unixport
+MPDIR  = mp
+GMP_DIR = gmp/
+
+all:   ${HDIR}cmpinclude.h
+       (cd $(BINDIR); make all)
+       make mpfiles
+       rm -f o/cmpinclude.h ; ln h/cmpinclude.h o
+       (cd $(ODIR); make all)
+       (cd $(LSPDIR); make all)
+       (cd $(CMPDIR); make all)
+       (cd $(PORTDIR); make saved_gcl)
+       make command
+
+#      After making successfully send in a notification to
+#      address@hidden   This is extremely helpful in
+#      tracking on which machines and OS versions there are problems.
+#      This will be done automatically by the  xbin/notify line.
+       (cd  cmpnew ; make collectfn.o)
+       (cd lsp ; make info.o)
+       @- if  [ -f cmpnew/collectfn.o ]  ; \
+       then echo "Make of GCL `cat majvers`.`cat minvers` completed." ; \
+        if [ "${NOTIFY}" = "yes" ] ; then \
+       ./xbin/notify "CC=${CC}" ;  fi ;\
+       else echo "The new image failed to compile collectfn.lsp" ;fi ; \
+       if [ -d "${TK_CONFIG_PREFIX}" ] ; \
+       then (cd gcl-tk ; make) ; \
+       else echo "gcl-tk not made..missing include or lib" ; fi 
+       (cd info ; make)
+
+mpfiles: ${MPFILES}
+
+$(MPDIR)/libmport.a:
+       (cd mp ; make all)
+
+gmp/libgmp.a: gmp/Makefile
+       (cd gmp/mpn ; make)
+       (cd gmp/mpz ; make)
+       (cd gmp ; make `echo *.c | sed -e "s!\.c!.o !g"` )
+       (cd gmp ; rm -f libgmp.a ;  ar qc libgmp.a *.o */*.o)
+
+
+
+command:
+       rm -f bin/gcl xbin/gcl
+       GCLDIR=`echo ${GCLDIR} | sed -e 'sX^/cygdrive/\([a-z]\)X\1!Xg' -e 
'sX^//\([a-z]\)X\1!Xg'` ; \
+       make install-command "INSTALL_LIB_DIR=$${GCLDIR}" "prefix=$${GCLDIR}" 
+       (cd xbin ; ln -s ../bin/gcl .)
+
+merge:
+       ${CC} -o merge merge.c
+
+LISP_LIB=cmpnew/collectfn.o lsp/gprof.lsp lsp/info.o lsp/profile.lsp 
gcl-tk/tkl.o  gcl-tk/tinfo.o gcl-tk/decode.tcl gcl-tk/demos/*.lsp 
gcl-tk/demos/*.lisp gcl-tk/demos/*.o $(RL_LIB)
+
+install-command:
+       rm -f $(DESTDIR)${prefix}/bin/gcl
+       (echo '#!/bin/sh' ; \
+       echo exec ${INSTALL_LIB_DIR}/unixport/saved_gcl$(EXE) \\ ; \
+       echo '   -dir' ${INSTALL_LIB_DIR}/unixport/ \\ ; \
+       echo '   -libdir' ${INSTALL_LIB_DIR}/ \\ ; \
+       echo '   -eval '\''(setq si::*allow-gzipped-file* t)'\' \\ ;\
+       ! [ -d "${TK_CONFIG_PREFIX}" ] || echo '   -eval '\''(setq 
si::*tk-library* '\"${TK_LIBRARY}\"')'\' \\;\
+       [ "$(RL_OBJS)" = "" ] || echo '   -eval '\''(si::init-readline)'\' \\;\
+       echo '     '\"address@hidden" ) > $(DESTDIR)${prefix}/bin/gcl;
+       echo '#' other options: -load "/tmp/foo.o" -load "jo.lsp" -eval '"(joe 
3)"' >> $(DESTDIR)${prefix}/bin/gcl
+       chmod a+x $(DESTDIR)${prefix}/bin/gcl
+
+install: 
+       make install1 "INSTALL_LIB_DIR=${prefix}/lib/gcl-`cat majvers`.`cat 
minvers`" "prefix=${prefix}" DESTDIR=$(DESTDIR)
+INSTALL_LIB_DIR=
+install1:
+       mkdir -p $(DESTDIR)${prefix}/lib 
+       mkdir -p $(DESTDIR)${prefix}/bin
+       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} \
+       gcl-tk/gcl.tcl gcl-tk/gcltkaux$(EXE)  |  (cd 
$(DESTDIR)${INSTALL_LIB_DIR} ;tar xf -)
+       ln ${SYMB} ${INSTALL_LIB_DIR}/unixport/saved_gcl$(EXE) \
+        $(DESTDIR)${prefix}/bin/gcl.exe
+       if [ -d "${TK_CONFIG_PREFIX}" ] ; then  \
+       cat gcl-tk/gcltksrv$(BAT) | \
+       sed -e "s!GCL_TK_DIR=.*!GCL_TK_DIR=${INSTALL_LIB_DIR}/gcl-tk!g"  \
+       -e "s!TK_LIBRARY=.*!TK_LIBRARY=${TK_LIBRARY}!g" > \
+       $(DESTDIR)${INSTALL_LIB_DIR}/gcl-tk/gcltksrv$(BAT) ; \
+       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
+       (cd elisp ; make install DESTDIR=$(DESTDIR))
+       (cd info ; make ; make install DESTDIR=$(DESTDIR))
+
+clean:
+       (cd $(BINDIR); make clean)
+       (cd mp ; make clean)
+       (cd $(ODIR); make clean)
+       (cd $(LSPDIR); make clean)
+       (cd $(CMPDIR); make clean)
+       (cd $(PORTDIR); make clean)
+       (cd gcl-tk ; make clean)
+       -(cd gmp ; make distclean)
+       (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
+       rm -rf gmp/.deps gmp/libgmp.a
+       rm -f xbin/gcl foo foo.c
+
+CMPINCLUDE_FILES=${HDIR}cmpincl1.h ${HDIR}gclincl.h ${HDIR}compbas.h 
${HDIR}enum.h $(MP_INCLUDE) ${HDIR}object.h ${HDIR}vs.h \
+       ${HDIR}bds.h ${HDIR}frame.h \
+       ${HDIR}lex.h ${HDIR}eval.h    ${HDIR}funlink.h \
+       ${HDIR}att_ext.h ${HDIR}new_decl.h ${HDIR}compbas2.h ${HDIR}compat.h 
${HDIR}cmponly.h
+
+OTHERS=${HDIR}notcomp.h ${HDIR}rgbc.h ${HDIR}stacks.h 
+
+${HDIR}cmpinclude.h: ${CMPINCLUDE_FILES} ${HDIR}config.h
+       cat ${HDIR}config.h | sed -e "1,/Begin for cmpincl/d" \
+               -e "/End for cmpinclude/,50000d" > tmpx
+       cat ${CMPINCLUDE_FILES} >> tmpx
+       ./xbin/move-if-changed mv tmpx h/cmpinclude.h
+       ./xbin/move-if-changed ln h/cmpinclude.h o/cmpinclude.h
+
+go:
+       mkdir go
+       (cd go ; ln -s ../o/makefile ../o/*.o ../o/*.c ../o/*.d ../o/*.ini  .)
+       (cd go ; make  go)
+
+tar:
+       rm -f gcl-`cat majvers`.`cat minvers`
+       xbin/distribute ../ngcl-`cat majvers`.`cat minvers`-beta.tgz
+
+configure: configure.in
+       autoconf configure.in > configure
+       chmod a+rx configure
+
+kcp:
+       (cd go ; make  "CFLAGS = -I../h -pg  -c -g ")
+       (cd unixport ; make gcp)
diff -uNr gcl-2.5.0-orig/pcl/impl/gcl/makefile.gcl 
gcl-2.5.0/pcl/impl/gcl/makefile.gcl
--- gcl-2.5.0-orig/pcl/impl/gcl/makefile.gcl    Sat Apr 29 03:56:12 1995
+++ gcl-2.5.0/pcl/impl/gcl/makefile.gcl Sun Jun  9 20:21:23 2002
@@ -5,7 +5,7 @@
 # make -f makefile.gcl saved_pcl
 
 
-LISP=gcl
+LISP=../unixport/saved_gcl
 
 
 SETUP='(load "sys-package.lisp")' \
@@ -18,8 +18,11 @@
 compile:
        echo ${SETUP} '(pcl::compile-pcl)' | ${LISP}
 
-saved_pcl:
-       echo ${SETUP} '(pcl::load-pcl)(si::save-system "saved_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
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     Sat Apr 29 03:56:12 1995
+++ gcl-2.5.0/pcl/makefile.gcl  Sun Jun  9 20:21:23 2002
@@ -5,7 +5,7 @@
 # make -f makefile.gcl saved_pcl
 
 
-LISP=gcl
+LISP=../unixport/saved_gcl
 
 
 SETUP='(load "sys-package.lisp")' \
@@ -18,8 +18,11 @@
 compile:
        echo ${SETUP} '(pcl::compile-pcl)' | ${LISP}
 
-saved_pcl:
-       echo ${SETUP} '(pcl::load-pcl)(si::save-system "saved_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

reply via email to

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