Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
forms too.
(groupVariableDefinitions): Handle %bind and %loop forms.
* interp/lisp-backend.boot (expandLoop): Special code for case
where there is explicit exit condition, for better pretty-printing.
|
|
%labelled and %lambda.
(optimizeFunctionDef): Use copyTree, not COPY. Simplify.
(simplifyVMForm): Perform changeVariableDefinitionToStore and
groupVariableDefinitions on abstraction forms.
|
|
It is always nil. Adjust caller.
(compDefineCategory1): Likewise.
(compDefineCategory2): Likewise.
(compDefineFunctor): Likewise.
(compDefineFunctor1): Likewise. Bind it to nil.
* interp/lisplib.boot (compDefineLisplib): Likewise.
|
|
(coerceExit): Likewise.
(compRepeatOrCollect): Likewise.
(replaceExitEtc): Tidy.
(canReturn): Likewise.
(compIterate): Generate %lave form.
(nullifyTargetingLeaves): Move out of massageLoop.
(massageLoop): Adjust.
* interp/define.boot (compDefineCapsuleFunction): Generate
%labelled form for the body.
* interp/g-opt.boot: Now handle %labelled and %leave forms.
(optLabelled): Rename from optCatch.
|
|
(coerceUn2E): Likewise.
* interp/compiler.boot (massageLoop): %leave now takes a label as
first argument.
* interp/lisp-backend.boot (expandLeave): New. Expand accordingly.
|
|
Recursively nominate constructor argument for inlining. Adjust callers.
* interp/c-util.boot: Tidy.
* algebra/Makefile.in: Tidy.
|
|
(registerRedexForm): New.
(redexForm): Likewise.
(inlineDirectCall): Inline functions with known redex forms.
(foldExportedFunctionReferences): Compute redex forms.
(backendCompileILAM): Remove as unused.
(backendCompile2): Adjust.
(massageBackendCode): Likeiwse.
* interp/define.boot (compDefineCapsuleFunction): Clear
replacement info.
|
|
* interp/compiler.boot (canReturn): Handle %lambda forms.
(compUnnamedMapping): Generate %lambda forms. Don't optimize them
yet.
* interp/g-opt.boot: %lambda forms are side-effect free.
* interp/lisp-backend.boot: Translate them.
|
|
(floatableVMForm?): New.
(modified?): Rename form varIsAssigned.
(canInlineVarDefinition): Tidy. Allow intermediate temporaries
initialized from variables to be inlined if not modified.
(optBind): Tidy.
|
|
computation it if is the expanded form of the current domain.
|
|
free argument in a unary pure function call if it is used exactly once.
* algebra/integer.spad.pamphlet (Integer) [reducedSystem]: Fix typo.
|
|
* interp/nruncomp.boot (deltaTran): assocIndex now handles $.
(getLocalIndex): Likewise.
(NRTencode): Handle $ before calling assocIndex.
(assocIndex): Handle $.
|
|
if it is the domain of computation.
|
|
* interp/define.boot (compDefine1): Avoid encodeItem when
symbolName is meant.
(mkRepititionAssoc): Move from functor.boot
(encodeItem): Likewise.
(getCaps): Likewise. Tidy.
(encodeFunctionName): Likewise.
|
|
signature too.
* interp/nruncomp.boot (genDeltaEntry): Likewise.
(getLocalIndex): Tidy.
(changeDirectoryInSlot1): Tidy.
(vectorLocation): Add a kind of operation as fourth argument.
Adjust caller. Do not reconstruct the signature.
(NRTsubstDelta): Remove as no longer used.
|
|
Adjust callers.
|
|
NRTisExported?. Determine operation kind locally. Do not store
implement slot on the used entity list.
* interp/nruncomp.boot (genDeltaEntry): Likewise.
(deltaTran): Simplify.
(NRTisExported?): Remove.
(vectorLocation): Adjust.
|
|
* algebra/poly.spad.pamphlet: Likewise.
* interp/define.boot (spadCompileOrSetq): Tidy replacement info.
* interp/i-output.boot ($BinaryOperators): New.
(binaryInfix?): Tidy.
|
|
separate arguments (operation and modemap). Adjust callers.
|
|
* interp/define.boot (compDefineCapsuleFunction): Call it from here.
* interp/functor.boot (DescendCode): Not here.
|
|
($NRTdeltaListComp): Likeewise.
(compDefineFunctor1): Do not bind them.
(assignCapsuleFunctionSlot): Use dbUsedEntities.
* interp/nruncomp.boot (NRTaddDeltaCode): Likewise.
(dbEntitySlot): New.
(NRTassocIndex): Use it.
(genDeltaEntry): Use dbUsedEntities.
(getLocalIndex): Likewise.
(vectorLocation): Likewise.
(NRTsubstDelta): Likewise.
|
|
* interp/c-util.boot (registerConstructor): New.
(currentConstructor): Likewise.
(makeCompilationData): Initialize dbEntityBuffer.
(dbEntityBuffer): New.
(dbUsedEntities): Likewise.
(dbEntityCount): Likewise.
* interp/compiler.boot: Adjust call to getLocalIndex, NRTassocIndex
* interp/define.boot: Likewise.
($NRTdeltaLength): Remove.
* interp/nruncomp.boot: Likewise.
|
|
from compDefineCapsuleFunction.
(compDefineCapsuleFunction): Use it. Tidy.
|
|
(getArgumentMode): Tidy.
(hasSigInTargetCategory): Likewise.
(refineDefinitionSignature): New. Abstract from
compDefineCapsuleFunction.
(compDefineCapsuleFunction): Use it. Tidy.
|
|
|
|
(localOperation?): New.
(compDefineCapsuleFunction): Increment $suffix. Check for local
and exported function definition here.
(compile): Move capsule-local function processing out.
|
|
* interp/functor.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/slam.boot: Likewise.
* interp/topics.boot: Likewise.
* interp/trace.boot: Likewise.
|
|
parameter as a DB. Adjust caller.
(NRTsubstDelta): Tidy.
|
|
LookUpSigSlots. Tidy. Adjust caller.
(makeMissingFunctionEntry): Remove as unused.
|
|
(compDefineFunctor1): Do not bind it.
(reportOnFunctorCompilation): Do not call displayMissingFunctions.
(displayMissingFunctions): Remove as useless.
* interp/functor.boot (SetFunctionSlots): Do not set slot in the
first vector of $catvecList.
* interp/nruncomp.boot (buildFunctor): Remove makeCatvecCode,
emptyVector, domainShell. Do not call NRTcheckVector.
(NRTcheckVector): Remove as useless.
|
|
the values in the first vector in $catvecList. It is pointless.
|
|
(LookUpSigSlots): Tidy.
|
|
Adjust callers.
(compDefineFunctor1): Do not bind $functionLocations.
(compDefineCapsuleFunction): Do not update.
* interp/lisplib.boot (transformOperationAlist): Do not consult
$functionLocations.
|
|
nruncomp.boot. Rename from NRTassignCapsuleFunctionSlot. Take
first parameter as a DB. Adjust callers.
(compDefineCapsuleFunction): Tidy.
|
|
Adjust callers.
* interp/compiler.boot: Adjust.
* interp/define.boot: Likewise.
|
|
accordance with documented abstract structure.
|
|
(evaluateFormAsType): Handle builtin constructor instantiations.
|
|
(SigListUnion): Likewise. The last argument is not a vector buffer.
(JoinInner): Use a vector buffer for scratch space to compute the
initial principal ancestor. Simplify copy logic.
* interp/g-util.boot (mkBuffer): New.
(bufferData): New.
(buffeLength): Likewise.
(resizeBuffer): Likewise.
(bufferToVector): Likwise.
* lisp/core.lisp.in (mkVector): New. Export.
|
|
controlled by originalvector which has non-changing value false.
|
|
|
|
(SigListUnion): Take the principal ancestor
as third argument. Use it instead of $NewCatVec. Adjust caller.
(JoinInner): Do not bind $NewCatVec. Introduce local variable
principal. Tidy.
|
|
JoinInner.
(JoinInner): Call it.
|
|
(SigEqual): Remove.
(predicateImplies): Rename from PredImplies. Rework it to match
documentation. Adjust callers.
(CondAncestorP): Adjust arguments in call to predicateImplies.
(JoinInner): Likewise.
|
|
* interp/sys-driver.boot (%sysInit): Don't redefine. Reset
function binding.
|
|
|
|
* utils/storage.H: Revert accidental commit of unfinished changes.
|
|
(initializeGlobalState): Don't bind $compileDefaultsOnly.
* interp/sys-globals.boot ($compileDefaultsOnly): Remove.
* interp/define.boot (compDefineCategory): Adjust.
(compDefineCategory1): Likewise.
(compDefineFunctor1): Clear dbCapsuleDefinitions.
* interp/lisplib.boot (compDefineLisplib): Tidy.
* interp/daase.lisp (BROWSEOPEN): Use dbSourceFile.
(GETDATABASE): Likewise.
(LOCALNRLIB): Likewise.
(WRITE-BROWSEDB): Likewise.
* algebra/Makefile.in (COMPILE_SPAD): Specifiy initial DB.
(BOOTSTRAP): Likewise.
|
|
is a builtin constructor.
(mkDependentsHashTable): Filter out builtin constructors.
* interp/cattable.boot (genCategoryTable): Likewise.
* interp/database.boot (getConstructorModemap): Load the
contructor if necessary and try again before failing.
* interp/define.boot (NRTgetLookupFunction): Handle multiple
inheritance of domains.
(getBaseExports): Rename from getExportCategory. Adjust caller.
Handle multiple inheritance of domains.
(extendsCategory): Do not reference $functorForm. Take it from
the DB argument.
(getTargetFromRhs): Do not optimize codegen.
|
|
references to used entities.
|