2012-06-10 Gabriel Dos Reis * interp/newaux.lisp (MAKEOP): Move to spad-parser.boot. Remove file. * interp/Makefile.in: Adjust. 2012-06-10 Gabriel Dos Reis * interp/newaux.lisp: Move Led property setting to spad-parser.boot. 2012-06-10 Gabriel Dos Reis * interp/newaux.lisp: Move Nud property setting to spad-parser.boot. Import sys-utility. * interp/Makefile.in: Adjust. 2012-06-09 Gabriel Dos Reis * interp/spad-parser.boot: Fix thinkos from previous commit. 2012-06-09 Gabriel Dos Reis * interp/preparse.lisp: Remove. * interp/spad-parser.boot: Do not include. Import lexing instead. * interp/Makefile.in: Adjust. 2012-06-09 Gabriel Dos Reis * interp/io.boot (%Reader): Add idx field. * interp/preparse.lisp ($INDEX): Remove. Adjust users. 2012-06-06 Gabriel Dos Reis * interp/lexing.boot: Move %Line to io.boot. * interp/debug.lisp (SPAD_LONG_ERROR): Take a reader parameter. Tidy. 2012-06-06 Gabriel Dos Reis * interp/io.boot (readePendingLines): Rename from readerLines. Adjust callers. 2012-06-05 Gabriel Dos Reis * interp/io.boot (readerDeferLine): New. * interp/preparse.lisp (preparse1): Use it. * interp/spad-parser.boot (preparse): Likewise. 2012-06-04 Gabriel Dos Reis * interp/spad-parser.boot (preparse): Tidy. 2012-06-04 Gabriel Dos Reis * interp/spad-parser.boot (findCommentBlock): Lose last parameter. Adjust callers. 2012-06-03 Gabriel Dos Reis * interp/spad.lisp (SPAD): Adjust. * interp/spad-parser.boot: Add a reader parameter to all parsing functions. Adjust callers. * interp/newaux.lisp: Adjust form of specialized parsers. * interp/lexing.boot: Add a reader parameter to all lexing functions. Adjust Callers. * interp/io.boot (%Reader): Add source line field. * interp/debug.lisp: Adjust IO and lexer calls. * interp/util.lisp (string2SpadTree): Remove as unused. 2012-06-03 Gabriel Dos Reis * interp/preparse.lisp ($LineList): Remove. (INITIALIZE-PREPARSE): Do not set it. (preparse1): Do not reference it. Do not test for ioTerminal? and the input is always a disk file. * interp/spad-parser.boot (findCommentBlock): Do not reference $EchoLineStack. (preparseReadLine1): Do not reference $LineList. 2012-06-03 Gabriel Dos Reis * interp/io.boot (%Reader): New data structure. * interp/preparse.lisp (INITIALIZE-PREPARSE): Parameter is now a reader. (preparse1): Likewise. Tidy. * interp/spad-parser.boot (preparseReadLine): Likewise. (preparseReadLine1): Likewise. (preparse): Likewise. (parseSpadFile): Likewise. * interp/spad.lisp (SPAD): Make it a unary function. Simplify. (INITIALIZE): Remove. 2012-06-03 Gabriel Dos Reis * interp/lexing.boot (%Line): Now a record structure. * boot/parser.boot (bpTypeName): Split out of bpTypeAliasDefinition. (bpStruct): Use it. Support parameterized structures. * boot/ast.boot (ctorName): New. (bfEnum): Use it for parameterized enums. (bfRecord): Use it for parameterized records. 2012-06-03 Gabriel Dos Reis * boot/parser.boot (bpSignatureTail): Split out of bpSignature. (bpTyped): Use it. (bpThrow): Lilkewise. (bpRegularBVItemTail): Likewise. (bpAssignLHS): Likewise. (bpStoreName): Do not reference $typings. * boot/ast.boot (%Ast): Remove %Pretend variant. (bfSignature): Rename from bfLocal. Build %Signature variant. (bfLET1): Handle assignment to typed variable. (shoeCompTran): Do not reference $typings. (shoeCompTran1): Do not translate assignment to typed variables. (bindFluidVars): Handle them here. (bfTagged): Remove. (bfTry): Tidy. * boot/translator.boot (shoeOutParse): Do not reference $typings and $returns. * interp/c-util.boot (isAlmostSimple): Initialize $assignmentList. 2012-06-01 Gabriel Dos Reis * boot/translator.boot: Remove DEFUSE, $booDefined, $bootDefinedTwice, $bootUsed, $lispWordTable, shoeDfu, shoeReport, shoeDefUse, defuse, defuse1, defSeparate, unfluidlist, defusebuiltin, bootOut, CLESSP, SSORT, bootOutLines, XREF, shoeXref, shoeXreport. 2012-06-01 Gabriel Dos Reis * boot/ast.boot (%LoadUnit): Add field for enclosing function. Remove references to $op. 2012-06-01 Gabriel Dos Reis * boot/ast.boot (%LoadUnit): Add fields for side conditions. * boot/parser.boot: Adjust. 2012-05-31 Gabriel Dos Reis * boot/ast.boot (%LoadUnit): Add fields for let var and is var sequence numbers. Eliminate $letGenVarCounter and $isGenVarCounter. 2012-05-31 Gabriel Dos Reis * boot/ast.boot: Add a %LoadUnit parameter to most functions. Adjust callers. * boot/translator.boot: Tidy. 2012-05-30 Gabriel Dos Reis * boot/parser.boot: Replace references to $ttok. 2012-05-30 Gabriel Dos Reis * boot/parser.boot (%ParserState): Add field for current token. Replace references to $stok. 2012-05-30 Gabriel Dos Reis * boot/ast.boot (bfSpecificErrorHere): New. (bfISReverse) Use it. Don't use bpTrap. (bfIS1): Likewise. (bfParameterList): Likewise. (bfHandlers): Likewise. * boot/parser.boot (bpTrap): Take a parser state argument. Adjust callers. 2012-05-30 Gabriel Dos Reis * boot/parser.boot: Remove references to $bpCount. * boot/translator.boot (shoeOutParse): Likewise. 2012-05-29 Gabriel Dos Reis * boot/parser.boot: Remove references to $bpParentCount. * boot/translator.boot (shoeOutParse): Likewise. 2012-05-29 Gabriel Dos Reis * boot/parser.boot: Remove references to $stack. * boot/translator.boot: Likewise. 2012-05-29 Gabriel Dos Reis * boot/parser.boot: Add parser state argument to more functions. Remove references to $inputStream. * boot/translator.boot (shoeOutParse): Remove $inputStream. 2012-05-29 Gabriel Dos Reis * boot/parser.boot (%ParserState): New. (makeParserState): Likewise. (%Translator): Likewise. (makeTranslator): Likewise. Make all parsing functions take a parser state argument. * boot/translator.boot (shoeOutParse): Adjust. * interp/spad-parser.boot (stringPrefix?): Remove redudant definition. 2012-05-28 Gabriel Dos Reis * interp/lexing.boot: Use makeToken directly. (tokenInstall): Remove. (getSpadIntegerToken): Lose parameter. Adjust callers. (getNumberToken): Likewise. (getArgumentDesignator): Likewise. (getToken): Likewise. (getSpadString): Likewise. (getSpecial): Likewise. (getGliph): Likewise. (getIdentifier): Likewise. * lisp/core.lisp.in ($stdio): New. * boot/includer.boot: Use it. * boot/translator.boot: Likewise. * boot/utility.boot (stringPrefix?): New. 2012-05-28 Gabriel Dos Reis * interp/io.boot (findChar): Do not define here. * interp/match.boot (charPosition): Likewise. * boot/utility.boot (charPosition): Now return argument string length if no match. (findChar): New. * boot/scanner.boot (lexerCharPosition): Adjust. (shoeAccumulateLines): Use findChar. 2012-05-26 Gabriel Dos Reis * boot/ast.boot (bfMDef): Simplify. (backquote): Do not quote integer and string literals. 2012-05-26 Gabriel Dos Reis * boot/tokens.boot: freshLine, functionSymbol?, and symbolGlobal? are now builin. * boot/ast.boot: Tidy. * interp/c-util.boot: Likewise. * interp/br-saturn.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/i-output.boot: Likewise. * interp/clam.boot: Likewise. * interp/trace.boot: Likewise. * interp/sys-utility.boot: Likewise. * interp/sys-driver.boot: Likewise. * interp/lisplib.boot: Likewise. * interp/lisp-backend.boot: Likewise. 2012-05-24 Gabriel Dos Reis * interp/sys-globals.boot ($compCount): Remove. * interp/spad.lisp (knownEqualPred): Move to buildom.boot (hashable): Likewise. Remove junk. * interp/debug.lisp: Remove junk. * interp/vmlisp.lisp: Likewise. 2012-05-24 Gabriel Dos Reis * algebra/Makefile.in (initdb.$(FASLEXT)): Add --syslib to fix thinko. 2012-05-24 Gabriel Dos Reis * boot/scanner.boot: Eliminate fluid variable $n. (lexerRefresh?): New. (lexerSetLine!): Likewise. (lexerSkipBlank!): Likewise. (lexerSkipToEnd!): Likewise. (lexerAdvancePosition!): Likewise. (lexerCharCountToCompleteTab): Likewise. (lexerCurrentChar): Likewise. (lexerCharPosition): Likewise. (lexerCharacterAt): Likewise. (lexerEol?): Likewise. 2012-05-24 Gabriel Dos Reis * boot/scanner.boot (lexerLineLength): New. (shoeNextLine): Use it in replacement of $sz. (shoeLineToks): Likewise. (shoeLispEscape): Likewise. (shoeEsc): Likewise. (shoeStartsComment): Likewise. (shoeStartsNegComment): Likewise. (shoeNegComment): Likewise. (shoeComment): Likewise. (shoePossFloat): Likewise. (shoeSpace): Likewise. (shoeS): Likewise. (shoeW): Likewise. (shoeInteger1): Likewise. (shoeNumber): Likewise. (shoeExponent): Likewise. 2012-05-24 Gabriel Dos Reis * boot/scanner.boot (%Lexer): New record structure. Add a lexer parameter to all lexing functions that need one. Adjust their callers. 2012-05-23 Gabriel Dos Reis * boot/tokens.boot: "@" is now a new keyword. * boot/ast.boot (bfRestrict): New. (bpTyped): Rename from bpTagged. Accept type restriction. * boot/utility.boot (drop): Restrict the result to a %List. 2012-05-23 Gabriel Dos Reis * interp/database.boot (%Constructor): New. (makeConstructor): Likewise. (makeInitialDB): Tidy. * interp/daase.lisp (makeDB): Take two more parameters. Build a %Constructor structure object too. 2012-05-23 Gabriel Dos Reis * interp/sys-driver.boot (initializeDatabases): Load initidb if specified. * interp/database.boot (populateDFFromFile): Remove. (printAllInitdbInfo): Write as as Lisp file. * algebra/Makefile.in (COMPILE_SPAD): initdb is now a FASL. (BOOTSTRAP): Likewise. (strap-2/%.$(FASLEXT)): Likewise. (initdb.$(FASLEXT)): New. 2012-05-23 Gabriel Dos Reis * interp/vmlisp.lisp (MAKE-CVEC): Remove. (GETSTR): Likewise. * interp/sys-macros.lisp (INTERNL): Likewise. * interp/macros.lisp: Move content to vmlisp.lisp. Remove. * interp/Makefile.in: Adjust. * interp/debug.lisp: Now import sys-macros * interp/fname.lisp: Likewise. * interp/format.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/g-util.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/htcheck.boot: Likewise. * interp/htsetvar.boot: Likewise. * interp/monitor.lisp: Likewise. * interp/newaux.lisp: Likewise. * interp/newfort.boot: Likewise. * interp/nlib.lisp: Likewise. * interp/postpar.boot: Likewise. * interp/profile.boot: Likewise. * interp/server.boot: Likewise. * interp/setvars.boot: Likewise. * interp/setvart.boot: Likewise. * interp/sfsfun.boot: Likewise. * interp/simpbool.boot: Likewise. * interp/spad.lisp: Likewise. * interp/termrw.boot: Likewise. * interp/topics.boot: Likewise. 2012-05-23 Gabriel Dos Reis * boot/includer.boot (%SourceLine): New datatype. (makeSourceLine): New. Use source line macro accessors. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. 2012-05-22 Gabriel Dos Reis * interp/br-search.boot: Use findChar and findString in lieu of STRPOS. * interp/database.boot: Likewise. * interp/format.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/match.boot: Likewise. * interp/scan.boot: Likewise. * interp/trace.boot: Likewise. 2012-05-22 Gabriel Dos Reis * boot/tokens.boot (%Token): New datatype. (makeToken): New. * boot/includer.boot: Use %token accessors. * boot/parser.boot: Likewise. * boot/pile.boot: Likewise. * boot/scanner.boot: Likewise. * boot/utility.boot: Export subString. 2012-05-22 Gabriel Dos Reis * interp/lexing.boot (%Token): Now an actual type defined as a record structure. (copyToken): Adjust. (tokenSymbol): Remove as now automatically generated. (tokenType): Likewise. (tokenNonblank?): Likewise. * boot/ast.boot (bfRecordDef): Specify a name for a copier function. 2012-05-22 Gabriel Dos Reis * boot/translator.boot (translateToplevel): Handle record structures. * boot/tokens.boot: "with" is now a keyword in Boot. * boot/parser.boot (bpSignature): The typing is required afte the colong. (bpFieldList): New. (bpGlobalAccessors): Likewise. (bpAccessorDefinitionList): Likewise. (bpAccessorDefinition): Likewise. (bpFieldSection): Likewise. (bpSelectField): Likewise. (bpRecord): Likewise. (bpStruct): Use it to implement record structures. * boot/ast.boot (%Ast): Add %Record and %AccessorDef. (bfRecordDef): New. 2012-05-21 Gabriel Dos Reis * boot/ast.boot (needsPROG): Remove. (shoePROG): Likewise. (declareLocalVars): New. (maybeAddBlock): Likewise. (hasReturn?): Likewise. (shoeCompTran): Tidy. 2012-05-21 Gabriel Dos Reis * interp/parsing.lisp: Remove. * interp/spad-parser.boot (floatExponent): New. (parseFloatExponent): Use it instead of FLOATEXPID. * interp/lexing.boot (nextLinesClear!): New. (ioClear!): Likewise. (OUT-STREAM): Define here. * interp/debug.lisp: Import lexing instead of parsing. Tidy. * interp/preparse.lisp: Likewise. * interp/spad.lisp: Likewise. * interp/util.lisp: Likewise. * interp/Makefile.in (OBJS): Do not include parsing.$(FASLEXT). (parsing.$(FASLEXT)): Remove. Adjust dependents. 2012-05-21 Gabriel Dos Reis * interp/spad-parser.boot (addParensAndSemisToLine): Drop 'drop', avoiding awakening GCL bug and quadratic traversal of lines. (parsePiles): Simplify. 2012-05-21 Gabriel Dos Reis * interp/spad.lisp (S-PROCESS): Rename to translateSpad and move to spad-parser.boot. * interp/parsing.lisp (MATCH-ADVANCE-SPECIAL): Remove. (MATCH-SPECIAL): Likewise. (MATCH-KEYWORD-NEXT): Likewise. (INITIAL-SUBSTRING-P): Likewise. (TERMCHR): Likewise. (dollarTran): Simplify and move to spad-parser.boot. 2012-05-20 Gabriel Dos Reis * interp/lexing.boot (getDecimalNumberToken): New. (getIntegerInRadix): Likewise. (getSpadIntegerToken): Likewise. (getToken): Use it. * interp/Makefile.in (bootlex.$(FASLEXT)): Remove rule. (OBJS): Do not include it. * interp/bootlex.lisp: Remove. 2012-05-20 Gabriel Dos Reis * interp/spad-parser.boot (parseSexpr1): Simplify. (parseDara): Likewise. Do not set LABLASOC. * interp/bootlex.lisp (PRINT-DEFUN): Remove. (TRANSLABEL): Likewise. (TRANSLABEL1): Likewise. * interp/preparse.lisp (LABLASOC): Likewise. 2012-05-20 Gabriel Dos Reis * interp/vmlisp.lisp (SETANDFILE): Remove. (LAM,EVALANDFILEACTQ): Likewise. * interp/sys-utility.boot (PRINT-AND-EVAL-DEFUN): Likewise. * interp/slam.boot (reportFunctionCompilation): Tidy. * interp/lisp-backend.boot (evalAndPrintBackendDecl): New. * interp/c-util.boot (backendCompileSPADSLAM): Use it in lieu of SETANDFILE. (compAndDefine): Use evalAndPrintBackendDecl in lieu of PRINT-AND-EVAL-DEFUN. * interp/hypertex.boot: Clean up. * interp/nhyper.boot: Likewise. * interp/word.boot: Likewise. 2012-05-20 Gabriel Dos Reis * interp/vmlisp.lisp (EVALANDFILEACTQ): Second argument is no longer optional. Adjust callers. (LAM\,EVALANDFILEACTQ): Likewise. * interp/slam.boot (compQuietly): Use printBackendDecl. * interp/spad.lisp (SPAD): Likewise. * interp/sys-utility.boot (PRINT-AND-EVAL-DEFUN): Likewise. * interp/macros.lisp (SETANDFILE): Move to vmlisp.lisp. * interp/lisp-backend.boot (printBackendStmt): New. (evalAndPrintBackendStmt): Likewise. (printBackendDecl): Likewise. * interp/c-util.boot (registerFunctionReplacement): Use evalAndPrintBackendStmt. (registerRedexForm): Likewise. (proclaimCapsuleFunction): Use printBackendStmt. * interp/Makefile.in (lisp-backend.$(FASLEXT)): Require nlib.$(FASLEXT) 2012-05-20 Gabriel Dos Reis * interp/parsing.lisp (CONVERSATION): Remove. (CONVERSATION1): Likewise. (MAKE-PARSE-FUNCTION): Likewise. (MAKE-PARSE-FUNCTION1): Likewise. (MAKE-PARSE-FUNC-FLATTEN): Likewise. (MAKE-PARSE-FUNC-FLATTEN-1): Likewise. (TRANSPGVAR): Likewise. (GETRULEFUNLISTS): Likewise. (REDUCTION-PRINT): Likewise. (TRACEMETA): Likewise. (TRMETA): Likewise. (TRMETA1): Likewise. (/MDEF): Likewise. * interp/macros.lisp (EXPAND-TABS): Likewise. * interp/spad.lisp (READ-SPAD): Likewise. (READ-INPUT): Likewise. (READ-SPAD0): Likewise. (READ-SPAD1): Likewise. (READ-SPAD-1): Likewise. (New,ENTRY,1): Likewise. (New,ENTRY,2): Likewise. * interp/bootlex.lisp (SPAD_SYNTAX_ERROR): Move to debug.lisp. (SPAD_LONG_ERROR): Likewise. (SPAD_SHORT_ERROR): Likewise. (SPAD_ERROR_LOC): Likewise. * interp/c-util.boot (COMP370): Move to lisp-backend.boot. (compQuietly): Move to slam.boot. 2012-05-20 Gabriel Dos Reis * boot/utility.boot (strinSuffix?): New. * boot/translator.boot (shoeRemovebootIfNec): Use it. 2012-05-20 Gabriel Dos Reis Fix build breakage with CLozure CL. * lisp/core.lisp.in ($stdin): Demote to DEFPARAMETER. ($stdout): Likewise. 2012-05-20 Gabriel Dos Reis * boot/ast.boot (shoeCompTran): Simplify. (shoeCompTran1): Partially defer translation of fluid variable definition. (bindFluidVars!): New. Complete translation. (groupFluidVars): New. * interp/newfort.boot (fortFormatIntrinsics): Remove redundant return. 2012-05-19 Gabriel Dos Reis * boot/ast.boot (shoeCompTran1): Take variable sets by reference. Remove globals. Adjust caller. (shoeCompTran): Replace fluid variables by references. 2012-05-19 Gabriel Dos Reis * boot/tokens.boot: symbolBinding is now builtin. * boot/ast.boot (%Ast): Add %Dynamic variant. (bfColonColon): Use symbolBinding instead of FIND-SYMBOLS. (compFluid): Return a %Dynamic form. Adjust callers. (shoeCompTran): Tidy. * boot/translator.boot (BOOTLOOP): Tidy. (BOOTPO): Likewise. 2012-05-11 Gabriel Dos Reis * interp/c-util.boot: Miscellaneous cleanup. * interp/compiler.boot: Likewise. * interp/database.boot: Likewise. * interp/debug.lisp: Likewise. * interp/format.boot: Likewise. * interp/g-timer.boot: Likewise. * interp/ht-util.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/macros.lisp: Likewise. * interp/monitor.lisp: Likewise. * interp/msgdb.boot: Likewise. * interp/newfort.boot: Likewise. * interp/nlib.lisp: Likewise. * interp/parsing.lisp: Likewise. * interp/pf2atree.boot: Likewise. * interp/pf2sex.boot: Likewise. * interp/posit.boot: Likewise. * interp/sfsfun.boot: Likewise. * interp/util.lisp: Likewise. 2012-05-11 Gabriel Dos Reis * interp/io.boot (findString): New. * interp/preparse.lisp: Use it instead of SEARCH. 2012-05-11 Gabriel Dos Reis * interp/io.boot (findChar): New. * interp/preparse.lisp (preparse1): Use it instead of POSITION. 2012-05-11 Gabriel Dos Reis * interp/preparse.lisp (PARSEPRINT): Move to spad-parser.boot. Rename as parsePrint. 2012-05-11 Gabriel Dos Reis * interp/preparse.lisp (ADD-PARENS-AND-SEMIS-TO-LINE): Move to spad-parser.boot Rename as addParensAndSemisToLine. (PARSEPILES): Move spad-parser.boot. Rename as parsePiles. 2012-05-11 Gabriel Dos Reis * interp/preparse.lisp (preparseReadLine1): Move to spad-parser.boot. 2012-05-10 Igor Pashev * hyper/initx.c: Fixed spelling errors. * hyper/macro.c (parse_macro): Likewise. * sman/sman.c (manage_spad_io): Likewise. 2012-05-09 Gabriel Dos Reis * interp/io.boot (carriageRetChar?): New. (trimCarriageReturn): Likewise. (expandLeadingTabs): Likewise. * interp/preparse.lisp: Use it. * interp/incl.boot: Likewise. * interp/i-syscmd.boot: Likewise. 2012-05-09 Gabriel Dos Reis * interp/preparse.lisp (PREPARSE): Move to spad-parser.boot. Rename as preparse. 2012-05-09 Gabriel Dos Reis * interp/preparse.lisp (FINCOMBLOCK): Move to spad-parser.boot. Rename as findCommentBlock. 2012-05-09 Gabriel Dos Reis * interp/preparse.lisp (PREPARSE-ECHO): Move to spad-parser.boot. Rename as preparseEcho. * lisp/core.lisp.in (formatToStream): New. 2012-05-08 Gabriel Dos Reis * boot/tokens.boot: Export char. Do not rename maxIndex. * lisp/core.lisp.in (maxIndex): Define and export. * interp/bootlex.lisp: Adjust. * interp/parsing.lisp: Likewise. * interp/macros.lisp: Likewise. (DROPTRAILINGBLANKS): Remove. (BLANKP): Likewise. (NONBLANKLOC): Likewise. * interp/io.boot (trimTrailingBlank): New. (firstNonblankCharPosition): Likewise. * interp/preparse.lisp: Use them. Adjust. * interp/sys-macros.lisp (char): Remove. * interp/vmlisp.lisp (MAXINDEX): Likewise. * interp/br-search.boot (pmTransFilter): Fix bogus uses of char. * interp/debug.lisp: Likewise. * interp/g-util.boot: Likewise. * interp/ht-root.boot: Likewise. * interp/i-output.boot: Likewise. * interp/i-syscmd.boot: Likewise. 2012-05-07 Gabriel Dos Reis * interp/spad.lisp (INIT-BOOT/SPAD-READER): Don't set FILE-CLOSED. (SPAD): Tidy. * interp/spad-parser.boot (parseSpadFile): Do not test for *EOF* or FILE-CLOSED. * interp/preparse.lisp (INITIALIZED-PREPARSE): Use readLine. (preparseReadLine1): Likewise. * interp/parsing.lisp (FILE-CLOSED): Remove. (GET-A-LINE): Likewise. (CURRENT-FRAGMENT): Likewise. (INPUT-CLEAR): Likewise. (READ-A-LINE): Likewise. (IOSTREAMS-CLEAR): Don't set FILE-CLOSED. (IOCLEAR): Don't call INPUT-CLEAR. 2012-05-07 Gabriel Dos Reis * interp/vmlisp.lisp (ioTerminal?): Rename form IS-CONSOLE. * interp/bootlex.lisp: Adjust. * interp/diagnostics.boot: Likewise. * interp/macros.lisp: Likewise. * interp/msgdb.boot: Likewise. * interp/parsing.lisp: Likewise. * interp/preparse.lisp: Likewise. * interp/server.boot: Likewise. 2012-05-07 Gabriel Dos Reis * interp/preparse.lisp (SKIP-IFBLOCK): Move to spad-parser.boot. Renamed skipIfBlock. (SKIP-IF-BLOCK): Move to spad-parser.boot. Renamed skipToEndif. (PREPARSEREADLINE): Move to spad-parser.boot. Renamed preparseReadLine. 2012-05-06 Gabriel Dos Reis * interp/sys-globals.boot ($insideCompTypeOf): Remove. * interp/preparse.lisp (INITIAL-SUBSTRING): Remove. * interp/g-util.boot (stringPrefix?): Remove. * interp/compiler.boot (compTypeOf): Remove. (comp3): Don't call it. 2012-05-06 Gabriel Dos Reis * interp/lexing.boot (indentationLocation): New. * interp/macros.lisp (expand-tabs): Use it in lieu of NDENT-POS. * interp/preparse.lisp (PREPARSE1): Likewise. 2012-05-06 Gabriel Dos Reis * interp/Makefile.in (OBJS): Include io.$(FASLEXT). (io.$(FASLEXT)): New rule. * interp/io.boot: New. * interp/preparse.lisp: Use storeBlanks!. (STOREBLANKS): Remove. 2012-05-05 Gabriel Dos Reis * interp/preparse.lisp (ADDCLOSE): Move to spad-parser.boot. Renamed addClose. (ESCAPED): Move to spad-parser.boot. Renamed escaped?. (INFIXTOK): Move spad-parser.boot. Renamed infixToken?. 2012-05-05 Gabriel Dos Reis * interp/clam.boot (HGETandCount): Remove as unused. (clearHashReferenceCounts): Likewise. (remHashEntriesWithCount): Likewise. (initCache): Likewise. (assocCache): Likewise. (assocCacheShift): Likewise. (assocCacheShiftCount): Likewise. (hputNewProp): Likewise. (lassocShift): Likewise. (lassocShiftQ): Likewise. (globalHashtableStats): Likewise. (constructor2ConstructorForm): Likewise. 2012-05-05 Gabriel Dos Reis * interp/clam.boot (compHash): Rework. * interp/spad.lisp ($reportCounts): Remove. 2012-05-05 Gabriel Dos Reis * interp/clam.boot (compClam): Remove. (compHash): Simplify. Now take only 3 parameters. * interp/c-util.boot (compileQuietly): Remove as unused. * interp/sys-globals.boot ($clamList): Move to clam.boot. * interp/define.boot (compileConstructor1): Call compHash in lieu of compClam. * share/doc/msgs/s2-us.msgs: Remove unused diagnostics, due to compClam removal and compHash simplification. 2012-05-04 Gabriel Dos Reis * interp/define.boot (compileConstructor1): Don't call clearConstructorCache here. Simplify. (compileConstructor): Call clearConstructorCache here. * interp/c-util.boot (backendCompile2): Do not test for membership of $clamList. * interp/clam.boot (compHash): Use compQuietly instead of compileQuietly. 2012-05-04 Gabriel Dos Reis * interp/clam.boot (compHash): Use compQuietly in lieu of compileInteractive. 2012-05-04 Gabriel Dos Reis * interp/lisp-backend.boot (assembleCode): New. * interp/c-util.boot (backendCompileSPADSLAM): Use it. (backendCompile2): Likewise. 2012-05-04 Gabriel Dos Reis * interp/clam.boot ($hashNode): Remove. (compHashGlobal): Likewise. 2012-05-04 Gabriel Dos Reis * interp/clam.boot (compHash): Avoid unnecessary gensyms. 2012-05-03 Gabriel Dos Reis * interp/buildom.boot (lookupDisplay): Tidy. * interp/clam.boot (compHash): Likewise. 2012-05-03 Gabriel Dos Reis * interp/vmlisp.lisp (THROW-PROTECT): Remove. (MDEF): Likewise. (NUM2CHAR): Likewise. (CHAR2NUM): Likewise. 2012-05-03 Gabriel Dos Reis * interp/vmlisp.lisp ($lamName): Remove. (LAM): Likewise. (*LAM): Likewise. (ISQUOTEDP): Likewise. (QUOTESOF): Likewise. (DDQUOTE): Likewise. * interp/lisp-backend.boot (COMPILE1): Simplify. 2012-05-03 Gabriel Dos Reis * interp/c-util.boot: Use LAMBDA type in lieu of LAM. * interp/clam.boot: Likewise. * interp/define.boot: Likewise. * interp/lisp-backend.boot (COMPILE1): Tidy. * interp/slam.boot: Likewise. 2012-05-03 Gabriel Dos Reis * interp/g-opt.boot ($AbstractionOperator): Remove SLAM. * interp/c-util.boot (backendCompileSLAM): Remove. (backendCompileSPADSLAM): Tidy. (backendCompile2): Adjust. 2012-05-03 Gabriel Dos Reis * interp/define.boot (compDefineFunctor1): Use LAMBDA for the resulting functor if not cachable. * interp/clam.boot (compClam): Tidy. (compHash): Likewise. (compHashGlobal): Likewise. * interp/i-eval.boot (evalForm): Use LAMBDA, not LAM. * interp/i-coerce.boot (getSubDomainPredicate): Use %lambda not LAM. 2012-05-03 Gabriel Dos Reis * interp/c-util.boot (makeWorkerName): New. (backendCompileSLAM): Use it. (backendCompileSPADSLAM): Likewise. * interp/clam.boot (compHash): Likewise. Do not synthetize new parameter for unary constructors. 2012-05-02 Gabriel Dos Reis * interp/c-util.boot: Use APPLY, not APPLX. * interp/clam.boot: Likewise. * interp/i-output.boot: Likewise. * interp/slam.boot: Likewise. * interp/vmlisp.lisp (APPLX): Remove. 2012-05-02 Gabriel Dos Reis * interp/c-util.boot (backendCompileSPADSLAM): Do not devaluate argument list. Tidy. 2012-05-02 Gabriel Dos Reis * interp/c-util.boot (backendCompileSPADSLAM): Tidy. Do not devaluate argument of unary constructors. 2012-05-01 Gabriel Dos Reis * interp/vmlisp.lisp (COMPILE1): Move to lisp-backend.boot. ($lamName): Rename from *LAM-NAME*. 2012-05-01 Gabriel Dos Reis * interp/vmlisp.lisp (REMOVE-FLUIDS): Move to lisp-backend.boot. Rename to removeFluids. (SIMPLE-ARGLIST): Move to lisp-backend.boot. Rename to simpleParameterList?. 2012-05-01 Gabriel Dos Reis * interp/vmlisp.lisp (COMP370): Move to c-util.boot (compileLispDefinition): Move to lisp-backend.boot. 2012-05-01 Gabriel Dos Reis * interp/i-special.boot (interpREPEAT): Use CATCH directly. * interp/int-top.boot (intloopSpadProcess): Likewise. * interp/sys-macros.lisp (funcall): Remove. (Catch): Likewise. (Throw): Likewise. (UnwindProtect): Likewise. (SPADCATCH): Likewise. (SPADTHROW): Likewise. (YIELD): Likewise. 2012-04-30 Gabriel Dos Reis * algebra/integer.spad.pamphlet (Integer): Use %iaddmod, %isubmod, %imulmod. * algebra/si.spad.pamphlet (SingleInteger): Likewise. * interp/c-util.boot (devaluate): Use # in lieu of QVSIZE. * interp/g-opt.boot: %ilfshift and %irshift are now builtin side-effect free operations. * interp/lisp-backend.boot: Translate them. * interp/g-util.boot (mergeSort): Avoid QSDIFFERENCE. * interp/slam.boot: Likewise. * interp/sys-macros.lisp: Likewise. * interp/macros.lisp: Avoid QVMAXINDEX. * interp/vmlisp.lisp (QSDIFFERENCE): Remove. (QSGREATERP): Likewise. (QSLEFTSHIFT): Likewise. (QSLESSP): Likewise. (QSMAX): Likewise. (QSMIN): Likewise. (QSMINUS): Likewise. (QSMINUSP): Likewise. (QSODDP): Likewise. (QSABSVAL): Likewise. (QSPLUS): Likewise. (QSZEROP): Likewise. (QVMAXINDEX): Likewise. (QVSIZE): Likewise. (ZERO?): Likewise. 2012-04-30 Gabriel Dos Reis * algebra/si.spad.pamphlet (SingleInteger): Use %iaddmod, %isubmod, and %imulmod. * interp/g-opt.boot: These are now builtin side-effect free operators. (optIaddmod): New optimizer. Register. (optIsubmod): Likewise. (optImulmod): Likewise. * interp/sys-macros.lisp (QSADDMOD): Remove. (QSDIFMOD): Likewise. (QSMULMOD): Likewise. 2012-04-30 Gabriel Dos Reis * interp/compiler.boot: Use float? in lieu of FLOATP. * interp/fortcall.boot: Likewise. * interp/i-object.boot: Likewise. * interp/newfort.boot: Likewise. * interp/i-analy.boot: Compare to 0 in lieu of ZEROP. * interp/i-special.boot: Likewise. * interp/i-syscmd.boot: Likewise. * interp/sfsfun.boot: Likewise. * interp/sys-driver.boot: Likewise. * interp/macros.lisp: Directly use 1+ instead of QADD1. * interp/preparse.lisp: Likewise. * interp/slam.boot: Likewise. * interp/sys-macros.lisp: Likewise. * interp/sys-constants.boot ($BasicPredicates): Remove as unused. * interp/vmlisp.lisp (ADD1): Remove. (QSADD1): Likewise. (QSSUB1): Likewise. (QSTIMES): Likewise. 2012-04-30 Gabriel Dos Reis * interp/fortcall.boot: Use copyTree, not COPY-TREE. * interp/i-intern.boot: Likewise. * interp/setvars.boot: Likewise. * interp/i-output.boot: Use abstractChar, not EBCDIC. * interp/i-util.boot: Likewise. * interp/vmlisp.lisp (EBCDIC): Remove. (CALLBELOW): Likewise. (RE-ENABLE-INT): Likewise. (QUOREM): Likewise. 2012-04-29 Gabriel Dos Reis * lisp/core.lisp.in (fixnum?): New. * algebra/sex.spad.pamphlet: Use %float? instead of RNUM. Use %integer? instead of INTP. * interp/g-timer.boot: Use float? instead of RNUMP. * interp/i-coerce.boot: Use fixnum? instead of SINTP or SMINTP. * interp/i-intern.boot: Likewise. * interp/lisp-backend.boot: Likewise. * interp/slam.boot: Likewise. * interp/trace.boot: Likewise. * interp/vmlisp.lisp: Likewise. (INTP): Remove. (BINTP): Likewise. (LESSP): Likewise. (LINTP): Likewise. (MAKESTRING): Likewise. (MAPELT): Likewise. (NUMP): Likewise. (RNUMP): Likewise. (SINTP): Likewise. (SMINTP): Likewise. 2012-04-29 Gabriel Dos Reis * interp/debug.lisp: ident? in lieu of IDENTP. * interp/macros.lisp: Likewise. * interp/parsing.lisp: Likewise. * interp/sys-macros.lisp: Likewise. * interp/vmlisp.lisp: Likewise. (IDENTP): Remove. 2012-04-29 Gabriel Dos Reis * boot/ast.boot (bfNumber?): Rename from bfSmintable. Check for floating point literals too. Adjust callers. (bfLessp): Check for integer or floating pointer numbers. * interp/vmlisp.lisp (complex?): New. (complex): Likewise. (realPart): Likewise. (imagPart): Likewise. (conjugate): Likewise. (sqrt): Likewise. 2012-04-28 Gabriel Dos Reis * interp/compiler.boot (finishLambdaExpression): Tidy. (compWithMappingMode): Use %lambda not LAMBDA. * interp/g-opt.boot (changeVariableDefinitionToStore): Handle %closure. 2012-04-28 Gabriel Dos Reis * interp/boot-pkg.lisp (gensym?): Check for non-null object. * interp/clammed.boot: Use it in lieu of GENSYMP. * interp/debug.lisp: Likewise. * interp/g-opt.boot: Likewise. * interp/g-util.boot: Likewise. * interp/i-analy.boot: Likewise. * interp/trace.boot: Likewise. * interp/vmlisp.lisp (GENSYMP): Remove. 2012-03-02 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (MonoidOperation): Noew CoercibleTo SemiGroupOperation T. 2012-02-27 Gabriel Dos Reis * interp/nruncomp.boot (markOperation): New. (optDeltaEntry): Implement better patch for last change. * interp/compiler.boot (compFormWithModemap): Undo last change. 2012-02-26 Gabriel Dos Reis * interp/compiler.boot (compFormWithModemap): Mark implementation resolution as appropriate. 2012-02-26 Gabriel Dos Reis * interp/compiler.boot (emitLocalCallInsn): Mark external operators as such, and local functions as such. (freeVarUsage): Do not count external and local functions. (extractCode): Tidy. Handle closure literals. * interp/g-opt.boot (optCall): Optimize external calls where possible. %external is a side-effect free operator. 2012-02-26 Gabriel Dos Reis * interp/g-util.boot (usedSymbol?): Remove. (bindingForm?): New. (usesVariable?): Likewise. * interp/compiler.boot (declareUnusedParameters): Use it. * interp/g-opt.boot (inlineLocals): Likewise. (optClosure): Likewise. (optBind): Likewise. * interp/define.boot (compContained): Remove. 2012-02-26 Gabriel Dos Reis * interp/c-util.boot (numOfOccurencesOf): Tidy. * interp/compiler.boot (compUnnamedMapping): Fix thinko. * interp/g-opt.boot (semiSimpleRelativeTo?): Likewise. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (compTopLevel): Do not bind $killOptimizeIfTrue. (compWithMappingMode): Likewise. (compUnnamedMapping): Likewise. (extractCode): Simplify. * interp/g-opt.boot (optClosure): New. Register. (semiSimpleRelativeTo?): An abstraction is always semisimple. * interp/nruncomp.boot ($killOptimizeIfTrue): Remove. (optDeltaEntry): Don't test for it. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (extractCode): Rename from extractCodeAndConstructTriple. Change Arity. Tidy. Adjust callers. 2012-02-25 Gabriel Dos Reis * interp/compiler.boot (finishLambdaExpression): Use %closure. (extractCodeAndConstructTriple): Likewise. * interp/g-opt.boot (optCall): Adjust. 2012-02-25 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Fix thinko. 2012-02-24 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (BinaryOperatorCategory): New. (BinaryOperation): Likewise. (IdempotentOperatorCategory): Likewise. (SemiGroupOperatorCategory): Likewise. (SemiGroupOperation): Likewise. (MonoidOperatorCategory): Likewise. (MonoidOperation): Likewise. * algebra/exposed.lsp.pamphlet: Expose them. * algebra/Makefile.in (oa_algebra_layer_0): Include IDEMOPC, SGPOPC, SPGOP, MONOPC, BINOPC. (axiom_algebra_layer_1): Include MONOP. 2012-02-24 Gabriel Dos Reis * interp/lexing.boot: "assume" is now also a keyword for the compiler. * interp/spad-parser.boot (parseCategory): Accept exported properties. (parseFormula): New. 2012-02-23 Gabriel Dos Reis * interp/nruncomp.boot (genDeltaEntry): Replace applyFun with %apply. * interp/lisp-backend.boot (expandApply): Remove. Unregister expander. * interp/g-opt.boot (optCall): applyFun is not longer an opcode. Look for %apply. * interp/compiler.boot (applyMapping): Generate ['%call,['%apply,.]] form, not ['%apply,..] form. (extractCodeAndConstructTriple): Tidy. (compApplication): Likewise. 2012-02-19 Gabriel Dos Reis * interp/lexing.boot (getNumberToken): New. (getArgumentDesignator): Likewise. (getToken): Use it. * interp/parsing.lisp (GET-NUMBER-TOKEN): Remove. * interp/bootlex.lisp (INIT-BOOT/SPAD-READER): Move to spad.lisp. (SPAD): Likewise. (READ-SPAD1): Likewise. (TEST): Remove. (GET-ARGUMENT-DESIGNATOR-TOKEN): Likewise. 2012-02-19 Gabriel Dos Reis * interp/compiler.boot (compBuiltinDomain): Compute the exports from parentsOfBuiltinInstance. * interp/buildom.boot (parentsOfBuiltinInstance): Tidy. 2012-02-19 Gabriel Dos Reis * interp/compiler.boot (compBuiltinDomain): Rename from compCat. 2012-02-19 Gabriel Dos Reis * interp/br-data.boot (libConstructorSig): Rename T$ to T for external name printing. Do not call ncParseFromString. 2012-02-15 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (Ring): Extends SemiRing. (Dioid): New. Extend OrderedAbelianMonoid and SemiRing. * algebra/exposed.lsp.pamphlet: Expose Dioid. 2012-02-13 Gabriel Dos Reis * interp/g-util.boot (stripTags): Rename from stripUnionTags. Adjust callers. * interp/database.boot (genericInstanceForm): New. * interp/buildom.boot (parentsOfBuiltinInstance): New. (builtinInstanceForm): Likewise. * interp/br-data.boot (genericParentsOf): New. (parentsOfForm): Use it, (ancestorsRecur): Likewise. * interp/br-con.boot (originInOrder): Use parentsOfForm. 2012-02-12 Gabriel Dos Reis * interp/define.boot (getCatAncestors): Remove. Adjust caller. (depthAssoc): Tidy. (NRTmakeCategoryAlist): Tidy. 2012-02-12 Gabriel Dos Reis * interp/define.boot (NRTcatCompare): Remove. (NRTmakeCategoryAlist): Don't call NRTcatCompare. Tidy. 2012-02-12 Gabriel Dos Reis * interp/define.boot (depthAssocList): Take the cache as second argument. Avoid globals. Adjust Callers. (depthAssoc): Likewise. Adjust Caller. (NRTmakeCategoryAlist): Remove uses of $depthAssocCache. 2012-02-12 Gabriel Dos Reis * algebra/coerce.spad.pamphlet (Type): Redefine as empty Join. * interp/category.boot (Join): Handle empty argument list. 2012-02-11 Gabriel Dos Reis * interp/define.boot (getParentsFor): Lose second parameter. Tidy. Adjust callers. * interp/br-data.boot (getParentsForDomain): Remove. (parentsOf): Call getParentsFor in lieu of getParentsForDomain. (folks): Move to define.boot. 2012-02-11 Gabriel Dos Reis * interp/br-data.boot (ancestorsRecur): Tidy. * interp/define.boot (compDefineCategory2): Likewise. 2012-02-11 Gabriel Dos Reis * interp/br-data.boot (getParentsFor): Move to define.boot. (explodeIfs): Likewise. (getParentsForDomain): Tidy. (ancestorsRecur): Likewise. 2012-02-09 Gabriel Dos Reis * interp/define.boot (mkEvalableCategoryForm): Compile only CATEGORY and SubsetCategory forms. 2012-02-09 Gabriel Dos Reis * interp/database.boot (categoryConstructor?): New. * interp/define.boot (mkEvalableCategoryForm): Use it. Tidy. 2012-02-08 Gabriel Dos Reis * interp/g-opt.boot (optCall): Simplify SPADCALL of atomic function expressions. ($VMsideEffectFreeOperators): Don't include %funcall. ($simpleVMoperators): Include it. 2012-02-07 Gabriel Dos Reis * algebra/Makefile.in (oa_algebra_layer_0): Include FINITE-. 2012-02-06 Gabriel Dos Reis * interp/lisplib.boot (dbLocateModule): New. (findModule): Use it. Simplify. (loadLib): Tidy. (genericLoadDB): New. (loadDB): Use it. (loadDBIfCan): New. * interp/c-util.boot (lookupDefiningFunction): Give up gracefully if the domain of computation is not compiled yet. * algebra/Makefile.in ($(OUT)/SPADAST.$(FASLEXT)): Require $(OUT)/SUCHTAST.$(FASLEXT). 2012-02-04 Gabriel Dos Reis * interp/nruncomp.boot (getLocalIndex): Fast track niladic constructors. * algebra/syntax.spad.pamphlet: Miscellaneous cleanup. 2012-02-03 Gabriel Dos Reis * utils/vm.H: Add more VM data structures. * utils/vm.cc (BasicContext::make_operator): Define. * algebra/Makefile.in (SPADFILES): Include syntax.spad and spad-parser.spad. 2012-01-14 Gabriel Dos Reis * algebra/catdef.spad.pamphlet (Finite) [random]: Provide default implementation. * algebra/boolean.spad.pamphlet (KleeneTrivalentLogic): Now satisfy Finite. Use Maybe Boolean as representation. 2012-01-14 Gabriel Dos Reis * interp/i-util.boot ($intTopLevel): Move to sys-constants.boot. * interp/g-error.boot (returnToTopLevel): Tidy. * interp/macros.lisp (applyWithOutputToString): Likewise. 2012-01-14 Gabriel Dos Reis * interp/spaderror.lisp: Move convent to spad.lisp. Remove. 2012-01-14 Gabriel Dos Reis * interp/patches.lisp: Move content to msgdb.boot. Remove. 2012-01-14 Gabriel Dos Reis * interp/word.boot: Add import and scope statements. Include in final executables. (infix?): Remove as duplicate in match.boot. (prefix?): Likewise. (suffix?): Likewise. * interp/g-error.boot (returnToTopLevel): Tidy. * interp/debug.lisp (/D-2): Use spadThrow in lieu of UNWIND. * interp/patches.lisp (CATCHALL): Remove. (DBRINIT): Likewise. (TOPLEVEL): Likewise. (TOP-LEVEL): Likewise. (UNWIND): Likewise. (RESUME): Likewise. (booFind): Likewise. 2012-01-14 Gabriel Dos Reis * lisp/core.lisp.in (mkIntArray): New. Export. * interp/patches.lisp (/RF): Move to cparse.boot. (/RQ): Likewise. (/RQ,LIB): Likewise. (/RF-1): Likewise. (/EF): Move to spad.lisp. (construct): Remove. (READSPADEXPR): Likewise. (SHAREDITEMS): Likewise. (installStandardTestPackages): Likewise. (spadtestValueHook): Likewise. (testError): Likewise. ($TestOptions): Likewise. (rebuild): Likewise. ($ViewportProcessToWatch): Likewise. (setViewportProcess): Likewise. (waitForViewport): Likewise. * interp/i-analy.boot (pushDownOp?): Use mkIntArray in place of GETZEROVEC. * interp/i-funsel.boot (argCouldBelongToSubdomain): Likewise. * interp/i-intern.boot (flagArguments): Likewise. 2012-01-12 Gabriel Dos Reis * interp/category.boot: Rename AncestorP to ancestor?. Rename DescendantP to descendant?. * interp/define.boot: Likewise. * interp/functor.boot: Likewise. 2012-01-12 Gabriel Dos Reis * boot/parser.boot (bpFunction): New. (bpConstTok): Include it. * boot/ast.boot (bfFunction): New. * boot/tokens.boot: `function' is now a keyword. 2012-01-11 Gabriel Dos Reis * boot/tokens.boot (keywordId): New. * boot/parser.boot (bpSexpKey): Use it. * interp/i-map.boot (mapPredTran): Fix thinko. 2012-01-09 Gabriel Dos Reis * boot/parser.boot (bpRequire): New. Use it throughout this module. 2012-01-08 Gabriel Dos Reis * boot/ast.boot (bfEnum): New. * boot/translator.boot (translateToplevel): Use it to translate enumeration definitions. * interp/types.boot (%ConstructorKind): Use new syntax. 2012-01-01 Gabriel Dos Reis * interp/define.boot (evalCategoryForm): New. (mkCategoryPackage): Use it. (compMakeCategoryObject): Likewise. * interp/nruncomp.boot (NRTsetVector4a): Likewise.