aboutsummaryrefslogtreecommitdiff
path: root/src/interp
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/interp
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/interp')
-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
4 files changed, 17 insertions, 9 deletions
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