diff options
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/interp/lisplib.boot | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index a41ebcae..80a139a1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,11 @@ 2011-11-02 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/lisplib.boot (findModule): Tidy. + (loadLib): Exit early on builtin constructors. + (loadDB): Likewise. + +2011-11-02 Gabriel Dos Reis <gdr@cs.tamu.edu> + * interp/spad-parser.boot (parseSpadFile): Use $lineStack not BOOT-LINE-STACK. Use try/finally to ensure streams are closed. * interp/spad.lisp (New,ENTRY,2): Use parseNewExpr. diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot index 9f7de79c..a7ef99c4 100644 --- a/src/interp/lisplib.boot +++ b/src/interp/lisplib.boot @@ -238,7 +238,11 @@ rwriteLispForm(key,form) == ++ Error if the file container of the module does not exist. findModule: %Symbol -> %Maybe %String findModule cname == - m := getConstructorModuleFromDB cname or return nil + db := constructorDB cname or return nil + m := + $buildingSystemAlgebra => + getSystemModulePath symbolName dbAbbreviation db + getConstructorModuleFromDB cname existingFile? m => m strap := algebraBootstrapDir() => m := strconc(strap,PATHNAME_-NAME m,'".",$faslType) @@ -254,6 +258,7 @@ loadLibIfNotLoaded libName == loadLib libName loadLib cname == + builtinConstructor? cname => nil -- these don't have nrlib yet. startTimingProcess 'load fullLibName := findModule cname or return nil systemdir? := isSystemDirectory(pathnameDirectory fullLibName) @@ -308,10 +313,11 @@ loadDB db == dbBeingDefined? db => nil dbLoaded? db => db ctor := dbConstructor db + builtinConstructor? ctor => nil lib := findModule ctor or return nil loadModule(lib,ctor) dbLoadPath(db) := lib - constructorDB ctor + db finally stopTimingProcess 'load convertOpAlist2compilerInfo(opalist) == |