aboutsummaryrefslogtreecommitdiff
path: root/src/interp/sys-macros.lisp
AgeCommit message (Collapse)AuthorFilesLines
2022-08-30Do not generate `SPADLET` opcode (#23)Gabriel Dos Reis1-13/+5
This patch makes the Spad compiler no longer generate `SPADLET`.
2016-01-30Do not rename mkpf.Gabriel Dos Reis1-7/+7
2016-01-30Tidy category predicate conjunction.Gabriel Dos Reis1-1/+1
2015-12-26Remove dispatchFunction.Gabriel Dos Reis1-3/+0
2014-11-20Introduce forkStreamByName.dos-reis1-2/+2
2013-05-29Simplify backend functionsdos-reis1-1/+1
2013-05-29Misc cleanups.dos-reis1-2/+2
2012-05-23 * interp/vmlisp.lisp (MAKE-CVEC): Remove.dos-reis1-9/+0
(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.
2012-05-08 * boot/tokens.boot: Export char. Do not rename maxIndex.dos-reis1-11/+0
* 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.
2012-05-01 * interp/i-special.boot (interpREPEAT): Use CATCH directly.dos-reis1-33/+0
* interp/int-top.boot (intloopSpadProcess): Likewise. * interp/sys-macros.lisp (funcall): Remove. (Catch): Likewise. (Throw): Likewise. (UnwindProtect): Likewise. (SPADCATCH): Likewise. (SPADTHROW): Likewise. (YIELD): Likewise.
2012-05-01 * algebra/integer.spad.pamphlet (Integer): Use %iaddmod, %isubmod,dos-reis1-8/+8
%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.
2012-04-30 * algebra/si.spad.pamphlet (SingleInteger): Use %iaddmod,dos-reis1-19/+0
%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.
2012-04-30 * interp/compiler.boot: Use float? in lieu of FLOATP.dos-reis1-2/+2
* 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.
2012-04-29 * interp/debug.lisp: ident? in lieu of IDENTP.dos-reis1-5/+5
* interp/macros.lisp: Likewise. * interp/parsing.lisp: Likewise. * interp/sys-macros.lisp: Likewise. * interp/vmlisp.lisp: Likewise. (IDENTP): Remove.
2011-10-30 * interp/sys-macros.lisp (MKPF1): Tidy.dos-reis1-7/+7
* 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.
2011-10-01 * boot/utility.boot: Define BOOTTRAN namespace.dos-reis1-1/+1
(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.
2011-09-10 * interp/macros.lisp (COERCE-FAILURE-MSG): Remove.dos-reis1-0/+9
(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.
2011-05-29 * lisp/core.lisp.in (readExpr): New.dos-reis1-9/+0
* 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.
2011-05-01 * interp/macros.lisp (WI, tryLine, embrace indentNB, tryBreak)dos-reis1-62/+1
(tryBreakNB, MARKHASH): Remove. * interp/spad.lisp (NEWNAMTRANS): Likewise. * interp/sys-macros.lisp: Remove more Lispy junk.
2011-05-01 * interp/buildom.boot: Replace use of EQSUBSTLIST with applySubst.dos-reis1-57/+0
* 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.
2011-04-30 * More cleanupdos-reis1-6/+6
2011-04-22more cleanupdos-reis1-1/+1
2011-04-22 * boot/utility.boot (copyList): Define.dos-reis1-6/+6
(append!): Likewise. * boot/tokens.boot: Do not translate nconc.
2011-04-21 * boot/utility.boot (objectMember?): Don't rely non tail recursiondos-reis1-1/+1
removal. (reverse): Define. * boot/tokens.boot: Don't rename reverse anymore. * boot/ast.boot: Generate reverse forms instead of REVERSE.
2011-04-21 * boot/tokens.boot: Don't rename nreverse.dos-reis1-12/+12
* boot/utility.boot (reverse!): Define. * boot/parser.boot: Use reverse! instead of NREVERSE. * boot/ast.boot: Generate reverse! forms instead of NREVERSE.
2011-02-24Rename getShellEntry to shellEntry now that it is a macro accessor that ↵dos-reis1-3/+0
designate a place (usable in SETF).
2011-02-24 * interp/sys-macros.lisp (shellEntry): New.dos-reis1-0/+3
* 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.
2011-02-24more cleanupsdos-reis1-1/+4
2010-11-16 * interp/g-opt.boot ($VMsideEffectFreeOperators): Include %s2cdos-reis1-0/+10
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.
2010-05-28 * interp/sys-utility.boot (eval): Define here.dos-reis1-4/+1
* 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.
2010-05-27 * interp/sys-macros.lisp (eval): Expand opcodes before calling EVAL.dos-reis1-1/+1
* 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.
2009-07-05 * interp/c-util.boot ($middleEndMacroList): Remove COLLECTV.dos-reis1-65/+0
* 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.
2009-07-03 * interp/sys-macros.lisp (PRIMVEC2ARR): Remove.dos-reis1-10/+1
(COLLECTVEC): Likewise. * interp/compiler.boot (compRepeatOrCollect): Tidy.
2009-07-02 * interp/sys-macros.lisp (COLLECTV): Use setSimpleArrayEntry, notdos-reis1-1/+1
SETELT.
2009-06-01 * interp/compiler.boot (compGreaterThan): New. Compiledos-reis1-0/+3
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.
2009-04-27 * interp/sys-macros.lisp (makeSimpleArrayFromList): New.dos-reis1-0/+3
* algebra/array1.spad.pamphlet (construct$PrimitiveArray): Implement. (copy$PrimitiveArray): Likewise. (IndexedOneDimensionalArray): Rework. Explicitly use PrimitiveArray(S) as representation domain.
2008-11-17 * lisp/core.lisp.in (|getOptionValue|): Make second argument optional.dos-reis1-0/+5
* 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.
2008-11-16 * interp/c-util.boot: Clean up.dos-reis1-5/+3
* 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.
2008-11-15 * interp/compiler.boot: Import "msgdb", not "c-util". Movedos-reis1-0/+3
compiler driver to i-syscmd.boot. * interp/define.boot: Import "nruncomp", "functor", "package". * interp/wi2.boot (NRTgetLocalIndex): Remove duplicate.
2008-10-31 * interp/sys-macros.lisp (APPEND2): Remove.dos-reis1-3/+0
2008-10-06 * interp/sys-macros.lisp (|quietlyIfInteractive|): New.dos-reis1-0/+6
* interp/compiler.boot (quietlyIfInteractive): Use it. (compQuietly): Likewise. (compileQuietly): Likewise.
2008-09-21 * interp/sys-macros.lisp (|byteEqual|): New.dos-reis1-2/+5
* 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.
2008-08-13 (|COMP,TRAN|): Remove.dos-reis1-1/+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.
2008-07-07 * interp/spad.lisp (S-PROCESS): Remove Old Boot specific codes.dos-reis1-2/+2
* 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.
2008-04-21Fix thinkodos-reis1-2/+2
2008-04-21Add support for byte values, and byte buffers.dos-reis1-0/+36
2008-03-25 * interp/bootlex.lisp: Import "sys-globals". dos-reis1-1/+1
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.
2008-03-24Add support for SBCL and CLispdos-reis1-4/+4
2008-01-31Clean up unlisp.lisp.dos-reis1-0/+17
2007-11-25 * Makefile.pamphlet (patches.$(FASLEXT)): New rule.dos-reis1-0/+7
(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.