aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog8
-rw-r--r--src/interp/Makefile.in2
-rw-r--r--src/interp/Makefile.pamphlet2
-rw-r--r--src/interp/daase.lisp3
-rw-r--r--src/lisp/Makefile.in1
-rw-r--r--src/lisp/core.lisp.in9
6 files changed, 22 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c9fe22ae..7056f856 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,13 @@
2008-08-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * lisp/core.lisp.in (|$StandardLinking|): New. Export.
+ * lisp/Makefile.in (edit): Update.
+ * interp/daase.lisp: Don't load initial databases when
+ --system-algebra.
+ * interp/Makefile.pamphlet (${SAVESYS}): Build with --system-algebra.
+
+2008-08-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* interp/vmlisp.lisp (BPINAME): Define for ECL too.
* interp/util.lisp (*BIN-TYPE*): Remove. Use $faslType throughout.
* interp/daase.lisp (get-current-directory): Tidy conditional
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index e7775f17..72fe016a 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -200,7 +200,7 @@ ${SAVESYS}: database.date \
$(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
$(axiom_target_datadir)/msgs/s2-us.msgs \
$(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
- $(BOOTSYS) -- --system="$(AXIOM)/" \
+ $(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \
--sysalg="$(axiom_src_datadir)/algebra/" \
--make --output=$@ --main="BOOT::|restart|" \
--load-directory=. $(OBJS) makeint.$(LNKEXT)
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 7fde6536..e7d373d0 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -353,7 +353,7 @@ ${SAVESYS}: database.date \
$(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
$(axiom_target_datadir)/msgs/s2-us.msgs \
$(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
- $(BOOTSYS) -- --system="$(AXIOM)/" \
+ $(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \
--sysalg="$(axiom_src_datadir)/algebra/" \
--make --output=$@ --main="BOOT::|restart|" \
--load-directory=. $(OBJS) makeint.$(LNKEXT)
diff --git a/src/interp/daase.lisp b/src/interp/daase.lisp
index 66efc4e4..d65a1812 100644
--- a/src/interp/daase.lisp
+++ b/src/interp/daase.lisp
@@ -348,7 +348,8 @@
(browseopen)
(setq *category-stream-stamp* '(0 . 0))
(categoryopen) ;note: this depends on constructorform in browse.daase
-#-:CCL (initial-getdatabase)
+ (unless (|getOptionValue| (|Option| "system-algebra") (|%systemOptions|))
+ (initial-getdatabase))
(close *interp-stream*)
(close *operation-stream*)
(close *category-stream*)
diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in
index 4ca6535e..5c5233fd 100644
--- a/src/lisp/Makefile.in
+++ b/src/lisp/Makefile.in
@@ -143,6 +143,7 @@ edit = sed \
-e 's|@LIBEXT[@]|$(LIBEXT)|g' \
-e 's|@oa_c_runtime_extra[@]|$(oa_c_runtime_extra)|g' \
-e 's|@oa_base_lisp_linkset[@]|$(base_lisp_objects)|g' \
+ -e 's|@oa_standard_linking[@]|$(oa_standard_linking)|g' \
-e 's|@void_type[@]|$(void_type)|g' \
-e 's|@char_type[@]|$(char_type)|g' \
-e 's|@int_type[@]|$(int_type)|g' \
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 1339de0f..27f0dd41 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -79,6 +79,7 @@
"$systemInstallationDirectory"
"$NativeTypeTable"
"$LispOptimizeOptions"
+ "$StandardLinking"
"getOptionValue"
"getCommandLineArguments"
@@ -135,6 +136,14 @@
;; -*- Hosting Lisp System -*-
;;
+;; True means that the base Lisp system uses conventional C-style
+;; program linking model, whereby programs are constructed by linking
+;; separately compiled units. By constrast, many Lisp systems build
+;; executable programs by loading FASLs into core and dumping the resulting
+;; image on disk.
+(defconstant |$StandardLinking|
+ (eq '@oa_standard_linking@ 'yes))
+
;; Almost every supported Lisp use dynamic link for FFI.
;; ECL's support is partial. GCL-2.6.x hasn't discovered it yet.
(defconstant |$useDynamicLink|