aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-05-15 17:37:50 +0000
committerdos-reis <gdr@axiomatics.org>2008-05-15 17:37:50 +0000
commit5d9bba2fab5a65886fc22464aa23f270532d44ba (patch)
tree9f369605930179b1d28e242b3d5fe7877fdc2ec1 /src
parenta0ca9827e820145f17a053081c4f3ece06de87d1 (diff)
downloadopen-axiom-5d9bba2fab5a65886fc22464aa23f270532d44ba.tar.gz
* interp/lisplib.boot (leaveIfErrors): New.
(compDefineLisplib): Use it. (finalizeLisplib): Likewise. * algebra/Makefile.pamphlet (%.NRLIB/code.$(FASLEXT)): Invoke the compiler directly. (SPADPRSR.NRLIB/code.$(FASLEXT)): Likewise. (PARSER.NRLIB/code.$(FASLEXT)): Likewise. * interp/compiler.boot (compSetq1): Fix thinko. * interp/define.boot (hasSigInTargetCategory): Give a clue to the pretty printer. * interp/sys-utility.boot ($ERASE): Remove declaration.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/algebra/Makefile.in6
-rw-r--r--src/algebra/Makefile.pamphlet6
-rw-r--r--src/interp/compiler.boot2
-rw-r--r--src/interp/define.boot3
-rw-r--r--src/interp/lisplib.boot20
-rw-r--r--src/interp/sys-utility.boot1
7 files changed, 37 insertions, 15 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b9ff33a9..c7fba115 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,17 @@
+2008-05-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/lisplib.boot (leaveIfErrors): New.
+ (compDefineLisplib): Use it.
+ (finalizeLisplib): Likewise.
+ * algebra/Makefile.pamphlet (%.NRLIB/code.$(FASLEXT)): Invoke the
+ compiler directly.
+ (SPADPRSR.NRLIB/code.$(FASLEXT)): Likewise.
+ (PARSER.NRLIB/code.$(FASLEXT)): Likewise.
+ * interp/compiler.boot (compSetq1): Fix thinko.
+ * interp/define.boot (hasSigInTargetCategory): Give a clue to the
+ pretty printer.
+ * interp/sys-utility.boot ($ERASE): Remove declaration.
+
2008-05-14 Gabriel Dos Reis <gdr@cs.tamu.edu>
* algebra/nregset.spad.pamphlet (recip$NormalizationPackage): Fix
diff --git a/src/algebra/Makefile.in b/src/algebra/Makefile.in
index b39027df..59ca6433 100644
--- a/src/algebra/Makefile.in
+++ b/src/algebra/Makefile.in
@@ -859,7 +859,7 @@ ${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
@ rm -rf $*.NRLIB
- echo ")co $*.spad" | ${INTERPSYS} --strap=strap
+ ${INTERPSYS} --strap=strap --compile $<
# Compile bootstrap file to machine object code, and the result
# immediately available for AXIOMsys consumption.
strap/%.$(FASLEXT): %.lsp
@@ -900,11 +900,11 @@ $(axiom_build_texdir)/diagrams.tex: $(axiom_src_docdir)/diagrams.tex
SPADPRSR.NRLIB/code.$(FASLEXT): spad-parser.spad
@ rm -rf SPADPRSR.NRLIB
- echo ")co $(srcdir)/spad-parser.spad" | ${INTERPSYS}
+ ${INTERPSYS} --compile $<
PARSER.NRLIB/code.$(FASLEXT): script-parser.spad
@ rm -rf PARSER.NRLIB
- echo ")co $(srcdir)/script-parser.spad" | ${INTERPSYS}
+ ${INTERPSYS} --compile $<
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 2a69bec4..28596791 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -1794,7 +1794,7 @@ ${OUT}/%.$(FASLEXT): %.NRLIB/code.$(FASLEXT)
.PRECIOUS: %.NRLIB/code.$(FASLEXT)
%.NRLIB/code.$(FASLEXT): %.spad
@ rm -rf $*.NRLIB
- echo ")co $*.spad" | ${INTERPSYS} --strap=strap
+ ${INTERPSYS} --strap=strap --compile $<
@
<<genericBOOTSTRAPfiles>>=
@@ -1851,11 +1851,11 @@ $(axiom_build_texdir)/diagrams.tex: $(axiom_src_docdir)/diagrams.tex
SPADPRSR.NRLIB/code.$(FASLEXT): spad-parser.spad
@ rm -rf SPADPRSR.NRLIB
- echo ")co $(srcdir)/spad-parser.spad" | ${INTERPSYS}
+ ${INTERPSYS} --compile $<
PARSER.NRLIB/code.$(FASLEXT): script-parser.spad
@ rm -rf PARSER.NRLIB
- echo ")co $(srcdir)/script-parser.spad" | ${INTERPSYS}
+ ${INTERPSYS} --compile $<
@
<<diagrams.tex (OUT from IN)>>=
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 94ee5e16..19c7a5ea 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -634,7 +634,7 @@ compCons1(["CONS",x,y],m,e) ==
--% SETQ
compSetq: (%List,%Thing,%List) -> %List
-compSetq1: (%List,%Thing,%List) -> %List
+compSetq1: (%List,%Thing,%Mode,%List) -> %List
compSetq(["LET",form,val],m,E) == compSetq1(form,val,m,E)
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 29205ebd..6f7ad89f 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -929,7 +929,8 @@ hasSigInTargetCategory(argl,form,opsig,e) ==
0=c => (#(sig:= getSignatureFromMode(form,e))=#form => sig; nil)
1<c =>
sig:= first potentialSigList
- stackWarning('"signature of lhs not unique: %1bp chosen",[sig])
+ stackWarning('"signature of lhs not unique: %1bp chosen",
+ [["Mapping",:sig]])
sig
nil --this branch will force all arguments to be declared
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot
index 57140a59..2176e394 100644
--- a/src/interp/lisplib.boot
+++ b/src/interp/lisplib.boot
@@ -365,9 +365,9 @@ compDefineLisplib(df:=["DEF",[op,:.],:.],m,e,prefix,fal,fn) ==
ok := false;
UNWIND_-PROTECT(
PROGN(res:= FUNCALL(fn,df,m,e,prefix,fal),
+ leaveIfErrors(),
sayMSG ['" finalizing ",$spadLibFT,:bright libName],
- finalizeLisplib libName,
- ok := true),
+ ok := finalizeLisplib libName),
RSHUT $libFile)
if ok then lisplibDoRename(libName)
filearg := $FILEP(libName,$spadLibFT,$libraryDirectory)
@@ -419,7 +419,16 @@ initializeLisplib libName ==
$lisplibSignatureAlist := nil
if pathnameTypeId(_/EDITFILE) = 'SPAD
then LAM_,FILEACTQ('VERSION,['_/VERSIONCHECK,_/MAJOR_-VERSION])
-
+
+++ If compilation produces an error, issue inform user and
+++ return to toplevel reader.
+leaveIfErrors() ==
+ errorCount() ^=0 =>
+ sayMSG ['" Errors in processing ",kind,'" ",:bright libName,'":"]
+ sayMSG ['" not replacing ",$spadLibFT,'" for",:bright libName]
+ spadThrow()
+
+++ Finalize `libName' compilation; returns true if everything is OK.
finalizeLisplib libName ==
lisplibWrite('"constructorForm",removeZeroOne $lisplibForm,$libFile)
lisplibWrite('"constructorKind",kind:=removeZeroOne $lisplibKind,$libFile)
@@ -454,9 +463,8 @@ finalizeLisplib libName ==
if $profileCompiler then profileWrite()
if $lisplibForm and null CDR $lisplibForm then
MAKEPROP(CAR $lisplibForm,'NILADIC,'T)
- errorCount() ^=0 =>
- sayMSG ['" Errors in processing ",kind,'" ",:bright libName,'":"]
- sayMSG ['" not replacing ",$spadLibFT,'" for",:bright libName]
+ leaveIfErrors()
+ true
lisplibDoRename(libName) ==
_$REPLACE([libName,$spadLibFT,$libraryDirectory],
diff --git a/src/interp/sys-utility.boot b/src/interp/sys-utility.boot
index 409632be..cff7ff0f 100644
--- a/src/interp/sys-utility.boot
+++ b/src/interp/sys-utility.boot
@@ -166,7 +166,6 @@ existingFile? file ==
++ original version returned 0 on success, and 1 on failure
++ ??? fix that to return -1 on failure.
-$ERASE: %Thing -> %Short
$ERASE(:filearg) ==
-removeFile MAKE_-FULL_-NAMESTRING filearg