2023-09-29 Gaius Mulley * gm2-compiler/M2Quads.mod (EndBuildFor): Improve block comments. * gm2-libs-iso/SysClock.mod (ExtractDate): Replace testDays with yearOfDays. New local variable monthOfDays. 2023-09-26 Gaius Mulley PR modula2/111510 * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes. (BuildTrashTreeFromInterface): Minor spacing changes. * gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call string to generate a nul terminated C style string. * gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure. (BuildM2InitFunction): Replace inline parameter generation with calls to BuildStringAdrParam. 2023-09-19 Gaius Mulley * Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le and if so use __float128 for longreal in mc. (MC_ARGS): Append host_mc_longreal. * config-make.in (TEST_TARGET_CPU_DEFAULT): New variable. (TEST_HOST_CPU_DEFAULT): New variable. * configure: Regenerate. * configure.ac (M2C_LONGREAL_FLOAT128): New define set if target is powerpc64le. (M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le. * gm2-compiler/M2GCCDeclare.mod: Correct comment case. * gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call SetLastFunction for the builtin function call. (MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin function call. (MaybeDebugBuiltinMemset): New procedure function. (MakeCopyUse): Use GNU formatting. (UseBuiltin): Rewrite to check BuiltinExists. (CodeDirectCall): Rewrite to check BuiltinExists and call SetLastFunction. (CodeMakeAdr): Re-format. * gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure. * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow "cond" to switch UninitVariableConditionalChecking separately. (SetDebugBuiltins): New procedure. * gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter ConstExpr. * gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter to BuildRealFuncProcCall. (BuildRealFuncProcCall): Add ConstExpr parameter. Pass ConstExpr to BuildFunctionCall. (BuildFunctionCall): Add parameter ConstExpr. Pass ConstExpr to BuildRealFunctionCall. (BuildConstFunctionCall): Add parameter ConstExpr. Pass ConstExpr to BuildFunctionCall. (BuildRealFunctionCall): Add parameter ConstExpr. Pass ConstExpr to BuildRealFuncProcCall. * gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE to BuildFunctionCall. (AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall. * gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New procedure function. * gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure function. (IsProcedureBuiltinAvailable): New procedure function. * gm2-gcc/m2builtins.cc (DEBUGGING): Undef. (bf_category): New enum type. (struct builtin_function_entry): New field function_avail. (m2builtins_BuiltInMemCopy): Rename from ... (m2builtins_BuiltinMemCopy): ... this. (DoBuiltinMemSet): New function. (m2builtins_BuiltinMemSet): New function. (do_target_support_exists): New function. (target_support_exists): New function. (m2builtins_BuiltinExists): Return true or false. (m2builtins_BuildBuiltinTree): Rename local variables. Replace long_double_type_node with GetM2LongRealType. (m2builtins_init): Use GetM2LongRealType rather than long_double_type_node. * gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ... (BuiltinMemCopy): ... this. (BuiltinMemSet): New procedure function. * gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ... (m2builtins_BuiltinMemCopy): ... this. (m2builtins_BuiltinMemSet): New procedure function. * gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New procedure function. (m2configure_M2CLongRealIBM128): New procedure function. (m2configure_M2CLongRealLongDouble): New procedure function. (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function. * gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function. (M2CLongRealIBM128): New procedure function. (M2CLongRealLongDouble): New procedure function. (M2CLongRealLongDoublePPC64LE): New procedure function. * gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function. (m2configure_M2CLongRealFloat128): New procedure function. (m2configure_M2CLongRealIBM128): New procedure function. (m2configure_M2CLongRealLongDouble): New procedure function. (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function. * gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc. * gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function. * gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set TREE_USED to true. (m2statement_BuildGoto):Set TREE_USED to true. (m2statement_BuildParam): Set TREE_USED to true. (m2statement_BuildBuiltinCallTree): New function. (m2statement_BuildFunctValue): Set TREE_USED to true. * gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function. * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New procedure function. * gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing. (m2treelib_DoCall1): Remove spacing. (m2treelib_DoCall2): Remove spacing. (m2treelib_DoCall3): Remove spacing. (add_stmt): Rename parameter. * gm2-gcc/m2type.cc (build_set_type): Remove spacing. (build_m2_specific_size_type): Remove spacing. (finish_build_pointer_type): Remove spacing. (m2type_BuildVariableArrayAndDeclare): Remove spacing. (build_m2_short_real_node): Remove spacing. (build_m2_real_node): Remove spacing. (build_m2_long_real_node): Use float128_type_node if M2CLongRealFloat128 is set. (build_m2_ztype_node): Remove spacing. (build_m2_long_int_node): Remove spacing. (build_m2_long_card_node): Remove spacing. (build_m2_short_int_node): Remove spacing. (build_m2_short_card_node): Remove spacing. (build_m2_iso_loc_node): Remove spacing. (m2type_SameRealType): New function. (m2type_InitBaseTypes): Create m2_c_type_node using m2_long_complex_type_node. (m2type_SetAlignment): Tidy up comment. * gm2-gcc/m2type.def (SameRealType): New procedure function. * gm2-gcc/m2type.h (m2type_SameRealType): New procedure function. * gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex node from m2 language specific long double node. * gm2-libs-log/RealConversions.mod (IsNan): New procedure function. (doPowerOfTen): Re-implement. * gm2-libs/Builtins.mod: Add newline. * gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function. * gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function. * gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value. (M2C_LONGREAL_PPC64LE): New config value. * gm2spec.cc (lang_specific_driver): New local variable need_default_mabi set to default value depending upon M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128. * lang.opt (Wcase-enum): Moved to correct section. * m2pp.cc (m2pp_real_type): New function. (m2pp_type): Call m2pp_real_type. (m2pp_print_mode): New function. (m2pp_simple_type): Call m2pp_simple_type. (m2pp_float): New function. (m2pp_expression): Call m2pp_float. * mc-boot/GDynamicStrings.cc: Rebuild. * mc-boot/GDynamicStrings.h: Rebuild. * mc-boot/GFIO.cc: Rebuild. * mc-boot/GFIO.h: Rebuild. * mc-boot/GIO.cc: Rebuild. * mc-boot/GRTint.cc: Rebuild. * mc-boot/Gdecl.cc: Rebuild. * mc-boot/GmcOptions.cc: Rebuild. * mc-boot/GmcOptions.h: Rebuild. * mc/decl.mod: Rebuild. * mc/mcOptions.def (getCRealType): New procedure function. (getCLongRealType): New procedure function. (getCShortRealType): New procedure function. * mc/mcOptions.mod (getCRealType): New procedure function. (getCLongRealType): New procedure function. (getCShortRealType): New procedure function. 2023-09-14 Gaius Mulley * gm2-compiler/M2CaseList.mod (NewRanges): Add block comment. (NewSet): Add block comment. (DisplayRanges): Add block comment. (IncludeElement): Add block comment. (IncludeElements): Add block comment. (appendString): Add block comment. (appendEnum): Add block comment. (appendTree): Add block comment. (SubrangeErrors): Add block comment. 2023-09-14 Gaius Mulley * gm2-compiler/M2CaseList.mod (appendString): New procedure. (appendEnum): Re-implement. (NoOfSetElements): New procedure function. (isPrintableChar): New procedure function. (appendTree): New procedure. (SubrangeErrors): New procedure. (EmitMissingRangeErrors): Call SubrangeErrors if appropriate. * gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid using a temporary variable once. (IsLocalVar): Comment out. (RecordContainsVarient): Remove fieldtype. (GenerateNoteFlow): Remove lst parameter. (CheckDeferredRecordAccess): Remove lst parameter. (CheckUnary): Remove lst parameter. Remove procSym. (CheckBinary): Remove lst parameter. Remove procSym. (CheckIndrX): Remove lst parameter. Remove procSym. (CheckXIndr): Remove bblst and procSym parameters. (CheckRecordField): Remove procSym, op1tok, op2tok and op2. (CheckBecomes): Remove procSym and bblst. (CheckComparison): Remove procSym and bblst. (CheckAddr): Remove procSym parameter. * gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function. (m2expr_CSTIntToChar): New function. * gm2-gcc/m2expr.def (CSTIntToString): New procedure function declaration. (CSTIntToChar): New procedure function declaration. * gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype. (m2expr_CSTIntToString): New prototype. 2023-09-13 Gaius Mulley * Make-lang.in (GM2_FLAGS): Add -Wcase-enum. (GM2_ISO_FLAGS): Add -Wcase-enum. * gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue singular or plural start text prior to the enum list. Remove unused parameter tokenno. (EmitMissingRangeErrors): New procedure. (MissingCaseBounds): Call EmitMissingRangeErrors. (MissingCaseStatementBounds): Call EmitMissingRangeErrors. * gm2-libs-iso/TextIO.mod: Fix spacing. 2023-09-12 Gaius Mulley * gm2-compiler/M2CaseList.def (PushCase): Rename parameters r to rec and v to va. Add expr parameter. (MissingCaseStatementBounds): New procedure function. * gm2-compiler/M2CaseList.mod (RangePair): Add expression. (PushCase): Rename parameters r to rec and v to va. Add expr parameter. (RemoveRange): New procedure function. (SubBitRange): Detect the case when the range in the set matches lo..hi. (CheckLowHigh): New procedure. (ExcludeCaseRanges): Rename parameter c to cd. Rename local variables q to cl and r to rp. (High): Remove. (Low): Remove. (DoEnumValues): Remove. (IncludeElement): New procedure. (IncludeElements): New procedure. (ErrorRangeEnum): New procedure. (ErrorRange): Remove. (ErrorRanges): Remove. (appendEnum): New procedure. (appendStr): New procedure. (EnumerateErrors): New procedure. (MissingCaseBounds): Re-implement. (InRangeList): Remove. (MissingCaseStatementBounds): New procedure function. (checkTypes): Re-format. (inRange): Re-format. (TypeCaseBounds): Re-format. * gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to case label list. * gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo with ForeachLocalSymDo. * gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure. (CaseEnumChecking): New variable. * gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure. (Module initialization): set CaseEnumChecking to FALSE. * gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered. * gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else clause. (BuildCaseStart): Pass selector expression to InitCaseBounds. (CheckUninitializedVariablesAreUsed): Remove. (IsInlineWithinBlock): Remove. (AsmStatementsInBlock): Remove. (CheckVariablesInBlock): Remove commented code. (BeginVarient): Pass NulSym to InitCaseBounds. * gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable errorGenerated. Add call to MissingCaseStatementBounds. * gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase. * gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause. (InitFunction): Add else clause. (InitConvert): Add else clause. (InitLeaf): Add else clause. (InitBinary): Add else clause. (InitUnary): Add else clause. * gm2-compiler/SymbolTable.def (GetNth): Re-write comment. (ForeachFieldEnumerationDo): Re-write comment stating alphabetical traversal. * gm2-compiler/SymbolTable.mod (GetNth): Re-write comment. Add case label for EnumerationSym and call GetItemFromList. (ForeachFieldEnumerationDo): Re-write comment stating alphabetical traversal. (SymEnumeration): Add ListOfFields used for declaration order. (MakeEnumeration): Initialize ListOfFields. (PutFieldEnumeration): Include Field in ListOfFields. * gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New function. * gm2-lang.cc (gm2_langhook_handle_option): Add OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking. * lang.opt (Wcase-enum): Add. 2023-09-11 Gaius Mulley PR modula2/111330 * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add case labels LogicalDiffOp, DummyOp, OptParamOp and InitAddressOp. 2023-08-20 Gaius Mulley PR modula2/111085 * gm2-libs/Builtins.def (nexttoward): Alter the second parameter to LONGREAL. (nexttowardf): Alter the second parameter to LONGREAL. * gm2-libs/Builtins.mod (nexttoward): Alter the second parameter to LONGREAL. (nexttowardf): Alter the second parameter to LONGREAL. * gm2-libs/cbuiltin.def (nexttoward): Alter the second parameter to LONGREAL. (nexttowardf): Alter the second parameter to LONGREAL. 2023-08-13 Iain Sandoe * Make-lang.in: Update suffix spellings to use 'soext'. Add libc to the plugin link. 2023-08-12 Gaius Mulley PR modula2/110779 * gm2-libs-iso/SysClock.mod (EpochTime): New procedure. (GetClock): Call EpochTime if the C time functions are unavailable. * gm2-libs-iso/wrapclock.def (istimezone): New function definition. 2023-08-12 Gaius Mulley PR modula2/108119 * Make-lang.in (M2RTE_PLUGIN_SO): Assigned to plugin/m2rte$(exeext).so if enable_plugin is yes. (m2.all.cross): Replace plugin/m2rte$(soext) with $(M2RTE_PLUGIN_SO). (m2.all.encap): Replace plugin/m2rte$(soext) with $(M2RTE_PLUGIN_SO). (m2.install-plugin): Add dummy rule when enable_plugin is not yes. (plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin is not yes. (m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with $(M2RTE_PLUGIN_SO). (m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with $(M2RTE_PLUGIN_SO). * gm2spec.cc (lang_specific_driver): Set need_plugin to false by default. 2023-08-09 Gaius Mulley PR modula2/110779 * gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec return value. (SetClock): Test SetTimespec return value. * gm2-libs-iso/wrapclock.def (GetTimespec): Add integer return type. (SetTimespec): Add integer return type. 2023-08-05 Gaius Mulley PR modula2/110779 * gm2-libs-iso/SysClock.mod: Re-implement using wrapclock. * gm2-libs-iso/wrapclock.def: New file. 2023-08-01 Gaius Mulley PR modula2/110161 * gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New procedure function. (checkTypeKindEquivalence): Call checkProcTypeEquivalence if either left or right is a proc type. * gm2-compiler/M2Quads.mod (BuildRelOp): Create combinedTok prior to creating the range check quadruple. Use combinedTok when creating the range check quadruple. 2023-08-01 Gaius Mulley PR modula2/110865 * gm2-compiler/M2Quads.mod (BuildDesignatorArray): Rename t as type and d as dim. New variable result. Allow constants of an array type to be indexed. 2023-07-25 Gaius Mulley PR modula2/110174 * gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure function. * gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure function. * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call skip_const_decl before chaining the parameter value. Use PromoteToCString to ensure the string is nul terminated. (CodeInline): Remove all parameters and replace with quad. Use GetQuadOtok to get operand token numbers. Remove call to DeclareConstant and replace it with PromoteToCString. * gm2-compiler/M2Quads.def (BuildInline): Rename into ... (BuildAsm): ... this. * gm2-compiler/M2Quads.mod: (BuildInline): Rename into ... (BuildAsm): ... this. (BuildAsmElement): Add debugging. * gm2-compiler/P1Build.bnf: Remove import of BuildInline. * gm2-compiler/P2Build.bnf: Remove import of BuildInline. * gm2-compiler/P3Build.bnf: Remove import of BuildInline and import BuildAsm. * gm2-compiler/PHBuild.bnf: Remove import of BuildInline. * gm2-libs-iso/SysClock.mod (foo): Remove. * gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest. Rename variable t to src. * m2pp.cc (pf): Correct block comment. (pe): Correct block comment. (m2pp_asm_expr): New function. (m2pp_statement): Call m2pp_asm_expr. 2023-07-22 Gaius Mulley PR modula2/110631 * gm2-libs/FIO.def (ReadAny): Correct comment as HIGH (a) + 1 is number of bytes. (WriteAny): Correct comment as HIGH (a) + 1 is number of bytes. * gm2-libs/FIO.mod (ReadAny): Correct comment as HIGH (a) + 1 is number of bytes. Also pass HIGH (a) + 1 to BufferedRead. (WriteAny): Correct comment as HIGH (a) + 1 is number of bytes. Also pass HIGH (a) + 1 to BufferedWrite. (BufferedWrite): Rename parameter a to src, rename variable t to dest. Correct parameter order to memcpy. 2023-07-20 Gaius Mulley * gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption. (CheckIndrX): Call SetupLAlias between lhs and content. (trashParam): Re-write. (SetVarLRInitialized): Indicate shadow and heap are initialized. Call SetupIndr between shadow and heap. * gm2-compiler/P2SymBuild.mod: Import PutProcedureParameterHeapVars. (EndBuildProcedure): Call PutProcedureParameterHeapVars. * gm2-compiler/SymbolTable.def (GetParameterHeapVar): New procedure function. (PutProcedureParameterHeapVars): New procedure function. * gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New procedure function. (GetParameterHeapVar): New procedure function. (PuttParameterHeapVar): New procedure function. (PutProcedureParameterHeapVars): New procedure. (VarParam): HeapVar new record field. (PutVarParam): HeapVar assigned to NulSym. 2023-07-19 Gaius Mulley PR modula2/110284 * Make-lang.in (m2_OBJS): Add m2/gm2-gcc/rtegraph.o and m2/gm2-compiler-boot/m2flex.o. (c-family/m2pp.o): Remove. * Make-maintainer.in (c-family/m2pp.o): Add. 2023-07-19 Gaius Mulley * gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed unnecessary in error message. Use vartok for location. (BuildOddFunction): Use optok for location. (BuildAbsFunction): Use vartok for location. Bugfix set vartok. (BuildCapFunction): Use optok for location. (BuildOrdFunction): Use optok for location and correct format specifier. (BuildShiftFunction): Use vartok for location. (BuildRotateFunction): Use vartok for location. (BuildTruncFunction): Use vartok for location. (BuildFloatFunction): Use vartok for location. (BuildReFunction): Use vartok for location. (BuildImFunction): Use vartok for location. * gm2-compiler/M2SymInit.mod (trashParam): Remove commented code. 2023-07-19 Gaius Mulley * gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash parameter value to NIL if DEALLOCATE is detected. * gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass tok to SetVarInitialized. Pass tok to GetVarComponentInitialized. (ComponentFindVar): Add tok parameter. Check aliased pointer against Nil and generate warning if necessary. (deRefComponent): Add tok and sym parameters and pass them to getContent. (SetVarComponentInitialized): Add tok parameter. Pass tok to ComponentFindVar. Pass tok and sym to deRefComponent. (GetVarComponentInitialized): Add tok parameter. Pass tok to ComponentFindVar. Pass tok to deRefComponent. (SetVarInitialized): Add tok parameter. Pass tok to SetVarComponentInitialized. (doGetVarInitialized): Add tok parameter. Pass tok to GetVarComponentInitialized. (CheckXIndr): Pass lhs and lhstok to getContent. (CheckIndrX): Pass rhs and rhstok to getContent. (CheckBecomes): Pass destok to ComponentFindVar. Pass des and destok to deRefComponent. (CheckAddr): Pass contenttok to GetVarInitialized. Pass ptrtok to SetVarInitialized. (CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for op1 cases and op3tok for op3 cases. (trashParam): Get operand tokens. Pass op3tok to SetVarInitialized. Pass op3 and op3tok to getContent. Alias ptr to NIL if procedure is DEALLOCATE. Pass op3tok to SetVarInitialized. (IsDeallocate): New procedure function. (DetectTrash): Use IsDeallocate. (SetupLAlias): Allow exp to be Nil. (getContent): Generate warning message if ptr is Nil. 2023-07-18 Gaius Mulley * Make-lang.in: Minor formatting change. * gm2-compiler/M2GCCDeclare.mod (DeclareUnboundedProcedureParameters): Rename local variables. (WalkUnboundedProcedureParameters): Rename local variables. (DoVariableDeclaration): Avoid declaration of a variable if it is on the heap (used by static analysis only). * gm2-compiler/M2GenGCC.mod: Formatting. * gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function. * gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function. (QuadFrame): Add Trash field. (BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create a heap variable for parameter 1 saving it as the trashed variable for static analysis. (GenQuadOTrash): New procedure. (DisplayQuadRange): Bugfix. Write the scope number. * gm2-compiler/M2SymInit.mod: Rewritten to separate LValue equivalence from LValue to RValue pairings. Comprehensive detection of variant record implemented. Allow dereferencing of pointers through LValue/RValue chains. * gm2-compiler/SymbolTable.def (PutVarHeap): New procedure. (IsVarHeap): New procedure function. (ForeachParamSymDo): New procedure. * gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure. (IsVarHeap): New procedure function. (ForeachParamSymDo): New procedure. (MakeVariableForParam): Reformatted. (CheckForUnknownInModule): Reformatted. (SymVar): Add field Heap. (MakeVar): Assign Heap to FALSE. 2023-07-13 Rainer Orth * Make-lang.in (m2/boot-bin/mklink$(exeext)): Add $(LDFLAGS). 2023-07-11 Gaius Mulley * gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New parameter ScopeSym. * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New parameter ScopeSym. (InitBasicBlocksFromRange): New parameter ScopeSym. Call ConvertQuads2BasicBlock with ScopeSym. (DisplayBasicBlocks): Uncomment. * gm2-compiler/M2Code.mod: Replace VariableAnalysis with ScopeBlockVariableAnalysis. (InitialDeclareAndOptiomize): Add parameter scope. (SecondDeclareAndOptimize): Add parameter scope. * gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope parameter to DeclareTypesConstantsProceduresInRange. (DeclareTypesConstantsProceduresInRange): New parameter scope. Pass scope to DisplayQuadRange. Reformatted. * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter scope. * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter scope. * gm2-compiler/M2Optimize.mod (KnownReachable): New parameter scope. * gm2-compiler/M2Options.def (SetUninitVariableChecking): Add arg parameter. * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add arg parameter and set boolean UninitVariableChecking and UninitVariableConditionalChecking. (UninitVariableConditionalChecking): New boolean set to FALSE. * gm2-compiler/M2Quads.def (IsGoto): New procedure function. (DisplayQuadRange): Add scope parameter. (LoopAnalysis): Add scope parameter. * gm2-compiler/M2Quads.mod: Import PutVarArrayRef. (IsGoto): New procedure function. (LoopAnalysis): Add scope parameter and use MetaErrorT1 instead of WarnStringAt. (BuildStaticArray): Call PutVarArrayRef. (BuildDynamicArray): Call PutVarArrayRef. (DisplayQuadRange): Add scope parameter. (GetM2OperatorDesc): Add relational condition cases. * gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter. * gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to DisplayQuadRange. (ForeachScopeBlockDo): Pass scopeSym to p. * gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ... (ScopeBlockVariableAnalysis): ... this. * gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add scope parameter. (bbEntry): New pointer to record. (bbArray): New array. (bbFreeList): New variable. (errorList): New list. (IssueConditional): New procedure. (GenerateNoteFlow): New procedure. (IssueWarning): New procedure. (IsUniqueWarning): New procedure. (CheckDeferredRecordAccess): Re-implement. (CheckBinary): Add warning and lst parameters. (CheckUnary): Add warning and lst parameters. (CheckXIndr): Add warning and lst parameters. (CheckIndrX): Add warning and lst parameters. (CheckBecomes): Add warning and lst parameters. (CheckComparison): Add warning and lst parameters. (CheckReadBeforeInitQuad): Add warning and lst parameters to all Check procedures. Add all case quadruple clauses. (FilterCheckReadBeforeInitQuad): Add warning and lst parameters. (CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters. (bbArrayKill): New procedure. (DumpBBEntry): New procedure. (DumpBBArray): New procedure. (DumpBBSequence): New procedure. (TestBBSequence): New procedure. (CreateBBPermultations): New procedure. (ScopeBlockVariableAnalysis): New procedure. (GetOp3): New procedure. (GenerateCFG): New procedure. (NewEntry): New procedure. (AppendEntry): New procedure. (init): Initialize bbFreeList and errorList. * gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure. (IsVarArrayRef): New procedure function. * gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field. (MakeVar): Set ArrayRef to FALSE. (PutVarArrayRef): New procedure. (IsVarArrayRef): New procedure function. * gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype. (init_PerCompilationInit): Add call to _M2_M2SymInit_init. * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking): New definition. * gm2-lang.cc (gm2_langhook_handle_option): Add new case OPT_Wuninit_variable_checking_. * lang.opt: Wuninit-variable-checking= new entry. 2023-07-03 Gaius Mulley PR modula2/110125 * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def. (GM2-COMP-BOOT-MODS): Add M2SymInit.mod. * gm2-compiler/M2BasicBlock.mod: Formatting changes. * gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from M2Quads. Import VariableAnalysis from M2SymInit.mod. * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList): Add debugging print for a component. (TypeConstFullyDeclared): Call RememberType for every type. * gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to GetQuadOtok. (CodeBecomes): Add parameter to GetQuadOtok. (CodeXIndr): Add parameter to GetQuadOtok. * gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and preserve operand token positions when reducing the branch quadruples. (ReduceGoto): Reformat. (FoldMultipleGoto): Reformat. (KnownReachable): Reformat. * gm2-compiler/M2Options.def (UninitVariableChecking): New variable declared and exported. (SetUninitVariableChecking): New procedure. * gm2-compiler/M2Options.mod (SetWall): Set UninitVariableChecking. (SetUninitVariableChecking): New procedure. * gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared. (VariableAnalysis): Removed. * gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure. (doVal): Reformatted. (MarkAsWrite): Reformatted. (MarkArrayAsWritten): Reformatted. (doIndrX): Use PutQuadOtok. (MakeRightValue): Use GenQuadOtok. (MakeLeftValue): Use GenQuadOtok. (CheckReadBeforeInitialized): Remove. (IsNeverAltered): Reformat. (DebugLocation): New procedure. (BuildDesignatorPointer): Use GenQuadO to preserve operand token position. (BuildRelOp): Use GenQuadOtok ditto. * gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure. (VarInitState): New procedure. (PutVarInitialized): New procedure. (PutVarFieldInitialized): New procedure function. (GetVarFieldInitialized): New procedure function. (PrintInitialized): New procedure. * gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure. (VarInitState): New procedure. (PutVarInitialized): New procedure. (PutVarFieldInitialized): New procedure function. (GetVarFieldInitialized): New procedure function. (PrintInitialized): New procedure. (LRInitDesc): New type. (SymVar): InitState new field. (MakeVar): Initialize InitState. * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking): New function declaration. * gm2-lang.cc (gm2_langhook_handle_option): Detect OPT_Wuninit_variable_checking and call SetUninitVariableChecking. * lang.opt: Add Wuninit-variable-checking. * gm2-compiler/M2SymInit.def: New file. * gm2-compiler/M2SymInit.mod: New file. 2023-06-30 Iain Sandoe PR testsuite/108835 * gm2-libs/RTint.mod: Do not use NIL timeout setting on select, test failures sequentially, finishing on the first success. 2023-06-18 Gaius Mulley PR modula2/110284 * Make-lang.in (m2_OBJS): Assign $(GM2_C_OBJS). (GM2_C_OBJS): Remove m2/stor-layout.o. (m2/stor-layout.o): Remove rule. * gm2-gcc/gcc-consolidation.h (rtl.h): Remove include. (df.h): Remove include. (except.h): Remove include. 2023-06-15 Marek Polacek * Make-lang.in: New var, GM2_PICFLAGS. Use it. 2023-06-13 Gaius Mulley * Make-lang.in (check-format-error): New rule. * gm2-compiler/M2MetaError.mod (op): Add calls InternalError if digits are detected. * gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format specifier. (BuildLengthFunction): Bugfix to format specifiers. (BuildOddFunction): Bugfix to format specifiers. (BuildAbsFunction): Bugfix to format specifiers. (BuildCapFunction): Bugfix to format specifiers. (BuildChrFunction): Bugfix to format specifiers. (BuildOrdFunction): Bugfix to format specifiers. (BuildMakeAdrFunction): Bugfix to format specifiers. (BuildSizeFunction): Bugfix to format specifiers. (BuildBitSizeFunction): Bugfix to format specifiers. * tools-src/checkmeta.py: New file. 2023-06-12 Gaius Mulley PR modula2/110189 * gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort format specifier. (BuildValFunction): Replace abort format specifier. (BuildCastFunction): Replace abort format specifier. (BuildMinFunction): Replace abort format specifier. (BuildMaxFunction): Replace abort format specifier. (BuildTruncFunction): Replace abort format specifier. * gm2-compiler/P3Build.bnf (Pass1): Remove. (Pass2): Remove. (Pass3): Remove. (Expect): Add Pass1. (AsmStatement): Remove Pass3. (AsmOperands): Remove Pass3. (AsmOperandSpec): Remove Pass3. (AsmInputElement): Remove Pass3. (AsmOutputElement): Remove Pass3. (AsmTrashList): Remove Pass3. 2023-06-12 Gaius Mulley PR modula2/110126 * gm2-compiler/M2Quads.def (BuildAsmElement): Remove trash parameter. (BuildAsmTrash): New procedure. * gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure. (BuildAsmElement): Remove trash parameter. * gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite. 2023-06-08 Gaius Mulley PR modula2/110126 * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove tokenno parameter. Use object tok instead of tokenno. (BuildTrashTreeFromInterface): Use object tok instead of GetDeclaredMod. (CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface. * gm2-compiler/M2Quads.def (BuildAsmElement): Exported and defined. * gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted. (BuildInline): Reformatted. (BuildLineNo): Reformatted. (UseLineNote): Reformatted. (BuildAsmElement): New procedure. * gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use ConstExpression instead of string. (AsmElement): Use ConstExpression instead of string. (TrashList): Use ConstExpression instead of string. * gm2-compiler/P1Build.bnf (AsmOperands): Use ConstExpression instead of string. (AsmElement): Use ConstExpression instead of string. (TrashList): Use ConstExpression instead of string. * gm2-compiler/P2Build.bnf (AsmOperands): Use ConstExpression instead of string. (AsmElement): Use ConstExpression instead of string. (TrashList): Use ConstExpression instead of string. * gm2-compiler/P3Build.bnf (AsmOperands): Rewrite. (AsmOperandSpec): Rewrite. (AsmOutputList): New rule. (AsmInputList): New rule. (TrashList): Rewrite. * gm2-compiler/PCBuild.bnf (AsmOperands): Use ConstExpression instead of string. (AsmElement): Use ConstExpression instead of string. (TrashList): Use ConstExpression instead of string. * gm2-compiler/PHBuild.bnf (AsmOperands): Use ConstExpression instead of string. (AsmElement): Use ConstExpression instead of string. (TrashList): Use ConstExpression instead of string. * gm2-compiler/SymbolTable.def (PutRegInterface): Rewrite interface. (GetRegInterface): Rewrite interface. * gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure. (PutFirstUsed): New procedure. (PutRegInterface): Rewrite. (GetRegInterface): Rewrite. 2023-06-07 Jakub Jelinek * Make-lang.in: Build $(generated_files) before building all $(GM2_C_OBJS). 2023-06-07 Gaius Mulley PR modula2/110019 * gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted. (ForeachNodeDo): Reformatted. * gm2-compiler/SymbolTable.mod (AddListify): Join list with "," or "and" if more than one word is in the list. * m2.flex: Remove -1 from atoi(yytext) line number. 2023-06-03 Gaius Mulley PR modula2/110003 * gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import. (CheckFormalParameterSection): Call PutDeclared for the shadow variable associated with the parameter. 2023-05-24 Gaius Mulley PR modula2/109952 * Make-maintainer.in: Change header to include emacs file mode. * gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether operand is a constant string and is nul terminated then return one. * gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return TRUE. Static analysis missing return path fix. * gm2-libs/IO.mod (Init): Rewrite to help static analysis. * target-independent/m2/gm2-libs.texi: Rebuild. 2023-05-19 Gaius Mulley PR modula2/109908 * gm2-libs-iso/Strings.mod (Delete): Re-implement. 2023-05-18 Bernhard Reutner-Fischer * gm2-gcc/m2builtins.cc (doradix): Use _P defines from tree.h. (doplaces): Ditto. (doexponentmin): Ditto. (doexponentmax): Ditto. (dolarge): Ditto. (dosmall): Ditto. (dogUnderflow): Ditto. * gm2-gcc/m2convert.cc (unsafe_conversion_p): Ditto. * gm2-gcc/m2expr.cc (m2expr_build_unary_op_check): Ditto. (m2expr_build_binary_op_check): Ditto. * gm2-gcc/m2tree.cc (m2tree_is_var): Ditto. * gm2-gcc/m2treelib.cc (build_modify_expr): Ditto. * gm2-gcc/m2type.cc (gm2_finish_decl): Ditto. * m2pp.cc (hextree): Ditto. (m2pp_call_expr): Ditto. 2023-05-17 Gaius Mulley * gm2-libs-iso/LongWholeIO.mod (WriteInt): Only request a sign if the value is < 0. * gm2-libs-iso/ShortWholeIO.mod (WriteInt): Only request a sign if the value is < 0. * gm2-libs-iso/WholeIO.mod (WriteInt): Only request a sign if the value is < 0. * gm2-libs-iso/WholeStr.mod (WriteInt): Only request a sign if the value is < 0. 2023-05-16 Gaius Mulley PR modula2/109879 * gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces. * gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces. (ReadCard): Call SkipSpaces. * gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces. * gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces. (ReadCard): Call SkipSpaces. * gm2-libs-iso/TextIO.mod: Import SkipSpaces. * gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces. (ReadCard): Call SkipSpaces. * gm2-libs-iso/TextUtil.def: New file. * gm2-libs-iso/TextUtil.mod: New file. 2023-05-16 Gaius Mulley PR modula2/108344 * gm2-libs-coroutines/TimerHandler.mod (EnableLED): New constant. (Timer): Test EnableLED before switching on the scroll LED. 2023-05-12 Gaius Mulley PR modula2/109830 * gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend used to select FIO.OpenForRandom. (OpenRead): Pass extra parameter to newCid. (OpenWrite): Pass extra parameter to newCid. (OpenAppend): Pass extra parameter to newCid. 2023-05-11 Gaius Mulley PR modula2/109810 * gm2-compiler/M2ALU.mod (ConvertConstToType): Use PrepareCopyString in place of DoCopyString. * gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ... (PrepareCopyString): ... this. * gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue with a single parameter. Call CodeXIndr with a single parameter. (CodeReturnValue): Remove parameters and replace with a single quadno. Reimplement using PrepareCopyString. Issue error if the string exceeds designator space. (DoCopyString): Reimplement and rename to ... (PrepareCopyString): ... this. (CodeXIndr): Remove parameters and replace with a single quadno. Reimplement using PrepareCopyString. Issue error if the string exceeds designator space. (CodeBecomes): Remove parameters and replace with a single quadno. Reimplement using PrepareCopyString. Issue error if the string exceeds designator space. * gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to tokreturn. * gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to tokreturn. Rename tokno to tokcombined. 2023-05-09 Gaius Mulley PR modula2/109779 * gm2-libs-iso/RTgen.mod (doLook): Remove old. Remove re-assignment of result. * gm2-libs-iso/TextIO.mod (CanRead): Rename into ... (CharAvailable): ... this. (DumpState): New procedure. (SetResult): Rename as SetNul. (WasGoodChar): Rename into ... (EofOrEoln): ... this. (SkipLine): Skip over the newline. (ReadString): Flip THEN ELSE statements after testing for EofOrEoln. (ReadRestLine): Flip THEN ELSE statements after testing for EofOrEoln. 2023-05-04 Gaius Mulley PR modula2/109729 * gm2-compiler/M2GenGCC.mod (CodeStatement): Detect ArithAddOp and call CodeAddChecked. (ResolveConstantExpressions): Detect ArithAddOp and call FoldArithAdd. (FoldArithAdd): New procedure. (FoldAdd): Refactor to use FoldArithAdd. * gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp. * gm2-compiler/M2Quads.mod: Remove commented imports. (QuadFrame): Changed comments to use GNU coding standards. (ArithPlusTok): New global variable. (BuildForToByDo): Use ArithPlusTok instead of PlusTok. (MakeOp): Detect ArithPlusTok and return ArithAddOp. (WriteQuad): Add ArithAddOp clause. (WriteOperator): Add ArithAddOp clause. (Init): Initialize ArithPlusTok. 2023-05-04 Gaius Mulley PR modula2/109675 * Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def. (BUILD-PGE-O): Remove GM2LINK.o. * Make-maintainer.in (PPG-DEFS): New define. (PPG-LIB-DEFS): Remove M2LINK.def. (BUILD-BOOT-PPG-H): Add PPGDEF .h files. (m2/ppg$(exeext)): Remove M2LINK.o (PGE-DEPS): New define. (m2/pg$(exeext)): Remove M2LINK.o. (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot. (m2/pge$(exeext)): Remove M2LINK.o. (pge-maintainer): Re-implement. (pge-libs-push): Re-implement. (m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o. * gm2-libs/DynamicStrings.mod (writeAddress): Re-implement using snprintf. * gm2-libs/M2Dependent.mod: Remove commented out imports. * mc-boot/GDynamicStrings.cc: Rebuild. * mc-boot/GFIO.cc: Rebuild. * mc-boot/GFormatStrings.cc: Rebuild. * mc-boot/GM2Dependent.cc: Rebuild. * mc-boot/GM2Dependent.h: Rebuild. * mc-boot/GM2RTS.cc: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GRTExceptions.cc: Rebuild. * mc-boot/GRTint.cc: Rebuild. * mc-boot/GSFIO.cc: Rebuild. * mc-boot/GStringConvert.cc: Rebuild. * mc-boot/Gdecl.cc: Rebuild. * pge-boot/GASCII.cc: Rebuild. * pge-boot/GASCII.h: Rebuild. * pge-boot/GArgs.cc: Rebuild. * pge-boot/GArgs.h: Rebuild. * pge-boot/GAssertion.cc: Rebuild. * pge-boot/GAssertion.h: Rebuild. * pge-boot/GBreak.h: Rebuild. * pge-boot/GCmdArgs.h: Rebuild. * pge-boot/GDebug.cc: Rebuild. * pge-boot/GDebug.h: Rebuild. * pge-boot/GDynamicStrings.cc: Rebuild. * pge-boot/GDynamicStrings.h: Rebuild. * pge-boot/GEnvironment.h: Rebuild. * pge-boot/GFIO.cc: Rebuild. * pge-boot/GFIO.h: Rebuild. * pge-boot/GFormatStrings.h:: Rebuild. * pge-boot/GFpuIO.h:: Rebuild. * pge-boot/GIO.cc: Rebuild. * pge-boot/GIO.h: Rebuild. * pge-boot/GIndexing.cc: Rebuild. * pge-boot/GIndexing.h: Rebuild. * pge-boot/GLists.cc: Rebuild. * pge-boot/GLists.h: Rebuild. * pge-boot/GM2Dependent.cc: Rebuild. * pge-boot/GM2Dependent.h: Rebuild. * pge-boot/GM2EXCEPTION.cc: Rebuild. * pge-boot/GM2EXCEPTION.h: Rebuild. * pge-boot/GM2RTS.cc: Rebuild. * pge-boot/GM2RTS.h: Rebuild. * pge-boot/GNameKey.cc: Rebuild. * pge-boot/GNameKey.h: Rebuild. * pge-boot/GNumberIO.cc: Rebuild. * pge-boot/GNumberIO.h: Rebuild. * pge-boot/GOutput.cc: Rebuild. * pge-boot/GOutput.h: Rebuild. * pge-boot/GPushBackInput.cc: Rebuild. * pge-boot/GPushBackInput.h: Rebuild. * pge-boot/GRTExceptions.cc: Rebuild. * pge-boot/GRTExceptions.h: Rebuild. * pge-boot/GSArgs.h: Rebuild. * pge-boot/GSEnvironment.h: Rebuild. * pge-boot/GSFIO.cc: Rebuild. * pge-boot/GSFIO.h: Rebuild. * pge-boot/GSYSTEM.h: Rebuild. * pge-boot/GScan.h: Rebuild. * pge-boot/GStdIO.cc: Rebuild. * pge-boot/GStdIO.h: Rebuild. * pge-boot/GStorage.cc: Rebuild. * pge-boot/GStorage.h: Rebuild. * pge-boot/GStrCase.cc: Rebuild. * pge-boot/GStrCase.h: Rebuild. * pge-boot/GStrIO.cc: Rebuild. * pge-boot/GStrIO.h: Rebuild. * pge-boot/GStrLib.cc: Rebuild. * pge-boot/GStrLib.h: Rebuild. * pge-boot/GStringConvert.h: Rebuild. * pge-boot/GSymbolKey.cc: Rebuild. * pge-boot/GSymbolKey.h: Rebuild. * pge-boot/GSysExceptions.h: Rebuild. * pge-boot/GSysStorage.cc: Rebuild. * pge-boot/GSysStorage.h: Rebuild. * pge-boot/GTimeString.h: Rebuild. * pge-boot/GUnixArgs.h: Rebuild. * pge-boot/Gbnflex.cc: Rebuild. * pge-boot/Gbnflex.h: Rebuild. * pge-boot/Gdtoa.h: Rebuild. * pge-boot/Gerrno.h: Rebuild. * pge-boot/Gldtoa.h: Rebuild. * pge-boot/Glibc.h: Rebuild. * pge-boot/Glibm.h: Rebuild. * pge-boot/Gpge.cc: Rebuild. * pge-boot/Gtermios.h: Rebuild. * pge-boot/Gwrapc.h: Rebuild. * mc-boot/GM2LINK.h: Removed. * pge-boot/GM2LINK.cc: Removed. * pge-boot/GM2LINK.h: Removed. 2023-04-30 Gaius Mulley * gm2-compiler/SymbolTable.mod (ConstLitPoolEntry): New pointer to record. (ConstLitSym): New field RangeError. (ConstLitPoolTree): New SymbolTree representing name to index. (ConstLitArray): New dynamic array containing pointers to a ConstLitPoolEntry. (CreateConstLit): New procedure function. (LookupConstLitPoolEntry): New procedure function. (AddConstLitPoolEntry): New procedure function. (MakeConstLit): Re-implemented to check the constant lit pool before calling CreateConstLit. * m2.flex: Add ability to decode binary constant literals. 2023-04-26 Gaius Mulley PR modula2/108121 * gm2-compiler/M2ALU.mod (Less): Reformatted. * gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove from import. (ConstantStringExceedsZType): Import. (GetConstLitType): Re-implement using ConstantStringExceedsZType. * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove. (m2decl_ConstantStringExceedsZType): New function. (m2decl_BuildConstLiteralNumber): Re-implement. * gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove. (ConstantStringExceedsZType): New function. * gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove. (m2decl_ConstantStringExceedsZType): New function. * gm2-gcc/m2expr.cc (append_digit): Remove. (m2expr_interpret_integer): Remove. (append_m2_digit): Remove. (m2expr_StrToWideInt): New function. (m2expr_interpret_m2_integer): Remove. * gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function. * gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function. * gm2-gcc/m2type.cc (build_m2_word64_type_node): New function. (build_m2_ztype_node): New function. (m2type_InitBaseTypes): Call build_m2_ztype_node. * gm2-lang.cc (gm2_type_for_size): Re-write using early returns. 2023-04-21 Arsen Arsenović * Make-lang.in: Remove references to $(P). * Make-maintainer.in: Ditto. 2023-04-21 Gaius Mulley PR modula2/109586 * gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE (t) == CONSTRUCTOR) to expression. 2023-04-13 Gaius Mulley PR modula2/109488 * lang.opt: Fix typo "maybe" to "may be". 2023-04-13 Gaius Mulley * gm2-compiler/M2ALU.def (PopChar): New procedure function. * gm2-compiler/M2ALU.mod (PopChar): New procedure function. * gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect a single constant char and build a C string. * gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure function. (GetStr): New procedure function. (FoldAdd): Use IsConstStr. * gm2-compiler/M2Quads.mod: Formatting changes. * gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function. * gm2-gcc/m2expr.def (GetCstInteger): New procedure function. * gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype. 2023-04-05 Gaius Mulley PR modula2/109423 * gm2-compiler/M2Base.def (Unbounded): Remove. * gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn attribute. * gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct error format string. (BuildExceptProcedure): Correct error format string. (BuildAdrFunction): Call PutWriteQuad when taking the address of a variable. * gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add parameters. * gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters. * gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t. (PopAllocationExemption): Remove f. * gm2-libs/FIO.mod (BufferedWrite): Remove result. * gm2-libs/FormatStrings.mod (Copy): Remove endpos and afterperc. (HandlePercent): Remove result. * gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k. * gm2-libs/M2Dependent.mod (CreateModule): Remove p0 and p1. (DumpModuleData): Remove mptr. (ConstructModules): Remove nulp. * gm2-libs/RTExceptions.mod (PopHandler): Remove i. * gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs and afm. * gm2-libs/SFIO.mod (ReadS): Remove c. * gm2-libs/StringConvert.mod (doDecimalPlaces): Remove whole and fraction. 2023-04-03 Gaius Mulley PR modula2/109388 * gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration): Remove second parameter module. Adjust all callers to remove the second parameter. * gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove. (InStopSet): Remove. (PeepToken): Remove. (PushQualident): Remove. (SimpleDes): Remove. (ActualParameters): Remove. 2023-04-02 Gaius Mulley PR modula2/109336 * Make-lang.in (GM2_O): Set to -O0. (GM2_LIBS): Remove target libraries and replace with build libs. (BUILD-LIBS): New declaration. (m2/gm2-libs/libgm2.a): New rule. (m2/gm2-libs/%.o): New rule. (m2/gm2-libs/choosetemp.o): New rule. * gm2-compiler/M2ColorString.mod (append): Use ADR rather than implicit conversion. * gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when a source file is not found. Improve comments and formatting. * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove ansi-decl.h. Add getopt.h. (cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_. * gm2spec.cc (lang_specific_driver): Do not skip -fmod=. Remove comment. 2023-03-29 Gaius Mulley PR modula2/109336 PR modula2/109315 * gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by ensuring the extension contains the ".". (CalculateStemName): Re-formatted. (ExtractExtension): Re-formatted. (ExtractModule): Re-formatted. * gm2-compiler/M2Options.def (setdefextension): Add block comment. (setmodextension): Add block comment. Re-formatted. * gm2-compiler/M2Options.mod (setdefextension): Add block comment. (setmodextension): Add block comment. Re-formatted. * gm2-compiler/M2Search.mod (FindSourceDefFile): Use DefaultDefExt. (DefaultDefExt): New constant. (DefaultModExt): New constant. (FindSourceModFile): Use DefaultModExt. * gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct spelling. * gm2spec.cc (M2SOURCE): New constant. (LANGSPEC): New value. (MATHLIB): New value. (WITHLIBC): New value. (SKIPOPT): New value. (lang_specific_driver): Replace seen_module_extension bool with module_extension char *. Detect -fmod= and remember extension. Use the extension to detect modula-2 source and mark it as such. 2023-03-23 Gaius Mulley PR modula2/109264 * gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment out ErrorString in debugging block. (BuildConstructorStart): Replace Assert with a call to MetaErrorT3. Import MetaErrorT3. * gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename local variables. (WalkFunctionParam): Remove test for IsEnumeration when resolving MIN or MAX parameters. * gm2-compiler/PHBuild.bnf (BlockAssert): New procedure. (ErrorArrayat): New procedure. (Expect): Renamed parameter t to tok. (PushQualident): New rule. (ConstSetOrQualidentOrFunction): Force AutoOn. (TypeDeclaration): Add debugging assert. (SimpleType): Add debugging assert. (DefaultRecordAttributes): New rule (and bugfix). (FieldPragmaExpression): New rule (and bugfix). (PragmaConstExpression): New rule (and bugfix). (SetOrDesignatorOrFunction): Add debugging assert. (Block): Add debugging assert. * gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int to bool. * gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool. (m2expr_GetBooleanTrue): Remove. (m2expr_GetBooleanFalse): Remove. * gm2-gcc/m2options.h (M2Options_SetStatistics): Replace int with bool. 2023-03-22 Gaius Mulley PR modula2/109248 * Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C and C++ compiles. * gm2spec.cc (add_m2_I_path): Indentation. (lang_specific_driver): New variable seen_pathname. Detect -fm2-pathname. If not seen then push_back_Ipath ("."). Change non iso library path to "m2cor,m2log,m2pim,m2iso". 2023-03-22 Gaius Mulley PR modula2/107630 * Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove m2/gm2-libs-boot/M2LINK.o. (m2/stage1/cc1gm2$(exeext)): Ditto. (GM2-LIBS-BOOT-DEFS): Remove M2LINK.def. (GM2-LIBS-DEFS): Ditto. (m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS. (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto. (m2/mc-boot/main.o): Ditto. (mcflex.o): Add $(CFLAGS). (m2/gm2-libs-boot/M2LINK.o): Remove rule. * gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove. * gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove. (M2LinkIndex): Remove. (DoVariableDeclaration): Remove initial and call to AddEntryM2Link. (AddEntryM2Link): Remove. (GetEntryM2Link): Remove. (DeclareM2linkGlobals): Remove. (DetectM2LinkInitial): Remove. (InitM2LinkModule): Remove. * gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to DeclareM2linkGlobals. * gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra parameter containing runtime module override to ConstructModules. * gm2-compiler/M2Scaffold.mod: Update comment describing ConstructModules. * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder): Remove. * gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder parameter. * gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter. * gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder parameter. * gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder parameter. * gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter. * gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder parameter. * gm2-libs/M2LINK.def: Removed. 2023-03-21 Gaius Mulley * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS). (m2/mc-boot/main.o): Add $(CXXFLAGS). 2023-03-19 Gaius Mulley * Make-maintainer.in (gm2.maintainer-clean): Remove. (gm2.maintainer-help): Add gm2.maintainer-tools, gm2.maintainer-doc. Remove gm2.maintainer-clean. Change target-independent directory to target-independent/m2. * gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__. * gm2-compiler/M2Options.def (SetAutoInit): Update comment. * gm2-compiler/M2Options.mod (SetAutoInit): Update comment. * gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len to _name_high. * gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to ADDRESS and add _name_high. * gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change int to bool. * gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change int to bool. * gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool. (m2expr_BuildIfConstInVar): Change int to bool. (m2expr_BuildIfNotConstInVar): Change int to bool. (m2expr_BuildIfVarInVar): Change int to bool. (m2expr_BuildIfNotVarInVar): Change int to bool. (m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool. * gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool. (m2expr_BuildIfVarInVar): Change int to bool. (m2expr_BuildIfNotConstInVar): Change int to bool. (m2expr_BuildIfConstInVar): Change int to bool. * gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool. (M2Options_SetNilCheck): Change int to bool. (M2Options_SetReturnCheck): Change int to bool. (M2Options_SetCaseCheck): Change int to bool. (M2Options_SetCheckAll): Change int to bool. (M2Options_SetVerboseUnbounded): Change int to bool. (M2Options_SetUnboundedByReference): Change int to bool. (M2Options_SetOptimizing): Change int to bool. (M2Options_SetQuiet): Change int to bool. (M2Options_SetCpp): Change int to bool. (M2Options_SetM2g): Change int to bool. (M2Options_SetLowerCaseKeywords): Change int to bool. (M2Options_SetVerbose): Change int to bool. * gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool. (m2treelib_get_field_no): Change int to bool. (m2treelib_get_set_value): Change int to bool. (m2treelib_get_set_address): Change int to bool. (m2treelib_get_set_address_if_var): Change int to bool. * gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool. (get_set_address): Change int to bool. (get_set_value): Change int to bool. (get_field_no): Change int to bool. (get_rvalue): Change int to bool. * gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool. (m2treelib_get_set_value): Change int to bool. (m2treelib_get_set_address): Change int to bool. (m2treelib_get_set_address_if_var): Change int to bool. * gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool. * gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool. * gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool. * gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool. (ldtoa_ldtoa): Change int to bool. * m2.flex (functionInfo): Change int to bool. (pushFunction): Change parameter from int to bool. * mc-boot/GDebug.cc (Debug_Halt): Rebuild. * mc-boot/GDebug.h (Debug_Halt): Rebuild. * mc-boot/GDynamicStrings.cc: Rebuild. * mc-boot/GDynamicStrings.h: Rebuild. * mc-boot/GFIO.cc: Rebuild. * mc-boot/GM2RTS.cc: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GPushBackInput.cc: Rebuild. * mc-boot/GRTExceptions.cc: Rebuild. * mc-boot/GRTint.cc: Rebuild. * mc-boot/GSysStorage.cc: Rebuild. * mc-boot/Gdecl.cc: Rebuild. * mc-boot/GsymbolKey.cc: Rebuild. * mc/symbolKey.mod: Rebuild. * target-independent/m2/Builtins.texi: Rebuild. * target-independent/m2/SYSTEM-iso.texi: Rebuild. * target-independent/m2/SYSTEM-pim.texi: Rebuild. * target-independent/m2/gm2-libs.texi: Rebuild. * tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to gm2-lib-log. 2023-03-17 Gaius Mulley PR modula2/109032 * gm2-gcc/m2expr.cc: Correct ? : order in comments. (m2expr_BuildDivM2): Improve comment. * lang.opt: Improve option descriptions. 2023-03-17 Gaius Mulley PR modula2/109102 * gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to use %qs rather than quotes. 2023-03-17 Gaius Mulley * gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix): Re-implemented. * gm2-libs/SysStorage.mod (enableTrace): Disable tracing. 2023-03-16 Gaius Mulley * gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters reordered. (DelSymKey): Ditto. * gm2-compiler/ppg.mod (GetEpsilon): Ditto. (GetReachEnd): Ditto. (GetFollow): Ditto. (CodeCondition): Ditto. (CodeThenDo): Ditto. (CodeEnd): Ditto. (RecoverCondition): Ditto. (ConditionIndent): Ditto. * gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto. * gm2-libs-coroutines/Executive.mod (Assert): Ditto. (Resume): Remove redundant comments. (Wait): Remove redundant comments. * gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters reordered. (IOTransferHandler): Ditto. (Finished): Ditto. (localInit): Ditto. * gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters reordered. (Cancel): Ditto. (ReArmEvent): Ditto. (OnActiveQueue): Ditto. * gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto. (Transfer): Ditto. (IOTRANSFER): Ditto. * gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters. * gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered. (HaltC): Ditto. * gm2-libs-iso/M2RTS.mod: Ditto. * gm2-libs-iso/RTentity.mod (PutKey): Ditto. (DelKey): Ditto. (findChildAndParent): Ditto. (assert): Ditto. * gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace. Add UseMallocFree test. (DEALLOCATE): Add DebugTrace. Add UseMallocFree test. (assert): Halt parameters reordered. * gm2-libs-log/Termbase.mod (Read): Ditto. (KeyPressed): Ditto. (Write): Ditto. (Init): Ditto. * gm2-libs/Debug.def (Halt): Halt parameters reordered. * gm2-libs/Debug.mod (Halt): Ditto. * gm2-libs/DynamicStrings.def (PopAllocation): Improve comment. * gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment. Halt parameters reordered. * gm2-libs/M2RTS.def (Halt): Ditto. (HaltC): Ditto. * gm2-libs/M2RTS.mod (Halt): Ditto. (HaltC): Ditto. * gm2-libs/PushBackInput.mod (PutStr): Ditto. (PutString): Ditto. (PutCh): Ditto. * gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto. * gm2-libs/RTint.mod (ReArmTimeVector): Ditto. (GetTimeVector): Ditto. (AttachVector): Ditto. (IncludeVector): Ditto. (Listen): Ditto. * gm2-libs/SysStorage.mod (ALLOCATE): Ditto. (DEALLOCATE): Ditto. (REALLOCATE): Ditto. * gm2-libs-coroutines/Debug.def: Removed. * gm2-libs-coroutines/Debug.mod: Removed. 2023-03-16 Gaius Mulley * Make-lang.in: Rename target-independent to target-independent/m2. * target-independent/readme.txt: Update. * target-independent/m2/gm2-ebnf.texi: New file. * target-independent/m2/gpl_v3_without_node.texi: New file. * target-independent/Builtins.texi: Rename ... * target-independent/m2/Builtins.texi: ... to this. * target-independent/SYSTEM-iso.texi: Rename ... * target-independent/m2/SYSTEM-iso.texi: ... to this. * target-independent/SYSTEM-pim.texi: Rename ... * target-independent/m2/SYSTEM-pim.texi: ... to this. * target-independent/gm2-libs.texi: Rename ... * target-independent/m2/gm2-libs.texi: ... to this. 2023-03-15 Gaius Mulley PR modula2/109125 * gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool. * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool. 2023-03-14 Gaius Mulley PR modula2/109125 * gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int for bool. * gm2-libs-ch/termios.c (doSetUnset): Replace int for bool. * gm2-libs/Builtins.mod (isfinitef): Correct typo in return statement. 2023-03-13 Gaius Mulley PR modula2/109103 * gm2-compiler/M2ALU.def (PushString): New parameter issueError. * gm2-compiler/M2ALU.mod (PushString): New parameter issueError. * gm2-compiler/SymbolTable.mod (PushString): New parameter issueError. * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass location to interpret_m2_integer. (m2decl_BuildConstLiteralNumber): New parameter issueError. * gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool. (m2expr_IsFalse): Replace int with bool. (m2expr_AreConstantsEqual): Replace int with bool. (m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at. (append_digit): Ditto. (m2expr_interpret_integer): Add location parameter. (append_m2_digit): Call m2linemap_internal_error_at. (m2expr_interpret_m2_integer): Add location parameter. (m2expr_GetSizeOf): Replace sizeof with SIZE in error message. * gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual): Replace int with bool. (m2expr_AreConstantsEqual): Ditto. (m2expr_IsFalse): Ditto. (m2expr_IsTrue): Ditto. (m2expr_interpret_integer): Add location parameter. (m2expr_interpret_m2_integer): Add location parameter. * gm2-gcc/m2linemap.cc (mformat_value): New function. (expand_format): New function. (expand_message): New function. (gm2_internal_error_at): New function. (m2linemap_internal_error_at): New function. * gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function. * gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool. (M2Options_SetPIM): Ditto. (M2Options_SetPIM2): Ditto. (M2Options_SetPIM3): Ditto. (M2Options_SetPIM4): Ditto. (M2Options_SetFloatValueCheck): Ditto. (M2Options_SetWholeValueCheck): Ditto. (M2Options_GetISO): Ditto. (M2Options_GetPIM): Ditto. (M2Options_GetPIM2): Ditto. (M2Options_GetPIM3): Ditto. (M2Options_GetPIM4): Ditto. (M2Options_GetPositiveModFloor): Ditto. (M2Options_GetFloatValueCheck): Ditto. (M2Options_GetWholeValueCheck): Ditto. (M2Options_Setc): Ditto. (M2Options_Getc): Ditto. (M2Options_SetPPOnly): Ditto. (M2Options_GetPPOnly): Ditto. (M2Options_SetUselist): Ditto. (M2Options_SetAutoInit): Ditto. (M2Options_SetPositiveModFloor): Ditto. (M2Options_SetNilCheck): Ditto. (M2Options_SetWholeDiv): Ditto. (M2Options_SetIndex): Ditto. (M2Options_SetRange): Ditto. (M2Options_SetReturnCheck): Ditto. (M2Options_SetCaseCheck): Ditto. (M2Options_SetCheckAll): Ditto. (M2Options_SetExceptions): Ditto. (M2Options_SetStyle): Ditto. (M2Options_SetPedantic): Ditto. (M2Options_SetPedanticParamNames): Ditto. (M2Options_SetPedanticCast): Ditto. (M2Options_SetExtendedOpaque): Ditto. (M2Options_SetVerboseUnbounded): Ditto. (M2Options_SetXCode): Ditto. (M2Options_SetCompilerDebugging): Ditto. (M2Options_SetQuadDebugging): Ditto. (M2Options_SetDebugTraceQuad): Ditto. (M2Options_SetDebugTraceAPI): Ditto. (M2Options_SetSources): Ditto. (M2Options_SetUnboundedByReference): Ditto. (M2Options_SetDumpSystemExports): Ditto. (M2Options_SetOptimizing): Ditto. (M2Options_SetQuiet): Ditto. (M2Options_SetCC1Quiet): Ditto. (M2Options_SetCpp): Ditto. (M2Options_SetSwig): Ditto. (M2Options_SetWholeProgram): Ditto. (M2Options_SetDebugFunctionLineNumbers): Ditto. (M2Options_SetGenerateStatementNote): Ditto. (M2Options_GetCpp): Ditto. (M2Options_GetM2g): Ditto. (M2Options_SetM2g): Ditto. (M2Options_SetLowerCaseKeywords): Ditto. (M2Options_SetVerbose): Ditto. (M2Options_SetUnusedVariableChecking): Ditto. (M2Options_SetUnusedParameterChecking): Ditto. (M2Options_SetStrictTypeChecking): Ditto. (M2Options_SetWall): Ditto. (M2Options_SetSaveTemps): Ditto. (M2Options_GetSaveTemps): Ditto. (M2Options_SetScaffoldStatic): Ditto. (M2Options_SetScaffoldDynamic): Ditto. (M2Options_SetScaffoldMain): Ditto. (M2Options_SetGenModuleList): Ditto. (M2Options_SetShared): Ditto. * gm2-libs-ch/M2LINK.c: Ditto. * gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace const char * with const void *. (M2RTS_RegisterModule): Ditto. (M2RTS_ConstructModules): Ditto. * gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter issueError. * gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter issueError. 2023-03-12 Gaius Mulley PR modula2/109089 * gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import. * gm2-gcc/gcc-consolidation.h (stdbool.h): Include. * gm2-gcc/init.h (defined): Change block start. * gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true. * gm2-gcc/m2block.h: Change int to bool. * gm2-gcc/m2builtins.cc: Ditto. * gm2-gcc/m2builtins.h: Ditto. * gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and int to bool. * gm2-gcc/m2convert.h: Change int to bool. * gm2-gcc/m2decl.cc: Change int to bool. * gm2-gcc/m2decl.h: Change int to bool. * gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and int to bool. * gm2-gcc/m2expr.h: Change int to bool. * gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and int to bool. * gm2-gcc/m2statement.h: Change int to bool. * gm2-gcc/m2top.cc: Change int to bool. * gm2-gcc/m2top.h: Change int to bool. * gm2-gcc/m2tree.cc: Change int to bool. * gm2-gcc/m2tree.h: Change int to bool. * gm2-gcc/m2type.cc: Change int to bool. * gm2-gcc/m2type.h: Change int to bool. * gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE. * gm2-libs/Builtins.def (isfinitef): Change return value from BOOLEAN to INTEGER. (isfinite): Ditto. (isfinitel): Ditto. * gm2-libs/Builtins.mod (isfinitef): Change return value from BOOLEAN to INTEGER. (isfinite): Ditto. (isfinitel): Ditto. * mc-boot/GASCII.cc: Rebuild. * mc-boot/GASCII.h: Rebuild. * mc-boot/GArgs.cc: Rebuild. * mc-boot/GArgs.h: Rebuild. * mc-boot/GAssertion.cc: Rebuild. * mc-boot/GAssertion.h: Rebuild. * mc-boot/GBreak.cc: Rebuild. * mc-boot/GBreak.h: Rebuild. * mc-boot/GCOROUTINES.h: Rebuild. * mc-boot/GCmdArgs.cc: Rebuild. * mc-boot/GCmdArgs.h: Rebuild. * mc-boot/GDebug.cc: Rebuild. * mc-boot/GDebug.h: Rebuild. * mc-boot/GDynamicStrings.cc: Rebuild. * mc-boot/GDynamicStrings.h: Rebuild. * mc-boot/GEnvironment.cc: Rebuild. * mc-boot/GEnvironment.h: Rebuild. * mc-boot/GFIO.cc: Rebuild. * mc-boot/GFIO.h: Rebuild. * mc-boot/GFormatStrings.cc: Rebuild. * mc-boot/GFormatStrings.h: Rebuild. * mc-boot/GFpuIO.cc: Rebuild. * mc-boot/GFpuIO.h: Rebuild. * mc-boot/GIO.cc: Rebuild. * mc-boot/GIO.h: Rebuild. * mc-boot/GIndexing.cc: Rebuild. * mc-boot/GIndexing.h: Rebuild. * mc-boot/GM2Dependent.cc: Rebuild. * mc-boot/GM2Dependent.h: Rebuild. * mc-boot/GM2EXCEPTION.cc: Rebuild. * mc-boot/GM2EXCEPTION.h: Rebuild. * mc-boot/GM2LINK.h: Rebuild. * mc-boot/GM2RTS.cc: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GMemUtils.cc: Rebuild. * mc-boot/GMemUtils.h: Rebuild. * mc-boot/GNumberIO.cc: Rebuild. * mc-boot/GNumberIO.h: Rebuild. * mc-boot/GPushBackInput.cc: Rebuild. * mc-boot/GPushBackInput.h: Rebuild. * mc-boot/GRTExceptions.cc: Rebuild. * mc-boot/GRTExceptions.h: Rebuild. * mc-boot/GRTco.h: Rebuild. * mc-boot/GRTentity.h: Rebuild. * mc-boot/GRTint.cc: Rebuild. * mc-boot/GRTint.h: Rebuild. * mc-boot/GSArgs.cc: Rebuild. * mc-boot/GSArgs.h: Rebuild. * mc-boot/GSFIO.cc: Rebuild. * mc-boot/GSFIO.h: Rebuild. * mc-boot/GSYSTEM.h: Rebuild. * mc-boot/GSelective.h: Rebuild. * mc-boot/GStdIO.cc: Rebuild. * mc-boot/GStdIO.h: Rebuild. * mc-boot/GStorage.cc: Rebuild. * mc-boot/GStorage.h: Rebuild. * mc-boot/GStrCase.cc: Rebuild. * mc-boot/GStrCase.h: Rebuild. * mc-boot/GStrIO.cc: Rebuild. * mc-boot/GStrIO.h: Rebuild. * mc-boot/GStrLib.cc: Rebuild. * mc-boot/GStrLib.h: Rebuild. * mc-boot/GStringConvert.cc: Rebuild. * mc-boot/GStringConvert.h: Rebuild. * mc-boot/GSysExceptions.h: Rebuild. * mc-boot/GSysStorage.cc: Rebuild. * mc-boot/GSysStorage.h: Rebuild. * mc-boot/GTimeString.cc: Rebuild. * mc-boot/GTimeString.h: Rebuild. * mc-boot/GUnixArgs.h: Rebuild. * mc-boot/Galists.cc: Rebuild. * mc-boot/Galists.h: Rebuild. * mc-boot/Gdecl.cc: Rebuild. * mc-boot/Gdecl.h: Rebuild. * mc-boot/Gdtoa.h: Rebuild. * mc-boot/Gerrno.h: Rebuild. * mc-boot/Gkeyc.cc: Rebuild. * mc-boot/Gkeyc.h: Rebuild. * mc-boot/Gldtoa.h: Rebuild. * mc-boot/Glibc.h: Rebuild. * mc-boot/Glibm.h: Rebuild. * mc-boot/Glists.cc: Rebuild. * mc-boot/Glists.h: Rebuild. * mc-boot/GmcComment.cc: Rebuild. * mc-boot/GmcComment.h: Rebuild. * mc-boot/GmcComp.cc: Rebuild. * mc-boot/GmcComp.h: Rebuild. * mc-boot/GmcDebug.cc: Rebuild. * mc-boot/GmcDebug.h: Rebuild. * mc-boot/GmcError.cc: Rebuild. * mc-boot/GmcError.h: Rebuild. * mc-boot/GmcFileName.cc: Rebuild. * mc-boot/GmcFileName.h: Rebuild. * mc-boot/GmcLexBuf.cc: Rebuild. * mc-boot/GmcLexBuf.h: Rebuild. * mc-boot/GmcMetaError.cc: Rebuild. * mc-boot/GmcMetaError.h: Rebuild. * mc-boot/GmcOptions.cc: Rebuild. * mc-boot/GmcOptions.h: Rebuild. * mc-boot/GmcPreprocess.cc: Rebuild. * mc-boot/GmcPreprocess.h: Rebuild. * mc-boot/GmcPretty.cc: Rebuild. * mc-boot/GmcPretty.h: Rebuild. * mc-boot/GmcPrintf.cc: Rebuild. * mc-boot/GmcPrintf.h: Rebuild. * mc-boot/GmcQuiet.cc: Rebuild. * mc-boot/GmcQuiet.h: Rebuild. * mc-boot/GmcReserved.cc: Rebuild. * mc-boot/GmcReserved.h: Rebuild. * mc-boot/GmcSearch.cc: Rebuild. * mc-boot/GmcSearch.h: Rebuild. * mc-boot/GmcStack.cc: Rebuild. * mc-boot/GmcStack.h: Rebuild. * mc-boot/GmcStream.cc: Rebuild. * mc-boot/GmcStream.h: Rebuild. * mc-boot/Gmcflex.h: Rebuild. * mc-boot/Gmcp1.cc: Rebuild. * mc-boot/Gmcp1.h: Rebuild. * mc-boot/Gmcp2.cc: Rebuild. * mc-boot/Gmcp2.h: Rebuild. * mc-boot/Gmcp3.cc: Rebuild. * mc-boot/Gmcp3.h: Rebuild. * mc-boot/Gmcp4.cc: Rebuild. * mc-boot/Gmcp4.h: Rebuild. * mc-boot/Gmcp5.cc: Rebuild. * mc-boot/Gmcp5.h: Rebuild. * mc-boot/GnameKey.cc: Rebuild. * mc-boot/GnameKey.h: Rebuild. * mc-boot/GsymbolKey.cc: Rebuild. * mc-boot/GsymbolKey.h: Rebuild. * mc-boot/Gtermios.h: Rebuild. * mc-boot/Gtop.cc: Rebuild. * mc-boot/Gvarargs.cc: Rebuild. * mc-boot/Gvarargs.h: Rebuild. * mc-boot/Gwlists.cc: Rebuild. * mc-boot/Gwlists.h: Rebuild. * mc-boot/Gwrapc.h: Rebuild. * mc/decl.mod (doBoolC): New procedure. (doBaseC): Call doBoolC. * mc/keyc.mod: Import useBool. (genBool): New procedure. (genDefs): Call genBool. * mc/mcOptions.def (useBool): New procedure. * mc/mcOptions.mod (useBool): New procedure. (useBoolType): New variable. (optionIs): Assign useBoolType to TRUE. 2023-03-04 Gaius Mulley * mc-boot-ch/GBuiltins.cc: New file. * mc-boot-ch/Gdtoa.cc: New file. * mc-boot-ch/Gerrno.cc: New file. * mc-boot-ch/Gldtoa.cc: New file. * mc-boot-ch/Gm2rtsdummy.cc: New file. * mc-boot/GASCII.cc: New file. * mc-boot/GArgs.cc: New file. * mc-boot/GAssertion.cc: New file. * mc-boot/GBreak.cc: New file. * mc-boot/GCmdArgs.cc: New file. * mc-boot/GDebug.cc: New file. * mc-boot/GDynamicStrings.cc: New file. * mc-boot/GEnvironment.cc: New file. * mc-boot/GFIO.cc: New file. * mc-boot/GFormatStrings.cc: New file. * mc-boot/GFpuIO.cc: New file. * mc-boot/GIO.cc: New file. * mc-boot/GIndexing.cc: New file. * mc-boot/GM2Dependent.cc: New file. * mc-boot/GM2EXCEPTION.cc: New file. * mc-boot/GM2RTS.cc: New file. * mc-boot/GMemUtils.cc: New file. * mc-boot/GNumberIO.cc: New file. * mc-boot/GPushBackInput.cc: New file. * mc-boot/GRTExceptions.cc: New file. * mc-boot/GRTint.cc: New file. * mc-boot/GSArgs.cc: New file. * mc-boot/GSFIO.cc: New file. * mc-boot/GStdIO.cc: New file. * mc-boot/GStorage.cc: New file. * mc-boot/GStrCase.cc: New file. * mc-boot/GStrIO.cc: New file. * mc-boot/GStrLib.cc: New file. * mc-boot/GStringConvert.cc: New file. * mc-boot/GSysStorage.cc: New file. * mc-boot/GTimeString.cc: New file. * mc-boot/Galists.cc: New file. * mc-boot/Gdecl.cc: New file. * mc-boot/Gkeyc.cc: New file. * mc-boot/Glists.cc: New file. * mc-boot/GmcComment.cc: New file. * mc-boot/GmcComp.cc: New file. * mc-boot/GmcDebug.cc: New file. * mc-boot/GmcError.cc: New file. * mc-boot/GmcFileName.cc: New file. * mc-boot/GmcLexBuf.cc: New file. * mc-boot/GmcMetaError.cc: New file. * mc-boot/GmcOptions.cc: New file. * mc-boot/GmcPreprocess.cc: New file. * mc-boot/GmcPretty.cc: New file. * mc-boot/GmcPrintf.cc: New file. * mc-boot/GmcQuiet.cc: New file. * mc-boot/GmcReserved.cc: New file. * mc-boot/GmcSearch.cc: New file. * mc-boot/GmcStack.cc: New file. * mc-boot/GmcStream.cc: New file. * mc-boot/Gmcp1.cc: New file. * mc-boot/Gmcp2.cc: New file. * mc-boot/Gmcp3.cc: New file. * mc-boot/Gmcp4.cc: New file. * mc-boot/Gmcp5.cc: New file. * mc-boot/GnameKey.cc: New file. * mc-boot/GsymbolKey.cc: New file. * mc-boot/Gtop.cc: New file. * mc-boot/Gvarargs.cc: New file. * mc-boot/Gwlists.cc: New file. * pge-boot/GASCII.cc: New file. * pge-boot/GArgs.cc: New file. * pge-boot/GAssertion.cc: New file. * pge-boot/GBuiltins.cc: New file. * pge-boot/GDebug.cc: New file. * pge-boot/GDynamicStrings.cc: New file. * pge-boot/GFIO.cc: New file. * pge-boot/GIO.cc: New file. * pge-boot/GIndexing.cc: New file. * pge-boot/GLists.cc: New file. * pge-boot/GM2Dependent.cc: New file. * pge-boot/GM2EXCEPTION.cc: New file. * pge-boot/GM2LINK.cc: New file. * pge-boot/GM2RTS.cc: New file. * pge-boot/GNameKey.cc: New file. * pge-boot/GNumberIO.cc: New file. * pge-boot/GOutput.cc: New file. * pge-boot/GPushBackInput.cc: New file. * pge-boot/GRTExceptions.cc: New file. * pge-boot/GRTco.cc: New file. * pge-boot/GSFIO.cc: New file. * pge-boot/GSYSTEM.cc: New file. * pge-boot/GSelective.cc: New file. * pge-boot/GStdIO.cc: New file. * pge-boot/GStorage.cc: New file. * pge-boot/GStrCase.cc: New file. * pge-boot/GStrIO.cc: New file. * pge-boot/GStrLib.cc: New file. * pge-boot/GSymbolKey.cc: New file. * pge-boot/GSysExceptions.cc: New file. * pge-boot/GSysStorage.cc: New file. * pge-boot/Gabort.cc: New file. * pge-boot/Gbnflex.cc: New file. * pge-boot/Gcbuiltin.cc: New file. * pge-boot/Gdtoa.cc: New file. * pge-boot/Gerrno.cc: New file. * pge-boot/Gldtoa.cc: New file. * pge-boot/Glibc.cc: New file. * pge-boot/Glibm.cc: New file. * pge-boot/Gmcrts.cc: New file. * pge-boot/Gpge.cc: New file. * pge-boot/Gwrapc.cc: New file. * pge-boot/main.cc: New file. * pge-boot/network.cc: New file. 2023-03-04 Gaius Mulley * Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC. (MC-BOOT-C): Rename to MC-BOOT-CC. (BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC. (BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC. (m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc. (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto. * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc. (m2/gm2-ppg-boot/main.o): Ditto. (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto. to .cc. (m2/gm2-pg-boot/main.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto. (m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto. (m2/gm2-pge-boot/main.o): Ditto. (mc-push): Ditto. (mc-clean): Ditto. (mc-stage2): Ditto. ((objdir)/m2/mc-boot-gen): Ditto. (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto. (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto. * mc-boot-ch/GBuiltins.c: Correct comment and rename. * mc-boot-ch/Gdtoa.c: Correct comment and rename. * mc-boot-ch/Gldtoa.c: Correct comment and rename * mc-boot-ch/Gtermios.cc: Rename from Gtermios.c. * mc-boot-ch/Gerrno.c: Rename. * mc-boot-ch/GRTco.c: Removed. * mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc. * mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc. * mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc. * mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc. * mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc. * mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc. * mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc. * mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc. * mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc. * mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc. * mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc. * mc-boot/GIO.c: Rename to mc-boot/GIO.cc. * mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc. * mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc. * mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc. * mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc. * mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc. * mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc. * mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc. * mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc. * mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc. * mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc. * mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc. * mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc. * mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc. * mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc. * mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc. * mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc. * mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc. * mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc. * mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc. * mc-boot/Galists.c: Rename to mc-boot/Galists.cc. * mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc. * mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc. * mc-boot/Glists.c: Rename to mc-boot/Glists.cc. * mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc. * mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc. * mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc. * mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc. * mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc. * mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc. * mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc. * mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc. * mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc. * mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc. * mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc. * mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc. * mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc. * mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc. * mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc. * mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc. * mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc. * mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc. * mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc. * mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc. * mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc. * mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc. * mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc. * mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc. * mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc. * mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc. * pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc. * pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc. * pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc. * pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc. * pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc. * pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc. * pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc. * pge-boot/GIO.c: Rename to pge-boot/GIO.cc. * pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc. * pge-boot/GLists.c: Rename to pge-boot/GLists.cc. * pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc. * pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc. * pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc. * pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc. * pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc. * pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc. * pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc. * pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc. * pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc. * pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc. * pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc. * pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc. * pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc. * pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc. * pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc. * pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc. * pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc. * pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc. * pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc. * pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc. * pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc. * pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc. * pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc. * pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc. * pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc. * pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc. * pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc. * pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc. * pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc. * pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc. * pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc. * pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc. * pge-boot/README: Correct description. * pge-boot/main.c: Rename to pge-boot/main.cc. * pge-boot/network.c: Rename to pge-boot/network.cc. 2023-02-28 Gaius Mulley PR modula2/108956 * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to add the --suppress-noreturn option. * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New specific rule to add the --suppress-noreturn option. (m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New specific rule to add the --suppress-noreturn option. (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir). (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New specific rule to add the --suppress-noreturn option. (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir). * gm2-libs-ch/UnixArgs.cc (LIBNAME): New define. (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule. * gm2-libs-ch/dtoa.cc (LIBNAME): New define. (_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule. * gm2-libs-ch/ldtoa.cc (LIBNAME): New define. (_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule. * pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname parameter. * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname parameter. * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove. * pge-boot/GUnixArgs.cc (LIBNAME): New define. (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule. * gm2-libs/RTint.def (AttachVector): Rename parameter. * mc-boot/GDynamicStrings.c: Rebuilt. * mc-boot/GFIO.c: Rebuilt. * mc-boot/GIndexing.c: Rebuilt. * mc-boot/GM2EXCEPTION.c: Rebuilt. * mc-boot/GPushBackInput.c: Rebuilt. * mc-boot/GRTExceptions.c: Rebuilt. * mc-boot/GRTint.c: Rebuilt. * mc-boot/GRTint.h: Rebuilt. * mc-boot/GStdIO.c: Rebuilt. * mc-boot/GStringConvert.c: Rebuilt. * mc-boot/GSysStorage.c: Rebuilt. * mc-boot/Gdecl.c: Rebuilt. * mc-boot/Gkeyc.c: Rebuilt. * mc-boot/GmcComment.c: Rebuilt. * mc-boot/GmcComp.c: Rebuilt. * mc-boot/GmcDebug.c: Rebuilt. * mc-boot/GmcMetaError.c: Rebuilt. * mc-boot/GmcOptions.c: Rebuilt. * mc-boot/GmcOptions.h: Rebuilt. * mc-boot/GmcStack.c: Rebuilt. * mc-boot/GnameKey.c: Rebuilt. * mc-boot/GsymbolKey.c: Rebuilt. * mc/decl.mod:: Rebuilt. * mc/mcOptions.def: Rebuilt. * mc/mcOptions.mod:: Rebuilt. * pge-boot/GDynamicStrings.c: Rebuilt. * pge-boot/GFIO.c: Rebuilt. * pge-boot/GIndexing.c: Rebuilt. * pge-boot/GM2EXCEPTION.c: Rebuilt. * pge-boot/GM2RTS.c: Rebuilt. * pge-boot/GNameKey.c: Rebuilt. * pge-boot/GPushBackInput.c: Rebuilt. * pge-boot/GRTExceptions.c: Rebuilt. * pge-boot/GStdIO.c: Rebuilt. * pge-boot/GSymbolKey.c: Rebuilt. * pge-boot/GSysStorage.c: Rebuilt. 2023-02-25 Gaius Mulley PR modula2/108261 * Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def remove. DynamicPath.def add. (GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove. DynamicPath.mod add. * Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency. (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add dependency. (PGE-DEF): New definition. (BUILD-BOOT-PG-H): New dependency. (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add dependency. (BUILD-BOOT-PGE-H): New dependency. (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add dependency. (GM2PATH): Add pathname entries. (m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o dependency. (m2/boot-bin/mc-opt$(exeext)): Fix -I path. * gm2-compiler/DynamicStringPath.def: Renamed module to DynamicPath. (GetUserPath): Remove. (GetSystemPath): Remove. (SetUserPath): Remove. (SetSystemPath): Remove. (DumpPath): New procedure definition. * gm2-compiler/DynamicStringPath.mod: Renamed module to DynamicPath. (GetUserPath): Remove. (GetSystemPath): Remove. (SetUserPath): Remove. (SetSystemPath): Remove. (DumpPath): Remove Debugging conditional. * gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and GetLibName. (Debugging): New declaration. (GetFullSymName): Re-implemented to prefix (mange) libname to any extern variable/procedure which is IsExportQualified. * gm2-compiler/M2Comp.mod (qprintLibName): New procedure. * gm2-compiler/M2Graph.mod (resolveImports): Add libname. * gm2-compiler/M2Options.def (SetM2Prefix): New procedure. (GetM2Prefix): New procedure function. (SetM2PathName): New procedure. (GetM2PathName): New procedure function. * gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented. (GetM2Prefix): New procedure function implemented. (SetM2PathName): New procedure implemented. (GetM2PathName): New procedure function implemented. (RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride. * gm2-compiler/M2Quads.mod: Import GetLibName. (SafeRequestSym) Pass result of GetLibName to RequestDependant. (callRequestDependant): Add libname as a parameter. (BuildM2InitFunction): Add libname as a parameter. (BuildM2FiniFunction): Add libname as a parameter. (BuildM2CtorFunction): Add libname as a parameter. * gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName if a definition source was found. * gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter. (FindSourceDefFile): Add named library parameter. (FindSourceModFile): Add named library parameter. * gm2-compiler/M2Search.mod (FindSourceFile): Reimplement. (FindSourceDefFile): Add named library parameter. (FindSourceModFile): Add named library parameter. * gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add libname parameter. (PutLibName): New procedure. (GetLibName): New procedure function. * gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add libname parameter. (GenName): Add libname parameter. (InitCtorFields): Add moduleSym as a parameter. (PutCtorExtern): Add libname parameter to GenName. * gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function... (_M2_DynamicPath_init): ...to this. (_M2_PathName_init): Added. * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization): Add m2pim as the manged component of the exported symbol. (m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix. * gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function. (M2Options_GetM2Prefix): New function. (M2Options_SetM2PathName): New function. (M2Options_GetM2PathName): New function. * gm2-lang.cc (push_back_Ipath): New function. (add_one_import_path): New function. (gm2_langhook_handle_option): Record -I component. Call SetM2PathName when -fm2-pathname= is seen. Record -fm2-pathnameI component. Call SetM2Prefix when -fm2-prefix= is seen. (gm2_langhook_post_options): Iterative over pathname entries and call SetM2PathName, SetSearchPath as appropriate. * gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs/M2RTS.def (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter. (DeconstructModules): Add libname parameter. (RegisterModule): Add libname parameter. (RequestDependant): Add libname parameter. * gm2-libs/RTint.mod (FindVector): Rename variables. (initInputVector): Rename variables. (initOutputVector): Rename variables. (InitTimeVector): Rename variables. (FindVectorNo): Rename variables. (FindPendingVector): Rename variables. (ReArmTimeVector): Rename variables. (GetTimeVector): Rename variables. (AttachVector): Rename variables. (AttachVector): Rename variables. (IncludeVector): Rename variables. (ExcludeVector): Rename variables. (AddFd): Rename variables. (AddFd): Rename variables. (DumpPendingQueue): Rename variables. (stop): Remove. (activatePending): Rename variables. (Listen): Rename variables. * gm2-libs/libc.def (snprintf): New function. * gm2-libs/sckt.def: Change all exported identifiers to be export qualified. * gm2spec.cc (push_back_Ipath): New function. (add_m2_I_path): New function. (lang_specific_driver): Skip -fm2-pathname= and remember pathname. Skip -I and record the path and current pathname. Call add_m2_I_path. * lang-specs.h: Replace %{I*} with %{fm2-pathname*}. * lang.opt (-fm2-pathname=): New entry. (-fm2-pathname): New entry. (-fm2-prefix=): New entry. * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function. (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method. * mc-boot-ch/Glibc.c (libc_snprintf): New function. * mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype. (M2RTS_RegisterModule): Changed prototype. * mc-boot/GDynamicStrings.c: Rebuild. * mc-boot/GFIO.c: Rebuild. * mc-boot/GIndexing.c: Rebuild. * mc-boot/GM2Dependent.c: Rebuild. * mc-boot/GM2Dependent.h: Rebuild. * mc-boot/GM2EXCEPTION.c: Rebuild. * mc-boot/GM2RTS.c: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GPushBackInput.c: Rebuild. * mc-boot/GRTExceptions.c: Rebuild. * mc-boot/GRTint.c: Rebuild. * mc-boot/GStdIO.c: Rebuild. * mc-boot/GStringConvert.c: Rebuild. * mc-boot/GSysStorage.c: Rebuild. * mc-boot/Gdecl.c: Rebuild. * mc-boot/Gkeyc.c: Rebuild. * mc-boot/Glibc.h: Rebuild. * mc-boot/GmcComment.c: Rebuild. * mc-boot/GmcComp.c: Rebuild. * mc-boot/GmcDebug.c: Rebuild. * mc-boot/GmcMetaError.c: Rebuild. * mc-boot/GmcStack.c: Rebuild. * mc-boot/GnameKey.c: Rebuild. * mc-boot/GsymbolKey.c: Rebuild. * pge-boot/GASCII.c: Rebuild. * pge-boot/GArgs.c: Rebuild. * pge-boot/GAssertion.c: Rebuild. * pge-boot/GDebug.c: Rebuild. * pge-boot/GDynamicStrings.c: Rebuild. * pge-boot/GFIO.c: Rebuild. * pge-boot/GIO.c: Rebuild. * pge-boot/GIndexing.c: Rebuild. * pge-boot/GLists.c: Rebuild. * pge-boot/GM2Dependent.c: Rebuild. * pge-boot/GM2Dependent.h: Rebuild. * pge-boot/GM2EXCEPTION.c: Rebuild. * pge-boot/GM2RTS.c: Rebuild. * pge-boot/GM2RTS.h: Rebuild. * pge-boot/GNameKey.c: Rebuild. * pge-boot/GNumberIO.c: Rebuild. * pge-boot/GOutput.c: Rebuild. * pge-boot/GPushBackInput.c: Rebuild. * pge-boot/GRTExceptions.c: Rebuild. * pge-boot/GSFIO.c: Rebuild. * pge-boot/GStdIO.c: Rebuild. * pge-boot/GStorage.c: Rebuild. * pge-boot/GStrCase.c: Rebuild. * pge-boot/GStrIO.c: Rebuild. * pge-boot/GStrLib.c: Rebuild. * pge-boot/GSymbolKey.c: Rebuild. * pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this... (_M2_SysExceptions_fini): ... to this. * pge-boot/GSysStorage.c: Rebuild. (_M2_SysStorage_finish): Rename this... (_M2_SysStorage_fini): ... to this. * pge-boot/GUnixArgs.cc: New file. * pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this... (_M2_bnflex_fini): ... to this. * pge-boot/Gerrno.c (_M2_errno_finish): Rename this... (_M2_errno_fini): ... to this. * pge-boot/Glibc.c (libc_snprintf): New function. * pge-boot/Glibc.h (libc_snprintf): New prototype. * pge-boot/Gpge.c (_M2_pge_finish): Rename this... (_M2_pge_fini): ... to this. * pge-boot/Gtermios.cc (_M2_termios_finish): Rename this... (_M2_termios_fini): ... to this. * pge-boot/main.c (_M2_RTExceptions_finish): Rename this... (_M2_RTExceptions_fini): ... to this. (_M2_M2EXCEPTION_finish): Rename this... (_M2_M2EXCEPTION_fini): ... to this. (_M2_M2RTS_finish): Rename this... (_M2_M2RTS_fini): ... to this. (_M2_SysExceptions_finish): Rename this... (_M2_SysExceptions_fini): ... to this. (_M2_StrLib_finish): Rename this... (_M2_StrLib_fini): ... to this. (_M2_errno_finish): Rename this... (_M2_errno_fini): ... to this. (_M2_termios_finish): Rename this... (_M2_termios_fini): ... to this. (_M2_IO_finish): Rename this... (_M2_IO_fini): ... to this. (_M2_StdIO_finish): Rename this... (_M2_StdIO_fini): ... to this. (_M2_Debug_finish): Rename this... (_M2_Debug_fini): ... to this. (_M2_SysStorage_finish): Rename this... (_M2_SysStorage_fini): ... to this. (_M2_Storage_finish): Rename this... (_M2_Storage_fini): ... to this. (_M2_StrIO_finish): Rename this... (_M2_StrIO_fini): ... to this. (_M2_DynamicStrings_finish): Rename this... (_M2_DynamicStrings_fini): ... to this. (_M2_Assertion_finish): Rename this... (_M2_Assertion_fini): ... to this. (_M2_Indexing_finish): Rename this... (_M2_Indexing_fini): ... to this. (_M2_NameKey_finish): Rename this... (_M2_NameKey_fini): ... to this. (_M2_NumberIO_finish): Rename this... (_M2_NumberIO_fini): ... to this. (_M2_PushBackInput_finish): Rename this... (_M2_PushBackInput_fini): ... to this. (_M2_SymbolKey_finish): Rename this... (_M2_SymbolKey_fini): ... to this. (_M2_UnixArgs_finish): Rename this... (_M2_UnixArgs_fini): ... to this. (_M2_FIO_finish): Rename this... (_M2_FIO_fini): ... to this. (_M2_SFIO_finish): Rename this... (_M2_SFIO_fini): ... to this. (_M2_StrCase_finish): Rename this... (_M2_StrCase_fini): ... to this. (_M2_bnflex_finish): Rename this... (_M2_bnflex_fini): ... to this. (_M2_Lists_finish): Rename this... (_M2_Lists_fini): ... to this. (_M2_Args_finish): Rename this... (_M2_Args_fini): ... to this. (_M2_Output_finish): Rename this... (_M2_Output_fini): ... to this. (_M2_pge_finish): Rename this... (_M2_pge_fini): ... to this. * plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime procedure names to their name mangled counterparts. * gm2-libs-iso/wrapsock.c: Removed. * gm2-libs-iso/wraptime.c: Removed. * mc-boot/Gpth.h: Removed. * gm2-compiler/PathName.def: New file. * gm2-compiler/PathName.mod: New file. * gm2-compiler/DynamicPath.def: New file. * gm2-compiler/DynamicPath.mod: New file. 2023-02-06 Gaius Mulley PR modula2/108135 * gm2-compiler/M2Search.mod (DSdbEnter): Comment out. (DSdbExit): Comment out. 2023-02-06 Co-Authored by: Rainer Orth PR modula2/107234 * m2pp.cc (m2pp_integer_cst): Use HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier. 2023-02-06 Gaius Mulley * gm2-compiler/M2Preprocess.mod (BaseName): Comment out. * gm2-lang.cc (opt): Remove. * gm2spec.cc (add_include): Remove. (full_libraries): Remove. (concat_option): Remove. 2023-02-03 Gaius Mulley * Make-lang.in (TEXISRC): Remove m2/images/gnu.eps. (RSTSRC): Remove m2/images/gnu.eps. (doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps. (doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps. (M2_PDFFILES): New definition. (m2.install-pdf): New rule. (m2.pod): Add $(objdir)/m2/images/gnu.eps. (m2.info): Add $(objdir)/m2/images/gnu.eps. (m2.html): New rule. (m2/gpl_v3_without_node.texi): New rule. (plugin/m2rte$(soext)): Simplify mkinstalldirs. (cc1gm2$(exeext)): Ditto. (m2/stage1/cc1gm2$(exeext)): Ditto. (m2/gm2-gcc/%.o): Ditto. (m2/gm2-gcc/rtegraph.o): Ditto. (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto. (m2/mc-boot/$(SRC_PREFIX)%.o):Ditto. (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto. (m2/mc-boot/main.o): Ditto. (m2/gm2-libs-boot/%.o): Ditto. (m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto. (m2/gm2-libs-boot/RTcodummy.o): Ditto. (m2/gm2-libs-boot/wrapc.o): Ditto. (m2/gm2-libs-boot/M2LINK.o): Ditto. (m2/gm2-libs-boot/UnixArgs.o): Ditto. (m2/gm2-libs-boot/choosetemp.o): Ditto. (m2/gm2-libs-boot/errno.o): Ditto. (m2/gm2-libs-boot/dtoa.o): Ditto. (m2/gm2-libs-boot/ldtoa.o): Ditto. (m2/gm2-libs-boot/termios.o): Ditto. (m2/gm2-libs-boot/SysExceptions.o): Ditto. (m2/gm2-libs-boot/SysStorage.o): Ditto. (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto. (m2/gm2-compiler-boot/M2Error.o): Ditto. (m2/gm2-compiler-boot/%.o): Ditto. (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto. (m2/gm2-compiler-boot/m2flex.o): Ditto. (m2/gm2-compiler/m2flex.c): Ditto. (m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto. (m2/gm2-compiler/%.o): Ditto. (m2/gm2-compiler/m2flex.o): Ditto. (m2/gm2-compiler/%.o): Ditto. (m2/gm2-libs-iso/%.o): Ditto. (m2/gm2-libs/gm2-libs-host.h): Ditto. ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto. ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto. ($(objdir)/m2/gm2-libs-iso/SYSTEM.def): Ditto. ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto. (m2/gm2-compiler/gm2.a): Ditto. (m2/gm2-libs-boot/libgm2.a): Ditto. (m2/gm2-compiler-boot/gm2.a): Ditto. (m2/boot-bin/mklink$(exeext)): Ditto. (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto. (m2/gm2-compiler/%.mod): Ditto. (m2/gm2-compiler-boot/%.mod): Ditto. (m2/pge-boot/%.o): Ditto. 2023-02-01 Gaius Mulley * Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type. (GM2_ISO_FLAGS): Add -fno-return -Wreturn-type. * Make-maintainer.in (GM2PATH): Split into separate -I components. (MC-LIB-DEFS): Add RTentity.def. (m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to $(GM2PATH). (m2/boot-bin/mc-opt$(exeext)): Separate -I paths. (m2/mc/decl.o): Separate -I paths. (gm2-bootstrap): Separate -I paths. (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths. (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths. (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths. (gm2.verifyparanoid): Separate -I paths. (gm2.verifystage12): Separate -I paths. * gm2-compiler/M2ALU.mod (GetConstructorElement): Add default Return NulSym. Remove return from the error case. * gm2-compiler/M2Base.mod (ComplexToScalar): Return RType from the error case. (MixMetaTypes): Return MakeError as a default. * gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym from the error case. (GetTypeMax): Return NulSym from the error case. * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert by InternalError. * gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError. (GetTypeMin): Add InternalError. (GetTypeMax): Add InternalError. * gm2-compiler/M2System.mod (InitSystem): Call PutProcedureNoReturn on Throw. * gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree declare as noreturn. fn_rethrow_tree declare as noreturn. * gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute. * gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute. * gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE. * gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute. * gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute. * gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute. (Halt): Ditto. (HaltC): Ditto. (ErrorMessage): Ditto. (AssignmentException): Ditto. (ReturnException): Ditto. (IncException): Ditto. (DecException): Ditto. (InclException): Ditto. (ExclException): Ditto. (ShiftException): Ditto. (RotateException): Ditto. (StaticArraySubscriptException): Ditto. (DynamicArraySubscriptException): Ditto. (ForLoopBeginException): Ditto. (ForLoopToException): Ditto. (ForLoopEndException): Ditto. (PointerNilException): Ditto. (NoReturnException): Ditto. (CaseException): Ditto. (WholeNonPosDivException): Ditto. (WholeNonPosModException): Ditto. (WholeZeroDivException): Ditto. (WholeZeroRemException): Ditto. (WholeValueException): Ditto. (RealValueException): Ditto. (ParameterException): Ditto. (NoException): Ditto. * gm2-libs-iso/SYSTEM.def (THROW): Ditto. * gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE. * gm2-libs-min/M2RTS.def: Add noreturn attribute. * gm2-libs/FIO.mod (BufferedRead): Return -1. (getFileName): Return NIL. (getFileNameLength): Return 0. * gm2-libs/M2RTS.def (HaltC): Add noreturn attribute. (AssignmentException): Ditto. (ReturnException): Ditto. (IncException): Ditto. (DecException): Ditto. (InclException): Ditto. (ExclException): Ditto. (ShiftException): Ditto. (RotateException): Ditto. (StaticArraySubscriptException): Ditto. (DynamicArraySubscriptException): Ditto. (ForLoopBeginException): Ditto. (ForLoopToException): Ditto. (ForLoopEndException): Ditto. (PointerNilException): Ditto. (NoReturnException): Ditto. (CaseException): Ditto. (WholeNonPosDivException): Ditto. (WholeNonPosModException): Ditto. (WholeZeroDivException): Ditto. (WholeZeroRemException): Ditto. (WholeValueException): Ditto. (RealValueException): Ditto. (ParameterException): Ditto. (NoException): Ditto. * gm2-libs/RTExceptions.def (Raise): Ditto. * gm2-libs/RTExceptions.mod (InvokeHandler): Ditto. * gm2-libs/SYSTEM.def (THROW): Ditto. * m2.flex (_M2_m2flex_fini): Remamed to... (_M2_m2flex_finish): ...here. * mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to... (_M2_Builtins_fini): ...this. * mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to... (_M2_RTco_fini): ...this. * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to... (_M2_SYSTEM_fini): ...this. * mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to... (_M2_Selective_fini): ...this. * mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add parameters. (_M2_SysExceptions_finish): Remamed to... (_M2_SysExceptions_fini): ...this. * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to... (_M2_UnixArgs_fini): ...this. (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter to _M2_UnixArgs_fini. * mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to... (_M2_dtoa_fini): ...this. * mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to... (_M2_errno_fini): ...this. * mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to... (_M2_ldtoa_fini): ...this. * mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters. (_M2_termios_finish): Remamed to... (_M2_termios_fini): ...this. * mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters. (_M2_wrapc_finish): Remamed to... (_M2_wrapc_fini): ...this. * mc-boot/GASCII.c: Rebuild. * mc-boot/GArgs.c: Rebuild. * mc-boot/GAssertion.c: Rebuild. * mc-boot/GBreak.c: Rebuild. * mc-boot/GCmdArgs.c: Rebuild. * mc-boot/GDebug.c: Rebuild. * mc-boot/GDynamicStrings.c: Rebuild. * mc-boot/GEnvironment.c: Rebuild. * mc-boot/GFIO.c: Rebuild. * mc-boot/GFormatStrings.c: Rebuild. * mc-boot/GFpuIO.c: Rebuild. * mc-boot/GIO.c: Rebuild. * mc-boot/GIndexing.c: Rebuild. * mc-boot/GM2Dependent.c: Rebuild. * mc-boot/GM2EXCEPTION.c: Rebuild. * mc-boot/GM2RTS.c: Rebuild. * mc-boot/GM2RTS.h: Rebuild. * mc-boot/GMemUtils.c: Rebuild. * mc-boot/GNumberIO.c: Rebuild. * mc-boot/GPushBackInput.c: Rebuild. * mc-boot/GRTExceptions.c: Rebuild. * mc-boot/GRTExceptions.h: Rebuild. * mc-boot/GRTco.h: Rebuild. * mc-boot/GRTint.c: Rebuild. * mc-boot/GSArgs.c: Rebuild. * mc-boot/GSFIO.c: Rebuild. * mc-boot/GStdIO.c: Rebuild. * mc-boot/GStorage.c: Rebuild. * mc-boot/GStrCase.c: Rebuild. * mc-boot/GStrIO.c: Rebuild. * mc-boot/GStrLib.c: Rebuild. * mc-boot/GStringConvert.c: Rebuild. * mc-boot/GSysStorage.c: Rebuild. * mc-boot/GTimeString.c: Rebuild. * mc-boot/Galists.c: Rebuild. * mc-boot/Gdecl.c: Rebuild. * mc-boot/Gkeyc.c: Rebuild. * mc-boot/Glists.c: Rebuild. * mc-boot/GmcComment.c: Rebuild. * mc-boot/GmcComp.c: Rebuild. * mc-boot/GmcDebug.c: Rebuild. * mc-boot/GmcError.c: Rebuild. * mc-boot/GmcFileName.c: Rebuild. * mc-boot/GmcLexBuf.c: Rebuild. * mc-boot/GmcMetaError.c: Rebuild. * mc-boot/GmcOptions.c: Rebuild. * mc-boot/GmcPreprocess.c: Rebuild. * mc-boot/GmcPretty.c: Rebuild. * mc-boot/GmcPrintf.c: Rebuild. * mc-boot/GmcQuiet.c: Rebuild. * mc-boot/GmcReserved.c: Rebuild. * mc-boot/GmcSearch.c: Rebuild. * mc-boot/GmcStack.c: Rebuild. * mc-boot/GmcStream.c: Rebuild. * mc-boot/Gmcp1.c: Rebuild. * mc-boot/Gmcp2.c: Rebuild. * mc-boot/Gmcp3.c: Rebuild. * mc-boot/Gmcp4.c: Rebuild. * mc-boot/Gmcp5.c: Rebuild. * mc-boot/GnameKey.c: Rebuild. * mc-boot/GsymbolKey.c: Rebuild. * mc-boot/Gtop.c: Rebuild. * mc-boot/Gvarargs.c: Rebuild. * mc-boot/Gwlists.c: Rebuild. * mc-boot/GRTentity.h: New file. * mc/decl.mod (scaffoldStatic): Change _finish to _fini. * mc/mc.flex (_M2_mcflex_fini): New function. (_M2_mcflex_finish): Remove function. * tools-src/mklink.c (GenerateFinishCalls): Change _finish to _fini. (GeneratePrototypes): Change _finish to _fini. 2023-01-31 Gaius Mulley * Make-lang.in (gm2-libs.texi-check): Rename m2/gm2-libs-pim to m2/gm2-libs-log. * gm2-libs-pim/BitBlockOps.def: Moved to... * gm2-libs-log/BitBlockOps.def: ...here. * gm2-libs-pim/BitBlockOps.mod: Moved to... * gm2-libs-log/BitBlockOps.mod: ...here. * gm2-libs-pim/BitByteOps.def: Moved to... * gm2-libs-log/BitByteOps.def: ...here. * gm2-libs-pim/BitByteOps.mod: Moved to... * gm2-libs-log/BitByteOps.mod: ...here. * gm2-libs-pim/BitWordOps.def: Moved to... * gm2-libs-log/BitWordOps.def: ...here. * gm2-libs-pim/BitWordOps.mod: Moved to... * gm2-libs-log/BitWordOps.mod: ...here. * gm2-libs-pim/BlockOps.def: Moved to... * gm2-libs-log/BlockOps.def: ...here. * gm2-libs-pim/BlockOps.mod: Moved to... * gm2-libs-log/BlockOps.mod: ...here. * gm2-libs-pim/Break.c: Moved to... * gm2-libs-log/Break.c: ...here. * gm2-libs-pim/Break.def: Moved to... * gm2-libs-log/Break.def: ...here. * gm2-libs-pim/CardinalIO.def: Moved to... * gm2-libs-log/CardinalIO.def: ...here. * gm2-libs-pim/CardinalIO.mod: Moved to... * gm2-libs-log/CardinalIO.mod: ...here. * gm2-libs-pim/Conversions.def: Moved to... * gm2-libs-log/Conversions.def: ...here. * gm2-libs-pim/Conversions.mod: Moved to... * gm2-libs-log/Conversions.mod: ...here. * gm2-libs-pim/DebugPMD.def: Moved to... * gm2-libs-log/DebugPMD.def: ...here. * gm2-libs-pim/DebugPMD.mod: Moved to... * gm2-libs-log/DebugPMD.mod: ...here. * gm2-libs-pim/DebugTrace.def: Moved to... * gm2-libs-log/DebugTrace.def: ...here. * gm2-libs-pim/DebugTrace.mod: Moved to... * gm2-libs-log/DebugTrace.mod: ...here. * gm2-libs-pim/Delay.def: Moved to... * gm2-libs-log/Delay.def: ...here. * gm2-libs-pim/Delay.mod: Moved to... * gm2-libs-log/Delay.mod: ...here. * gm2-libs-pim/Display.def: Moved to... * gm2-libs-log/Display.def: ...here. * gm2-libs-pim/Display.mod: Moved to... * gm2-libs-log/Display.mod: ...here. * gm2-libs-pim/ErrorCode.def: Moved to... * gm2-libs-log/ErrorCode.def: ...here. * gm2-libs-pim/ErrorCode.mod: Moved to... * gm2-libs-log/ErrorCode.mod: ...here. * gm2-libs-pim/FileSystem.def: Moved to... * gm2-libs-log/FileSystem.def: ...here. * gm2-libs-pim/FileSystem.mod: Moved to... * gm2-libs-log/FileSystem.mod: ...here. * gm2-libs-pim/FloatingUtilities.def: Moved to... * gm2-libs-log/FloatingUtilities.def: ...here. * gm2-libs-pim/FloatingUtilities.mod: Moved to... * gm2-libs-log/FloatingUtilities.mod: ...here. * gm2-libs-pim/InOut.def: Moved to... * gm2-libs-log/InOut.def: ...here. * gm2-libs-pim/InOut.mod: Moved to... * gm2-libs-log/InOut.mod: ...here. * gm2-libs-pim/Keyboard.def: Moved to... * gm2-libs-log/Keyboard.def: ...here. * gm2-libs-pim/Keyboard.mod: Moved to... * gm2-libs-log/Keyboard.mod: ...here. * gm2-libs-pim/LongIO.def: Moved to... * gm2-libs-log/LongIO.def: ...here. * gm2-libs-pim/LongIO.mod: Moved to... * gm2-libs-log/LongIO.mod: ...here. * gm2-libs-pim/NumberConversion.def: Moved to... * gm2-libs-log/NumberConversion.def: ...here. * gm2-libs-pim/NumberConversion.mod: Moved to... * gm2-libs-log/NumberConversion.mod: ...here. * gm2-libs-pim/README.texi: Moved to... * gm2-libs-log/README.texi: ...here. * gm2-libs-pim/Random.def: Moved to... * gm2-libs-log/Random.def: ...here. * gm2-libs-pim/Random.mod: Moved to... * gm2-libs-log/Random.mod: ...here. * gm2-libs-pim/RealConversions.def: Moved to... * gm2-libs-log/RealConversions.def: ...here. * gm2-libs-pim/RealConversions.mod: Moved to... * gm2-libs-log/RealConversions.mod: ...here. * gm2-libs-pim/RealInOut.def: Moved to... * gm2-libs-log/RealInOut.def: ...here. * gm2-libs-pim/RealInOut.mod: Moved to... * gm2-libs-log/RealInOut.mod: ...here. * gm2-libs-pim/Strings.def: Moved to... * gm2-libs-log/Strings.def: ...here. * gm2-libs-pim/Strings.mod: Moved to... * gm2-libs-log/Strings.mod: ...here. * gm2-libs-pim/Termbase.def: Moved to... * gm2-libs-log/Termbase.def: ...here. * gm2-libs-pim/Termbase.mod: Moved to... * gm2-libs-log/Termbase.mod: ...here. * gm2-libs-pim/Terminal.def: Moved to... * gm2-libs-log/Terminal.def: ...here. * gm2-libs-pim/Terminal.mod: Moved to... * gm2-libs-log/Terminal.mod: ...here. * gm2-libs-pim/TimeDate.def: Moved to... * gm2-libs-log/TimeDate.def: ...here. * gm2-libs-pim/TimeDate.mod: Moved to... * gm2-libs-log/TimeDate.mod: ...here. 2023-01-28 Iain Sandoe * lang.opt: Claim Wreturn-type. 2023-01-27 Gaius Mulley * gm2-compiler/M2Comp.mod: Import MetaString0. (ExamineCompilationUnit): New variable Message. Create and format error string. * gm2-compiler/M2LexBuf.mod: New variable SeenEof. (GetNonEofToken): New procedure. (Init): Set SeenEof to FALSE. (GetToken): Use GetNonEofToken instead of calls to m2flex.GetToken and GetToken. (AddTok): Detect eoftok and set SeenEof. 2023-01-27 Gaius Mulley * gm2-compiler/M2Options.def: Export GetMQ, SetMQ. * gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName): Test NewDir against NIL. Test Dumpdir against NIL. Test GetMD () against NIL. Test GetMMD () against NIL. Test GetMQ () against NIL. Test GetObj () against NIL. Test tempfile against NIL. * gm2-compiler/P2SymBuild.def: Export BuildNoReturnAttribute. 2023-01-27 Iain Sandoe PR modula2/108555 PR modula2/108182 PR modula2/102343 * gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C or CL_DRIVER. (gm2_langhook_init_options): Handle options that we want to pass to the preprocessor. * lang-specs.h: Pass -B and -save-temps to regular compile lines. * lang.opt: Add C and Driver options that Modula-2 intercepts for internal use. Reorder options into two sections and to collate. 2023-01-26 Gaius Mulley * gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn. (DeclareProcedureToGccWholeProgram): New variable declared and set returnType. Pass returnType to BuildEndFunctionDeclaration. Extra parameter IsProcedureNoReturn passed to BuildEndFunctionDeclaration. * gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct scaffold comment and add extra return 0. * gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute. (ProcedureHeading): Process EndBuildFormalParameters before parsing AttributeNoReturn. (DefProcedureHeading): Process EndBuildFormalParameters before parsing AttributeNoReturn. (AttributeNoReturn): Call BuildNoReturnAttribute. * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New procedure. * gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New procedure. * gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected comment. (PutProcedureNoReturn): New procedure. (IsProcedureNoReturn): New procedure function. * gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn new field. (MakeProcedure): Initialize IsNoReturn to FALSE. (PutProcedureNoReturn): New procedure. (IsProcedureNoReturn): New procedure function. * gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration): Add extra parameter isnoreturn. Set TREE_THIS_VOLATILE to isnoreturn. * gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add extra parameter isnoreturn. * gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add extra parameter isnoreturn. * gm2-gcc/m2except.cc (m2except_InitExceptions): Change all function decl to pass an extra parameter isnoreturn. 2023-01-26 Gaius Mulley * m2.flex (splitSlashStar): Fix comment so that /* does not appear inside the comment. 2023-01-26 Iain Sandoe PR modula2/108553 * gm2-lang.cc (gm2_langhook_init_options): Remove debug code. 2023-01-26 Gaius Mulley * Make-lang.in (m2/gm2config.h): Rewrite rule to be dependent upon m2/gm2config.aci. (m2/gm2config.aci): Newrule. * configure.ac (AC_CONFIG_HEADERS): Change destination to gm2config.aci. * configure: Regenerate. * gm2-libs/config-host: Regenerate. * gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment out. * gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove Dim. (StartBuildWith): Call BuildStmtNoteTok. (BuildStmtNoteTok): New procedure. (BuildStmtNote): Re-implement re-factor into two procedures and call BuildStmtNoteTok. * gm2config.h.in: Remove. * gm2config.aci.in: New file. 2023-01-25 Iain Sandoe PR modula2/102343 PR modula2/108182 * gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs. * gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD, SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir, GetDumpDir):New. * gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD, SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir, GetDumpDir):New. * gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to indicate the main file. * gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs, handle MD, MMD and MQ options. * gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly, M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD, M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ, M2Options_SetObj, M2Options_GetObj): New. * gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre- processor-only jobs. * gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands. (gm2_langhook_option_lang_mask): Claim C and Driver options so that we can intercept them for building pre-processor commands. (gm2_langhook_init_options): Collect the preprocessor line here. Save options that have different actions for preprocessor and compile commands. (gm2_langhook_handle_option): Only handle the modula-2 options here. (gm2_langhook_post_options): Do not create a back-end for pre- processor-only jobs. * gm2spec.cc (lang_specific_driver): Ignore PCH options, append a scaffold-main for cases where we are building a main module with -c. * lang-specs.h: Revise to handle preprocessor-only jobs and to consume pre-processed files. * lang.opt: Remove Driver and C options copies (we claim these separately). 2023-01-24 Co-Authored by: Iain Sandoe * Make-lang.in (GM2-COMP-BOOT-DEFS): Add DynamicStringPath.def. (GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod. (GM2-COMP-DEFS): Add DynamicStringPath.def. (GM2-COMP-MODS): Add DynamicStringPath.mod. ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into multiple -I components. ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto. ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto. * gm2-compiler/M2Options.mod: Import DynamicStringPath. (SetSearchPath): Reimplement using DynamicStringPath procedures. * gm2-compiler/M2Search.def (InitSearchPath): Remove. (PrependSearchPath): Remove. * gm2-compiler/M2Search.mod (SFIO): Remove import. (DynamicStringPath): Add import. (Directory): Remove. (UserPath): Remove. (InitialPath): Remove. (InitSearchPath): Remove. (PrependSearchPath): Remove. (FindSourceFile): Re-implement. (FindSourceDefFile): Re-implement. (FindSourceModFile): Re-implement. * gm2-gcc/init.cc (_M2_DynamicStringPath_init): New prototype. (init_FrontEndInit): Call _M2_DynamicStringPath_init. * tools-src/makeSystem: Allow multiple -I paths. * gm2-compiler/DynamicStringPath.def: New file. * gm2-compiler/DynamicStringPath.mod: New file. * gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add prototype. 2023-01-24 Gaius Mulley * m2.flex (cpreprocessor): Add temporary variable which is initialized to 0. (commentCLevel): New variable. (endOfCComment): New function. (splitSlashStar): New function to split /* into / and * tokens. (COMMENTC): New flex state. ("/*"): New rule to test whether we should treat /* as a single token or as two tokens. (.): New rule to skip a character. (\n.*): New rule to consume the line. ("*/"): New rule to call endOfCComment. 2023-01-24 Gaius Mulley * gm2-libs-iso/RTco.def: Import RTentity. Declare RTco as a definition for C module. 2023-01-23 Iain Sandoe PR modula2/108182 PR modula2/108480 * Make-lang.in: Pass libsubdir to the language init build. * gm2-lang.cc (INCLUDE_VECTOR): Define. (add_one_import_path): New. (add_m2_import_paths): New. (gm2_langhook_post_options): Arrange to add the include paths (and add the system ones) in the same order as C uses. * gm2spec.cc (build_archive_path): Remove. (add_default_combination): Remove. (add_default_archives): Remove. (add_default_libs): We no longer need a '-L' option, just emit the -l and each library in use. (build_include_path): Remove. (add_include): Remove. (add_default_includes): Remove. (library_installed): Remove. (check_valid_library): Remove. (check_valid_list): Remove. (convert_abbreviation): Diagnose unhandled cases. (lang_specific_driver): Skip options where we will add back a validated version. * lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not in use. Revise the cc1gm2 spec to omit mentioning options that are handled in the c pre-processor line. * lang.opt: Allow preprocessing and path options as input to the cc1gm2 invocation, so that they can be passed to the preprocessor invocation. 2023-01-23 Iain Sandoe PR modula2/108405 * gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for extra space that is divisible by common OS pagesizes. 2023-01-20 Gaius Mulley * gm2-libs/Args.mod (GetArg): Check index before accessing array. * gm2-libs/M2Dependent.mod (toCString): Check index before accessing array. * mc-boot/GArgs.c: Rebuilt. * mc-boot/GM2Dependent.c: Rebuilt. * mc-boot/Gkeyc.c: Rebuilt. * mc/keyc.mod (seenUIntMin): Initialize once. (seenUIntMax): Initialize once. (checkLimits): Only test seenUIntMin and seenUIntMax once. * pge-boot/GArgs.c: Rebuilt. * pge-boot/GM2Dependent.c: Rebuilt. 2023-01-20 Gaius Mulley * gm2-gcc/m2statement.cc (gm2_gimplify_function_node): Remove. * gm2-libs/DynamicStrings.mod (Equal): Remove dead code. * m2.flex ("<*"): Add {} for else statement. * m2pp.cc (hextree): Add conditional #ifdef DEBUGGING. * mc-boot/GDynamicStrings.c: Rebuild. * pge-boot/GDynamicStrings.c: Rebuild. * pge-boot/GFIO.c: Rebuild. * pge-boot/GIndexing.c: Rebuild. * pge-boot/GM2EXCEPTION.c: Rebuild. * pge-boot/GM2RTS.c: Rebuild. * pge-boot/GNameKey.c: Rebuild. * pge-boot/GPushBackInput.c: Rebuild. * pge-boot/GRTExceptions.c: Rebuild. * pge-boot/GStdIO.c: Rebuild. * pge-boot/GSymbolKey.c: Rebuild. * pge-boot/GSysStorage.c: Rebuild. 2023-01-17 Gaius Mulley * mc-boot/GM2RTS.c: Rebuilt. * mc-boot/GM2RTS.h: Rebuilt. * mc-boot/Gdecl.c: Rebuilt. * mc-boot/GmcOptions.c: Rebuilt. * mc/mcOptions.mod (displayVersion): Split first printf into three components 2023-01-17 Gaius Mulley * gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename. (HaltC): New procedure declaration. (ErrorMessage): Parameter file renamed to filename. * gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to filename. (HaltC): New procedure implementation. (ErrorStringC): New procedure implementation. (ErrorMessageC): New procedure implementation. * gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename. (HaltC): New procedure declaration. (ErrorMessage): Parameter file renamed to filename. * gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename. (HaltC): New procedure implementation. (ErrorStringC): New procedure implementation. (ErrorMessageC): New procedure implementation. 2023-01-16 Gaius Mulley * mc-boot-ch/Glibc.c (libc_time): New function. (libc_localtime): New function. * mc-boot/GDynamicStrings.c: Regenerate. * mc-boot/GFIO.c: Regenerate. * mc-boot/GFormatStrings.c: Regenerate. * mc-boot/GIndexing.c: Regenerate. * mc-boot/GM2Dependent.c: Regenerate. * mc-boot/GM2EXCEPTION.c: Regenerate. * mc-boot/GPushBackInput.c: Regenerate. * mc-boot/GRTExceptions.c: Regenerate. * mc-boot/GRTint.c: Regenerate. * mc-boot/GStdIO.c: Regenerate. * mc-boot/GStringConvert.c: Regenerate. * mc-boot/GSysStorage.c: Regenerate. * mc-boot/Gdecl.c: Regenerate. * mc-boot/GmcComment.c: Regenerate. * mc-boot/GmcComp.c: Regenerate. * mc-boot/GmcDebug.c: Regenerate. * mc-boot/GmcMetaError.c: Regenerate. * mc-boot/GmcOptions.c: Regenerate. * mc-boot/GmcStack.c: Regenerate. * mc-boot/GnameKey.c: Regenerate. * mc-boot/GsymbolKey.c: Regenerate. * mc-boot/Gkeyc.c: Regenerate. * mc/decl.mod (putFieldRecord): Change NulName to NulKey and fix type comparision. * mc/mcOptions.mod (YEAR): Remove. (getYear): New procedure function. (displayVersion): Use result from getYear instead of YEAR. Emit boilerplate for GPL v3. (gplBody): Use result from getYear instead of YEAR. (glplBody): Use result from getYear instead of YEAR. 2023-01-16 Gaius Mulley * gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type against NulSym and call MetaErrorT1 if necessary. (AssignUnboundedNonVar): Check Type against NulSym and call MetaErrorT1 if necessary. (BuildDesignatorPointer): Check Type1 against NulSym and call MetaErrorT1 if necessary. 2023-01-16 Gaius Mulley * mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3. (YEAR) set to 2023. 2023-01-15 Gaius Mulley * gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment. Remove dead code. * gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter. * gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter. Create and push virtual token. (PopBooltok): New procedure. (PushBooltok): New procedure. (PushBool): Re-implement using PushBooltok. (PopBool): Re-implement using PopBooltok. * gm2-compiler/P3Build.bnf (ConstFactor): Record token position of NOT. (Factor): Record token position of NOT. * gm2-compiler/PHBuild.bnf (ConstFactor): Record token position of NOT. (Relation): Push token position. (UnaryOrConstTerm): Push token position. (AddOperator): Push token position. (MulOperator): Push token position. 2023-01-13 Iain Sandoe * gm2-gcc/m2options.h (M2Options_SetVerbose): Export the function. * gm2-lang.cc: Handle OPT_v, passing it to the compiler. * lang-specs.h: Pass -v to cc1gm2. 2023-01-13 Gaius Mulley * mc-boot-ch/GRTco.c (RTco_select): Add return 0. * pge-boot/GRTco.c (RTco_select): Add return 0. 2023-01-10 Gaius Mulley * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add m2/gm2-libs/gm2-libs-host.h dependency. (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add m2/gm2-libs/gm2-libs-host.h dependency. 2023-01-10 Gaius Mulley * Make-lang.in (GM2_1): Change -B path to m2/stage1. ($(objdir)/m2/images/gnu.eps): Check and create dest dir if necessary. (gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim, m2/gm2-libs-iso and m2/gm2-libs if necessary. ($(objdir)/m2/gm2-compiler-boot): Remove. ($(objdir)/m2/gm2-libs-boot): Remove. ($(objdir)/m2/gm2-libs-libiberty): Remove. ($(objdir)/m2/gm2-libiberty): Remove. ($(objdir)/m2/gm2-gcc): Remove. ($(objdir)/m2/gm2-compiler): Remove. ($(objdir)/m2/gm2-libs): Remove. ($(objdir)/m2/gm2-libs-iso): Remove. ($(objdir)/m2/gm2-libs-min): Remove. ($(objdir)/m2/gm2-compiler-paranoid): Remove. ($(objdir)/m2/gm2-libs-paranoid): Remove. ($(objdir)/m2/gm2-compiler-verify): Remove. ($(objdir)/m2/boot-bin): Remove. ($(objdir)/m2/gm2-libs-pim): Remove. ($(objdir)/m2/gm2-libs-coroutines): Remove. (stage1/m2): Remove. (stage2/m2): Remove. (stage3/m2): Remove. (m2.stageprofile): New rule. (m2.stagefeedback): New rule. (cc1gm2$(exeext)): Change dependent name. (m2/stage2/cc1gm2$(exeext)): Change dependent name. Check and create dest dir. (m2/stage1/cc1gm2$(exeext)): Check and create dest dir if necessary. (m2/gm2-gcc/%.o): Ditto. (m2/gm2-gcc/rtegraph.o): Ditto. (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto. (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto. (m2/mc-boot): Ditto. (m2/mc-boot-ch): Ditto. (m2/gm2-libs-boot): Ditto. (m2/gm2-compiler-boot): Ditto. (m2/gm2-compiler): Ditto. (m2/gm2-libiberty): Ditto. (m2/gm2-compiler): Ditto. (m2/gm2-libs-iso): Ditto. (m2/gm2-libs): Ditto. (m2/gm2-libs-min): Ditto. (m2/gm2-libs-coroutines): Ditto. (m2/boot-bin): Ditto. (m2/pge-boot): Ditto. (m2/pge-boot): Ditto. * Make-maintainer.in (m2/gm2-ppg-boot): Check and create dest dir if necessary. (m2): Ditto. (m2/gm2-ppg-boot): Ditto. (m2/gm2-pg-boot): Ditto. (m2/gm2-auto): Ditto. (m2/gm2-pg-boot): Ditto. (m2/gm2-pge-boot): Ditto. ($(objdir)/plugin): Ditto. ($(objdir)/m2/mc-boot-ch): Ditto. ($(objdir)/m2/mc-boot-gen): Ditto. (m2/boot-bin): Ditto. (m2/mc): Ditto. (m2/mc-obj): Ditto. ($(objdir)/m2/gm2-ppg-boot): Ditto. ($(objdir)/m2/gm2-pg-boot): Ditto. ($(objdir)/m2/gm2-pge-boot): Ditto. (m2/mc-boot-gen): Ditto. (m2/m2obj3): Ditto. (m2/gm2-libs-paranoid): Ditto. (m2/gm2-compiler-paranoid): Ditto. (m2/gm2-libs-paranoid): Ditto. (m2/gm2-compiler-paranoid): Ditto. (m2/gm2-libs-paranoid): Ditto. (m2/gm2-compiler-paranoid): Ditto. * config-lang.in (m2/gm2-compiler-boot): Remove mkdir. (m2/gm2-libs-boot): Ditto. (m2/gm2-ici-boot): Ditto. (m2/gm2-libiberty): Ditto. (m2/gm2-gcc): Ditto. (m2/gm2-compiler): Ditto. (m2/gm2-libs): Ditto. (m2/gm2-libs-iso): Ditto. (m2/gm2-compiler-paranoid): Ditto. (m2/gm2-libs-paranoid): Ditto. (m2/gm2-compiler-verify): Ditto. (m2/boot-bin): Ditto. (m2/gm2-libs-pim): Ditto. (m2/gm2-libs-coroutines): Ditto. (m2/gm2-libs-min): Ditto. (m2/pge-boot): Ditto. (plugin): Ditto. (stage1/m2): Ditto. (stage2/m2): Ditto. (stage3/m2): Ditto. (stage4/m2): Ditto. (m2/gm2-auto): Ditto. (m2/gm2-pg-boot): Ditto. (m2/gm2-pge-boot): Ditto. (m2/gm2-ppg-boot): Ditto. (m2/mc-boot): Ditto. (m2/mc-boot-ch): Ditto. (m2/mc-boot-gen): Ditto. 2023-01-09 Gaius Mulley * Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h. * gm2-libs/config-host: Regenerate. 2023-01-07 Iain Sandoe * gm2-libs-min/libc.c (abort): Update declaration to match the expected form, add no-return attribute. (exit): Add no-return attribute. 2023-01-05 Iain Sandoe PR modula2/107631 * gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl, significand, significandf, significandl. * gm2-libs/Builtins.def (significand): Likewise. * gm2-libs/Builtins.mod: Likewise. * target-independent/Builtins.texi: Likewise. * gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and ilogb*(). * gm2-libs-iso/LowReal.mod: Likewise. * gm2-libs-iso/LowShort.mod: Likewise. 2023-01-05 Gaius Mulley * gm2-libs-min/M2RTS.def (ConstructModules): New procedure declaration. (DeconstructModules): New procedure declaration. * gm2-libs-min/M2RTS.mod (ConstructModules): New procedure dummy implementation. (DeconstructModules): New procedure dummy implementation. 2023-01-05 Iain Sandoe * gm2spec.cc (lang_specific_driver): Handle static-libgm2. * lang.opt: Add static-libgm2. 2023-01-05 Iain Sandoe * gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to the target driver if the linker does not support Bstatic/dynamic. 2023-01-04 Iain Sandoe PR modula2/108183 * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use an extern "C" function with 'constructor' attribute. * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise. * gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise. 2023-01-04 Iain Sandoe PR modula2/108259 * gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module registration constructors visible. 2023-01-04 Iain Sandoe * Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also use the configured tools for texi -> dvi and texi -> pdf. 2023-01-01 Iain Sandoe Gaius Mulley PR modula2/108183 * gm2-compiler/M2GCCDeclare.mod: Module registration constructors are externs to the builder of m2_link. 2022-12-31 Rainer Orth Iain Sandoe PR modula2/107612 * Make-lang.in (soext): Use .dylib for Darwin. (PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append -nodefaultlibs to suppress the linking of libstdc++. Use INCINTL in compile lines for the plugin. 2022-12-21 Jakub Jelinek PR modula2/108153 * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER. 2022-12-19 Jakub Jelinek * gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf, m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error): Call functions with "%s", message rather than just message, so that % chars in message aren't treated as format specifiers. 2022-12-19 Jakub Jelinek PR modula2/108147 * gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf): Comment out prototypes with varargs. * gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf, m2linemap_NoteAtf): No longer varargs. * gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a non-varargs wrapper around ... (m2linemap_ErrorAtf_1): ... this. New static function. (m2linemap_WarningAtf): Turned into a non-varargs wrapper around ... (m2linemap_WarningAtf_1): ... this. New static function. (m2linemap_NoteAtf): Turned into a non-varargs wrapper around ... (m2linemap_NoteAtf_1): ... this. New static function. 2022-12-15 Gaius Mulley * configure.ac: Stop probing for realpath. * tools-src/calcpath: Break dependency on realpath, cut and echo. * configure: Rebuilt. 2022-12-15 Gaius Mulley * gm2config.h.in: Rebuilt. 2022-12-14 Gaius Mulley * COPYING.FDL: New file. * COPYING.RUNTIME: New file. * COPYING3: New file. * COPYING3.LIB: New file. * Make-lang.in: New file. * Make-maintainer.in: New file. * NEWS: New file. * README: New file. * config-lang.in: New file. * config-make.in: New file. * configure.ac: New file. * gm2-compiler/CLexBuf.def: New file. * gm2-compiler/CLexBuf.mod: New file. * gm2-compiler/FifoQueue.def: New file. * gm2-compiler/FifoQueue.mod: New file. * gm2-compiler/Lists.def: New file. * gm2-compiler/Lists.mod: New file. * gm2-compiler/M2ALU.def: New file. * gm2-compiler/M2ALU.mod: New file. * gm2-compiler/M2AsmUtil.def: New file. * gm2-compiler/M2AsmUtil.mod: New file. * gm2-compiler/M2Base.def: New file. * gm2-compiler/M2Base.mod: New file. * gm2-compiler/M2BasicBlock.def: New file. * gm2-compiler/M2BasicBlock.mod: New file. * gm2-compiler/M2Batch.def: New file. * gm2-compiler/M2Batch.mod: New file. * gm2-compiler/M2Bitset.def: New file. * gm2-compiler/M2Bitset.mod: New file. * gm2-compiler/M2CaseList.def: New file. * gm2-compiler/M2CaseList.mod: New file. * gm2-compiler/M2Check.def: New file. * gm2-compiler/M2Check.mod: New file. * gm2-compiler/M2Code.def: New file. * gm2-compiler/M2Code.mod: New file. * gm2-compiler/M2ColorString.def: New file. * gm2-compiler/M2ColorString.mod: New file. * gm2-compiler/M2Comp.def: New file. * gm2-compiler/M2Comp.mod: New file. * gm2-compiler/M2Const.def: New file. * gm2-compiler/M2Const.mod: New file. * gm2-compiler/M2Debug.def: New file. * gm2-compiler/M2Debug.mod: New file. * gm2-compiler/M2DebugStack.def: New file. * gm2-compiler/M2DebugStack.mod: New file. * gm2-compiler/M2Defaults.def: New file. * gm2-compiler/M2Defaults.mod: New file. * gm2-compiler/M2DriverOptions.def: New file. * gm2-compiler/M2DriverOptions.mod: New file. * gm2-compiler/M2Emit.def: New file. * gm2-compiler/M2Emit.mod: New file. * gm2-compiler/M2Error.def: New file. * gm2-compiler/M2Error.mod: New file. * gm2-compiler/M2EvalSym.def: New file. * gm2-compiler/M2FileName.def: New file. * gm2-compiler/M2FileName.mod: New file. * gm2-compiler/M2GCCDeclare.def: New file. * gm2-compiler/M2GCCDeclare.mod: New file. * gm2-compiler/M2GenGCC.def: New file. * gm2-compiler/M2GenGCC.mod: New file. * gm2-compiler/M2Graph.def: New file. * gm2-compiler/M2Graph.mod: New file. * gm2-compiler/M2Lex.def: New file. * gm2-compiler/M2Lex.mod: New file. * gm2-compiler/M2LexBuf.def: New file. * gm2-compiler/M2LexBuf.mod: New file. * gm2-compiler/M2MetaError.def: New file. * gm2-compiler/M2MetaError.mod: New file. * gm2-compiler/M2Optimize.def: New file. * gm2-compiler/M2Optimize.mod: New file. * gm2-compiler/M2Options.def: New file. * gm2-compiler/M2Options.mod: New file. * gm2-compiler/M2Pass.def: New file. * gm2-compiler/M2Pass.mod: New file. * gm2-compiler/M2Preprocess.def: New file. * gm2-compiler/M2Preprocess.mod: New file. * gm2-compiler/M2Printf.def: New file. * gm2-compiler/M2Printf.mod: New file. * gm2-compiler/M2Quads.def: New file. * gm2-compiler/M2Quads.mod: New file. * gm2-compiler/M2Quiet.def: New file. * gm2-compiler/M2Quiet.mod: New file. * gm2-compiler/M2Range.def: New file. * gm2-compiler/M2Range.mod: New file. * gm2-compiler/M2Reserved.def: New file. * gm2-compiler/M2Reserved.mod: New file. * gm2-compiler/M2SSA.def: New file. * gm2-compiler/M2SSA.mod: New file. * gm2-compiler/M2Scaffold.def: New file. * gm2-compiler/M2Scaffold.mod: New file. * gm2-compiler/M2Scope.def: New file. * gm2-compiler/M2Scope.mod: New file. * gm2-compiler/M2Search.def: New file. * gm2-compiler/M2Search.mod: New file. * gm2-compiler/M2Size.def: New file. * gm2-compiler/M2Size.mod: New file. * gm2-compiler/M2StackAddress.def: New file. * gm2-compiler/M2StackAddress.mod: New file. * gm2-compiler/M2StackWord.def: New file. * gm2-compiler/M2StackWord.mod: New file. * gm2-compiler/M2Students.def: New file. * gm2-compiler/M2Students.mod: New file. * gm2-compiler/M2Swig.def: New file. * gm2-compiler/M2Swig.mod: New file. * gm2-compiler/M2System.def: New file. * gm2-compiler/M2System.mod: New file. * gm2-compiler/M2Version.def: New file. * gm2-compiler/NameKey.def: New file. * gm2-compiler/NameKey.mod: New file. * gm2-compiler/ObjectFiles.def: New file. * gm2-compiler/ObjectFiles.mod: New file. * gm2-compiler/Output.def: New file. * gm2-compiler/Output.mod: New file. * gm2-compiler/P0SymBuild.def: New file. * gm2-compiler/P0SymBuild.mod: New file. * gm2-compiler/P0SyntaxCheck.bnf: New file. * gm2-compiler/P0SyntaxCheck.def: New file. * gm2-compiler/P1Build.bnf: New file. * gm2-compiler/P1Build.def: New file. * gm2-compiler/P1SymBuild.def: New file. * gm2-compiler/P1SymBuild.mod: New file. * gm2-compiler/P2Build.bnf: New file. * gm2-compiler/P2Build.def: New file. * gm2-compiler/P2SymBuild.def: New file. * gm2-compiler/P2SymBuild.mod: New file. * gm2-compiler/P3Build.bnf: New file. * gm2-compiler/P3Build.def: New file. * gm2-compiler/P3SymBuild.def: New file. * gm2-compiler/P3SymBuild.mod: New file. * gm2-compiler/PCBuild.bnf: New file. * gm2-compiler/PCBuild.def: New file. * gm2-compiler/PCSymBuild.def: New file. * gm2-compiler/PCSymBuild.mod: New file. * gm2-compiler/PHBuild.bnf: New file. * gm2-compiler/PHBuild.def: New file. * gm2-compiler/README: New file. * gm2-compiler/Sets.def: New file. * gm2-compiler/Sets.mod: New file. * gm2-compiler/SymbolConversion.def: New file. * gm2-compiler/SymbolConversion.mod: New file. * gm2-compiler/SymbolKey.def: New file. * gm2-compiler/SymbolKey.mod: New file. * gm2-compiler/SymbolTable.def: New file. * gm2-compiler/SymbolTable.mod: New file. * gm2-compiler/bnflex.def: New file. * gm2-compiler/bnflex.mod: New file. * gm2-compiler/cflex.def: New file. * gm2-compiler/gm2.mod: New file. * gm2-compiler/gm2lcc.mod: New file. * gm2-compiler/gm2lgen.mod: New file. * gm2-compiler/gm2lorder.mod: New file. * gm2-compiler/m2flex.def: New file. * gm2-compiler/ppg.mod: New file. * gm2-gcc/README: New file. * gm2-gcc/dynamicstrings.h: New file. * gm2-gcc/gcc-consolidation.h: New file. * gm2-gcc/init.cc: New file. * gm2-gcc/init.def: New file. * gm2-gcc/init.h: New file. * gm2-gcc/m2assert.cc: New file. * gm2-gcc/m2assert.h: New file. * gm2-gcc/m2block.cc: New file. * gm2-gcc/m2block.def: New file. * gm2-gcc/m2block.h: New file. * gm2-gcc/m2builtins.cc: New file. * gm2-gcc/m2builtins.def: New file. * gm2-gcc/m2builtins.h: New file. * gm2-gcc/m2color.cc: New file. * gm2-gcc/m2color.def: New file. * gm2-gcc/m2color.h: New file. * gm2-gcc/m2configure.cc: New file. * gm2-gcc/m2configure.def: New file. * gm2-gcc/m2configure.h: New file. * gm2-gcc/m2convert.cc: New file. * gm2-gcc/m2convert.def: New file. * gm2-gcc/m2convert.h: New file. * gm2-gcc/m2decl.cc: New file. * gm2-gcc/m2decl.def: New file. * gm2-gcc/m2decl.h: New file. * gm2-gcc/m2except.cc: New file. * gm2-gcc/m2except.def: New file. * gm2-gcc/m2except.h: New file. * gm2-gcc/m2expr.cc: New file. * gm2-gcc/m2expr.def: New file. * gm2-gcc/m2expr.h: New file. * gm2-gcc/m2linemap.cc: New file. * gm2-gcc/m2linemap.def: New file. * gm2-gcc/m2linemap.h: New file. * gm2-gcc/m2misc.cc: New file. * gm2-gcc/m2misc.def: New file. * gm2-gcc/m2misc.h: New file. * gm2-gcc/m2options.h: New file. * gm2-gcc/m2range.h: New file. * gm2-gcc/m2search.h: New file. * gm2-gcc/m2statement.cc: New file. * gm2-gcc/m2statement.def: New file. * gm2-gcc/m2statement.h: New file. * gm2-gcc/m2top.cc: New file. * gm2-gcc/m2top.def: New file. * gm2-gcc/m2top.h: New file. * gm2-gcc/m2tree.cc: New file. * gm2-gcc/m2tree.def: New file. * gm2-gcc/m2tree.h: New file. * gm2-gcc/m2treelib.cc: New file. * gm2-gcc/m2treelib.def: New file. * gm2-gcc/m2treelib.h: New file. * gm2-gcc/m2type.cc: New file. * gm2-gcc/m2type.def: New file. * gm2-gcc/m2type.h: New file. * gm2-gcc/rtegraph.cc: New file. * gm2-gcc/rtegraph.h: New file. * gm2-ici/M2Emit.mod: New file. * gm2-ici/README: New file. * gm2-ici/m2linemap.c: New file. * gm2-internals.texi: New file. * gm2-lang.cc: New file. * gm2-lang.h: New file. * gm2-libiberty/README: New file. * gm2-libiberty/choosetemp.def: New file. * gm2-libiberty/pexecute.def: New file. * gm2-libs-ch/M2LINK.c: New file. * gm2-libs-ch/README: New file. * gm2-libs-ch/RTcodummy.c: New file. * gm2-libs-ch/RTintdummy.c: New file. * gm2-libs-ch/Selective.c: New file. * gm2-libs-ch/SysExceptions.c: New file. * gm2-libs-ch/UnixArgs.cc: New file. * gm2-libs-ch/cgetopt.c: New file. * gm2-libs-ch/choosetemp.c: New file. * gm2-libs-ch/dtoa.cc: New file. * gm2-libs-ch/errno.c: New file. * gm2-libs-ch/host.c: New file. * gm2-libs-ch/ldtoa.cc: New file. * gm2-libs-ch/m2rts.h: New file. * gm2-libs-ch/termios.c: New file. * gm2-libs-ch/tools.c: New file. * gm2-libs-ch/wrapc.c: New file. * gm2-libs-ch/xlibc.c: New file. * gm2-libs-coroutines/Debug.def: New file. * gm2-libs-coroutines/Debug.mod: New file. * gm2-libs-coroutines/Executive.def: New file. * gm2-libs-coroutines/Executive.mod: New file. * gm2-libs-coroutines/KeyBoardLEDs.def: New file. * gm2-libs-coroutines/README.texi: New file. * gm2-libs-coroutines/SYSTEM.def: New file. * gm2-libs-coroutines/SYSTEM.mod: New file. * gm2-libs-coroutines/TimerHandler.def: New file. * gm2-libs-coroutines/TimerHandler.mod: New file. * gm2-libs-iso/COROUTINES.def: New file. * gm2-libs-iso/COROUTINES.mod: New file. * gm2-libs-iso/ChanConsts.def: New file. * gm2-libs-iso/ChanConsts.h: New file. * gm2-libs-iso/ChanConsts.mod: New file. * gm2-libs-iso/CharClass.def: New file. * gm2-libs-iso/CharClass.mod: New file. * gm2-libs-iso/ClientSocket.def: New file. * gm2-libs-iso/ClientSocket.mod: New file. * gm2-libs-iso/ComplexMath.def: New file. * gm2-libs-iso/ComplexMath.mod: New file. * gm2-libs-iso/ConvStringLong.def: New file. * gm2-libs-iso/ConvStringLong.mod: New file. * gm2-libs-iso/ConvStringReal.def: New file. * gm2-libs-iso/ConvStringReal.mod: New file. * gm2-libs-iso/ConvTypes.def: New file. * gm2-libs-iso/ConvTypes.mod: New file. * gm2-libs-iso/EXCEPTIONS.def: New file. * gm2-libs-iso/EXCEPTIONS.mod: New file. * gm2-libs-iso/ErrnoCategory.def: New file. * gm2-libs-iso/GeneralUserExceptions.def: New file. * gm2-libs-iso/GeneralUserExceptions.mod: New file. * gm2-libs-iso/IOChan.def: New file. * gm2-libs-iso/IOChan.mod: New file. * gm2-libs-iso/IOConsts.def: New file. * gm2-libs-iso/IOConsts.mod: New file. * gm2-libs-iso/IOLink.def: New file. * gm2-libs-iso/IOLink.mod: New file. * gm2-libs-iso/IOResult.def: New file. * gm2-libs-iso/IOResult.mod: New file. * gm2-libs-iso/LongComplexMath.def: New file. * gm2-libs-iso/LongComplexMath.mod: New file. * gm2-libs-iso/LongConv.def: New file. * gm2-libs-iso/LongConv.mod: New file. * gm2-libs-iso/LongIO.def: New file. * gm2-libs-iso/LongIO.mod: New file. * gm2-libs-iso/LongMath.def: New file. * gm2-libs-iso/LongMath.mod: New file. * gm2-libs-iso/LongStr.def: New file. * gm2-libs-iso/LongStr.mod: New file. * gm2-libs-iso/LongWholeIO.def: New file. * gm2-libs-iso/LongWholeIO.mod: New file. * gm2-libs-iso/LowLong.def: New file. * gm2-libs-iso/LowLong.mod: New file. * gm2-libs-iso/LowReal.def: New file. * gm2-libs-iso/LowReal.mod: New file. * gm2-libs-iso/LowShort.def: New file. * gm2-libs-iso/LowShort.mod: New file. * gm2-libs-iso/M2EXCEPTION.def: New file. * gm2-libs-iso/M2EXCEPTION.mod: New file. * gm2-libs-iso/M2RTS.def: New file. * gm2-libs-iso/M2RTS.mod: New file. * gm2-libs-iso/MemStream.def: New file. * gm2-libs-iso/MemStream.mod: New file. * gm2-libs-iso/Preemptive.def: New file. * gm2-libs-iso/Preemptive.mod: New file. * gm2-libs-iso/Processes.def: New file. * gm2-libs-iso/Processes.mod: New file. * gm2-libs-iso/ProgramArgs.def: New file. * gm2-libs-iso/ProgramArgs.mod: New file. * gm2-libs-iso/README.texi: New file. * gm2-libs-iso/RTco.def: New file. * gm2-libs-iso/RTdata.def: New file. * gm2-libs-iso/RTdata.mod: New file. * gm2-libs-iso/RTentity.def: New file. * gm2-libs-iso/RTentity.mod: New file. * gm2-libs-iso/RTfio.def: New file. * gm2-libs-iso/RTfio.mod: New file. * gm2-libs-iso/RTgen.def: New file. * gm2-libs-iso/RTgen.mod: New file. * gm2-libs-iso/RTgenif.def: New file. * gm2-libs-iso/RTgenif.mod: New file. * gm2-libs-iso/RTio.def: New file. * gm2-libs-iso/RTio.mod: New file. * gm2-libs-iso/RandomNumber.def: New file. * gm2-libs-iso/RandomNumber.mod: New file. * gm2-libs-iso/RawIO.def: New file. * gm2-libs-iso/RawIO.mod: New file. * gm2-libs-iso/RealConv.def: New file. * gm2-libs-iso/RealConv.mod: New file. * gm2-libs-iso/RealIO.def: New file. * gm2-libs-iso/RealIO.mod: New file. * gm2-libs-iso/RealMath.def: New file. * gm2-libs-iso/RealMath.mod: New file. * gm2-libs-iso/RealStr.def: New file. * gm2-libs-iso/RealStr.mod: New file. * gm2-libs-iso/RndFile.def: New file. * gm2-libs-iso/RndFile.mod: New file. * gm2-libs-iso/SIOResult.def: New file. * gm2-libs-iso/SIOResult.mod: New file. * gm2-libs-iso/SLongIO.def: New file. * gm2-libs-iso/SLongIO.mod: New file. * gm2-libs-iso/SLongWholeIO.def: New file. * gm2-libs-iso/SLongWholeIO.mod: New file. * gm2-libs-iso/SRawIO.def: New file. * gm2-libs-iso/SRawIO.mod: New file. * gm2-libs-iso/SRealIO.def: New file. * gm2-libs-iso/SRealIO.mod: New file. * gm2-libs-iso/SShortIO.def: New file. * gm2-libs-iso/SShortIO.mod: New file. * gm2-libs-iso/SShortWholeIO.def: New file. * gm2-libs-iso/SShortWholeIO.mod: New file. * gm2-libs-iso/STextIO.def: New file. * gm2-libs-iso/STextIO.mod: New file. * gm2-libs-iso/SWholeIO.def: New file. * gm2-libs-iso/SWholeIO.mod: New file. * gm2-libs-iso/SYSTEM.def: New file. * gm2-libs-iso/SYSTEM.mod: New file. * gm2-libs-iso/Semaphores.def: New file. * gm2-libs-iso/Semaphores.mod: New file. * gm2-libs-iso/SeqFile.def: New file. * gm2-libs-iso/SeqFile.mod: New file. * gm2-libs-iso/ShortComplexMath.def: New file. * gm2-libs-iso/ShortComplexMath.mod: New file. * gm2-libs-iso/ShortIO.def: New file. * gm2-libs-iso/ShortIO.mod: New file. * gm2-libs-iso/ShortWholeIO.def: New file. * gm2-libs-iso/ShortWholeIO.mod: New file. * gm2-libs-iso/SimpleCipher.def: New file. * gm2-libs-iso/SimpleCipher.mod: New file. * gm2-libs-iso/StdChans.def: New file. * gm2-libs-iso/StdChans.mod: New file. * gm2-libs-iso/Storage.def: New file. * gm2-libs-iso/Storage.mod: New file. * gm2-libs-iso/StreamFile.def: New file. * gm2-libs-iso/StreamFile.mod: New file. * gm2-libs-iso/StringChan.def: New file. * gm2-libs-iso/StringChan.mod: New file. * gm2-libs-iso/Strings.def: New file. * gm2-libs-iso/Strings.mod: New file. * gm2-libs-iso/SysClock.def: New file. * gm2-libs-iso/SysClock.mod: New file. * gm2-libs-iso/TERMINATION.def: New file. * gm2-libs-iso/TERMINATION.mod: New file. * gm2-libs-iso/TermFile.def: New file. * gm2-libs-iso/TermFile.mod: New file. * gm2-libs-iso/TextIO.def: New file. * gm2-libs-iso/TextIO.mod: New file. * gm2-libs-iso/WholeConv.def: New file. * gm2-libs-iso/WholeConv.mod: New file. * gm2-libs-iso/WholeIO.def: New file. * gm2-libs-iso/WholeIO.mod: New file. * gm2-libs-iso/WholeStr.def: New file. * gm2-libs-iso/WholeStr.mod: New file. * gm2-libs-iso/wrapsock.c: New file. * gm2-libs-iso/wrapsock.def: New file. * gm2-libs-iso/wraptime.c: New file. * gm2-libs-iso/wraptime.def: New file. * gm2-libs-min/M2RTS.def: New file. * gm2-libs-min/M2RTS.mod: New file. * gm2-libs-min/SYSTEM.def: New file. * gm2-libs-min/SYSTEM.mod: New file. * gm2-libs-min/libc.c: New file. * gm2-libs-min/libc.def: New file. * gm2-libs-pim/BitBlockOps.def: New file. * gm2-libs-pim/BitBlockOps.mod: New file. * gm2-libs-pim/BitByteOps.def: New file. * gm2-libs-pim/BitByteOps.mod: New file. * gm2-libs-pim/BitWordOps.def: New file. * gm2-libs-pim/BitWordOps.mod: New file. * gm2-libs-pim/BlockOps.def: New file. * gm2-libs-pim/BlockOps.mod: New file. * gm2-libs-pim/Break.c: New file. * gm2-libs-pim/Break.def: New file. * gm2-libs-pim/CardinalIO.def: New file. * gm2-libs-pim/CardinalIO.mod: New file. * gm2-libs-pim/Conversions.def: New file. * gm2-libs-pim/Conversions.mod: New file. * gm2-libs-pim/DebugPMD.def: New file. * gm2-libs-pim/DebugPMD.mod: New file. * gm2-libs-pim/DebugTrace.def: New file. * gm2-libs-pim/DebugTrace.mod: New file. * gm2-libs-pim/Delay.def: New file. * gm2-libs-pim/Delay.mod: New file. * gm2-libs-pim/Display.def: New file. * gm2-libs-pim/Display.mod: New file. * gm2-libs-pim/ErrorCode.def: New file. * gm2-libs-pim/ErrorCode.mod: New file. * gm2-libs-pim/FileSystem.def: New file. * gm2-libs-pim/FileSystem.mod: New file. * gm2-libs-pim/FloatingUtilities.def: New file. * gm2-libs-pim/FloatingUtilities.mod: New file. * gm2-libs-pim/InOut.def: New file. * gm2-libs-pim/InOut.mod: New file. * gm2-libs-pim/Keyboard.def: New file. * gm2-libs-pim/Keyboard.mod: New file. * gm2-libs-pim/LongIO.def: New file. * gm2-libs-pim/LongIO.mod: New file. * gm2-libs-pim/NumberConversion.def: New file. * gm2-libs-pim/NumberConversion.mod: New file. * gm2-libs-pim/README.texi: New file. * gm2-libs-pim/Random.def: New file. * gm2-libs-pim/Random.mod: New file. * gm2-libs-pim/RealConversions.def: New file. * gm2-libs-pim/RealConversions.mod: New file. * gm2-libs-pim/RealInOut.def: New file. * gm2-libs-pim/RealInOut.mod: New file. * gm2-libs-pim/Strings.def: New file. * gm2-libs-pim/Strings.mod: New file. * gm2-libs-pim/Termbase.def: New file. * gm2-libs-pim/Termbase.mod: New file. * gm2-libs-pim/Terminal.def: New file. * gm2-libs-pim/Terminal.mod: New file. * gm2-libs-pim/TimeDate.def: New file. * gm2-libs-pim/TimeDate.mod: New file. * gm2-libs/ASCII.def: New file. * gm2-libs/ASCII.mod: New file. * gm2-libs/Args.def: New file. * gm2-libs/Args.mod: New file. * gm2-libs/Assertion.def: New file. * gm2-libs/Assertion.mod: New file. * gm2-libs/Break.def: New file. * gm2-libs/Break.mod: New file. * gm2-libs/Builtins.def: New file. * gm2-libs/Builtins.mod: New file. * gm2-libs/COROUTINES.def: New file. * gm2-libs/COROUTINES.mod: New file. * gm2-libs/CmdArgs.def: New file. * gm2-libs/CmdArgs.mod: New file. * gm2-libs/Debug.def: New file. * gm2-libs/Debug.mod: New file. * gm2-libs/DynamicStrings.def: New file. * gm2-libs/DynamicStrings.mod: New file. * gm2-libs/Environment.def: New file. * gm2-libs/Environment.mod: New file. * gm2-libs/FIO.def: New file. * gm2-libs/FIO.mod: New file. * gm2-libs/FormatStrings.def: New file. * gm2-libs/FormatStrings.mod: New file. * gm2-libs/FpuIO.def: New file. * gm2-libs/FpuIO.mod: New file. * gm2-libs/GetOpt.def: New file. * gm2-libs/GetOpt.mod: New file. * gm2-libs/IO.def: New file. * gm2-libs/IO.mod: New file. * gm2-libs/Indexing.def: New file. * gm2-libs/Indexing.mod: New file. * gm2-libs/LMathLib0.def: New file. * gm2-libs/LMathLib0.mod: New file. * gm2-libs/LegacyReal.def: New file. * gm2-libs/LegacyReal.mod: New file. * gm2-libs/M2Dependent.def: New file. * gm2-libs/M2Dependent.mod: New file. * gm2-libs/M2EXCEPTION.def: New file. * gm2-libs/M2EXCEPTION.mod: New file. * gm2-libs/M2LINK.def: New file. * gm2-libs/M2RTS.def: New file. * gm2-libs/M2RTS.mod: New file. * gm2-libs/MathLib0.def: New file. * gm2-libs/MathLib0.mod: New file. * gm2-libs/MemUtils.def: New file. * gm2-libs/MemUtils.mod: New file. * gm2-libs/NumberIO.def: New file. * gm2-libs/NumberIO.mod: New file. * gm2-libs/OptLib.def: New file. * gm2-libs/OptLib.mod: New file. * gm2-libs/PushBackInput.def: New file. * gm2-libs/PushBackInput.mod: New file. * gm2-libs/README.texi: New file. * gm2-libs/RTExceptions.def: New file. * gm2-libs/RTExceptions.mod: New file. * gm2-libs/RTint.def: New file. * gm2-libs/RTint.mod: New file. * gm2-libs/SArgs.def: New file. * gm2-libs/SArgs.mod: New file. * gm2-libs/SCmdArgs.def: New file. * gm2-libs/SCmdArgs.mod: New file. * gm2-libs/SEnvironment.def: New file. * gm2-libs/SEnvironment.mod: New file. * gm2-libs/SFIO.def: New file. * gm2-libs/SFIO.mod: New file. * gm2-libs/SMathLib0.def: New file. * gm2-libs/SMathLib0.mod: New file. * gm2-libs/SYSTEM.def: New file. * gm2-libs/SYSTEM.mod: New file. * gm2-libs/Scan.def: New file. * gm2-libs/Scan.mod: New file. * gm2-libs/Selective.def: New file. * gm2-libs/StdIO.def: New file. * gm2-libs/StdIO.mod: New file. * gm2-libs/Storage.def: New file. * gm2-libs/Storage.mod: New file. * gm2-libs/StrCase.def: New file. * gm2-libs/StrCase.mod: New file. * gm2-libs/StrIO.def: New file. * gm2-libs/StrIO.mod: New file. * gm2-libs/StrLib.def: New file. * gm2-libs/StrLib.mod: New file. * gm2-libs/StringConvert.def: New file. * gm2-libs/StringConvert.mod: New file. * gm2-libs/SysExceptions.def: New file. * gm2-libs/SysStorage.def: New file. * gm2-libs/SysStorage.mod: New file. * gm2-libs/TimeString.def: New file. * gm2-libs/TimeString.mod: New file. * gm2-libs/UnixArgs.def: New file. * gm2-libs/cbuiltin.def: New file. * gm2-libs/cgetopt.def: New file. * gm2-libs/config-host: New file. * gm2-libs/config-host.in: New file. * gm2-libs/cxxabi.def: New file. * gm2-libs/dtoa.def: New file. * gm2-libs/errno.def: New file. * gm2-libs/gdbif.def: New file. * gm2-libs/gdbif.mod: New file. * gm2-libs/gm2-libs-host.h.in: New file. * gm2-libs/ldtoa.def: New file. * gm2-libs/libc.def: New file. * gm2-libs/libm.def: New file. * gm2-libs/sckt.def: New file. * gm2-libs/termios.def: New file. * gm2-libs/wrapc.def: New file. * gm2config.h.in: New file. * gm2spec.cc: New file. * gm2version.h: New file. * init/README: New file. * init/mcinit: New file. * init/ppginit: New file. * lang-specs.h: New file. * lang.opt: New file. * m2-tree.def: New file. * m2-tree.h: New file. * m2.flex: New file. * m2pp.cc: New file. * m2pp.h: New file. * mc-boot-ch/GBuiltins.c: New file. * mc-boot-ch/GM2LINK.c: New file. * mc-boot-ch/GRTco.c: New file. * mc-boot-ch/GSYSTEM.c: New file. * mc-boot-ch/GSelective.c: New file. * mc-boot-ch/GSysExceptions.c: New file. * mc-boot-ch/GUnixArgs.cc: New file. * mc-boot-ch/Gabort.c: New file. * mc-boot-ch/Gcbuiltin.c: New file. * mc-boot-ch/Gdtoa.c: New file. * mc-boot-ch/Gerrno.c: New file. * mc-boot-ch/Gldtoa.c: New file. * mc-boot-ch/Glibc.c: New file. * mc-boot-ch/Glibm.c: New file. * mc-boot-ch/Gmcrts.c: New file. * mc-boot-ch/Gmcrts.h: New file. * mc-boot-ch/Gnetwork.h: New file. * mc-boot-ch/Gtermios.cc: New file. * mc-boot-ch/Gwrapc.c: New file. * mc-boot-ch/README: New file. * mc-boot-ch/m2rts.h: New file. * mc-boot-ch/network.c: New file. * mc-boot/GASCII.c: New file. * mc-boot/GASCII.h: New file. * mc-boot/GArgs.c: New file. * mc-boot/GArgs.h: New file. * mc-boot/GAssertion.c: New file. * mc-boot/GAssertion.h: New file. * mc-boot/GBreak.c: New file. * mc-boot/GBreak.h: New file. * mc-boot/GCOROUTINES.h: New file. * mc-boot/GCmdArgs.c: New file. * mc-boot/GCmdArgs.h: New file. * mc-boot/GDebug.c: New file. * mc-boot/GDebug.h: New file. * mc-boot/GDynamicStrings.c: New file. * mc-boot/GDynamicStrings.h: New file. * mc-boot/GEnvironment.c: New file. * mc-boot/GEnvironment.h: New file. * mc-boot/GFIO.c: New file. * mc-boot/GFIO.h: New file. * mc-boot/GFormatStrings.c: New file. * mc-boot/GFormatStrings.h: New file. * mc-boot/GFpuIO.c: New file. * mc-boot/GFpuIO.h: New file. * mc-boot/GIO.c: New file. * mc-boot/GIO.h: New file. * mc-boot/GIndexing.c: New file. * mc-boot/GIndexing.h: New file. * mc-boot/GM2Dependent.c: New file. * mc-boot/GM2Dependent.h: New file. * mc-boot/GM2EXCEPTION.c: New file. * mc-boot/GM2EXCEPTION.h: New file. * mc-boot/GM2LINK.h: New file. * mc-boot/GM2RTS.c: New file. * mc-boot/GM2RTS.h: New file. * mc-boot/GMemUtils.c: New file. * mc-boot/GMemUtils.h: New file. * mc-boot/GNumberIO.c: New file. * mc-boot/GNumberIO.h: New file. * mc-boot/GPushBackInput.c: New file. * mc-boot/GPushBackInput.h: New file. * mc-boot/GRTExceptions.c: New file. * mc-boot/GRTExceptions.h: New file. * mc-boot/GRTco.h: New file. * mc-boot/GRTint.c: New file. * mc-boot/GRTint.h: New file. * mc-boot/GSArgs.c: New file. * mc-boot/GSArgs.h: New file. * mc-boot/GSFIO.c: New file. * mc-boot/GSFIO.h: New file. * mc-boot/GSYSTEM.h: New file. * mc-boot/GSelective.h: New file. * mc-boot/GStdIO.c: New file. * mc-boot/GStdIO.h: New file. * mc-boot/GStorage.c: New file. * mc-boot/GStorage.h: New file. * mc-boot/GStrCase.c: New file. * mc-boot/GStrCase.h: New file. * mc-boot/GStrIO.c: New file. * mc-boot/GStrIO.h: New file. * mc-boot/GStrLib.c: New file. * mc-boot/GStrLib.h: New file. * mc-boot/GStringConvert.c: New file. * mc-boot/GStringConvert.h: New file. * mc-boot/GSysExceptions.h: New file. * mc-boot/GSysStorage.c: New file. * mc-boot/GSysStorage.h: New file. * mc-boot/GTimeString.c: New file. * mc-boot/GTimeString.h: New file. * mc-boot/GUnixArgs.h: New file. * mc-boot/Galists.c: New file. * mc-boot/Galists.h: New file. * mc-boot/Gdecl.c: New file. * mc-boot/Gdecl.h: New file. * mc-boot/Gdtoa.h: New file. * mc-boot/Gerrno.h: New file. * mc-boot/Gkeyc.c: New file. * mc-boot/Gkeyc.h: New file. * mc-boot/Gldtoa.h: New file. * mc-boot/Glibc.h: New file. * mc-boot/Glibm.h: New file. * mc-boot/Glists.c: New file. * mc-boot/Glists.h: New file. * mc-boot/GmcComment.c: New file. * mc-boot/GmcComment.h: New file. * mc-boot/GmcComp.c: New file. * mc-boot/GmcComp.h: New file. * mc-boot/GmcDebug.c: New file. * mc-boot/GmcDebug.h: New file. * mc-boot/GmcError.c: New file. * mc-boot/GmcError.h: New file. * mc-boot/GmcFileName.c: New file. * mc-boot/GmcFileName.h: New file. * mc-boot/GmcLexBuf.c: New file. * mc-boot/GmcLexBuf.h: New file. * mc-boot/GmcMetaError.c: New file. * mc-boot/GmcMetaError.h: New file. * mc-boot/GmcOptions.c: New file. * mc-boot/GmcOptions.h: New file. * mc-boot/GmcPreprocess.c: New file. * mc-boot/GmcPreprocess.h: New file. * mc-boot/GmcPretty.c: New file. * mc-boot/GmcPretty.h: New file. * mc-boot/GmcPrintf.c: New file. * mc-boot/GmcPrintf.h: New file. * mc-boot/GmcQuiet.c: New file. * mc-boot/GmcQuiet.h: New file. * mc-boot/GmcReserved.c: New file. * mc-boot/GmcReserved.h: New file. * mc-boot/GmcSearch.c: New file. * mc-boot/GmcSearch.h: New file. * mc-boot/GmcStack.c: New file. * mc-boot/GmcStack.h: New file. * mc-boot/GmcStream.c: New file. * mc-boot/GmcStream.h: New file. * mc-boot/Gmcflex.h: New file. * mc-boot/Gmcp1.c: New file. * mc-boot/Gmcp1.h: New file. * mc-boot/Gmcp2.c: New file. * mc-boot/Gmcp2.h: New file. * mc-boot/Gmcp3.c: New file. * mc-boot/Gmcp3.h: New file. * mc-boot/Gmcp4.c: New file. * mc-boot/Gmcp4.h: New file. * mc-boot/Gmcp5.c: New file. * mc-boot/Gmcp5.h: New file. * mc-boot/GnameKey.c: New file. * mc-boot/GnameKey.h: New file. * mc-boot/Gpth.h: New file. * mc-boot/GsymbolKey.c: New file. * mc-boot/GsymbolKey.h: New file. * mc-boot/Gtermios.h: New file. * mc-boot/Gtop.c: New file. * mc-boot/Gvarargs.c: New file. * mc-boot/Gvarargs.h: New file. * mc-boot/Gwlists.c: New file. * mc-boot/Gwlists.h: New file. * mc-boot/Gwrapc.h: New file. * mc-boot/README: New file. * mc/Indexing.def: New file. * mc/Indexing.mod: New file. * mc/README: New file. * mc/alists.def: New file. * mc/alists.mod: New file. * mc/decl.def: New file. * mc/decl.mod: New file. * mc/decl.mod-extra: New file. * mc/keyc.def: New file. * mc/keyc.mod: New file. * mc/lists.def: New file. * mc/lists.mod: New file. * mc/m2flex.def: New file. * mc/mc.flex: New file. * mc/mcComment.def: New file. * mc/mcComment.h: New file. * mc/mcComment.mod: New file. * mc/mcComp.def: New file. * mc/mcComp.mod: New file. * mc/mcDebug.def: New file. * mc/mcDebug.mod: New file. * mc/mcError.def: New file. * mc/mcError.mod: New file. * mc/mcFileName.def: New file. * mc/mcFileName.mod: New file. * mc/mcLexBuf.def: New file. * mc/mcLexBuf.h: New file. * mc/mcLexBuf.mod: New file. * mc/mcMetaError.def: New file. * mc/mcMetaError.mod: New file. * mc/mcOptions.def: New file. * mc/mcOptions.mod: New file. * mc/mcPreprocess.def: New file. * mc/mcPreprocess.mod: New file. * mc/mcPretty.def: New file. * mc/mcPretty.mod: New file. * mc/mcPrintf.def: New file. * mc/mcPrintf.mod: New file. * mc/mcQuiet.def: New file. * mc/mcQuiet.mod: New file. * mc/mcReserved.def: New file. * mc/mcReserved.h: New file. * mc/mcReserved.mod: New file. * mc/mcSearch.def: New file. * mc/mcSearch.mod: New file. * mc/mcStack.def: New file. * mc/mcStack.mod: New file. * mc/mcStream.def: New file. * mc/mcStream.mod: New file. * mc/mcflex.def: New file. * mc/mcp1.bnf: New file. * mc/mcp1.def: New file. * mc/mcp2.bnf: New file. * mc/mcp2.def: New file. * mc/mcp3.bnf: New file. * mc/mcp3.def: New file. * mc/mcp4.bnf: New file. * mc/mcp4.def: New file. * mc/mcp5.bnf: New file. * mc/mcp5.def: New file. * mc/nameKey.def: New file. * mc/nameKey.mod: New file. * mc/symbolKey.def: New file. * mc/symbolKey.mod: New file. * mc/top.mod: New file. * mc/varargs.def: New file. * mc/varargs.mod: New file. * mc/wlists.def: New file. * mc/wlists.mod: New file. * pge-boot/GASCII.c: New file. * pge-boot/GASCII.h: New file. * pge-boot/GArgs.c: New file. * pge-boot/GArgs.h: New file. * pge-boot/GAssertion.c: New file. * pge-boot/GAssertion.h: New file. * pge-boot/GBreak.h: New file. * pge-boot/GBuiltins.c: New file. * pge-boot/GCmdArgs.h: New file. * pge-boot/GDebug.c: New file. * pge-boot/GDebug.h: New file. * pge-boot/GDynamicStrings.c: New file. * pge-boot/GDynamicStrings.h: New file. * pge-boot/GEnvironment.h: New file. * pge-boot/GFIO.c: New file. * pge-boot/GFIO.h: New file. * pge-boot/GFormatStrings.h: New file. * pge-boot/GFpuIO.h: New file. * pge-boot/GIO.c: New file. * pge-boot/GIO.h: New file. * pge-boot/GIndexing.c: New file. * pge-boot/GIndexing.h: New file. * pge-boot/GLists.c: New file. * pge-boot/GLists.h: New file. * pge-boot/GM2Dependent.c: New file. * pge-boot/GM2Dependent.h: New file. * pge-boot/GM2EXCEPTION.c: New file. * pge-boot/GM2EXCEPTION.h: New file. * pge-boot/GM2LINK.c: New file. * pge-boot/GM2LINK.h: New file. * pge-boot/GM2RTS.c: New file. * pge-boot/GM2RTS.h: New file. * pge-boot/GNameKey.c: New file. * pge-boot/GNameKey.h: New file. * pge-boot/GNumberIO.c: New file. * pge-boot/GNumberIO.h: New file. * pge-boot/GOutput.c: New file. * pge-boot/GOutput.h: New file. * pge-boot/GPushBackInput.c: New file. * pge-boot/GPushBackInput.h: New file. * pge-boot/GRTExceptions.c: New file. * pge-boot/GRTExceptions.h: New file. * pge-boot/GRTco.c: New file. * pge-boot/GSArgs.h: New file. * pge-boot/GSEnvironment.h: New file. * pge-boot/GSFIO.c: New file. * pge-boot/GSFIO.h: New file. * pge-boot/GSYSTEM.c: New file. * pge-boot/GSYSTEM.h: New file. * pge-boot/GScan.h: New file. * pge-boot/GSelective.c: New file. * pge-boot/GStdIO.c: New file. * pge-boot/GStdIO.h: New file. * pge-boot/GStorage.c: New file. * pge-boot/GStorage.h: New file. * pge-boot/GStrCase.c: New file. * pge-boot/GStrCase.h: New file. * pge-boot/GStrIO.c: New file. * pge-boot/GStrIO.h: New file. * pge-boot/GStrLib.c: New file. * pge-boot/GStrLib.h: New file. * pge-boot/GStringConvert.h: New file. * pge-boot/GSymbolKey.c: New file. * pge-boot/GSymbolKey.h: New file. * pge-boot/GSysExceptions.c: New file. * pge-boot/GSysExceptions.h: New file. * pge-boot/GSysStorage.c: New file. * pge-boot/GSysStorage.h: New file. * pge-boot/GTimeString.h: New file. * pge-boot/GUnixArgs.cc: New file. * pge-boot/GUnixArgs.h: New file. * pge-boot/Gabort.c: New file. * pge-boot/Gbnflex.c: New file. * pge-boot/Gbnflex.h: New file. * pge-boot/Gcbuiltin.c: New file. * pge-boot/Gdtoa.c: New file. * pge-boot/Gdtoa.h: New file. * pge-boot/Gerrno.c: New file. * pge-boot/Gerrno.h: New file. * pge-boot/Gldtoa.c: New file. * pge-boot/Gldtoa.h: New file. * pge-boot/Glibc.c: New file. * pge-boot/Glibc.h: New file. * pge-boot/Glibm.c: New file. * pge-boot/Glibm.h: New file. * pge-boot/Gmcrts.c: New file. * pge-boot/Gmcrts.h: New file. * pge-boot/Gnetwork.h: New file. * pge-boot/Gpge.c: New file. * pge-boot/Gtermios.cc: New file. * pge-boot/Gtermios.h: New file. * pge-boot/Gwrapc.c: New file. * pge-boot/Gwrapc.h: New file. * pge-boot/README: New file. * pge-boot/m2rts.h: New file. * pge-boot/main.c: New file. * pge-boot/network.c: New file. * plugin/README: New file. * plugin/m2rte.cc: New file. * tools-src/README: New file. * tools-src/boilerplate.py: New file. * tools-src/buildpg: New file. * tools-src/calcpath: New file. * tools-src/def2doc.py: New file. * tools-src/makeSystem: New file. * tools-src/mklink.c: New file. * tools-src/tidydates.py: New file. * images/LICENSE.IMG: New file. * images/gnupng: New file. * images/gnu.eps: New file. * version.c: New file. * configure: Rebuilt. * target-independent/Builtins.texi: New file. * target-independent/SYSTEM-iso.texi: New file. * target-independent/SYSTEM-pim.texi: New file. * target-independent/gm2-libs.texi: New file. * target-independent/readme.txt: New file.