aboutsummaryrefslogtreecommitdiff
path: root/src/interp/c-util.boot
AgeCommit message (Collapse)AuthorFilesLines
2008-12-082008-12-07 Gabriel Dos Reis <gdr@cs.tamu.edu>dos-reis1-1/+38
* 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.
2008-11-16 * interp/c-util.boot: Clean up.dos-reis1-4/+4
* 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.
2008-11-15 * interp/Makefile.pamphlet (OBJS): Remove cfuns. Includedos-reis1-0/+18
hashcode. * interp/cfuns.lisp: Delete.
2008-11-15 * interp/spad.lisp (incTimeSum): Remove.dos-reis1-0/+3
* 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.
2008-11-02 * interp/g-util.boot: Import "ggreater".dos-reis1-1/+3
* interp/category.boot: Import "g-cndata" * interp/c-util.boot: Import "g-opt". * interp/Makefile.pamphlet: Adjust Make rules.
2008-10-16 * interp/compiler.boot (backendCompile1): Move to c-util.boot.dos-reis1-0/+42
(COMP): Likewise. Rename to backendCompile. (compileFileQuietly): Move to c-util.boot. (compAndDefine): Likewise. (compQuietly): Likewise. (compileQuitely): Likewise.
2008-10-13 Add support for Lisp declarations in generated Lisp code.dos-reis1-16/+41
* 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.
2008-10-12 * interp/c-util.boot (backendCompileNEWNAM): New.dos-reis1-1/+103
(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.
2008-10-11 * interp/c-util.boot (backendFluidize): New.dos-reis1-4/+17
* interp/comp.lisp (COMP-TRAN): Use it. (COMP-FLUIDIZE): Remove.
2008-10-11 * interp/c-util.boot (backendCompile2): Bootified from COMP-2.dos-reis1-0/+15
* interp/compiler.boot (COMP): Use it. * interp/comp.lisp (COMP-2): Remove.
2008-10-10Fix typo from last commitdos-reis1-2/+2
2008-10-10 * interp/c-util.boot ($middleEndMacroList): New.dos-reis1-1/+103
(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.
2008-10-07 * interp/define.boot (compCategoryItem): Don't check signatures yet.dos-reis1-14/+46
* interp/c-util.boot (isKnownCategory): New. (diagnoseUknownType): Use it. Expand. * interp/compiler.boot (compCat): Use it.
2008-10-06 * interp/functor.boot (DescendCode): Update capsule directory onlydos-reis1-0/+50
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.
2008-10-05 * interp/c-util.boot ($optExportedFunctionReference): New.dos-reis1-0/+4
(setCompilerOptimizations): Set it. * interp/define.boot ($capsuleFunctionStack): New. (spadCompileOrSetq): Collect capsule function definitions. (compFunctorBody): Compile them at end of capsule.
2008-10-05 * interp/c-util.boot (getFunctionReplacement): Tidy.dos-reis1-1/+1
* algebra/data.spad.pamphlet (Byte): Likewise.
2008-10-05 * interp/c-util.boot (isAtomicForm): New.dos-reis1-20/+21
(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.
2008-10-04 * algebra/data.spad.pamphlet (sample$Byte): New.dos-reis1-1/+1
2008-10-04 * interp/c-util.boot (eqSubstAndCopy): New.dos-reis1-6/+21
(eqSubst): Likewise. (replaceSimpleFunctions): Handle XLAM-replaceable functions. * interp/wi1.boot (pairList): Remove duplicate.
2008-10-04 * interp/c-util.boot (clearReplacement): New.dos-reis1-1/+47
(getFunctionReplacement): Likewise. (replaceSimpleFunctions): Likewise. * interp/define.boot (spadCompileOrSetq): Use it.
2008-10-01 * interp/c-util.boot ($optProclaim): New.dos-reis1-0/+50
($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.
2008-09-20 * include/cfuns.h (oa_dirname): Declare.dos-reis1-2/+15
* lib/cfuns-c.c (openaxiom_is_path_separator): New. (oa_dirname): Define. (writeablep): Use it. * algebra/fname.spad.pamphlet (writable?$FileName): Tidy.
2008-09-18 * interp/c-util.boot (displayAmbiguousSignatures): New.dos-reis1-0/+14
(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.
2008-08-29 * interp/c-util.boot (isKnownType): New.dos-reis1-0/+26
(diagnoseUknownType): Likewise. * interp/define.boot (compCategoryItem): Use it. Check for unknown types.
2008-08-09 * interp/buildom.boot: Rename AST code LET to %LET throughout.dos-reis1-2/+2
* 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.
2008-07-04 * interp/compiler.boot (compFormMatch): Tidy.dos-reis1-0/+26
(getFormModemaps): Likewise. (compComma): New. * interp/c-util.boot (isTupleInstance): New. (isHomoegenousVarargSignature): Likewise. (enoughArguments): Likewise. (wantArgumentsAsTuple): Likewise. * interp/apply.boot (reshapeArgumentList): New. (compFormWithModemap): Use it.
2008-05-24 * interp/c-util.boot (stackAndThrow): Take an optional parameter.dos-reis1-1/+3
* interp/compiler.boot (compReturn): Robustify. (unknownTypeError): Likewise. * interp/info.boot (knownInfo): Likewise.
2008-05-13 * interp/c-util.boot (warnLiteral): Just warn, really.dos-reis1-2/+1
* algebra/riccati.spad.pamphlet (RationalRicDE): Don't import inexistent RatODETools.
2008-05-12 * interp/c-util.boot (isLiteral): Declare.dos-reis1-2/+7
(makeLiteral): Likewise. * interp/compiler.boot (compSymbol): Use isLiteral. * interp/wi1.boot (compSymbol): Likewise.
2008-05-11 Restrict loop variable scopes, take 2.dos-reis1-1/+3
* 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.
2008-05-10Misc cleanup.dos-reis1-9/+13
2008-05-09 * interp/c-util.boot: Remove Old Boot semantics.dos-reis1-1/+1
* 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.
2008-05-08 * boot/translator.boot (bpOutItem): Handle namespace declaration.dos-reis1-1/+1
Update all boot files to use `namespace' instead of `)package'. * interp/: Likewise.
2008-05-04 * interp/c-util.boot (compilerMessage): Tidy.dos-reis1-2/+2
2008-04-23 * boot/ast.boot: Tidy.dos-reis1-1/+1
* 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.
2008-03-25 * interp/bootlex.lisp: Import "sys-globals". dos-reis1-4/+4
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.
2008-03-24Add support for SBCL and CLispdos-reis1-1/+1
2008-03-16 * lisp/Makefile.in (void_type): New.dos-reis1-1/+0
(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.
2008-01-27 Fix SF/1872551dos-reis1-2/+19
* 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.
2007-12-13 * c-util.boot (isAlmostSimple): A `case' expresion with a simpledos-reis1-0/+1
identified as first operand is a simple-expression.
2007-12-13 * parse.boot: Register parsers by name, not by pointers.dos-reis1-2/+2
2007-11-05 * Makefile.pamphlet (iterator.$(FASLEXT)): New rule.dos-reis1-2/+2
(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.
2007-10-31 * Makefile.pamphlet (define.$(FASLEXT)): New rule.dos-reis1-1/+1
(<<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.
2007-10-15remove more pamphlets from interp/dos-reis1-0/+715