aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
AgeCommit message (Collapse)AuthorFilesLines
2008-12-12 r12451@gauss: gdr | 2008-12-12 08:39:20 -0600dos-reis1-38/+36
Tidy.
2008-12-11 r12438@gauss: gdr | 2008-12-10 01:20:20 -0600dos-reis1-4/+2
Remove quotify.
2008-12-11 r12436@gauss: gdr | 2008-12-09 21:32:50 -0600dos-reis1-0/+35
Modularize S-PROCESS.
2008-12-09 r12415@gauss: gdr | 2008-12-06 11:42:45 -0600dos-reis1-13/+28
Implement basic support for pattern matching. r12416@gauss: gdr | 2008-12-06 18:09:19 -0600 Parse case pattern match. r12417@gauss: gdr | 2008-12-06 21:28:30 -0600 Implement basic case pattern matching for retractable domain. r12418@gauss: gdr | 2008-12-07 00:58:58 -0600 Refine retractability implementation. r12419@gauss: gdr | 2008-12-07 01:39:32 -0600 Update cached Lisp translation r12420@gauss: gdr | 2008-12-07 03:52:09 -0600 r12421@gauss: gdr | 2008-12-07 10:30:44 -0600 Implement type recovery too. r12422@gauss: gdr | 2008-12-07 19:18:09 -0600 Simplify LET-forms and COND-forms. r12423@gauss: gdr | 2008-12-07 21:21:12 -0600 Fix typos r12424@gauss: gdr | 2008-12-08 01:14:54 -0600 Parse case-pattern in the interpreter. r12427@gauss: gdr | 2008-12-08 20:32:29 -0600 Handle RetractableTo T.
2008-12-082008-12-07 Gabriel Dos Reis <gdr@cs.tamu.edu>dos-reis1-1/+133
* interp/g-opt.boot ($simpleVMoperators): New. (isSimpleVMForm): Likewise. (isFloatableVMForm): Likewise. (optLET): Likewise. Expand backend let-forms. * interp/c-util.boot (foldSpadcall): Look into LET and COND forms. (replaceSimpleFunctions): Likewise. (mutateCONDFormWithUnaryFunction): New. (mutateLETFormWithUnaryFunction): Likewise. * interp/compiler.boot (tryCourtesyCoercion): Split from coerce. (compRetractAlternative): Simplify. Now try courtesy coercions before retraction. (compRecoverAlternative): New. (compMatch): Simplify. Implement type recovery too. 2008-12-06 Gabriel Dos Reis <gdr@cs.tamu.edu> * interp/compiler.boot (compRetractAlternative): New. (compMatch): Likewise. Use it to implement pattern macthing for retractable domains. * interp/parse.boot (parseAtAt): New. * interp/postpar.boot (postAtAt): Likewise. (postAlternatives): Likewise. (postMatch): Likewise. * interp/metalex.lisp (Keywords): Remove `otherwise' as keyword. * interp/fnewmeta.lisp (|PARSE-Match|): New local parser. * interp/newaux.lisp (@@): New token. Align wih interpreter. (otherwise): Remove binding specification. (case): Now also a Nud token.
2008-12-03 * interp/compiler.boot (compIs): Error if left operand is not ados-reis1-1/+4
domain expression.
2008-11-29 * interp/compiler.boot (setqSingle): Use setShellEntry.dos-reis1-1/+1
* interp/wi1.boot (setqSingle): Likewise. * interp/functor.boot (setVector4): Likewise. (DescendCode): Abort on SETELT opcode. (SetFunctionSlots): Likewise. * interp/nrunfast.boot (evalSlotDomain): Likewise. * interp/nrungo.boot (NRTevalDomain): Likewise. * interp/showimp.boot (getDomainRefName): Match "setShellEntry".
2008-11-17 * interp/lisplib.boot (compDefineExports): Now take operationdos-reis1-1/+0
exported list, instead of category object. Tidy. * interp/define.boot (compDefineFunctor1): Adjust call to compDefineExports.
2008-11-15 * interp/compiler.boot: Import "msgdb", not "c-util". Movedos-reis1-156/+2
compiler driver to i-syscmd.boot. * interp/define.boot: Import "nruncomp", "functor", "package". * interp/wi2.boot (NRTgetLocalIndex): Remove duplicate.
2008-11-15 * interp/spad.lisp (incTimeSum): Remove.dos-reis1-94/+76
* interp/modemap.boot ($forceAdd): Define. * interp/nruncomp.boot ($NRTderivedTargetIfTrue): Likewise. ($killOptimizeIfTrue): Likewise. * interp/i-toplev.boot (processInteractive): Tidy. * interp/c-util.boot ($compErrorMessageStack): Define. * interp/compiler.boot (compApply): Remove. ($compTimeSum): Likewise ($resolveTimeSum): Likewise. (compCompilerPredicate): Tidy. (comp3): There is no such thing as KAPPA.
2008-11-15 * interp/category.boot: Define global vars.dos-reis1-0/+4
* interp/compiler.boot: Likewise. * interp/define.boot: Likewise. * interp/sys-globals.boot: Likewise. * interp/wi1.boot ($frontier): Removed, as unused. * interp/wi2.boot ($attributesName): Likewise. ($goGetList): Likewise. ($NRTaddList): Likewise. ($NRTloadTimeAlist): Likewise. ($lisplibMissingFunctions): Likewise. ($alternateViewList): Likewise.
2008-11-03 * interp/Makefile.pamphlet (template.$(FASLEXT)): Remove.dos-reis1-0/+1
* interp/template.boot: Move non-dead code where appropriate. Remove file. * boot/ast.boot (bfQ): Improve.
2008-10-16 * interp/compiler.boot (backendCompile1): Move to c-util.boot.dos-reis1-44/+0
(COMP): Likewise. Rename to backendCompile. (compileFileQuietly): Move to c-util.boot. (compAndDefine): Likewise. (compQuietly): Likewise. (compileQuitely): Likewise.
2008-10-12 * interp/c-util.boot (backendCompileNEWNAM): New.dos-reis1-3/+3
(pushLocalVariable): Likewise. (mutateToBackendCode): Likewise. (transformToBackendCode): Likewise * interp/comp.lisp (FLUIDVARS): Remove. (LOCVARS): Likewise. (SPECIALVARS): Likewise. ($CLOSEDFNS): Likewise. (COMP-NAM): Likewise. (COMP-TRAN): Likewise. (COMP-TRAN-1): Likewise. * interp/compiler.boot (compWithMappingMode): Use transformToBackendCode. (COMP-1): Use backendCompileNEWNAM. * interp/i-analy.boot (bottomUpCompile): Use mutateToBackendCode.
2008-10-11 * interp/c-util.boot (backendCompile2): Bootified from COMP-2.dos-reis1-1/+1
* interp/compiler.boot (COMP): Use it. * interp/comp.lisp (COMP-2): Remove.
2008-10-07 * interp/define.boot (compCategoryItem): Don't check signatures yet.dos-reis1-0/+1
* interp/c-util.boot (isKnownCategory): New. (diagnoseUknownType): Use it. Expand. * interp/compiler.boot (compCat): Use it.
2008-10-06 * interp/sys-macros.lisp (|quietlyIfInteractive|): New.dos-reis1-13/+3
* interp/compiler.boot (quietlyIfInteractive): Use it. (compQuietly): Likewise. (compileQuietly): Likewise.
2008-10-01 * interp/c-util.boot ($optProclaim): New.dos-reis1-0/+4
($optReplaceSimpleFunctions): Likewise. (setCompilerOptimizations): Likewise. Set them. (proclaimCapsuleFunction): New. * interp/compiler.boot (compileSpad2Cmd): Handle option ')optimize'. * interp/define.boot (compile): Proclaim if appropriate. * interp/sys-driver.boot (compileSpadLibrary): Honor optimization level set on commmand line. * interp/sys-utility.boot (getVMType): Tidy. * interp/types.boot (%Void): Likewise. (IntegerSection): New.
2008-09-20 * include/cfuns.h (oa_dirname): Declare.dos-reis1-2/+2
* lib/cfuns-c.c (openaxiom_is_path_separator): New. (oa_dirname): Define. (writeablep): Use it. * algebra/fname.spad.pamphlet (writable?$FileName): Tidy.
2008-08-20 * interp/compiler.boot (compMacro): Honor $verbose.dos-reis1-8/+9
* interp/modemap.boot (putDomainsInScope): Likewise. * interp/wi1.boot (compMacro): Likewise.
2008-08-19 * interp/database.boot (pathToDatabase): Honor $verbose.dos-reis1-1/+3
* interp/compiler.boot (COMP-1): Likewise.
2008-08-17 * interp/sys-globals.boot ($updateCatTableIfTrue): Default to false.dos-reis1-1/+1
* interp/sys-driver.boot (AxiomCore::%sysInit): Have ECL quiet. (initializeGlobalState): Initialize new world states. * interp/define.boot (compDefine): Tidy. (compDefineCategory2): Explicitly initialize $TOP_LEVEL and $definition. * interp/daase.lisp (|fillDatabasesInCore|): Use $buildingSystemAlgebra. * interp/compiler.boot (compMakeDeclaration): Explicitly initialize $insideExpressionIfTrue. * boot/translator.boot (AxiomCore::%sysInit): Supper GCL and ECL compiler notes, but ask for warning.
2008-08-15 * lisp/core.lisp.in (getOptionValue): Export.dos-reis1-1/+2
* interp/sys-driver.boot (initializeGlobalState): Record value for --system-algebra. * interp/sys-globals.boot ($buildingSystemAlgebra): Declare. * interp/compiler.boot (compileSpad2Cmd): Don't build local database if compiling system algebra. * interp/i-syscmd.boot (compileAsharpCmd1): Likewise. * algebra/Makefile.pamphlet (%.NRLIB/code.$(FASLEXT)): Use --system-algebra. (SPADPRSR.NRLIB/code.$(FASLEXT)): Likewise. (PARSER.NRLIB/code.$(FASLEXT)): Likewise.
2008-08-09 * interp/buildom.boot: Rename AST code LET to %LET throughout.dos-reis1-8/+8
* interp/c-util.boot: Likewise. * interp/comp.lisp: Likewise. * interp/compiler.boot: Likewise. * interp/cparse.boot: Likewise. * interp/def.lisp: Likewise. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. * interp/g-opt.boot: Likewise. * interp/i-eval.boot: Likewise. * interp/i-intern.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-spec1.boot: Likewise. * interp/i-spec2.boot: Likewise. * interp/iterator.boot: Likewise. * interp/mark.boot: Likewise. * interp/newaux.lisp: Likewise. * interp/nruncomp.boot: Likewise. * interp/nrunopt.boot: Likewise. * interp/package.boot: Likewise. * interp/parse.boot: Likewise. * interp/pf2atree.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/postpar.boot: Likewise. * interp/property.lisp: Likewise. * interp/pspad1.boot: Likewise. * interp/pspad2.boot: Likewise. * interp/slam.boot: Likewise. * interp/spad.lisp: Likewise. * interp/wi1.boot: Likewise. * interp/wi2.boot: Likewise.
2008-08-07 * interp/apply.boot: Move content to compiler.boot. Remove.dos-reis1-31/+270
* interp/Makefile.pamphlet (OCOBJS): Remove apply.$(OBJEXT).
2008-07-26 * interp/compiler.boot (getConstructorFormOfMode): Remove.dos-reis1-17/+0
(getConstructorMode): Likewise. (isConstructorForm): Likewise.
2008-07-20 * interp/compiler.boot (compNot): Rename from compileNot.dos-reis1-3/+3
2008-07-15 Fix SF/2015650dos-reis1-1/+4
* interp/compiler.boot (coerceExtraHard): Forms with type Category are categories.
2008-07-11 * interp/compiler.boot (compQuote): Restrict quoting to literaldos-reis1-1/+5
symbols. * algebra/any.spad.pamphlet: Use nil for empty list. * algebra/boolean.spad.pamphlet: Fix quoting.
2008-07-07 * boot/initial-env.lisp: Export $InteractiveMode anddos-reis1-1/+1
string2BootTree. * boot/translator.boot (BOOTTOCL): Tidy. (BOOTTOCLC): Likewise. (BOOTTOCLLINES): Likewise. (BOOTTOCLCLINES): Likewise. (string2BootTree): Define. (translateToplevelExpression): Tidy. (translateToplevel): Handle atoms. Tidy. (shoePCompileTrees): Don't use bStreamPackageNull. * interp/boot-pkg.lisp: Import $interactiveMode and string2BootTree. * interp/util.lisp (string2BootTree): Remove. (OLD-BOOT::BOOT): Likewise. * interp/bootlex.lisp (boot): Likewise. (boot-parse-1): Likewise. * interp/compiler.boot (compileNot): Fix thinko. * interp/sys-globals.boot ($InteractiveMode): Don't define here.
2008-07-06 * interp/parse.boot ($normalizeTree): New.dos-reis1-11/+21
(parseNotEqual): Likewise. * interp/compiler.boot (compCompilerPredicate): New. (compileNot): Use it. * interp/define.boot (compSubDomain1): Likewise. (doItIf): Likewise. * interp/bootlex.lisp (boot): Set $nornamizeTree. * algebra/Makefile.pamphlet (axiom_algebra_layer_9): Move from layer 4 to here.
2008-07-04 * interp/compiler.boot (compFormMatch): Tidy.dos-reis1-10/+49
(getFormModemaps): Likewise. (compComma): New. * interp/c-util.boot (isTupleInstance): New. (isHomoegenousVarargSignature): Likewise. (enoughArguments): Likewise. (wantArgumentsAsTuple): Likewise. * interp/apply.boot (reshapeArgumentList): New. (compFormWithModemap): Use it.
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.