diff options
author | dos-reis <gdr@axiomatics.org> | 2008-05-15 17:37:50 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-05-15 17:37:50 +0000 |
commit | 5d9bba2fab5a65886fc22464aa23f270532d44ba (patch) | |
tree | 9f369605930179b1d28e242b3d5fe7877fdc2ec1 /src/interp | |
parent | a0ca9827e820145f17a053081c4f3ece06de87d1 (diff) | |
download | open-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.boot | 2 | ||||
-rw-r--r-- | src/interp/define.boot | 3 | ||||
-rw-r--r-- | src/interp/lisplib.boot | 20 | ||||
-rw-r--r-- | src/interp/sys-utility.boot | 1 |
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 |