aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
AgeCommit message (Collapse)AuthorFilesLines
2008-07-03 (compAndDefine): Capture by name, not pointer.dos-reis1-7/+7
(compQuietly): Likewise. (compileQuietly): Likewise. * interp/macros.lisp (PRINT-AND-EVAL-DEFUN): Move to sys-utility.boot. (EVAL-DEFUN): Likewise. (COMPILE-DEFUN): Likewise.
2008-07-02 (coerceExtraHard): Convert domain instantiations to domain objects.dos-reis1-8/+10
2008-07-02 * interp/compiler.boot (compExpression): Tidy.dos-reis1-2/+3
2008-06-03 * interp/comp.lisp (|compAndDefine|): Move to interp/compiler.bootdos-reis1-0/+43
(COMP): Likewise. (|compQuietly|): Likewise. (|compileQuietly|): Likewise. (COMP-1): Likewise.
2008-05-24 * interp/c-util.boot (stackAndThrow): Take an optional parameter.dos-reis1-2/+2
* interp/compiler.boot (compReturn): Robustify. (unknownTypeError): Likewise. * interp/info.boot (knownInfo): Likewise.
2008-05-17 * interp/compiler.boot (compSetq1): Use %Comma, not Tuple.dos-reis1-2/+2
(setqMultiple): Likewise. * interp/def.lisp (DEF-IS2): Likewise. * interp/define.boot (compAdd): Likewise. * interp/fnewmeta.lisp (|PARSE-Enclosure|): Likewise. * interp/fortcall.boot (lmultiToUnivariate): Likewise. (functionAndJacobian): Likewise. (vectorOfFunctions): Likewise. * interp/mark.boot (markMultipleExplicit): Likewise. (markInsertBodyParts): Likewise. * interp/nruncomp.boot (NRTaddDeltaCode): Likewise. * interp/nrunopt.boot (NRTextendsCategory1): Likewise. * interp/postpar.boot (postTransform): Likewise. (postTran): Likewise. (postPretend): Likewise. (postConstruct): Likewise. (postBlockItem): Likewise. (postCategory): Likewise. (postForm): Likewise. (postTransScripts): Likewise. (postJoin): Likewise. (postMapping): Likewise. (postCollect): Likewise. (postInSeq): Likewise. (postType): Likewise. (post%Comma): Rename from postTuple. (unComma): Rename from unTuple. (comma2Tuple): Remove. * interp/trace.boot (traceSpad2Cmd): Use %Comma, not Tuple. * interp/wi1.boot (compSetq1): Likewise. (setqMultiple):Likewise. * boot/translator.boot (compileBootHandler): Give up if translation to Lisp contained errors. * testsuite/compiler/aw-420.spad: New.
2008-05-16 * interp/lisplib.boot (leaveIfErrors): Take constructor namedos-reis1-1/+1
parameter. (finalizeLisplib): Adjust call. (compDefineLisplib): Likewise.
2008-05-15 * interp/lisplib.boot (leaveIfErrors): New.dos-reis1-1/+1
(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-12 * interp/c-util.boot (isLiteral): Declare.dos-reis1-1/+1
(makeLiteral): Likewise. * interp/compiler.boot (compSymbol): Use isLiteral. * interp/wi1.boot (compSymbol): Likewise.
2008-05-11 Restrict loop variable scopes, take 2.dos-reis1-4/+4
* interp/iterator.boot (compReduce1): Maintain proper scope for loop variables. (compRepeatOrCollect): Really maintain proper scope for loop variables. * interp/compiler.boot (eltModemapFilter): Highlight faulty selector. (seteltModemapFilter): Likewise. * interp/c-util.boot (stackMessage): Don't build message if there is no argument for substitution. * algebra/aggcat.spad.pamphlet (#$UnaryRecursiveAggregate): Declare free loop variable. (cycleEntry$UnaryRecursiveAggregate): Likewise. (cycleLength): Likewise. (merge$OneDimensionalArrayAggregate): Likewise. (delete$OneDimensionalArrayAggregate): Likewise. (position$ListAggregate): Likewise. * algebra/array1.spad.pamphlet (merge!$IndexedFlexibleArray): Likewise. * algebra/combfunc.spad.pamphlet (K2fact$CombinatorialFunction): Likewise. * algebra/curve.spad.pamphlet (nonSingularModel$FunctionFieldCategory): Likewise. * algebra/dpolcat.spad.pamphlet (differentiate$DifferentialPolynomialCategory): Likewise. * algebra/efstruc.spad.pamphlet (validExponential$ElementaryFunctionStructurePackage): Likewise. (ker2explogs$InnerTrigonometricManipulations): Likewise. (complexNormalize$TrigonometricManipulations): Likewise.
2008-05-11 * interp/iterator.boot (compRepeatOrCollect): Don't iteratordos-reis1-1/+1
variables and variables declared in a loop are local to that loop. * interp/g-error.boot (needsToSplitMessage): New. (errorSupervisor): Use it. * interp/compiler.boot (compSymbol): Highlight erron=eous symbol. * interp/wi1.boot (stackMessage): Remove duplicate. * algebra/ffcat.spad.pamphlet (FiniteFieldCategory): Tidy. * algebra/fff.spad.pamphlet (FiniteFieldFunctions): Likewie. * algebra/groebsol.spad.pamphlet (GroebnerSolve): Likewise. * algebra/intfact.spad.pamphlet (IntegerRoots): Likewise. * algebra/mkfunc.spad.pamphlet (InputForm): Likewise. * algebra/numtheor.spad.pamphlet (IntegerNumberTheoryFunctions): Likewise. * algebra/permgrps.spad.pamphlet (PermutationGroup): Likewise. * algebra/random.spad.pamphlet (RandomFloatDistributions): Likewise. * algebra/sgcf.spad.pamphlet (SymmetricGroupCombinatoricFunctions): Likewise. * algebra/triset.spad.pamphlet (PolynomialSetUtilitiesPackage): Likewise. * algebra/twofact.spad.pamphlet (TwoFactorize): Likewise.
2008-05-10Misc cleanup.dos-reis1-35/+35
2008-05-09 * interp/as.boot: Remove Old Boot semantics.dos-reis1-1/+1
* interp/br-con.boot: Likewise. * interp/br-data.boot: Likewise. * interp/br-op1.boot: Likewise. * interp/br-op2.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/fortcall.boot: Likewise. * interp/functor.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise.
2008-05-08 * boot/translator.boot (bpOutItem): Handle namespace declaration.dos-reis1-1/+1
Update all boot files to use `namespace' instead of `)package'. * interp/: Likewise.
2008-04-23 * boot/ast.boot: Tidy.dos-reis1-5/+5
* boot/includer.boot: Likewise. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/tokens.boot: Likewise. * boot/translator.boot: Likewise. * boot/strap: Update Lisp translation. * lisp/core.lisp.in: Tidy.
2008-04-21Fix thinkodos-reis1-1/+1
2008-04-21Add support for byte values, and byte buffers.dos-reis1-2/+2
2008-04-14 * interp/compiler.boot: Don't special case ListCategory, String,dos-reis1-4/+0
VECTOR, and VectorCategory.
2008-04-13Various cleanups.dos-reis1-58/+58
2008-04-12 * interp/compiler.boot: Register compiler for Enumerationdos-reis1-4/+19
instantiations. * interp/modemap.boot (compCat): Move to compiler.boot.
2008-04-09 * interp/nlib.lisp (recompile-lib-file-if-necessary): Remove.dos-reis1-0/+9
* interp/comp.lisp (|compileFileQuietly|): Move to compiler.boot.
2008-04-07 * interp/compiler.boot (compWithMappingMode): Use getShellEntry.dos-reis1-3/+2
* interp/define.boot (compDefineFunctor1): Use setShellEntry. (canCacheLocalDomain): Likewise. (compilerCases): Likewise. (doIt): Likewise. * interp/functor.boot (setVector0): Likewise. (setVector3): Likewise. (setVector4part4): Likewise. (setVector5): Likewise. (mkVectorWithDeferral): Likewise. (DescendCodeAdd1): Likewise. (DescendCode): Likewise. (ConsantCreator): Likewise. (SetFunctionSlots): Likewise. (CheckVector): Likewise. * interp/g-opt.boot (optCall): Use getShellEntry. (optSpecialCall): Likewise. * interp/i-util.boot (devaluate): Likewise. * interp/nruncomp.boot (buildFunctor): Use setShellEntry. (NRTsetVector4a): Likewise. (NRTputInLocalReferences): Use getShellEntry. (NRTputInHead): Likewise. * interp/nrunopt.boot (augmentPredVector): Use setShellEntry. * interp/nruntime.boot (getShellEntry): New. (setShellEntry): Likewise. * interp/package.boot (processPackage): Use getShellEntry. (PackageDescendCode): Use setShellEntry. * interp/sys-globals.boot ($QuickCode): Remove. * interp/template.boot (NRTdescendCodeTran): Use setShellEntry. * interp/types.boot (%Void): New. (%Shell): New. * interp/wi2.boot (compDefineFunctor1): Use setShellEntry.
2008-03-24Add support for SBCL and CLispdos-reis1-2/+4
2008-03-18 * interp/sys-utility.boot: Define more type abbreviations.dos-reis1-64/+64
* interp/apply.boot: Adjust signature declarations. * interp/compiler.boot: Likewise.
2008-03-05 * interp/compiler.boot (compColon): Literal flag types are validdos-reis1-0/+1
types.
2008-02-16 * interp/unlisp.lisp (|CatchAsCan|): Tidy.dos-reis1-1/+1
* interp/sys-utility.boot (delete): Fix thinko. * interp/sys-globals.boot ($sourceFiles): Define here. (INPUTSTREAM): Likewise. * interp/i-syscmd.boot (UNDERBAR): Move to sys-globals.boot. * interp/fname.lisp: Import "macros". * interp/debug.lisp: Import "parsing". Replace $PRETTYPRINT with $PrettyPrint. (/FN): Define. (depthAlist): Likewise. * interp/br-search.boot (docSearch1): Fix thinko. * interp/Makefile.pamphlet (debug.$(FASLEXT)): Depend on parsing.$(FASLEXT). * interp/i-output.boot (starstarcond): Remove used function. (transcomparg): Likewise. (MATBORCH): Define here. (*TALLPAR): Likewise. * interp/vmlisp.lisp (|char|): Remove duplicate definition.
2008-01-28 Support signature declaration in Boot.dos-reis1-1/+80
* boot/ast.boot (bfUntuple): New. (bfTagged): Toplevel tags are signatures. * boot/parser.boot (bpTyping): New. (bpTagged): Use it. * boot/translator.boot (genDeclaration): New. (bpOutItem): Use it. * interp/compiler.boot: Add type annotations for compiler routines. * lisp/Makefile.in ($(OUT)/lisp$(EXEEXT)): Don't turn on emit-fn.
2008-01-27 Fix SF/1872551dos-reis1-10/+15
* interp/c-util.boot (dollarIfRepHack): New. (RepIfRepHack): Likewise. (substituteDollarIfRepHack): Likewise. (isSubset): Dollar is subset of Rep only in old semantics. * interp/buildom.boot (mkMappingFunList): Substitute dollar for Rep only when appropriate. (mkRecordFunList): Likewise. (mkNewUnionFunList): Likewise. (mkUnionFunList): Likewise. * interp/compiler.boot (compNoStacking): Likewise. (compNoStacking1): Likewise. (getConstructorFormOfMode): Likewise. (isUnionMode): Likewise. (coerce): Likewise. (coerceSubset): Likewise. * interp/modemap.boot (addModemap1): Likewise. (isSuperDomain): Likewise. * interp/define.boot (maybeInsertViewMorphisms): New. (compCapsule): Use it. (compCategoryItem): Don't allow exports of rep and per. * interp/sys-globals.boot ($useRepresentationHack): New.
2008-01-22 Apply patch byStephen Wilson <<wilsons@multiboard.com>dos-reis1-7/+8
Fix AW/370 * interp/compiler.boot (compWithMappingMode): Consult current environment to decide which variabes are free. * testsuite/compiler/cwmm-test.spad: New.
2008-01-16 Fix SF/1872564dos-reis1-6/+0
* interp/compiler.boot (compPretend): Don't check for `new' compiler semantics. (compColonInside): Likewise. * testsuite/compiler/1872564.spad: New.
2008-01-15 * algebra/syntax.spad (autoCoerce$Syntax): Add overloads.dos-reis1-1/+1
* interp/compiler.boot (coerceExtraHard): Always coerce by autoCoerce. * testsuite/interpreter/case.spad: Likewise. * testsuite/interpreter/case.input: New.
2008-01-14 * interp/compiler.boot (compSymbol): Don't handle possibledos-reis1-31/+42
case views here. (hasUniqueCaseView): Rename from getUniqueCaseView. Take the target mode as second argument. (compForm2): Use calling convention vector to determine infer flag parameter types. (compCase1): Uniformly handle `case-expressions'. Call genDeltaEntry for selected operator. (coerceExtraHard): Handle coercions from UnionType domains. (autoCoerceByModemap): Tidy. * interp/g-opt.boot (optCall): Be more verbose in diagnostics. * algebra/syntax.spad (Syntax): Rework. * algebra/coerce.spad.pamphlet (UnionType): New. * algebra/Makefile.pamphlet (axiom_algebra_layer_0): Include UTYPE.o * share/algebra: Update databases.
2007-12-12 * buildom.boot: Use $OutputForm instead of $Expressiondos-reis1-6/+6
throughout. * compiler.boot (compAtom): Use $OutputForm instead of $Expression. (compSymbol): Likewise. (outputComp): Likewise.
2007-12-12 * compiler.boot (comp3): Use isQuasiquote.dos-reis1-50/+111
(compSymbol): Use condition type view for non Union objects. (getUniqueCaseView): New. Subroutine of compSymbol. (compForm2): Don't infer type for flag parameter through unique compilcation. (checkCallingConvention): New. (compileQuasiquote): coerce, don't convert. (compCase1): Handle non Union type object through modemap selection. (maybeSpliceMode): New. Subroutine of compCase1. Register special form compiler with their names, not pointers. * define.boot (candidateSignatures): New. (hasSigInTargetCategory): Use it. Tidy. (checkAndDeclare): Use isQuasiquote. (spadCompileorSetq): Rename non atomic parameters before calling LISP compiler. * g-util.boot (quasiquote): New. (isQuasiquote): Likewise. * i-intern.boot (flagArguments): New. (signatureFromModemap): Likewise. (mkAtree3): Use them. Handle functions taking flag arguments. * i-object.boot (getFlagArgsPos): New. * i-spec1.boot (userDefinedCase): Now prepare form and hands back to bottomUp. (upcase): Adjust call to userDefinedCase. * modemap.boot (addDomain): Don't add flag domains to the environment. * nruncomp.boot (NRTencode): Handle flag values. (NRTgetLocalIndex1): Likewise. * nrunfast.boot (lazyMatch): Likewise. (newExpandLocalTypeForm): Likewise. * sys-constants.boot ($DummyFunctorNames): Include quasiquote constructor. * template.boot (NRTaddInner): Handle flag values.
2007-12-08 Add support for quasiquotation.dos-reis1-1/+17
* compiler.boot (compileQuasiquote): New function. * fnewmeta.lisp (|PARSE-Enclosure|): Parse quasiquotes too. * i-intern.boot (mkAtree3): Don't evaluate arguments to quasiquote. * i-spec1.boot ($specialOps): Register [||]. (up[||]): Handle quasiquotes. * newaux.lisp: Register `[|' and `|]' as new glyphs. * pf2sex.boot ($insideApplication): Now count the nesting level of application forms. ($insideQuasiquote): New. Count nesting level of quasiquotes. (pfFinishApplication): Ensure application form nesting level is properly decreased. (pfApplication2Sex): Use it. (pfQuasiquotation2Sex): Transform quasiquote forms. (pf2Sex1): Use it. * sys-constants.boot ($Syntax): New.
2007-12-08 * bc-util.boot ($newConstructorList): Move from setq.lisp to here.dos-reis1-0/+4
($createLocalLibDb): Likewise. * clam.boot ($hashNode): Likewise. * comp.lisp (|$compileDontDefineFunctions|): Likewise. * compiler.boot ($compileOnlyCertainItems): Likewise. * database.boot ($globalExposureGroupAlist): Likewise. * define.boot ($newCompCompare): Likewise. * format.boot ($permitWhere): Likewise. * g-boot.boot ($inDefLET): Likewise. ($inDefIS): Likewise. ($letGenVarCounter): Likewise. ($isGenVarCounter): Likewise. * g-error.boot ($ReadingFile): Likewise. (handleLispBreakLoop): Remove special case on $cclSystem. * g-timer.boot (computeElapsedTime): Likewise. * g-util.boot ($interpOnly): Move from setq.lisp to here. * i-funsel.boot ($domPvar): Likewise. * i-object.boot ($immediateDataSymbol): Likewise. * i-output.boot ($algebraOutputStream): Likewise. (ERROROUTSTREAM): Likewise. (ERRORINSTREAM): Likewise. * i-spec2.boot ($InterpreterMacroAlist): Likewise. * i-syscmd.boot ($NonNullStream): Likewise. ($NullStream): Likewise. ($localExposureDataDefault): Likewise. ($localExposureData): Likewise. * lisplib.boot ($functionLocations): Likewise. * msgdb.boot ($testingSystem): Likewise. * nlib.lisp (get-directory-list): Tidy. * nruncomp.boot ($devaluateList): Move from setq.lisp to here. ($functorLocalParameters): Likewise. ($insideCategoryPackageIfTrue): Likewise. ($profileCompiler): Likewise. * nrunfast.boot ($doNotCompressHashTableIfTrue): Likewise. * nrungo.boot ($insideCompileBodyIfTrue): Likewise. * setvars.boot ($InitialCommandSynonymAlist): Likewise. ($CommandSynonymAlist): Likewise. (setOutputLibrary): Simplify. * spad.lisp (|$newCompCompare|): Don't set here. (|$compileOnlyCertainItems|): Likewise. * sys-constants.boot ($BasicPredicates): Include SYMBOLP. ($TriangleVariableList): Move from setq.lisp to here. ($Any): Likewise. ($Boolean): Likewise. ($SingleInteger): Likewise. ($QuotientField): Likewise. ($ComplexInteger): Likewise. ($OutputForm): Likewise. ($FunctionalExpression): Likewise. ($Expression): Likewise. ($AnonymousFunction): Likewise. * sys-globals.boot (INPUT_-LIBRARIES): Likewise. (OUTPUT_-LIBRARY): Likewise. ($newConlist): Likewise. ($compilingInputFile): Likewise. ($minivectorNames): Likewise.
2007-12-06 * Makefile.pamphlet (xruncomp.$(FASLEXT)): Remove rule.dos-reis1-1/+2
(OCOBJS): Don't include xruncomp.$(FASLEXT) anymore. * xruncomp.boot: Remove. * compiler.boot (getFormModemaps): Merge from xruncomp.boot. * functor.boot (LookUpSigSlots): Likewise. * info.boot (actOnInfo): Likewise. * modemap.boot (addModemap1): Likewise. (evalAndSub): Likewise. (substNames): Likewise. (addConstructorModemaps): Likewise. * nruncomp.boot (NRTencode): Likewise. (genDeltaEntry): Likewise. (NRTassignCapsuleFunctionSlot): Likewise. (consDomainName): Likewise. (changeDirectoryInSlot1): Likewise.
2007-11-30 * Makefile.pamphlet (INOBJS): Lose varini.$(FASLEXT).dos-reis1-11/+2
(varini.$(FASLEXT)): Remove rule. * compiler.boot (compileSpad2Cmd): Don't set $ncConverse; it is unused. Don't set $newcomMode and $newComp. (compTopLevel): There is no function newComp. So simplify. * cattable.boot (updateCategoryTable): Remove test for $newcompMode. * database.boot (updateDatabase): Likewise. * int-top.boot (SpadInterpretStream): Don't set $newcompMode. ($ncmParse): Move from varini.boot. ($ncmMacro): Likewise. * bookvol5.pamphlet: Remove reference to $newcompMode. * define.boot (compDefineCapsuleFunction): Simplify. * msg.boot: Move diagnostic related variables from varini.boot to here. * posit.boot ($nopos): Move from varini.boot to here. * setq.lisp ($newcompMode): Don't set here ($newComp): Likewise. ($LINELENGTH): Likewise. * spad.lisp ($newComp): Likewise. ($LINELENGTH): Likewise. * varinit.boot: Remove.
2007-11-28 * Makefile.pamphlet (compiler.$(FASLEXT)): Update requirement.dos-reis1-1/+49
* compiler.boot: Import "define" and "iterator". Move setting of special compiler functions from property.lisp to here. * iterator.boot (compCollectV): Uncomment. (compIteratorV): Likewise. (computeMaxIndex): Likewise. (exprDifference): Likewise. * parse.boot: Move setting of special parsing functions from property.lisp to here. * postpar.boot: Move setting of special parsing transformers from property.lisp to here. * property.lisp: Move setting of special compiler functions and parsers to appropriate files.
2007-11-27Fix thinko from previous commit.dos-reis1-1/+1
2007-11-27 * compiler.boot (compileNot): New.dos-reis1-0/+19
* nspadaux.lisp: Don't register special parser for `not'-form. * postprop.lisp: Likewise. * property.lisp: Likewise. * parse.boot (parseNot): Remove.
2007-11-22 * as.boot: Globally substitute %noBranch for noBranch.dos-reis1-1/+1
* ax.boot: Likewise. * cattable.boot: Likewise. * compiler.boot: Likewise. * def.lisp: Likewise. * define.boot: Likewise. * functor.boot: Likewise. * g-opt.boot: Likewise. * i-analy.boot: Likewise. * i-intern.boot: Likewise. * i-map.boot: Likewise. * i-object.boot: Likewise. * i-output.boot: Likewise. * i-spec2.boot: Likewise. * info.boot: Likewise. * mark.boot: Likewise. * nrunopt.boot: Likewise. * package.boot: Likewise. * parse.boot: Likewise. * pf2atree.boot: Likewise. * pf2sex.boot: Likewise. * postpar.boot: Likewise. * pspad2.boot: Likewise. * wi2.boot: Likewise.
2007-11-16 * compiler.boot ($coreDiagnosticFunctions): New.dos-reis1-1/+7
(compForm1): Use it in checking for error functions.
2007-11-06remove more pamphletsdos-reis1-0/+1404