diff options
-rw-r--r-- | src/interp/ChangeLog | 8 | ||||
-rw-r--r-- | src/interp/Makefile.in | 21 | ||||
-rw-r--r-- | src/interp/Makefile.pamphlet | 21 | ||||
-rw-r--r-- | src/lisp/ChangeLog | 4 | ||||
-rw-r--r-- | src/lisp/core.lisp.pamphlet | 20 |
5 files changed, 32 insertions, 42 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog index ea36e41f..46e7e879 100644 --- a/src/interp/ChangeLog +++ b/src/interp/ChangeLog @@ -1,5 +1,13 @@ 2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu> + * Makefile.pamphlet (boot-pkg.lisp): Remove rule. + (diagnostics.boot): Likewise. + (sys-globals.boot): Likewise. + (sys-constants.boot): Likewise. + * Makefile.in: Regenerate. + +2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu> + * bookvol5.pamphlet (getenviron): Remove. 2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu> diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index 9567360f..07aaecc9 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -335,8 +335,6 @@ depsys_objects = nocompil.$(FASLEXT) bookvol5.$(FASLEXT) g-error.$(FASLEXT) \ fnewmeta.$(FASLEXT) clam.$(FASLEXT) \ slam.$(FASLEXT) g-boot.$(FASLEXT) c-util.$(FASLEXT) \ g-util.$(FASLEXT) -VPATH = - ${DEPSYS}: vmlisp.$(FASLEXT) \ @@ -452,25 +450,6 @@ ggreater.$(FASLEXT): ggreater.lisp vmlisp.$(FASLEXT) vmlisp.$(FASLEXT): vmlisp.lisp $(BOOTSYS) -- --compile --output=$@ $< - -## GCL-2.6.8pre has the following behaviour that it will -## try to forcefully put the compiled code in the same directory -## as the source. This is hardly what we want, especially when -## the source file reside in non-writeable areas. Consequently, -## we copy the source file to the current working directory -- -## until we find a better way to convince GCL to do the right thing. -boot-pkg.lisp: $(srcdir)/boot-pkg.lisp - cp $< $@ - -diagnostics.boot: $(srcdir)/diagnostics.boot - cp $< $@ - -sys-globals.boot: $(srcdir)/sys-globals.boot - cp $< $@ - -sys-constants.boot: $(srcdir)/sys-constants.boot - cp $< $@ - .PHONY: all-axiomsys all-axiomsys: ${AXIOMSYS} diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index ac9fd061..0df0d71d 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -976,8 +976,6 @@ depsys_objects = nocompil.$(FASLEXT) bookvol5.$(FASLEXT) g-error.$(FASLEXT) \ fnewmeta.$(FASLEXT) clam.$(FASLEXT) \ slam.$(FASLEXT) g-boot.$(FASLEXT) c-util.$(FASLEXT) \ g-util.$(FASLEXT) -VPATH = - ${DEPSYS}: vmlisp.$(FASLEXT) \ @@ -1092,25 +1090,6 @@ ggreater.$(FASLEXT): ggreater.lisp vmlisp.$(FASLEXT) vmlisp.$(FASLEXT): vmlisp.lisp $(BOOTSYS) -- --compile --output=$@ $< - -## GCL-2.6.8pre has the following behaviour that it will -## try to forcefully put the compiled code in the same directory -## as the source. This is hardly what we want, especially when -## the source file reside in non-writeable areas. Consequently, -## we copy the source file to the current working directory -- -## until we find a better way to convince GCL to do the right thing. -boot-pkg.lisp: $(srcdir)/boot-pkg.lisp - cp $< $@ - -diagnostics.boot: $(srcdir)/diagnostics.boot - cp $< $@ - -sys-globals.boot: $(srcdir)/sys-globals.boot - cp $< $@ - -sys-constants.boot: $(srcdir)/sys-constants.boot - cp $< $@ - @ \section{Building SAVESYS and AXIOMSYS} diff --git a/src/lisp/ChangeLog b/src/lisp/ChangeLog index a9b92889..9402faaa 100644 --- a/src/lisp/ChangeLog +++ b/src/lisp/ChangeLog @@ -1,5 +1,9 @@ 2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu> + * core.lisp.pamphlet (|compileLispFile|): Tidy. + +2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu> + * core.lisp.pamphlet (|compileLispFile|): Don't leave a FASL if source code compilation has FAILURE-P. diff --git a/src/lisp/core.lisp.pamphlet b/src/lisp/core.lisp.pamphlet index c35f28bb..c781417f 100644 --- a/src/lisp/core.lisp.pamphlet +++ b/src/lisp/core.lisp.pamphlet @@ -532,6 +532,13 @@ it would return $0$, meaning that everything is OK. #-:ecl (compile-file-pathname file) #+:ecl (compile-file-pathname file :type :object)) +(defun |currentDirectoryName| nil + (let* ((dir (namestring (truename ""))) + (n (1- (length dir)))) + (if (char= (char dir n) #\/) + (subseq dir 0 n) + dir))) + ;; Compile Lisp source files to target object code. Most of the time ;; this function is called externally to accomplish just that: compile ;; a Lisp file. So, by default, we exit the read-eval-print loop after @@ -549,6 +556,19 @@ it would return $0$, meaning that everything is OK. ;; twice: once as object code, once as FASL. That is surely wrong. There ;; me be ways to build one from the one with less work. (defun |compileLispFile| (file out-file) + ;; When OUT-FILE does not have a specified parent directory, it is + ;; implied that the compiled file is placed in the current directory. + ;; This is a very common convention on traditional systems and + ;; environments. However GCL would insist to pick the parent + ;; directory from FILE, which clearly is bogus. + ;; Consequently, we must convince GCL to do what we expected. + #+gcl (when (and (pathname-directory file) + (not (pathname-directory out-file))) + (setq out-file + (make-pathname :name (pathname-name out-file) + :type (pathname-type out-file) + :directory (list (|currentDirectoryName|))))) + (multiple-value-bind (result warning-p failure-p) #-:ecl (compile-file file :output-file out-file) #+:ecl (multiple-value-prog1 |