[Top][All Lists]
[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
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., (continued)
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Vadim V. Zhytnikov, 2002/06/14
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Camm Maguire, 2002/06/17
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Vadim V. Zhytnikov, 2002/06/12
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Peter Wood, 2002/06/11
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Vadim V. Zhytnikov, 2002/06/12
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Camm Maguire, 2002/06/12
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions.,
Vadim V. Zhytnikov <=
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Vadim V. Zhytnikov, 2002/06/08
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Camm Maguire, 2002/06/08
- Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions., Vadim V. Zhytnikov, 2002/06/09