aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interp/ChangeLog11
-rw-r--r--src/interp/Makefile.in10
-rw-r--r--src/interp/Makefile.pamphlet10
-rw-r--r--src/interp/bootfuns.lisp.pamphlet6
-rw-r--r--src/interp/parsing.lisp.pamphlet1
-rw-r--r--src/interp/util.lisp.pamphlet3
-rw-r--r--src/interp/vmlisp.lisp.pamphlet23
7 files changed, 44 insertions, 20 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog
index 8a3312a9..f8e67834 100644
--- a/src/interp/ChangeLog
+++ b/src/interp/ChangeLog
@@ -1,5 +1,16 @@
2007-08-17 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * vmlisp.lisp.pamphlet (define-function): Define in all situations.
+ * parsing.lisp.pamphlet: Import "bootfuns".
+ * util.lisp.pamphlet: Import "vmlisp" and "parsing".
+ * bootfuns.lisp.pamphlet: Add GCL-specific bug workaround.
+ * Makefile.pamphlet (${DEPSYS}): Load "parsing" before "util".
+ (util.$(FASLEXT)): Has parsing.$(FASLEXT) as prerequisite.
+ (parsing.$(FASLEXT)): New rule.
+ * Makefile.in: Regenerate.
+
+2007-08-17 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* ggreater.lisp.pamphlet (VGREATERP): Initialize I, L1 and L2
with appropriate values.
(LEXVGREATERP): Likewise.
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index 876e13cc..fff90a19 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -367,6 +367,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
@ echo '(|importModule| "bootfuns")' >> makedep.lisp
@ echo '(|importModule| "nocompil")' >> makedep.lisp
@ echo '(|importModule| "bookvol5")' >> makedep.lisp
+ @ echo '(|importModule| "parsing")' >> makedep.lisp
@ echo '(|importModule| "util")' >> makedep.lisp
@ echo '(in-package "BOOT")' >> makedep.lisp
@ echo '(build-depsys (quote ($(patsubst %, "%", ${DEP}))) "${AXIOM}")' >> makedep.lisp
@@ -374,8 +375,6 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
@ echo '(load "postpar")' >> makedep.lisp
@ echo '(unless (probe-file "parse.$(FASLEXT)") (compile-file "parse.clisp" :output-file "parse.$(FASLEXT)"))' >> makedep.lisp
@ echo '(load "parse")' >> makedep.lisp
- @ echo '(unless (probe-file "parsing.$(FASLEXT)") (compile-file "parsing.lisp" :output-file "parsing.$(FASLEXT)"))' >> makedep.lisp
- @ echo '(load "parsing")' >> makedep.lisp
@ echo '(unless (probe-file "metalex.$(FASLEXT)") (compile-file "metalex.lisp" :output-file "metalex.$(FASLEXT)"))' >> makedep.lisp
@ echo '(load "metalex")' >> makedep.lisp
@ echo '(unless (probe-file "bootlex.$(FASLEXT)") (compile-file "bootlex.lisp" :output-file "bootlex.$(FASLEXT)"))' >> makedep.lisp
@@ -407,13 +406,16 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
../lisp/base-lisp$(EXEEXT) -- --make --output=$@ \
--load-directory=. makedep.lisp
@rm $(addsuffix .$(FASLEXT), \
- postpar parse parsing metalex bootlex newaux preparse \
+ postpar parse metalex bootlex newaux preparse \
postprop def metameta fnewmeta clam slam g-error \
g-boot c-util g-util)
@ echo 4 ${DEPSYS} created
-util.$(FASLEXT): util.lisp bootfuns.$(FASLEXT)
+util.$(FASLEXT): util.lisp parsing.$(FASLEXT)
+ $(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
+
+parsing.$(FASLEXT): parsing.lisp bootfuns.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
bookvol5.$(FASLEXT): bookvol5.lisp bootfuns.$(FASLEXT)
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 8cfd56e7..ff5d7ef7 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -1017,6 +1017,7 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
@ echo '(|importModule| "bootfuns")' >> makedep.lisp
@ echo '(|importModule| "nocompil")' >> makedep.lisp
@ echo '(|importModule| "bookvol5")' >> makedep.lisp
+ @ echo '(|importModule| "parsing")' >> makedep.lisp
@ echo '(|importModule| "util")' >> makedep.lisp
@ echo '(in-package "BOOT")' >> makedep.lisp
@ echo '(build-depsys (quote ($(patsubst %, "%", ${DEP}))) "${AXIOM}")' >> makedep.lisp
@@ -1024,8 +1025,6 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
@ echo '(load "postpar")' >> makedep.lisp
@ echo '(unless (probe-file "parse.$(FASLEXT)") (compile-file "parse.clisp" :output-file "parse.$(FASLEXT)"))' >> makedep.lisp
@ echo '(load "parse")' >> makedep.lisp
- @ echo '(unless (probe-file "parsing.$(FASLEXT)") (compile-file "parsing.lisp" :output-file "parsing.$(FASLEXT)"))' >> makedep.lisp
- @ echo '(load "parsing")' >> makedep.lisp
@ echo '(unless (probe-file "metalex.$(FASLEXT)") (compile-file "metalex.lisp" :output-file "metalex.$(FASLEXT)"))' >> makedep.lisp
@ echo '(load "metalex")' >> makedep.lisp
@ echo '(unless (probe-file "bootlex.$(FASLEXT)") (compile-file "bootlex.lisp" :output-file "bootlex.$(FASLEXT)"))' >> makedep.lisp
@@ -1056,13 +1055,16 @@ ${DEPSYS}: vmlisp.$(FASLEXT) \
@ echo '(load "g-util")' >> makedep.lisp
<<save depsys image>>
@rm $(addsuffix .$(FASLEXT), \
- postpar parse parsing metalex bootlex newaux preparse \
+ postpar parse metalex bootlex newaux preparse \
postprop def metameta fnewmeta clam slam g-error \
g-boot c-util g-util)
@ echo 4 ${DEPSYS} created
-util.$(FASLEXT): util.lisp bootfuns.$(FASLEXT)
+util.$(FASLEXT): util.lisp parsing.$(FASLEXT)
+ $(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
+
+parsing.$(FASLEXT): parsing.lisp bootfuns.$(FASLEXT)
$(BOOTSYS) -- --compile --output=$@ --load-directory=. $<
bookvol5.$(FASLEXT): bookvol5.lisp bootfuns.$(FASLEXT)
diff --git a/src/interp/bootfuns.lisp.pamphlet b/src/interp/bootfuns.lisp.pamphlet
index 1afbe294..58e809ed 100644
--- a/src/interp/bootfuns.lisp.pamphlet
+++ b/src/interp/bootfuns.lisp.pamphlet
@@ -62,6 +62,12 @@ interpreter or algebra uses has to (cough, cough) appear here.
<<*>>=
<<license>>
+;; This is a horrible hack to work around a horrible bug in GCL
+;; as reported here:
+;; http://lists.gnu.org/archive/html/gcl-devel/2007-08/msg00004.html
+#+:gcl (in-package "VMLISP")
+#+:gcl (in-package "AxiomCore")
+
(IMPORT-MODULE "hash")
(defpackage "BOOT"
#+:common-lisp (:use "COMMON-LISP")
diff --git a/src/interp/parsing.lisp.pamphlet b/src/interp/parsing.lisp.pamphlet
index 54c9dbfe..ff27ac67 100644
--- a/src/interp/parsing.lisp.pamphlet
+++ b/src/interp/parsing.lisp.pamphlet
@@ -95,6 +95,7 @@
; BOOTLEX.LISP: Boot file handling, auxiliary parsing actions and tokenizing
; NEWMETA.LISP: Boot parsing
+(import-module "bootfuns")
(in-package "BOOT")
; 0. Current I/O Stream definition
diff --git a/src/interp/util.lisp.pamphlet b/src/interp/util.lisp.pamphlet
index ec9f4ad1..f6c4dd32 100644
--- a/src/interp/util.lisp.pamphlet
+++ b/src/interp/util.lisp.pamphlet
@@ -1547,7 +1547,8 @@ function assumes that \\ can only appear as first character of name.
<<*>>=
<<license>>
-#-:common-lisp (IMPORT-MODULE "vmlisp")
+(IMPORT-MODULE "vmlisp")
+(import-module "parsing")
(in-package "BOOT")
(export '($spadroot $directory-list $current-directory reroot
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet
index 9653d749..837ef55f 100644
--- a/src/interp/vmlisp.lisp.pamphlet
+++ b/src/interp/vmlisp.lisp.pamphlet
@@ -759,13 +759,11 @@ and works properly.
;; defuns
-#-(or :CCL (and :Lucid (not :rios)))
-(defun define-function (f v)
- (setf (symbol-function f) v))
-#+:CCL
-(defun define-function (f v)
- (setf (symbol-function f) v)
- (setf (get f 's:newname) v))
+(eval-when
+ #+:common-lisp (:compile-toplevel :load-toplevel :execute)
+ #-:common-lisp (compile load eval)
+ (defun define-function (f v)
+ (setf (symbol-function f) v)))
(define-function 'tempus-fugit #'get-internal-run-time)
@@ -1030,10 +1028,13 @@ and works properly.
nil
(cons (cons (first x) (second x)) (plist2alist (cddr x)))))
-#-:CCL
-(defun put (sym ind val) (setf (get sym ind) val))
-
-(define-function 'MAKEPROP #'put)
+(eval-when
+ #+:common-lisp (:compile-toplevel :load-toplevel :execute)
+ #-:common-lisp (compile load eval)
+ (progn
+ (defun put (sym ind val) (setf (get sym ind) val))
+
+ (define-function 'MAKEPROP #'put)))
; 12.0 Operations on Numbers