Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
|
|
Branch for fixing CoercibleFrom changes.
r12405@gauss: gdr | 2008-12-05 01:34:50 -0600
* algebra/fs2ups.spad.pamphlet
(FunctionSpaceToUnivariatePowerSeries): Revert previous
requirement change on parameter.
* algebra/manip.spad.pamphlet (PolynomialRoots): Likewise.
* algebra/rf.spad.pamphlet (PolynomialCategoryQuotientFunctions):
Likewise.
* algebra/sum.spad.pamphlet (GosperSummationMethod): Likewise.
* share/algebra: Update databases.
|
|
domain expression.
|
|
|
|
* interp/g-opt.boot (optCall): Likewise.
* interp/functor.boot (SetFunctionSlots): Likewise.
(mkOperatorEntry): Lose first parameter.
(optPackageCall): Remove.
* interp/category.boot (mkCategory): Document. Adjust call to
mkOperatorEntry.
|
|
|
|
(compDefineFunctor1): Don't use it anymore.
(compCategoryItem): Filter out nil attributes here.
|
|
againg; it was already checked by NRTassocIndex.
(genDeltaEntry): Likewise.
(NRTgetLocalIndex): Likewise.
* interp/wi2.boot (genDeltaExntry): Likewise.
|
|
earlier tweaks.
(mkExplicitCategoryFunction): Likewise.
|
|
|
|
(genDeltaEntry): Remove dead pattern match.
|
|
* 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".
|
|
* interp/wi2.boot (compCapsuleInner): Likewise.
* interp/functor.boot (processFunctorOrPackage): Remove.
(processPackage): Likewise.
(subTree): Likewise.
(setPackageLocals): Likewise.
(PackageDescendCode): Likewise.
|
|
* interp/nrunfast.boot ($NRTvec): Don't define.
|
|
|
|
|
|
|
|
compCategoryItem.
(compCategoryItem): Use it. Tidy.
(quotifyCategoryArgument): Remove.
(mkEvalableCategoryForm): Tidy.
|
|
|
|
* interp/define.boot (compDefineFunctor1): Adjust call.
|
|
(maprin): Use it. Separate record in lean mode.
* interp/sys-globals.boot ($leanMode): Define.
* interp/sys-driver.boot (systemMain): Initialize.
* interp/ht-util.boot (executeInterpreterCommand): Print prompt
only in non-lean mode.
* interp/int-top.boot (SpadInterpretStream): Likewise.
(intloopReadConsole): Likewise.
* interp/metalex.lisp (get-a-line): Likewise.
* interp/server.boot: Likewise.
|
|
new file.
|
|
* algebra/sex.spad.pamphlet (SExpressionCategory): Fix breakage
from last commit.
|
|
ConvertibleFrom S.
* algebra/newpoint.spad.pamphlet (PointCategory): Extend
ConvertibleFrom List R.
* algebra/misc.spad.pamphlet (SingletonAsOrderedSet): Now
ConvertibleTo Symbol.
* algebra/integer.spad.pamphlet (RomanNumeral): Now
ConvertibleFrom Symbol.
* algebra/float.spad.pamphlet (Float): Now ConvertibleFrom SF.
* algebra/sex.spad.pamphlet (SExpressionCategory): Extend
ConvertibleFrom Str, ConvertibleFrom Sym, ConvertibleFrom Int,
ConvertibleFrom Flt, ConvertibleFrom List %.
|
|
* algebra/asp.spad.pamphlet (Asp20): Now CoercibleFrom MAT FEXPR.
(Asp6): Now CoercibleFrom Vector FEXPR.
* algebra/catdef.spad.pamphlet (Algebra): Extend CoercibleFrom R.
(Ring): Extend CoercibleFrom Integer.
* algebra/formula.spad.pamphlet (ScriptFormulaFormat): Now
CoercibleFrom E.
* algebra/fortran.spad.pamphlet (FortranCode): Remove redundant
signature.
* algebra/fs2ups.spad.pamphlet
(FunctionSpaceToUnivariatePowerSeries): Tidy parameter.
* algebra/laurent.spad.pamphlet
(UnivariateLaurentSeriesConstructorCategory): Extend CoercibleFrom
UTS.
* algebra/manip.spad.pamphlet (PolynomialRoots): Tidy parameter.
* algebra/modmon.spad.pamphlet (ModMonic): Now CoercibleFrom Rep.
* algebra/ore.spad.pamphlet (UnivariateSkewPolynomial): Now
CoercibleFrom Variable x.
|
|
Remove redundant signature.
(NumericalODEProblem): Likewise.
(NumericalPDEProblem): Likewise.
(NumericalOptimizationProblem): Likewise.
* algebra/forttyp.spad.pamphlet (FortranType): Likewise.
* algebra/void.spad.pamphlet (Void): Now CoercibleTo OutputForm.
|
|
HomotopicTo P.
(OrdinaryWeightedPolynomials): Likewise.
* algebra/modmonom.spad.pamphlet (ModuleMonomial): Now
HomotopicTo MM.
* algebra/matrix.spad.pamphlet (coerce$RectangularMatrix): Remove
redundant signature.
* algebra/lodop.spad.pamphlet (OrdinaryDifferentialRing): Now
HomotopicTo HomotopicTo R.
* algebra/alql.spad.pamphlet (DataList): Now HomotopicTo List S.
* algebra/array1.spad.pamphlet (Tuple): Now HomotopicTo
PrimitiveArray S.
* algebra/kl.spad.pamphlet (CachableSet): Now HomotopicTo S.
* algebra/java.spad.pamphlet (JavaBytecode): Now HomotopicTo Byte.
* algebra/fname.spad.pamphlet (FileNameCategory): Extends
HomotopicTo String.
* algebra/data.spad.pamphlet (Byte): Now HomotopicTo Character.
|
|
* algebra/exposed.lsp.pamphlet: Expose it.
* algebra/Makefile.pamphlet (axiom_algebra_layer_1): Include HOMOTOP.
|
|
(ConvertibleFrom): Likewise.
(RetractableTo): Use it.
* algebra/Makefile.pamphlet (axiom_algebra_layer_0): Include
KRCFROM and KVTFROM.
* share/algebra/: Update databases.
|
|
* interp/sys-driver.boot (initializeGlobalState): Set
$compileDefaultsOnly.
* interp/lisplib.boot (isFunctor): Load exports file if present.
* interp/define.boot (compDefineCategory2): Don't write out
category load time stuff if we are compiling only defaults.
* interp/boot-pkg.lisp: Import loadFileIfPresent.
* lisp/core.lisp.in (|loadFileIfPresent|): New.
(|loadIfPresent|): Use it.
|
|
(newHasTest): Use it to handle signature export test.
* testsuite/interpreter/has.input: New.
|
|
exported list, instead of category object. Tidy.
* interp/define.boot (compDefineFunctor1): Adjust call to
compDefineExports.
|
|
* 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/iterator.boot: 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.
|
|
* interp/Makefile.pamphlet: Adjust.
|
|
* interp/spad.lisp: Likewise.
|
|
hashcode.
* interp/cfuns.lisp: Delete.
|
|
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/br-op1.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/category.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
|
|
(isPackageType): Likewise.
* interp/lisplib.boot (getSlotFromDomain): Remove.
* interp/macros.lisp (|saySpadMsg|): Remove.
* interp/vmlisp.lisp (qsetq): Remove.
(STATEP, FUNARGP, PAPPP): Likewise.
(LISTOFQUOTES, LISTOFFREES): Likewise.
|
|
s-expressions.
* algebra/sex.spad.pamphlet (SExpression): Print strings as
String.
|
|
* interp/template.boot: Move non-dead code where appropriate.
Remove file.
* boot/ast.boot (bfQ): Improve.
|
|
(extra-runtime-libs): Tidy.
* lisp/Makefile.in (edit): stringify $(oa_c_runtime_extra) elements.
|
|
openaxiom_unknown_driver.
(openaxiom_preprocess_arguments): If a file is specified, then it
is a script unless told otherwise.
|