Age | Commit message (Collapse) | Author | Files | Lines |
|
This patch makes the Spad compiler no longer generate `SPADLET`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(GETSTR): Likewise.
* interp/sys-macros.lisp (INTERNL): Likewise.
* interp/macros.lisp: Move content to vmlisp.lisp. Remove.
* interp/Makefile.in: Adjust.
* interp/debug.lisp: Now import sys-macros
* interp/fname.lisp: Likewise.
* interp/format.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htcheck.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/monitor.lisp: Likewise.
* interp/newaux.lisp: Likewise.
* interp/newfort.boot: Likewise.
* interp/nlib.lisp: Likewise.
* interp/postpar.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/server.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/setvart.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/simpbool.boot: Likewise.
* interp/spad.lisp: Likewise.
* interp/termrw.boot: Likewise.
* interp/topics.boot: Likewise.
|
|
* lisp/core.lisp.in (maxIndex): Define and export.
* interp/bootlex.lisp: Adjust.
* interp/parsing.lisp: Likewise.
* interp/macros.lisp: Likewise.
(DROPTRAILINGBLANKS): Remove.
(BLANKP): Likewise.
(NONBLANKLOC): Likewise.
* interp/io.boot (trimTrailingBlank): New.
(firstNonblankCharPosition): Likewise.
* interp/preparse.lisp: Use them. Adjust.
* interp/sys-macros.lisp (char): Remove.
* interp/vmlisp.lisp (MAXINDEX): Likewise.
* interp/br-search.boot (pmTransFilter): Fix bogus uses of char.
* interp/debug.lisp: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
|
|
* interp/int-top.boot (intloopSpadProcess): Likewise.
* interp/sys-macros.lisp (funcall): Remove.
(Catch): Likewise.
(Throw): Likewise.
(UnwindProtect): Likewise.
(SPADCATCH): Likewise.
(SPADTHROW): Likewise.
(YIELD): Likewise.
|
|
%imulmod.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* interp/c-util.boot (devaluate): Use # in lieu of QVSIZE.
* interp/g-opt.boot: %ilfshift and %irshift are now builtin
side-effect free operations.
* interp/lisp-backend.boot: Translate them.
* interp/g-util.boot (mergeSort): Avoid QSDIFFERENCE.
* interp/slam.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/macros.lisp: Avoid QVMAXINDEX.
* interp/vmlisp.lisp (QSDIFFERENCE): Remove.
(QSGREATERP): Likewise.
(QSLEFTSHIFT): Likewise.
(QSLESSP): Likewise.
(QSMAX): Likewise.
(QSMIN): Likewise.
(QSMINUS): Likewise.
(QSMINUSP): Likewise.
(QSODDP): Likewise.
(QSABSVAL): Likewise.
(QSPLUS): Likewise.
(QSZEROP): Likewise.
(QVMAXINDEX): Likewise.
(QVSIZE): Likewise.
(ZERO?): Likewise.
|
|
%isubmod, and %imulmod.
* interp/g-opt.boot: These are now builtin side-effect operators.
(optIaddmod): New optimizer. Register.
(optIsubmod): Likewise.
(optImulmod): Likewise.
* interp/sys-macros.lisp (QSADDMOD): Remove.
(QSDIFMOD): Likewise.
(QSMULMOD): Likewise.
|
|
* interp/fortcall.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/i-analy.boot: Compare to 0 in lieu of ZEROP.
* interp/i-special.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/sys-driver.boot: Likewise.
* interp/macros.lisp: Directly use 1+ instead of QADD1.
* interp/preparse.lisp: Likewise.
* interp/slam.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/sys-constants.boot ($BasicPredicates): Remove as unused.
* interp/vmlisp.lisp (ADD1): Remove.
(QSADD1): Likewise.
(QSSUB1): Likewise.
(QSTIMES): Likewise.
|
|
* interp/macros.lisp: Likewise.
* interp/parsing.lisp: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/vmlisp.lisp: Likewise.
(IDENTP): Remove.
|
|
* interp/sys-constants.boot ($QueryVariables): New.
* interp/define.boot ($whreDecls): Remove.
(checkRepresentation): Take a DB as first parameter. Adjust Callers.
(buildConstructorCondition): New
(deduceImplicitParameters): Likewise
(compDefineCategory2): Use it.
(compDefineFunctor1): Likewise.
(typeDependencyPath): Remove.
(inferConstructorImplicitParameters): Likewise.
* interp/compiler.boot (compTopLevel): Do not bind $whereDecls.
(recordDeclarationInSideCondition): Take additional reference
parameter to the list of processed decls. Adjust callers.
(compWhere): Record any side decls in compilation environment.
* interp/c-util.boot (makeCompilationData): Initialize implicit data.
(dbParameters): New.
(dbImplicitData): New accessor macro.
(dbImplicitParameters): New.
(dbImplicitConstraints): Likewise.
(dbSubstituteFormals): Likewise.
(dbSubstituteQueries): Likewise.
* interp/database.boot (fixUpPredicate): Tidy.
* boot/utility.boot (applySubst): Early exit on identity substitution.
(applySubst!): Likewise.
(applySubstNQ): Likewise.
* boot/ast.boot (bfIS1): Accept pattern matching against Boolean
constant true.
|
|
(setUnion): New.
(setDifference): New.
* boot/translator.boot (packageBody): New.
(translateToplevel): Use it. Translate namespace definition.
* boot/tokens.boot: Replace bitmask with bitref.
Do not translate setDifference and setUnion.
* boot/parser.boot (bpDef): Now include namespace definition.
(bpComma): Remove namespace rule as subsumed by Where rule.
* boot/Makefile.in: Remove dependencies on initial-env.lisp.
(AXIOM_LOCAL_LISP_sources): Remove as unused,
(boot_sources): Remove as redundant with boot_SOURCES.
* boot/initial-env.lisp: Remove.
|
|
(check-subtype): Likewise.
(check-union): Likewise.
(MAKE-REASONABLE): Move to diagnostic.boot. Rename.
(assert): Move to sys-macros.lisp.
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %retract
and %pullback.
(optRetract): Tidy.
(optPullback): New.
* interp/diagnostics.boot (makeReasonable): New.
(moanRetract): Likewise. Use it.
* interp/buildom.boot (mkNewUnionFunList): Simplify.
(mkUnionFunList): Likewise.
|
|
* interp/as.boot: Replace READLINE with readLine.
* interp/br-data.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/g-error.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/htcheck.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/server.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/compat.boot (READLINE): Remove.
* interp/sys-macros.lisp (shoeConsole): Remove.
(shoeInputFile): Likewise.
(shoeread-line): Likewise.
* boot/ast.boot (bfQ): %nothing only needs EQ.
* algebra/files.spad.pamphlet (File) [read!, readIfCan!]: Use
readExpr instead of VMREAD. Avoid PLACEP
(TextFile) [readLine!, readLineIfCan!]: Likewise.
|
|
(tryBreakNB, MARKHASH): Remove.
* interp/spad.lisp (NEWNAMTRANS): Likewise.
* interp/sys-macros.lisp: Remove more Lispy junk.
|
|
* interp/c-util.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/hashcode.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/rulesets.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/sys-macros.lisp (APPLYR, TAILFN, TAIL, rplac): Remove as
unused.
|
|
|
|
|
|
(append!): Likewise.
* boot/tokens.boot: Do not translate nconc.
|
|
removal.
(reverse): Define.
* boot/tokens.boot: Don't rename reverse anymore.
* boot/ast.boot: Generate reverse forms instead of REVERSE.
|
|
* boot/utility.boot (reverse!): Define.
* boot/parser.boot: Use reverse! instead of NREVERSE.
* boot/ast.boot: Generate reverse! forms instead of NREVERSE.
|
|
designate a place (usable in SETF).
|
|
* interp/g-util.boot (setShellEntry): Remove.
* interp/compiler.boot: Use %store to %tref forms instead of
setHSellEntry.
* interp/define.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/c-util.boot (isSimple): Tidy.
(isSideEffectFree): Likewise.
(updateCapsuleDirectory): Likewise.
|
|
|
|
builtin.
* interp/g-util.boot (stringToChar): New.
(expandCst): Use it.
(expandS2c): Likewise. New.
* interp/spad.lisp (|$Newline): Move to interp/sys-macros.lisp.
* interp/sys-macros.lisp (|$Backspace): New.
(|$HorizontalTab|): Likewise.
(|$VerticalTab|): Likewise.
(|$FormFeed|): Likewise.
(|$CarriageReturn|): Likewise.
* algebra/string.spad.pamphlet (Character) [newline]: New.
[carriageReturn]: Likewise.
[linefeed]: Likewise.
[formfeed]: Likewise.
[backspace]: Likewise.
[horizontalTab]: Likewise.
[verticalTab]: Likewise.
[char]: Tidy.
|
|
* interp/br-con.boot: Use it.
* interp/br-op1.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/server.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/sys-macros.lisp (eval): Move to sys-utility.boot.
|
|
* interp/slam.boot (reportFunctionCompilation): Tidy. Take extra
care when generating code that access global variables.
(reportFunctionCacheAll): Likewise.
* interp/i-util.boot (isLocallyBound): Define.
* interp/i-spec1.boot (upCOLLECT1): Bind $iteratorVars to nil.
(upLoopIterSTEP): Call mkIteratorVariable instead of mkLocalVar.
(upLoopIterIN): Likewise.
(upStreamIterIN): Likewise.
(upStreamIterSTEP): Likewise.
(collectOneStream): Tidy.
(mkAndApplyPredicates): Likewise.
(mkIterFun): Lose last parameter. Tidy.
(declare): Use isLocallyBound.
(getAndEvalConstructorArgument): Likewise.
(mkIteratorVariable): New.
($iteratorVars): New.
* interp/i-spec2.boot (upREPEAT1): Bind $iteratorVars to nil.
(isLocalPred): Use isLocallyBound.
(compileIs): Likewise.
(evalLETput): Likewise.
(evalLETchangeValue): Likewise.
(isType): Likewise.
* interp/i-analy.boot (bottomUp): Likewise.
(bottomUpDefaultCompile): Likewise.
* interp/i-eval.boot (evalForm): Likewise.
(getMappingArgValue): Likewise.
* interp/i-map.boot (findLocalVars1): Likewise.
(findLocalsInLoop): Tidy. Filter out iterator variables.
(isLocalVar): Remove.
* interp/g-util.boot (mkCacheName): Define here.
(mkAuxiliaryName): Likewise.
* interp/c-util.boot (backendCompileSLAM): Use mkCacheName.
(backendCompileSPADSLAM): Likewise.
* interp/clam.boot (compClam): Likewise.
(clearCategoryCaches): Likewise.
(clearCategoryCache): Likewise.
* interp/g-timer.boot (timedEVALFUN): expandToVMForm is now
implicitly called by eval.
|
|
* interp/compiler.boot: Don't register compiler for COLLECTV forms.
(compReduce1): Don't test for COLLECTV.
(localReferenceIfThere): New.
(compRepeatOrCollect): Use it. Tidy.
(compCollectV): Remove.
(compIteratorV): Likewise.
(computeMaxIndex): Likewise.
(exprDifference): Likewise.
* interp/g-opt.boot (optCollectVector): New. Register as
back end tranformer.
* interp/sys-macros.lisp (COLLECTV): Remove.
|
|
(COLLECTVEC): Likewise.
* interp/compiler.boot (compRepeatOrCollect): Tidy.
|
|
SETELT.
|
|
greater-than expressions.
* interp/parse.boot (parseGreaterThan): Remove.
* algebra/data.spad.pamphlet (Byte): Implement all comparison
functions.
* algebra/integer.spad.pamphlet (Integer): Likewise.
* algebra/sf.spad.pamphlet (DoubleFloat): Likewise.
* algebra/si.spad.pamphlet (SingleInteger): Likewise.
* algebra/string.spad.pamphlet (Character): Likewise.
|
|
* algebra/array1.spad.pamphlet (construct$PrimitiveArray): Implement.
(copy$PrimitiveArray): Likewise.
(IndexedOneDimensionalArray): Rework. Explicitly use
PrimitiveArray(S) as representation domain.
|
|
* interp/sys-driver.boot (initializeGlobalState): Set
$compileExportsOnly.
* interp/lisplib.boot (compDefineExports): New.
* interp/define.boot (skipCategoryPackage?): New.
(compDefineCategory1): Use it.
(compDefineFunctor): Don't compile to NRLIB if interested only in
exports.
(compDefineFunctor1): Honor $compileExportsOnly.
* interp/sys-macros.lisp (|withOutputFile|): New.
* interp/sys-utility.boot (quoteForm): Likewise.
|
|
* interp/database.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/define.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/macros.lisp: Likewise.
* interp/nrungo.boot: Likewise.
* interp/preparse.lisp: Likewise.
* interp/spad.lisp: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/trace.boot: Likewise.
* interp/types.boot: Likewise.
* interp/vmlisp.lisp: Likewise.
* interp/word.boot: Likewise.
|
|
compiler driver to i-syscmd.boot.
* interp/define.boot: Import "nruncomp", "functor", "package".
* interp/wi2.boot (NRTgetLocalIndex): Remove duplicate.
|
|
|
|
* interp/compiler.boot (quietlyIfInteractive): Use it.
(compQuietly): Likewise.
(compileQuietly): Likewise.
|
|
* algebra/boolean.spad.pamphlet (PropositionalLogic): Extend
SetCategory.
(PropositionalFormula): Now unconditional exports coercion to
OutputForm. Adjust implementation.
(KleeneTrivalentLogic): New.
* algebra/data.spad.pamphlet (Byte): Tidy.
* algebra/Makefile.pamphlet (axiom_algebra_layer_0): Move PROPLOG
to layer 1.
|
|
(|spadHash|): Likewise.
(|$internalHistoryTable|): Don't define here.
(|isBpiOrLambda|): Remove.
(|libraryFileLists|): Likewise.
(|normalizeArgFileName|): Likewise.
(save-system) [LUCID]: Likewise.
(|undoINITIALIZE|): Likewise.
(|isLowerCaseLetter|): Don't define here.
(|isUpperCaseLetter|): Likewise.
(|isLetter|): Likewise.
(printCopyright): Remove.
(user-homedir-pathname): Likewise.
(BUMPCOMPERRORCOUNT): Likewise.
(|cpCms|): Likewise.
(|normalizeTimeAndStringify|): Likewise.
(whocalled): Likewise.
(|compressHashTable|): Likewise.
(SETLETPRINTFLAG): Don't define here.
(RESTART0): Move to sys-driver.boot
* interp/g-util.boot (charRangeTest): Remove.
|
|
* interp/server.boot (parseAndInterpret): Don't set $BOOT.
* interp/setvars.boot (resetWorkspaceVariables): Likewise.
* interp/spad-parser.boot (parseSpadFile): Likewise.
* interp/postpar.boot: Disable Old Boot handling codes.
* interp/metalex.lisp (quote-if-string): Don't test for $BOOT.
* interp/parsing.lisp (IOStat): Likewise.
(IOClear): Likewise.
* interp/ht-util.boot (parseAndEval): Don't set $BOOT.
* interp/int-top.boot (ncTopLevel): Likewise.
* interp/fnewmeta.lisp: Remove Old Boot specific productions.
* interp/sys-macros.lisp (-REDUCE): Don't test for $BOOT.
(SPADDO): Likewise.
* interp/comp.lisp (COMP-TRAN-1): Likewise.
* interp/util.lisp (|string2SpadTree|): Likewise.
* interp/bootlex.lisp (READBOOT): Remove.
(READ-BOOT): Likewise.
(spad): Don't initialize $BOOT.
* interp/debug.lisp (/D-2): Likewise.
|
|
|
|
|
|
Consistently use $InputStream and $OutputStream for I/O.
* interp/c-util.boot: Likewise.
* interp/comp.lisp: Likewise.
* interp/compat.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/def.lisp: Likewise.
* interp/g-error.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macros.lisp: Likewise.
* interp/metalex.lisp: Likewise.
* interp/msgdb.boot: Likewise.
* interp/patches.lisp: Likewise.
* interp/preparse.lisp: Likewise.
* interp/server.boot: Likewise.
* interp/spad-parser.boot: Likewise.
* interp/spad.lisp: Likewise.
* interp/sys-globals.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/sys-os.boot: Likewise.
* interp/unlisp.lisp: Likewise.
* interp/vmlisp.lisp: Likewise.
* interp/Makefile.pamphlet (bootlex.$(FASLEXT)): Require
sys-globals.$(FASLEXT) too.
(vmlisp.$(FASLEXT)): Likewise.
|
|
|
|
|
|
(setvars.$(FASLEXT)): Likewise.
(osyscmd.$(FASLEXT)): Likewise.
(intint.$(FASLEXT)): Likewise.
(int-top.$(FASLEXT)): Likewise.
(wi2.$(FASLEXT)): Likewise.
(wi1.$(FASLEXT)): Likewise.
(template.$(FASLEXT)): Likewise.
(package.$(FASLEXT)): Likewise.
(xruncomp.$(FASLEXT)): Likewise.
(interop.$(FASLEXT)): Likewise.
(mark.$(FASLEXT)): Likewise.
(daase.$(FASLEXT)): Likewise.
(monitor.$(FASLEXT)): Likewise.
(hashcode.$(FASLEXT)): Likewise.
(pspad2.$(FASLEXT)): Likewise.
(pspad1.$(FASLEXT)): Likewise.
(nocompil.$(FASLEXT)): Likewise.
(fname.$(FASLEXT)): Likewise.
|