Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
(getFunctionReplacement): Likewise.
(replaceSimpleFunctions): Likewise.
* interp/define.boot (spadCompileOrSetq): Use it.
|
|
($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.
|
|
(ambiguousSignatureError): Likewise.
* interp/define.boot (hasSigInTargetCategory): Use it to reject
ambiguous lhs of a definition.
* interp/lisplib.boot (leaveIfErrors): Fix typo.
* algebra/aggcat.spad.pamphlet: Disambiguate definitions.
* algebra/card.spad.pamphlet: Likewise.
* algebra/dhmatrix.spad.pamphlet: Likewise.
* algebra/divisor.spad.pamphlet: Likewise.
* algebra/expexpan.spad.pamphlet: Likewise.
* algebra/ffcat.spad.pamphlet: Likewise.
* algebra/ffcg.spad.pamphlet: Likewise.
* algebra/ffnb.spad.pamphlet: Likewise.
* algebra/ffp.spad.pamphlet: Likewise.
* algebra/generic.spad.pamphlet: Likewise.
* algebra/groebf.spad.pamphlet: Likewise.
* algebra/modring.spad.pamphlet: Likewise.
* algebra/moebius.spad.pamphlet: Likewise.
* algebra/mts.spad.pamphlet: Likewise.
* algebra/naalgc.spad.pamphlet: Likewise.
* algebra/ore.spad.pamphlet: Likewise.
* algebra/outform.spad.pamphlet: Likewise.
* algebra/pf.spad.pamphlet: Likewise.
* algebra/poly.spad.pamphlet: Likewise.
* algebra/polycat.spad.pamphlet: Likewise.
* algebra/prtition.spad.pamphlet: Likewise.
* algebra/radix.spad.pamphlet: Likewise.
* algebra/rep2.spad.pamphlet: Likewise.
* algebra/stream.spad.pamphlet: Likewise.
* algebra/string.spad.pamphlet: Likewise.
* algebra/tree.spad.pamphlet: Likewise.
* algebra/triset.spad.pamphlet: Likewise.
* algebra/view2D.spad.pamphlet: Likewise.
* algebra/sf.spad.pamphlet: Remove signature for hash.
* algebra/si.spad.pamphlet: Likewise.
|
|
(diagnoseUknownType): Likewise.
* interp/define.boot (compCategoryItem): Use it. Check for
unknown types.
|
|
* 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.
|
|
(getFormModemaps): Likewise.
(compComma): New.
* interp/c-util.boot (isTupleInstance): New.
(isHomoegenousVarargSignature): Likewise.
(enoughArguments): Likewise.
(wantArgumentsAsTuple): Likewise.
* interp/apply.boot (reshapeArgumentList): New.
(compFormWithModemap): Use it.
|
|
* interp/compiler.boot (compReturn): Robustify.
(unknownTypeError): Likewise.
* interp/info.boot (knownInfo): Likewise.
|
|
* algebra/riccati.spad.pamphlet (RationalRicDE): Don't import
inexistent RatODETools.
|
|
(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.
|
|
|
|
* interp/database.boot: Likewise.
* interp/format.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/i-analy.boot: Likewise.
* interp/i-coerce.boot: Likewise.
* interp/i-coerfn.boot: Likewise.
* interp/i-eval.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-output.boot: Likewise.
* interp/i-resolv.boot: Likewise.
* interp/i-spec1.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/msgdb.boot: Likewise.
* interp/newfort.boot: Likewise.
* boot/includer.boot (diagnosticLocation): New.
* boot/ast.boot (bfReName): Use it.
|
|
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.
|
|
Consistently use $InputStream and $OutputStream for I/O.
* interp/c-util.boot: Likewise.
* interp/comp.lisp: Likewise.
* interp/compat.boot: Likewise.
* interp/debug.lisp: Likewise.
* interp/def.lisp: Likewise.
* interp/g-error.boot: Likewise.
* interp/i-toplev.boot: Likewise.
* interp/int-top.boot: Likewise.
* interp/intfile.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/macros.lisp: Likewise.
* interp/metalex.lisp: Likewise.
* interp/msgdb.boot: Likewise.
* interp/patches.lisp: Likewise.
* interp/preparse.lisp: Likewise.
* interp/server.boot: Likewise.
* interp/spad-parser.boot: Likewise.
* interp/spad.lisp: Likewise.
* interp/sys-globals.boot: Likewise.
* interp/sys-macros.lisp: Likewise.
* interp/sys-os.boot: Likewise.
* interp/unlisp.lisp: Likewise.
* interp/vmlisp.lisp: Likewise.
* interp/Makefile.pamphlet (bootlex.$(FASLEXT)): Require
sys-globals.$(FASLEXT) too.
(vmlisp.$(FASLEXT)): Likewise.
|
|
|
|
(char_type): Likewise.
(int_type): Likewise.
(float_type): Likewise.
(double_type): Likewise.
(string_type): Likewise.
(pointer_type): Likewise.
(edit): Use them.
* interp/wi1.boot (ppFull): Tidy. Don't set *PRINT-DEPTH*.
* interp/vmlisp.lisp (gcmsg): Define when SBCL.
* interp/template.boot (measureCommon): Fix thinko.
* interp/sys-utility.boot: Move basic type definition from
g-util.boot to here.
* interp/g-util.boot (augProplistOf): Fix signature declaration.
* interp/daase.lisp: Tidy.
* interp/c-util.boot (displayComp): Remove assignment to
$X,$M,$F.
* interp/boot-pkg.lisp: Tidy.
* interp/axext_l.lisp: Likewise.
* interp/Makefile.pamphlet (makeint.lisp): Call GBC only when GCL.
($(axiom_targetdir)/algebra/exposed.$(FASLEXT)): Tidy.
(patches.$(FASLEXT)): Require debug.$(FASLEXT), g-timer.$(FASLEXT).
(wi2.$(FASLEXT)): Require define.$(FASLEXT).
(spad.$(FASLEXT)): Require postpar.$(FASLEXT), debug.$(FASLEXT).
* boot/translator.boot (genImportDeclaration): Include translation
for SBCL.
* boot/parser.boot (bpMapping): Tidy.
* boot/ast.boot (coreSymbol): New.
(bootSymbol): Likewise.
(bootSymbol): Likewise.
* lisp/core.lisp.in (|$NativeTypeTable|): New. Export.
* algebra/Makefile.pamphlet (COMPILE_LISP): Use $(INTERPSYS).
* algebra/exposed.lsp.pamphlet: Tidy.
|
|
* interp/c-util.boot (dollarIfRepHack): New.
(RepIfRepHack): Likewise.
(substituteDollarIfRepHack): Likewise.
(isSubset): Dollar is subset of Rep only in old semantics.
* interp/buildom.boot (mkMappingFunList): Substitute dollar for
Rep only when appropriate.
(mkRecordFunList): Likewise.
(mkNewUnionFunList): Likewise.
(mkUnionFunList): Likewise.
* interp/compiler.boot (compNoStacking): Likewise.
(compNoStacking1): Likewise.
(getConstructorFormOfMode): Likewise.
(isUnionMode): Likewise.
(coerce): Likewise.
(coerceSubset): Likewise.
* interp/modemap.boot (addModemap1): Likewise.
(isSuperDomain): Likewise.
* interp/define.boot (maybeInsertViewMorphisms): New.
(compCapsule): Use it.
(compCategoryItem): Don't allow exports of rep and per.
* interp/sys-globals.boot ($useRepresentationHack): New.
|
|
identified as first operand is a simple-expression.
|
|
|
|
(modemap.$(FASLEXT)): Likewise.
(info.$(FASLEXT)): Likewise.
(msgdb.$(FASLEXT)): Likewise.
(<<info.clisp>>): Remove.
(<<iterator.clisp>>): Likewise.
(<<modemap.clisp>>): Likewise.
(<<msgdb.clisp>>): Likewise.
* c-util.boot (intersectionContour): Change setIntersection to
intersection. Change SetUnion to union.
* database.boot (insertModemap): Move to modemap.boot.pamphlet.
* i-util.boot.pamphlet (addModemap): Likewise.
* info.boot.pamphlet: Push into package "BOOT". Fix syntax.
* iterator.boot.pamphlet: Push into package "BOOT".
* modemap.boot.pamphlet: Likewise.
* msgdb.boot.pamphlet: Push into package "BOOT". Fix syntax.
* sys-globals.boot (*BUILD-VERSION*): Define.
(*YEARWEEK*): Likewise.
|
|
(<<define.clisp>>): Remove.
* c-util.boot (CONTINUE): Comment out.
* define.boot.pamphlet: Push into package "BOOT". Fix syntax.
* i-intern.boot.pamphlet (put): Move to g-util.boot
(get): Likewise.
(get0): Likewise.
(get1): Likewise.
(get2): Likewise.
* setq.lisp (/EDITFILE): Don't set here. Define it in
sys-globals.boot.
(NRTPARSE): Don't set here. Define in define.boot.
|
|
|