aboutsummaryrefslogtreecommitdiff
path: root/src/boot/translator.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/translator.boot')
-rw-r--r--src/boot/translator.boot28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/boot/translator.boot b/src/boot/translator.boot
index 70c5da4e..083c374f 100644
--- a/src/boot/translator.boot
+++ b/src/boot/translator.boot
@@ -91,11 +91,14 @@ shoeCOMPILE_-FILE lspFileName ==
BOOTTOCL(fn, out) ==
- callingPackage := _*PACKAGE_*
- IN_-PACKAGE '"BOOTTRAN"
- result := BOOTTOCLLINES(nil,fn, out)
- setCurrentPackage callingPackage
- result
+ UNWIND_-PROTECT(
+ PROGN(startCompileDuration(),
+ callingPackage := _*PACKAGE_*,
+ IN_-PACKAGE '"BOOTTRAN",
+ result := BOOTTOCLLINES(nil,fn, out),
+ setCurrentPackage callingPackage,
+ result),
+ endCompileDuration())
++ (bootclam "filename") translates the file "filename.boot" to
++ the common lisp file "filename.clisp" , producing, for each function
@@ -126,11 +129,14 @@ shoeClLines(a,fn,lines,outfn)==
++ the common lisp file "filename.clisp" with the original boot
++ code as comments
BOOTTOCLC(fn, out)==
- callingPackage := _*PACKAGE_*
- IN_-PACKAGE '"BOOTTRAN"
- result := BOOTTOCLCLINES(nil, fn, out)
- setCurrentPackage callingPackage
- result
+ UNWIND_-PROTECT(
+ PROGN(startCompileDuration(),
+ callingPackage := _*PACKAGE_*,
+ IN_-PACKAGE '"BOOTTRAN",
+ result := BOOTTOCLCLINES(nil, fn, out),
+ setCurrentPackage callingPackage,
+ result),
+ endCompileDuration())
BOOTTOCLCLINES(lines, fn, outfn)==
infn:=shoeAddbootIfNec fn
@@ -421,6 +427,7 @@ translateToplevel(b,export?) ==
:[first translateToplevel(d,true) for d in ds]]
Import(m) =>
+ bootImport STRING m
[["IMPORT-MODULE", STRING m]]
ImportSignature(x, sig) =>
@@ -445,6 +452,7 @@ translateToplevel(b,export?) ==
[maybeExportDecl(["DEFPARAMETER",lhs,rhs],export?)]
namespace(n) =>
+ $activeNamespace := STRING n
[["IN-PACKAGE",STRING n]]
otherwise =>