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: Camm Maguire
Subject: Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions.
Date: 13 Jun 2002 12:24:53 -0400

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:

=============================================================================

cat init_maxima.lsp | \
sed -e "s"DATE"Version(`cat ../majvers`.`cat ../minvers`) `date`g" \
-e 'ssaved_gclsaved_maximag' \
-e 'slinks t)links t)(setq compiler::*cc* "gcc -pipe -fwritable-strings  
-DVOL=volatile -I/home/camm/gcl/vadim/o 
-fsigned-char")(si::build-symbol-table)g' \
-e "sGCLDIR/home/camm/gcl/vadimg" \
-e "s(defun lisp-imp(setq si::*gcl-version* `cat ../minvers` 
si::*gcl-major-version* `cat ../majvers`)(defun lisp-impg" \
-e "s:GCL-1:GCL-"`cat ../majvers`":g"   > foo 
/home/camm/gcl/vadim/unixport/raw_maxima /home/camm/gcl/vadim/unixport/ -libdir 
/home/camm/gcl/vadim/ < foo
GCL (GNU Common Lisp)  April 1994  32768 pages
loading ../lsp/export.lsp
Initializing ../lsp/defmacro.o
Initializing ../lsp/evalmacros.o
Initializing ../lsp/top.o
Initializing ../lsp/module.o
loading ../lsp/autoload.lsp

>
#<"COMPILER" package>

COMPILER>
#<"SYSTEM" package>

SYSTEM>
*COMMAND-ARGS*

SYSTEM>
#<"USER" package>

>
#<"LISP" package>

LISP>
#<"SLOOP" package>

SLOOP>
6

SLOOP>
#<"USER" package>

>
Loading ../gcl-tk/tk-package.lsp
Finished loading ../gcl-tk/tk-package.lsp
T

>Initializing ../lsp/predlib.o
Initializing ../lsp/setf.o
Initializing ../lsp/arraylib.o
Initializing ../lsp/assert.o
Initializing ../lsp/defstruct.o
Initializing ../lsp/describe.o
Initializing ../lsp/iolib.o
Initializing ../lsp/listlib.o
Initializing ../lsp/mislib.o
Initializing ../lsp/numlib.o
Initializing ../lsp/packlib.o
Initializing ../lsp/seq.o
Initializing ../lsp/seqlib.o
Initializing ../lsp/trace.o
Initializing ../lsp/sloop.o
Initializing ../lsp/serror.o
Initializing ../lsp/destructuring_bind.o
Initializing ../lsp/loop.o
Initializing ../lsp/defpackage.o
Initializing ../lsp/make_defpackage.o
Initializing ../cmpnew/cmpinline.o
Initializing ../cmpnew/cmputil.o
Initializing ../lsp/debug.o
Initializing ../lsp/info.o
Initializing ../cmpnew/cmptype.o
Initializing ../cmpnew/cmpbind.o
Initializing ../cmpnew/cmpblock.o
Initializing ../cmpnew/cmpcall.o
Initializing ../cmpnew/cmpcatch.o
Initializing ../cmpnew/cmpenv.o
Initializing ../cmpnew/cmpeval.o
Initializing ../cmpnew/cmpflet.o
Initializing ../cmpnew/cmpfun.o
Initializing ../cmpnew/cmpif.o
Initializing ../cmpnew/cmplabel.o
Initializing ../cmpnew/cmplam.o
Initializing ../cmpnew/cmplet.o
Initializing ../cmpnew/cmploc.o
Initializing ../cmpnew/cmpmap.o
Initializing ../cmpnew/cmpmulti.o
Initializing ../cmpnew/cmpspecial.o
Initializing ../cmpnew/cmptag.o
Initializing ../cmpnew/cmptop.o
Initializing ../cmpnew/cmpvar.o
Initializing ../cmpnew/cmpvs.o
Initializing ../cmpnew/cmpwt.o

Loading maxima-package.lisp
Finished loading maxima-package.lisp
Initializing /fix/f/debian/mm/maxima/maxima-5.6/src/lmdcls.o

Error: The package named COMMON-LISP-USER, does not exist
Error signalled by PROGN.
Broken at SYSTEM::BREAK-LEVEL.  Type :H for Help.
>>make[2]: Leaving directory `/fix/c/home/camm/gcl/vadim/unixport'
=============================================================================


I think this is simply because we need some of your setup code for the
new packages in some standard place where maxima can find it.  I
haven't looked at the patch yet in detail -- do you use init_gcl.lisp?
This should be a really minor fix, I think, so perhaps we could
discuss what would be the best resolution and commit into cvs soon.

1)  Do we want CLOS to be an autoloadable option?

2)  Do we want CLOS to be a configure '--enabled' option?

3)  CLOCC test suite results with this build?  Shall we import that
    tree too?

Take care,


"Vadim V. Zhytnikov" <address@hidden> writes:

> This is a multi-part message in MIME format.
> --------------040604050107060205020307
> Content-Type: text/plain; charset=KOI8-R; format=flowed
> Content-Transfer-Encoding: 8bit
> 
> 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
> 
> 
> --------------040604050107060205020307
> Content-Type: text/plain;
>  name="gcl.patch"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
>  filename="gcl.patch"
> 
> 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)" = "" ] || \
> 
> --------------040604050107060205020307--
> 
> 
> 
> 

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