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 | |
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')
-rw-r--r-- | src/ChangeLog | 14 | ||||
-rw-r--r-- | src/algebra/Makefile.in | 6 | ||||
-rw-r--r-- | src/algebra/Makefile.pamphlet | 6 | ||||
-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 |
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 |