Age | Commit message (Collapse) | Author | Files | Lines |
|
Tidy.
|
|
Remove quotify.
|
|
Modularize S-PROCESS.
|
|
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.
|
|
* 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.
|
|
domain expression.
|
|
* 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".
|
|
exported list, instead of category object. Tidy.
* interp/define.boot (compDefineFunctor1): Adjust call to
compDefineExports.
|
|
compiler driver to i-syscmd.boot.
* interp/define.boot: Import "nruncomp", "functor", "package".
* interp/wi2.boot (NRTgetLocalIndex): Remove duplicate.
|
|
* 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.
|
|
* 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.
|
|
* interp/template.boot: Move non-dead code where appropriate.
Remove file.
* boot/ast.boot (bfQ): Improve.
|
|
(COMP): Likewise. Rename to backendCompile.
(compileFileQuietly): Move to c-util.boot.
(compAndDefine): Likewise.
(compQuietly): Likewise.
(compileQuitely): Likewise.
|
|
(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.
|
|
* interp/compiler.boot (COMP): Use it.
* interp/comp.lisp (COMP-2): Remove.
|
|
* interp/c-util.boot (isKnownCategory): New.
(diagnoseUknownType): Use it. Expand.
* interp/compiler.boot (compCat): Use it.
|
|
* interp/compiler.boot (quietlyIfInteractive): Use it.
(compQuietly): Likewise.
(compileQuietly): Likewise.
|
|
($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.
|
|
* lib/cfuns-c.c (openaxiom_is_path_separator): New.
(oa_dirname): Define.
(writeablep): Use it.
* algebra/fname.spad.pamphlet (writable?$FileName): Tidy.
|
|
* interp/modemap.boot (putDomainsInScope): Likewise.
* interp/wi1.boot (compMacro): Likewise.
|
|
* interp/compiler.boot (COMP-1): Likewise.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* interp/Makefile.pamphlet (OCOBJS): Remove apply.$(OBJEXT).
|
|
(getConstructorMode): Likewise.
(isConstructorForm): Likewise.
|
|
|
|
* interp/compiler.boot (coerceExtraHard): Forms with type Category
are categories.
|
|
symbols.
* algebra/any.spad.pamphlet: Use nil for empty list.
* algebra/boolean.spad.pamphlet: Fix quoting.
|
|
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.
|
|
(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.
|
|
(getFormModemaps): Likewise.
(compComma): New.
* interp/c-util.boot (isTupleInstance): New.
(isHomoegenousVarargSignature): Likewise.
(enoughArguments): Likewise.
(wantArgumentsAsTuple): Likewise.
* interp/apply.boot (reshapeArgumentList): New.
(compFormWithModemap): Use it.
|
|
(compQuietly): Likewise.
(compileQuietly): Likewise.
* interp/macros.lisp (PRINT-AND-EVAL-DEFUN): Move to sys-utility.boot.
(EVAL-DEFUN): Likewise.
(COMPILE-DEFUN): Likewise.
|
|
|
|
|
|
(COMP): Likewise.
(|compQuietly|): Likewise.
(|compileQuietly|): Likewise.
(COMP-1): Likewise.
|
|
* interp/compiler.boot (compReturn): Robustify.
(unknownTypeError): Likewise.
* interp/info.boot (knownInfo): Likewise.
|
|
(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.
|
|
parameter.
(finalizeLisplib): Adjust call.
(compDefineLisplib): Likewise.
|
|
(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.
|
|
(makeLiteral): Likewise.
* interp/compiler.boot (compSymbol): Use isLiteral.
* interp/wi1.boot (compSymbol): Likewise.
|
|
* 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.
|
|
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.
|
|
|
|
* 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.
|
|
Update all boot files to use `namespace' instead of `)package'.
* interp/: Likewise.
|
|
* 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.
|
|
|
|
|
|
VECTOR, and VectorCategory.
|