ada: Fix infinite loop with multiple limited with clauses
[official-gcc.git] / gcc / m2 / ChangeLog
blob4116dd15b909d7c8ec6337bc993a5797a0ec4f4c
1 2023-09-29  Gaius Mulley  <gaiusmod2@gmail.com>
3         * gm2-compiler/M2Quads.mod (EndBuildFor): Improve
4         block comments.
5         * gm2-libs-iso/SysClock.mod (ExtractDate): Replace
6         testDays with yearOfDays.  New local variable monthOfDays.
8 2023-09-26  Gaius Mulley  <gaiusmod2@gmail.com>
10         PR modula2/111510
11         * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes.
12         (BuildTrashTreeFromInterface): Minor spacing changes.
13         * gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call
14         string to generate a nul terminated C style string.
15         * gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure.
16         (BuildM2InitFunction): Replace inline parameter generation with
17         calls to BuildStringAdrParam.
19 2023-09-19  Gaius Mulley  <gaiusmod2@gmail.com>
21         * Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
22         and if so use __float128 for longreal in mc.
23         (MC_ARGS): Append host_mc_longreal.
24         * config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
25         (TEST_HOST_CPU_DEFAULT): New variable.
26         * configure: Regenerate.
27         * configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
28         is powerpc64le.
29         (M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
30         * gm2-compiler/M2GCCDeclare.mod: Correct comment case.
31         * gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
32         SetLastFunction for the builtin function call.
33         (MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
34         function call.
35         (MaybeDebugBuiltinMemset): New procedure function.
36         (MakeCopyUse): Use GNU formatting.
37         (UseBuiltin): Rewrite to check BuiltinExists.
38         (CodeDirectCall): Rewrite to check BuiltinExists and call
39         SetLastFunction.
40         (CodeMakeAdr): Re-format.
41         * gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
42         * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
43         "cond" to switch UninitVariableConditionalChecking separately.
44         (SetDebugBuiltins): New procedure.
45         * gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
46         ConstExpr.
47         * gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
48         to BuildRealFuncProcCall.
49         (BuildRealFuncProcCall): Add ConstExpr parameter.  Pass ConstExpr
50         to BuildFunctionCall.
51         (BuildFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
52         BuildRealFunctionCall.
53         (BuildConstFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
54         BuildFunctionCall.
55         (BuildRealFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
56         BuildRealFuncProcCall.
57         * gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
58         to BuildFunctionCall.
59         (AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
60         * gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
61         procedure function.
62         * gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
63         function.
64         (IsProcedureBuiltinAvailable): New procedure function.
65         * gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
66         (bf_category): New enum type.
67         (struct builtin_function_entry): New field function_avail.
68         (m2builtins_BuiltInMemCopy): Rename from ...
69         (m2builtins_BuiltinMemCopy): ... this.
70         (DoBuiltinMemSet): New function.
71         (m2builtins_BuiltinMemSet): New function.
72         (do_target_support_exists): New function.
73         (target_support_exists): New function.
74         (m2builtins_BuiltinExists): Return true or false.
75         (m2builtins_BuildBuiltinTree): Rename local variables.
76         Replace long_double_type_node with GetM2LongRealType.
77         (m2builtins_init): Use GetM2LongRealType rather than
78         long_double_type_node.
79         * gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
80         (BuiltinMemCopy): ... this.
81         (BuiltinMemSet): New procedure function.
82         * gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
83         (m2builtins_BuiltinMemCopy): ... this.
84         (m2builtins_BuiltinMemSet): New procedure function.
85         * gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
86         procedure function.
87         (m2configure_M2CLongRealIBM128): New procedure function.
88         (m2configure_M2CLongRealLongDouble): New procedure function.
89         (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
90         * gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
91         (M2CLongRealIBM128): New procedure function.
92         (M2CLongRealLongDouble): New procedure function.
93         (M2CLongRealLongDoublePPC64LE): New procedure function.
94         * gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
95         (m2configure_M2CLongRealFloat128): New procedure function.
96         (m2configure_M2CLongRealIBM128): New procedure function.
97         (m2configure_M2CLongRealLongDouble): New procedure function.
98         (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
99         * gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
100         * gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
101         * gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
102         TREE_USED to true.
103         (m2statement_BuildGoto):Set TREE_USED to true.
104         (m2statement_BuildParam): Set TREE_USED to true.
105         (m2statement_BuildBuiltinCallTree): New function.
106         (m2statement_BuildFunctValue): Set TREE_USED to true.
107         * gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
108         * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
109         procedure function.
110         * gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
111         (m2treelib_DoCall1): Remove spacing.
112         (m2treelib_DoCall2): Remove spacing.
113         (m2treelib_DoCall3): Remove spacing.
114         (add_stmt): Rename parameter.
115         * gm2-gcc/m2type.cc (build_set_type): Remove spacing.
116         (build_m2_specific_size_type): Remove spacing.
117         (finish_build_pointer_type): Remove spacing.
118         (m2type_BuildVariableArrayAndDeclare): Remove spacing.
119         (build_m2_short_real_node): Remove spacing.
120         (build_m2_real_node): Remove spacing.
121         (build_m2_long_real_node): Use float128_type_node if
122         M2CLongRealFloat128 is set.
123         (build_m2_ztype_node): Remove spacing.
124         (build_m2_long_int_node): Remove spacing.
125         (build_m2_long_card_node): Remove spacing.
126         (build_m2_short_int_node): Remove spacing.
127         (build_m2_short_card_node): Remove spacing.
128         (build_m2_iso_loc_node): Remove spacing.
129         (m2type_SameRealType): New function.
130         (m2type_InitBaseTypes): Create m2_c_type_node using
131         m2_long_complex_type_node.
132         (m2type_SetAlignment): Tidy up comment.
133         * gm2-gcc/m2type.def (SameRealType):  New procedure function.
134         * gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
135         * gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
136         node from m2 language specific long double node.
137         * gm2-libs-log/RealConversions.mod (IsNan): New procedure
138         function.
139         (doPowerOfTen): Re-implement.
140         * gm2-libs/Builtins.mod: Add newline.
141         * gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
142         * gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
143         * gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
144         (M2C_LONGREAL_PPC64LE): New config value.
145         * gm2spec.cc (lang_specific_driver): New local variable
146         need_default_mabi set to default value depending upon
147         M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
148         * lang.opt (Wcase-enum): Moved to correct section.
149         * m2pp.cc (m2pp_real_type): New function.
150         (m2pp_type): Call m2pp_real_type.
151         (m2pp_print_mode): New function.
152         (m2pp_simple_type): Call m2pp_simple_type.
153         (m2pp_float): New function.
154         (m2pp_expression): Call m2pp_float.
155         * mc-boot/GDynamicStrings.cc: Rebuild.
156         * mc-boot/GDynamicStrings.h: Rebuild.
157         * mc-boot/GFIO.cc: Rebuild.
158         * mc-boot/GFIO.h: Rebuild.
159         * mc-boot/GIO.cc: Rebuild.
160         * mc-boot/GRTint.cc: Rebuild.
161         * mc-boot/Gdecl.cc: Rebuild.
162         * mc-boot/GmcOptions.cc: Rebuild.
163         * mc-boot/GmcOptions.h: Rebuild.
164         * mc/decl.mod: Rebuild.
165         * mc/mcOptions.def (getCRealType): New procedure function.
166         (getCLongRealType): New procedure function.
167         (getCShortRealType): New procedure function.
168         * mc/mcOptions.mod (getCRealType): New procedure function.
169         (getCLongRealType): New procedure function.
170         (getCShortRealType): New procedure function.
172 2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>
174         * gm2-compiler/M2CaseList.mod (NewRanges): Add block
175         comment.
176         (NewSet): Add block comment.
177         (DisplayRanges): Add block comment.
178         (IncludeElement): Add block comment.
179         (IncludeElements): Add block comment.
180         (appendString): Add block comment.
181         (appendEnum): Add block comment.
182         (appendTree): Add block comment.
183         (SubrangeErrors): Add block comment.
185 2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>
187         * gm2-compiler/M2CaseList.mod (appendString): New procedure.
188         (appendEnum): Re-implement.
189         (NoOfSetElements): New procedure function.
190         (isPrintableChar): New procedure function.
191         (appendTree): New procedure.
192         (SubrangeErrors): New procedure.
193         (EmitMissingRangeErrors): Call SubrangeErrors if appropriate.
194         * gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid
195         using a temporary variable once.
196         (IsLocalVar): Comment out.
197         (RecordContainsVarient): Remove fieldtype.
198         (GenerateNoteFlow): Remove lst parameter.
199         (CheckDeferredRecordAccess): Remove lst parameter.
200         (CheckUnary): Remove lst parameter.  Remove procSym.
201         (CheckBinary): Remove lst parameter.  Remove procSym.
202         (CheckIndrX): Remove lst parameter.  Remove procSym.
203         (CheckXIndr): Remove bblst and procSym parameters.
204         (CheckRecordField): Remove procSym, op1tok, op2tok and op2.
205         (CheckBecomes): Remove procSym and bblst.
206         (CheckComparison): Remove procSym and bblst.
207         (CheckAddr): Remove procSym parameter.
208         * gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function.
209         (m2expr_CSTIntToChar): New function.
210         * gm2-gcc/m2expr.def (CSTIntToString): New procedure function
211         declaration.
212         (CSTIntToChar): New procedure function declaration.
213         * gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype.
214         (m2expr_CSTIntToString): New prototype.
216 2023-09-13  Gaius Mulley  <gaiusmod2@gmail.com>
218         * Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
219         (GM2_ISO_FLAGS): Add -Wcase-enum.
220         * gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
221         singular or plural start text prior to the enum list.
222         Remove unused parameter tokenno.
223         (EmitMissingRangeErrors): New procedure.
224         (MissingCaseBounds): Call EmitMissingRangeErrors.
225         (MissingCaseStatementBounds): Call EmitMissingRangeErrors.
226         * gm2-libs-iso/TextIO.mod: Fix spacing.
228 2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>
230         * gm2-compiler/M2CaseList.def (PushCase): Rename parameters
231         r to rec and v to va.  Add expr parameter.
232         (MissingCaseStatementBounds): New procedure function.
233         * gm2-compiler/M2CaseList.mod (RangePair): Add expression.
234         (PushCase): Rename parameters r to rec and v to va.  Add
235         expr parameter.
236         (RemoveRange): New procedure function.
237         (SubBitRange): Detect the case when the range in the set matches
238         lo..hi.
239         (CheckLowHigh): New procedure.
240         (ExcludeCaseRanges): Rename parameter c to cd.  Rename local
241         variables q to cl and r to rp.
242         (High): Remove.
243         (Low): Remove.
244         (DoEnumValues): Remove.
245         (IncludeElement): New procedure.
246         (IncludeElements): New procedure.
247         (ErrorRangeEnum): New procedure.
248         (ErrorRange): Remove.
249         (ErrorRanges): Remove.
250         (appendEnum): New procedure.
251         (appendStr): New procedure.
252         (EnumerateErrors): New procedure.
253         (MissingCaseBounds): Re-implement.
254         (InRangeList): Remove.
255         (MissingCaseStatementBounds): New procedure function.
256         (checkTypes): Re-format.
257         (inRange): Re-format.
258         (TypeCaseBounds): Re-format.
259         * gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
260         case label list.
261         * gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
262         with ForeachLocalSymDo.
263         * gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
264         (CaseEnumChecking): New variable.
265         * gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
266         (Module initialization): set CaseEnumChecking to FALSE.
267         * gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
268         * gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
269         clause.
270         (BuildCaseStart): Pass selector expression to InitCaseBounds.
271         (CheckUninitializedVariablesAreUsed): Remove.
272         (IsInlineWithinBlock): Remove.
273         (AsmStatementsInBlock): Remove.
274         (CheckVariablesInBlock): Remove commented code.
275         (BeginVarient): Pass NulSym to InitCaseBounds.
276         * gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
277         errorGenerated.  Add call to MissingCaseStatementBounds.
278         * gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
279         * gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
280         (InitFunction): Add else clause.
281         (InitConvert): Add else clause.
282         (InitLeaf): Add else clause.
283         (InitBinary): Add else clause.
284         (InitUnary): Add else clause.
285         * gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
286         (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
287         traversal.
288         * gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
289         Add case label for EnumerationSym and call GetItemFromList.
290         (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
291         traversal.
292         (SymEnumeration): Add ListOfFields used for declaration order.
293         (MakeEnumeration): Initialize ListOfFields.
294         (PutFieldEnumeration): Include Field in ListOfFields.
295         * gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
296         function.
297         * gm2-lang.cc (gm2_langhook_handle_option): Add
298         OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
299         * lang.opt (Wcase-enum): Add.
301 2023-09-11  Gaius Mulley  <gaiusmod2@gmail.com>
303         PR modula2/111330
304         * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
305         case labels LogicalDiffOp, DummyOp, OptParamOp and
306         InitAddressOp.
308 2023-08-20  Gaius Mulley  <gaiusmod2@gmail.com>
310         PR modula2/111085
311         * gm2-libs/Builtins.def (nexttoward): Alter the second
312         parameter to LONGREAL.
313         (nexttowardf): Alter the second parameter to LONGREAL.
314         * gm2-libs/Builtins.mod (nexttoward): Alter the second
315         parameter to LONGREAL.
316         (nexttowardf): Alter the second parameter to LONGREAL.
317         * gm2-libs/cbuiltin.def (nexttoward): Alter the second
318         parameter to LONGREAL.
319         (nexttowardf): Alter the second parameter to LONGREAL.
321 2023-08-13  Iain Sandoe  <iain@sandoe.co.uk>
323         * Make-lang.in: Update suffix spellings to use 'soext'.
324         Add libc to the plugin link.
326 2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>
328         PR modula2/110779
329         * gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
330         (GetClock): Call EpochTime if the C time functions are
331         unavailable.
332         * gm2-libs-iso/wrapclock.def (istimezone): New function
333         definition.
335 2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>
337         PR modula2/108119
338         * Make-lang.in (M2RTE_PLUGIN_SO): Assigned to
339         plugin/m2rte$(exeext).so if enable_plugin is yes.
340         (m2.all.cross): Replace plugin/m2rte$(soext) with
341         $(M2RTE_PLUGIN_SO).
342         (m2.all.encap): Replace plugin/m2rte$(soext) with
343         $(M2RTE_PLUGIN_SO).
344         (m2.install-plugin): Add dummy rule when enable_plugin
345         is not yes.
346         (plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin
347         is not yes.
348         (m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
349         $(M2RTE_PLUGIN_SO).
350         (m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
351         $(M2RTE_PLUGIN_SO).
352         * gm2spec.cc (lang_specific_driver): Set need_plugin to false
353         by default.
355 2023-08-09  Gaius Mulley  <gaiusmod2@gmail.com>
357         PR modula2/110779
358         * gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
359         return value.
360         (SetClock): Test SetTimespec return value.
361         * gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
362         return type.
363         (SetTimespec): Add integer return type.
365 2023-08-05  Gaius Mulley  <gaiusmod2@gmail.com>
367         PR modula2/110779
368         * gm2-libs-iso/SysClock.mod: Re-implement using wrapclock.
369         * gm2-libs-iso/wrapclock.def: New file.
371 2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>
373         PR modula2/110161
374         * gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New
375         procedure function.
376         (checkTypeKindEquivalence): Call checkProcTypeEquivalence
377         if either left or right is a proc type.
378         * gm2-compiler/M2Quads.mod (BuildRelOp): Create
379         combinedTok prior to creating the range check quadruple.
380         Use combinedTok when creating the range check quadruple.
382 2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>
384         PR modula2/110865
385         * gm2-compiler/M2Quads.mod (BuildDesignatorArray):
386         Rename t as type and d as dim.  New variable result.
387         Allow constants of an array type to be indexed.
389 2023-07-25  Gaius Mulley  <gaiusmod2@gmail.com>
391         PR modula2/110174
392         * gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
393         function.
394         * gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
395         function.
396         * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
397         skip_const_decl before chaining the parameter value.
398         Use PromoteToCString to ensure the string is nul terminated.
399         (CodeInline): Remove all parameters and replace with quad.
400         Use GetQuadOtok to get operand token numbers.
401         Remove call to DeclareConstant and replace it with PromoteToCString.
402         * gm2-compiler/M2Quads.def (BuildInline): Rename into ...
403         (BuildAsm): ... this.
404         * gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
405         (BuildAsm): ... this.
406         (BuildAsmElement): Add debugging.
407         * gm2-compiler/P1Build.bnf: Remove import of BuildInline.
408         * gm2-compiler/P2Build.bnf: Remove import of BuildInline.
409         * gm2-compiler/P3Build.bnf: Remove import of BuildInline and
410         import BuildAsm.
411         * gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
412         * gm2-libs-iso/SysClock.mod (foo): Remove.
413         * gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
414         Rename variable t to src.
415         * m2pp.cc (pf): Correct block comment.
416         (pe): Correct block comment.
417         (m2pp_asm_expr): New function.
418         (m2pp_statement): Call m2pp_asm_expr.
420 2023-07-22  Gaius Mulley  <gaiusmod2@gmail.com>
422         PR modula2/110631
423         * gm2-libs/FIO.def (ReadAny): Correct comment as
424         HIGH (a) + 1 is number of bytes.
425         (WriteAny): Correct comment as HIGH (a) + 1 is number of
426         bytes.
427         * gm2-libs/FIO.mod (ReadAny): Correct comment as
428         HIGH (a) + 1 is number of bytes.  Also pass HIGH (a) + 1
429         to BufferedRead.
430         (WriteAny): Correct comment as HIGH (a) + 1 is number of
431         bytes.  Also pass HIGH (a) + 1 to BufferedWrite.
432         (BufferedWrite): Rename parameter a to src, rename variable
433         t to dest.  Correct parameter order to memcpy.
435 2023-07-20  Gaius Mulley  <gaiusmod2@gmail.com>
437         * gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
438         (CheckIndrX): Call SetupLAlias between lhs and content.
439         (trashParam): Re-write.
440         (SetVarLRInitialized): Indicate shadow and heap are initialized.
441         Call SetupIndr between shadow and heap.
442         * gm2-compiler/P2SymBuild.mod: Import
443         PutProcedureParameterHeapVars.
444         (EndBuildProcedure): Call PutProcedureParameterHeapVars.
445         * gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
446         procedure function.
447         (PutProcedureParameterHeapVars): New procedure function.
448         * gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
449         procedure function.
450         (GetParameterHeapVar): New procedure function.
451         (PuttParameterHeapVar): New procedure function.
452         (PutProcedureParameterHeapVars): New procedure.
453         (VarParam): HeapVar new record field.
454         (PutVarParam): HeapVar assigned to NulSym.
456 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
458         PR modula2/110284
459         * Make-lang.in (m2_OBJS): Add m2/gm2-gcc/rtegraph.o and
460         m2/gm2-compiler-boot/m2flex.o.
461         (c-family/m2pp.o): Remove.
462         * Make-maintainer.in (c-family/m2pp.o): Add.
464 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
466         * gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed
467         unnecessary in error message.  Use vartok for location.
468         (BuildOddFunction): Use optok for location.
469         (BuildAbsFunction): Use vartok for location.  Bugfix set vartok.
470         (BuildCapFunction): Use optok for location.
471         (BuildOrdFunction): Use optok for location and correct format
472         specifier.
473         (BuildShiftFunction): Use vartok for location.
474         (BuildRotateFunction): Use vartok for location.
475         (BuildTruncFunction): Use vartok for location.
476         (BuildFloatFunction): Use vartok for location.
477         (BuildReFunction): Use vartok for location.
478         (BuildImFunction): Use vartok for location.
479         * gm2-compiler/M2SymInit.mod (trashParam): Remove commented code.
481 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
483         * gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash
484         parameter value to NIL if DEALLOCATE is detected.
485         * gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass
486         tok to SetVarInitialized.  Pass tok to GetVarComponentInitialized.
487         (ComponentFindVar): Add tok parameter.  Check aliased pointer
488         against Nil and generate warning if necessary.
489         (deRefComponent): Add tok and sym parameters and pass them to
490         getContent.
491         (SetVarComponentInitialized): Add tok parameter.  Pass tok to
492         ComponentFindVar.  Pass tok and sym to deRefComponent.
493         (GetVarComponentInitialized): Add tok parameter.  Pass tok to
494         ComponentFindVar.  Pass tok to deRefComponent.
495         (SetVarInitialized): Add tok parameter.  Pass tok to
496         SetVarComponentInitialized.
497         (doGetVarInitialized): Add tok parameter.  Pass tok to
498         GetVarComponentInitialized.
499         (CheckXIndr): Pass lhs and lhstok to getContent.
500         (CheckIndrX): Pass rhs and rhstok to getContent.
501         (CheckBecomes): Pass destok to ComponentFindVar.  Pass des and
502         destok to deRefComponent.
503         (CheckAddr): Pass contenttok to GetVarInitialized.  Pass ptrtok
504         to SetVarInitialized.
505         (CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for
506         op1 cases and op3tok for op3 cases.
507         (trashParam): Get operand tokens.  Pass op3tok to
508         SetVarInitialized.  Pass op3 and op3tok to getContent.
509         Alias ptr to NIL if procedure is DEALLOCATE.  Pass op3tok to
510         SetVarInitialized.
511         (IsDeallocate): New procedure function.
512         (DetectTrash): Use IsDeallocate.
513         (SetupLAlias): Allow exp to be Nil.
514         (getContent): Generate warning message if ptr is Nil.
516 2023-07-18  Gaius Mulley  <gaiusmod2@gmail.com>
518         * Make-lang.in: Minor formatting change.
519         * gm2-compiler/M2GCCDeclare.mod
520         (DeclareUnboundedProcedureParameters): Rename local variables.
521         (WalkUnboundedProcedureParameters): Rename local variables.
522         (DoVariableDeclaration): Avoid declaration of a variable if
523         it is on the heap (used by static analysis only).
524         * gm2-compiler/M2GenGCC.mod: Formatting.
525         * gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function.
526         * gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function.
527         (QuadFrame): Add Trash field.
528         (BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create
529         a heap variable for parameter 1 saving it as the trashed variable
530         for static analysis.
531         (GenQuadOTrash): New procedure.
532         (DisplayQuadRange): Bugfix.  Write the scope number.
533         * gm2-compiler/M2SymInit.mod: Rewritten to separate LValue
534         equivalence from LValue to RValue pairings.  Comprehensive
535         detection of variant record implemented.  Allow dereferencing
536         of pointers through LValue/RValue chains.
537         * gm2-compiler/SymbolTable.def (PutVarHeap): New procedure.
538         (IsVarHeap): New procedure function.
539         (ForeachParamSymDo): New procedure.
540         * gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure.
541         (IsVarHeap): New procedure function.
542         (ForeachParamSymDo): New procedure.
543         (MakeVariableForParam): Reformatted.
544         (CheckForUnknownInModule): Reformatted.
545         (SymVar): Add field Heap.
546         (MakeVar): Assign Heap to FALSE.
548 2023-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
550         * Make-lang.in (m2/boot-bin/mklink$(exeext)): Add $(LDFLAGS).
552 2023-07-11  Gaius Mulley  <gaiusmod2@gmail.com>
554         * gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New
555         parameter ScopeSym.
556         * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New
557         parameter ScopeSym.
558         (InitBasicBlocksFromRange): New parameter ScopeSym.  Call
559         ConvertQuads2BasicBlock with ScopeSym.
560         (DisplayBasicBlocks): Uncomment.
561         * gm2-compiler/M2Code.mod: Replace VariableAnalysis with
562         ScopeBlockVariableAnalysis.
563         (InitialDeclareAndOptiomize): Add parameter scope.
564         (SecondDeclareAndOptimize): Add parameter scope.
565         * gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope
566         parameter to DeclareTypesConstantsProceduresInRange.
567         (DeclareTypesConstantsProceduresInRange): New parameter scope.
568         Pass scope to DisplayQuadRange.  Reformatted.
569         * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter
570         scope.
571         * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter
572         scope.
573         * gm2-compiler/M2Optimize.mod (KnownReachable): New parameter
574         scope.
575         * gm2-compiler/M2Options.def (SetUninitVariableChecking): Add
576         arg parameter.
577         * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add
578         arg parameter and set boolean UninitVariableChecking and
579         UninitVariableConditionalChecking.
580         (UninitVariableConditionalChecking): New boolean set to FALSE.
581         * gm2-compiler/M2Quads.def (IsGoto): New procedure function.
582         (DisplayQuadRange): Add scope parameter.
583         (LoopAnalysis): Add scope parameter.
584         * gm2-compiler/M2Quads.mod: Import PutVarArrayRef.
585         (IsGoto): New procedure function.
586         (LoopAnalysis): Add scope parameter and use MetaErrorT1 instead
587         of WarnStringAt.
588         (BuildStaticArray): Call PutVarArrayRef.
589         (BuildDynamicArray): Call PutVarArrayRef.
590         (DisplayQuadRange): Add scope parameter.
591         (GetM2OperatorDesc): Add relational condition cases.
592         * gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter.
593         * gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to
594         DisplayQuadRange.
595         (ForeachScopeBlockDo): Pass scopeSym to p.
596         * gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ...
597         (ScopeBlockVariableAnalysis): ... this.
598         * gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add
599         scope parameter.
600         (bbEntry): New pointer to record.
601         (bbArray): New array.
602         (bbFreeList): New variable.
603         (errorList): New list.
604         (IssueConditional): New procedure.
605         (GenerateNoteFlow): New procedure.
606         (IssueWarning): New procedure.
607         (IsUniqueWarning): New procedure.
608         (CheckDeferredRecordAccess): Re-implement.
609         (CheckBinary): Add warning and lst parameters.
610         (CheckUnary): Add warning and lst parameters.
611         (CheckXIndr): Add warning and lst parameters.
612         (CheckIndrX): Add warning and lst parameters.
613         (CheckBecomes): Add warning and lst parameters.
614         (CheckComparison): Add warning and lst parameters.
615         (CheckReadBeforeInitQuad): Add warning and lst parameters to all
616         Check procedures.  Add all case quadruple clauses.
617         (FilterCheckReadBeforeInitQuad): Add warning and lst parameters.
618         (CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters.
619         (bbArrayKill): New procedure.
620         (DumpBBEntry): New procedure.
621         (DumpBBArray): New procedure.
622         (DumpBBSequence): New procedure.
623         (TestBBSequence): New procedure.
624         (CreateBBPermultations): New procedure.
625         (ScopeBlockVariableAnalysis): New procedure.
626         (GetOp3): New procedure.
627         (GenerateCFG): New procedure.
628         (NewEntry): New procedure.
629         (AppendEntry): New procedure.
630         (init): Initialize bbFreeList and errorList.
631         * gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure.
632         (IsVarArrayRef): New procedure function.
633         * gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field.
634         (MakeVar): Set ArrayRef to FALSE.
635         (PutVarArrayRef): New procedure.
636         (IsVarArrayRef): New procedure function.
637         * gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype.
638         (init_PerCompilationInit): Add call to _M2_M2SymInit_init.
639         * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
640         New definition.
641         * gm2-lang.cc (gm2_langhook_handle_option): Add new case
642         OPT_Wuninit_variable_checking_.
643         * lang.opt: Wuninit-variable-checking= new entry.
645 2023-07-03  Gaius Mulley  <gaiusmod2@gmail.com>
647         PR modula2/110125
648         * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def.
649         (GM2-COMP-BOOT-MODS): Add M2SymInit.mod.
650         * gm2-compiler/M2BasicBlock.mod: Formatting changes.
651         * gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from
652         M2Quads.  Import VariableAnalysis from M2SymInit.mod.
653         * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
654         Add debugging print for a component.
655         (TypeConstFullyDeclared): Call RememberType for every type.
656         * gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to
657         GetQuadOtok.
658         (CodeBecomes): Add parameter to GetQuadOtok.
659         (CodeXIndr): Add parameter to GetQuadOtok.
660         * gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and
661         preserve operand token positions when reducing the branch
662         quadruples.
663         (ReduceGoto): Reformat.
664         (FoldMultipleGoto): Reformat.
665         (KnownReachable): Reformat.
666         * gm2-compiler/M2Options.def (UninitVariableChecking): New
667         variable declared and exported.
668         (SetUninitVariableChecking): New procedure.
669         * gm2-compiler/M2Options.mod (SetWall): Set
670         UninitVariableChecking.
671         (SetUninitVariableChecking): New procedure.
672         * gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared.
673         (VariableAnalysis): Removed.
674         * gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure.
675         (doVal): Reformatted.
676         (MarkAsWrite): Reformatted.
677         (MarkArrayAsWritten): Reformatted.
678         (doIndrX): Use PutQuadOtok.
679         (MakeRightValue): Use GenQuadOtok.
680         (MakeLeftValue): Use GenQuadOtok.
681         (CheckReadBeforeInitialized): Remove.
682         (IsNeverAltered): Reformat.
683         (DebugLocation): New procedure.
684         (BuildDesignatorPointer): Use GenQuadO to preserve operand token
685         position.
686         (BuildRelOp): Use GenQuadOtok ditto.
687         * gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure.
688         (VarInitState): New procedure.
689         (PutVarInitialized): New procedure.
690         (PutVarFieldInitialized): New procedure function.
691         (GetVarFieldInitialized): New procedure function.
692         (PrintInitialized): New procedure.
693         * gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure.
694         (VarInitState): New procedure.
695         (PutVarInitialized): New procedure.
696         (PutVarFieldInitialized): New procedure function.
697         (GetVarFieldInitialized): New procedure function.
698         (PrintInitialized): New procedure.
699         (LRInitDesc): New type.
700         (SymVar): InitState new field.
701         (MakeVar): Initialize InitState.
702         * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
703         New function declaration.
704         * gm2-lang.cc (gm2_langhook_handle_option): Detect
705         OPT_Wuninit_variable_checking and call SetUninitVariableChecking.
706         * lang.opt: Add Wuninit-variable-checking.
707         * gm2-compiler/M2SymInit.def: New file.
708         * gm2-compiler/M2SymInit.mod: New file.
710 2023-06-30  Iain Sandoe  <iain@sandoe.co.uk>
712         PR testsuite/108835
713         * gm2-libs/RTint.mod: Do not use NIL timeout setting on select,
714         test failures sequentially, finishing on the first success.
716 2023-06-18  Gaius Mulley  <gaiusmod2@gmail.com>
718         PR modula2/110284
719         * Make-lang.in (m2_OBJS): Assign $(GM2_C_OBJS).
720         (GM2_C_OBJS): Remove m2/stor-layout.o.
721         (m2/stor-layout.o): Remove rule.
722         * gm2-gcc/gcc-consolidation.h (rtl.h): Remove include.
723         (df.h): Remove include.
724         (except.h): Remove include.
726 2023-06-15  Marek Polacek  <polacek@redhat.com>
728         * Make-lang.in: New var, GM2_PICFLAGS.  Use it.
730 2023-06-13  Gaius Mulley  <gaiusmod2@gmail.com>
732         * Make-lang.in (check-format-error): New rule.
733         * gm2-compiler/M2MetaError.mod (op): Add calls InternalError if
734         digits are detected.
735         * gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format
736         specifier.
737         (BuildLengthFunction): Bugfix to format specifiers.
738         (BuildOddFunction): Bugfix to format specifiers.
739         (BuildAbsFunction): Bugfix to format specifiers.
740         (BuildCapFunction): Bugfix to format specifiers.
741         (BuildChrFunction): Bugfix to format specifiers.
742         (BuildOrdFunction): Bugfix to format specifiers.
743         (BuildMakeAdrFunction): Bugfix to format specifiers.
744         (BuildSizeFunction): Bugfix to format specifiers.
745         (BuildBitSizeFunction): Bugfix to format specifiers.
746         * tools-src/checkmeta.py: New file.
748 2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>
750         PR modula2/110189
751         * gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort
752         format specifier.
753         (BuildValFunction): Replace abort format specifier.
754         (BuildCastFunction): Replace abort format specifier.
755         (BuildMinFunction): Replace abort format specifier.
756         (BuildMaxFunction): Replace abort format specifier.
757         (BuildTruncFunction): Replace abort format specifier.
758         * gm2-compiler/P3Build.bnf (Pass1): Remove.
759         (Pass2): Remove.
760         (Pass3): Remove.
761         (Expect): Add Pass1.
762         (AsmStatement): Remove Pass3.
763         (AsmOperands): Remove Pass3.
764         (AsmOperandSpec): Remove Pass3.
765         (AsmInputElement): Remove Pass3.
766         (AsmOutputElement): Remove Pass3.
767         (AsmTrashList): Remove Pass3.
769 2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>
771         PR modula2/110126
772         * gm2-compiler/M2Quads.def (BuildAsmElement): Remove
773         trash parameter.
774         (BuildAsmTrash): New procedure.
775         * gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure.
776         (BuildAsmElement): Remove trash parameter.
777         * gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite.
779 2023-06-08  Gaius Mulley  <gaiusmod2@gmail.com>
781         PR modula2/110126
782         * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove
783         tokenno parameter.  Use object tok instead of tokenno.
784         (BuildTrashTreeFromInterface): Use object tok instead of
785         GetDeclaredMod.
786         (CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface.
787         * gm2-compiler/M2Quads.def (BuildAsmElement): Exported and
788         defined.
789         * gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted.
790         (BuildInline): Reformatted.
791         (BuildLineNo): Reformatted.
792         (UseLineNote): Reformatted.
793         (BuildAsmElement): New procedure.
794         * gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use
795         ConstExpression instead of string.
796         (AsmElement): Use ConstExpression instead of string.
797         (TrashList): Use ConstExpression instead of string.
798         * gm2-compiler/P1Build.bnf (AsmOperands): Use
799         ConstExpression instead of string.
800         (AsmElement): Use ConstExpression instead of string.
801         (TrashList): Use ConstExpression instead of string.
802         * gm2-compiler/P2Build.bnf (AsmOperands): Use
803         ConstExpression instead of string.
804         (AsmElement): Use ConstExpression instead of string.
805         (TrashList): Use ConstExpression instead of string.
806         * gm2-compiler/P3Build.bnf (AsmOperands): Rewrite.
807         (AsmOperandSpec): Rewrite.
808         (AsmOutputList): New rule.
809         (AsmInputList): New rule.
810         (TrashList): Rewrite.
811         * gm2-compiler/PCBuild.bnf (AsmOperands): Use
812         ConstExpression instead of string.
813         (AsmElement): Use ConstExpression instead of string.
814         (TrashList): Use ConstExpression instead of string.
815         * gm2-compiler/PHBuild.bnf (AsmOperands): Use
816         ConstExpression instead of string.
817         (AsmElement): Use ConstExpression instead of string.
818         (TrashList): Use ConstExpression instead of string.
819         * gm2-compiler/SymbolTable.def (PutRegInterface):
820         Rewrite interface.
821         (GetRegInterface): Rewrite interface.
822         * gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure.
823         (PutFirstUsed): New procedure.
824         (PutRegInterface): Rewrite.
825         (GetRegInterface): Rewrite.
827 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
829         * Make-lang.in: Build $(generated_files) before building
830         all $(GM2_C_OBJS).
832 2023-06-07  Gaius Mulley  <gaiusmod2@gmail.com>
834         PR modula2/110019
835         * gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted.
836         (ForeachNodeDo): Reformatted.
837         * gm2-compiler/SymbolTable.mod (AddListify): Join list
838         with "," or "and" if more than one word is in the list.
839         * m2.flex: Remove -1 from atoi(yytext) line number.
841 2023-06-03  Gaius Mulley  <gaiusmod2@gmail.com>
843         PR modula2/110003
844         * gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import.
845         (CheckFormalParameterSection): Call PutDeclared for the shadow
846         variable associated with the parameter.
848 2023-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
850         PR modula2/109952
851         * Make-maintainer.in: Change header to include emacs file mode.
852         * gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether
853         operand is a constant string and is nul terminated then return one.
854         * gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return
855         TRUE.  Static analysis missing return path fix.
856         * gm2-libs/IO.mod (Init): Rewrite to help static analysis.
857         * target-independent/m2/gm2-libs.texi: Rebuild.
859 2023-05-19  Gaius Mulley  <gaiusmod2@gmail.com>
861         PR modula2/109908
862         * gm2-libs-iso/Strings.mod (Delete): Re-implement.
864 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
866         * gm2-gcc/m2builtins.cc (doradix): Use _P defines from tree.h.
867         (doplaces): Ditto.
868         (doexponentmin): Ditto.
869         (doexponentmax): Ditto.
870         (dolarge): Ditto.
871         (dosmall): Ditto.
872         (dogUnderflow): Ditto.
873         * gm2-gcc/m2convert.cc (unsafe_conversion_p): Ditto.
874         * gm2-gcc/m2expr.cc (m2expr_build_unary_op_check): Ditto.
875         (m2expr_build_binary_op_check): Ditto.
876         * gm2-gcc/m2tree.cc (m2tree_is_var): Ditto.
877         * gm2-gcc/m2treelib.cc (build_modify_expr): Ditto.
878         * gm2-gcc/m2type.cc (gm2_finish_decl): Ditto.
879         * m2pp.cc (hextree): Ditto.
880         (m2pp_call_expr): Ditto.
882 2023-05-17  Gaius Mulley  <gaiusmod2@gmail.com>
884         * gm2-libs-iso/LongWholeIO.mod (WriteInt): Only request a
885         sign if the value is < 0.
886         * gm2-libs-iso/ShortWholeIO.mod (WriteInt): Only request a
887         sign if the value is < 0.
888         * gm2-libs-iso/WholeIO.mod (WriteInt): Only request a sign
889         if the value is < 0.
890         * gm2-libs-iso/WholeStr.mod (WriteInt): Only request a sign
891         if the value is < 0.
893 2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>
895         PR modula2/109879
896         * gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
897         * gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
898         (ReadCard): Call SkipSpaces.
899         * gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
900         * gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
901         (ReadCard): Call SkipSpaces.
902         * gm2-libs-iso/TextIO.mod: Import SkipSpaces.
903         * gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
904         (ReadCard): Call SkipSpaces.
905         * gm2-libs-iso/TextUtil.def: New file.
906         * gm2-libs-iso/TextUtil.mod: New file.
908 2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>
910         PR modula2/108344
911         * gm2-libs-coroutines/TimerHandler.mod (EnableLED): New constant.
912         (Timer): Test EnableLED before switching on the scroll LED.
914 2023-05-12  Gaius Mulley  <gaiusmod2@gmail.com>
916         PR modula2/109830
917         * gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend
918         used to select FIO.OpenForRandom.
919         (OpenRead): Pass extra parameter to newCid.
920         (OpenWrite): Pass extra parameter to newCid.
921         (OpenAppend): Pass extra parameter to newCid.
923 2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>
925         PR modula2/109810
926         * gm2-compiler/M2ALU.mod (ConvertConstToType): Use
927         PrepareCopyString in place of DoCopyString.
928         * gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
929         (PrepareCopyString): ... this.
930         * gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
931         with a single parameter.  Call CodeXIndr with a single parameter.
932         (CodeReturnValue): Remove parameters and replace with a single
933         quadno.  Reimplement using PrepareCopyString.  Issue error
934         if the string exceeds designator space.
935         (DoCopyString): Reimplement and rename to ...
936         (PrepareCopyString): ... this.
937         (CodeXIndr): Remove parameters and replace with a single
938         quadno.  Reimplement using PrepareCopyString.  Issue error
939         if the string exceeds designator space.
940         (CodeBecomes): Remove parameters and replace with a single
941         quadno.  Reimplement using PrepareCopyString.  Issue error
942         if the string exceeds designator space.
943         * gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
944         tokreturn.
945         * gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
946         tokreturn.  Rename tokno to tokcombined.
948 2023-05-09  Gaius Mulley  <gaiusmod2@gmail.com>
950         PR modula2/109779
951         * gm2-libs-iso/RTgen.mod (doLook): Remove old.
952         Remove re-assignment of result.
953         * gm2-libs-iso/TextIO.mod (CanRead): Rename into ...
954         (CharAvailable): ... this.
955         (DumpState): New procedure.
956         (SetResult): Rename as SetNul.
957         (WasGoodChar): Rename into ...
958         (EofOrEoln): ... this.
959         (SkipLine): Skip over the newline.
960         (ReadString): Flip THEN ELSE statements after testing for
961         EofOrEoln.
962         (ReadRestLine): Flip THEN ELSE statements after testing for
963         EofOrEoln.
965 2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>
967         PR modula2/109729
968         * gm2-compiler/M2GenGCC.mod (CodeStatement): Detect
969         ArithAddOp and call CodeAddChecked.
970         (ResolveConstantExpressions): Detect ArithAddOp and call
971         FoldArithAdd.
972         (FoldArithAdd): New procedure.
973         (FoldAdd): Refactor to use FoldArithAdd.
974         * gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp.
975         * gm2-compiler/M2Quads.mod: Remove commented imports.
976         (QuadFrame): Changed comments to use GNU coding standards.
977         (ArithPlusTok): New global variable.
978         (BuildForToByDo): Use ArithPlusTok instead of PlusTok.
979         (MakeOp): Detect ArithPlusTok and return ArithAddOp.
980         (WriteQuad): Add ArithAddOp clause.
981         (WriteOperator): Add ArithAddOp clause.
982         (Init): Initialize ArithPlusTok.
984 2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>
986         PR modula2/109675
987         * Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def.
988         (BUILD-PGE-O): Remove GM2LINK.o.
989         * Make-maintainer.in (PPG-DEFS): New define.
990         (PPG-LIB-DEFS): Remove M2LINK.def.
991         (BUILD-BOOT-PPG-H): Add PPGDEF .h files.
992         (m2/ppg$(exeext)): Remove M2LINK.o
993         (PGE-DEPS): New define.
994         (m2/pg$(exeext)): Remove M2LINK.o.
995         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot.
996         (m2/pge$(exeext)): Remove M2LINK.o.
997         (pge-maintainer): Re-implement.
998         (pge-libs-push): Re-implement.
999         (m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o.
1000         * gm2-libs/DynamicStrings.mod (writeAddress): Re-implement
1001         using snprintf.
1002         * gm2-libs/M2Dependent.mod: Remove commented out imports.
1003         * mc-boot/GDynamicStrings.cc: Rebuild.
1004         * mc-boot/GFIO.cc: Rebuild.
1005         * mc-boot/GFormatStrings.cc: Rebuild.
1006         * mc-boot/GM2Dependent.cc: Rebuild.
1007         * mc-boot/GM2Dependent.h: Rebuild.
1008         * mc-boot/GM2RTS.cc: Rebuild.
1009         * mc-boot/GM2RTS.h: Rebuild.
1010         * mc-boot/GRTExceptions.cc: Rebuild.
1011         * mc-boot/GRTint.cc: Rebuild.
1012         * mc-boot/GSFIO.cc: Rebuild.
1013         * mc-boot/GStringConvert.cc: Rebuild.
1014         * mc-boot/Gdecl.cc: Rebuild.
1015         * pge-boot/GASCII.cc: Rebuild.
1016         * pge-boot/GASCII.h: Rebuild.
1017         * pge-boot/GArgs.cc: Rebuild.
1018         * pge-boot/GArgs.h: Rebuild.
1019         * pge-boot/GAssertion.cc: Rebuild.
1020         * pge-boot/GAssertion.h: Rebuild.
1021         * pge-boot/GBreak.h: Rebuild.
1022         * pge-boot/GCmdArgs.h: Rebuild.
1023         * pge-boot/GDebug.cc: Rebuild.
1024         * pge-boot/GDebug.h: Rebuild.
1025         * pge-boot/GDynamicStrings.cc: Rebuild.
1026         * pge-boot/GDynamicStrings.h: Rebuild.
1027         * pge-boot/GEnvironment.h: Rebuild.
1028         * pge-boot/GFIO.cc: Rebuild.
1029         * pge-boot/GFIO.h: Rebuild.
1030         * pge-boot/GFormatStrings.h:: Rebuild.
1031         * pge-boot/GFpuIO.h:: Rebuild.
1032         * pge-boot/GIO.cc: Rebuild.
1033         * pge-boot/GIO.h: Rebuild.
1034         * pge-boot/GIndexing.cc: Rebuild.
1035         * pge-boot/GIndexing.h: Rebuild.
1036         * pge-boot/GLists.cc: Rebuild.
1037         * pge-boot/GLists.h: Rebuild.
1038         * pge-boot/GM2Dependent.cc: Rebuild.
1039         * pge-boot/GM2Dependent.h: Rebuild.
1040         * pge-boot/GM2EXCEPTION.cc: Rebuild.
1041         * pge-boot/GM2EXCEPTION.h: Rebuild.
1042         * pge-boot/GM2RTS.cc: Rebuild.
1043         * pge-boot/GM2RTS.h: Rebuild.
1044         * pge-boot/GNameKey.cc: Rebuild.
1045         * pge-boot/GNameKey.h: Rebuild.
1046         * pge-boot/GNumberIO.cc: Rebuild.
1047         * pge-boot/GNumberIO.h: Rebuild.
1048         * pge-boot/GOutput.cc: Rebuild.
1049         * pge-boot/GOutput.h: Rebuild.
1050         * pge-boot/GPushBackInput.cc: Rebuild.
1051         * pge-boot/GPushBackInput.h: Rebuild.
1052         * pge-boot/GRTExceptions.cc: Rebuild.
1053         * pge-boot/GRTExceptions.h: Rebuild.
1054         * pge-boot/GSArgs.h: Rebuild.
1055         * pge-boot/GSEnvironment.h: Rebuild.
1056         * pge-boot/GSFIO.cc: Rebuild.
1057         * pge-boot/GSFIO.h: Rebuild.
1058         * pge-boot/GSYSTEM.h: Rebuild.
1059         * pge-boot/GScan.h: Rebuild.
1060         * pge-boot/GStdIO.cc: Rebuild.
1061         * pge-boot/GStdIO.h: Rebuild.
1062         * pge-boot/GStorage.cc: Rebuild.
1063         * pge-boot/GStorage.h: Rebuild.
1064         * pge-boot/GStrCase.cc: Rebuild.
1065         * pge-boot/GStrCase.h: Rebuild.
1066         * pge-boot/GStrIO.cc: Rebuild.
1067         * pge-boot/GStrIO.h: Rebuild.
1068         * pge-boot/GStrLib.cc: Rebuild.
1069         * pge-boot/GStrLib.h: Rebuild.
1070         * pge-boot/GStringConvert.h: Rebuild.
1071         * pge-boot/GSymbolKey.cc: Rebuild.
1072         * pge-boot/GSymbolKey.h: Rebuild.
1073         * pge-boot/GSysExceptions.h: Rebuild.
1074         * pge-boot/GSysStorage.cc: Rebuild.
1075         * pge-boot/GSysStorage.h: Rebuild.
1076         * pge-boot/GTimeString.h: Rebuild.
1077         * pge-boot/GUnixArgs.h: Rebuild.
1078         * pge-boot/Gbnflex.cc: Rebuild.
1079         * pge-boot/Gbnflex.h: Rebuild.
1080         * pge-boot/Gdtoa.h: Rebuild.
1081         * pge-boot/Gerrno.h: Rebuild.
1082         * pge-boot/Gldtoa.h: Rebuild.
1083         * pge-boot/Glibc.h: Rebuild.
1084         * pge-boot/Glibm.h: Rebuild.
1085         * pge-boot/Gpge.cc: Rebuild.
1086         * pge-boot/Gtermios.h: Rebuild.
1087         * pge-boot/Gwrapc.h: Rebuild.
1088         * mc-boot/GM2LINK.h: Removed.
1089         * pge-boot/GM2LINK.cc: Removed.
1090         * pge-boot/GM2LINK.h: Removed.
1092 2023-04-30  Gaius Mulley  <gaiusmod2@gmail.com>
1094         * gm2-compiler/SymbolTable.mod (ConstLitPoolEntry): New
1095         pointer to record.
1096         (ConstLitSym): New field RangeError.
1097         (ConstLitPoolTree): New SymbolTree representing name to
1098         index.
1099         (ConstLitArray): New dynamic array containing pointers
1100         to a ConstLitPoolEntry.
1101         (CreateConstLit): New procedure function.
1102         (LookupConstLitPoolEntry): New procedure function.
1103         (AddConstLitPoolEntry): New procedure function.
1104         (MakeConstLit): Re-implemented to check the constant lit
1105         pool before calling CreateConstLit.
1106         * m2.flex: Add ability to decode binary constant literals.
1108 2023-04-26  Gaius Mulley  <gaiusmod2@gmail.com>
1110         PR modula2/108121
1111         * gm2-compiler/M2ALU.mod (Less): Reformatted.
1112         * gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove
1113         from import.
1114         (ConstantStringExceedsZType): Import.
1115         (GetConstLitType): Re-implement using ConstantStringExceedsZType.
1116         * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove.
1117         (m2decl_ConstantStringExceedsZType): New function.
1118         (m2decl_BuildConstLiteralNumber): Re-implement.
1119         * gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove.
1120         (ConstantStringExceedsZType): New function.
1121         * gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove.
1122         (m2decl_ConstantStringExceedsZType): New function.
1123         * gm2-gcc/m2expr.cc (append_digit): Remove.
1124         (m2expr_interpret_integer): Remove.
1125         (append_m2_digit): Remove.
1126         (m2expr_StrToWideInt): New function.
1127         (m2expr_interpret_m2_integer): Remove.
1128         * gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function.
1129         * gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function.
1130         * gm2-gcc/m2type.cc (build_m2_word64_type_node): New function.
1131         (build_m2_ztype_node): New function.
1132         (m2type_InitBaseTypes): Call build_m2_ztype_node.
1133         * gm2-lang.cc (gm2_type_for_size): Re-write using early returns.
1135 2023-04-21  Arsen Arsenović  <arsen@aarsen.me>
1137         * Make-lang.in: Remove references to $(P).
1138         * Make-maintainer.in: Ditto.
1140 2023-04-21  Gaius Mulley  <gaiusmod2@gmail.com>
1142         PR modula2/109586
1143         * gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE
1144         (t) == CONSTRUCTOR) to expression.
1146 2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>
1148         PR modula2/109488
1149         * lang.opt: Fix typo "maybe" to "may be".
1151 2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>
1153         * gm2-compiler/M2ALU.def (PopChar): New procedure function.
1154         * gm2-compiler/M2ALU.mod (PopChar): New procedure function.
1155         * gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect
1156         a single constant char and build a C string.
1157         * gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure
1158         function.
1159         (GetStr): New procedure function.
1160         (FoldAdd): Use IsConstStr.
1161         * gm2-compiler/M2Quads.mod: Formatting changes.
1162         * gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function.
1163         * gm2-gcc/m2expr.def (GetCstInteger): New procedure function.
1164         * gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype.
1166 2023-04-05  Gaius Mulley  <gaiusmod2@gmail.com>
1168         PR modula2/109423
1169         * gm2-compiler/M2Base.def (Unbounded): Remove.
1170         * gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
1171         attribute.
1172         * gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
1173         error format string.
1174         (BuildExceptProcedure): Correct error format string.
1175         (BuildAdrFunction): Call PutWriteQuad when taking the
1176         address of a variable.
1177         * gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
1178         parameters.
1179         * gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
1180         * gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
1181         (PopAllocationExemption): Remove f.
1182         * gm2-libs/FIO.mod (BufferedWrite): Remove result.
1183         * gm2-libs/FormatStrings.mod (Copy): Remove endpos and
1184         afterperc.
1185         (HandlePercent): Remove result.
1186         * gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
1187         * gm2-libs/M2Dependent.mod (CreateModule): Remove p0
1188         and p1.
1189         (DumpModuleData): Remove mptr.
1190         (ConstructModules): Remove nulp.
1191         * gm2-libs/RTExceptions.mod (PopHandler): Remove i.
1192         * gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
1193         and afm.
1194         * gm2-libs/SFIO.mod (ReadS): Remove c.
1195         * gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
1196         whole and fraction.
1198 2023-04-03  Gaius Mulley  <gaiusmod2@gmail.com>
1200         PR modula2/109388
1201         * gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration):
1202         Remove second parameter module.  Adjust all callers to
1203         remove the second parameter.
1204         * gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove.
1205         (InStopSet): Remove.
1206         (PeepToken): Remove.
1207         (PushQualident): Remove.
1208         (SimpleDes): Remove.
1209         (ActualParameters): Remove.
1211 2023-04-02  Gaius Mulley  <gaiusmod2@gmail.com>
1213         PR modula2/109336
1214         * Make-lang.in (GM2_O): Set to -O0.
1215         (GM2_LIBS): Remove target libraries and replace with build libs.
1216         (BUILD-LIBS): New declaration.
1217         (m2/gm2-libs/libgm2.a): New rule.
1218         (m2/gm2-libs/%.o): New rule.
1219         (m2/gm2-libs/choosetemp.o): New rule.
1220         * gm2-compiler/M2ColorString.mod (append): Use ADR rather than
1221         implicit conversion.
1222         * gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when
1223         a source file is not found.  Improve comments and formatting.
1224         * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove
1225         ansi-decl.h.  Add getopt.h.
1226         (cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_.
1227         * gm2spec.cc (lang_specific_driver): Do not skip -fmod=.
1228         Remove comment.
1230 2023-03-29  Gaius Mulley  <gaiusmod2@gmail.com>
1232         PR modula2/109336
1233         PR modula2/109315
1234         * gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by
1235         ensuring the extension contains the ".".
1236         (CalculateStemName): Re-formatted.
1237         (ExtractExtension): Re-formatted.
1238         (ExtractModule): Re-formatted.
1239         * gm2-compiler/M2Options.def (setdefextension): Add block comment.
1240         (setmodextension): Add block comment.  Re-formatted.
1241         * gm2-compiler/M2Options.mod (setdefextension): Add block comment.
1242         (setmodextension): Add block comment.  Re-formatted.
1243         * gm2-compiler/M2Search.mod (FindSourceDefFile): Use
1244         DefaultDefExt.
1245         (DefaultDefExt): New constant.
1246         (DefaultModExt): New constant.
1247         (FindSourceModFile): Use DefaultModExt.
1248         * gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct
1249         spelling.
1250         * gm2spec.cc (M2SOURCE): New constant.
1251         (LANGSPEC): New value.
1252         (MATHLIB): New value.
1253         (WITHLIBC): New value.
1254         (SKIPOPT): New value.
1255         (lang_specific_driver): Replace seen_module_extension bool with
1256         module_extension char *.  Detect -fmod= and remember extension.
1257         Use the extension to detect modula-2 source and mark it as such.
1259 2023-03-23  Gaius Mulley  <gaiusmod2@gmail.com>
1261         PR modula2/109264
1262         * gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment
1263         out ErrorString in debugging block.
1264         (BuildConstructorStart): Replace Assert with a call to
1265         MetaErrorT3.  Import MetaErrorT3.
1266         * gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename
1267         local variables.
1268         (WalkFunctionParam): Remove test for IsEnumeration when
1269         resolving MIN or MAX parameters.
1270         * gm2-compiler/PHBuild.bnf (BlockAssert): New procedure.
1271         (ErrorArrayat): New procedure.
1272         (Expect): Renamed parameter t to tok.
1273         (PushQualident): New rule.
1274         (ConstSetOrQualidentOrFunction): Force AutoOn.
1275         (TypeDeclaration): Add debugging assert.
1276         (SimpleType): Add debugging assert.
1277         (DefaultRecordAttributes): New rule (and bugfix).
1278         (FieldPragmaExpression): New rule (and bugfix).
1279         (PragmaConstExpression): New rule (and bugfix).
1280         (SetOrDesignatorOrFunction): Add debugging assert.
1281         (Block): Add debugging assert.
1282         * gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int
1283         to bool.
1284         * gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool.
1285         (m2expr_GetBooleanTrue): Remove.
1286         (m2expr_GetBooleanFalse): Remove.
1287         * gm2-gcc/m2options.h (M2Options_SetStatistics): Replace
1288         int with bool.
1290 2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>
1292         PR modula2/109248
1293         * Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C
1294         and C++ compiles.
1295         * gm2spec.cc (add_m2_I_path): Indentation.
1296         (lang_specific_driver): New variable seen_pathname.
1297         Detect -fm2-pathname.  If not seen then push_back_Ipath (".").
1298         Change non iso library path to "m2cor,m2log,m2pim,m2iso".
1300 2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>
1302         PR modula2/107630
1303         * Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove
1304         m2/gm2-libs-boot/M2LINK.o.
1305         (m2/stage1/cc1gm2$(exeext)): Ditto.
1306         (GM2-LIBS-BOOT-DEFS): Remove M2LINK.def.
1307         (GM2-LIBS-DEFS): Ditto.
1308         (m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS.
1309         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
1310         (m2/mc-boot/main.o): Ditto.
1311         (mcflex.o): Add $(CFLAGS).
1312         (m2/gm2-libs-boot/M2LINK.o): Remove rule.
1313         * gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove.
1314         * gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove.
1315         (M2LinkIndex): Remove.
1316         (DoVariableDeclaration): Remove initial and call to
1317         AddEntryM2Link.
1318         (AddEntryM2Link): Remove.
1319         (GetEntryM2Link): Remove.
1320         (DeclareM2linkGlobals): Remove.
1321         (DetectM2LinkInitial): Remove.
1322         (InitM2LinkModule): Remove.
1323         * gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to
1324         DeclareM2linkGlobals.
1325         * gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra
1326         parameter containing runtime module override to ConstructModules.
1327         * gm2-compiler/M2Scaffold.mod: Update comment describing
1328         ConstructModules.
1329         * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder):
1330         Remove.
1331         * gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder
1332         parameter.
1333         * gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter.
1334         * gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder
1335         parameter.
1336         * gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder
1337         parameter.
1338         * gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter.
1339         * gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder
1340         parameter.
1341         * gm2-libs/M2LINK.def: Removed.
1343 2023-03-21  Gaius Mulley  <gaiusmod2@gmail.com>
1345         * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
1346         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
1347         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
1348         (m2/mc-boot/main.o): Add $(CXXFLAGS).
1350 2023-03-19  Gaius Mulley  <gaiusmod2@gmail.com>
1352         * Make-maintainer.in (gm2.maintainer-clean): Remove.
1353         (gm2.maintainer-help): Add gm2.maintainer-tools,
1354         gm2.maintainer-doc.  Remove gm2.maintainer-clean.
1355         Change target-independent directory to target-independent/m2.
1356         * gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__.
1357         * gm2-compiler/M2Options.def (SetAutoInit): Update comment.
1358         * gm2-compiler/M2Options.mod (SetAutoInit): Update comment.
1359         * gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len
1360         to _name_high.
1361         * gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to
1362         ADDRESS and add _name_high.
1363         * gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change
1364         int to bool.
1365         * gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change
1366         int to bool.
1367         * gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool.
1368         (m2expr_BuildIfConstInVar): Change int to bool.
1369         (m2expr_BuildIfNotConstInVar): Change int to bool.
1370         (m2expr_BuildIfVarInVar): Change int to bool.
1371         (m2expr_BuildIfNotVarInVar): Change int to bool.
1372         (m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool.
1373         * gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool.
1374         (m2expr_BuildIfVarInVar): Change int to bool.
1375         (m2expr_BuildIfNotConstInVar): Change int to bool.
1376         (m2expr_BuildIfConstInVar): Change int to bool.
1377         * gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool.
1378         (M2Options_SetNilCheck): Change int to bool.
1379         (M2Options_SetReturnCheck): Change int to bool.
1380         (M2Options_SetCaseCheck): Change int to bool.
1381         (M2Options_SetCheckAll): Change int to bool.
1382         (M2Options_SetVerboseUnbounded): Change int to bool.
1383         (M2Options_SetUnboundedByReference): Change int to bool.
1384         (M2Options_SetOptimizing): Change int to bool.
1385         (M2Options_SetQuiet): Change int to bool.
1386         (M2Options_SetCpp): Change int to bool.
1387         (M2Options_SetM2g): Change int to bool.
1388         (M2Options_SetLowerCaseKeywords): Change int to bool.
1389         (M2Options_SetVerbose): Change int to bool.
1390         * gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool.
1391         (m2treelib_get_field_no): Change int to bool.
1392         (m2treelib_get_set_value): Change int to bool.
1393         (m2treelib_get_set_address): Change int to bool.
1394         (m2treelib_get_set_address_if_var): Change int to bool.
1395         * gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool.
1396         (get_set_address): Change int to bool.
1397         (get_set_value): Change int to bool.
1398         (get_field_no): Change int to bool.
1399         (get_rvalue): Change int to bool.
1400         * gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool.
1401         (m2treelib_get_set_value): Change int to bool.
1402         (m2treelib_get_set_address): Change int to bool.
1403         (m2treelib_get_set_address_if_var): Change int to bool.
1404         * gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool.
1405         * gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool.
1406         * gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool.
1407         * gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool.
1408         (ldtoa_ldtoa): Change int to bool.
1409         * m2.flex (functionInfo): Change int to bool.
1410         (pushFunction): Change parameter from int to bool.
1411         * mc-boot/GDebug.cc (Debug_Halt): Rebuild.
1412         * mc-boot/GDebug.h (Debug_Halt): Rebuild.
1413         * mc-boot/GDynamicStrings.cc: Rebuild.
1414         * mc-boot/GDynamicStrings.h: Rebuild.
1415         * mc-boot/GFIO.cc: Rebuild.
1416         * mc-boot/GM2RTS.cc: Rebuild.
1417         * mc-boot/GM2RTS.h: Rebuild.
1418         * mc-boot/GPushBackInput.cc: Rebuild.
1419         * mc-boot/GRTExceptions.cc: Rebuild.
1420         * mc-boot/GRTint.cc: Rebuild.
1421         * mc-boot/GSysStorage.cc: Rebuild.
1422         * mc-boot/Gdecl.cc: Rebuild.
1423         * mc-boot/GsymbolKey.cc: Rebuild.
1424         * mc/symbolKey.mod: Rebuild.
1425         * target-independent/m2/Builtins.texi: Rebuild.
1426         * target-independent/m2/SYSTEM-iso.texi: Rebuild.
1427         * target-independent/m2/SYSTEM-pim.texi: Rebuild.
1428         * target-independent/m2/gm2-libs.texi: Rebuild.
1429         * tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to
1430         gm2-lib-log.
1432 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
1434         PR modula2/109032
1435         * gm2-gcc/m2expr.cc: Correct ? : order in comments.
1436         (m2expr_BuildDivM2): Improve comment.
1437         * lang.opt: Improve option descriptions.
1439 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
1441         PR modula2/109102
1442         * gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to
1443         use %qs rather than quotes.
1445 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
1447         * gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix):
1448         Re-implemented.
1449         * gm2-libs/SysStorage.mod (enableTrace): Disable tracing.
1451 2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>
1453         * gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters
1454         reordered.
1455         (DelSymKey): Ditto.
1456         * gm2-compiler/ppg.mod (GetEpsilon): Ditto.
1457         (GetReachEnd): Ditto.
1458         (GetFollow): Ditto.
1459         (CodeCondition): Ditto.
1460         (CodeThenDo): Ditto.
1461         (CodeEnd): Ditto.
1462         (RecoverCondition): Ditto.
1463         (ConditionIndent): Ditto.
1464         * gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto.
1465         * gm2-libs-coroutines/Executive.mod (Assert): Ditto.
1466         (Resume): Remove redundant comments.
1467         (Wait): Remove redundant comments.
1468         * gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters
1469         reordered.
1470         (IOTransferHandler): Ditto.
1471         (Finished): Ditto.
1472         (localInit): Ditto.
1473         * gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters
1474         reordered.
1475         (Cancel): Ditto.
1476         (ReArmEvent): Ditto.
1477         (OnActiveQueue): Ditto.
1478         * gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto.
1479         (Transfer): Ditto.
1480         (IOTRANSFER): Ditto.
1481         * gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters.
1482         * gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered.
1483         (HaltC): Ditto.
1484         * gm2-libs-iso/M2RTS.mod: Ditto.
1485         * gm2-libs-iso/RTentity.mod (PutKey): Ditto.
1486         (DelKey): Ditto.
1487         (findChildAndParent): Ditto.
1488         (assert): Ditto.
1489         * gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace.
1490         Add UseMallocFree test.
1491         (DEALLOCATE): Add DebugTrace.  Add UseMallocFree test.
1492         (assert): Halt parameters reordered.
1493         * gm2-libs-log/Termbase.mod (Read): Ditto.
1494         (KeyPressed): Ditto.
1495         (Write): Ditto.
1496         (Init): Ditto.
1497         * gm2-libs/Debug.def (Halt): Halt parameters reordered.
1498         * gm2-libs/Debug.mod (Halt): Ditto.
1499         * gm2-libs/DynamicStrings.def (PopAllocation): Improve comment.
1500         * gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment.
1501         Halt parameters reordered.
1502         * gm2-libs/M2RTS.def (Halt): Ditto.
1503         (HaltC): Ditto.
1504         * gm2-libs/M2RTS.mod (Halt): Ditto.
1505         (HaltC): Ditto.
1506         * gm2-libs/PushBackInput.mod (PutStr): Ditto.
1507         (PutString): Ditto.
1508         (PutCh): Ditto.
1509         * gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto.
1510         * gm2-libs/RTint.mod (ReArmTimeVector): Ditto.
1511         (GetTimeVector): Ditto.
1512         (AttachVector): Ditto.
1513         (IncludeVector): Ditto.
1514         (Listen): Ditto.
1515         * gm2-libs/SysStorage.mod (ALLOCATE): Ditto.
1516         (DEALLOCATE): Ditto.
1517         (REALLOCATE): Ditto.
1518         * gm2-libs-coroutines/Debug.def: Removed.
1519         * gm2-libs-coroutines/Debug.mod: Removed.
1521 2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>
1523         * Make-lang.in: Rename target-independent to
1524         target-independent/m2.
1525         * target-independent/readme.txt: Update.
1526         * target-independent/m2/gm2-ebnf.texi: New file.
1527         * target-independent/m2/gpl_v3_without_node.texi: New file.
1528         * target-independent/Builtins.texi: Rename ...
1529         * target-independent/m2/Builtins.texi: ... to this.
1530         * target-independent/SYSTEM-iso.texi: Rename ...
1531         * target-independent/m2/SYSTEM-iso.texi: ... to this.
1532         * target-independent/SYSTEM-pim.texi: Rename ...
1533         * target-independent/m2/SYSTEM-pim.texi: ... to this.
1534         * target-independent/gm2-libs.texi: Rename ...
1535         * target-independent/m2/gm2-libs.texi: ... to this.
1537 2023-03-15  Gaius Mulley  <gaiusmod2@gmail.com>
1539         PR modula2/109125
1540         * gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
1541         * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.
1543 2023-03-14  Gaius Mulley  <gaiusmod2@gmail.com>
1545         PR modula2/109125
1546         * gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int
1547         for bool.
1548         * gm2-libs-ch/termios.c (doSetUnset): Replace int for bool.
1549         * gm2-libs/Builtins.mod (isfinitef): Correct typo in return
1550         statement.
1552 2023-03-13  Gaius Mulley  <gaiusmod2@gmail.com>
1554         PR modula2/109103
1555         * gm2-compiler/M2ALU.def (PushString): New parameter issueError.
1556         * gm2-compiler/M2ALU.mod (PushString): New parameter issueError.
1557         * gm2-compiler/SymbolTable.mod (PushString): New parameter issueError.
1558         * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass
1559         location to interpret_m2_integer.
1560         (m2decl_BuildConstLiteralNumber): New parameter issueError.
1561         * gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool.
1562         (m2expr_IsFalse): Replace int with bool.
1563         (m2expr_AreConstantsEqual): Replace int with bool.
1564         (m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at.
1565         (append_digit): Ditto.
1566         (m2expr_interpret_integer): Add location parameter.
1567         (append_m2_digit): Call m2linemap_internal_error_at.
1568         (m2expr_interpret_m2_integer): Add location parameter.
1569         (m2expr_GetSizeOf): Replace sizeof with SIZE in error message.
1570         * gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual):
1571         Replace int with bool.
1572         (m2expr_AreConstantsEqual): Ditto.
1573         (m2expr_IsFalse): Ditto.
1574         (m2expr_IsTrue): Ditto.
1575         (m2expr_interpret_integer): Add location parameter.
1576         (m2expr_interpret_m2_integer): Add location parameter.
1577         * gm2-gcc/m2linemap.cc (mformat_value): New function.
1578         (expand_format): New function.
1579         (expand_message): New function.
1580         (gm2_internal_error_at): New function.
1581         (m2linemap_internal_error_at): New function.
1582         * gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function.
1583         * gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool.
1584         (M2Options_SetPIM): Ditto.
1585         (M2Options_SetPIM2): Ditto.
1586         (M2Options_SetPIM3): Ditto.
1587         (M2Options_SetPIM4): Ditto.
1588         (M2Options_SetFloatValueCheck): Ditto.
1589         (M2Options_SetWholeValueCheck): Ditto.
1590         (M2Options_GetISO): Ditto.
1591         (M2Options_GetPIM): Ditto.
1592         (M2Options_GetPIM2): Ditto.
1593         (M2Options_GetPIM3): Ditto.
1594         (M2Options_GetPIM4): Ditto.
1595         (M2Options_GetPositiveModFloor): Ditto.
1596         (M2Options_GetFloatValueCheck): Ditto.
1597         (M2Options_GetWholeValueCheck): Ditto.
1598         (M2Options_Setc): Ditto.
1599         (M2Options_Getc): Ditto.
1600         (M2Options_SetPPOnly): Ditto.
1601         (M2Options_GetPPOnly): Ditto.
1602         (M2Options_SetUselist): Ditto.
1603         (M2Options_SetAutoInit): Ditto.
1604         (M2Options_SetPositiveModFloor): Ditto.
1605         (M2Options_SetNilCheck): Ditto.
1606         (M2Options_SetWholeDiv): Ditto.
1607         (M2Options_SetIndex): Ditto.
1608         (M2Options_SetRange): Ditto.
1609         (M2Options_SetReturnCheck): Ditto.
1610         (M2Options_SetCaseCheck): Ditto.
1611         (M2Options_SetCheckAll): Ditto.
1612         (M2Options_SetExceptions): Ditto.
1613         (M2Options_SetStyle): Ditto.
1614         (M2Options_SetPedantic): Ditto.
1615         (M2Options_SetPedanticParamNames): Ditto.
1616         (M2Options_SetPedanticCast): Ditto.
1617         (M2Options_SetExtendedOpaque): Ditto.
1618         (M2Options_SetVerboseUnbounded): Ditto.
1619         (M2Options_SetXCode): Ditto.
1620         (M2Options_SetCompilerDebugging): Ditto.
1621         (M2Options_SetQuadDebugging): Ditto.
1622         (M2Options_SetDebugTraceQuad): Ditto.
1623         (M2Options_SetDebugTraceAPI): Ditto.
1624         (M2Options_SetSources): Ditto.
1625         (M2Options_SetUnboundedByReference): Ditto.
1626         (M2Options_SetDumpSystemExports): Ditto.
1627         (M2Options_SetOptimizing): Ditto.
1628         (M2Options_SetQuiet): Ditto.
1629         (M2Options_SetCC1Quiet): Ditto.
1630         (M2Options_SetCpp): Ditto.
1631         (M2Options_SetSwig): Ditto.
1632         (M2Options_SetWholeProgram): Ditto.
1633         (M2Options_SetDebugFunctionLineNumbers): Ditto.
1634         (M2Options_SetGenerateStatementNote): Ditto.
1635         (M2Options_GetCpp): Ditto.
1636         (M2Options_GetM2g): Ditto.
1637         (M2Options_SetM2g): Ditto.
1638         (M2Options_SetLowerCaseKeywords): Ditto.
1639         (M2Options_SetVerbose): Ditto.
1640         (M2Options_SetUnusedVariableChecking): Ditto.
1641         (M2Options_SetUnusedParameterChecking): Ditto.
1642         (M2Options_SetStrictTypeChecking): Ditto.
1643         (M2Options_SetWall): Ditto.
1644         (M2Options_SetSaveTemps): Ditto.
1645         (M2Options_GetSaveTemps): Ditto.
1646         (M2Options_SetScaffoldStatic): Ditto.
1647         (M2Options_SetScaffoldDynamic): Ditto.
1648         (M2Options_SetScaffoldMain): Ditto.
1649         (M2Options_SetGenModuleList): Ditto.
1650         (M2Options_SetShared): Ditto.
1651         * gm2-libs-ch/M2LINK.c: Ditto.
1652         * gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace
1653         const char * with const void *.
1654         (M2RTS_RegisterModule): Ditto.
1655         (M2RTS_ConstructModules): Ditto.
1656         * gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter
1657         issueError.
1658         * gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter
1659         issueError.
1661 2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>
1663         PR modula2/109089
1664         * gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import.
1665         * gm2-gcc/gcc-consolidation.h (stdbool.h): Include.
1666         * gm2-gcc/init.h (defined): Change block start.
1667         * gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true.
1668         * gm2-gcc/m2block.h: Change int to bool.
1669         * gm2-gcc/m2builtins.cc: Ditto.
1670         * gm2-gcc/m2builtins.h: Ditto.
1671         * gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and
1672         int to bool.
1673         * gm2-gcc/m2convert.h: Change int to bool.
1674         * gm2-gcc/m2decl.cc: Change int to bool.
1675         * gm2-gcc/m2decl.h: Change int to bool.
1676         * gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and
1677         int to bool.
1678         * gm2-gcc/m2expr.h: Change int to bool.
1679         * gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and
1680         int to bool.
1681         * gm2-gcc/m2statement.h: Change int to bool.
1682         * gm2-gcc/m2top.cc: Change int to bool.
1683         * gm2-gcc/m2top.h: Change int to bool.
1684         * gm2-gcc/m2tree.cc: Change int to bool.
1685         * gm2-gcc/m2tree.h: Change int to bool.
1686         * gm2-gcc/m2type.cc: Change int to bool.
1687         * gm2-gcc/m2type.h: Change int to bool.
1688         * gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE.
1689         * gm2-libs/Builtins.def (isfinitef): Change return value from
1690         BOOLEAN to INTEGER.
1691         (isfinite): Ditto.
1692         (isfinitel): Ditto.
1693         * gm2-libs/Builtins.mod (isfinitef): Change return value from
1694         BOOLEAN to INTEGER.
1695         (isfinite): Ditto.
1696         (isfinitel): Ditto.
1697         * mc-boot/GASCII.cc: Rebuild.
1698         * mc-boot/GASCII.h: Rebuild.
1699         * mc-boot/GArgs.cc: Rebuild.
1700         * mc-boot/GArgs.h: Rebuild.
1701         * mc-boot/GAssertion.cc: Rebuild.
1702         * mc-boot/GAssertion.h: Rebuild.
1703         * mc-boot/GBreak.cc: Rebuild.
1704         * mc-boot/GBreak.h: Rebuild.
1705         * mc-boot/GCOROUTINES.h: Rebuild.
1706         * mc-boot/GCmdArgs.cc: Rebuild.
1707         * mc-boot/GCmdArgs.h: Rebuild.
1708         * mc-boot/GDebug.cc: Rebuild.
1709         * mc-boot/GDebug.h: Rebuild.
1710         * mc-boot/GDynamicStrings.cc: Rebuild.
1711         * mc-boot/GDynamicStrings.h: Rebuild.
1712         * mc-boot/GEnvironment.cc: Rebuild.
1713         * mc-boot/GEnvironment.h: Rebuild.
1714         * mc-boot/GFIO.cc: Rebuild.
1715         * mc-boot/GFIO.h: Rebuild.
1716         * mc-boot/GFormatStrings.cc: Rebuild.
1717         * mc-boot/GFormatStrings.h: Rebuild.
1718         * mc-boot/GFpuIO.cc: Rebuild.
1719         * mc-boot/GFpuIO.h: Rebuild.
1720         * mc-boot/GIO.cc: Rebuild.
1721         * mc-boot/GIO.h: Rebuild.
1722         * mc-boot/GIndexing.cc: Rebuild.
1723         * mc-boot/GIndexing.h: Rebuild.
1724         * mc-boot/GM2Dependent.cc: Rebuild.
1725         * mc-boot/GM2Dependent.h: Rebuild.
1726         * mc-boot/GM2EXCEPTION.cc: Rebuild.
1727         * mc-boot/GM2EXCEPTION.h: Rebuild.
1728         * mc-boot/GM2LINK.h: Rebuild.
1729         * mc-boot/GM2RTS.cc: Rebuild.
1730         * mc-boot/GM2RTS.h: Rebuild.
1731         * mc-boot/GMemUtils.cc: Rebuild.
1732         * mc-boot/GMemUtils.h: Rebuild.
1733         * mc-boot/GNumberIO.cc: Rebuild.
1734         * mc-boot/GNumberIO.h: Rebuild.
1735         * mc-boot/GPushBackInput.cc: Rebuild.
1736         * mc-boot/GPushBackInput.h: Rebuild.
1737         * mc-boot/GRTExceptions.cc: Rebuild.
1738         * mc-boot/GRTExceptions.h: Rebuild.
1739         * mc-boot/GRTco.h: Rebuild.
1740         * mc-boot/GRTentity.h: Rebuild.
1741         * mc-boot/GRTint.cc: Rebuild.
1742         * mc-boot/GRTint.h: Rebuild.
1743         * mc-boot/GSArgs.cc: Rebuild.
1744         * mc-boot/GSArgs.h: Rebuild.
1745         * mc-boot/GSFIO.cc: Rebuild.
1746         * mc-boot/GSFIO.h: Rebuild.
1747         * mc-boot/GSYSTEM.h: Rebuild.
1748         * mc-boot/GSelective.h: Rebuild.
1749         * mc-boot/GStdIO.cc: Rebuild.
1750         * mc-boot/GStdIO.h: Rebuild.
1751         * mc-boot/GStorage.cc: Rebuild.
1752         * mc-boot/GStorage.h: Rebuild.
1753         * mc-boot/GStrCase.cc: Rebuild.
1754         * mc-boot/GStrCase.h: Rebuild.
1755         * mc-boot/GStrIO.cc: Rebuild.
1756         * mc-boot/GStrIO.h: Rebuild.
1757         * mc-boot/GStrLib.cc: Rebuild.
1758         * mc-boot/GStrLib.h: Rebuild.
1759         * mc-boot/GStringConvert.cc: Rebuild.
1760         * mc-boot/GStringConvert.h: Rebuild.
1761         * mc-boot/GSysExceptions.h: Rebuild.
1762         * mc-boot/GSysStorage.cc: Rebuild.
1763         * mc-boot/GSysStorage.h: Rebuild.
1764         * mc-boot/GTimeString.cc: Rebuild.
1765         * mc-boot/GTimeString.h: Rebuild.
1766         * mc-boot/GUnixArgs.h: Rebuild.
1767         * mc-boot/Galists.cc: Rebuild.
1768         * mc-boot/Galists.h: Rebuild.
1769         * mc-boot/Gdecl.cc: Rebuild.
1770         * mc-boot/Gdecl.h: Rebuild.
1771         * mc-boot/Gdtoa.h: Rebuild.
1772         * mc-boot/Gerrno.h: Rebuild.
1773         * mc-boot/Gkeyc.cc: Rebuild.
1774         * mc-boot/Gkeyc.h: Rebuild.
1775         * mc-boot/Gldtoa.h: Rebuild.
1776         * mc-boot/Glibc.h: Rebuild.
1777         * mc-boot/Glibm.h: Rebuild.
1778         * mc-boot/Glists.cc: Rebuild.
1779         * mc-boot/Glists.h: Rebuild.
1780         * mc-boot/GmcComment.cc: Rebuild.
1781         * mc-boot/GmcComment.h: Rebuild.
1782         * mc-boot/GmcComp.cc: Rebuild.
1783         * mc-boot/GmcComp.h: Rebuild.
1784         * mc-boot/GmcDebug.cc: Rebuild.
1785         * mc-boot/GmcDebug.h: Rebuild.
1786         * mc-boot/GmcError.cc: Rebuild.
1787         * mc-boot/GmcError.h: Rebuild.
1788         * mc-boot/GmcFileName.cc: Rebuild.
1789         * mc-boot/GmcFileName.h: Rebuild.
1790         * mc-boot/GmcLexBuf.cc: Rebuild.
1791         * mc-boot/GmcLexBuf.h: Rebuild.
1792         * mc-boot/GmcMetaError.cc: Rebuild.
1793         * mc-boot/GmcMetaError.h: Rebuild.
1794         * mc-boot/GmcOptions.cc: Rebuild.
1795         * mc-boot/GmcOptions.h: Rebuild.
1796         * mc-boot/GmcPreprocess.cc: Rebuild.
1797         * mc-boot/GmcPreprocess.h: Rebuild.
1798         * mc-boot/GmcPretty.cc: Rebuild.
1799         * mc-boot/GmcPretty.h: Rebuild.
1800         * mc-boot/GmcPrintf.cc: Rebuild.
1801         * mc-boot/GmcPrintf.h: Rebuild.
1802         * mc-boot/GmcQuiet.cc: Rebuild.
1803         * mc-boot/GmcQuiet.h: Rebuild.
1804         * mc-boot/GmcReserved.cc: Rebuild.
1805         * mc-boot/GmcReserved.h: Rebuild.
1806         * mc-boot/GmcSearch.cc: Rebuild.
1807         * mc-boot/GmcSearch.h: Rebuild.
1808         * mc-boot/GmcStack.cc: Rebuild.
1809         * mc-boot/GmcStack.h: Rebuild.
1810         * mc-boot/GmcStream.cc: Rebuild.
1811         * mc-boot/GmcStream.h: Rebuild.
1812         * mc-boot/Gmcflex.h: Rebuild.
1813         * mc-boot/Gmcp1.cc: Rebuild.
1814         * mc-boot/Gmcp1.h: Rebuild.
1815         * mc-boot/Gmcp2.cc: Rebuild.
1816         * mc-boot/Gmcp2.h: Rebuild.
1817         * mc-boot/Gmcp3.cc: Rebuild.
1818         * mc-boot/Gmcp3.h: Rebuild.
1819         * mc-boot/Gmcp4.cc: Rebuild.
1820         * mc-boot/Gmcp4.h: Rebuild.
1821         * mc-boot/Gmcp5.cc: Rebuild.
1822         * mc-boot/Gmcp5.h: Rebuild.
1823         * mc-boot/GnameKey.cc: Rebuild.
1824         * mc-boot/GnameKey.h: Rebuild.
1825         * mc-boot/GsymbolKey.cc: Rebuild.
1826         * mc-boot/GsymbolKey.h: Rebuild.
1827         * mc-boot/Gtermios.h: Rebuild.
1828         * mc-boot/Gtop.cc: Rebuild.
1829         * mc-boot/Gvarargs.cc: Rebuild.
1830         * mc-boot/Gvarargs.h: Rebuild.
1831         * mc-boot/Gwlists.cc: Rebuild.
1832         * mc-boot/Gwlists.h: Rebuild.
1833         * mc-boot/Gwrapc.h: Rebuild.
1834         * mc/decl.mod (doBoolC): New procedure.
1835         (doBaseC): Call doBoolC.
1836         * mc/keyc.mod: Import useBool.
1837         (genBool): New procedure.
1838         (genDefs): Call genBool.
1839         * mc/mcOptions.def (useBool): New procedure.
1840         * mc/mcOptions.mod (useBool): New procedure.
1841         (useBoolType): New variable.
1842         (optionIs): Assign useBoolType to TRUE.
1844 2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>
1846         * mc-boot-ch/GBuiltins.cc: New file.
1847         * mc-boot-ch/Gdtoa.cc: New file.
1848         * mc-boot-ch/Gerrno.cc: New file.
1849         * mc-boot-ch/Gldtoa.cc: New file.
1850         * mc-boot-ch/Gm2rtsdummy.cc: New file.
1851         * mc-boot/GASCII.cc: New file.
1852         * mc-boot/GArgs.cc: New file.
1853         * mc-boot/GAssertion.cc: New file.
1854         * mc-boot/GBreak.cc: New file.
1855         * mc-boot/GCmdArgs.cc: New file.
1856         * mc-boot/GDebug.cc: New file.
1857         * mc-boot/GDynamicStrings.cc: New file.
1858         * mc-boot/GEnvironment.cc: New file.
1859         * mc-boot/GFIO.cc: New file.
1860         * mc-boot/GFormatStrings.cc: New file.
1861         * mc-boot/GFpuIO.cc: New file.
1862         * mc-boot/GIO.cc: New file.
1863         * mc-boot/GIndexing.cc: New file.
1864         * mc-boot/GM2Dependent.cc: New file.
1865         * mc-boot/GM2EXCEPTION.cc: New file.
1866         * mc-boot/GM2RTS.cc: New file.
1867         * mc-boot/GMemUtils.cc: New file.
1868         * mc-boot/GNumberIO.cc: New file.
1869         * mc-boot/GPushBackInput.cc: New file.
1870         * mc-boot/GRTExceptions.cc: New file.
1871         * mc-boot/GRTint.cc: New file.
1872         * mc-boot/GSArgs.cc: New file.
1873         * mc-boot/GSFIO.cc: New file.
1874         * mc-boot/GStdIO.cc: New file.
1875         * mc-boot/GStorage.cc: New file.
1876         * mc-boot/GStrCase.cc: New file.
1877         * mc-boot/GStrIO.cc: New file.
1878         * mc-boot/GStrLib.cc: New file.
1879         * mc-boot/GStringConvert.cc: New file.
1880         * mc-boot/GSysStorage.cc: New file.
1881         * mc-boot/GTimeString.cc: New file.
1882         * mc-boot/Galists.cc: New file.
1883         * mc-boot/Gdecl.cc: New file.
1884         * mc-boot/Gkeyc.cc: New file.
1885         * mc-boot/Glists.cc: New file.
1886         * mc-boot/GmcComment.cc: New file.
1887         * mc-boot/GmcComp.cc: New file.
1888         * mc-boot/GmcDebug.cc: New file.
1889         * mc-boot/GmcError.cc: New file.
1890         * mc-boot/GmcFileName.cc: New file.
1891         * mc-boot/GmcLexBuf.cc: New file.
1892         * mc-boot/GmcMetaError.cc: New file.
1893         * mc-boot/GmcOptions.cc: New file.
1894         * mc-boot/GmcPreprocess.cc: New file.
1895         * mc-boot/GmcPretty.cc: New file.
1896         * mc-boot/GmcPrintf.cc: New file.
1897         * mc-boot/GmcQuiet.cc: New file.
1898         * mc-boot/GmcReserved.cc: New file.
1899         * mc-boot/GmcSearch.cc: New file.
1900         * mc-boot/GmcStack.cc: New file.
1901         * mc-boot/GmcStream.cc: New file.
1902         * mc-boot/Gmcp1.cc: New file.
1903         * mc-boot/Gmcp2.cc: New file.
1904         * mc-boot/Gmcp3.cc: New file.
1905         * mc-boot/Gmcp4.cc: New file.
1906         * mc-boot/Gmcp5.cc: New file.
1907         * mc-boot/GnameKey.cc: New file.
1908         * mc-boot/GsymbolKey.cc: New file.
1909         * mc-boot/Gtop.cc: New file.
1910         * mc-boot/Gvarargs.cc: New file.
1911         * mc-boot/Gwlists.cc: New file.
1912         * pge-boot/GASCII.cc: New file.
1913         * pge-boot/GArgs.cc: New file.
1914         * pge-boot/GAssertion.cc: New file.
1915         * pge-boot/GBuiltins.cc: New file.
1916         * pge-boot/GDebug.cc: New file.
1917         * pge-boot/GDynamicStrings.cc: New file.
1918         * pge-boot/GFIO.cc: New file.
1919         * pge-boot/GIO.cc: New file.
1920         * pge-boot/GIndexing.cc: New file.
1921         * pge-boot/GLists.cc: New file.
1922         * pge-boot/GM2Dependent.cc: New file.
1923         * pge-boot/GM2EXCEPTION.cc: New file.
1924         * pge-boot/GM2LINK.cc: New file.
1925         * pge-boot/GM2RTS.cc: New file.
1926         * pge-boot/GNameKey.cc: New file.
1927         * pge-boot/GNumberIO.cc: New file.
1928         * pge-boot/GOutput.cc: New file.
1929         * pge-boot/GPushBackInput.cc: New file.
1930         * pge-boot/GRTExceptions.cc: New file.
1931         * pge-boot/GRTco.cc: New file.
1932         * pge-boot/GSFIO.cc: New file.
1933         * pge-boot/GSYSTEM.cc: New file.
1934         * pge-boot/GSelective.cc: New file.
1935         * pge-boot/GStdIO.cc: New file.
1936         * pge-boot/GStorage.cc: New file.
1937         * pge-boot/GStrCase.cc: New file.
1938         * pge-boot/GStrIO.cc: New file.
1939         * pge-boot/GStrLib.cc: New file.
1940         * pge-boot/GSymbolKey.cc: New file.
1941         * pge-boot/GSysExceptions.cc: New file.
1942         * pge-boot/GSysStorage.cc: New file.
1943         * pge-boot/Gabort.cc: New file.
1944         * pge-boot/Gbnflex.cc: New file.
1945         * pge-boot/Gcbuiltin.cc: New file.
1946         * pge-boot/Gdtoa.cc: New file.
1947         * pge-boot/Gerrno.cc: New file.
1948         * pge-boot/Gldtoa.cc: New file.
1949         * pge-boot/Glibc.cc: New file.
1950         * pge-boot/Glibm.cc: New file.
1951         * pge-boot/Gmcrts.cc: New file.
1952         * pge-boot/Gpge.cc: New file.
1953         * pge-boot/Gwrapc.cc: New file.
1954         * pge-boot/main.cc: New file.
1955         * pge-boot/network.cc: New file.
1957 2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>
1959         * Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
1960         (MC-BOOT-C): Rename to MC-BOOT-CC.
1961         (BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
1962         (BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
1963         (m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
1964         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
1965         * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
1966         source file extension to .cc.
1967         (m2/gm2-ppg-boot/main.o): Ditto.
1968         (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
1969         to .cc.
1970         (m2/gm2-pg-boot/main.o): Ditto.
1971         (m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
1972         (m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
1973         (m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
1974         (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
1975         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
1976         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
1977         (m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
1978         (m2/gm2-pge-boot/main.o): Ditto.
1979         (mc-push): Ditto.
1980         (mc-clean): Ditto.
1981         (mc-stage2): Ditto.
1982         ((objdir)/m2/mc-boot-gen): Ditto.
1983         (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
1984         (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
1985         * mc-boot-ch/GBuiltins.c: Correct comment and rename.
1986         * mc-boot-ch/Gdtoa.c: Correct comment and rename.
1987         * mc-boot-ch/Gldtoa.c: Correct comment and rename
1988         * mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
1989         * mc-boot-ch/Gerrno.c: Rename.
1990         * mc-boot-ch/GRTco.c: Removed.
1991         * mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
1992         * mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
1993         * mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
1994         * mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
1995         * mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
1996         * mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
1997         * mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
1998         * mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
1999         * mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
2000         * mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
2001         * mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
2002         * mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
2003         * mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
2004         * mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
2005         * mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
2006         * mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
2007         * mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
2008         * mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
2009         * mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
2010         * mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
2011         * mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
2012         * mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
2013         * mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
2014         * mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
2015         * mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
2016         * mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
2017         * mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
2018         * mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
2019         * mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
2020         * mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
2021         * mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
2022         * mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
2023         * mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
2024         * mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
2025         * mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
2026         * mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
2027         * mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
2028         * mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
2029         * mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
2030         * mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
2031         * mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
2032         * mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
2033         * mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
2034         * mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
2035         * mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
2036         * mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
2037         * mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
2038         * mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
2039         * mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
2040         * mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
2041         * mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
2042         * mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
2043         * mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
2044         * mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
2045         * mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
2046         * mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
2047         * mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
2048         * mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
2049         * mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
2050         * mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
2051         * mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
2052         * pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
2053         * pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
2054         * pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
2055         * pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
2056         * pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
2057         * pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
2058         * pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
2059         * pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
2060         * pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
2061         * pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
2062         * pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
2063         * pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
2064         * pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
2065         * pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
2066         * pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
2067         * pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
2068         * pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
2069         * pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
2070         * pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
2071         * pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
2072         * pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
2073         * pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
2074         * pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
2075         * pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
2076         * pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
2077         * pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
2078         * pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
2079         * pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
2080         * pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
2081         * pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
2082         * pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
2083         * pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
2084         * pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
2085         * pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
2086         * pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
2087         * pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
2088         * pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
2089         * pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
2090         * pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
2091         * pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
2092         * pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
2093         * pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
2094         * pge-boot/README: Correct description.
2095         * pge-boot/main.c: Rename to pge-boot/main.cc.
2096         * pge-boot/network.c: Rename to pge-boot/network.cc.
2098 2023-02-28  Gaius Mulley  <gaiusmod2@gmail.com>
2100         PR modula2/108956
2101         * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to
2102         add the --suppress-noreturn option.
2103         * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New
2104         specific rule to add the --suppress-noreturn option.
2105         (m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New
2106         specific rule to add the --suppress-noreturn option.
2107         (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
2108         (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New
2109         specific rule to add the --suppress-noreturn option.
2110         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
2111         * gm2-libs-ch/UnixArgs.cc (LIBNAME): New define.
2112         (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
2113         * gm2-libs-ch/dtoa.cc (LIBNAME): New define.
2114         (_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule.
2115         * gm2-libs-ch/ldtoa.cc (LIBNAME): New define.
2116         (_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule.
2117         * pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname
2118         parameter.
2119         * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname
2120         parameter.
2121         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove.
2122         * pge-boot/GUnixArgs.cc (LIBNAME): New define.
2123         (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
2124         * gm2-libs/RTint.def (AttachVector): Rename parameter.
2125         * mc-boot/GDynamicStrings.c: Rebuilt.
2126         * mc-boot/GFIO.c: Rebuilt.
2127         * mc-boot/GIndexing.c: Rebuilt.
2128         * mc-boot/GM2EXCEPTION.c: Rebuilt.
2129         * mc-boot/GPushBackInput.c: Rebuilt.
2130         * mc-boot/GRTExceptions.c: Rebuilt.
2131         * mc-boot/GRTint.c: Rebuilt.
2132         * mc-boot/GRTint.h: Rebuilt.
2133         * mc-boot/GStdIO.c: Rebuilt.
2134         * mc-boot/GStringConvert.c: Rebuilt.
2135         * mc-boot/GSysStorage.c: Rebuilt.
2136         * mc-boot/Gdecl.c: Rebuilt.
2137         * mc-boot/Gkeyc.c: Rebuilt.
2138         * mc-boot/GmcComment.c: Rebuilt.
2139         * mc-boot/GmcComp.c: Rebuilt.
2140         * mc-boot/GmcDebug.c: Rebuilt.
2141         * mc-boot/GmcMetaError.c: Rebuilt.
2142         * mc-boot/GmcOptions.c: Rebuilt.
2143         * mc-boot/GmcOptions.h: Rebuilt.
2144         * mc-boot/GmcStack.c: Rebuilt.
2145         * mc-boot/GnameKey.c: Rebuilt.
2146         * mc-boot/GsymbolKey.c: Rebuilt.
2147         * mc/decl.mod:: Rebuilt.
2148         * mc/mcOptions.def: Rebuilt.
2149         * mc/mcOptions.mod:: Rebuilt.
2150         * pge-boot/GDynamicStrings.c: Rebuilt.
2151         * pge-boot/GFIO.c: Rebuilt.
2152         * pge-boot/GIndexing.c: Rebuilt.
2153         * pge-boot/GM2EXCEPTION.c: Rebuilt.
2154         * pge-boot/GM2RTS.c: Rebuilt.
2155         * pge-boot/GNameKey.c: Rebuilt.
2156         * pge-boot/GPushBackInput.c: Rebuilt.
2157         * pge-boot/GRTExceptions.c: Rebuilt.
2158         * pge-boot/GStdIO.c: Rebuilt.
2159         * pge-boot/GSymbolKey.c: Rebuilt.
2160         * pge-boot/GSysStorage.c: Rebuilt.
2162 2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>
2164         PR modula2/108261
2165         * Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
2166         remove.  DynamicPath.def add.
2167         (GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
2168         DynamicPath.mod add.
2169         * Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
2170         (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
2171         dependency.
2172         (PGE-DEF): New definition.
2173         (BUILD-BOOT-PG-H): New dependency.
2174         (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
2175         dependency.
2176         (BUILD-BOOT-PGE-H): New dependency.
2177         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
2178         dependency.
2179         (GM2PATH): Add pathname entries.
2180         (m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
2181         dependency.
2182         (m2/boot-bin/mc-opt$(exeext)): Fix -I path.
2183         * gm2-compiler/DynamicStringPath.def: Renamed module to
2184         DynamicPath.
2185         (GetUserPath): Remove.
2186         (GetSystemPath): Remove.
2187         (SetUserPath): Remove.
2188         (SetSystemPath): Remove.
2189         (DumpPath): New procedure definition.
2190         * gm2-compiler/DynamicStringPath.mod: Renamed module to
2191         DynamicPath.
2192         (GetUserPath): Remove.
2193         (GetSystemPath): Remove.
2194         (SetUserPath): Remove.
2195         (SetSystemPath): Remove.
2196         (DumpPath): Remove Debugging conditional.
2197         * gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
2198         GetLibName.
2199         (Debugging): New declaration.
2200         (GetFullSymName): Re-implemented to prefix (mange) libname
2201         to any extern variable/procedure which is IsExportQualified.
2202         * gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
2203         * gm2-compiler/M2Graph.mod (resolveImports): Add libname.
2204         * gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
2205         (GetM2Prefix): New procedure function.
2206         (SetM2PathName): New procedure.
2207         (GetM2PathName): New procedure function.
2208         * gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
2209         (GetM2Prefix): New procedure function implemented.
2210         (SetM2PathName): New procedure implemented.
2211         (GetM2PathName): New procedure function implemented.
2212         (RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
2213         * gm2-compiler/M2Quads.mod: Import GetLibName.
2214         (SafeRequestSym) Pass result of GetLibName to RequestDependant.
2215         (callRequestDependant): Add libname as a parameter.
2216         (BuildM2InitFunction): Add libname as a parameter.
2217         (BuildM2FiniFunction): Add libname as a parameter.
2218         (BuildM2CtorFunction): Add libname as a parameter.
2219         * gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
2220         if a definition source was found.
2221         * gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
2222         (FindSourceDefFile): Add named library parameter.
2223         (FindSourceModFile): Add named library parameter.
2224         * gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
2225         (FindSourceDefFile): Add named library parameter.
2226         (FindSourceModFile): Add named library parameter.
2227         * gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
2228         libname parameter.
2229         (PutLibName): New procedure.
2230         (GetLibName): New procedure function.
2231         * gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
2232         libname parameter.
2233         (GenName): Add libname parameter.
2234         (InitCtorFields): Add moduleSym as a parameter.
2235         (PutCtorExtern): Add libname parameter to GenName.
2236         * gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
2237         (_M2_DynamicPath_init): ...to this.
2238         (_M2_PathName_init): Added.
2239         * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
2240         Add m2pim as the manged component of the exported symbol.
2241         (m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
2242         * gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
2243         (M2Options_GetM2Prefix): New function.
2244         (M2Options_SetM2PathName): New function.
2245         (M2Options_GetM2PathName): New function.
2246         * gm2-lang.cc (push_back_Ipath): New function.
2247         (add_one_import_path): New function.
2248         (gm2_langhook_handle_option): Record -I component.  Call
2249         SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
2250         component.  Call SetM2Prefix when -fm2-prefix= is seen.
2251         (gm2_langhook_post_options): Iterative over pathname entries
2252         and call SetM2PathName, SetSearchPath as appropriate.
2253         * gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
2254         (DeconstructModules): Add libname parameter.
2255         (RegisterModule): Add libname parameter.
2256         (RequestDependant): Add libname parameter.
2257         * gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
2258         (DeconstructModules): Add libname parameter.
2259         (RegisterModule): Add libname parameter.
2260         (RequestDependant): Add libname parameter.
2261         * gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
2262         (DeconstructModules): Add libname parameter.
2263         (RegisterModule): Add libname parameter.
2264         (RequestDependant): Add libname parameter.
2265         * gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
2266         (DeconstructModules): Add libname parameter.
2267         (RegisterModule): Add libname parameter.
2268         (RequestDependant): Add libname parameter.
2269         * gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
2270         (DeconstructModules): Add libname parameter.
2271         (RegisterModule): Add libname parameter.
2272         (RequestDependant): Add libname parameter.
2273         * gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
2274         (DeconstructModules): Add libname parameter.
2275         (RegisterModule): Add libname parameter.
2276         (RequestDependant): Add libname parameter.
2277         * gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
2278         (DeconstructModules): Add libname parameter.
2279         (RegisterModule): Add libname parameter.
2280         (RequestDependant): Add libname parameter.
2281         * gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
2282         (DeconstructModules): Add libname parameter.
2283         (RegisterModule): Add libname parameter.
2284         (RequestDependant): Add libname parameter.
2285         * gm2-libs/RTint.mod (FindVector): Rename variables.
2286         (initInputVector): Rename variables.
2287         (initOutputVector): Rename variables.
2288         (InitTimeVector): Rename variables.
2289         (FindVectorNo): Rename variables.
2290         (FindPendingVector): Rename variables.
2291         (ReArmTimeVector): Rename variables.
2292         (GetTimeVector): Rename variables.
2293         (AttachVector): Rename variables.
2294         (AttachVector): Rename variables.
2295         (IncludeVector): Rename variables.
2296         (ExcludeVector): Rename variables.
2297         (AddFd): Rename variables.
2298         (AddFd): Rename variables.
2299         (DumpPendingQueue): Rename variables.
2300         (stop): Remove.
2301         (activatePending): Rename variables.
2302         (Listen): Rename variables.
2303         * gm2-libs/libc.def (snprintf): New function.
2304         * gm2-libs/sckt.def: Change all exported identifiers to be
2305         export qualified.
2306         * gm2spec.cc (push_back_Ipath): New function.
2307         (add_m2_I_path): New function.
2308         (lang_specific_driver): Skip -fm2-pathname= and remember pathname.
2309         Skip -I and record the path and current pathname.  Call add_m2_I_path.
2310         * lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
2311         * lang.opt (-fm2-pathname=): New entry.
2312         (-fm2-pathname): New entry.
2313         (-fm2-prefix=): New entry.
2314         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
2315         (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
2316         * mc-boot-ch/Glibc.c (libc_snprintf): New function.
2317         * mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
2318         (M2RTS_RegisterModule): Changed prototype.
2319         * mc-boot/GDynamicStrings.c: Rebuild.
2320         * mc-boot/GFIO.c: Rebuild.
2321         * mc-boot/GIndexing.c: Rebuild.
2322         * mc-boot/GM2Dependent.c: Rebuild.
2323         * mc-boot/GM2Dependent.h: Rebuild.
2324         * mc-boot/GM2EXCEPTION.c: Rebuild.
2325         * mc-boot/GM2RTS.c: Rebuild.
2326         * mc-boot/GM2RTS.h: Rebuild.
2327         * mc-boot/GPushBackInput.c: Rebuild.
2328         * mc-boot/GRTExceptions.c: Rebuild.
2329         * mc-boot/GRTint.c: Rebuild.
2330         * mc-boot/GStdIO.c: Rebuild.
2331         * mc-boot/GStringConvert.c: Rebuild.
2332         * mc-boot/GSysStorage.c: Rebuild.
2333         * mc-boot/Gdecl.c: Rebuild.
2334         * mc-boot/Gkeyc.c: Rebuild.
2335         * mc-boot/Glibc.h: Rebuild.
2336         * mc-boot/GmcComment.c: Rebuild.
2337         * mc-boot/GmcComp.c: Rebuild.
2338         * mc-boot/GmcDebug.c: Rebuild.
2339         * mc-boot/GmcMetaError.c: Rebuild.
2340         * mc-boot/GmcStack.c: Rebuild.
2341         * mc-boot/GnameKey.c: Rebuild.
2342         * mc-boot/GsymbolKey.c: Rebuild.
2343         * pge-boot/GASCII.c: Rebuild.
2344         * pge-boot/GArgs.c: Rebuild.
2345         * pge-boot/GAssertion.c: Rebuild.
2346         * pge-boot/GDebug.c: Rebuild.
2347         * pge-boot/GDynamicStrings.c: Rebuild.
2348         * pge-boot/GFIO.c: Rebuild.
2349         * pge-boot/GIO.c: Rebuild.
2350         * pge-boot/GIndexing.c: Rebuild.
2351         * pge-boot/GLists.c: Rebuild.
2352         * pge-boot/GM2Dependent.c: Rebuild.
2353         * pge-boot/GM2Dependent.h: Rebuild.
2354         * pge-boot/GM2EXCEPTION.c: Rebuild.
2355         * pge-boot/GM2RTS.c: Rebuild.
2356         * pge-boot/GM2RTS.h: Rebuild.
2357         * pge-boot/GNameKey.c: Rebuild.
2358         * pge-boot/GNumberIO.c: Rebuild.
2359         * pge-boot/GOutput.c: Rebuild.
2360         * pge-boot/GPushBackInput.c: Rebuild.
2361         * pge-boot/GRTExceptions.c: Rebuild.
2362         * pge-boot/GSFIO.c: Rebuild.
2363         * pge-boot/GStdIO.c: Rebuild.
2364         * pge-boot/GStorage.c: Rebuild.
2365         * pge-boot/GStrCase.c: Rebuild.
2366         * pge-boot/GStrIO.c: Rebuild.
2367         * pge-boot/GStrLib.c: Rebuild.
2368         * pge-boot/GSymbolKey.c: Rebuild.
2369         * pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
2370         (_M2_SysExceptions_fini): ... to this.
2371         * pge-boot/GSysStorage.c: Rebuild.
2372         (_M2_SysStorage_finish): Rename this...
2373         (_M2_SysStorage_fini): ... to this.
2374         * pge-boot/GUnixArgs.cc: New file.
2375         * pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
2376         (_M2_bnflex_fini): ... to this.
2377         * pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
2378         (_M2_errno_fini): ... to this.
2379         * pge-boot/Glibc.c (libc_snprintf): New function.
2380         * pge-boot/Glibc.h (libc_snprintf): New prototype.
2381         * pge-boot/Gpge.c (_M2_pge_finish): Rename this...
2382         (_M2_pge_fini): ... to this.
2383         * pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
2384         (_M2_termios_fini): ... to this.
2385         * pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
2386         (_M2_RTExceptions_fini): ... to this.
2387         (_M2_M2EXCEPTION_finish): Rename this...
2388         (_M2_M2EXCEPTION_fini): ... to this.
2389         (_M2_M2RTS_finish): Rename this...
2390         (_M2_M2RTS_fini): ... to this.
2391         (_M2_SysExceptions_finish): Rename this...
2392         (_M2_SysExceptions_fini): ... to this.
2393         (_M2_StrLib_finish): Rename this...
2394         (_M2_StrLib_fini): ... to this.
2395         (_M2_errno_finish): Rename this...
2396         (_M2_errno_fini): ... to this.
2397         (_M2_termios_finish): Rename this...
2398         (_M2_termios_fini): ... to this.
2399         (_M2_IO_finish): Rename this...
2400         (_M2_IO_fini): ... to this.
2401         (_M2_StdIO_finish): Rename this...
2402         (_M2_StdIO_fini): ... to this.
2403         (_M2_Debug_finish): Rename this...
2404         (_M2_Debug_fini): ... to this.
2405         (_M2_SysStorage_finish): Rename this...
2406         (_M2_SysStorage_fini): ... to this.
2407         (_M2_Storage_finish): Rename this...
2408         (_M2_Storage_fini): ... to this.
2409         (_M2_StrIO_finish): Rename this...
2410         (_M2_StrIO_fini): ... to this.
2411         (_M2_DynamicStrings_finish): Rename this...
2412         (_M2_DynamicStrings_fini): ... to this.
2413         (_M2_Assertion_finish): Rename this...
2414         (_M2_Assertion_fini): ... to this.
2415         (_M2_Indexing_finish): Rename this...
2416         (_M2_Indexing_fini): ... to this.
2417         (_M2_NameKey_finish): Rename this...
2418         (_M2_NameKey_fini): ... to this.
2419         (_M2_NumberIO_finish): Rename this...
2420         (_M2_NumberIO_fini): ... to this.
2421         (_M2_PushBackInput_finish): Rename this...
2422         (_M2_PushBackInput_fini): ... to this.
2423         (_M2_SymbolKey_finish): Rename this...
2424         (_M2_SymbolKey_fini): ... to this.
2425         (_M2_UnixArgs_finish): Rename this...
2426         (_M2_UnixArgs_fini): ... to this.
2427         (_M2_FIO_finish): Rename this...
2428         (_M2_FIO_fini): ... to this.
2429         (_M2_SFIO_finish): Rename this...
2430         (_M2_SFIO_fini): ... to this.
2431         (_M2_StrCase_finish): Rename this...
2432         (_M2_StrCase_fini): ... to this.
2433         (_M2_bnflex_finish): Rename this...
2434         (_M2_bnflex_fini): ... to this.
2435         (_M2_Lists_finish): Rename this...
2436         (_M2_Lists_fini): ... to this.
2437         (_M2_Args_finish): Rename this...
2438         (_M2_Args_fini): ... to this.
2439         (_M2_Output_finish): Rename this...
2440         (_M2_Output_fini): ... to this.
2441         (_M2_pge_finish): Rename this...
2442         (_M2_pge_fini): ... to this.
2443         * plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
2444         procedure names to their name mangled counterparts.
2445         * gm2-libs-iso/wrapsock.c: Removed.
2446         * gm2-libs-iso/wraptime.c: Removed.
2447         * mc-boot/Gpth.h: Removed.
2448         * gm2-compiler/PathName.def: New file.
2449         * gm2-compiler/PathName.mod: New file.
2450         * gm2-compiler/DynamicPath.def: New file.
2451         * gm2-compiler/DynamicPath.mod: New file.
2453 2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>
2455         PR modula2/108135
2456         * gm2-compiler/M2Search.mod (DSdbEnter): Comment out.
2457         (DSdbExit): Comment out.
2459 2023-02-06  Co-Authored by: Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2461         PR modula2/107234
2462         * m2pp.cc (m2pp_integer_cst): Use
2463         HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier.
2465 2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>
2467         * gm2-compiler/M2Preprocess.mod (BaseName): Comment out.
2468         * gm2-lang.cc (opt): Remove.
2469         * gm2spec.cc (add_include): Remove.
2470         (full_libraries): Remove.
2471         (concat_option): Remove.
2473 2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>
2475         * Make-lang.in (TEXISRC): Remove m2/images/gnu.eps.
2476         (RSTSRC): Remove m2/images/gnu.eps.
2477         (doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps.
2478         (doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps.
2479         (M2_PDFFILES): New definition.
2480         (m2.install-pdf): New rule.
2481         (m2.pod): Add $(objdir)/m2/images/gnu.eps.
2482         (m2.info): Add $(objdir)/m2/images/gnu.eps.
2483         (m2.html): New rule.
2484         (m2/gpl_v3_without_node.texi): New rule.
2485         (plugin/m2rte$(soext)): Simplify mkinstalldirs.
2486         (cc1gm2$(exeext)): Ditto.
2487         (m2/stage1/cc1gm2$(exeext)): Ditto.
2488         (m2/gm2-gcc/%.o): Ditto.
2489         (m2/gm2-gcc/rtegraph.o): Ditto.
2490         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
2491         (m2/mc-boot/$(SRC_PREFIX)%.o):Ditto.
2492         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
2493         (m2/mc-boot/main.o): Ditto.
2494         (m2/gm2-libs-boot/%.o): Ditto.
2495         (m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto.
2496         (m2/gm2-libs-boot/RTcodummy.o): Ditto.
2497         (m2/gm2-libs-boot/wrapc.o): Ditto.
2498         (m2/gm2-libs-boot/M2LINK.o): Ditto.
2499         (m2/gm2-libs-boot/UnixArgs.o): Ditto.
2500         (m2/gm2-libs-boot/choosetemp.o): Ditto.
2501         (m2/gm2-libs-boot/errno.o): Ditto.
2502         (m2/gm2-libs-boot/dtoa.o): Ditto.
2503         (m2/gm2-libs-boot/ldtoa.o): Ditto.
2504         (m2/gm2-libs-boot/termios.o): Ditto.
2505         (m2/gm2-libs-boot/SysExceptions.o): Ditto.
2506         (m2/gm2-libs-boot/SysStorage.o): Ditto.
2507         (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
2508         (m2/gm2-compiler-boot/M2Error.o): Ditto.
2509         (m2/gm2-compiler-boot/%.o): Ditto.
2510         (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
2511         (m2/gm2-compiler-boot/m2flex.o): Ditto.
2512         (m2/gm2-compiler/m2flex.c): Ditto.
2513         (m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto.
2514         (m2/gm2-compiler/%.o): Ditto.
2515         (m2/gm2-compiler/m2flex.o): Ditto.
2516         (m2/gm2-compiler/%.o): Ditto.
2517         (m2/gm2-libs-iso/%.o): Ditto.
2518         (m2/gm2-libs/gm2-libs-host.h): Ditto.
2519         ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto.
2520         ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
2521         ($(objdir)/m2/gm2-libs-iso/SYSTEM.def): Ditto.
2522         ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
2523         (m2/gm2-compiler/gm2.a): Ditto.
2524         (m2/gm2-libs-boot/libgm2.a): Ditto.
2525         (m2/gm2-compiler-boot/gm2.a): Ditto.
2526         (m2/boot-bin/mklink$(exeext)): Ditto.
2527         (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
2528         (m2/gm2-compiler/%.mod): Ditto.
2529         (m2/gm2-compiler-boot/%.mod): Ditto.
2530         (m2/pge-boot/%.o): Ditto.
2532 2023-02-01  Gaius Mulley  <gaiusmod2@gmail.com>
2534         * Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type.
2535         (GM2_ISO_FLAGS): Add -fno-return -Wreturn-type.
2536         * Make-maintainer.in (GM2PATH): Split into separate -I components.
2537         (MC-LIB-DEFS): Add RTentity.def.
2538         (m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to
2539         $(GM2PATH).
2540         (m2/boot-bin/mc-opt$(exeext)): Separate -I paths.
2541         (m2/mc/decl.o): Separate -I paths.
2542         (gm2-bootstrap): Separate -I paths.
2543         (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths.
2544         (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths.
2545         (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths.
2546         (gm2.verifyparanoid): Separate -I paths.
2547         (gm2.verifystage12): Separate -I paths.
2548         * gm2-compiler/M2ALU.mod (GetConstructorElement): Add default
2549         Return NulSym.  Remove return from the error case.
2550         * gm2-compiler/M2Base.mod (ComplexToScalar): Return RType
2551         from the error case.
2552         (MixMetaTypes):  Return MakeError as a default.
2553         * gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym
2554         from the error case.
2555         (GetTypeMax): Return NulSym from the error case.
2556         * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert
2557         by InternalError.
2558         * gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError.
2559         (GetTypeMin): Add InternalError.
2560         (GetTypeMax): Add InternalError.
2561         * gm2-compiler/M2System.mod (InitSystem): Call
2562         PutProcedureNoReturn on Throw.
2563         * gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree
2564         declare as noreturn.  fn_rethrow_tree declare as noreturn.
2565         * gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute.
2566         * gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute.
2567         * gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE.
2568         * gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute.
2569         * gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute.
2570         * gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute.
2571         (Halt): Ditto.
2572         (HaltC): Ditto.
2573         (ErrorMessage): Ditto.
2574         (AssignmentException): Ditto.
2575         (ReturnException): Ditto.
2576         (IncException): Ditto.
2577         (DecException): Ditto.
2578         (InclException): Ditto.
2579         (ExclException): Ditto.
2580         (ShiftException): Ditto.
2581         (RotateException): Ditto.
2582         (StaticArraySubscriptException): Ditto.
2583         (DynamicArraySubscriptException): Ditto.
2584         (ForLoopBeginException): Ditto.
2585         (ForLoopToException): Ditto.
2586         (ForLoopEndException): Ditto.
2587         (PointerNilException): Ditto.
2588         (NoReturnException): Ditto.
2589         (CaseException): Ditto.
2590         (WholeNonPosDivException): Ditto.
2591         (WholeNonPosModException): Ditto.
2592         (WholeZeroDivException): Ditto.
2593         (WholeZeroRemException): Ditto.
2594         (WholeValueException): Ditto.
2595         (RealValueException): Ditto.
2596         (ParameterException): Ditto.
2597         (NoException): Ditto.
2598         * gm2-libs-iso/SYSTEM.def (THROW): Ditto.
2599         * gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE.
2600         * gm2-libs-min/M2RTS.def: Add noreturn attribute.
2601         * gm2-libs/FIO.mod (BufferedRead): Return -1.
2602         (getFileName): Return NIL.
2603         (getFileNameLength): Return 0.
2604         * gm2-libs/M2RTS.def (HaltC): Add noreturn attribute.
2605         (AssignmentException): Ditto.
2606         (ReturnException): Ditto.
2607         (IncException): Ditto.
2608         (DecException): Ditto.
2609         (InclException): Ditto.
2610         (ExclException): Ditto.
2611         (ShiftException): Ditto.
2612         (RotateException): Ditto.
2613         (StaticArraySubscriptException): Ditto.
2614         (DynamicArraySubscriptException): Ditto.
2615         (ForLoopBeginException): Ditto.
2616         (ForLoopToException): Ditto.
2617         (ForLoopEndException): Ditto.
2618         (PointerNilException): Ditto.
2619         (NoReturnException): Ditto.
2620         (CaseException): Ditto.
2621         (WholeNonPosDivException): Ditto.
2622         (WholeNonPosModException): Ditto.
2623         (WholeZeroDivException): Ditto.
2624         (WholeZeroRemException): Ditto.
2625         (WholeValueException): Ditto.
2626         (RealValueException): Ditto.
2627         (ParameterException): Ditto.
2628         (NoException): Ditto.
2629         * gm2-libs/RTExceptions.def (Raise): Ditto.
2630         * gm2-libs/RTExceptions.mod (InvokeHandler): Ditto.
2631         * gm2-libs/SYSTEM.def (THROW): Ditto.
2632         * m2.flex (_M2_m2flex_fini): Remamed to...
2633         (_M2_m2flex_finish): ...here.
2634         * mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to...
2635         (_M2_Builtins_fini): ...this.
2636         * mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to...
2637         (_M2_RTco_fini): ...this.
2638         * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to...
2639         (_M2_SYSTEM_fini): ...this.
2640         * mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to...
2641         (_M2_Selective_fini): ...this.
2642         * mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add
2643         parameters.
2644         (_M2_SysExceptions_finish): Remamed to...
2645         (_M2_SysExceptions_fini): ...this.
2646         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to...
2647         (_M2_UnixArgs_fini): ...this.
2648         (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter
2649         to _M2_UnixArgs_fini.
2650         * mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to...
2651         (_M2_dtoa_fini): ...this.
2652         * mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to...
2653         (_M2_errno_fini): ...this.
2654         * mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to...
2655         (_M2_ldtoa_fini): ...this.
2656         * mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters.
2657         (_M2_termios_finish): Remamed to...
2658         (_M2_termios_fini): ...this.
2659         * mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters.
2660         (_M2_wrapc_finish): Remamed to...
2661         (_M2_wrapc_fini): ...this.
2662         * mc-boot/GASCII.c: Rebuild.
2663         * mc-boot/GArgs.c: Rebuild.
2664         * mc-boot/GAssertion.c: Rebuild.
2665         * mc-boot/GBreak.c: Rebuild.
2666         * mc-boot/GCmdArgs.c: Rebuild.
2667         * mc-boot/GDebug.c: Rebuild.
2668         * mc-boot/GDynamicStrings.c: Rebuild.
2669         * mc-boot/GEnvironment.c: Rebuild.
2670         * mc-boot/GFIO.c: Rebuild.
2671         * mc-boot/GFormatStrings.c: Rebuild.
2672         * mc-boot/GFpuIO.c: Rebuild.
2673         * mc-boot/GIO.c: Rebuild.
2674         * mc-boot/GIndexing.c: Rebuild.
2675         * mc-boot/GM2Dependent.c: Rebuild.
2676         * mc-boot/GM2EXCEPTION.c: Rebuild.
2677         * mc-boot/GM2RTS.c: Rebuild.
2678         * mc-boot/GM2RTS.h: Rebuild.
2679         * mc-boot/GMemUtils.c: Rebuild.
2680         * mc-boot/GNumberIO.c: Rebuild.
2681         * mc-boot/GPushBackInput.c: Rebuild.
2682         * mc-boot/GRTExceptions.c: Rebuild.
2683         * mc-boot/GRTExceptions.h: Rebuild.
2684         * mc-boot/GRTco.h: Rebuild.
2685         * mc-boot/GRTint.c: Rebuild.
2686         * mc-boot/GSArgs.c: Rebuild.
2687         * mc-boot/GSFIO.c: Rebuild.
2688         * mc-boot/GStdIO.c: Rebuild.
2689         * mc-boot/GStorage.c: Rebuild.
2690         * mc-boot/GStrCase.c: Rebuild.
2691         * mc-boot/GStrIO.c: Rebuild.
2692         * mc-boot/GStrLib.c: Rebuild.
2693         * mc-boot/GStringConvert.c: Rebuild.
2694         * mc-boot/GSysStorage.c: Rebuild.
2695         * mc-boot/GTimeString.c: Rebuild.
2696         * mc-boot/Galists.c: Rebuild.
2697         * mc-boot/Gdecl.c: Rebuild.
2698         * mc-boot/Gkeyc.c: Rebuild.
2699         * mc-boot/Glists.c: Rebuild.
2700         * mc-boot/GmcComment.c: Rebuild.
2701         * mc-boot/GmcComp.c: Rebuild.
2702         * mc-boot/GmcDebug.c: Rebuild.
2703         * mc-boot/GmcError.c: Rebuild.
2704         * mc-boot/GmcFileName.c: Rebuild.
2705         * mc-boot/GmcLexBuf.c: Rebuild.
2706         * mc-boot/GmcMetaError.c: Rebuild.
2707         * mc-boot/GmcOptions.c: Rebuild.
2708         * mc-boot/GmcPreprocess.c: Rebuild.
2709         * mc-boot/GmcPretty.c: Rebuild.
2710         * mc-boot/GmcPrintf.c: Rebuild.
2711         * mc-boot/GmcQuiet.c: Rebuild.
2712         * mc-boot/GmcReserved.c: Rebuild.
2713         * mc-boot/GmcSearch.c: Rebuild.
2714         * mc-boot/GmcStack.c: Rebuild.
2715         * mc-boot/GmcStream.c: Rebuild.
2716         * mc-boot/Gmcp1.c: Rebuild.
2717         * mc-boot/Gmcp2.c: Rebuild.
2718         * mc-boot/Gmcp3.c: Rebuild.
2719         * mc-boot/Gmcp4.c: Rebuild.
2720         * mc-boot/Gmcp5.c: Rebuild.
2721         * mc-boot/GnameKey.c: Rebuild.
2722         * mc-boot/GsymbolKey.c: Rebuild.
2723         * mc-boot/Gtop.c: Rebuild.
2724         * mc-boot/Gvarargs.c: Rebuild.
2725         * mc-boot/Gwlists.c: Rebuild.
2726         * mc-boot/GRTentity.h: New file.
2727         * mc/decl.mod (scaffoldStatic): Change _finish to _fini.
2728         * mc/mc.flex (_M2_mcflex_fini): New function.
2729         (_M2_mcflex_finish): Remove function.
2730         * tools-src/mklink.c (GenerateFinishCalls): Change
2731         _finish to _fini.
2732         (GeneratePrototypes): Change _finish to _fini.
2734 2023-01-31  Gaius Mulley  <gaiusmod2@gmail.com>
2736         * Make-lang.in (gm2-libs.texi-check): Rename
2737         m2/gm2-libs-pim to m2/gm2-libs-log.
2738         * gm2-libs-pim/BitBlockOps.def: Moved to...
2739         * gm2-libs-log/BitBlockOps.def: ...here.
2740         * gm2-libs-pim/BitBlockOps.mod: Moved to...
2741         * gm2-libs-log/BitBlockOps.mod: ...here.
2742         * gm2-libs-pim/BitByteOps.def: Moved to...
2743         * gm2-libs-log/BitByteOps.def: ...here.
2744         * gm2-libs-pim/BitByteOps.mod: Moved to...
2745         * gm2-libs-log/BitByteOps.mod: ...here.
2746         * gm2-libs-pim/BitWordOps.def: Moved to...
2747         * gm2-libs-log/BitWordOps.def: ...here.
2748         * gm2-libs-pim/BitWordOps.mod: Moved to...
2749         * gm2-libs-log/BitWordOps.mod: ...here.
2750         * gm2-libs-pim/BlockOps.def: Moved to...
2751         * gm2-libs-log/BlockOps.def: ...here.
2752         * gm2-libs-pim/BlockOps.mod: Moved to...
2753         * gm2-libs-log/BlockOps.mod: ...here.
2754         * gm2-libs-pim/Break.c: Moved to...
2755         * gm2-libs-log/Break.c: ...here.
2756         * gm2-libs-pim/Break.def: Moved to...
2757         * gm2-libs-log/Break.def: ...here.
2758         * gm2-libs-pim/CardinalIO.def: Moved to...
2759         * gm2-libs-log/CardinalIO.def: ...here.
2760         * gm2-libs-pim/CardinalIO.mod: Moved to...
2761         * gm2-libs-log/CardinalIO.mod: ...here.
2762         * gm2-libs-pim/Conversions.def: Moved to...
2763         * gm2-libs-log/Conversions.def: ...here.
2764         * gm2-libs-pim/Conversions.mod: Moved to...
2765         * gm2-libs-log/Conversions.mod: ...here.
2766         * gm2-libs-pim/DebugPMD.def: Moved to...
2767         * gm2-libs-log/DebugPMD.def: ...here.
2768         * gm2-libs-pim/DebugPMD.mod: Moved to...
2769         * gm2-libs-log/DebugPMD.mod: ...here.
2770         * gm2-libs-pim/DebugTrace.def: Moved to...
2771         * gm2-libs-log/DebugTrace.def: ...here.
2772         * gm2-libs-pim/DebugTrace.mod: Moved to...
2773         * gm2-libs-log/DebugTrace.mod: ...here.
2774         * gm2-libs-pim/Delay.def: Moved to...
2775         * gm2-libs-log/Delay.def: ...here.
2776         * gm2-libs-pim/Delay.mod: Moved to...
2777         * gm2-libs-log/Delay.mod: ...here.
2778         * gm2-libs-pim/Display.def: Moved to...
2779         * gm2-libs-log/Display.def: ...here.
2780         * gm2-libs-pim/Display.mod: Moved to...
2781         * gm2-libs-log/Display.mod: ...here.
2782         * gm2-libs-pim/ErrorCode.def: Moved to...
2783         * gm2-libs-log/ErrorCode.def: ...here.
2784         * gm2-libs-pim/ErrorCode.mod: Moved to...
2785         * gm2-libs-log/ErrorCode.mod: ...here.
2786         * gm2-libs-pim/FileSystem.def: Moved to...
2787         * gm2-libs-log/FileSystem.def: ...here.
2788         * gm2-libs-pim/FileSystem.mod: Moved to...
2789         * gm2-libs-log/FileSystem.mod: ...here.
2790         * gm2-libs-pim/FloatingUtilities.def: Moved to...
2791         * gm2-libs-log/FloatingUtilities.def: ...here.
2792         * gm2-libs-pim/FloatingUtilities.mod: Moved to...
2793         * gm2-libs-log/FloatingUtilities.mod: ...here.
2794         * gm2-libs-pim/InOut.def: Moved to...
2795         * gm2-libs-log/InOut.def: ...here.
2796         * gm2-libs-pim/InOut.mod: Moved to...
2797         * gm2-libs-log/InOut.mod: ...here.
2798         * gm2-libs-pim/Keyboard.def: Moved to...
2799         * gm2-libs-log/Keyboard.def: ...here.
2800         * gm2-libs-pim/Keyboard.mod: Moved to...
2801         * gm2-libs-log/Keyboard.mod: ...here.
2802         * gm2-libs-pim/LongIO.def: Moved to...
2803         * gm2-libs-log/LongIO.def: ...here.
2804         * gm2-libs-pim/LongIO.mod: Moved to...
2805         * gm2-libs-log/LongIO.mod: ...here.
2806         * gm2-libs-pim/NumberConversion.def: Moved to...
2807         * gm2-libs-log/NumberConversion.def: ...here.
2808         * gm2-libs-pim/NumberConversion.mod: Moved to...
2809         * gm2-libs-log/NumberConversion.mod: ...here.
2810         * gm2-libs-pim/README.texi: Moved to...
2811         * gm2-libs-log/README.texi: ...here.
2812         * gm2-libs-pim/Random.def: Moved to...
2813         * gm2-libs-log/Random.def: ...here.
2814         * gm2-libs-pim/Random.mod: Moved to...
2815         * gm2-libs-log/Random.mod: ...here.
2816         * gm2-libs-pim/RealConversions.def: Moved to...
2817         * gm2-libs-log/RealConversions.def: ...here.
2818         * gm2-libs-pim/RealConversions.mod: Moved to...
2819         * gm2-libs-log/RealConversions.mod: ...here.
2820         * gm2-libs-pim/RealInOut.def: Moved to...
2821         * gm2-libs-log/RealInOut.def: ...here.
2822         * gm2-libs-pim/RealInOut.mod: Moved to...
2823         * gm2-libs-log/RealInOut.mod: ...here.
2824         * gm2-libs-pim/Strings.def: Moved to...
2825         * gm2-libs-log/Strings.def: ...here.
2826         * gm2-libs-pim/Strings.mod: Moved to...
2827         * gm2-libs-log/Strings.mod: ...here.
2828         * gm2-libs-pim/Termbase.def: Moved to...
2829         * gm2-libs-log/Termbase.def: ...here.
2830         * gm2-libs-pim/Termbase.mod: Moved to...
2831         * gm2-libs-log/Termbase.mod: ...here.
2832         * gm2-libs-pim/Terminal.def: Moved to...
2833         * gm2-libs-log/Terminal.def: ...here.
2834         * gm2-libs-pim/Terminal.mod: Moved to...
2835         * gm2-libs-log/Terminal.mod: ...here.
2836         * gm2-libs-pim/TimeDate.def: Moved to...
2837         * gm2-libs-log/TimeDate.def: ...here.
2838         * gm2-libs-pim/TimeDate.mod: Moved to...
2839         * gm2-libs-log/TimeDate.mod: ...here.
2841 2023-01-28  Iain Sandoe  <iain@sandoe.co.uk>
2843         * lang.opt: Claim Wreturn-type.
2845 2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>
2847         * gm2-compiler/M2Comp.mod:  Import MetaString0.
2848         (ExamineCompilationUnit): New variable Message.
2849         Create and format error string.
2850         * gm2-compiler/M2LexBuf.mod: New variable SeenEof.
2851         (GetNonEofToken): New procedure.
2852         (Init): Set SeenEof to FALSE.
2853         (GetToken): Use GetNonEofToken instead of calls to
2854         m2flex.GetToken and GetToken.
2855         (AddTok): Detect eoftok and set SeenEof.
2857 2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>
2859         * gm2-compiler/M2Options.def: Export GetMQ, SetMQ.
2860         * gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName):
2861         Test NewDir against NIL.  Test Dumpdir against NIL.
2862         Test GetMD () against NIL.  Test GetMMD () against NIL.
2863         Test GetMQ () against NIL.  Test GetObj () against NIL.
2864         Test tempfile against NIL.
2865         * gm2-compiler/P2SymBuild.def: Export
2866         BuildNoReturnAttribute.
2868 2023-01-27  Iain Sandoe  <iain@sandoe.co.uk>
2870         PR modula2/108555
2871         PR modula2/108182
2872         PR modula2/102343
2873         * gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C
2874         or CL_DRIVER.
2875         (gm2_langhook_init_options): Handle options that we want to pass
2876         to the preprocessor.
2877         * lang-specs.h: Pass -B and -save-temps to regular compile lines.
2878         * lang.opt: Add C and Driver options that Modula-2 intercepts for
2879         internal use. Reorder options into two sections and to collate.
2881 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
2883         * gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn.
2884         (DeclareProcedureToGccWholeProgram): New variable declared and set
2885         returnType.  Pass returnType to BuildEndFunctionDeclaration.
2886         Extra parameter IsProcedureNoReturn passed to
2887         BuildEndFunctionDeclaration.
2888         * gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct
2889         scaffold comment and add extra return 0.
2890         * gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute.
2891         (ProcedureHeading): Process EndBuildFormalParameters before
2892         parsing AttributeNoReturn.
2893         (DefProcedureHeading): Process EndBuildFormalParameters before
2894         parsing AttributeNoReturn.
2895         (AttributeNoReturn): Call BuildNoReturnAttribute.
2896         * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New
2897         procedure.
2898         * gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New
2899         procedure.
2900         * gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected
2901         comment.
2902         (PutProcedureNoReturn): New procedure.
2903         (IsProcedureNoReturn): New procedure function.
2904         * gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn
2905         new field.
2906         (MakeProcedure): Initialize IsNoReturn to FALSE.
2907         (PutProcedureNoReturn): New procedure.
2908         (IsProcedureNoReturn): New procedure function.
2909         * gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration):
2910         Add extra parameter isnoreturn.  Set TREE_THIS_VOLATILE
2911         to isnoreturn.
2912         * gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add
2913         extra parameter isnoreturn.
2914         * gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add
2915         extra parameter isnoreturn.
2916         * gm2-gcc/m2except.cc (m2except_InitExceptions): Change all
2917         function decl to pass an extra parameter isnoreturn.
2919 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
2921         * m2.flex (splitSlashStar): Fix comment so that /* does not
2922         appear inside the comment.
2924 2023-01-26  Iain Sandoe  <iain@sandoe.co.uk>
2926         PR modula2/108553
2927         * gm2-lang.cc (gm2_langhook_init_options): Remove debug code.
2929 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
2931         * Make-lang.in (m2/gm2config.h): Rewrite rule to be
2932         dependent upon m2/gm2config.aci.
2933         (m2/gm2config.aci): Newrule.
2934         * configure.ac (AC_CONFIG_HEADERS): Change destination
2935         to gm2config.aci.
2936         * configure: Regenerate.
2937         * gm2-libs/config-host: Regenerate.
2938         * gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment
2939         out.
2940         * gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove
2941         Dim.
2942         (StartBuildWith): Call BuildStmtNoteTok.
2943         (BuildStmtNoteTok): New procedure.
2944         (BuildStmtNote): Re-implement re-factor into two
2945         procedures and call BuildStmtNoteTok.
2946         * gm2config.h.in: Remove.
2947         * gm2config.aci.in: New file.
2949 2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>
2951         PR modula2/102343
2952         PR modula2/108182
2953         * gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs.
2954         * gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD,
2955         SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
2956         GetDumpDir):New.
2957         * gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD,
2958         SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
2959         GetDumpDir):New.
2960         * gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to
2961         indicate the main file.
2962         * gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs,
2963         handle MD, MMD and MQ options.
2964         * gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly,
2965         M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD,
2966         M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ,
2967         M2Options_SetObj, M2Options_GetObj): New.
2968         * gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre-
2969         processor-only jobs.
2970         * gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands.
2971         (gm2_langhook_option_lang_mask): Claim C and Driver options so that
2972         we can intercept them for building pre-processor commands.
2973         (gm2_langhook_init_options): Collect the preprocessor line here.
2974         Save options that have different actions for preprocessor and compile
2975         commands.
2976         (gm2_langhook_handle_option): Only handle the modula-2 options here.
2977         (gm2_langhook_post_options): Do not create a back-end for pre-
2978         processor-only jobs.
2979         * gm2spec.cc (lang_specific_driver): Ignore PCH options, append a
2980         scaffold-main for cases where we are building a main module with
2981         -c.
2982         * lang-specs.h: Revise to handle preprocessor-only jobs and to
2983         consume pre-processed files.
2984         * lang.opt: Remove Driver and C options copies (we claim these
2985         separately).
2987 2023-01-24  Co-Authored by: Iain Sandoe  <iain@sandoe.co.uk>
2989         * Make-lang.in (GM2-COMP-BOOT-DEFS): Add
2990         DynamicStringPath.def.
2991         (GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod.
2992         (GM2-COMP-DEFS): Add DynamicStringPath.def.
2993         (GM2-COMP-MODS): Add DynamicStringPath.mod.
2994         ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into
2995         multiple -I components.
2996         ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
2997         ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
2998         * gm2-compiler/M2Options.mod: Import DynamicStringPath.
2999         (SetSearchPath): Reimplement using DynamicStringPath
3000         procedures.
3001         * gm2-compiler/M2Search.def (InitSearchPath): Remove.
3002         (PrependSearchPath): Remove.
3003         * gm2-compiler/M2Search.mod (SFIO): Remove import.
3004         (DynamicStringPath): Add import.
3005         (Directory): Remove.
3006         (UserPath): Remove.
3007         (InitialPath): Remove.
3008         (InitSearchPath): Remove.
3009         (PrependSearchPath): Remove.
3010         (FindSourceFile): Re-implement.
3011         (FindSourceDefFile): Re-implement.
3012         (FindSourceModFile): Re-implement.
3013         * gm2-gcc/init.cc (_M2_DynamicStringPath_init):
3014         New prototype.
3015         (init_FrontEndInit): Call _M2_DynamicStringPath_init.
3016         * tools-src/makeSystem: Allow multiple -I paths.
3017         * gm2-compiler/DynamicStringPath.def: New file.
3018         * gm2-compiler/DynamicStringPath.mod: New file.
3019         * gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add
3020         prototype.
3022 2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>
3024         * m2.flex (cpreprocessor): Add temporary variable
3025         which is initialized to 0.
3026         (commentCLevel): New variable.
3027         (endOfCComment): New function.
3028         (splitSlashStar): New function to split /* into / and *
3029         tokens.
3030         (COMMENTC): New flex state.
3031         ("/*"): New rule to test whether we should treat /*
3032         as a single token or as two tokens.
3033         (<COMMENTC>.): New rule to skip a character.
3034         (<COMMENTC>\n.*): New rule to consume the line.
3035         (<COMMENTC>"*/"): New rule to call endOfCComment.
3037 2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>
3039         * gm2-libs-iso/RTco.def: Import RTentity.
3040         Declare RTco as a definition for C module.
3042 2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>
3044         PR modula2/108182
3045         PR modula2/108480
3046         * Make-lang.in: Pass libsubdir to the language init
3047         build.
3048         * gm2-lang.cc (INCLUDE_VECTOR): Define.
3049         (add_one_import_path): New.
3050         (add_m2_import_paths): New.
3051         (gm2_langhook_post_options): Arrange to add the include
3052         paths (and add the system ones) in the same order as C
3053         uses.
3054         * gm2spec.cc (build_archive_path): Remove.
3055         (add_default_combination): Remove.
3056         (add_default_archives): Remove.
3057         (add_default_libs): We no longer need a '-L' option, just
3058         emit the -l and each library in use.
3059         (build_include_path): Remove.
3060         (add_include): Remove.
3061         (add_default_includes): Remove.
3062         (library_installed): Remove.
3063         (check_valid_library): Remove.
3064         (check_valid_list): Remove.
3065         (convert_abbreviation): Diagnose unhandled cases.
3066         (lang_specific_driver): Skip options where we will add back
3067         a validated version.
3068         * lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not
3069         in use.  Revise the cc1gm2 spec to omit mentioning options that
3070         are handled in the c pre-processor line.
3071         * lang.opt: Allow preprocessing and path options as input to the
3072         cc1gm2 invocation, so that they can be passed to the preprocessor
3073         invocation.
3075 2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>
3077         PR modula2/108405
3078         * gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for
3079         extra space that is divisible by common OS pagesizes.
3081 2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>
3083         * gm2-libs/Args.mod (GetArg): Check index before
3084         accessing array.
3085         * gm2-libs/M2Dependent.mod (toCString): Check index
3086         before accessing array.
3087         * mc-boot/GArgs.c: Rebuilt.
3088         * mc-boot/GM2Dependent.c: Rebuilt.
3089         * mc-boot/Gkeyc.c: Rebuilt.
3090         * mc/keyc.mod (seenUIntMin): Initialize once.
3091         (seenUIntMax): Initialize once.
3092         (checkLimits): Only test seenUIntMin and seenUIntMax
3093         once.
3094         * pge-boot/GArgs.c:  Rebuilt.
3095         * pge-boot/GM2Dependent.c: Rebuilt.
3097 2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>
3099         * gm2-gcc/m2statement.cc (gm2_gimplify_function_node):
3100         Remove.
3101         * gm2-libs/DynamicStrings.mod (Equal): Remove dead code.
3102         * m2.flex (<COMMENT>"<*"): Add {} for else statement.
3103         * m2pp.cc (hextree): Add conditional #ifdef DEBUGGING.
3104         * mc-boot/GDynamicStrings.c: Rebuild.
3105         * pge-boot/GDynamicStrings.c: Rebuild.
3106         * pge-boot/GFIO.c: Rebuild.
3107         * pge-boot/GIndexing.c: Rebuild.
3108         * pge-boot/GM2EXCEPTION.c: Rebuild.
3109         * pge-boot/GM2RTS.c: Rebuild.
3110         * pge-boot/GNameKey.c: Rebuild.
3111         * pge-boot/GPushBackInput.c: Rebuild.
3112         * pge-boot/GRTExceptions.c: Rebuild.
3113         * pge-boot/GStdIO.c: Rebuild.
3114         * pge-boot/GSymbolKey.c: Rebuild.
3115         * pge-boot/GSysStorage.c: Rebuild.
3117 2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>
3119         * mc-boot/GM2RTS.c: Rebuilt.
3120         * mc-boot/GM2RTS.h: Rebuilt.
3121         * mc-boot/Gdecl.c: Rebuilt.
3122         * mc-boot/GmcOptions.c: Rebuilt.
3123         * mc/mcOptions.mod (displayVersion):
3124         Split first printf into three components
3126 2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>
3128         * gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename.
3129         (HaltC): New procedure declaration.
3130         (ErrorMessage): Parameter file renamed to filename.
3131         * gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to
3132         filename.
3133         (HaltC): New procedure implementation.
3134         (ErrorStringC): New procedure implementation.
3135         (ErrorMessageC): New procedure implementation.
3136         * gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename.
3137         (HaltC): New procedure declaration.
3138         (ErrorMessage): Parameter file renamed to filename.
3139         * gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename.
3140         (HaltC): New procedure implementation.
3141         (ErrorStringC): New procedure implementation.
3142         (ErrorMessageC): New procedure implementation.
3144 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
3146         * mc-boot-ch/Glibc.c (libc_time): New function.
3147         (libc_localtime): New function.
3148         * mc-boot/GDynamicStrings.c: Regenerate.
3149         * mc-boot/GFIO.c: Regenerate.
3150         * mc-boot/GFormatStrings.c: Regenerate.
3151         * mc-boot/GIndexing.c: Regenerate.
3152         * mc-boot/GM2Dependent.c: Regenerate.
3153         * mc-boot/GM2EXCEPTION.c: Regenerate.
3154         * mc-boot/GPushBackInput.c: Regenerate.
3155         * mc-boot/GRTExceptions.c: Regenerate.
3156         * mc-boot/GRTint.c: Regenerate.
3157         * mc-boot/GStdIO.c: Regenerate.
3158         * mc-boot/GStringConvert.c: Regenerate.
3159         * mc-boot/GSysStorage.c: Regenerate.
3160         * mc-boot/Gdecl.c: Regenerate.
3161         * mc-boot/GmcComment.c: Regenerate.
3162         * mc-boot/GmcComp.c: Regenerate.
3163         * mc-boot/GmcDebug.c: Regenerate.
3164         * mc-boot/GmcMetaError.c: Regenerate.
3165         * mc-boot/GmcOptions.c: Regenerate.
3166         * mc-boot/GmcStack.c: Regenerate.
3167         * mc-boot/GnameKey.c: Regenerate.
3168         * mc-boot/GsymbolKey.c: Regenerate.
3169         * mc-boot/Gkeyc.c: Regenerate.
3170         * mc/decl.mod (putFieldRecord): Change NulName to NulKey
3171         and fix type comparision.
3172         * mc/mcOptions.mod (YEAR): Remove.
3173         (getYear): New procedure function.
3174         (displayVersion): Use result from getYear instead of YEAR.
3175         Emit boilerplate for GPL v3.
3176         (gplBody): Use result from getYear instead of YEAR.
3177         (glplBody): Use result from getYear instead of YEAR.
3179 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
3181         * gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type
3182         against NulSym and call MetaErrorT1 if necessary.
3183         (AssignUnboundedNonVar): Check Type against NulSym and
3184         call MetaErrorT1 if necessary.
3185         (BuildDesignatorPointer): Check Type1 against NulSym and
3186         call MetaErrorT1 if necessary.
3188 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
3190         * mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3.
3191         (YEAR) set to 2023.
3193 2023-01-15  Gaius Mulley  <gaiusmod2@gmail.com>
3195         * gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment.
3196         Remove dead code.
3197         * gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter.
3198         * gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter.
3199         Create and push virtual token.
3200         (PopBooltok): New procedure.
3201         (PushBooltok): New procedure.
3202         (PushBool): Re-implement using PushBooltok.
3203         (PopBool): Re-implement using PopBooltok.
3204         * gm2-compiler/P3Build.bnf (ConstFactor): Record token
3205         position of NOT.
3206         (Factor): Record token position of NOT.
3207         * gm2-compiler/PHBuild.bnf (ConstFactor): Record token
3208         position of NOT.
3209         (Relation): Push token position.
3210         (UnaryOrConstTerm): Push token position.
3211         (AddOperator): Push token position.
3212         (MulOperator): Push token position.
3214 2023-01-13  Iain Sandoe  <iain@sandoe.co.uk>
3216         * gm2-gcc/m2options.h (M2Options_SetVerbose): Export the
3217         function.
3218         * gm2-lang.cc: Handle OPT_v, passing it to the compiler.
3219         * lang-specs.h: Pass -v to cc1gm2.
3221 2023-01-13  Gaius Mulley  <gaiusmod2@gmail.com>
3223         * mc-boot-ch/GRTco.c (RTco_select): Add return 0.
3224         * pge-boot/GRTco.c (RTco_select): Add return 0.
3226 2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>
3228         * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
3229         m2/gm2-libs/gm2-libs-host.h dependency.
3230         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
3231         m2/gm2-libs/gm2-libs-host.h dependency.
3233 2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>
3235         * Make-lang.in (GM2_1): Change -B path to m2/stage1.
3236         ($(objdir)/m2/images/gnu.eps): Check and create dest dir
3237         if necessary.
3238         (gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
3239         m2/gm2-libs-iso and m2/gm2-libs if necessary.
3240         ($(objdir)/m2/gm2-compiler-boot): Remove.
3241         ($(objdir)/m2/gm2-libs-boot): Remove.
3242         ($(objdir)/m2/gm2-libs-libiberty): Remove.
3243         ($(objdir)/m2/gm2-libiberty): Remove.
3244         ($(objdir)/m2/gm2-gcc): Remove.
3245         ($(objdir)/m2/gm2-compiler): Remove.
3246         ($(objdir)/m2/gm2-libs): Remove.
3247         ($(objdir)/m2/gm2-libs-iso): Remove.
3248         ($(objdir)/m2/gm2-libs-min): Remove.
3249         ($(objdir)/m2/gm2-compiler-paranoid): Remove.
3250         ($(objdir)/m2/gm2-libs-paranoid): Remove.
3251         ($(objdir)/m2/gm2-compiler-verify): Remove.
3252         ($(objdir)/m2/boot-bin): Remove.
3253         ($(objdir)/m2/gm2-libs-pim): Remove.
3254         ($(objdir)/m2/gm2-libs-coroutines): Remove.
3255         (stage1/m2): Remove.
3256         (stage2/m2): Remove.
3257         (stage3/m2): Remove.
3258         (m2.stageprofile): New rule.
3259         (m2.stagefeedback): New rule.
3260         (cc1gm2$(exeext)): Change dependent name.
3261         (m2/stage2/cc1gm2$(exeext)): Change dependent name.
3262         Check and create dest dir.
3263         (m2/stage1/cc1gm2$(exeext)): Check and create dest dir
3264         if necessary.
3265         (m2/gm2-gcc/%.o): Ditto.
3266         (m2/gm2-gcc/rtegraph.o): Ditto.
3267         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
3268         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
3269         (m2/mc-boot): Ditto.
3270         (m2/mc-boot-ch): Ditto.
3271         (m2/gm2-libs-boot): Ditto.
3272         (m2/gm2-compiler-boot): Ditto.
3273         (m2/gm2-compiler): Ditto.
3274         (m2/gm2-libiberty): Ditto.
3275         (m2/gm2-compiler): Ditto.
3276         (m2/gm2-libs-iso): Ditto.
3277         (m2/gm2-libs): Ditto.
3278         (m2/gm2-libs-min): Ditto.
3279         (m2/gm2-libs-coroutines): Ditto.
3280         (m2/boot-bin): Ditto.
3281         (m2/pge-boot): Ditto.
3282         (m2/pge-boot): Ditto.
3283         * Make-maintainer.in (m2/gm2-ppg-boot): Check and create
3284         dest dir if necessary.
3285         (m2): Ditto.
3286         (m2/gm2-ppg-boot): Ditto.
3287         (m2/gm2-pg-boot): Ditto.
3288         (m2/gm2-auto): Ditto.
3289         (m2/gm2-pg-boot): Ditto.
3290         (m2/gm2-pge-boot): Ditto.
3291         ($(objdir)/plugin): Ditto.
3292         ($(objdir)/m2/mc-boot-ch): Ditto.
3293         ($(objdir)/m2/mc-boot-gen): Ditto.
3294         (m2/boot-bin): Ditto.
3295         (m2/mc): Ditto.
3296         (m2/mc-obj): Ditto.
3297         ($(objdir)/m2/gm2-ppg-boot): Ditto.
3298         ($(objdir)/m2/gm2-pg-boot): Ditto.
3299         ($(objdir)/m2/gm2-pge-boot): Ditto.
3300         (m2/mc-boot-gen): Ditto.
3301         (m2/m2obj3): Ditto.
3302         (m2/gm2-libs-paranoid): Ditto.
3303         (m2/gm2-compiler-paranoid): Ditto.
3304         (m2/gm2-libs-paranoid): Ditto.
3305         (m2/gm2-compiler-paranoid): Ditto.
3306         (m2/gm2-libs-paranoid): Ditto.
3307         (m2/gm2-compiler-paranoid): Ditto.
3308         * config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
3309         (m2/gm2-libs-boot): Ditto.
3310         (m2/gm2-ici-boot): Ditto.
3311         (m2/gm2-libiberty): Ditto.
3312         (m2/gm2-gcc): Ditto.
3313         (m2/gm2-compiler): Ditto.
3314         (m2/gm2-libs): Ditto.
3315         (m2/gm2-libs-iso): Ditto.
3316         (m2/gm2-compiler-paranoid): Ditto.
3317         (m2/gm2-libs-paranoid): Ditto.
3318         (m2/gm2-compiler-verify): Ditto.
3319         (m2/boot-bin): Ditto.
3320         (m2/gm2-libs-pim): Ditto.
3321         (m2/gm2-libs-coroutines): Ditto.
3322         (m2/gm2-libs-min): Ditto.
3323         (m2/pge-boot): Ditto.
3324         (plugin): Ditto.
3325         (stage1/m2): Ditto.
3326         (stage2/m2): Ditto.
3327         (stage3/m2): Ditto.
3328         (stage4/m2): Ditto.
3329         (m2/gm2-auto): Ditto.
3330         (m2/gm2-pg-boot): Ditto.
3331         (m2/gm2-pge-boot): Ditto.
3332         (m2/gm2-ppg-boot): Ditto.
3333         (m2/mc-boot): Ditto.
3334         (m2/mc-boot-ch): Ditto.
3335         (m2/mc-boot-gen): Ditto.
3337 2023-01-09  Gaius Mulley  <gaiusmod2@gmail.com>
3339         * Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
3340         * gm2-libs/config-host: Regenerate.
3342 2023-01-07  Iain Sandoe  <iain@sandoe.co.uk>
3344         * gm2-libs-min/libc.c (abort): Update declaration to match the
3345         expected form, add no-return attribute.
3346         (exit): Add no-return attribute.
3348 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
3350         PR modula2/107631
3351         * gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
3352         significand, significandf, significandl.
3353         * gm2-libs/Builtins.def (significand): Likewise.
3354         * gm2-libs/Builtins.mod: Likewise.
3355         * target-independent/Builtins.texi: Likewise.
3356         * gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
3357         ilogb*().
3358         * gm2-libs-iso/LowReal.mod: Likewise.
3359         * gm2-libs-iso/LowShort.mod: Likewise.
3361 2023-01-05  Gaius Mulley  <gaiusmod2@gmail.com>
3363         * gm2-libs-min/M2RTS.def (ConstructModules): New procedure
3364         declaration.
3365         (DeconstructModules): New procedure declaration.
3366         * gm2-libs-min/M2RTS.mod (ConstructModules): New procedure
3367         dummy implementation.
3368         (DeconstructModules): New procedure dummy implementation.
3370 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
3372         * gm2spec.cc (lang_specific_driver): Handle static-libgm2.
3373         * lang.opt: Add static-libgm2.
3375 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
3377         * gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to
3378         the target driver if the linker does not support Bstatic/dynamic.
3380 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
3382         PR modula2/108183
3383         * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use
3384         an extern "C" function with 'constructor' attribute.
3385         * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise.
3386         * gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise.
3388 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
3390         PR modula2/108259
3391         * gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module
3392         registration constructors visible.
3394 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
3396         * Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also
3397         use the configured tools for texi -> dvi and texi -> pdf.
3399 2023-01-01  Iain Sandoe  <iain@sandoe.co.uk>
3400             Gaius Mulley  <gaiusmod2@gmail.com>
3402         PR modula2/108183
3403         * gm2-compiler/M2GCCDeclare.mod: Module registration constructors are
3404         externs to the builder of m2_link.
3406 2022-12-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3407             Iain Sandoe  <iain@sandoe.co.uk>
3409         PR modula2/107612
3410         * Make-lang.in (soext): Use .dylib for Darwin.
3411         (PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append
3412         -nodefaultlibs to suppress the linking of libstdc++.
3413         Use INCINTL in compile lines for the plugin.
3415 2022-12-21  Jakub Jelinek  <jakub@redhat.com>
3417         PR modula2/108153
3418         * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER.
3420 2022-12-19  Jakub Jelinek  <jakub@redhat.com>
3422         * gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf,
3423         m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error):
3424         Call functions with "%s", message rather than just message, so that
3425         % chars in message aren't treated as format specifiers.
3427 2022-12-19  Jakub Jelinek  <jakub@redhat.com>
3429         PR modula2/108147
3430         * gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf):
3431         Comment out prototypes with varargs.
3432         * gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf,
3433         m2linemap_NoteAtf): No longer varargs.
3434         * gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a
3435         non-varargs wrapper around ...
3436         (m2linemap_ErrorAtf_1): ... this.  New static function.
3437         (m2linemap_WarningAtf): Turned into a non-varargs wrapper around ...
3438         (m2linemap_WarningAtf_1): ... this.  New static function.
3439         (m2linemap_NoteAtf): Turned into a non-varargs wrapper around ...
3440         (m2linemap_NoteAtf_1): ... this.  New static function.
3442 2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>
3444         * configure.ac: Stop probing for realpath.
3445         * tools-src/calcpath: Break dependency on realpath, cut
3446         and echo.
3447         * configure: Rebuilt.
3449 2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>
3451         * gm2config.h.in: Rebuilt.
3453 2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
3455         * COPYING.FDL: New file.
3456         * COPYING.RUNTIME: New file.
3457         * COPYING3: New file.
3458         * COPYING3.LIB: New file.
3459         * Make-lang.in: New file.
3460         * Make-maintainer.in: New file.
3461         * NEWS: New file.
3462         * README: New file.
3463         * config-lang.in: New file.
3464         * config-make.in: New file.
3465         * configure.ac: New file.
3466         * gm2-compiler/CLexBuf.def: New file.
3467         * gm2-compiler/CLexBuf.mod: New file.
3468         * gm2-compiler/FifoQueue.def: New file.
3469         * gm2-compiler/FifoQueue.mod: New file.
3470         * gm2-compiler/Lists.def: New file.
3471         * gm2-compiler/Lists.mod: New file.
3472         * gm2-compiler/M2ALU.def: New file.
3473         * gm2-compiler/M2ALU.mod: New file.
3474         * gm2-compiler/M2AsmUtil.def: New file.
3475         * gm2-compiler/M2AsmUtil.mod: New file.
3476         * gm2-compiler/M2Base.def: New file.
3477         * gm2-compiler/M2Base.mod: New file.
3478         * gm2-compiler/M2BasicBlock.def: New file.
3479         * gm2-compiler/M2BasicBlock.mod: New file.
3480         * gm2-compiler/M2Batch.def: New file.
3481         * gm2-compiler/M2Batch.mod: New file.
3482         * gm2-compiler/M2Bitset.def: New file.
3483         * gm2-compiler/M2Bitset.mod: New file.
3484         * gm2-compiler/M2CaseList.def: New file.
3485         * gm2-compiler/M2CaseList.mod: New file.
3486         * gm2-compiler/M2Check.def: New file.
3487         * gm2-compiler/M2Check.mod: New file.
3488         * gm2-compiler/M2Code.def: New file.
3489         * gm2-compiler/M2Code.mod: New file.
3490         * gm2-compiler/M2ColorString.def: New file.
3491         * gm2-compiler/M2ColorString.mod: New file.
3492         * gm2-compiler/M2Comp.def: New file.
3493         * gm2-compiler/M2Comp.mod: New file.
3494         * gm2-compiler/M2Const.def: New file.
3495         * gm2-compiler/M2Const.mod: New file.
3496         * gm2-compiler/M2Debug.def: New file.
3497         * gm2-compiler/M2Debug.mod: New file.
3498         * gm2-compiler/M2DebugStack.def: New file.
3499         * gm2-compiler/M2DebugStack.mod: New file.
3500         * gm2-compiler/M2Defaults.def: New file.
3501         * gm2-compiler/M2Defaults.mod: New file.
3502         * gm2-compiler/M2DriverOptions.def: New file.
3503         * gm2-compiler/M2DriverOptions.mod: New file.
3504         * gm2-compiler/M2Emit.def: New file.
3505         * gm2-compiler/M2Emit.mod: New file.
3506         * gm2-compiler/M2Error.def: New file.
3507         * gm2-compiler/M2Error.mod: New file.
3508         * gm2-compiler/M2EvalSym.def: New file.
3509         * gm2-compiler/M2FileName.def: New file.
3510         * gm2-compiler/M2FileName.mod: New file.
3511         * gm2-compiler/M2GCCDeclare.def: New file.
3512         * gm2-compiler/M2GCCDeclare.mod: New file.
3513         * gm2-compiler/M2GenGCC.def: New file.
3514         * gm2-compiler/M2GenGCC.mod: New file.
3515         * gm2-compiler/M2Graph.def: New file.
3516         * gm2-compiler/M2Graph.mod: New file.
3517         * gm2-compiler/M2Lex.def: New file.
3518         * gm2-compiler/M2Lex.mod: New file.
3519         * gm2-compiler/M2LexBuf.def: New file.
3520         * gm2-compiler/M2LexBuf.mod: New file.
3521         * gm2-compiler/M2MetaError.def: New file.
3522         * gm2-compiler/M2MetaError.mod: New file.
3523         * gm2-compiler/M2Optimize.def: New file.
3524         * gm2-compiler/M2Optimize.mod: New file.
3525         * gm2-compiler/M2Options.def: New file.
3526         * gm2-compiler/M2Options.mod: New file.
3527         * gm2-compiler/M2Pass.def: New file.
3528         * gm2-compiler/M2Pass.mod: New file.
3529         * gm2-compiler/M2Preprocess.def: New file.
3530         * gm2-compiler/M2Preprocess.mod: New file.
3531         * gm2-compiler/M2Printf.def: New file.
3532         * gm2-compiler/M2Printf.mod: New file.
3533         * gm2-compiler/M2Quads.def: New file.
3534         * gm2-compiler/M2Quads.mod: New file.
3535         * gm2-compiler/M2Quiet.def: New file.
3536         * gm2-compiler/M2Quiet.mod: New file.
3537         * gm2-compiler/M2Range.def: New file.
3538         * gm2-compiler/M2Range.mod: New file.
3539         * gm2-compiler/M2Reserved.def: New file.
3540         * gm2-compiler/M2Reserved.mod: New file.
3541         * gm2-compiler/M2SSA.def: New file.
3542         * gm2-compiler/M2SSA.mod: New file.
3543         * gm2-compiler/M2Scaffold.def: New file.
3544         * gm2-compiler/M2Scaffold.mod: New file.
3545         * gm2-compiler/M2Scope.def: New file.
3546         * gm2-compiler/M2Scope.mod: New file.
3547         * gm2-compiler/M2Search.def: New file.
3548         * gm2-compiler/M2Search.mod: New file.
3549         * gm2-compiler/M2Size.def: New file.
3550         * gm2-compiler/M2Size.mod: New file.
3551         * gm2-compiler/M2StackAddress.def: New file.
3552         * gm2-compiler/M2StackAddress.mod: New file.
3553         * gm2-compiler/M2StackWord.def: New file.
3554         * gm2-compiler/M2StackWord.mod: New file.
3555         * gm2-compiler/M2Students.def: New file.
3556         * gm2-compiler/M2Students.mod: New file.
3557         * gm2-compiler/M2Swig.def: New file.
3558         * gm2-compiler/M2Swig.mod: New file.
3559         * gm2-compiler/M2System.def: New file.
3560         * gm2-compiler/M2System.mod: New file.
3561         * gm2-compiler/M2Version.def: New file.
3562         * gm2-compiler/NameKey.def: New file.
3563         * gm2-compiler/NameKey.mod: New file.
3564         * gm2-compiler/ObjectFiles.def: New file.
3565         * gm2-compiler/ObjectFiles.mod: New file.
3566         * gm2-compiler/Output.def: New file.
3567         * gm2-compiler/Output.mod: New file.
3568         * gm2-compiler/P0SymBuild.def: New file.
3569         * gm2-compiler/P0SymBuild.mod: New file.
3570         * gm2-compiler/P0SyntaxCheck.bnf: New file.
3571         * gm2-compiler/P0SyntaxCheck.def: New file.
3572         * gm2-compiler/P1Build.bnf: New file.
3573         * gm2-compiler/P1Build.def: New file.
3574         * gm2-compiler/P1SymBuild.def: New file.
3575         * gm2-compiler/P1SymBuild.mod: New file.
3576         * gm2-compiler/P2Build.bnf: New file.
3577         * gm2-compiler/P2Build.def: New file.
3578         * gm2-compiler/P2SymBuild.def: New file.
3579         * gm2-compiler/P2SymBuild.mod: New file.
3580         * gm2-compiler/P3Build.bnf: New file.
3581         * gm2-compiler/P3Build.def: New file.
3582         * gm2-compiler/P3SymBuild.def: New file.
3583         * gm2-compiler/P3SymBuild.mod: New file.
3584         * gm2-compiler/PCBuild.bnf: New file.
3585         * gm2-compiler/PCBuild.def: New file.
3586         * gm2-compiler/PCSymBuild.def: New file.
3587         * gm2-compiler/PCSymBuild.mod: New file.
3588         * gm2-compiler/PHBuild.bnf: New file.
3589         * gm2-compiler/PHBuild.def: New file.
3590         * gm2-compiler/README: New file.
3591         * gm2-compiler/Sets.def: New file.
3592         * gm2-compiler/Sets.mod: New file.
3593         * gm2-compiler/SymbolConversion.def: New file.
3594         * gm2-compiler/SymbolConversion.mod: New file.
3595         * gm2-compiler/SymbolKey.def: New file.
3596         * gm2-compiler/SymbolKey.mod: New file.
3597         * gm2-compiler/SymbolTable.def: New file.
3598         * gm2-compiler/SymbolTable.mod: New file.
3599         * gm2-compiler/bnflex.def: New file.
3600         * gm2-compiler/bnflex.mod: New file.
3601         * gm2-compiler/cflex.def: New file.
3602         * gm2-compiler/gm2.mod: New file.
3603         * gm2-compiler/gm2lcc.mod: New file.
3604         * gm2-compiler/gm2lgen.mod: New file.
3605         * gm2-compiler/gm2lorder.mod: New file.
3606         * gm2-compiler/m2flex.def: New file.
3607         * gm2-compiler/ppg.mod: New file.
3608         * gm2-gcc/README: New file.
3609         * gm2-gcc/dynamicstrings.h: New file.
3610         * gm2-gcc/gcc-consolidation.h: New file.
3611         * gm2-gcc/init.cc: New file.
3612         * gm2-gcc/init.def: New file.
3613         * gm2-gcc/init.h: New file.
3614         * gm2-gcc/m2assert.cc: New file.
3615         * gm2-gcc/m2assert.h: New file.
3616         * gm2-gcc/m2block.cc: New file.
3617         * gm2-gcc/m2block.def: New file.
3618         * gm2-gcc/m2block.h: New file.
3619         * gm2-gcc/m2builtins.cc: New file.
3620         * gm2-gcc/m2builtins.def: New file.
3621         * gm2-gcc/m2builtins.h: New file.
3622         * gm2-gcc/m2color.cc: New file.
3623         * gm2-gcc/m2color.def: New file.
3624         * gm2-gcc/m2color.h: New file.
3625         * gm2-gcc/m2configure.cc: New file.
3626         * gm2-gcc/m2configure.def: New file.
3627         * gm2-gcc/m2configure.h: New file.
3628         * gm2-gcc/m2convert.cc: New file.
3629         * gm2-gcc/m2convert.def: New file.
3630         * gm2-gcc/m2convert.h: New file.
3631         * gm2-gcc/m2decl.cc: New file.
3632         * gm2-gcc/m2decl.def: New file.
3633         * gm2-gcc/m2decl.h: New file.
3634         * gm2-gcc/m2except.cc: New file.
3635         * gm2-gcc/m2except.def: New file.
3636         * gm2-gcc/m2except.h: New file.
3637         * gm2-gcc/m2expr.cc: New file.
3638         * gm2-gcc/m2expr.def: New file.
3639         * gm2-gcc/m2expr.h: New file.
3640         * gm2-gcc/m2linemap.cc: New file.
3641         * gm2-gcc/m2linemap.def: New file.
3642         * gm2-gcc/m2linemap.h: New file.
3643         * gm2-gcc/m2misc.cc: New file.
3644         * gm2-gcc/m2misc.def: New file.
3645         * gm2-gcc/m2misc.h: New file.
3646         * gm2-gcc/m2options.h: New file.
3647         * gm2-gcc/m2range.h: New file.
3648         * gm2-gcc/m2search.h: New file.
3649         * gm2-gcc/m2statement.cc: New file.
3650         * gm2-gcc/m2statement.def: New file.
3651         * gm2-gcc/m2statement.h: New file.
3652         * gm2-gcc/m2top.cc: New file.
3653         * gm2-gcc/m2top.def: New file.
3654         * gm2-gcc/m2top.h: New file.
3655         * gm2-gcc/m2tree.cc: New file.
3656         * gm2-gcc/m2tree.def: New file.
3657         * gm2-gcc/m2tree.h: New file.
3658         * gm2-gcc/m2treelib.cc: New file.
3659         * gm2-gcc/m2treelib.def: New file.
3660         * gm2-gcc/m2treelib.h: New file.
3661         * gm2-gcc/m2type.cc: New file.
3662         * gm2-gcc/m2type.def: New file.
3663         * gm2-gcc/m2type.h: New file.
3664         * gm2-gcc/rtegraph.cc: New file.
3665         * gm2-gcc/rtegraph.h: New file.
3666         * gm2-ici/M2Emit.mod: New file.
3667         * gm2-ici/README: New file.
3668         * gm2-ici/m2linemap.c: New file.
3669         * gm2-internals.texi: New file.
3670         * gm2-lang.cc: New file.
3671         * gm2-lang.h: New file.
3672         * gm2-libiberty/README: New file.
3673         * gm2-libiberty/choosetemp.def: New file.
3674         * gm2-libiberty/pexecute.def: New file.
3675         * gm2-libs-ch/M2LINK.c: New file.
3676         * gm2-libs-ch/README: New file.
3677         * gm2-libs-ch/RTcodummy.c: New file.
3678         * gm2-libs-ch/RTintdummy.c: New file.
3679         * gm2-libs-ch/Selective.c: New file.
3680         * gm2-libs-ch/SysExceptions.c: New file.
3681         * gm2-libs-ch/UnixArgs.cc: New file.
3682         * gm2-libs-ch/cgetopt.c: New file.
3683         * gm2-libs-ch/choosetemp.c: New file.
3684         * gm2-libs-ch/dtoa.cc: New file.
3685         * gm2-libs-ch/errno.c: New file.
3686         * gm2-libs-ch/host.c: New file.
3687         * gm2-libs-ch/ldtoa.cc: New file.
3688         * gm2-libs-ch/m2rts.h: New file.
3689         * gm2-libs-ch/termios.c: New file.
3690         * gm2-libs-ch/tools.c: New file.
3691         * gm2-libs-ch/wrapc.c: New file.
3692         * gm2-libs-ch/xlibc.c: New file.
3693         * gm2-libs-coroutines/Debug.def: New file.
3694         * gm2-libs-coroutines/Debug.mod: New file.
3695         * gm2-libs-coroutines/Executive.def: New file.
3696         * gm2-libs-coroutines/Executive.mod: New file.
3697         * gm2-libs-coroutines/KeyBoardLEDs.def: New file.
3698         * gm2-libs-coroutines/README.texi: New file.
3699         * gm2-libs-coroutines/SYSTEM.def: New file.
3700         * gm2-libs-coroutines/SYSTEM.mod: New file.
3701         * gm2-libs-coroutines/TimerHandler.def: New file.
3702         * gm2-libs-coroutines/TimerHandler.mod: New file.
3703         * gm2-libs-iso/COROUTINES.def: New file.
3704         * gm2-libs-iso/COROUTINES.mod: New file.
3705         * gm2-libs-iso/ChanConsts.def: New file.
3706         * gm2-libs-iso/ChanConsts.h: New file.
3707         * gm2-libs-iso/ChanConsts.mod: New file.
3708         * gm2-libs-iso/CharClass.def: New file.
3709         * gm2-libs-iso/CharClass.mod: New file.
3710         * gm2-libs-iso/ClientSocket.def: New file.
3711         * gm2-libs-iso/ClientSocket.mod: New file.
3712         * gm2-libs-iso/ComplexMath.def: New file.
3713         * gm2-libs-iso/ComplexMath.mod: New file.
3714         * gm2-libs-iso/ConvStringLong.def: New file.
3715         * gm2-libs-iso/ConvStringLong.mod: New file.
3716         * gm2-libs-iso/ConvStringReal.def: New file.
3717         * gm2-libs-iso/ConvStringReal.mod: New file.
3718         * gm2-libs-iso/ConvTypes.def: New file.
3719         * gm2-libs-iso/ConvTypes.mod: New file.
3720         * gm2-libs-iso/EXCEPTIONS.def: New file.
3721         * gm2-libs-iso/EXCEPTIONS.mod: New file.
3722         * gm2-libs-iso/ErrnoCategory.def: New file.
3723         * gm2-libs-iso/GeneralUserExceptions.def: New file.
3724         * gm2-libs-iso/GeneralUserExceptions.mod: New file.
3725         * gm2-libs-iso/IOChan.def: New file.
3726         * gm2-libs-iso/IOChan.mod: New file.
3727         * gm2-libs-iso/IOConsts.def: New file.
3728         * gm2-libs-iso/IOConsts.mod: New file.
3729         * gm2-libs-iso/IOLink.def: New file.
3730         * gm2-libs-iso/IOLink.mod: New file.
3731         * gm2-libs-iso/IOResult.def: New file.
3732         * gm2-libs-iso/IOResult.mod: New file.
3733         * gm2-libs-iso/LongComplexMath.def: New file.
3734         * gm2-libs-iso/LongComplexMath.mod: New file.
3735         * gm2-libs-iso/LongConv.def: New file.
3736         * gm2-libs-iso/LongConv.mod: New file.
3737         * gm2-libs-iso/LongIO.def: New file.
3738         * gm2-libs-iso/LongIO.mod: New file.
3739         * gm2-libs-iso/LongMath.def: New file.
3740         * gm2-libs-iso/LongMath.mod: New file.
3741         * gm2-libs-iso/LongStr.def: New file.
3742         * gm2-libs-iso/LongStr.mod: New file.
3743         * gm2-libs-iso/LongWholeIO.def: New file.
3744         * gm2-libs-iso/LongWholeIO.mod: New file.
3745         * gm2-libs-iso/LowLong.def: New file.
3746         * gm2-libs-iso/LowLong.mod: New file.
3747         * gm2-libs-iso/LowReal.def: New file.
3748         * gm2-libs-iso/LowReal.mod: New file.
3749         * gm2-libs-iso/LowShort.def: New file.
3750         * gm2-libs-iso/LowShort.mod: New file.
3751         * gm2-libs-iso/M2EXCEPTION.def: New file.
3752         * gm2-libs-iso/M2EXCEPTION.mod: New file.
3753         * gm2-libs-iso/M2RTS.def: New file.
3754         * gm2-libs-iso/M2RTS.mod: New file.
3755         * gm2-libs-iso/MemStream.def: New file.
3756         * gm2-libs-iso/MemStream.mod: New file.
3757         * gm2-libs-iso/Preemptive.def: New file.
3758         * gm2-libs-iso/Preemptive.mod: New file.
3759         * gm2-libs-iso/Processes.def: New file.
3760         * gm2-libs-iso/Processes.mod: New file.
3761         * gm2-libs-iso/ProgramArgs.def: New file.
3762         * gm2-libs-iso/ProgramArgs.mod: New file.
3763         * gm2-libs-iso/README.texi: New file.
3764         * gm2-libs-iso/RTco.def: New file.
3765         * gm2-libs-iso/RTdata.def: New file.
3766         * gm2-libs-iso/RTdata.mod: New file.
3767         * gm2-libs-iso/RTentity.def: New file.
3768         * gm2-libs-iso/RTentity.mod: New file.
3769         * gm2-libs-iso/RTfio.def: New file.
3770         * gm2-libs-iso/RTfio.mod: New file.
3771         * gm2-libs-iso/RTgen.def: New file.
3772         * gm2-libs-iso/RTgen.mod: New file.
3773         * gm2-libs-iso/RTgenif.def: New file.
3774         * gm2-libs-iso/RTgenif.mod: New file.
3775         * gm2-libs-iso/RTio.def: New file.
3776         * gm2-libs-iso/RTio.mod: New file.
3777         * gm2-libs-iso/RandomNumber.def: New file.
3778         * gm2-libs-iso/RandomNumber.mod: New file.
3779         * gm2-libs-iso/RawIO.def: New file.
3780         * gm2-libs-iso/RawIO.mod: New file.
3781         * gm2-libs-iso/RealConv.def: New file.
3782         * gm2-libs-iso/RealConv.mod: New file.
3783         * gm2-libs-iso/RealIO.def: New file.
3784         * gm2-libs-iso/RealIO.mod: New file.
3785         * gm2-libs-iso/RealMath.def: New file.
3786         * gm2-libs-iso/RealMath.mod: New file.
3787         * gm2-libs-iso/RealStr.def: New file.
3788         * gm2-libs-iso/RealStr.mod: New file.
3789         * gm2-libs-iso/RndFile.def: New file.
3790         * gm2-libs-iso/RndFile.mod: New file.
3791         * gm2-libs-iso/SIOResult.def: New file.
3792         * gm2-libs-iso/SIOResult.mod: New file.
3793         * gm2-libs-iso/SLongIO.def: New file.
3794         * gm2-libs-iso/SLongIO.mod: New file.
3795         * gm2-libs-iso/SLongWholeIO.def: New file.
3796         * gm2-libs-iso/SLongWholeIO.mod: New file.
3797         * gm2-libs-iso/SRawIO.def: New file.
3798         * gm2-libs-iso/SRawIO.mod: New file.
3799         * gm2-libs-iso/SRealIO.def: New file.
3800         * gm2-libs-iso/SRealIO.mod: New file.
3801         * gm2-libs-iso/SShortIO.def: New file.
3802         * gm2-libs-iso/SShortIO.mod: New file.
3803         * gm2-libs-iso/SShortWholeIO.def: New file.
3804         * gm2-libs-iso/SShortWholeIO.mod: New file.
3805         * gm2-libs-iso/STextIO.def: New file.
3806         * gm2-libs-iso/STextIO.mod: New file.
3807         * gm2-libs-iso/SWholeIO.def: New file.
3808         * gm2-libs-iso/SWholeIO.mod: New file.
3809         * gm2-libs-iso/SYSTEM.def: New file.
3810         * gm2-libs-iso/SYSTEM.mod: New file.
3811         * gm2-libs-iso/Semaphores.def: New file.
3812         * gm2-libs-iso/Semaphores.mod: New file.
3813         * gm2-libs-iso/SeqFile.def: New file.
3814         * gm2-libs-iso/SeqFile.mod: New file.
3815         * gm2-libs-iso/ShortComplexMath.def: New file.
3816         * gm2-libs-iso/ShortComplexMath.mod: New file.
3817         * gm2-libs-iso/ShortIO.def: New file.
3818         * gm2-libs-iso/ShortIO.mod: New file.
3819         * gm2-libs-iso/ShortWholeIO.def: New file.
3820         * gm2-libs-iso/ShortWholeIO.mod: New file.
3821         * gm2-libs-iso/SimpleCipher.def: New file.
3822         * gm2-libs-iso/SimpleCipher.mod: New file.
3823         * gm2-libs-iso/StdChans.def: New file.
3824         * gm2-libs-iso/StdChans.mod: New file.
3825         * gm2-libs-iso/Storage.def: New file.
3826         * gm2-libs-iso/Storage.mod: New file.
3827         * gm2-libs-iso/StreamFile.def: New file.
3828         * gm2-libs-iso/StreamFile.mod: New file.
3829         * gm2-libs-iso/StringChan.def: New file.
3830         * gm2-libs-iso/StringChan.mod: New file.
3831         * gm2-libs-iso/Strings.def: New file.
3832         * gm2-libs-iso/Strings.mod: New file.
3833         * gm2-libs-iso/SysClock.def: New file.
3834         * gm2-libs-iso/SysClock.mod: New file.
3835         * gm2-libs-iso/TERMINATION.def: New file.
3836         * gm2-libs-iso/TERMINATION.mod: New file.
3837         * gm2-libs-iso/TermFile.def: New file.
3838         * gm2-libs-iso/TermFile.mod: New file.
3839         * gm2-libs-iso/TextIO.def: New file.
3840         * gm2-libs-iso/TextIO.mod: New file.
3841         * gm2-libs-iso/WholeConv.def: New file.
3842         * gm2-libs-iso/WholeConv.mod: New file.
3843         * gm2-libs-iso/WholeIO.def: New file.
3844         * gm2-libs-iso/WholeIO.mod: New file.
3845         * gm2-libs-iso/WholeStr.def: New file.
3846         * gm2-libs-iso/WholeStr.mod: New file.
3847         * gm2-libs-iso/wrapsock.c: New file.
3848         * gm2-libs-iso/wrapsock.def: New file.
3849         * gm2-libs-iso/wraptime.c: New file.
3850         * gm2-libs-iso/wraptime.def: New file.
3851         * gm2-libs-min/M2RTS.def: New file.
3852         * gm2-libs-min/M2RTS.mod: New file.
3853         * gm2-libs-min/SYSTEM.def: New file.
3854         * gm2-libs-min/SYSTEM.mod: New file.
3855         * gm2-libs-min/libc.c: New file.
3856         * gm2-libs-min/libc.def: New file.
3857         * gm2-libs-pim/BitBlockOps.def: New file.
3858         * gm2-libs-pim/BitBlockOps.mod: New file.
3859         * gm2-libs-pim/BitByteOps.def: New file.
3860         * gm2-libs-pim/BitByteOps.mod: New file.
3861         * gm2-libs-pim/BitWordOps.def: New file.
3862         * gm2-libs-pim/BitWordOps.mod: New file.
3863         * gm2-libs-pim/BlockOps.def: New file.
3864         * gm2-libs-pim/BlockOps.mod: New file.
3865         * gm2-libs-pim/Break.c: New file.
3866         * gm2-libs-pim/Break.def: New file.
3867         * gm2-libs-pim/CardinalIO.def: New file.
3868         * gm2-libs-pim/CardinalIO.mod: New file.
3869         * gm2-libs-pim/Conversions.def: New file.
3870         * gm2-libs-pim/Conversions.mod: New file.
3871         * gm2-libs-pim/DebugPMD.def: New file.
3872         * gm2-libs-pim/DebugPMD.mod: New file.
3873         * gm2-libs-pim/DebugTrace.def: New file.
3874         * gm2-libs-pim/DebugTrace.mod: New file.
3875         * gm2-libs-pim/Delay.def: New file.
3876         * gm2-libs-pim/Delay.mod: New file.
3877         * gm2-libs-pim/Display.def: New file.
3878         * gm2-libs-pim/Display.mod: New file.
3879         * gm2-libs-pim/ErrorCode.def: New file.
3880         * gm2-libs-pim/ErrorCode.mod: New file.
3881         * gm2-libs-pim/FileSystem.def: New file.
3882         * gm2-libs-pim/FileSystem.mod: New file.
3883         * gm2-libs-pim/FloatingUtilities.def: New file.
3884         * gm2-libs-pim/FloatingUtilities.mod: New file.
3885         * gm2-libs-pim/InOut.def: New file.
3886         * gm2-libs-pim/InOut.mod: New file.
3887         * gm2-libs-pim/Keyboard.def: New file.
3888         * gm2-libs-pim/Keyboard.mod: New file.
3889         * gm2-libs-pim/LongIO.def: New file.
3890         * gm2-libs-pim/LongIO.mod: New file.
3891         * gm2-libs-pim/NumberConversion.def: New file.
3892         * gm2-libs-pim/NumberConversion.mod: New file.
3893         * gm2-libs-pim/README.texi: New file.
3894         * gm2-libs-pim/Random.def: New file.
3895         * gm2-libs-pim/Random.mod: New file.
3896         * gm2-libs-pim/RealConversions.def: New file.
3897         * gm2-libs-pim/RealConversions.mod: New file.
3898         * gm2-libs-pim/RealInOut.def: New file.
3899         * gm2-libs-pim/RealInOut.mod: New file.
3900         * gm2-libs-pim/Strings.def: New file.
3901         * gm2-libs-pim/Strings.mod: New file.
3902         * gm2-libs-pim/Termbase.def: New file.
3903         * gm2-libs-pim/Termbase.mod: New file.
3904         * gm2-libs-pim/Terminal.def: New file.
3905         * gm2-libs-pim/Terminal.mod: New file.
3906         * gm2-libs-pim/TimeDate.def: New file.
3907         * gm2-libs-pim/TimeDate.mod: New file.
3908         * gm2-libs/ASCII.def: New file.
3909         * gm2-libs/ASCII.mod: New file.
3910         * gm2-libs/Args.def: New file.
3911         * gm2-libs/Args.mod: New file.
3912         * gm2-libs/Assertion.def: New file.
3913         * gm2-libs/Assertion.mod: New file.
3914         * gm2-libs/Break.def: New file.
3915         * gm2-libs/Break.mod: New file.
3916         * gm2-libs/Builtins.def: New file.
3917         * gm2-libs/Builtins.mod: New file.
3918         * gm2-libs/COROUTINES.def: New file.
3919         * gm2-libs/COROUTINES.mod: New file.
3920         * gm2-libs/CmdArgs.def: New file.
3921         * gm2-libs/CmdArgs.mod: New file.
3922         * gm2-libs/Debug.def: New file.
3923         * gm2-libs/Debug.mod: New file.
3924         * gm2-libs/DynamicStrings.def: New file.
3925         * gm2-libs/DynamicStrings.mod: New file.
3926         * gm2-libs/Environment.def: New file.
3927         * gm2-libs/Environment.mod: New file.
3928         * gm2-libs/FIO.def: New file.
3929         * gm2-libs/FIO.mod: New file.
3930         * gm2-libs/FormatStrings.def: New file.
3931         * gm2-libs/FormatStrings.mod: New file.
3932         * gm2-libs/FpuIO.def: New file.
3933         * gm2-libs/FpuIO.mod: New file.
3934         * gm2-libs/GetOpt.def: New file.
3935         * gm2-libs/GetOpt.mod: New file.
3936         * gm2-libs/IO.def: New file.
3937         * gm2-libs/IO.mod: New file.
3938         * gm2-libs/Indexing.def: New file.
3939         * gm2-libs/Indexing.mod: New file.
3940         * gm2-libs/LMathLib0.def: New file.
3941         * gm2-libs/LMathLib0.mod: New file.
3942         * gm2-libs/LegacyReal.def: New file.
3943         * gm2-libs/LegacyReal.mod: New file.
3944         * gm2-libs/M2Dependent.def: New file.
3945         * gm2-libs/M2Dependent.mod: New file.
3946         * gm2-libs/M2EXCEPTION.def: New file.
3947         * gm2-libs/M2EXCEPTION.mod: New file.
3948         * gm2-libs/M2LINK.def: New file.
3949         * gm2-libs/M2RTS.def: New file.
3950         * gm2-libs/M2RTS.mod: New file.
3951         * gm2-libs/MathLib0.def: New file.
3952         * gm2-libs/MathLib0.mod: New file.
3953         * gm2-libs/MemUtils.def: New file.
3954         * gm2-libs/MemUtils.mod: New file.
3955         * gm2-libs/NumberIO.def: New file.
3956         * gm2-libs/NumberIO.mod: New file.
3957         * gm2-libs/OptLib.def: New file.
3958         * gm2-libs/OptLib.mod: New file.
3959         * gm2-libs/PushBackInput.def: New file.
3960         * gm2-libs/PushBackInput.mod: New file.
3961         * gm2-libs/README.texi: New file.
3962         * gm2-libs/RTExceptions.def: New file.
3963         * gm2-libs/RTExceptions.mod: New file.
3964         * gm2-libs/RTint.def: New file.
3965         * gm2-libs/RTint.mod: New file.
3966         * gm2-libs/SArgs.def: New file.
3967         * gm2-libs/SArgs.mod: New file.
3968         * gm2-libs/SCmdArgs.def: New file.
3969         * gm2-libs/SCmdArgs.mod: New file.
3970         * gm2-libs/SEnvironment.def: New file.
3971         * gm2-libs/SEnvironment.mod: New file.
3972         * gm2-libs/SFIO.def: New file.
3973         * gm2-libs/SFIO.mod: New file.
3974         * gm2-libs/SMathLib0.def: New file.
3975         * gm2-libs/SMathLib0.mod: New file.
3976         * gm2-libs/SYSTEM.def: New file.
3977         * gm2-libs/SYSTEM.mod: New file.
3978         * gm2-libs/Scan.def: New file.
3979         * gm2-libs/Scan.mod: New file.
3980         * gm2-libs/Selective.def: New file.
3981         * gm2-libs/StdIO.def: New file.
3982         * gm2-libs/StdIO.mod: New file.
3983         * gm2-libs/Storage.def: New file.
3984         * gm2-libs/Storage.mod: New file.
3985         * gm2-libs/StrCase.def: New file.
3986         * gm2-libs/StrCase.mod: New file.
3987         * gm2-libs/StrIO.def: New file.
3988         * gm2-libs/StrIO.mod: New file.
3989         * gm2-libs/StrLib.def: New file.
3990         * gm2-libs/StrLib.mod: New file.
3991         * gm2-libs/StringConvert.def: New file.
3992         * gm2-libs/StringConvert.mod: New file.
3993         * gm2-libs/SysExceptions.def: New file.
3994         * gm2-libs/SysStorage.def: New file.
3995         * gm2-libs/SysStorage.mod: New file.
3996         * gm2-libs/TimeString.def: New file.
3997         * gm2-libs/TimeString.mod: New file.
3998         * gm2-libs/UnixArgs.def: New file.
3999         * gm2-libs/cbuiltin.def: New file.
4000         * gm2-libs/cgetopt.def: New file.
4001         * gm2-libs/config-host: New file.
4002         * gm2-libs/config-host.in: New file.
4003         * gm2-libs/cxxabi.def: New file.
4004         * gm2-libs/dtoa.def: New file.
4005         * gm2-libs/errno.def: New file.
4006         * gm2-libs/gdbif.def: New file.
4007         * gm2-libs/gdbif.mod: New file.
4008         * gm2-libs/gm2-libs-host.h.in: New file.
4009         * gm2-libs/ldtoa.def: New file.
4010         * gm2-libs/libc.def: New file.
4011         * gm2-libs/libm.def: New file.
4012         * gm2-libs/sckt.def: New file.
4013         * gm2-libs/termios.def: New file.
4014         * gm2-libs/wrapc.def: New file.
4015         * gm2config.h.in: New file.
4016         * gm2spec.cc: New file.
4017         * gm2version.h: New file.
4018         * init/README: New file.
4019         * init/mcinit: New file.
4020         * init/ppginit: New file.
4021         * lang-specs.h: New file.
4022         * lang.opt: New file.
4023         * m2-tree.def: New file.
4024         * m2-tree.h: New file.
4025         * m2.flex: New file.
4026         * m2pp.cc: New file.
4027         * m2pp.h: New file.
4028         * mc-boot-ch/GBuiltins.c: New file.
4029         * mc-boot-ch/GM2LINK.c: New file.
4030         * mc-boot-ch/GRTco.c: New file.
4031         * mc-boot-ch/GSYSTEM.c: New file.
4032         * mc-boot-ch/GSelective.c: New file.
4033         * mc-boot-ch/GSysExceptions.c: New file.
4034         * mc-boot-ch/GUnixArgs.cc: New file.
4035         * mc-boot-ch/Gabort.c: New file.
4036         * mc-boot-ch/Gcbuiltin.c: New file.
4037         * mc-boot-ch/Gdtoa.c: New file.
4038         * mc-boot-ch/Gerrno.c: New file.
4039         * mc-boot-ch/Gldtoa.c: New file.
4040         * mc-boot-ch/Glibc.c: New file.
4041         * mc-boot-ch/Glibm.c: New file.
4042         * mc-boot-ch/Gmcrts.c: New file.
4043         * mc-boot-ch/Gmcrts.h: New file.
4044         * mc-boot-ch/Gnetwork.h: New file.
4045         * mc-boot-ch/Gtermios.cc: New file.
4046         * mc-boot-ch/Gwrapc.c: New file.
4047         * mc-boot-ch/README: New file.
4048         * mc-boot-ch/m2rts.h: New file.
4049         * mc-boot-ch/network.c: New file.
4050         * mc-boot/GASCII.c: New file.
4051         * mc-boot/GASCII.h: New file.
4052         * mc-boot/GArgs.c: New file.
4053         * mc-boot/GArgs.h: New file.
4054         * mc-boot/GAssertion.c: New file.
4055         * mc-boot/GAssertion.h: New file.
4056         * mc-boot/GBreak.c: New file.
4057         * mc-boot/GBreak.h: New file.
4058         * mc-boot/GCOROUTINES.h: New file.
4059         * mc-boot/GCmdArgs.c: New file.
4060         * mc-boot/GCmdArgs.h: New file.
4061         * mc-boot/GDebug.c: New file.
4062         * mc-boot/GDebug.h: New file.
4063         * mc-boot/GDynamicStrings.c: New file.
4064         * mc-boot/GDynamicStrings.h: New file.
4065         * mc-boot/GEnvironment.c: New file.
4066         * mc-boot/GEnvironment.h: New file.
4067         * mc-boot/GFIO.c: New file.
4068         * mc-boot/GFIO.h: New file.
4069         * mc-boot/GFormatStrings.c: New file.
4070         * mc-boot/GFormatStrings.h: New file.
4071         * mc-boot/GFpuIO.c: New file.
4072         * mc-boot/GFpuIO.h: New file.
4073         * mc-boot/GIO.c: New file.
4074         * mc-boot/GIO.h: New file.
4075         * mc-boot/GIndexing.c: New file.
4076         * mc-boot/GIndexing.h: New file.
4077         * mc-boot/GM2Dependent.c: New file.
4078         * mc-boot/GM2Dependent.h: New file.
4079         * mc-boot/GM2EXCEPTION.c: New file.
4080         * mc-boot/GM2EXCEPTION.h: New file.
4081         * mc-boot/GM2LINK.h: New file.
4082         * mc-boot/GM2RTS.c: New file.
4083         * mc-boot/GM2RTS.h: New file.
4084         * mc-boot/GMemUtils.c: New file.
4085         * mc-boot/GMemUtils.h: New file.
4086         * mc-boot/GNumberIO.c: New file.
4087         * mc-boot/GNumberIO.h: New file.
4088         * mc-boot/GPushBackInput.c: New file.
4089         * mc-boot/GPushBackInput.h: New file.
4090         * mc-boot/GRTExceptions.c: New file.
4091         * mc-boot/GRTExceptions.h: New file.
4092         * mc-boot/GRTco.h: New file.
4093         * mc-boot/GRTint.c: New file.
4094         * mc-boot/GRTint.h: New file.
4095         * mc-boot/GSArgs.c: New file.
4096         * mc-boot/GSArgs.h: New file.
4097         * mc-boot/GSFIO.c: New file.
4098         * mc-boot/GSFIO.h: New file.
4099         * mc-boot/GSYSTEM.h: New file.
4100         * mc-boot/GSelective.h: New file.
4101         * mc-boot/GStdIO.c: New file.
4102         * mc-boot/GStdIO.h: New file.
4103         * mc-boot/GStorage.c: New file.
4104         * mc-boot/GStorage.h: New file.
4105         * mc-boot/GStrCase.c: New file.
4106         * mc-boot/GStrCase.h: New file.
4107         * mc-boot/GStrIO.c: New file.
4108         * mc-boot/GStrIO.h: New file.
4109         * mc-boot/GStrLib.c: New file.
4110         * mc-boot/GStrLib.h: New file.
4111         * mc-boot/GStringConvert.c: New file.
4112         * mc-boot/GStringConvert.h: New file.
4113         * mc-boot/GSysExceptions.h: New file.
4114         * mc-boot/GSysStorage.c: New file.
4115         * mc-boot/GSysStorage.h: New file.
4116         * mc-boot/GTimeString.c: New file.
4117         * mc-boot/GTimeString.h: New file.
4118         * mc-boot/GUnixArgs.h: New file.
4119         * mc-boot/Galists.c: New file.
4120         * mc-boot/Galists.h: New file.
4121         * mc-boot/Gdecl.c: New file.
4122         * mc-boot/Gdecl.h: New file.
4123         * mc-boot/Gdtoa.h: New file.
4124         * mc-boot/Gerrno.h: New file.
4125         * mc-boot/Gkeyc.c: New file.
4126         * mc-boot/Gkeyc.h: New file.
4127         * mc-boot/Gldtoa.h: New file.
4128         * mc-boot/Glibc.h: New file.
4129         * mc-boot/Glibm.h: New file.
4130         * mc-boot/Glists.c: New file.
4131         * mc-boot/Glists.h: New file.
4132         * mc-boot/GmcComment.c: New file.
4133         * mc-boot/GmcComment.h: New file.
4134         * mc-boot/GmcComp.c: New file.
4135         * mc-boot/GmcComp.h: New file.
4136         * mc-boot/GmcDebug.c: New file.
4137         * mc-boot/GmcDebug.h: New file.
4138         * mc-boot/GmcError.c: New file.
4139         * mc-boot/GmcError.h: New file.
4140         * mc-boot/GmcFileName.c: New file.
4141         * mc-boot/GmcFileName.h: New file.
4142         * mc-boot/GmcLexBuf.c: New file.
4143         * mc-boot/GmcLexBuf.h: New file.
4144         * mc-boot/GmcMetaError.c: New file.
4145         * mc-boot/GmcMetaError.h: New file.
4146         * mc-boot/GmcOptions.c: New file.
4147         * mc-boot/GmcOptions.h: New file.
4148         * mc-boot/GmcPreprocess.c: New file.
4149         * mc-boot/GmcPreprocess.h: New file.
4150         * mc-boot/GmcPretty.c: New file.
4151         * mc-boot/GmcPretty.h: New file.
4152         * mc-boot/GmcPrintf.c: New file.
4153         * mc-boot/GmcPrintf.h: New file.
4154         * mc-boot/GmcQuiet.c: New file.
4155         * mc-boot/GmcQuiet.h: New file.
4156         * mc-boot/GmcReserved.c: New file.
4157         * mc-boot/GmcReserved.h: New file.
4158         * mc-boot/GmcSearch.c: New file.
4159         * mc-boot/GmcSearch.h: New file.
4160         * mc-boot/GmcStack.c: New file.
4161         * mc-boot/GmcStack.h: New file.
4162         * mc-boot/GmcStream.c: New file.
4163         * mc-boot/GmcStream.h: New file.
4164         * mc-boot/Gmcflex.h: New file.
4165         * mc-boot/Gmcp1.c: New file.
4166         * mc-boot/Gmcp1.h: New file.
4167         * mc-boot/Gmcp2.c: New file.
4168         * mc-boot/Gmcp2.h: New file.
4169         * mc-boot/Gmcp3.c: New file.
4170         * mc-boot/Gmcp3.h: New file.
4171         * mc-boot/Gmcp4.c: New file.
4172         * mc-boot/Gmcp4.h: New file.
4173         * mc-boot/Gmcp5.c: New file.
4174         * mc-boot/Gmcp5.h: New file.
4175         * mc-boot/GnameKey.c: New file.
4176         * mc-boot/GnameKey.h: New file.
4177         * mc-boot/Gpth.h: New file.
4178         * mc-boot/GsymbolKey.c: New file.
4179         * mc-boot/GsymbolKey.h: New file.
4180         * mc-boot/Gtermios.h: New file.
4181         * mc-boot/Gtop.c: New file.
4182         * mc-boot/Gvarargs.c: New file.
4183         * mc-boot/Gvarargs.h: New file.
4184         * mc-boot/Gwlists.c: New file.
4185         * mc-boot/Gwlists.h: New file.
4186         * mc-boot/Gwrapc.h: New file.
4187         * mc-boot/README: New file.
4188         * mc/Indexing.def: New file.
4189         * mc/Indexing.mod: New file.
4190         * mc/README: New file.
4191         * mc/alists.def: New file.
4192         * mc/alists.mod: New file.
4193         * mc/decl.def: New file.
4194         * mc/decl.mod: New file.
4195         * mc/decl.mod-extra: New file.
4196         * mc/keyc.def: New file.
4197         * mc/keyc.mod: New file.
4198         * mc/lists.def: New file.
4199         * mc/lists.mod: New file.
4200         * mc/m2flex.def: New file.
4201         * mc/mc.flex: New file.
4202         * mc/mcComment.def: New file.
4203         * mc/mcComment.h: New file.
4204         * mc/mcComment.mod: New file.
4205         * mc/mcComp.def: New file.
4206         * mc/mcComp.mod: New file.
4207         * mc/mcDebug.def: New file.
4208         * mc/mcDebug.mod: New file.
4209         * mc/mcError.def: New file.
4210         * mc/mcError.mod: New file.
4211         * mc/mcFileName.def: New file.
4212         * mc/mcFileName.mod: New file.
4213         * mc/mcLexBuf.def: New file.
4214         * mc/mcLexBuf.h: New file.
4215         * mc/mcLexBuf.mod: New file.
4216         * mc/mcMetaError.def: New file.
4217         * mc/mcMetaError.mod: New file.
4218         * mc/mcOptions.def: New file.
4219         * mc/mcOptions.mod: New file.
4220         * mc/mcPreprocess.def: New file.
4221         * mc/mcPreprocess.mod: New file.
4222         * mc/mcPretty.def: New file.
4223         * mc/mcPretty.mod: New file.
4224         * mc/mcPrintf.def: New file.
4225         * mc/mcPrintf.mod: New file.
4226         * mc/mcQuiet.def: New file.
4227         * mc/mcQuiet.mod: New file.
4228         * mc/mcReserved.def: New file.
4229         * mc/mcReserved.h: New file.
4230         * mc/mcReserved.mod: New file.
4231         * mc/mcSearch.def: New file.
4232         * mc/mcSearch.mod: New file.
4233         * mc/mcStack.def: New file.
4234         * mc/mcStack.mod: New file.
4235         * mc/mcStream.def: New file.
4236         * mc/mcStream.mod: New file.
4237         * mc/mcflex.def: New file.
4238         * mc/mcp1.bnf: New file.
4239         * mc/mcp1.def: New file.
4240         * mc/mcp2.bnf: New file.
4241         * mc/mcp2.def: New file.
4242         * mc/mcp3.bnf: New file.
4243         * mc/mcp3.def: New file.
4244         * mc/mcp4.bnf: New file.
4245         * mc/mcp4.def: New file.
4246         * mc/mcp5.bnf: New file.
4247         * mc/mcp5.def: New file.
4248         * mc/nameKey.def: New file.
4249         * mc/nameKey.mod: New file.
4250         * mc/symbolKey.def: New file.
4251         * mc/symbolKey.mod: New file.
4252         * mc/top.mod: New file.
4253         * mc/varargs.def: New file.
4254         * mc/varargs.mod: New file.
4255         * mc/wlists.def: New file.
4256         * mc/wlists.mod: New file.
4257         * pge-boot/GASCII.c: New file.
4258         * pge-boot/GASCII.h: New file.
4259         * pge-boot/GArgs.c: New file.
4260         * pge-boot/GArgs.h: New file.
4261         * pge-boot/GAssertion.c: New file.
4262         * pge-boot/GAssertion.h: New file.
4263         * pge-boot/GBreak.h: New file.
4264         * pge-boot/GBuiltins.c: New file.
4265         * pge-boot/GCmdArgs.h: New file.
4266         * pge-boot/GDebug.c: New file.
4267         * pge-boot/GDebug.h: New file.
4268         * pge-boot/GDynamicStrings.c: New file.
4269         * pge-boot/GDynamicStrings.h: New file.
4270         * pge-boot/GEnvironment.h: New file.
4271         * pge-boot/GFIO.c: New file.
4272         * pge-boot/GFIO.h: New file.
4273         * pge-boot/GFormatStrings.h: New file.
4274         * pge-boot/GFpuIO.h: New file.
4275         * pge-boot/GIO.c: New file.
4276         * pge-boot/GIO.h: New file.
4277         * pge-boot/GIndexing.c: New file.
4278         * pge-boot/GIndexing.h: New file.
4279         * pge-boot/GLists.c: New file.
4280         * pge-boot/GLists.h: New file.
4281         * pge-boot/GM2Dependent.c: New file.
4282         * pge-boot/GM2Dependent.h: New file.
4283         * pge-boot/GM2EXCEPTION.c: New file.
4284         * pge-boot/GM2EXCEPTION.h: New file.
4285         * pge-boot/GM2LINK.c: New file.
4286         * pge-boot/GM2LINK.h: New file.
4287         * pge-boot/GM2RTS.c: New file.
4288         * pge-boot/GM2RTS.h: New file.
4289         * pge-boot/GNameKey.c: New file.
4290         * pge-boot/GNameKey.h: New file.
4291         * pge-boot/GNumberIO.c: New file.
4292         * pge-boot/GNumberIO.h: New file.
4293         * pge-boot/GOutput.c: New file.
4294         * pge-boot/GOutput.h: New file.
4295         * pge-boot/GPushBackInput.c: New file.
4296         * pge-boot/GPushBackInput.h: New file.
4297         * pge-boot/GRTExceptions.c: New file.
4298         * pge-boot/GRTExceptions.h: New file.
4299         * pge-boot/GRTco.c: New file.
4300         * pge-boot/GSArgs.h: New file.
4301         * pge-boot/GSEnvironment.h: New file.
4302         * pge-boot/GSFIO.c: New file.
4303         * pge-boot/GSFIO.h: New file.
4304         * pge-boot/GSYSTEM.c: New file.
4305         * pge-boot/GSYSTEM.h: New file.
4306         * pge-boot/GScan.h: New file.
4307         * pge-boot/GSelective.c: New file.
4308         * pge-boot/GStdIO.c: New file.
4309         * pge-boot/GStdIO.h: New file.
4310         * pge-boot/GStorage.c: New file.
4311         * pge-boot/GStorage.h: New file.
4312         * pge-boot/GStrCase.c: New file.
4313         * pge-boot/GStrCase.h: New file.
4314         * pge-boot/GStrIO.c: New file.
4315         * pge-boot/GStrIO.h: New file.
4316         * pge-boot/GStrLib.c: New file.
4317         * pge-boot/GStrLib.h: New file.
4318         * pge-boot/GStringConvert.h: New file.
4319         * pge-boot/GSymbolKey.c: New file.
4320         * pge-boot/GSymbolKey.h: New file.
4321         * pge-boot/GSysExceptions.c: New file.
4322         * pge-boot/GSysExceptions.h: New file.
4323         * pge-boot/GSysStorage.c: New file.
4324         * pge-boot/GSysStorage.h: New file.
4325         * pge-boot/GTimeString.h: New file.
4326         * pge-boot/GUnixArgs.cc: New file.
4327         * pge-boot/GUnixArgs.h: New file.
4328         * pge-boot/Gabort.c: New file.
4329         * pge-boot/Gbnflex.c: New file.
4330         * pge-boot/Gbnflex.h: New file.
4331         * pge-boot/Gcbuiltin.c: New file.
4332         * pge-boot/Gdtoa.c: New file.
4333         * pge-boot/Gdtoa.h: New file.
4334         * pge-boot/Gerrno.c: New file.
4335         * pge-boot/Gerrno.h: New file.
4336         * pge-boot/Gldtoa.c: New file.
4337         * pge-boot/Gldtoa.h: New file.
4338         * pge-boot/Glibc.c: New file.
4339         * pge-boot/Glibc.h: New file.
4340         * pge-boot/Glibm.c: New file.
4341         * pge-boot/Glibm.h: New file.
4342         * pge-boot/Gmcrts.c: New file.
4343         * pge-boot/Gmcrts.h: New file.
4344         * pge-boot/Gnetwork.h: New file.
4345         * pge-boot/Gpge.c: New file.
4346         * pge-boot/Gtermios.cc: New file.
4347         * pge-boot/Gtermios.h: New file.
4348         * pge-boot/Gwrapc.c: New file.
4349         * pge-boot/Gwrapc.h: New file.
4350         * pge-boot/README: New file.
4351         * pge-boot/m2rts.h: New file.
4352         * pge-boot/main.c: New file.
4353         * pge-boot/network.c: New file.
4354         * plugin/README: New file.
4355         * plugin/m2rte.cc: New file.
4356         * tools-src/README: New file.
4357         * tools-src/boilerplate.py: New file.
4358         * tools-src/buildpg: New file.
4359         * tools-src/calcpath: New file.
4360         * tools-src/def2doc.py: New file.
4361         * tools-src/makeSystem: New file.
4362         * tools-src/mklink.c: New file.
4363         * tools-src/tidydates.py: New file.
4364         * images/LICENSE.IMG: New file.
4365         * images/gnupng: New file.
4366         * images/gnu.eps: New file.
4367         * version.c: New file.
4368         * configure: Rebuilt.
4369         * target-independent/Builtins.texi: New file.
4370         * target-independent/SYSTEM-iso.texi: New file.
4371         * target-independent/SYSTEM-pim.texi: New file.
4372         * target-independent/gm2-libs.texi: New file.
4373         * target-independent/readme.txt: New file.