Age | Commit message (Collapse) | Author | Files | Lines |
|
($simpleVMoperators): Augment it.
(semiSimpleRelativeTo?): New.
(isSimpleVMForm): Use it.
* interp/c-util.boot (forwardingCall?): New.
(usesVariablesLinearly?): Likewise.
(expandableDefinition?): Likewise.
(foldSpadcall): Tidy.
(foldExportedFunctionReferences): If a function is discovered to
be expandable, make it so.
* interp/define.boot (spadCompileOrSetq): Tidy.
|
|
* interp/sys-driver.boot (initializeGlobalState): Sey domain
representation inlining if requested.
* interp/c-util.boot (setCompilerOptimizations): Set domain
representation inlining if at optimization level 3.
* algebra/constant.spad.pamphlet (AlgebraicNumber): Remove
assignment to Rep. Tidy.
* algebra/Makefile.pamphlet: Add dependencies.
|
|
* interp/compiler.boot (compAtom): Don't use it.
* interp/wi1.boot (compAtom): Likewise.
|
|
(registerFunctionReplacement): Likewise.
* interp/define.boot (spadCompileOrSetq): Use it.
* interp/g-opt.boot (optSpecialCall): Likewise.
* interp/nruncomp.boot (optDeltaEntry): Likewise.
* interp/spad.lisp (|knownEqualPred|): Likewise.
* interp/wi2.boot (optDeltaEntry): Likewise.
|
|
* interp/compiler.boot (processInlineRequest): Now accept any
functor.
* interp/c-util.boot (lookupFunctionInstance): New.
(isFormal): Likewise.
(expandFormTemplate): Likewise.
(equalFormTemplate): Likewise.
(getFunctionTemplate): Likewise.
(lookupInheritedDefiningFunction): Likewise.
(lookupDefiningFunction): Likewise.
* interp/nruncomp.boot (optDeltaEntry): Tidy. Use
lookupDefiningFunction.
|
|
|
|
|
|
|
|
* interp/ax.boot: 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/br-search.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/cstream.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-boot.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/ptrees.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/sfsfun.boot: Likewise.
* interp/showimp.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/word.boot: Likewise.
|
|
* boot/tokens.boot: Don't rename 'is' and 'inst'.
* boot/parser.boot: Use 'in' instead of 'MEMQ' where approrpriate.
* interp/: Likewise.
|
|
|
|
* boot/ast.boot: Use "~=" instead of "^=".
* boot/includer.boot: Likewise.
* boot/translator.boot: Likewise.
* interp/as.boot: Likewise.
* interp/bc-misc.boot: Likewise.
* interp/bc-solve.boot: Likewise.
* interp/bc-util.boot: Likewise.
* interp/br-con.boot: Likewise.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-op2.boot: Likewise.
* interp/br-prof.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/br-util.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/category.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/clammed.boot: Likewise.
* interp/compiler.boot: Likewise.
* interp/database.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/fortcall.boot: Likewise.
* interp/functor.boot: Likewise.
* interp/g-cndata.boot: Likewise.
* interp/g-opt.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/guess.boot: Likewise.
* interp/ht-root.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-code.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-funsel.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-spec2.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/i-util.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/interop.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macex.boot: Likewise.
* interp/mark.boot: Likewise.
* interp/match.boot: Likewise.
* interp/modemap.boot: Likewise.
* interp/msg.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* interp/nruncomp.boot: Likewise.
* interp/nrunfast.boot: Likewise.
* interp/nrungo.boot: Likewise.
* interp/nrunopt.boot: Likewise.
* interp/parse.boot: Likewise.
* interp/pathname.boot: Likewise.
* interp/pf2atree.boot: Likewise.
* interp/pf2sex.boot: Likewise.
* interp/postpar.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/pspad1.boot: Likewise.
* interp/pspad2.boot: Likewise.
* interp/record.boot: Likewise.
* interp/scan.boot: Likewise.
* interp/setvars.boot: Likewise.
* interp/simpbool.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/wi1.boot: Likewise.
* interp/wi2.boot: Likewise.
* interp/word.boot: Likewise.
|
|
* interp/fnewmeta.lisp (PARSE-Jump): New.
* interp/compiler.boot (compAtom): Dipatch compilation of "break"
and "iterate" to...
(compBreak): ... here
(compIterate): and here.
(jumpFromLoop): New.
(compRepeatOrCollect): Initialize $lookKind, $iterateCount, and
$breakCount. Set exit point for loop bodies with 'iterate'
expressions.
* interp/parse.boot (parseAtom): Remove.
(parseTran): Adjust.
* algebra/outform.spad.pamphlet: Tidy.
* interp/c-util.boot ($loopKind): Declare.
($repeatBodyLabel): Likewise.
($iterateCount): Likewise.
($breakCount): Likewise.
|
|
(mkDefun$MakeFloatCompiledFunction): Tidy.
* interp/c-util.boot (declareUnusedParameters): New.
* interp/i-map.boot: Use it.
* interp/i-spec1.boot: Likewise.
* interp/slam.boot: Likewise.
* lib/cfuns-c.c (writeablep): Document MinGW/MSYS bug work around.
|
|
* 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.
|
|
(transformToBackendCode): Use it.
|
|
* interp/c-util.boot (diagnoseUnknownType): Diagnose duplicate
fields in Record or Union, or duplicate constants in Enumeration.
* interp/i-eval.boot (checkRecordOrUnionFields): New.
(evaluateType): Use it.
* testsuite/interpreter/sf-2799773.input: New.
|
|
|
|
|
|
* algebra/strap/TSETCAT-.lsp: Likewise.
|
|
body instead of previous previous version of it.
* algebra/Makefile.pamphlet: Remove ES from bootstrap layer.
Build it (and dependencies) at layer 1.
* algebra/strap/ES.lsp: Remove.
* algebra/strap/ES-.lsp: Likewise.
* algebra/boolean.spad.pamphlet (Boolean): Don't use outputForm.
|
|
(SystemInteger, SystemNonNegativeInteger, Int8, Int16, Int32,
UInt8, UInt 16, UInt32): New.
* algebra/Makefile.pamphlet (axiom_algebra_layer_7): Include INT8,
INT16, INT32, UINT8, UINT16, UINT32.
|
|
* interp/g-util.boot (isSubDomain): Tidy.
* interp/g-opt.boot (isVMConstantForm): New.
(findVMFreeVars): Likewise.
* interp/define.boot (insertViewMorphisms): Remove.
(emitSubdomainInfo): New.
(checkVariableName): Likewise.
(checkParameterNames): Likewise.
(checkRepresentation): Set $subdomain where appropriate.
(compDefines): Check parameter names.
(compDefineFunctor1): Propagate subdomain info.
(doIt): Don't call insertViewMorphisms.
* interp/compiler.boot (setqSingle): Check variable name.
(compIterator): Likewise.
(commonSuperType): New.
(satisfies): Likewise.
(coerceSubset): Use them to implemen cross-subdomain coercion.
(coerceSuperset): New.
(comCoerce1): Use it.
(compPer): New.
(compRep): Likewise.
* interp/c-util.boot (getRepresentation): New.
(proclaimCapsuleFunction): Improve for specialized subdomains.
* algebra/stream.spad.pamphlet: Don't use `per' as variable name.
* algebra/si.spad.pamphlet (size$SingleInteger): Tidy.
(coerce$SingleInteger): Likewise.
* algebra/reclos.spad.pamphlet (nonNull$RealClosure): Don't use
`rep' as parameter name.
* algebra/data.spad.pamphlet (Byte): Now a subdomain of
NonNegativeInteger. Tidy.
|
|
* Makefile.pamphlet (AXIOM_SRC_TARGETS): Add all-databases.
src/ChangeLog
2009-01-03 Gabriel Dos Reis <gdr@cs.tamu.edu>
* lisp/core.lisp.in (|%algebraSystemIsComplete|): New.
(|%basicSystemIsComplete|): Use it.
* interp/wi1.boot (setqSingle): Use maximalSuperType.
(coerceSubset): Simplify.
(compCoerce1): Tidy.
* interp/i-resolv.boot (resolveTCat): Use superType.
* interp/lisplib.boot (findConstructorSlotNumber): Use isSubset.
(sigsMatch): Likewise.
(findDomainSlotNumber): Likewise.
* interp/define.boot (compSubDomain1): Reject for complex subdomain
predicate. Support paramterized subdomains.
* interp/daase.lisp (interpOpen): Read superdomain slot.
(getdatabase): Remove adhoc hardcoded superdomain info.
Return superdomain info stored in database.
(localnrlib): Read superdomain info.
(write-interpdb): Write superdomain info.
(database): Add superdomain slot.
* interp/g-util.boot (superType): New.
(maximalSuperType): Rework. Support parameterized subdomains.
(noteSubDomainInfo): New.
(isSubDomain): Rework.
* interp/c-util.boot (isSubset): Rework.
* interp/g-opt.boot (optEQ): Remove.
* interp/g-cndata.boot (getImmediateSuperDomain): Remove.
(maximalSuperType): Move to g-util.boot.
* interp/types.boot (%Constructor): New type specifier.
(%Instantiation): Likewise.
* interp/compiler.boot (primitiveType): Don't return $NegativeInteger.
(maxSuperType): Remove.
(hasType): Use maximalSuperType.
(satisfies): New.
(coerceSubset): Use it. Simplify.
* interp/wi2.boot (smallIntegerStep): Use maximalSuperType.
* interp/sys-constants.boot ($AtVariables): New.
($NegativeInteger): Remove.
($NonPositiveInteger): Likewise.
($CategoryNames): Category is not a category.
* interp/property.lisp: Remove Subsets property settings.
* interp/i-coerce.boot (coerceSubDomain): Simplify.
(coerceImmediateSubDomain): Remove.
(getSubDomainPredicate): Simplify.
* interp/category.boot (SourceLevelSubset): Use isSubDomain.
(MachineLevelSubset): Likewise.
* interp/modemap.boot (mergeModemap): Likewise.
(isSuperDomain): Remove.
(augModemapsFromDomain): Support parameterized subdomains.
* interp/i-util.boot (isSubDomain): Move to g-util.boot.
* Makefile.pamphlet (all-databases): New target.
* interp/Makefile.pamphlet ($(AXIOMSYS)): Push
:open-axiom-algebra-system onto *FEATURES*.
* etc/Makefile.in (all-databases): New target.
|
|
makers too.
(replaceSimpleFunctions): Fold simple constant form makers.
|
|
* interp/cattable.boot (hasCat): Likewise.
(simpTempCategoryTable): Don't substitute for Object.
|
|
(checkRepresentation): Rename from maybeInsertViewMorphisms. Tidy.
(compDefineFunctor1): Tidy.
(doIt): Insert view morphisms if appropriate.
|
|
Tidy compApplyModemap.
r12460@gauss: gdr | 2008-12-13 09:24:50 -0600
Tidy compMapCond.
r12461@gauss: gdr | 2008-12-13 10:24:14 -0600
Activate compViableModemap.
r12462@gauss: gdr | 2008-12-13 11:18:17 -0600
Remove pmatch and pmatchWithSl out of main compiler.
r12463@gauss: gdr | 2008-12-13 12:26:44 -0600
Tidy compApplyModemap.
r12464@gauss: gdr | 2008-12-13 16:39:28 -0600
Add compExclusiveOr.
r12465@gauss: gdr | 2008-12-13 16:54:58 -0600
.
r12466@gauss: gdr | 2008-12-14 15:01:33 -0600
Tidy compLogicalNot.
|
|
Tidy Middle End IL.
|
|
Introduce Middle IL.
|
|
Add some documentation.
|
|
* 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.
|
|
* 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.
|
|
hashcode.
* interp/cfuns.lisp: Delete.
|
|
* 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/category.boot: Import "g-cndata"
* interp/c-util.boot: Import "g-opt".
* interp/Makefile.pamphlet: Adjust Make rules.
|
|
(COMP): Likewise. Rename to backendCompile.
(compileFileQuietly): Move to c-util.boot.
(compAndDefine): Likewise.
(compQuietly): Likewise.
(compileQuitely): Likewise.
|
|
* interp/i-map.boot (compileCoerceMap): Tell backend that
minivector is global.
* interp/i-spec1.boot (compileADEFBody): Likewise.
* interp/slam.boot (reportFunctionCompilation): Likewise.
* interp/define.boot (spadCompileOrSetq): Tell backend to ignore
last argument for simple functions.
* interp/c-util.boot (skipDeclarations): New.
(lastDeclarationNode): Likewise.
(declareGlobalVariables): Likewise.
(transformToBackendCode): Use them to allow for Lisp
declarations in middle-end forms.
* interp/sys-driver.boot (AxiomCore::%sysInit): Reading Lisp level
Floating point numbers default to double precision.
* algebra/strap: Update.
|
|
(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/comp.lisp (COMP-TRAN): Use it.
(COMP-FLUIDIZE): Remove.
|
|
* interp/compiler.boot (COMP): Use it.
* interp/comp.lisp (COMP-2): Remove.
|
|
|
|
(middleEndExpand): New.
(backendCompileILAM): Bootify COMP-ILAM.
(backendCompileSLAM): Bootify COMP-SLAM.
(backendCompileSPADSLAM): Bootify COMP-SPADSLAM.
* interp/comp.lisp (COMP-2): Use them.
(COMP-ILAM): Remove.
(COMP-SLAM): Likewise.
(COMP-SPADLSAM): Likewise.
(COMP-TRAN): Use middleEndExpand.
(COMP-EXPAND): Remove.
($COMP-MACROLIS): Likewise.
|
|
* interp/c-util.boot (isKnownCategory): New.
(diagnoseUknownType): Use it. Expand.
* interp/compiler.boot (compCat): Use it.
|
|
for non-default implementations.
* interp/c-util.boot ($capsuleDirectory): New.
(clearCapsuleDirectory): Likewise.
(getCapsuleDirectoryEntry): Likewise.
(updateCapsuleDirectory): Likewise.
(foldSpadcall): Likewise.
(foldExportedFunctionReferences): Likewise.
* interp/define.boot (compFunctorBody): Use it.
|
|
(setCompilerOptimizations): Set it.
* interp/define.boot ($capsuleFunctionStack): New.
(spadCompileOrSetq): Collect capsule function definitions.
(compFunctorBody): Compile them at end of capsule.
|
|
* algebra/data.spad.pamphlet (Byte): Likewise.
|
|
(replaceSimpleFunctions): Use it. Simplify back to original
implementation.
(proclaimCapsuleFunction): Constructor parameters are generic.
* interp/sys-utility.boot (getVMType): Handle wildcard.
* algebra/stream.spad.pamphlet: Don't build STREAM with
proclamation on -- it currently violates type rules.
|
|
|
|
(eqSubst): Likewise.
(replaceSimpleFunctions): Handle XLAM-replaceable functions.
* interp/wi1.boot (pairList): Remove duplicate.
|