diff options
-rw-r--r-- | src/ChangeLog | 11 | ||||
-rw-r--r-- | src/algebra/Makefile.in | 20 | ||||
-rw-r--r-- | src/interp/database.boot | 17 | ||||
-rw-r--r-- | src/interp/sys-driver.boot | 4 |
4 files changed, 32 insertions, 20 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index b14519ec..a68e3b99 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,16 @@ 2012-05-23 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/sys-driver.boot (initializeDatabases): Load initidb if + specified. + * interp/database.boot (populateDFFromFile): Remove. + (printAllInitdbInfo): Write as as Lisp file. + * algebra/Makefile.in (COMPILE_SPAD): initdb is now a FASL. + (BOOTSTRAP): Likewise. + (strap-2/%.$(FASLEXT)): Likewise. + (initdb.$(FASLEXT)): New. + +2012-05-23 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/vmlisp.lisp (MAKE-CVEC): Remove. (GETSTR): Likewise. * interp/sys-macros.lisp (INTERNL): Likewise. diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in index 0077bbde..e76e9473 100644 --- a/src/algebra/Makefile.in +++ b/src/algebra/Makefile.in @@ -81,15 +81,16 @@ INPUT=../input DRIVER = ../driver/open-axiom$(EXEEXT) INTERPSYS = ../interp/interpsys$(EXEEXT) +BOOTSYS = $(axiom_target_bindir)/bootsys$(EXEEXT) COMPILE_SPAD = $(DRIVER) --execpath=$(INTERPSYS) \ - --system="$(AXIOM)" --initial-db=initdb.daase \ + --system="$(AXIOM)" --initial-db=initdb.$(FASLEXT) \ --sysdb="$(axiom_src_datadir)/algebra/" \ --strap=strap-2 --optimize=3 \ --system-algebra --compile $< BOOTSTRAP = $(DRIVER) --execpath=$(INTERPSYS) \ - --system="$(AXIOM)" --initial-db=initdb.daase \ + --system="$(AXIOM)" --initial-db=initdb.$(FASLEXT) \ --sysdb="$(axiom_src_datadir)/algebra/" \ --system-algebra --compile @@ -1134,7 +1135,7 @@ strap-1/%.$(FASLEXT): %.spad | strap-1 rm -rf $*.NRLIB $*-.NRLIB .PRECIOUS: strap-2/%.$(FASLEXT) -strap-2/%.$(FASLEXT): %.spad initdb.daase | strap-2 +strap-2/%.$(FASLEXT): %.spad initdb.$(FASLEXT) | strap-2 $(BOOTSTRAP) --strap=strap-1 --sysalg=strap-2 --optimize=3 $< && \ cp $*.NRLIB/code.$(FASLEXT) $@ && \ if test -d $*-.NRLIB; then cp $*-.NRLIB/code.$(FASLEXT) \ @@ -2185,8 +2186,7 @@ stamp: ${SPADFILES} user-stamp ${TESTS} -rm -f stamp $(STAMP) stamp -all-algstrap: all-initdb - $(MAKE) $(AM_MAKEFLAGS) strap-stamp +all-algstrap: strap-stamp .PRECIOUS: $(OUT)/%.$(FASLEXT) ${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT) @@ -2457,19 +2457,23 @@ user-stamp: $(axiom_algebra_layer_user_objects) .PHONY: all-initdb -all-initdb: initdb.daase +all-initdb: initdb.$(FASLEXT) -initdb.daase: $(SPADFILES) +initdb.clisp: $(SPADFILES) $(DRIVER) --execpath=$(INTERPSYS) --system="$(AXIOM)" \ --spad-srcdir=$(OUTSRC) \ --output=initdb.$$$$ --build-initdb && \ $(top_confdir)/move-if-change initdb.$$$$ $@ +initdb.$(FASLEXT): initdb.clisp + $(DRIVER) --execpath=$(BOOTSYS) \ + --compile --output=$@ --load-directory=../interp $< + mostlyclean-local: @rm -f $(OUT)/*.$(FASLEXT) $(OUT)/*.daase @rm -rf *.NRLIB @rm -rf *.DAASE *.daase libdb.text - @rm -rf strap* + @rm -rf strap* initdb.* @rm -f *stamp clean-local: mostlyclean-local diff --git a/src/interp/database.boot b/src/interp/database.boot index 5fbf69d1..a8527d29 100644 --- a/src/interp/database.boot +++ b/src/interp/database.boot @@ -787,13 +787,6 @@ makeInitialDB [form,kind,abbrev,srcfile] == dbSourceFile(db) := srcfile setAutoLoadProperty form.op -populateDBFromFile path == - try - dbfile := inputTextFile path - while (entry := readExpr dbfile) ~= %nothing repeat - makeInitialDB entry - finally closeStream dbfile - printInitdbInfo(path,dbfile) == main(path,dbfile) where main(path,dbfile) == for x in parseSpadFile path repeat @@ -803,10 +796,10 @@ printInitdbInfo(path,dbfile) == main(path,dbfile) where if lhs isnt [.,:.] then lhs := [lhs] db := constructorDB lhs.op db = nil => nil - form := [id for x in lhs.args] + args := [id for x in lhs.args] where id() == (x is [":",x',:.] => x'; x) - form := [lhs.op,:form] - prettyPrint([form,dbConstructorKind db,dbAbbreviation db,path],dbfile) + data := [[lhs.op,:args],dbConstructorKind db,dbAbbreviation db,path] + prettyPrint(['makeInitialDB,quote data],dbfile) writeNewline dbfile printAllInitdbInfo(srcdir,dbfile) == @@ -814,6 +807,10 @@ printAllInitdbInfo(srcdir,dbfile) == or coreError strconc('"no .spad file in directory ",srcdir) try out := outputTextFile dbfile + prettyPrint(['IMPORT_-MODULE,'"database"],out) + writeNewline out + prettyPrint(['IN_-PACKAGE,'"BOOT"],out) + writeNewline out for path in paths repeat printInitdbInfo(NAMESTRING path,out) finally closeStream out diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot index f708ca88..97ae53a6 100644 --- a/src/interp/sys-driver.boot +++ b/src/interp/sys-driver.boot @@ -178,11 +178,11 @@ restart() == initializeDatabases firstTime? == getOptionValue "build-initdb" => nil - --initdb := getOptionValue "initial-db" => populateDBFromFile initdb + --initdb := getOptionValue "initial-db" => LOAD initdb --FIXME: Ideally we should execute the previous line. The next line is --FIXME: a short-term stopgap until build dependencies are in place. if initdb := getOptionValue "initial-db" then - populateDBFromFile initdb + LOAD initdb not firstTime? => openDatabases() fillDatabasesInCore() mkLowerCaseConTable() |