Daily bump.
[official-gcc.git] / gcc / m2 / ChangeLog
blob0ffce6b065ed4e811bef56eadd93411f5934cf5b
1 2024-03-21  Gaius Mulley  <gaiusmod2@gmail.com>
3         PR modula2/113836
4         * Make-lang.in (GM2_C_OBJS): Add m2/gm2-gcc/m2pp.o.
5         (m2/m2pp.o): Remove rule.
6         (GM2-COMP-BOOT-DEFS): Add M2LangDump.def.
7         (GM2-COMP-BOOT-MODS): Add M2LangDump.mod.
8         (GM2-GCC-DEFS): Add M2LangDump.def.
9         (GM2-GCC-MODS): Add M2LangDump.mod.
10         * gm2-compiler/M2CaseList.mod (WriteCase): Rewrite.
11         * gm2-compiler/M2Code.mod (DoModuleDeclare): Call
12         DumpFilteredResolver depending upon DumpLangDecl.
13         (DoCodeBlock): Call CreateDumpGimple depending upon
14         DumpLangGimple.
15         (Code): Replace DisplayQuadList blocks with DumpQuadruples.
16         (DisplayQuadsInScope): Remove.
17         (DisplayQuadNumbers): Remove.
18         (CodeBlock): Rewrite.
19         * gm2-compiler/M2GCCDeclare.def (IncludeDumpSymbol): New procedure.
20         (DumpFilteredResolver): New procedure.
21         (DumpFilteredDefinitive): New procedure.
22         * gm2-compiler/M2GCCDeclare.mod (IncludeDumpSymbol): New procedure.
23         (DumpFilteredResolver): New procedure.
24         (DumpFilteredDefinitive): New procedure.
25         (doInclude): Rewrite to use GetDumpFile.
26         (WatchIncludeList): Remove fixed debugging value.
27         (doExclude): Rewrite to use GetDumpFile.
28         (DeclareTypesConstantsProceduresInRange): Remove fixed debugging
29         values.
30         (PreAddModGcc): Rename parameter t as tree.
31         (IncludeGetNth): Rewrite to use GetDumpFile.
32         (IncludeType): Ditto.
33         (IncludeSubscript): Ditto.
34         (PrintLocalSymbol): Ditto.
35         (PrintLocalSymbols): Ditto.
36         (IncludeGetVarient): Ditto.
37         (PrintDeclared): Ditto.
38         (PrintAlignment): Ditto.
39         (PrintDecl): Ditto.
40         (PrintScope): Ditto.
41         (PrintProcedure): Ditto.
42         (PrintSym): Ditto.
43         (PrintSymbol): Ditto.
44         (PrintTerse): Ditto.
45         * gm2-compiler/M2Options.def (GetDumpLangDeclFilename): New
46         procedure function.
47         (SetDumpLangDeclFilename): New procedure.
48         (GetDumpLangQuadFilename): New procedure function.
49         (SetDumpLangQuadFilename): New procedure.
50         (GetDumpLangGimpleFilename): New procedure function.
51         (SetDumpLangGimpleFilename): New procedure.
52         (SetM2DumpFilter): New procedure.
53         (GetM2DumpFilter): New procedure function.
54         (GetDumpLangGimple): New procedure function.
55         * gm2-compiler/M2Options.mod (GetDumpLangDeclFilename): New
56         procedure function.
57         (SetDumpLangDeclFilename): New procedure.
58         (GetDumpLangQuadFilename): New procedure function.
59         (SetDumpLangQuadFilename): New procedure.
60         (GetDumpLangGimpleFilename): New procedure function.
61         (SetDumpLangGimpleFilename): New procedure.
62         (SetM2DumpFilter): New procedure.
63         (GetM2DumpFilter): New procedure function.
64         (GetDumpLangGimple): New procedure function.
65         * gm2-compiler/M2Quads.def (DumpQuadruples): New procedure.
66         * gm2-compiler/M2Quads.mod (DumpUntil): New procedure.
67         (GetCtorInit): New procedure function.
68         (GetCtorFini): New procedure function.
69         (DumpQuadrupleFilter): New procedure function.
70         (DumpQuadrupleAll): New procedure.
71         (DisplayQuadList): Remove procedure.
72         (DumpQuadruples): New procedure.
73         (DisplayQuadRange): Rewrite.
74         (DisplayQuad): Ditto.
75         (DisplayProcedureAttributes): Ditto.
76         (WriteOperator): Ditto.
77         (WriteMode): Ditto.
78         * gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): Replace
79         DisplayQuadruples with TraceQuadruples.
80         (ForeachScopeBlockDo3): Replace DisplayQuadruples with
81         TraceQuadruples.
82         * gm2-compiler/SymbolConversion.def (Gcc2Mod): New procedure function.
83         * gm2-compiler/SymbolConversion.mod: New procedure function.
84         * gm2-gcc/m2misc.cc (m2misc_DebugTree): New function.
85         (m2misc_DebugTreeChain): New function.
86         * gm2-gcc/m2options.h (M2Options_GetDumpLangDeclFilename): New
87         prototype.
88         (M2Options_SetDumpLangDeclFilename): New prototype.
89         (M2Options_GetDumpLangQuadFilename): New prototype.
90         (M2Options_SetDumpLangQuadFilename): New prototype.
91         (M2Options_GetDumpLangGimpleFilename): New prototype.
92         (M2Options_SetDumpLangGimpleFilename): New prototype.
93         (M2Options_GetDumpLangGimple): New prototype.
94         (M2Options_SetM2DumpFilter): New prototype.
95         (M2Options_GetM2DumpFilter): New prototype.
96         * m2pp.cc: Move to...
97         * gm2-gcc/m2pp.cc: ...here.
98         * m2pp.h: Move to...
99         * gm2-gcc/m2pp.h: ...here.
100         * gm2-gcc/m2statement.cc (m2statement_BuildEndFunctionCode): Call
101         m2pp_dump_gimple.
102         * gm2-lang.cc (ENABLE_QUAD_DUMP_ALL): New define.
103         (gm2_langhook_init_options): Add switch cases for proposed new
104         command line options.
105         * gm2-libs/DynamicStrings.def (ReverseIndex): New procedure
106         function.
107         * gm2-libs/DynamicStrings.mod: New procedure function.
108         * gm2-compiler/M2LangDump.def: New file.
109         * gm2-compiler/M2LangDump.mod: New file.
110         * gm2-gcc/m2langdump.h: New file.
111         * gm2-gcc/m2pp.def: New file.
113 2024-03-21  Gaius Mulley  <gaiusmod2@gmail.com>
115         PR modula2/114418
116         * gm2-compiler/PCSymBuild.mod (PushConstFunctionType): Check
117         func against NulSym and issue an error.
119 2024-03-18  Gaius Mulley  <gaiusmod2@gmail.com>
121         PR modula2/114380
122         * gm2-compiler/SymbolTable.mod (GetLowestType): Do not
123         skip over a set type, but return sym.
125 2024-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
127         PR modula2/114296
128         * gm2-compiler/M2ALU.mod (ElementsSolved): Add tokenno parameter.
129         Add constant checks and generate error messages.
130         (EvalSetValues): Pass tokenno parameter to ElementsSolved.
131         * gm2-compiler/M2LexBuf.mod (stop): New procedure.
132         (MakeVirtualTok): Call stop if caret = BadTokenNo.
133         * gm2-compiler/M2Quads.def (BuildNulExpression): Add tokpos
134         parameter.
135         (BuildSetStart): Ditto.
136         (BuildEmptySet): Ditto.
137         (BuildConstructorEnd): Add startpos parameter.
138         (BuildTypeForConstructor): Add tokpos parameter.
139         * gm2-compiler/M2Quads.mod (BuildNulExpression): Add tokpos
140         parameter and push tokpos to the quad stack.
141         (BuildSetStart): Add tokpos parameter and push tokpos.
142         (BuildSetEnd): Rewrite.
143         (BuildEmptySet): Add tokpos parameter and push tokpos with
144         the set type.
145         (BuildConstructorStart): Pop typepos.
146         (BuildConstructorEnd): Add startpos parameter.
147         Create valtok from startpos and cbratokpos.
148         (BuildTypeForConstructor): Add tokpos parameter.
149         * gm2-compiler/M2Range.def (InitAssignmentRangeCheck): Rename
150         d to des and e to expr.
151         Add destok and exprtok parameters.
152         * gm2-compiler/M2Range.mod (InitAssignmentRangeCheck): Rename
153         d to des and e to expr.
154         Add destok and exprtok parameters.
155         Save destok and exprtok into range record.
156         (FoldAssignment): Pass exprtok to TryDeclareConstant.
157         * gm2-compiler/P3Build.bnf (ComponentValue): Rewrite.
158         (Constructor): Rewrite.
159         (ConstSetOrQualidentOrFunction): Rewrite.
160         (SetOrQualidentOrFunction): Rewrite.
161         * gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Rewrite.
162         (SetOrQualidentOrFunction): Rewrite.
163         * gm2-compiler/PHBuild.bnf (Constructor): Rewrite.
164         (ConstSetOrQualidentOrFunction): Rewrite.
166 2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>
168         PR modula2/114294
169         * gm2-compiler/M2Quads.mod (BuildConstHighFromSym):
170         Call PutConst to assign the type Cardinal in the result
171         constant.
173 2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>
175         PR modula2/114333
176         * gm2-compiler/M2GenGCC.mod (CodeStatement): Remove op1, op2 and
177         op3 parameters to CodeIfLess, CodeIfLessEqu, CodeIfGreEqu, CodeIfGre,
178         CodeIfIn, CodeIfNotIn.
179         (CodeIfLess): Rewrite.
180         (PerformCodeIfLess): New procedure.
181         (CodeIfLess): Rewrite.
182         (PerformCodeIfLess): New procedure.
183         (CodeIfLessEqu): Rewrite.
184         (PerformCodeIfLessEqu): New procedure.
185         (CodeIfGreEqu): Rewrite.
186         (PerformCodeIfGreEqu): New procedure.
187         (CodeIfGre): Rewrite.
188         (PerformCodeIfGre): New procedure.
189         (CodeIfIn): Rewrite.
190         (PerformCodeIfIn): New procedure.
191         (CodeIfNotIn): Rewrite.
192         (PerformCodeIfNotIn): New procedure.
194 2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>
196         PR modula2/114333
197         * gm2-compiler/M2Check.mod (checkUnbounded): New procedure
198         function.
199         (checkArrayTypeEquivalence): Extend checking to cover unbounded
200         arrays, arrays and constants.
201         (IsTyped): Simplified the expression and corrected a test for
202         IsConstructor.
203         (checkTypeKindViolation): New procedure function.
204         (doCheckPair): Call checkTypeKindViolation.
205         * gm2-compiler/M2GenGCC.mod (CodeStatement): Remove parameters
206         to CodeEqu and CodeNotEqu.
207         (PerformCodeIfEqu): New procedure.
208         (CodeIfEqu): Rewrite.
209         (PerformCodeIfNotEqu): New procedure.
210         (CodeIfNotEqu): Rewrite.
211         * gm2-compiler/M2Quads.mod (BuildRelOpFromBoolean): Correct
212         comment.
214 2024-03-11  Gaius Mulley  <gaiusmod2@gmail.com>
216         PR modula2/114295
217         * gm2-compiler/M2Batch.mod (MakeProgramSource): Call PutDeclared
218         if the module is known.
219         (MakeDefinitionSource): Ditto.
220         (MakeImplementationSource): Ditto.
221         * gm2-compiler/M2Comp.mod (ExamineHeader): New procedure.
222         (ExamineCompilationUnit): Rewrite.
223         (PeepInto): Rewrite.
224         * gm2-compiler/M2Error.mod (NewError): Remove default call to
225         GetTokenNo.
226         * gm2-compiler/M2Quads.mod (callRequestDependant): Push tokno with
227         Adr.
228         (BuildStringAdrParam): Ditto.
229         (doBuildBinaryOp): Push OperatorPos on the bool stack.
230         (BuildRelOp): Ditto.
231         * gm2-compiler/P2Build.bnf (SetType): Pass set token pos to
232         BuildSetType.
233         (PointerType): Pass pointer token pos to BuildPointerType.
234         * gm2-compiler/P2SymBuild.def (BuildPointerType): Add parameter
235         pointerpos.
236         (BuildSetType): Add parameter setpos.
237         * gm2-compiler/P2SymBuild.mod (BuildPointerType): Add parameter
238         pointerpos.  Build combined token and use it when creating a
239         pointer type.
240         (BuildSetType): Add parameter setpos.  Build combined token and
241         use it when creating a set type.
242         * gm2-compiler/SymbolTable.mod (DebugUnknownToken): New constant.
243         (CheckTok): New procedure function.
244         (MakeProcedure): Call CheckTok.
245         (MakeRecord): Ditto.
246         (MakeVarient): Ditto.
247         (MakeEnumeration): Ditto.
248         (MakeHiddenType): Ditto.
249         (MakeConstant): Ditto.
250         (MakeConstStringCnul): Ditto.
251         (MakeSubrange): Ditto.
252         (MakeTemporary): Ditto.
253         (MakeVariableForParam): Ditto.
254         (MakeParameterHeapVar): Ditto.
255         (MakePointer): Ditto.
256         (MakeSet): Ditto.
257         (MakeUnbounded): Ditto.
258         (MakeProcType): Ditto.
260 2024-03-08  Gaius Mulley  <gaiusmod2@gmail.com>
262         * gm2-compiler/M2Quads.mod (Init): Use InitIndexTuned with
263         default size 65K.
264         * gm2-compiler/SymbolConversion.mod (Init): Ditto.
265         * gm2-compiler/SymbolTable.mod (BEGIN): Ditto.
266         * mc-boot/GM2Dependent.cc: Rebuild.
267         * mc-boot/GM2Dependent.h: Rebuild.
268         * mc-boot/GM2RTS.cc: Rebuild.
269         * pge-boot/GIndexing.cc: Rebuild.
270         * pge-boot/GIndexing.h: Rebuild.
271         * pge-boot/GM2Dependent.cc: Rebuild.
272         * pge-boot/GM2Dependent.h: Rebuild.
273         * pge-boot/GM2RTS.cc: Rebuild.
275 2024-03-07  Gaius Mulley  <gaiusmod2@gmail.com>
277         PR modula2/109969
278         * gm2-compiler/M2LexBuf.def (TokenToLineNo): Rename parameter.
279         (TokenToColumnNo): Rename parameter.
280         (TokenToLocation): Rename parameter.
281         (FindFileNameFromToken): Rename parameter.
282         (DumpTokens): Rewrite comment.
283         * gm2-compiler/M2LexBuf.mod: Rewrite.
284         * gm2-compiler/P0SyntaxCheck.bnf (CheckInsertCandidate):
285         DumpTokens before and after inserting recovery token.
286         * gm2-gcc/m2builtins.cc (do_target_support_exists): Add
287         bf_c99_compl case.
288         * gm2-libs/Indexing.def (InitIndexTuned): New procedure
289         function.
290         (IsEmpty): New procedure function.
291         * gm2-libs/Indexing.mod (InitIndexTuned): New procedure
292         function.
293         (IsEmpty): New procedure function.
294         (Index): New field GrowFactor.
295         (PutIndice): Use GrowFactor to extend dynamic array.
297 2024-03-04  Gaius Mulley  <gaiusmod2@gmail.com>
299         PR modula2/114227
300         * gm2-libs-iso/M2RTS.mod (ProcedureChain): Remove.
301         (ProcedureList): Remove.
302         (ExecuteReverse): Remove.
303         (ExecuteTerminationProcedures): Rewrite.
304         (ExecuteInitialProcedures): Rewrite.
305         (AppendProc): Remove.
306         (InstallTerminationProcedure): Rewrite.
307         (InstallInitialProcedure): Rewrite.
308         (InitProcList): Remove.
309         * gm2-libs/M2Dependent.def (InstallTerminationProcedure):
310         New procedure.
311         (ExecuteTerminationProcedures): New procedure.
312         (InstallInitialProcedure): New procedure.
313         (ExecuteInitialProcedures): New procedure.
314         * gm2-libs/M2Dependent.mod (ProcedureChain): New type.
315         (ProcedureList): New type.
316         (ExecuteReverse): New procedure.
317         (ExecuteTerminationProcedures): New procedure.
318         (ExecuteInitialProcedures): New procedure.
319         (AppendProc): New procedure.
320         (InstallTerminationProcedure): New procedure.
321         (InstallInitialProcedure): New procedure.
322         (InitProcList): New procedure.
323         * gm2-libs/M2RTS.mod (ProcedureChain): Remove.
324         (ProcedureList): Remove.
325         (ExecuteReverse): Remove.
326         (ExecuteTerminationProcedures): Rewrite.
327         (ExecuteInitialProcedures): Rewrite.
328         (AppendProc): Remove.
329         (InstallTerminationProcedure): Rewrite.
330         (InstallInitialProcedure): Rewrite.
331         (InitProcList): Remove.
333 2024-02-25  Gaius Mulley  <gaiusmod2@gmail.com>
335         PR modula2/113749
336         * Make-lang.in (BUILD-PGE-O): Add m2/pge-boot/Gwrapc.o.
337         * gm2-libs-ch/wrapc.c (wrapc_SeekSet): New function.
338         (wrapc_SeekEnd): Ditto.
339         (wrapc_ReadOnly): Ditto.
340         (wrapc_WriteOnly): Ditto.
341         * gm2-libs/FIO.mod (SEEK_SET): Remove.
342         (SEEK_END): Remove.
343         (UNIXREADONLY): Remove.
344         (UNIXWRITEONLY): Remove.
345         (ConnectToUnix): Replace UNIXWRITEONLY with a call to WriteOnly.
346         Replace UNIXREADONLY with a call to ReadOnly.
347         (SetPositionFromBeginning): Replace SEEK_SET with a call to
348         SeekSet.
349         (SetPositionFromEnd): Replace SEEK_END with a call to
350         SeekEnd.
351         * gm2-libs/wrapc.def (SeekSet): New procedure function.
352         (SeekEnd): New procedure function.
353         (ReadOnly): New procedure function.
354         (WriteOnly): New procedure function.
355         * mc-boot-ch/Glibc.c (BUILD_MC_LIBC_TRACE): Undef.
356         (check_init): New function.
357         (tracedb): Ditto.
358         (tracedb_open): Ditto.
359         (tracedb_result): Ditto.
360         (libc_read): Ditto.
361         (libc_write): Ditto.
362         (libc_close): Ditto.
363         (libc_creat): Ditto.
364         (libc_open): Ditto.
365         (libc_lseek): Ditto.
366         * mc-boot-ch/Gwrapc.c (wrapc_SeekSet): New function.
367         (wrapc_SeekEnd): Ditto.
368         (wrapc_ReadOnly): Ditto.
369         (wrapc_WriteOnly): Ditto.
370         * mc-boot/GDynamicStrings.cc: Rebuilt.
371         * mc-boot/GFIO.cc: Ditto.
372         * mc-boot/GIndexing.cc: Ditto.
373         * mc-boot/GM2Dependent.cc: Ditto.
374         * mc-boot/GM2EXCEPTION.cc: Ditto.
375         * mc-boot/GPushBackInput.cc: Ditto.
376         * mc-boot/GRTExceptions.cc: Ditto.
377         * mc-boot/GRTint.cc: Ditto.
378         * mc-boot/GSArgs.cc: Ditto.
379         * mc-boot/GStdIO.cc: Ditto.
380         * mc-boot/GStringConvert.cc: Ditto.
381         * mc-boot/GSysStorage.cc: Ditto.
382         * mc-boot/Gdecl.cc: Ditto.
383         * mc-boot/Gkeyc.cc: Ditto.
384         * mc-boot/Glibc.h: Ditto.
385         * mc-boot/GmcComment.cc: Ditto.
386         * mc-boot/GmcComp.cc: Ditto.
387         * mc-boot/GmcDebug.cc: Ditto.
388         * mc-boot/GmcMetaError.cc: Ditto.
389         * mc-boot/GmcStack.cc: Ditto.
390         * mc-boot/GmcStream.cc: Ditto.
391         * mc-boot/GnameKey.cc: Ditto.
392         * mc-boot/GsymbolKey.cc: Ditto.
393         * mc-boot/Gvarargs.cc: Ditto.
394         * mc-boot/Gwrapc.h: Ditto.
395         * mc/decl.mod (getSymName): Add pointerref clause.
396         * mc/mcStream.mod (copy): Check for an error after every read.
397         * mc/varargs.mod (copy): Rewrite pointer arithmetic using INC to
398         avoid type incompatibility.
399         * pge-boot/GDynamicStrings.cc: Rebuilt.
400         * pge-boot/GDynamicStrings.h: Ditto.
401         * pge-boot/GFIO.cc: Ditto.
402         * pge-boot/GFIO.h: Ditto.
403         * pge-boot/GIO.cc: Ditto.
404         * pge-boot/GIndexing.cc: Ditto.
405         * pge-boot/GM2Dependent.cc: Ditto.
406         * pge-boot/GM2EXCEPTION.cc: Ditto.
407         * pge-boot/GNameKey.cc: Ditto.
408         * pge-boot/GPushBackInput.cc: Ditto.
409         * pge-boot/GRTExceptions.cc: Ditto.
410         * pge-boot/GStdIO.cc: Ditto.
411         * pge-boot/GSymbolKey.cc: Ditto.
412         * pge-boot/GSysStorage.cc: Ditto.
413         * pge-boot/Glibc.h: Ditto.
414         * pge-boot/Gwrapc.cc: Ditto.
415         * pge-boot/Gwrapc.h: Ditto.
417 2024-02-22  Gaius Mulley  <gaiusmod2@gmail.com>
419         PR modula2/114055
420         * gm2-compiler/M2Check.mod (Import): IsConstLitInternal and
421         IsConstLit.
422         (isInternal): New procedure function.
423         (doCheck): Test for isInternal in either operand and early
424         return true.
425         * gm2-compiler/M2Quads.mod (PushOne): Rewrite with extra
426         parameter internal.
427         (BuildPseudoBy): Add TRUE parameter to PushOne call.
428         (BuildIncProcedure): Add FALSE parameter to PushOne call.
429         (BuildDecProcedure): Add FALSE parameter to PushOne call.
430         * gm2-compiler/M2Range.mod (ForLoopBeginTypeCompatible):
431         Uncomment code and tidy up error string.
432         * gm2-compiler/SymbolTable.def (PutConstLitInternal):
433         New procedure.
434         (IsConstLitInternal): New procedure function.
435         * gm2-compiler/SymbolTable.mod (PutConstLitInternal):
436         New procedure.
437         (IsConstLitInternal): New procedure function.
438         (SymConstLit): New field IsInternal.
439         (CreateConstLit): Initialize IsInternal to FALSE.
441 2024-02-21  Gaius Mulley  <gaiusmod2@gmail.com>
443         PR modula2/114026
444         * gm2-compiler/M2GenGCC.mod (Import): Remove DisplayQuadruples.
445         Remove DisplayQuadList.
446         (MixTypesBinary): Replace check with overflowCheck.
447         New variable typeChecking.
448         Use GenQuadOTypetok to retrieve typeChecking.
449         Use typeChecking to suppress error message.
450         * gm2-compiler/M2LexBuf.def (MakeVirtual2Tok): New procedure
451         function.
452         * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Improve comment.
453         (MakeVirtual2Tok): New procedure function.
454         * gm2-compiler/M2Quads.def (GetQuadOTypetok): New procedure.
455         * gm2-compiler/M2Quads.mod (QuadFrame): New field CheckType.
456         (PutQuadO): Rewrite using PutQuadOType.
457         (PutQuadOType): New procedure.
458         (GetQuadOTypetok): New procedure.
459         (BuildPseudoBy): Rewrite.
460         (BuildForToByDo): Remove type checking.
461         Add parameters e2, e2tok, BySym, bytok to
462         InitForLoopBeginRange.
463         Push the RangeId.
464         (BuildEndFor): Pop the RangeId.
465         Use GenQuadOTypetok to generate AddOp without type checking.
466         Call PutRangeForIncrement with the RangeId and IncQuad.
467         (GenQuadOtok): Rewrite using GenQuadOTypetok.
468         (GenQuadOTypetok): New procedure.
469         * gm2-compiler/M2Range.def (InitForLoopBeginRangeCheck):
470         Rename d as des, e as expr.
471         Add expr1, expr1tok, expr2, expr2tok, byconst, byconsttok
472         parameters.
473         (PutRangeForIncrement): New procedure.
474         * gm2-compiler/M2Range.mod (Import): MakeVirtual2Tok.
475         (Range): Add expr2, byconst, destok, exprtok, expr2tok,
476         incrementquad.
477         (InitRange): Initialize expr2 to NulSym.
478         Initialize byconst to NulSym.
479         Initialize tokenNo, destok, exprtok, expr2tok, byconst to
480         UnknownTokenNo.
481         Initialize incrementquad to 0.
482         (PutRangeForIncrement): New procedure.
483         (PutRangeDesExpr2): New procedure.
484         (InitForLoopBeginRangeCheck): Rewrite.
485         (ForLoopBeginTypeCompatible): New procedure function.
486         (CodeForLoopBegin): Call ForLoopBeginTypeCompatible and
487         only code the for loop assignment if all the type checks
488         succeed.
490 2024-02-19  Gaius Mulley  <gaiusmod2@gmail.com>
492         PR modula2/113889
493         * gm2-compiler/M2ALU.mod (StringFitsArray): Add tokeno parameter
494         to GetStringLength.
495         (InitialiseArrayOfCharWithString): Add tokeno parameter to
496         GetStringLength.
497         (CheckGetCharFromString): Add tokeno parameter to GetStringLength.
498         * gm2-compiler/M2Const.mod (constResolveViaMeta): Replace
499         PutConstString with PutConstStringKnown.
500         * gm2-compiler/M2GCCDeclare.mod (DeclareCharConstant): Add tokenno
501         parameter and add assert.  Use tokenno to generate location.
502         (DeclareStringConstant): Add tokenno and add asserts.
503         Add tokenno parameter to calls to GetStringLength.
504         (PromoteToString): Add assert and add tokenno parameter to
505         GetStringLength.
506         (PromoteToCString): Add assert and add tokenno parameter to
507         GetStringLength.
508         (DeclareConstString): New procedure function.
509         (TryDeclareConst): Remove size local variable.
510         Check IsConstStringKnown.
511         Call DeclareConstString.
512         (PrintString): New procedure.
513         (PrintVerboseFromList): Call PrintString.
514         (CheckResolveSubrange): Check IsConstStringKnown before creating
515         subrange for char or issuing an error.
516         * gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Add
517         StringLengthOp, StringConvertM2nulOp, StringConvertCnulOp case
518         clauses.
519         (FindSize): Add assert IsConstStringKnown.
520         (StringToChar): New variable tokenno.
521         Add tokenno parameter to GetStringLength.
522         (FoldStringLength): New procedure.
523         (FoldStringConvertM2nul): New procedure.
524         (FoldStringConvertCnul): New procedure.
525         (CodeAddr): Add tokenno parameter.
526         Replace CurrentQuadToken with tokenno.
527         Add tokenno parameter to GetStringLength.
528         (PrepareCopyString): Rewrite.
529         (IsConstStrKnown): New procedure function.
530         (FoldAdd): Detect conststring op2 and op3 which are known and
531         concat.  Place result into op1.
532         (FoldStandardFunction): Pass tokenno as a parameter to
533         GetStringLength.
534         (CodeXIndr): Rewrite comment.
535         Rename op1 to left, op3 to right.
536         Pass rightpos to GetStringLength.
537         * gm2-compiler/M2Quads.def (QuadrupleOp): Add
538         StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
539         * gm2-compiler/M2Quads.mod (import): Remove MakeConstLitString.
540         Add CopyConstString and PutConstStringKnown.
541         (IsInitialisingConst): Add StringConvertCnulOp,
542         StringConvertM2nulOp and StringLengthOp.
543         (callRequestDependant): Replace MakeConstLitString with
544         MakeConstString.
545         (DeferMakeConstStringCnul): New procedure function.
546         (DeferMakeConstStringM2nul): New procedure function.
547         (CheckParameter): Add early return if the string const is unknown.
548         (DescribeType): Add token parameter to GetStringLength.
549         Check for IsConstStringKnown.
550         (ManipulateParameters): Use DeferMakeConstStringCnul and
551         DeferMakeConstStringM2nul.
552         (MakeLengthConst): Remove and replace with...
553         (DeferMakeLengthConst): ... this.
554         (doBuildBinaryOp): Create ConstString and set it to contents
555         unknown.
556         Check IsConstStringKnown before generating error message.
557         (WriteQuad): Add StringConvertCnulOp, StringConvertM2nulOp and
558         StringLengthOp.
559         (WriteOperator): Add StringConvertCnulOp, StringConvertM2nulOp and
560         StringLengthOp.
561         * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
562         StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
563         * gm2-compiler/NameKey.mod (LengthKey): Allow NulName to return 0.
564         * gm2-compiler/P2SymBuild.mod (BuildString): Replace
565         MakeConstLitString with MakeConstString.
566         (DetermineType): Replace PutConstString with PutConstStringKnown.
567         * gm2-compiler/SymbolTable.def (MakeConstVar): Tidy up comment.
568         (MakeConstLitString): Remove.
569         (MakeConstString): New procedure function.
570         (MakeConstStringCnul): New procedure function.
571         (MakeConstStringM2nul): New procedure function.
572         (PutConstStringKnown): New procedure.
573         (CopyConstString): New procedure.
574         (IsConstStringKnown): New procedure function.
575         (IsConstStringM2): New procedure function.
576         (IsConstStringC): New procedure function.
577         (IsConstStringM2nul): New procedure function.
578         (IsConstStringCnul): New procedure function.
579         (GetStringLength): Add token parameter.
580         (PutConstString): Remove.
581         (GetConstStringM2): Remove.
582         (GetConstStringC): Remove.
583         (GetConstStringM2nul): Remove.
584         (GetConstStringCnul): Remove.
585         (MakeConstStringC): Remove.
586         * gm2-compiler/SymbolTable.mod (SymConstString): Remove
587         M2Variant, NulM2Variant, CVariant, NulCVariant.
588         Add Known.
589         (CheckAnonymous): Replace $$ with __anon.
590         (IsNameAnonymous): Replace $$ with __anon.
591         (MakeConstVar): Detect whether the name is nul and treat as
592         a temporary constant.
593         (MakeConstLitString): Remove.
594         (BackFillString): Remove.
595         (InitConstString): Rewrite.
596         (GetConstStringM2): Remove.
597         (GetConstStringC): Remove.
598         (GetConstStringContent): New procedure function.
599         (GetConstStringM2nul): Remove.
600         (GetConstStringCnul): Remove.
601         (MakeConstStringCnul): Rewrite.
602         (MakeConstStringM2nul): Rewrite.
603         (MakeConstStringC): Remove.
604         (MakeConstString): Rewrite.
605         (PutConstStringKnown): New procedure.
606         (CopyConstString): New procedure.
607         (PutConstString): Remove.
608         (IsConstStringKnown): New procedure function.
609         (IsConstStringM2): New procedure function.
610         (IsConstStringC): Rewrite.
611         (IsConstStringM2nul): Rewrite.
612         (IsConstStringCnul): Rewrite.
613         (GetConstStringKind): New procedure function.
614         (GetString): Check Known.
615         (GetStringLength): Add token parameter and check Known.
617 2024-02-10  Gaius Mulley  <gaiusmod2@gmail.com>
619         PR modula2/113848
620         * gm2-libs/SArgs.mod (GetArg): Re-write address arithmetic
621         to avoid (void *) computation.
623 2024-02-03  Gaius Mulley  <gaiusmod2@gmail.com>
625         PR modula2/113730
626         * gm2-compiler/M2Base.mod (IsUserType): New procedure function.
627         (MixTypes): Use IsUserType instead of IsType before calling MixTypes.
628         * gm2-compiler/M2GenGCC.mod (GetTypeMode): Remove and import from
629         SymbolTable.
630         (CodeBinaryCheck): Replace call to MixTypes with MixTypesBinary.
631         (CodeBinary): Replace call to MixTypes with MixTypesBinary.
632         (CodeIfLess): Replace MixTypes with ComparisonMixTypes.
633         (CodeIfGre): Replace MixTypes with ComparisonMixTypes.
634         (CodeIfLessEqu): Replace MixTypes with ComparisonMixTypes.
635         (CodeIfGreEqu): Replace MixTypes with ComparisonMixTypes.
636         (CodeIfEqu): Replace MixTypes with ComparisonMixTypes.
637         (CodeIfNotEqu): Replace MixTypes with ComparisonMixTypes.
638         (ComparisonMixTypes): New procedure function.
639         * gm2-compiler/M2Quads.mod (BuildEndFor): Replace GenQuadO
640         with GenQuadOtok and pass tokenpos for the operands to the AddOp
641         and XIndrOp.
642         (CheckRangeIncDec): Check etype against NulSym and dtype for a
643         pointer and set etype to Address.
644         (BuildAddAdrFunction): New variable opa.  Convert operand to an
645         address and save result in opa.  Replace GenQuad with GenQuadOtok.
646         (BuildSubAdrFunction): New variable opa.  Convert operand to an
647         address and save result in opa.  Replace GenQuad with GenQuadOtok.
648         (BuildDiffAdrFunction): New variable opa.  Convert operand to an
649         address and save result in opa.  Replace GenQuad with GenQuadOtok.
650         (calculateMultipicand): Replace GenQuadO with GenQuadOtok.
651         (ConvertToAddress): New procedure function.
652         (BuildDynamicArray): Convert index to address before adding to
653         the base.
654         * gm2-compiler/SymbolTable.def (GetTypeMode): New procedure function.
655         * gm2-compiler/SymbolTable.mod (GetTypeMode): New procedure
656         function implemented (moved from M2GenGCC.mod).
657         * gm2-libs/SArgs.mod (GetArg): Replace cast to PtrToChar with ADDRESS.
659 2024-02-01  Gaius Mulley  <gaiusmod2@gmail.com>
661         PR modula2/111627
662         PR modula2/112506
663         * gm2-compiler/M2Comp.mod (Pass0CheckMod): Test IsDefImp before
664         checking IsDefinitionForC.
666 2024-01-31  Gaius Mulley  <gaiusmod2@gmail.com>
668         * gm2-compiler/M2Comp.mod (Pass0CheckMod): Tidy up comment.
669         * gm2-compiler/P1Build.bnf (PossiblyExportIdent): Replace
670         PushTF with PushTFtok.
672 2024-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
674         * gm2-compiler/M2Check.mod (dumpIndice): New procedure.
675         (dumpIndex): New procedure.
676         (dumptInfo): New procedure.
677         (buildError4): Add comment and pass formal and actual to
678         MetaError4.  Improve text describing error.
679         (buildError2): Generate different error descriptions for
680         the three error kinds.
681         (checkConstMeta): Add block comment.  Add more meta checks
682         and call doCheckPair to complete string const checking.
683         Add tinfo parameter.
684         (checkConstEquivalence): Add tinfo parameter.
685         * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
686         Print the length of a const string.
687         * gm2-compiler/M2GenGCC.mod (CodeParam): Remove parameters
688         op1, op2 and op3.
689         (doParam): Add paramtok parameter.  Use paramtok instead rather
690         than CurrentQuadToken.
691         (CodeParam): Rewrite.
692         * gm2-compiler/M2Quads.mod (CheckProcedureParameters):
693         Add comments explaining that const strings are not checked
694         in M2Quads.mod.
695         (FailParameter): Use MetaErrorT2 with tokpos rather than
696         MetaError2.
697         (doBuildBinaryOp): Assign OldPos and OperatorPos before the
698         IF block.
699         * gm2-compiler/SymbolTable.mod (PutConstString): Add call to
700         InitWhereDeclaredTok.
702 2024-01-25  Gaius Mulley  <gaiusmod2@gmail.com>
704         * gm2-libs/libc.def (lseek): Change the second parameter
705         type to CSSIZE_T and make the return value optional.
707 2024-01-24  Gaius Mulley  <gaiusmod2@gmail.com>
709         PR modula2/113559
710         * gm2-libs/FIO.mod (SetPositionFromBeginning): Convert pos into
711         CSSIZE_T during call to lseek.
712         (SetPositionFromEnd): Convert pos into CSSIZE_T during call to
713         lseek.
715 2024-01-23  H.J. Lu  <hjl.tools@gmail.com>
717         PR bootstrap/113554
718         * mc/mc.flex (alloca): Don't redefine.
719         (handleDate): Replace (long *)0 with (time_t *)0 when calling
720         time.
722 2024-01-19  Gaius Mulley  <gaiusmod2@gmail.com>
724         * gm2-compiler/M2BasicBlock.mod (InitBasicBlocks): Rename
725         ForeachScopeBlockDo to ForeachScopeBlockDo3.
726         * gm2-compiler/M2Code.mod: Import ForeachScopeBlockDo2.
727         (OptimizeScopeBlock): Call ForeachScopeBlockDo3 for
728         procedures with three parameters and ForeachScopeBlockDo2
729         for two parameters.
730         (CodeBlock): Ditto.
731         * gm2-compiler/M2GCCDeclare.mod (DeclareTypesConstantsProcedures):
732         Rename ForeachScopeBlockDo to ForeachScopeBlockDo3.
733         * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): Remove Scope
734         parameter.
735         * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): Remove Scope
736         parameter.
737         (MaybeDebugBuiltinMemcpy): Remove parameter tok.
738         (MaybeDebugBuiltinMemset): Remove.
739         (MakeCopyUse): Remove tokenno from call to
740         MaybeDebugBuiltinMemcpy.
741         (PerformFoldBecomes): Remove desloc and exprloc.
742         (checkArrayElements): Remove location.  Remove virtpos
743         as a parameter to MaybeDebugBuiltinMemcpy.
744         (NoWalkProcedure): Add attribute unused.
745         (CheckElementSetTypes): Remove parameter p.
746         Remove CurrentQuadToken in call to MaybeDebugBuiltinMemcpy.
747         Remove NoWalkProcedure from call to CheckElementSetTypes.
748         Remove tokenno from call to MaybeDebugBuiltinMemcpy.
749         * gm2-compiler/M2Optimize.mod (RemoveProcedures): Replace
750         two parameter indirect procedure iterator with
751         ForeachScopeBlockDo2.
752         * gm2-compiler/M2SSA.mod: Remove ForeachScopeBlockDo.
753         * gm2-compiler/M2Scope.def (ForeachScopeBlockDo2): New
754         declaration.
755         (ForeachScopeBlockDo): Rename ...
756         (ForeachScopeBlockDo3): ... to this.
757         (ScopeProcedure2): New declaration.
758         * gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): New
759         procedure.
760         (ForeachScopeBlockDo): Rename ...
761         (ForeachScopeBlockDo3): ... to this.
763 2024-01-18  Gaius Mulley  <gaiusmod2@gmail.com>
765         PR modula2/111956
766         * Make-lang.in (host_mc_longreal): Remove.
767         * configure: Regenerate.
768         * configure.ac (M2C_LONGREAL_FLOAT128): Remove.
769         (M2C_LONGREAL_PPC64LE): Remove.
770         * gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure.
771         (GetIBMLongDouble): New procedure function.
772         (SetIEEELongDouble): New procedure.
773         (GetIEEELongDouble): New procedure function.
774         * gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure.
775         (GetIBMLongDouble): New procedure function.
776         (SetIEEELongDouble): New procedure.
777         (GetIEEELongDouble): New procedure function.
778         (InitializeLongDoubleFlags): New procedure called during
779         module block initialization.
780         * gm2-gcc/m2configure.cc: Remove duplicate includes.
781         (m2configure_M2CLongRealFloat128): Remove.
782         (m2configure_M2CLongRealIBM128): Remove.
783         (m2configure_M2CLongRealLongDouble): Remove.
784         (m2configure_M2CLongRealLongDoublePPC64LE): Remove.
785         (m2configure_TargetIEEEQuadDefault): New function.
786         * gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove.
787         (M2CLongRealIBM128): Remove.
788         (M2CLongRealLongDouble): Remove.
789         (M2CLongRealLongDoublePPC64LE): Remove.
790         (TargetIEEEQuadDefault): New function.
791         * gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove.
792         (m2configure_M2CLongRealIBM128): Remove.
793         (m2configure_M2CLongRealLongDouble): Remove.
794         (m2configure_M2CLongRealLongDoublePPC64LE): Remove.
795         (m2configure_TargetIEEEQuadDefault): New function.
796         * gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype.
797         (M2Options_GetIBMLongDouble): New prototype.
798         (M2Options_SetIEEELongDouble): New prototype.
799         (M2Options_GetIEEELongDouble): New prototype.
800         * gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using
801         results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble.
802         * gm2-lang.cc (gm2_langhook_handle_option): Add case
803         OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble.
804         Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble.
805         * gm2config.aci.in: Regenerate.
806         * gm2spec.cc (lang_specific_driver): Remove block defined by
807         M2C_LONGREAL_PPC64LE.
808         Remove case OPT_mabi_ibmlongdouble.
809         Remove case OPT_mabi_ieeelongdouble.
811 2024-01-11  Gaius Mulley  <gaiusmod2@gmail.com>
813         PR modula2/112946
814         * gm2-compiler/M2GenGCC.mod (IsExpressionCompatible): Import.
815         (ExpressionTypeCompatible): Import.
816         (CodeStatement): Remove op1, op2, op3 parameters from CodeSetOr,
817         CodeSetAnd, CodeSetSymmetricDifference, CodeSetLogicalDifference.
818         (checkArrayElements): Rename op1 to des and op3 to expr.
819         Use despos and exprpos instead of CurrentQuadToken.
820         (checkRecordTypes): Rename op1 to des and op2 to expr.
821         Use virtpos instead of CurrentQuadToken.
822         (checkIncorrectMeta): Ditto.
823         (checkBecomes): Rename op1 to des and op3 to expr.
824         Use virtpos instead of CurrentQuadToken.
825         (NoWalkProcedure): New procedure stub.
826         (CheckBinaryExpressionTypes): New procedure function.
827         (CheckElementSetTypes): New procedure function.
828         (CodeBinarySet): Re-write.
829         (FoldBinarySet): Re-write.
830         (CodeSetOr): Remove parameters op1, op2 and op3.
831         (CodeSetAnd): Ditto.
832         (CodeSetLogicalDifference): Ditto.
833         (CodeSetSymmetricDifference): Ditto.
834         (CodeIfIn): Call CheckBinaryExpressionTypes and
835         CheckElementSetTypes.
836         * gm2-compiler/M2Quads.mod (BuildRotateFunction): Correct
837         parameters to MakeVirtualTok to reflect parameter block
838         passed to Rotate.
840 2024-01-09  Gaius Mulley  <gaiusmod2@gmail.com>
842         PR modula2/112920
843         * gm2-compiler/M2GCCDeclare.mod (Group): New declaration.
844         Import MakeSubrange, MakeConstVar, MakeConstLit and DivTrunc.
845         (FreeGroup): New declaration.
846         (GlobalGroup): New declaration.
847         (ToBeSolvedByQuads): Remove.
848         (NilTypedArrays): Remove.
849         (PartiallyDeclared): Remove.
850         (HeldByAlignment): Remove.
851         (FinishedAlignment): Remove.
852         (ToDoList): Remove.
853         (DebugSet): Re-format.
854         (DebugNumber): Re-format.
855         (DebugSetNumbers): Reference sets using GlobalGroup.
856         (AddSymToWatch): Re-format.
857         (WatchIncludeList): Reference sets using GlobalGroup.
858         (WatchRemoveList): Reference sets using GlobalGroup.
859         (NewGroup): New procedure.
860         (DisposeGroup): New procedure.
861         (InitGroup): New procedure.
862         (KillGroup): New procedure.
863         (DupGroup): New procedure.
864         (EqualGroup): New procedure.
865         (LookupSet): New procedure.
866         (CanDeclareTypePartially): Reference sets using GlobalGroup.
867         (CompletelyResolved): Reference sets using GlobalGroup.
868         (IsNilTypedArrays): Reference sets using GlobalGroup.
869         (IsFullyDeclared): Reference sets using GlobalGroup.
870         (IsPartiallyDeclared): Reference sets using GlobalGroup.
871         (IsPartiallyOrFullyDeclared): Reference sets using GlobalGroup.
872         (DeclareTypeConstFully): Reference sets using GlobalGroup.
873         (bodyl): Remove.
874         (Body): Use bodyt and to lookup the required set.
875         (ForeachTryDeclare): Remove parameter l.  Lookup set instead.
876         (DeclareOutstandingTypes): Add new rules setarraynul and setfully.
877         Reference sets using GlobalGroup.
878         (ActivateWatch): New procedure.
879         (DeclareTypesConstantsProceduresInRange): Re-written to check
880         group change.
881         (DeclareTypesConstantsProcedures): Re-written to check
882         group change.
883         (DeclareBoolean): Reference sets using GlobalGroup.
884         (DeclarePackedBoolean): Ditto.
885         (DeclareDefaultConstants): Ditto.
886         (FreeGroup): Initialized.
887         (GlobalGroup): Ditto.
888         * gm2-compiler/Sets.def (EqualSet): New procedure function.
889         Remove export qualified list of identifiers.
890         * gm2-compiler/Sets.mod (EqualSet): New procedure function.
892 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
894         * lang.opt.urls: New file, autogenerated by
895         regenerate-opt-urls.py.
897 2023-12-15  Gaius Mulley  <gaiusmod2@gmail.com>
899         PR modula2/112946
900         * gm2-compiler/M2Check.mod (checkConstMeta): New procedure
901         function.
902         (checkConstEquivalence): New procedure function.
903         (doCheckPair): Add call to checkConstEquivalence.
904         * gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Call
905         FoldBecomes with reduced parameters.
906         (FoldBecomes): Re-write.
907         (TryDeclareConst): New procedure.
908         (RemoveQuads): New procedure.
909         (DeclaredOperandsBecomes): New procedure function.
910         (TypeCheckBecomes): New procedure function.
911         (PerformFoldBecomes): New procedure.
912         * gm2-compiler/M2Range.mod (FoldAssignment): Call
913         AssignmentTypeCompatible to check des expr compatibility.
914         * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Remove
915         parameter lst.
916         (FilterCheckReadBeforeInitQuad): Remove parameter lst.
917         (CheckReadBeforeInitFirstBasicBlock): Remove parameter lst.
918         Call FilterCheckReadBeforeInitQuad without lst.
920 2023-12-13  Gaius Mulley  <gaiusmod2@gmail.com>
922         PR modula2/112921
923         * gm2-libs-iso/ConvStringShort.def: New file.
924         * gm2-libs-iso/ConvStringShort.mod: New file.
925         * gm2-libs-iso/ShortConv.def: New file.
926         * gm2-libs-iso/ShortConv.mod: New file.
927         * gm2-libs-iso/ShortMath.def: New file.
928         * gm2-libs-iso/ShortMath.mod: New file.
929         * gm2-libs-iso/ShortStr.def: New file.
930         * gm2-libs-iso/ShortStr.mod: New file.
932 2023-12-12  Gaius Mulley  <gaiusmod2@gmail.com>
934         PR modula2/112984
935         * gm2-libs-coroutines/SYSTEM.mod: Remove redundant import of memcpy.
936         * gm2-libs-iso/ClientSocket.mod: Remove redundant import of IOConsts.
937         * gm2-libs-iso/IOChan.mod: Remove redundant import of IOConsts.
938         * gm2-libs-iso/IOLink.mod: Remove redundant import of IOChan and SYSTEM.
939         * gm2-libs-iso/IOResult.mod: Remove redundant import of IOChan.
940         * gm2-libs-iso/LongIO.mod: Remove redundant import of writeString.
941         * gm2-libs-iso/LongWholeIO.mod: Remove redundant import of IOChan.
942         * gm2-libs-iso/M2RTS.mod: Remove redundant import of ADDRESS.
943         * gm2-libs-iso/MemStream.mod: Remove redundant import of ADDRESS.
944         * gm2-libs-iso/RTdata.mod: Remove redundant import of DeviceTablePtr.
945         * gm2-libs-iso/RTfio.mod: Remove redundant import of DeviceTablePtr.
946         * gm2-libs-iso/RTgen.mod: Remove redundant import of DeviceTablePtr.
947         * gm2-libs-iso/RealIO.mod: Remove redundant import of writeString.
948         * gm2-libs-iso/RndFile.mod: Remove redundant import of SYSTEM.
949         * gm2-libs-iso/SYSTEM.mod: Remove redundant import of memcpy.
950         * gm2-libs-iso/ShortWholeIO.mod: Remove redundant import of IOConsts.
951         * gm2-libs-iso/TextIO.mod: Remove redundant import of IOChan.
952         * gm2-libs-iso/TextUtil.mod: Remove redundant import of IOChan.
953         * gm2-libs-iso/WholeIO.mod: Remove redundant import of IOChan.
954         * gm2-libs-log/BitByteOps.mod: Remove redundant import of BYTE.
955         * gm2-libs-log/FileSystem.mod: Remove redundant import of BYTE and ADDRESS.
956         * gm2-libs-log/InOut.mod: Remove redundant import of String.
957         * gm2-libs-log/RealConversions.mod: Remove redundant import of StringToLongreal.
958         * gm2-libs/FIO.mod: Remove redundant import of SIZE.
959         * gm2-libs/FormatStrings.mod: Remove redundant import of String
960         and ConCatChar.
961         * gm2-libs/IO.mod: Remove redundant import of SIZE.
962         * gm2-libs/Indexing.mod: Remove redundant import of ADDRESS.
963         * gm2-libs/M2Dependent.mod: Remove redundant import of SIZE.
964         * gm2-libs/M2RTS.mod: Remove redundant import of ADDRESS.
965         * gm2-libs/OptLib.mod: Remove redundant import of DynamicStrings.
966         * gm2-libs/SYSTEM.mod: Remove redundant import of memcpy.
967         * gm2-libs/StringConvert.mod: Remove redundant import of String.
969 2023-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
971         PR modula2/112893
972         * gm2-compiler/M2Base.mod (Ass): Extend array to include proc row
973         and column.  Allow PIM to assign cardinal variables to address
974         variables.
975         (Expr): Ditto.
976         (Comp): Ditto.
977         * gm2-compiler/M2Check.mod (getSType): New procedure function.
978         Replace all occurances of GetSType with getSType.
979         * gm2-compiler/M2GenGCC.mod (CodeParam): Rewrite format specifier
980         error message.
981         * gm2-compiler/M2Quads.mod (CheckProcTypeAndProcedure): Add tokno
982         parameter.
983         * gm2-compiler/M2Range.def (InitTypesParameterCheck): Add tokno
984         parameter.
985         (InitParameterRangeCheck): Add tokno parameter.
986         Remove EXPORT QUALIFIED list.
987         (InitParameterRangeCheck): Add tokno parameter.
988         * gm2-compiler/M2Range.mod (InitTypesParameterCheck): Add tokno
989         parameter and pass tokno to PutRangeParam.
990         (InitParameterRangeCheck): Add tokno parameter and pass tokno to
991         PutRangeParam.
992         (PutRangeParam): Add tokno parameter and assign to tokenNo.
993         (FoldTypeParam): Rewrite format string.
995 2023-12-06  Thomas Schwinge  <thomas@codesourcery.com>
997         * lang.opt (-isysroot): New.
999 2023-12-05  Gaius Mulley  <gaiusmod2@gmail.com>
1001         PR modula2/112865
1002         * gm2-compiler/M2Quads.mod (BuildReFunction): Use
1003         GetDType to retrieve the type of the operand when
1004         converting the complex type to its scalar equivalent.
1005         (BuildImFunction): Use GetDType to retrieve the type of the
1006         operand when converting the complex type to its scalar
1007         equivalent.
1009 2023-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1011         * mc/mc.flex [__GNUC__]: Define alloca as __builtin_alloca.
1012         (handleDate): Use strchr instead of index.
1014 2023-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
1016         PR modula2/112825
1017         * tools-src/makeSystem: Change all occurrences of -c to -S.
1019 2023-11-01  Gaius Mulley  <gaiusmod2@gmail.com>
1021         PR modula2/102989
1022         * gm2-compiler/SymbolTable.mod (OverflowZType): Import from m2expr.
1023         (ConstantStringExceedsZType): Remove import.
1024         (GetConstLitType): Replace ConstantStringExceedsZType with OverflowZType.
1025         * gm2-gcc/m2decl.cc (m2decl_ConstantStringExceedsZType): Remove.
1026         (m2decl_BuildConstLiteralNumber): Re-write.
1027         * gm2-gcc/m2decl.def (ConstantStringExceedsZType): Remove.
1028         * gm2-gcc/m2decl.h (m2decl_ConstantStringExceedsZType): Remove.
1029         * gm2-gcc/m2expr.cc (m2expr_StrToWideInt): Rewrite to check overflow.
1030         (m2expr_OverflowZType): New function.
1031         (ToWideInt): New function.
1032         * gm2-gcc/m2expr.def (OverflowZType): New procedure function declaration.
1033         * gm2-gcc/m2expr.h (m2expr_OverflowZType): New prototype.
1035 2023-10-27  Gaius Mulley  <gaiusmod2@gmail.com>
1037         PR modula2/111530
1038         * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Re-format.
1039         (cgetopt_cgetopt_long_only): Re-format.
1040         (cgetopt_SetOption):  Re-format and assign flag to NULL
1041         if name is also NULL.
1042         * gm2-libs/GetOpt.def (AddLongOption): Add index parameter
1043         and change flag to be a VAR parameter rather than a pointer.
1044         (GetOptLong): Re-format.
1045         (GetOpt): Correct comment.
1046         * gm2-libs/GetOpt.mod: Re-write to rely on cgetopt rather
1047         than implement long option creation in GetOpt.
1048         * gm2-libs/cgetopt.def (SetOption): has_arg type is INTEGER.
1050 2023-10-25  Gaius Mulley  <gaiusmod2@gmail.com>
1052         PR modula2/111955
1053         * gm2-gcc/m2builtins.cc (gm2_isnan_node): New tree.
1054         (DoBuiltinIsnan): New function.
1055         (m2builtins_BuiltInIsnan): New function.
1056         (m2builtins_init): Initialize gm2_isnan_node.
1057         (list_of_builtins): Add define for __builtin_isnan.
1058         * gm2-libs-ch/wrapc.c (wrapc_isnan): New function.
1059         (wrapc_isnanf): New function.
1060         (wrapc_isnanl): New function.
1061         * gm2-libs/Builtins.def (isnanf): New procedure function.
1062         (isnan): New procedure function.
1063         (isnanl): New procedure function.
1064         * gm2-libs/Builtins.mod:
1065         * gm2-libs/wrapc.def (isnan): New function.
1066         (isnanf): New function.
1067         (isnanl): New function.
1069 2023-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
1071         * gm2-libs/M2Dependent.mod (InitDependencyList): New
1072         procedure.
1073         (CreateModule): Call InitDependencyList to initialize
1074         all fields of DependencyList.
1076 2023-10-24  Gaius Mulley  <gaiusmod2@gmail.com>
1078         * gm2-libs/M2Dependent.mod (CreateModule): Initialize all
1079         dependency fields for DependencyList.
1081 2023-10-17  Gaius Mulley  <gaiusmod2@gmail.com>
1083         PR modula2/111756
1084         * Make-lang.in (CM2DEP): New define conditionally set if
1085         ($(CXXDEPMODE),depmode=gcc3).
1086         (GM2_1): Use $(CM2DEP).
1087         (m2/gm2-gcc/%.o): Ensure $(@D)/$(DEPDIR) is created.
1088         Add $(CM2DEP) to the $(COMPILER) command and use $(POSTCOMPILE).
1089         (m2/gm2-gcc/m2configure.o): Ditto.
1090         (m2/gm2-lang.o): Ditto.
1091         (m2/m2pp.o): Ditto.
1092         (m2/gm2-gcc/rtegraph.o): Ditto.
1093         (m2/mc-boot/$(SRC_PREFIX)%.o): Ditto.
1094         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
1095         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
1096         (m2/mc-boot/main.o): Ditto.
1097         (mcflex.o): Ditto.
1098         (m2/gm2-libs-boot/M2RTS.o): Ditto.
1099         (m2/gm2-libs-boot/%.o): Ditto.
1100         (m2/gm2-libs-boot/%.o): Ditto.
1101         (m2/gm2-libs-boot/RTcodummy.o): Ditto.
1102         (m2/gm2-libs-boot/RTintdummy.o): Ditto.
1103         (m2/gm2-libs-boot/wrapc.o): Ditto.
1104         (m2/gm2-libs-boot/UnixArgs.o): Ditto.
1105         (m2/gm2-libs-boot/choosetemp.o): Ditto.
1106         (m2/gm2-libs-boot/errno.o): Ditto.
1107         (m2/gm2-libs-boot/dtoa.o): Ditto.
1108         (m2/gm2-libs-boot/ldtoa.o): Ditto.
1109         (m2/gm2-libs-boot/termios.o): Ditto.
1110         (m2/gm2-libs-boot/SysExceptions.o): Ditto.
1111         (m2/gm2-libs-boot/SysStorage.o): Ditto.
1112         (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
1113         (m2/gm2-compiler-boot/M2Error.o): Ditto.
1114         (m2/gm2-compiler-boot/%.o): Ditto.
1115         (m2/gm2-compiler-boot/%.o): Ditto.
1116         (m2/gm2-compiler-boot/m2flex.o): Ditto.
1117         (m2/gm2-compiler/%.o): Ditto.
1118         (m2/gm2-compiler/m2flex.o): Ditto.
1119         (m2/gm2-libs-iso/%.o): Ditto.
1120         (m2/gm2-libs/%.o): Ditto.
1121         (m2/gm2-libs/%.o): Ditto.
1122         (m2/gm2-libs/choosetemp.o): Ditto.
1123         (m2/boot-bin/mklink$(exeext)): Ditto.
1124         (m2/pge-boot/%.o): Ditto.
1125         (m2/pge-boot/%.o): Ditto.
1126         (m2/gm2-compiler/%.o): Ensure $(@D)/$(DEPDIR) is created and use
1127         $(POSTCOMPILE).
1128         (m2/gm2-compiler/%.o): Ditto.
1129         (m2/gm2-libs-iso/%.o): Ditto.
1130         (m2/gm2-libs/%.o): Ditto.
1131         * README: Purge out of date info.
1132         * gm2-compiler/M2Comp.mod (MakeSaveTempsFileNameExt): Import.
1133         (OnExitDelete): Import.
1134         (GetModuleDefImportStatementList): Import.
1135         (GetModuleModImportStatementList): Import.
1136         (GetImportModule): Import.
1137         (IsImportStatement): Import.
1138         (IsImport): Import.
1139         (GetImportStatementList): Import.
1140         (File): Import.
1141         (Close): Import.
1142         (EOF): Import.
1143         (IsNoError): Import.
1144         (WriteLine): Import.
1145         (WriteChar): Import.
1146         (FlushOutErr): Import.
1147         (WriteS): Import.
1148         (OpenToRead): Import.
1149         (OpenToWrite): Import.
1150         (ReadS): Import.
1151         (WriteS): Import.
1152         (GetM): Import.
1153         (GetMM): Import.
1154         (GetDepTarget): Import.
1155         (GetMF): Import.
1156         (GetMP): Import.
1157         (GetObj): Import.
1158         (GetMD): Import.
1159         (GetMMD): Import.
1160         (GenerateDefDependency): New procedure.
1161         (GenerateDependenciesFromImport): New procedure.
1162         (GenerateDependenciesFromList): New procedure.
1163         (GenerateDependencies): New procedure.
1164         (Compile): Re-write.
1165         (compile): Re-format.
1166         (CreateFileStem): New procedure function.
1167         (DoPass0): Re-write.
1168         (IsLibrary): New procedure function.
1169         (IsUnique): New procedure function.
1170         (Append): New procedure.
1171         (MergeDep): New procedure.
1172         (GetRuleTarget): New procedure function.
1173         (ReadDepContents): New procedure function.
1174         (WriteDep): New procedure.
1175         (WritePhonyDep): New procedure.
1176         (WriteDepContents): New procedure.
1177         (CreateDepFilename): New procedure function.
1178         (Pass0CheckDef): New procedure function.
1179         (Pass0CheckMod): New procedure function.
1180         (DoPass0): Re-write.
1181         (DepContent): New variable.
1182         (DepOutput): New variable.
1183         (BaseName): New procedure function.
1184         * gm2-compiler/M2GCCDeclare.mod (PrintTerse): Handle IsImport.
1185         Replace IsGnuAsmVolatile with IsGnuAsm.
1186         * gm2-compiler/M2Options.def (EXPORT QUALIFIED): Remove list.
1187         (SetM): New procedure.
1188         (GetM): New procedure function.
1189         (SetMM): New procedure.
1190         (GetMM): New procedure function.
1191         (SetMF): New procedure.
1192         (GetMF): New procedure function.
1193         (SetPPOnly): New procedure.
1194         (GetB): New procedure function.
1195         (SetMD): New procedure.
1196         (GetMD): New procedure function.
1197         (SetMMD): New procedure.
1198         (GetMMD): New procedure function.
1199         (SetMQ): New procedure.
1200         (SetMT): New procedure.
1201         (GetMT): New procedure function.
1202         (GetDepTarget): New procedure function.
1203         (SetMP): New procedure.
1204         (GetMP): New procedure function.
1205         (SetObj): New procedure.
1206         (SetSaveTempsDir): New procedure.
1207         * gm2-compiler/M2Options.mod (SetM): New procedure.
1208         (GetM): New procedure function.
1209         (SetMM): New procedure.
1210         (GetMM): New procedure function.
1211         (SetMF): New procedure.
1212         (GetMF): New procedure function.
1213         (SetPPOnly): New procedure.
1214         (GetB): New procedure function.
1215         (SetMD): New procedure.
1216         (GetMD): New procedure function.
1217         (SetMMD): New procedure.
1218         (GetMMD): New procedure function.
1219         (SetMQ): New procedure.
1220         (SetMT): New procedure.
1221         (GetMT): New procedure function.
1222         (GetDepTarget): New procedure function.
1223         (SetMP): New procedure.
1224         (GetMP): New procedure function.
1225         (SetObj): New procedure.
1226         (SetSaveTempsDir): New procedure.
1227         * gm2-compiler/M2Preprocess.def (PreprocessModule): New parameters
1228         topSource and outputDep.  Re-write.
1229         (MakeSaveTempsFileNameExt): New procedure function.
1230         (OnExitDelete): New procedure function.
1231         * gm2-compiler/M2Preprocess.mod (GetM): Import.
1232         (GetMM): Import.
1233         (OnExitDelete): Add debugging message.
1234         (RemoveFile): Add debugging message.
1235         (BaseName): Remove.
1236         (BuildCommandLineExecute): New procedure function.
1237         * gm2-compiler/M2Search.def (SetDefExtension): Remove unnecessary
1238         spacing.
1239         * gm2-compiler/SymbolTable.mod (GetSymName): Handle ImportSym and
1240         ImportStatementSym.
1241         * gm2-gcc/m2options.h (M2Options_SetMD): New function.
1242         (M2Options_GetMD): New function.
1243         (M2Options_SetMMD): New function.
1244         (M2Options_GetMMD): New function.
1245         (M2Options_SetM): New function.
1246         (M2Options_GetM): New function.
1247         (M2Options_SetMM): New function.
1248         (M2Options_GetMM): New function.
1249         (M2Options_GetMQ): New function.
1250         (M2Options_SetMF): New function.
1251         (M2Options_GetMF): New function.
1252         (M2Options_SetMT): New function.
1253         (M2Options_SetMP): New function.
1254         (M2Options_GetMP): New function.
1255         (M2Options_GetDepTarget): New function.
1256         * gm2-lang.cc (gm2_langhook_init): Correct comment case.
1257         (gm2_langhook_init_options): Add case OPT_M and
1258         OPT_MM.
1259         (gm2_langhook_post_options): Add case OPT_MF, OPT_MT,
1260         OPT_MD and OPT_MMD.
1261         * lang-specs.h (M2CPP): Pass though MF option.
1262         (MDMMD): New define.  Add MDMMD to "@modula-2".
1264 2023-10-15  Gaius Mulley  <gaiusmod2@gmail.com>
1266         * Make-lang.in (m2.tags): New rule.
1268 2023-10-11  Gaius Mulley  <gaiusmod2@gmail.com>
1270         * gm2-compiler/M2GCCDeclare.mod (DeclareSubrange): Check
1271         the base type of the subrange against the ZTYPE and call
1272         DeclareSubrangeNarrow if necessary.
1273         (DeclareSubrangeNarrow): New procedure function.
1275 2023-10-11  Gaius Mulley  <gaiusmod2@gmail.com>
1277         PR modula2/111675
1278         * gm2-compiler/M2CaseList.mod (appendTree): Replace
1279         InitStringCharStar with InitString.
1280         * gm2-compiler/M2GCCDeclare.mod: Import AreConstantsEqual.
1281         (DeclareSubrange): Add zero alignment test and call
1282         BuildSmallestTypeRange if necessary.
1283         (WalkSubrangeDependants): Walk the align expression.
1284         (IsSubrangeDependants): Test the align expression.
1285         * gm2-compiler/M2Quads.mod (BuildStringAdrParam): Correct end name.
1286         * gm2-compiler/P2SymBuild.mod (BuildTypeAlignment): Allow subranges
1287         to be zero aligned (packed).
1288         * gm2-compiler/SymbolTable.mod (Subrange): Add Align field.
1289         (MakeSubrange): Set Align to NulSym.
1290         (PutAlignment): Assign Subrange.Align to align.
1291         (GetAlignment): Return Subrange.Align.
1292         * gm2-gcc/m2expr.cc (noBitsRequired): Rewrite.
1293         (calcNbits): Rename ...
1294         (m2expr_calcNbits): ... to this and test for negative values.
1295         (m2expr_BuildTBitSize): Replace calcNBits with m2expr_calcNbits.
1296         * gm2-gcc/m2expr.def (calcNbits): Export.
1297         * gm2-gcc/m2expr.h (m2expr_calcNbits): New prototype.
1298         * gm2-gcc/m2type.cc (noBitsRequired): Remove.
1299         (m2type_BuildSmallestTypeRange): Call m2expr_calcNbits.
1300         (m2type_BuildSubrangeType): Create range_type from
1301         build_range_type (type, lowval, highval).
1303 2023-09-29  Gaius Mulley  <gaiusmod2@gmail.com>
1305         * gm2-compiler/M2Quads.mod (EndBuildFor): Improve
1306         block comments.
1307         * gm2-libs-iso/SysClock.mod (ExtractDate): Replace
1308         testDays with yearOfDays.  New local variable monthOfDays.
1310 2023-09-26  Gaius Mulley  <gaiusmod2@gmail.com>
1312         PR modula2/111510
1313         * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes.
1314         (BuildTrashTreeFromInterface): Minor spacing changes.
1315         * gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call
1316         string to generate a nul terminated C style string.
1317         * gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure.
1318         (BuildM2InitFunction): Replace inline parameter generation with
1319         calls to BuildStringAdrParam.
1321 2023-09-19  Gaius Mulley  <gaiusmod2@gmail.com>
1323         * Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
1324         and if so use __float128 for longreal in mc.
1325         (MC_ARGS): Append host_mc_longreal.
1326         * config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
1327         (TEST_HOST_CPU_DEFAULT): New variable.
1328         * configure: Regenerate.
1329         * configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
1330         is powerpc64le.
1331         (M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
1332         * gm2-compiler/M2GCCDeclare.mod: Correct comment case.
1333         * gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
1334         SetLastFunction for the builtin function call.
1335         (MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
1336         function call.
1337         (MaybeDebugBuiltinMemset): New procedure function.
1338         (MakeCopyUse): Use GNU formatting.
1339         (UseBuiltin): Rewrite to check BuiltinExists.
1340         (CodeDirectCall): Rewrite to check BuiltinExists and call
1341         SetLastFunction.
1342         (CodeMakeAdr): Re-format.
1343         * gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
1344         * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
1345         "cond" to switch UninitVariableConditionalChecking separately.
1346         (SetDebugBuiltins): New procedure.
1347         * gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
1348         ConstExpr.
1349         * gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
1350         to BuildRealFuncProcCall.
1351         (BuildRealFuncProcCall): Add ConstExpr parameter.  Pass ConstExpr
1352         to BuildFunctionCall.
1353         (BuildFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
1354         BuildRealFunctionCall.
1355         (BuildConstFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
1356         BuildFunctionCall.
1357         (BuildRealFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
1358         BuildRealFuncProcCall.
1359         * gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
1360         to BuildFunctionCall.
1361         (AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
1362         * gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
1363         procedure function.
1364         * gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
1365         function.
1366         (IsProcedureBuiltinAvailable): New procedure function.
1367         * gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
1368         (bf_category): New enum type.
1369         (struct builtin_function_entry): New field function_avail.
1370         (m2builtins_BuiltInMemCopy): Rename from ...
1371         (m2builtins_BuiltinMemCopy): ... this.
1372         (DoBuiltinMemSet): New function.
1373         (m2builtins_BuiltinMemSet): New function.
1374         (do_target_support_exists): New function.
1375         (target_support_exists): New function.
1376         (m2builtins_BuiltinExists): Return true or false.
1377         (m2builtins_BuildBuiltinTree): Rename local variables.
1378         Replace long_double_type_node with GetM2LongRealType.
1379         (m2builtins_init): Use GetM2LongRealType rather than
1380         long_double_type_node.
1381         * gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
1382         (BuiltinMemCopy): ... this.
1383         (BuiltinMemSet): New procedure function.
1384         * gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
1385         (m2builtins_BuiltinMemCopy): ... this.
1386         (m2builtins_BuiltinMemSet): New procedure function.
1387         * gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
1388         procedure function.
1389         (m2configure_M2CLongRealIBM128): New procedure function.
1390         (m2configure_M2CLongRealLongDouble): New procedure function.
1391         (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
1392         * gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
1393         (M2CLongRealIBM128): New procedure function.
1394         (M2CLongRealLongDouble): New procedure function.
1395         (M2CLongRealLongDoublePPC64LE): New procedure function.
1396         * gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
1397         (m2configure_M2CLongRealFloat128): New procedure function.
1398         (m2configure_M2CLongRealIBM128): New procedure function.
1399         (m2configure_M2CLongRealLongDouble): New procedure function.
1400         (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
1401         * gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
1402         * gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
1403         * gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
1404         TREE_USED to true.
1405         (m2statement_BuildGoto):Set TREE_USED to true.
1406         (m2statement_BuildParam): Set TREE_USED to true.
1407         (m2statement_BuildBuiltinCallTree): New function.
1408         (m2statement_BuildFunctValue): Set TREE_USED to true.
1409         * gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
1410         * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
1411         procedure function.
1412         * gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
1413         (m2treelib_DoCall1): Remove spacing.
1414         (m2treelib_DoCall2): Remove spacing.
1415         (m2treelib_DoCall3): Remove spacing.
1416         (add_stmt): Rename parameter.
1417         * gm2-gcc/m2type.cc (build_set_type): Remove spacing.
1418         (build_m2_specific_size_type): Remove spacing.
1419         (finish_build_pointer_type): Remove spacing.
1420         (m2type_BuildVariableArrayAndDeclare): Remove spacing.
1421         (build_m2_short_real_node): Remove spacing.
1422         (build_m2_real_node): Remove spacing.
1423         (build_m2_long_real_node): Use float128_type_node if
1424         M2CLongRealFloat128 is set.
1425         (build_m2_ztype_node): Remove spacing.
1426         (build_m2_long_int_node): Remove spacing.
1427         (build_m2_long_card_node): Remove spacing.
1428         (build_m2_short_int_node): Remove spacing.
1429         (build_m2_short_card_node): Remove spacing.
1430         (build_m2_iso_loc_node): Remove spacing.
1431         (m2type_SameRealType): New function.
1432         (m2type_InitBaseTypes): Create m2_c_type_node using
1433         m2_long_complex_type_node.
1434         (m2type_SetAlignment): Tidy up comment.
1435         * gm2-gcc/m2type.def (SameRealType):  New procedure function.
1436         * gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
1437         * gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
1438         node from m2 language specific long double node.
1439         * gm2-libs-log/RealConversions.mod (IsNan): New procedure
1440         function.
1441         (doPowerOfTen): Re-implement.
1442         * gm2-libs/Builtins.mod: Add newline.
1443         * gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
1444         * gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
1445         * gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
1446         (M2C_LONGREAL_PPC64LE): New config value.
1447         * gm2spec.cc (lang_specific_driver): New local variable
1448         need_default_mabi set to default value depending upon
1449         M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
1450         * lang.opt (Wcase-enum): Moved to correct section.
1451         * m2pp.cc (m2pp_real_type): New function.
1452         (m2pp_type): Call m2pp_real_type.
1453         (m2pp_print_mode): New function.
1454         (m2pp_simple_type): Call m2pp_simple_type.
1455         (m2pp_float): New function.
1456         (m2pp_expression): Call m2pp_float.
1457         * mc-boot/GDynamicStrings.cc: Rebuild.
1458         * mc-boot/GDynamicStrings.h: Rebuild.
1459         * mc-boot/GFIO.cc: Rebuild.
1460         * mc-boot/GFIO.h: Rebuild.
1461         * mc-boot/GIO.cc: Rebuild.
1462         * mc-boot/GRTint.cc: Rebuild.
1463         * mc-boot/Gdecl.cc: Rebuild.
1464         * mc-boot/GmcOptions.cc: Rebuild.
1465         * mc-boot/GmcOptions.h: Rebuild.
1466         * mc/decl.mod: Rebuild.
1467         * mc/mcOptions.def (getCRealType): New procedure function.
1468         (getCLongRealType): New procedure function.
1469         (getCShortRealType): New procedure function.
1470         * mc/mcOptions.mod (getCRealType): New procedure function.
1471         (getCLongRealType): New procedure function.
1472         (getCShortRealType): New procedure function.
1474 2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>
1476         * gm2-compiler/M2CaseList.mod (NewRanges): Add block
1477         comment.
1478         (NewSet): Add block comment.
1479         (DisplayRanges): Add block comment.
1480         (IncludeElement): Add block comment.
1481         (IncludeElements): Add block comment.
1482         (appendString): Add block comment.
1483         (appendEnum): Add block comment.
1484         (appendTree): Add block comment.
1485         (SubrangeErrors): Add block comment.
1487 2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>
1489         * gm2-compiler/M2CaseList.mod (appendString): New procedure.
1490         (appendEnum): Re-implement.
1491         (NoOfSetElements): New procedure function.
1492         (isPrintableChar): New procedure function.
1493         (appendTree): New procedure.
1494         (SubrangeErrors): New procedure.
1495         (EmitMissingRangeErrors): Call SubrangeErrors if appropriate.
1496         * gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid
1497         using a temporary variable once.
1498         (IsLocalVar): Comment out.
1499         (RecordContainsVarient): Remove fieldtype.
1500         (GenerateNoteFlow): Remove lst parameter.
1501         (CheckDeferredRecordAccess): Remove lst parameter.
1502         (CheckUnary): Remove lst parameter.  Remove procSym.
1503         (CheckBinary): Remove lst parameter.  Remove procSym.
1504         (CheckIndrX): Remove lst parameter.  Remove procSym.
1505         (CheckXIndr): Remove bblst and procSym parameters.
1506         (CheckRecordField): Remove procSym, op1tok, op2tok and op2.
1507         (CheckBecomes): Remove procSym and bblst.
1508         (CheckComparison): Remove procSym and bblst.
1509         (CheckAddr): Remove procSym parameter.
1510         * gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function.
1511         (m2expr_CSTIntToChar): New function.
1512         * gm2-gcc/m2expr.def (CSTIntToString): New procedure function
1513         declaration.
1514         (CSTIntToChar): New procedure function declaration.
1515         * gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype.
1516         (m2expr_CSTIntToString): New prototype.
1518 2023-09-13  Gaius Mulley  <gaiusmod2@gmail.com>
1520         * Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
1521         (GM2_ISO_FLAGS): Add -Wcase-enum.
1522         * gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
1523         singular or plural start text prior to the enum list.
1524         Remove unused parameter tokenno.
1525         (EmitMissingRangeErrors): New procedure.
1526         (MissingCaseBounds): Call EmitMissingRangeErrors.
1527         (MissingCaseStatementBounds): Call EmitMissingRangeErrors.
1528         * gm2-libs-iso/TextIO.mod: Fix spacing.
1530 2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>
1532         * gm2-compiler/M2CaseList.def (PushCase): Rename parameters
1533         r to rec and v to va.  Add expr parameter.
1534         (MissingCaseStatementBounds): New procedure function.
1535         * gm2-compiler/M2CaseList.mod (RangePair): Add expression.
1536         (PushCase): Rename parameters r to rec and v to va.  Add
1537         expr parameter.
1538         (RemoveRange): New procedure function.
1539         (SubBitRange): Detect the case when the range in the set matches
1540         lo..hi.
1541         (CheckLowHigh): New procedure.
1542         (ExcludeCaseRanges): Rename parameter c to cd.  Rename local
1543         variables q to cl and r to rp.
1544         (High): Remove.
1545         (Low): Remove.
1546         (DoEnumValues): Remove.
1547         (IncludeElement): New procedure.
1548         (IncludeElements): New procedure.
1549         (ErrorRangeEnum): New procedure.
1550         (ErrorRange): Remove.
1551         (ErrorRanges): Remove.
1552         (appendEnum): New procedure.
1553         (appendStr): New procedure.
1554         (EnumerateErrors): New procedure.
1555         (MissingCaseBounds): Re-implement.
1556         (InRangeList): Remove.
1557         (MissingCaseStatementBounds): New procedure function.
1558         (checkTypes): Re-format.
1559         (inRange): Re-format.
1560         (TypeCaseBounds): Re-format.
1561         * gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
1562         case label list.
1563         * gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
1564         with ForeachLocalSymDo.
1565         * gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
1566         (CaseEnumChecking): New variable.
1567         * gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
1568         (Module initialization): set CaseEnumChecking to FALSE.
1569         * gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
1570         * gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
1571         clause.
1572         (BuildCaseStart): Pass selector expression to InitCaseBounds.
1573         (CheckUninitializedVariablesAreUsed): Remove.
1574         (IsInlineWithinBlock): Remove.
1575         (AsmStatementsInBlock): Remove.
1576         (CheckVariablesInBlock): Remove commented code.
1577         (BeginVarient): Pass NulSym to InitCaseBounds.
1578         * gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
1579         errorGenerated.  Add call to MissingCaseStatementBounds.
1580         * gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
1581         * gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
1582         (InitFunction): Add else clause.
1583         (InitConvert): Add else clause.
1584         (InitLeaf): Add else clause.
1585         (InitBinary): Add else clause.
1586         (InitUnary): Add else clause.
1587         * gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
1588         (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
1589         traversal.
1590         * gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
1591         Add case label for EnumerationSym and call GetItemFromList.
1592         (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
1593         traversal.
1594         (SymEnumeration): Add ListOfFields used for declaration order.
1595         (MakeEnumeration): Initialize ListOfFields.
1596         (PutFieldEnumeration): Include Field in ListOfFields.
1597         * gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
1598         function.
1599         * gm2-lang.cc (gm2_langhook_handle_option): Add
1600         OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
1601         * lang.opt (Wcase-enum): Add.
1603 2023-09-11  Gaius Mulley  <gaiusmod2@gmail.com>
1605         PR modula2/111330
1606         * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
1607         case labels LogicalDiffOp, DummyOp, OptParamOp and
1608         InitAddressOp.
1610 2023-08-20  Gaius Mulley  <gaiusmod2@gmail.com>
1612         PR modula2/111085
1613         * gm2-libs/Builtins.def (nexttoward): Alter the second
1614         parameter to LONGREAL.
1615         (nexttowardf): Alter the second parameter to LONGREAL.
1616         * gm2-libs/Builtins.mod (nexttoward): Alter the second
1617         parameter to LONGREAL.
1618         (nexttowardf): Alter the second parameter to LONGREAL.
1619         * gm2-libs/cbuiltin.def (nexttoward): Alter the second
1620         parameter to LONGREAL.
1621         (nexttowardf): Alter the second parameter to LONGREAL.
1623 2023-08-13  Iain Sandoe  <iain@sandoe.co.uk>
1625         * Make-lang.in: Update suffix spellings to use 'soext'.
1626         Add libc to the plugin link.
1628 2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>
1630         PR modula2/110779
1631         * gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
1632         (GetClock): Call EpochTime if the C time functions are
1633         unavailable.
1634         * gm2-libs-iso/wrapclock.def (istimezone): New function
1635         definition.
1637 2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>
1639         PR modula2/108119
1640         * Make-lang.in (M2RTE_PLUGIN_SO): Assigned to
1641         plugin/m2rte$(exeext).so if enable_plugin is yes.
1642         (m2.all.cross): Replace plugin/m2rte$(soext) with
1643         $(M2RTE_PLUGIN_SO).
1644         (m2.all.encap): Replace plugin/m2rte$(soext) with
1645         $(M2RTE_PLUGIN_SO).
1646         (m2.install-plugin): Add dummy rule when enable_plugin
1647         is not yes.
1648         (plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin
1649         is not yes.
1650         (m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
1651         $(M2RTE_PLUGIN_SO).
1652         (m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
1653         $(M2RTE_PLUGIN_SO).
1654         * gm2spec.cc (lang_specific_driver): Set need_plugin to false
1655         by default.
1657 2023-08-09  Gaius Mulley  <gaiusmod2@gmail.com>
1659         PR modula2/110779
1660         * gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
1661         return value.
1662         (SetClock): Test SetTimespec return value.
1663         * gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
1664         return type.
1665         (SetTimespec): Add integer return type.
1667 2023-08-05  Gaius Mulley  <gaiusmod2@gmail.com>
1669         PR modula2/110779
1670         * gm2-libs-iso/SysClock.mod: Re-implement using wrapclock.
1671         * gm2-libs-iso/wrapclock.def: New file.
1673 2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>
1675         PR modula2/110161
1676         * gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New
1677         procedure function.
1678         (checkTypeKindEquivalence): Call checkProcTypeEquivalence
1679         if either left or right is a proc type.
1680         * gm2-compiler/M2Quads.mod (BuildRelOp): Create
1681         combinedTok prior to creating the range check quadruple.
1682         Use combinedTok when creating the range check quadruple.
1684 2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>
1686         PR modula2/110865
1687         * gm2-compiler/M2Quads.mod (BuildDesignatorArray):
1688         Rename t as type and d as dim.  New variable result.
1689         Allow constants of an array type to be indexed.
1691 2023-07-25  Gaius Mulley  <gaiusmod2@gmail.com>
1693         PR modula2/110174
1694         * gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
1695         function.
1696         * gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
1697         function.
1698         * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
1699         skip_const_decl before chaining the parameter value.
1700         Use PromoteToCString to ensure the string is nul terminated.
1701         (CodeInline): Remove all parameters and replace with quad.
1702         Use GetQuadOtok to get operand token numbers.
1703         Remove call to DeclareConstant and replace it with PromoteToCString.
1704         * gm2-compiler/M2Quads.def (BuildInline): Rename into ...
1705         (BuildAsm): ... this.
1706         * gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
1707         (BuildAsm): ... this.
1708         (BuildAsmElement): Add debugging.
1709         * gm2-compiler/P1Build.bnf: Remove import of BuildInline.
1710         * gm2-compiler/P2Build.bnf: Remove import of BuildInline.
1711         * gm2-compiler/P3Build.bnf: Remove import of BuildInline and
1712         import BuildAsm.
1713         * gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
1714         * gm2-libs-iso/SysClock.mod (foo): Remove.
1715         * gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
1716         Rename variable t to src.
1717         * m2pp.cc (pf): Correct block comment.
1718         (pe): Correct block comment.
1719         (m2pp_asm_expr): New function.
1720         (m2pp_statement): Call m2pp_asm_expr.
1722 2023-07-22  Gaius Mulley  <gaiusmod2@gmail.com>
1724         PR modula2/110631
1725         * gm2-libs/FIO.def (ReadAny): Correct comment as
1726         HIGH (a) + 1 is number of bytes.
1727         (WriteAny): Correct comment as HIGH (a) + 1 is number of
1728         bytes.
1729         * gm2-libs/FIO.mod (ReadAny): Correct comment as
1730         HIGH (a) + 1 is number of bytes.  Also pass HIGH (a) + 1
1731         to BufferedRead.
1732         (WriteAny): Correct comment as HIGH (a) + 1 is number of
1733         bytes.  Also pass HIGH (a) + 1 to BufferedWrite.
1734         (BufferedWrite): Rename parameter a to src, rename variable
1735         t to dest.  Correct parameter order to memcpy.
1737 2023-07-20  Gaius Mulley  <gaiusmod2@gmail.com>
1739         * gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
1740         (CheckIndrX): Call SetupLAlias between lhs and content.
1741         (trashParam): Re-write.
1742         (SetVarLRInitialized): Indicate shadow and heap are initialized.
1743         Call SetupIndr between shadow and heap.
1744         * gm2-compiler/P2SymBuild.mod: Import
1745         PutProcedureParameterHeapVars.
1746         (EndBuildProcedure): Call PutProcedureParameterHeapVars.
1747         * gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
1748         procedure function.
1749         (PutProcedureParameterHeapVars): New procedure function.
1750         * gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
1751         procedure function.
1752         (GetParameterHeapVar): New procedure function.
1753         (PuttParameterHeapVar): New procedure function.
1754         (PutProcedureParameterHeapVars): New procedure.
1755         (VarParam): HeapVar new record field.
1756         (PutVarParam): HeapVar assigned to NulSym.
1758 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
1760         PR modula2/110284
1761         * Make-lang.in (m2_OBJS): Add m2/gm2-gcc/rtegraph.o and
1762         m2/gm2-compiler-boot/m2flex.o.
1763         (c-family/m2pp.o): Remove.
1764         * Make-maintainer.in (c-family/m2pp.o): Add.
1766 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
1768         * gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed
1769         unnecessary in error message.  Use vartok for location.
1770         (BuildOddFunction): Use optok for location.
1771         (BuildAbsFunction): Use vartok for location.  Bugfix set vartok.
1772         (BuildCapFunction): Use optok for location.
1773         (BuildOrdFunction): Use optok for location and correct format
1774         specifier.
1775         (BuildShiftFunction): Use vartok for location.
1776         (BuildRotateFunction): Use vartok for location.
1777         (BuildTruncFunction): Use vartok for location.
1778         (BuildFloatFunction): Use vartok for location.
1779         (BuildReFunction): Use vartok for location.
1780         (BuildImFunction): Use vartok for location.
1781         * gm2-compiler/M2SymInit.mod (trashParam): Remove commented code.
1783 2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>
1785         * gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash
1786         parameter value to NIL if DEALLOCATE is detected.
1787         * gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass
1788         tok to SetVarInitialized.  Pass tok to GetVarComponentInitialized.
1789         (ComponentFindVar): Add tok parameter.  Check aliased pointer
1790         against Nil and generate warning if necessary.
1791         (deRefComponent): Add tok and sym parameters and pass them to
1792         getContent.
1793         (SetVarComponentInitialized): Add tok parameter.  Pass tok to
1794         ComponentFindVar.  Pass tok and sym to deRefComponent.
1795         (GetVarComponentInitialized): Add tok parameter.  Pass tok to
1796         ComponentFindVar.  Pass tok to deRefComponent.
1797         (SetVarInitialized): Add tok parameter.  Pass tok to
1798         SetVarComponentInitialized.
1799         (doGetVarInitialized): Add tok parameter.  Pass tok to
1800         GetVarComponentInitialized.
1801         (CheckXIndr): Pass lhs and lhstok to getContent.
1802         (CheckIndrX): Pass rhs and rhstok to getContent.
1803         (CheckBecomes): Pass destok to ComponentFindVar.  Pass des and
1804         destok to deRefComponent.
1805         (CheckAddr): Pass contenttok to GetVarInitialized.  Pass ptrtok
1806         to SetVarInitialized.
1807         (CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for
1808         op1 cases and op3tok for op3 cases.
1809         (trashParam): Get operand tokens.  Pass op3tok to
1810         SetVarInitialized.  Pass op3 and op3tok to getContent.
1811         Alias ptr to NIL if procedure is DEALLOCATE.  Pass op3tok to
1812         SetVarInitialized.
1813         (IsDeallocate): New procedure function.
1814         (DetectTrash): Use IsDeallocate.
1815         (SetupLAlias): Allow exp to be Nil.
1816         (getContent): Generate warning message if ptr is Nil.
1818 2023-07-18  Gaius Mulley  <gaiusmod2@gmail.com>
1820         * Make-lang.in: Minor formatting change.
1821         * gm2-compiler/M2GCCDeclare.mod
1822         (DeclareUnboundedProcedureParameters): Rename local variables.
1823         (WalkUnboundedProcedureParameters): Rename local variables.
1824         (DoVariableDeclaration): Avoid declaration of a variable if
1825         it is on the heap (used by static analysis only).
1826         * gm2-compiler/M2GenGCC.mod: Formatting.
1827         * gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function.
1828         * gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function.
1829         (QuadFrame): Add Trash field.
1830         (BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create
1831         a heap variable for parameter 1 saving it as the trashed variable
1832         for static analysis.
1833         (GenQuadOTrash): New procedure.
1834         (DisplayQuadRange): Bugfix.  Write the scope number.
1835         * gm2-compiler/M2SymInit.mod: Rewritten to separate LValue
1836         equivalence from LValue to RValue pairings.  Comprehensive
1837         detection of variant record implemented.  Allow dereferencing
1838         of pointers through LValue/RValue chains.
1839         * gm2-compiler/SymbolTable.def (PutVarHeap): New procedure.
1840         (IsVarHeap): New procedure function.
1841         (ForeachParamSymDo): New procedure.
1842         * gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure.
1843         (IsVarHeap): New procedure function.
1844         (ForeachParamSymDo): New procedure.
1845         (MakeVariableForParam): Reformatted.
1846         (CheckForUnknownInModule): Reformatted.
1847         (SymVar): Add field Heap.
1848         (MakeVar): Assign Heap to FALSE.
1850 2023-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1852         * Make-lang.in (m2/boot-bin/mklink$(exeext)): Add $(LDFLAGS).
1854 2023-07-11  Gaius Mulley  <gaiusmod2@gmail.com>
1856         * gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New
1857         parameter ScopeSym.
1858         * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New
1859         parameter ScopeSym.
1860         (InitBasicBlocksFromRange): New parameter ScopeSym.  Call
1861         ConvertQuads2BasicBlock with ScopeSym.
1862         (DisplayBasicBlocks): Uncomment.
1863         * gm2-compiler/M2Code.mod: Replace VariableAnalysis with
1864         ScopeBlockVariableAnalysis.
1865         (InitialDeclareAndOptiomize): Add parameter scope.
1866         (SecondDeclareAndOptimize): Add parameter scope.
1867         * gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope
1868         parameter to DeclareTypesConstantsProceduresInRange.
1869         (DeclareTypesConstantsProceduresInRange): New parameter scope.
1870         Pass scope to DisplayQuadRange.  Reformatted.
1871         * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter
1872         scope.
1873         * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter
1874         scope.
1875         * gm2-compiler/M2Optimize.mod (KnownReachable): New parameter
1876         scope.
1877         * gm2-compiler/M2Options.def (SetUninitVariableChecking): Add
1878         arg parameter.
1879         * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add
1880         arg parameter and set boolean UninitVariableChecking and
1881         UninitVariableConditionalChecking.
1882         (UninitVariableConditionalChecking): New boolean set to FALSE.
1883         * gm2-compiler/M2Quads.def (IsGoto): New procedure function.
1884         (DisplayQuadRange): Add scope parameter.
1885         (LoopAnalysis): Add scope parameter.
1886         * gm2-compiler/M2Quads.mod: Import PutVarArrayRef.
1887         (IsGoto): New procedure function.
1888         (LoopAnalysis): Add scope parameter and use MetaErrorT1 instead
1889         of WarnStringAt.
1890         (BuildStaticArray): Call PutVarArrayRef.
1891         (BuildDynamicArray): Call PutVarArrayRef.
1892         (DisplayQuadRange): Add scope parameter.
1893         (GetM2OperatorDesc): Add relational condition cases.
1894         * gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter.
1895         * gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to
1896         DisplayQuadRange.
1897         (ForeachScopeBlockDo): Pass scopeSym to p.
1898         * gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ...
1899         (ScopeBlockVariableAnalysis): ... this.
1900         * gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add
1901         scope parameter.
1902         (bbEntry): New pointer to record.
1903         (bbArray): New array.
1904         (bbFreeList): New variable.
1905         (errorList): New list.
1906         (IssueConditional): New procedure.
1907         (GenerateNoteFlow): New procedure.
1908         (IssueWarning): New procedure.
1909         (IsUniqueWarning): New procedure.
1910         (CheckDeferredRecordAccess): Re-implement.
1911         (CheckBinary): Add warning and lst parameters.
1912         (CheckUnary): Add warning and lst parameters.
1913         (CheckXIndr): Add warning and lst parameters.
1914         (CheckIndrX): Add warning and lst parameters.
1915         (CheckBecomes): Add warning and lst parameters.
1916         (CheckComparison): Add warning and lst parameters.
1917         (CheckReadBeforeInitQuad): Add warning and lst parameters to all
1918         Check procedures.  Add all case quadruple clauses.
1919         (FilterCheckReadBeforeInitQuad): Add warning and lst parameters.
1920         (CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters.
1921         (bbArrayKill): New procedure.
1922         (DumpBBEntry): New procedure.
1923         (DumpBBArray): New procedure.
1924         (DumpBBSequence): New procedure.
1925         (TestBBSequence): New procedure.
1926         (CreateBBPermultations): New procedure.
1927         (ScopeBlockVariableAnalysis): New procedure.
1928         (GetOp3): New procedure.
1929         (GenerateCFG): New procedure.
1930         (NewEntry): New procedure.
1931         (AppendEntry): New procedure.
1932         (init): Initialize bbFreeList and errorList.
1933         * gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure.
1934         (IsVarArrayRef): New procedure function.
1935         * gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field.
1936         (MakeVar): Set ArrayRef to FALSE.
1937         (PutVarArrayRef): New procedure.
1938         (IsVarArrayRef): New procedure function.
1939         * gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype.
1940         (init_PerCompilationInit): Add call to _M2_M2SymInit_init.
1941         * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
1942         New definition.
1943         * gm2-lang.cc (gm2_langhook_handle_option): Add new case
1944         OPT_Wuninit_variable_checking_.
1945         * lang.opt: Wuninit-variable-checking= new entry.
1947 2023-07-03  Gaius Mulley  <gaiusmod2@gmail.com>
1949         PR modula2/110125
1950         * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def.
1951         (GM2-COMP-BOOT-MODS): Add M2SymInit.mod.
1952         * gm2-compiler/M2BasicBlock.mod: Formatting changes.
1953         * gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from
1954         M2Quads.  Import VariableAnalysis from M2SymInit.mod.
1955         * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
1956         Add debugging print for a component.
1957         (TypeConstFullyDeclared): Call RememberType for every type.
1958         * gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to
1959         GetQuadOtok.
1960         (CodeBecomes): Add parameter to GetQuadOtok.
1961         (CodeXIndr): Add parameter to GetQuadOtok.
1962         * gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and
1963         preserve operand token positions when reducing the branch
1964         quadruples.
1965         (ReduceGoto): Reformat.
1966         (FoldMultipleGoto): Reformat.
1967         (KnownReachable): Reformat.
1968         * gm2-compiler/M2Options.def (UninitVariableChecking): New
1969         variable declared and exported.
1970         (SetUninitVariableChecking): New procedure.
1971         * gm2-compiler/M2Options.mod (SetWall): Set
1972         UninitVariableChecking.
1973         (SetUninitVariableChecking): New procedure.
1974         * gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared.
1975         (VariableAnalysis): Removed.
1976         * gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure.
1977         (doVal): Reformatted.
1978         (MarkAsWrite): Reformatted.
1979         (MarkArrayAsWritten): Reformatted.
1980         (doIndrX): Use PutQuadOtok.
1981         (MakeRightValue): Use GenQuadOtok.
1982         (MakeLeftValue): Use GenQuadOtok.
1983         (CheckReadBeforeInitialized): Remove.
1984         (IsNeverAltered): Reformat.
1985         (DebugLocation): New procedure.
1986         (BuildDesignatorPointer): Use GenQuadO to preserve operand token
1987         position.
1988         (BuildRelOp): Use GenQuadOtok ditto.
1989         * gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure.
1990         (VarInitState): New procedure.
1991         (PutVarInitialized): New procedure.
1992         (PutVarFieldInitialized): New procedure function.
1993         (GetVarFieldInitialized): New procedure function.
1994         (PrintInitialized): New procedure.
1995         * gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure.
1996         (VarInitState): New procedure.
1997         (PutVarInitialized): New procedure.
1998         (PutVarFieldInitialized): New procedure function.
1999         (GetVarFieldInitialized): New procedure function.
2000         (PrintInitialized): New procedure.
2001         (LRInitDesc): New type.
2002         (SymVar): InitState new field.
2003         (MakeVar): Initialize InitState.
2004         * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
2005         New function declaration.
2006         * gm2-lang.cc (gm2_langhook_handle_option): Detect
2007         OPT_Wuninit_variable_checking and call SetUninitVariableChecking.
2008         * lang.opt: Add Wuninit-variable-checking.
2009         * gm2-compiler/M2SymInit.def: New file.
2010         * gm2-compiler/M2SymInit.mod: New file.
2012 2023-06-30  Iain Sandoe  <iain@sandoe.co.uk>
2014         PR testsuite/108835
2015         * gm2-libs/RTint.mod: Do not use NIL timeout setting on select,
2016         test failures sequentially, finishing on the first success.
2018 2023-06-18  Gaius Mulley  <gaiusmod2@gmail.com>
2020         PR modula2/110284
2021         * Make-lang.in (m2_OBJS): Assign $(GM2_C_OBJS).
2022         (GM2_C_OBJS): Remove m2/stor-layout.o.
2023         (m2/stor-layout.o): Remove rule.
2024         * gm2-gcc/gcc-consolidation.h (rtl.h): Remove include.
2025         (df.h): Remove include.
2026         (except.h): Remove include.
2028 2023-06-15  Marek Polacek  <polacek@redhat.com>
2030         * Make-lang.in: New var, GM2_PICFLAGS.  Use it.
2032 2023-06-13  Gaius Mulley  <gaiusmod2@gmail.com>
2034         * Make-lang.in (check-format-error): New rule.
2035         * gm2-compiler/M2MetaError.mod (op): Add calls InternalError if
2036         digits are detected.
2037         * gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format
2038         specifier.
2039         (BuildLengthFunction): Bugfix to format specifiers.
2040         (BuildOddFunction): Bugfix to format specifiers.
2041         (BuildAbsFunction): Bugfix to format specifiers.
2042         (BuildCapFunction): Bugfix to format specifiers.
2043         (BuildChrFunction): Bugfix to format specifiers.
2044         (BuildOrdFunction): Bugfix to format specifiers.
2045         (BuildMakeAdrFunction): Bugfix to format specifiers.
2046         (BuildSizeFunction): Bugfix to format specifiers.
2047         (BuildBitSizeFunction): Bugfix to format specifiers.
2048         * tools-src/checkmeta.py: New file.
2050 2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>
2052         PR modula2/110189
2053         * gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort
2054         format specifier.
2055         (BuildValFunction): Replace abort format specifier.
2056         (BuildCastFunction): Replace abort format specifier.
2057         (BuildMinFunction): Replace abort format specifier.
2058         (BuildMaxFunction): Replace abort format specifier.
2059         (BuildTruncFunction): Replace abort format specifier.
2060         * gm2-compiler/P3Build.bnf (Pass1): Remove.
2061         (Pass2): Remove.
2062         (Pass3): Remove.
2063         (Expect): Add Pass1.
2064         (AsmStatement): Remove Pass3.
2065         (AsmOperands): Remove Pass3.
2066         (AsmOperandSpec): Remove Pass3.
2067         (AsmInputElement): Remove Pass3.
2068         (AsmOutputElement): Remove Pass3.
2069         (AsmTrashList): Remove Pass3.
2071 2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>
2073         PR modula2/110126
2074         * gm2-compiler/M2Quads.def (BuildAsmElement): Remove
2075         trash parameter.
2076         (BuildAsmTrash): New procedure.
2077         * gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure.
2078         (BuildAsmElement): Remove trash parameter.
2079         * gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite.
2081 2023-06-08  Gaius Mulley  <gaiusmod2@gmail.com>
2083         PR modula2/110126
2084         * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove
2085         tokenno parameter.  Use object tok instead of tokenno.
2086         (BuildTrashTreeFromInterface): Use object tok instead of
2087         GetDeclaredMod.
2088         (CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface.
2089         * gm2-compiler/M2Quads.def (BuildAsmElement): Exported and
2090         defined.
2091         * gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted.
2092         (BuildInline): Reformatted.
2093         (BuildLineNo): Reformatted.
2094         (UseLineNote): Reformatted.
2095         (BuildAsmElement): New procedure.
2096         * gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use
2097         ConstExpression instead of string.
2098         (AsmElement): Use ConstExpression instead of string.
2099         (TrashList): Use ConstExpression instead of string.
2100         * gm2-compiler/P1Build.bnf (AsmOperands): Use
2101         ConstExpression instead of string.
2102         (AsmElement): Use ConstExpression instead of string.
2103         (TrashList): Use ConstExpression instead of string.
2104         * gm2-compiler/P2Build.bnf (AsmOperands): Use
2105         ConstExpression instead of string.
2106         (AsmElement): Use ConstExpression instead of string.
2107         (TrashList): Use ConstExpression instead of string.
2108         * gm2-compiler/P3Build.bnf (AsmOperands): Rewrite.
2109         (AsmOperandSpec): Rewrite.
2110         (AsmOutputList): New rule.
2111         (AsmInputList): New rule.
2112         (TrashList): Rewrite.
2113         * gm2-compiler/PCBuild.bnf (AsmOperands): Use
2114         ConstExpression instead of string.
2115         (AsmElement): Use ConstExpression instead of string.
2116         (TrashList): Use ConstExpression instead of string.
2117         * gm2-compiler/PHBuild.bnf (AsmOperands): Use
2118         ConstExpression instead of string.
2119         (AsmElement): Use ConstExpression instead of string.
2120         (TrashList): Use ConstExpression instead of string.
2121         * gm2-compiler/SymbolTable.def (PutRegInterface):
2122         Rewrite interface.
2123         (GetRegInterface): Rewrite interface.
2124         * gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure.
2125         (PutFirstUsed): New procedure.
2126         (PutRegInterface): Rewrite.
2127         (GetRegInterface): Rewrite.
2129 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
2131         * Make-lang.in: Build $(generated_files) before building
2132         all $(GM2_C_OBJS).
2134 2023-06-07  Gaius Mulley  <gaiusmod2@gmail.com>
2136         PR modula2/110019
2137         * gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted.
2138         (ForeachNodeDo): Reformatted.
2139         * gm2-compiler/SymbolTable.mod (AddListify): Join list
2140         with "," or "and" if more than one word is in the list.
2141         * m2.flex: Remove -1 from atoi(yytext) line number.
2143 2023-06-03  Gaius Mulley  <gaiusmod2@gmail.com>
2145         PR modula2/110003
2146         * gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import.
2147         (CheckFormalParameterSection): Call PutDeclared for the shadow
2148         variable associated with the parameter.
2150 2023-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
2152         PR modula2/109952
2153         * Make-maintainer.in: Change header to include emacs file mode.
2154         * gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether
2155         operand is a constant string and is nul terminated then return one.
2156         * gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return
2157         TRUE.  Static analysis missing return path fix.
2158         * gm2-libs/IO.mod (Init): Rewrite to help static analysis.
2159         * target-independent/m2/gm2-libs.texi: Rebuild.
2161 2023-05-19  Gaius Mulley  <gaiusmod2@gmail.com>
2163         PR modula2/109908
2164         * gm2-libs-iso/Strings.mod (Delete): Re-implement.
2166 2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2168         * gm2-gcc/m2builtins.cc (doradix): Use _P defines from tree.h.
2169         (doplaces): Ditto.
2170         (doexponentmin): Ditto.
2171         (doexponentmax): Ditto.
2172         (dolarge): Ditto.
2173         (dosmall): Ditto.
2174         (dogUnderflow): Ditto.
2175         * gm2-gcc/m2convert.cc (unsafe_conversion_p): Ditto.
2176         * gm2-gcc/m2expr.cc (m2expr_build_unary_op_check): Ditto.
2177         (m2expr_build_binary_op_check): Ditto.
2178         * gm2-gcc/m2tree.cc (m2tree_is_var): Ditto.
2179         * gm2-gcc/m2treelib.cc (build_modify_expr): Ditto.
2180         * gm2-gcc/m2type.cc (gm2_finish_decl): Ditto.
2181         * m2pp.cc (hextree): Ditto.
2182         (m2pp_call_expr): Ditto.
2184 2023-05-17  Gaius Mulley  <gaiusmod2@gmail.com>
2186         * gm2-libs-iso/LongWholeIO.mod (WriteInt): Only request a
2187         sign if the value is < 0.
2188         * gm2-libs-iso/ShortWholeIO.mod (WriteInt): Only request a
2189         sign if the value is < 0.
2190         * gm2-libs-iso/WholeIO.mod (WriteInt): Only request a sign
2191         if the value is < 0.
2192         * gm2-libs-iso/WholeStr.mod (WriteInt): Only request a sign
2193         if the value is < 0.
2195 2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>
2197         PR modula2/109879
2198         * gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
2199         * gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
2200         (ReadCard): Call SkipSpaces.
2201         * gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
2202         * gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
2203         (ReadCard): Call SkipSpaces.
2204         * gm2-libs-iso/TextIO.mod: Import SkipSpaces.
2205         * gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
2206         (ReadCard): Call SkipSpaces.
2207         * gm2-libs-iso/TextUtil.def: New file.
2208         * gm2-libs-iso/TextUtil.mod: New file.
2210 2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>
2212         PR modula2/108344
2213         * gm2-libs-coroutines/TimerHandler.mod (EnableLED): New constant.
2214         (Timer): Test EnableLED before switching on the scroll LED.
2216 2023-05-12  Gaius Mulley  <gaiusmod2@gmail.com>
2218         PR modula2/109830
2219         * gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend
2220         used to select FIO.OpenForRandom.
2221         (OpenRead): Pass extra parameter to newCid.
2222         (OpenWrite): Pass extra parameter to newCid.
2223         (OpenAppend): Pass extra parameter to newCid.
2225 2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>
2227         PR modula2/109810
2228         * gm2-compiler/M2ALU.mod (ConvertConstToType): Use
2229         PrepareCopyString in place of DoCopyString.
2230         * gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
2231         (PrepareCopyString): ... this.
2232         * gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
2233         with a single parameter.  Call CodeXIndr with a single parameter.
2234         (CodeReturnValue): Remove parameters and replace with a single
2235         quadno.  Reimplement using PrepareCopyString.  Issue error
2236         if the string exceeds designator space.
2237         (DoCopyString): Reimplement and rename to ...
2238         (PrepareCopyString): ... this.
2239         (CodeXIndr): Remove parameters and replace with a single
2240         quadno.  Reimplement using PrepareCopyString.  Issue error
2241         if the string exceeds designator space.
2242         (CodeBecomes): Remove parameters and replace with a single
2243         quadno.  Reimplement using PrepareCopyString.  Issue error
2244         if the string exceeds designator space.
2245         * gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
2246         tokreturn.
2247         * gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
2248         tokreturn.  Rename tokno to tokcombined.
2250 2023-05-09  Gaius Mulley  <gaiusmod2@gmail.com>
2252         PR modula2/109779
2253         * gm2-libs-iso/RTgen.mod (doLook): Remove old.
2254         Remove re-assignment of result.
2255         * gm2-libs-iso/TextIO.mod (CanRead): Rename into ...
2256         (CharAvailable): ... this.
2257         (DumpState): New procedure.
2258         (SetResult): Rename as SetNul.
2259         (WasGoodChar): Rename into ...
2260         (EofOrEoln): ... this.
2261         (SkipLine): Skip over the newline.
2262         (ReadString): Flip THEN ELSE statements after testing for
2263         EofOrEoln.
2264         (ReadRestLine): Flip THEN ELSE statements after testing for
2265         EofOrEoln.
2267 2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>
2269         PR modula2/109729
2270         * gm2-compiler/M2GenGCC.mod (CodeStatement): Detect
2271         ArithAddOp and call CodeAddChecked.
2272         (ResolveConstantExpressions): Detect ArithAddOp and call
2273         FoldArithAdd.
2274         (FoldArithAdd): New procedure.
2275         (FoldAdd): Refactor to use FoldArithAdd.
2276         * gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp.
2277         * gm2-compiler/M2Quads.mod: Remove commented imports.
2278         (QuadFrame): Changed comments to use GNU coding standards.
2279         (ArithPlusTok): New global variable.
2280         (BuildForToByDo): Use ArithPlusTok instead of PlusTok.
2281         (MakeOp): Detect ArithPlusTok and return ArithAddOp.
2282         (WriteQuad): Add ArithAddOp clause.
2283         (WriteOperator): Add ArithAddOp clause.
2284         (Init): Initialize ArithPlusTok.
2286 2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>
2288         PR modula2/109675
2289         * Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def.
2290         (BUILD-PGE-O): Remove GM2LINK.o.
2291         * Make-maintainer.in (PPG-DEFS): New define.
2292         (PPG-LIB-DEFS): Remove M2LINK.def.
2293         (BUILD-BOOT-PPG-H): Add PPGDEF .h files.
2294         (m2/ppg$(exeext)): Remove M2LINK.o
2295         (PGE-DEPS): New define.
2296         (m2/pg$(exeext)): Remove M2LINK.o.
2297         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot.
2298         (m2/pge$(exeext)): Remove M2LINK.o.
2299         (pge-maintainer): Re-implement.
2300         (pge-libs-push): Re-implement.
2301         (m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o.
2302         * gm2-libs/DynamicStrings.mod (writeAddress): Re-implement
2303         using snprintf.
2304         * gm2-libs/M2Dependent.mod: Remove commented out imports.
2305         * mc-boot/GDynamicStrings.cc: Rebuild.
2306         * mc-boot/GFIO.cc: Rebuild.
2307         * mc-boot/GFormatStrings.cc: Rebuild.
2308         * mc-boot/GM2Dependent.cc: Rebuild.
2309         * mc-boot/GM2Dependent.h: Rebuild.
2310         * mc-boot/GM2RTS.cc: Rebuild.
2311         * mc-boot/GM2RTS.h: Rebuild.
2312         * mc-boot/GRTExceptions.cc: Rebuild.
2313         * mc-boot/GRTint.cc: Rebuild.
2314         * mc-boot/GSFIO.cc: Rebuild.
2315         * mc-boot/GStringConvert.cc: Rebuild.
2316         * mc-boot/Gdecl.cc: Rebuild.
2317         * pge-boot/GASCII.cc: Rebuild.
2318         * pge-boot/GASCII.h: Rebuild.
2319         * pge-boot/GArgs.cc: Rebuild.
2320         * pge-boot/GArgs.h: Rebuild.
2321         * pge-boot/GAssertion.cc: Rebuild.
2322         * pge-boot/GAssertion.h: Rebuild.
2323         * pge-boot/GBreak.h: Rebuild.
2324         * pge-boot/GCmdArgs.h: Rebuild.
2325         * pge-boot/GDebug.cc: Rebuild.
2326         * pge-boot/GDebug.h: Rebuild.
2327         * pge-boot/GDynamicStrings.cc: Rebuild.
2328         * pge-boot/GDynamicStrings.h: Rebuild.
2329         * pge-boot/GEnvironment.h: Rebuild.
2330         * pge-boot/GFIO.cc: Rebuild.
2331         * pge-boot/GFIO.h: Rebuild.
2332         * pge-boot/GFormatStrings.h:: Rebuild.
2333         * pge-boot/GFpuIO.h:: Rebuild.
2334         * pge-boot/GIO.cc: Rebuild.
2335         * pge-boot/GIO.h: Rebuild.
2336         * pge-boot/GIndexing.cc: Rebuild.
2337         * pge-boot/GIndexing.h: Rebuild.
2338         * pge-boot/GLists.cc: Rebuild.
2339         * pge-boot/GLists.h: Rebuild.
2340         * pge-boot/GM2Dependent.cc: Rebuild.
2341         * pge-boot/GM2Dependent.h: Rebuild.
2342         * pge-boot/GM2EXCEPTION.cc: Rebuild.
2343         * pge-boot/GM2EXCEPTION.h: Rebuild.
2344         * pge-boot/GM2RTS.cc: Rebuild.
2345         * pge-boot/GM2RTS.h: Rebuild.
2346         * pge-boot/GNameKey.cc: Rebuild.
2347         * pge-boot/GNameKey.h: Rebuild.
2348         * pge-boot/GNumberIO.cc: Rebuild.
2349         * pge-boot/GNumberIO.h: Rebuild.
2350         * pge-boot/GOutput.cc: Rebuild.
2351         * pge-boot/GOutput.h: Rebuild.
2352         * pge-boot/GPushBackInput.cc: Rebuild.
2353         * pge-boot/GPushBackInput.h: Rebuild.
2354         * pge-boot/GRTExceptions.cc: Rebuild.
2355         * pge-boot/GRTExceptions.h: Rebuild.
2356         * pge-boot/GSArgs.h: Rebuild.
2357         * pge-boot/GSEnvironment.h: Rebuild.
2358         * pge-boot/GSFIO.cc: Rebuild.
2359         * pge-boot/GSFIO.h: Rebuild.
2360         * pge-boot/GSYSTEM.h: Rebuild.
2361         * pge-boot/GScan.h: Rebuild.
2362         * pge-boot/GStdIO.cc: Rebuild.
2363         * pge-boot/GStdIO.h: Rebuild.
2364         * pge-boot/GStorage.cc: Rebuild.
2365         * pge-boot/GStorage.h: Rebuild.
2366         * pge-boot/GStrCase.cc: Rebuild.
2367         * pge-boot/GStrCase.h: Rebuild.
2368         * pge-boot/GStrIO.cc: Rebuild.
2369         * pge-boot/GStrIO.h: Rebuild.
2370         * pge-boot/GStrLib.cc: Rebuild.
2371         * pge-boot/GStrLib.h: Rebuild.
2372         * pge-boot/GStringConvert.h: Rebuild.
2373         * pge-boot/GSymbolKey.cc: Rebuild.
2374         * pge-boot/GSymbolKey.h: Rebuild.
2375         * pge-boot/GSysExceptions.h: Rebuild.
2376         * pge-boot/GSysStorage.cc: Rebuild.
2377         * pge-boot/GSysStorage.h: Rebuild.
2378         * pge-boot/GTimeString.h: Rebuild.
2379         * pge-boot/GUnixArgs.h: Rebuild.
2380         * pge-boot/Gbnflex.cc: Rebuild.
2381         * pge-boot/Gbnflex.h: Rebuild.
2382         * pge-boot/Gdtoa.h: Rebuild.
2383         * pge-boot/Gerrno.h: Rebuild.
2384         * pge-boot/Gldtoa.h: Rebuild.
2385         * pge-boot/Glibc.h: Rebuild.
2386         * pge-boot/Glibm.h: Rebuild.
2387         * pge-boot/Gpge.cc: Rebuild.
2388         * pge-boot/Gtermios.h: Rebuild.
2389         * pge-boot/Gwrapc.h: Rebuild.
2390         * mc-boot/GM2LINK.h: Removed.
2391         * pge-boot/GM2LINK.cc: Removed.
2392         * pge-boot/GM2LINK.h: Removed.
2394 2023-04-30  Gaius Mulley  <gaiusmod2@gmail.com>
2396         * gm2-compiler/SymbolTable.mod (ConstLitPoolEntry): New
2397         pointer to record.
2398         (ConstLitSym): New field RangeError.
2399         (ConstLitPoolTree): New SymbolTree representing name to
2400         index.
2401         (ConstLitArray): New dynamic array containing pointers
2402         to a ConstLitPoolEntry.
2403         (CreateConstLit): New procedure function.
2404         (LookupConstLitPoolEntry): New procedure function.
2405         (AddConstLitPoolEntry): New procedure function.
2406         (MakeConstLit): Re-implemented to check the constant lit
2407         pool before calling CreateConstLit.
2408         * m2.flex: Add ability to decode binary constant literals.
2410 2023-04-26  Gaius Mulley  <gaiusmod2@gmail.com>
2412         PR modula2/108121
2413         * gm2-compiler/M2ALU.mod (Less): Reformatted.
2414         * gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove
2415         from import.
2416         (ConstantStringExceedsZType): Import.
2417         (GetConstLitType): Re-implement using ConstantStringExceedsZType.
2418         * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove.
2419         (m2decl_ConstantStringExceedsZType): New function.
2420         (m2decl_BuildConstLiteralNumber): Re-implement.
2421         * gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove.
2422         (ConstantStringExceedsZType): New function.
2423         * gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove.
2424         (m2decl_ConstantStringExceedsZType): New function.
2425         * gm2-gcc/m2expr.cc (append_digit): Remove.
2426         (m2expr_interpret_integer): Remove.
2427         (append_m2_digit): Remove.
2428         (m2expr_StrToWideInt): New function.
2429         (m2expr_interpret_m2_integer): Remove.
2430         * gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function.
2431         * gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function.
2432         * gm2-gcc/m2type.cc (build_m2_word64_type_node): New function.
2433         (build_m2_ztype_node): New function.
2434         (m2type_InitBaseTypes): Call build_m2_ztype_node.
2435         * gm2-lang.cc (gm2_type_for_size): Re-write using early returns.
2437 2023-04-21  Arsen Arsenović  <arsen@aarsen.me>
2439         * Make-lang.in: Remove references to $(P).
2440         * Make-maintainer.in: Ditto.
2442 2023-04-21  Gaius Mulley  <gaiusmod2@gmail.com>
2444         PR modula2/109586
2445         * gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE
2446         (t) == CONSTRUCTOR) to expression.
2448 2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>
2450         PR modula2/109488
2451         * lang.opt: Fix typo "maybe" to "may be".
2453 2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>
2455         * gm2-compiler/M2ALU.def (PopChar): New procedure function.
2456         * gm2-compiler/M2ALU.mod (PopChar): New procedure function.
2457         * gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect
2458         a single constant char and build a C string.
2459         * gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure
2460         function.
2461         (GetStr): New procedure function.
2462         (FoldAdd): Use IsConstStr.
2463         * gm2-compiler/M2Quads.mod: Formatting changes.
2464         * gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function.
2465         * gm2-gcc/m2expr.def (GetCstInteger): New procedure function.
2466         * gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype.
2468 2023-04-05  Gaius Mulley  <gaiusmod2@gmail.com>
2470         PR modula2/109423
2471         * gm2-compiler/M2Base.def (Unbounded): Remove.
2472         * gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
2473         attribute.
2474         * gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
2475         error format string.
2476         (BuildExceptProcedure): Correct error format string.
2477         (BuildAdrFunction): Call PutWriteQuad when taking the
2478         address of a variable.
2479         * gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
2480         parameters.
2481         * gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
2482         * gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
2483         (PopAllocationExemption): Remove f.
2484         * gm2-libs/FIO.mod (BufferedWrite): Remove result.
2485         * gm2-libs/FormatStrings.mod (Copy): Remove endpos and
2486         afterperc.
2487         (HandlePercent): Remove result.
2488         * gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
2489         * gm2-libs/M2Dependent.mod (CreateModule): Remove p0
2490         and p1.
2491         (DumpModuleData): Remove mptr.
2492         (ConstructModules): Remove nulp.
2493         * gm2-libs/RTExceptions.mod (PopHandler): Remove i.
2494         * gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
2495         and afm.
2496         * gm2-libs/SFIO.mod (ReadS): Remove c.
2497         * gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
2498         whole and fraction.
2500 2023-04-03  Gaius Mulley  <gaiusmod2@gmail.com>
2502         PR modula2/109388
2503         * gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration):
2504         Remove second parameter module.  Adjust all callers to
2505         remove the second parameter.
2506         * gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove.
2507         (InStopSet): Remove.
2508         (PeepToken): Remove.
2509         (PushQualident): Remove.
2510         (SimpleDes): Remove.
2511         (ActualParameters): Remove.
2513 2023-04-02  Gaius Mulley  <gaiusmod2@gmail.com>
2515         PR modula2/109336
2516         * Make-lang.in (GM2_O): Set to -O0.
2517         (GM2_LIBS): Remove target libraries and replace with build libs.
2518         (BUILD-LIBS): New declaration.
2519         (m2/gm2-libs/libgm2.a): New rule.
2520         (m2/gm2-libs/%.o): New rule.
2521         (m2/gm2-libs/choosetemp.o): New rule.
2522         * gm2-compiler/M2ColorString.mod (append): Use ADR rather than
2523         implicit conversion.
2524         * gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when
2525         a source file is not found.  Improve comments and formatting.
2526         * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove
2527         ansi-decl.h.  Add getopt.h.
2528         (cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_.
2529         * gm2spec.cc (lang_specific_driver): Do not skip -fmod=.
2530         Remove comment.
2532 2023-03-29  Gaius Mulley  <gaiusmod2@gmail.com>
2534         PR modula2/109336
2535         PR modula2/109315
2536         * gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by
2537         ensuring the extension contains the ".".
2538         (CalculateStemName): Re-formatted.
2539         (ExtractExtension): Re-formatted.
2540         (ExtractModule): Re-formatted.
2541         * gm2-compiler/M2Options.def (setdefextension): Add block comment.
2542         (setmodextension): Add block comment.  Re-formatted.
2543         * gm2-compiler/M2Options.mod (setdefextension): Add block comment.
2544         (setmodextension): Add block comment.  Re-formatted.
2545         * gm2-compiler/M2Search.mod (FindSourceDefFile): Use
2546         DefaultDefExt.
2547         (DefaultDefExt): New constant.
2548         (DefaultModExt): New constant.
2549         (FindSourceModFile): Use DefaultModExt.
2550         * gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct
2551         spelling.
2552         * gm2spec.cc (M2SOURCE): New constant.
2553         (LANGSPEC): New value.
2554         (MATHLIB): New value.
2555         (WITHLIBC): New value.
2556         (SKIPOPT): New value.
2557         (lang_specific_driver): Replace seen_module_extension bool with
2558         module_extension char *.  Detect -fmod= and remember extension.
2559         Use the extension to detect modula-2 source and mark it as such.
2561 2023-03-23  Gaius Mulley  <gaiusmod2@gmail.com>
2563         PR modula2/109264
2564         * gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment
2565         out ErrorString in debugging block.
2566         (BuildConstructorStart): Replace Assert with a call to
2567         MetaErrorT3.  Import MetaErrorT3.
2568         * gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename
2569         local variables.
2570         (WalkFunctionParam): Remove test for IsEnumeration when
2571         resolving MIN or MAX parameters.
2572         * gm2-compiler/PHBuild.bnf (BlockAssert): New procedure.
2573         (ErrorArrayat): New procedure.
2574         (Expect): Renamed parameter t to tok.
2575         (PushQualident): New rule.
2576         (ConstSetOrQualidentOrFunction): Force AutoOn.
2577         (TypeDeclaration): Add debugging assert.
2578         (SimpleType): Add debugging assert.
2579         (DefaultRecordAttributes): New rule (and bugfix).
2580         (FieldPragmaExpression): New rule (and bugfix).
2581         (PragmaConstExpression): New rule (and bugfix).
2582         (SetOrDesignatorOrFunction): Add debugging assert.
2583         (Block): Add debugging assert.
2584         * gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int
2585         to bool.
2586         * gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool.
2587         (m2expr_GetBooleanTrue): Remove.
2588         (m2expr_GetBooleanFalse): Remove.
2589         * gm2-gcc/m2options.h (M2Options_SetStatistics): Replace
2590         int with bool.
2592 2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>
2594         PR modula2/109248
2595         * Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C
2596         and C++ compiles.
2597         * gm2spec.cc (add_m2_I_path): Indentation.
2598         (lang_specific_driver): New variable seen_pathname.
2599         Detect -fm2-pathname.  If not seen then push_back_Ipath (".").
2600         Change non iso library path to "m2cor,m2log,m2pim,m2iso".
2602 2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>
2604         PR modula2/107630
2605         * Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove
2606         m2/gm2-libs-boot/M2LINK.o.
2607         (m2/stage1/cc1gm2$(exeext)): Ditto.
2608         (GM2-LIBS-BOOT-DEFS): Remove M2LINK.def.
2609         (GM2-LIBS-DEFS): Ditto.
2610         (m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS.
2611         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
2612         (m2/mc-boot/main.o): Ditto.
2613         (mcflex.o): Add $(CFLAGS).
2614         (m2/gm2-libs-boot/M2LINK.o): Remove rule.
2615         * gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove.
2616         * gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove.
2617         (M2LinkIndex): Remove.
2618         (DoVariableDeclaration): Remove initial and call to
2619         AddEntryM2Link.
2620         (AddEntryM2Link): Remove.
2621         (GetEntryM2Link): Remove.
2622         (DeclareM2linkGlobals): Remove.
2623         (DetectM2LinkInitial): Remove.
2624         (InitM2LinkModule): Remove.
2625         * gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to
2626         DeclareM2linkGlobals.
2627         * gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra
2628         parameter containing runtime module override to ConstructModules.
2629         * gm2-compiler/M2Scaffold.mod: Update comment describing
2630         ConstructModules.
2631         * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder):
2632         Remove.
2633         * gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder
2634         parameter.
2635         * gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter.
2636         * gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder
2637         parameter.
2638         * gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder
2639         parameter.
2640         * gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter.
2641         * gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder
2642         parameter.
2643         * gm2-libs/M2LINK.def: Removed.
2645 2023-03-21  Gaius Mulley  <gaiusmod2@gmail.com>
2647         * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
2648         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
2649         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
2650         (m2/mc-boot/main.o): Add $(CXXFLAGS).
2652 2023-03-19  Gaius Mulley  <gaiusmod2@gmail.com>
2654         * Make-maintainer.in (gm2.maintainer-clean): Remove.
2655         (gm2.maintainer-help): Add gm2.maintainer-tools,
2656         gm2.maintainer-doc.  Remove gm2.maintainer-clean.
2657         Change target-independent directory to target-independent/m2.
2658         * gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__.
2659         * gm2-compiler/M2Options.def (SetAutoInit): Update comment.
2660         * gm2-compiler/M2Options.mod (SetAutoInit): Update comment.
2661         * gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len
2662         to _name_high.
2663         * gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to
2664         ADDRESS and add _name_high.
2665         * gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change
2666         int to bool.
2667         * gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change
2668         int to bool.
2669         * gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool.
2670         (m2expr_BuildIfConstInVar): Change int to bool.
2671         (m2expr_BuildIfNotConstInVar): Change int to bool.
2672         (m2expr_BuildIfVarInVar): Change int to bool.
2673         (m2expr_BuildIfNotVarInVar): Change int to bool.
2674         (m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool.
2675         * gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool.
2676         (m2expr_BuildIfVarInVar): Change int to bool.
2677         (m2expr_BuildIfNotConstInVar): Change int to bool.
2678         (m2expr_BuildIfConstInVar): Change int to bool.
2679         * gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool.
2680         (M2Options_SetNilCheck): Change int to bool.
2681         (M2Options_SetReturnCheck): Change int to bool.
2682         (M2Options_SetCaseCheck): Change int to bool.
2683         (M2Options_SetCheckAll): Change int to bool.
2684         (M2Options_SetVerboseUnbounded): Change int to bool.
2685         (M2Options_SetUnboundedByReference): Change int to bool.
2686         (M2Options_SetOptimizing): Change int to bool.
2687         (M2Options_SetQuiet): Change int to bool.
2688         (M2Options_SetCpp): Change int to bool.
2689         (M2Options_SetM2g): Change int to bool.
2690         (M2Options_SetLowerCaseKeywords): Change int to bool.
2691         (M2Options_SetVerbose): Change int to bool.
2692         * gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool.
2693         (m2treelib_get_field_no): Change int to bool.
2694         (m2treelib_get_set_value): Change int to bool.
2695         (m2treelib_get_set_address): Change int to bool.
2696         (m2treelib_get_set_address_if_var): Change int to bool.
2697         * gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool.
2698         (get_set_address): Change int to bool.
2699         (get_set_value): Change int to bool.
2700         (get_field_no): Change int to bool.
2701         (get_rvalue): Change int to bool.
2702         * gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool.
2703         (m2treelib_get_set_value): Change int to bool.
2704         (m2treelib_get_set_address): Change int to bool.
2705         (m2treelib_get_set_address_if_var): Change int to bool.
2706         * gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool.
2707         * gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool.
2708         * gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool.
2709         * gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool.
2710         (ldtoa_ldtoa): Change int to bool.
2711         * m2.flex (functionInfo): Change int to bool.
2712         (pushFunction): Change parameter from int to bool.
2713         * mc-boot/GDebug.cc (Debug_Halt): Rebuild.
2714         * mc-boot/GDebug.h (Debug_Halt): Rebuild.
2715         * mc-boot/GDynamicStrings.cc: Rebuild.
2716         * mc-boot/GDynamicStrings.h: Rebuild.
2717         * mc-boot/GFIO.cc: Rebuild.
2718         * mc-boot/GM2RTS.cc: Rebuild.
2719         * mc-boot/GM2RTS.h: Rebuild.
2720         * mc-boot/GPushBackInput.cc: Rebuild.
2721         * mc-boot/GRTExceptions.cc: Rebuild.
2722         * mc-boot/GRTint.cc: Rebuild.
2723         * mc-boot/GSysStorage.cc: Rebuild.
2724         * mc-boot/Gdecl.cc: Rebuild.
2725         * mc-boot/GsymbolKey.cc: Rebuild.
2726         * mc/symbolKey.mod: Rebuild.
2727         * target-independent/m2/Builtins.texi: Rebuild.
2728         * target-independent/m2/SYSTEM-iso.texi: Rebuild.
2729         * target-independent/m2/SYSTEM-pim.texi: Rebuild.
2730         * target-independent/m2/gm2-libs.texi: Rebuild.
2731         * tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to
2732         gm2-lib-log.
2734 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
2736         PR modula2/109032
2737         * gm2-gcc/m2expr.cc: Correct ? : order in comments.
2738         (m2expr_BuildDivM2): Improve comment.
2739         * lang.opt: Improve option descriptions.
2741 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
2743         PR modula2/109102
2744         * gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to
2745         use %qs rather than quotes.
2747 2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>
2749         * gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix):
2750         Re-implemented.
2751         * gm2-libs/SysStorage.mod (enableTrace): Disable tracing.
2753 2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>
2755         * gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters
2756         reordered.
2757         (DelSymKey): Ditto.
2758         * gm2-compiler/ppg.mod (GetEpsilon): Ditto.
2759         (GetReachEnd): Ditto.
2760         (GetFollow): Ditto.
2761         (CodeCondition): Ditto.
2762         (CodeThenDo): Ditto.
2763         (CodeEnd): Ditto.
2764         (RecoverCondition): Ditto.
2765         (ConditionIndent): Ditto.
2766         * gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto.
2767         * gm2-libs-coroutines/Executive.mod (Assert): Ditto.
2768         (Resume): Remove redundant comments.
2769         (Wait): Remove redundant comments.
2770         * gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters
2771         reordered.
2772         (IOTransferHandler): Ditto.
2773         (Finished): Ditto.
2774         (localInit): Ditto.
2775         * gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters
2776         reordered.
2777         (Cancel): Ditto.
2778         (ReArmEvent): Ditto.
2779         (OnActiveQueue): Ditto.
2780         * gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto.
2781         (Transfer): Ditto.
2782         (IOTRANSFER): Ditto.
2783         * gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters.
2784         * gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered.
2785         (HaltC): Ditto.
2786         * gm2-libs-iso/M2RTS.mod: Ditto.
2787         * gm2-libs-iso/RTentity.mod (PutKey): Ditto.
2788         (DelKey): Ditto.
2789         (findChildAndParent): Ditto.
2790         (assert): Ditto.
2791         * gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace.
2792         Add UseMallocFree test.
2793         (DEALLOCATE): Add DebugTrace.  Add UseMallocFree test.
2794         (assert): Halt parameters reordered.
2795         * gm2-libs-log/Termbase.mod (Read): Ditto.
2796         (KeyPressed): Ditto.
2797         (Write): Ditto.
2798         (Init): Ditto.
2799         * gm2-libs/Debug.def (Halt): Halt parameters reordered.
2800         * gm2-libs/Debug.mod (Halt): Ditto.
2801         * gm2-libs/DynamicStrings.def (PopAllocation): Improve comment.
2802         * gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment.
2803         Halt parameters reordered.
2804         * gm2-libs/M2RTS.def (Halt): Ditto.
2805         (HaltC): Ditto.
2806         * gm2-libs/M2RTS.mod (Halt): Ditto.
2807         (HaltC): Ditto.
2808         * gm2-libs/PushBackInput.mod (PutStr): Ditto.
2809         (PutString): Ditto.
2810         (PutCh): Ditto.
2811         * gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto.
2812         * gm2-libs/RTint.mod (ReArmTimeVector): Ditto.
2813         (GetTimeVector): Ditto.
2814         (AttachVector): Ditto.
2815         (IncludeVector): Ditto.
2816         (Listen): Ditto.
2817         * gm2-libs/SysStorage.mod (ALLOCATE): Ditto.
2818         (DEALLOCATE): Ditto.
2819         (REALLOCATE): Ditto.
2820         * gm2-libs-coroutines/Debug.def: Removed.
2821         * gm2-libs-coroutines/Debug.mod: Removed.
2823 2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>
2825         * Make-lang.in: Rename target-independent to
2826         target-independent/m2.
2827         * target-independent/readme.txt: Update.
2828         * target-independent/m2/gm2-ebnf.texi: New file.
2829         * target-independent/m2/gpl_v3_without_node.texi: New file.
2830         * target-independent/Builtins.texi: Rename ...
2831         * target-independent/m2/Builtins.texi: ... to this.
2832         * target-independent/SYSTEM-iso.texi: Rename ...
2833         * target-independent/m2/SYSTEM-iso.texi: ... to this.
2834         * target-independent/SYSTEM-pim.texi: Rename ...
2835         * target-independent/m2/SYSTEM-pim.texi: ... to this.
2836         * target-independent/gm2-libs.texi: Rename ...
2837         * target-independent/m2/gm2-libs.texi: ... to this.
2839 2023-03-15  Gaius Mulley  <gaiusmod2@gmail.com>
2841         PR modula2/109125
2842         * gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
2843         * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.
2845 2023-03-14  Gaius Mulley  <gaiusmod2@gmail.com>
2847         PR modula2/109125
2848         * gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int
2849         for bool.
2850         * gm2-libs-ch/termios.c (doSetUnset): Replace int for bool.
2851         * gm2-libs/Builtins.mod (isfinitef): Correct typo in return
2852         statement.
2854 2023-03-13  Gaius Mulley  <gaiusmod2@gmail.com>
2856         PR modula2/109103
2857         * gm2-compiler/M2ALU.def (PushString): New parameter issueError.
2858         * gm2-compiler/M2ALU.mod (PushString): New parameter issueError.
2859         * gm2-compiler/SymbolTable.mod (PushString): New parameter issueError.
2860         * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass
2861         location to interpret_m2_integer.
2862         (m2decl_BuildConstLiteralNumber): New parameter issueError.
2863         * gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool.
2864         (m2expr_IsFalse): Replace int with bool.
2865         (m2expr_AreConstantsEqual): Replace int with bool.
2866         (m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at.
2867         (append_digit): Ditto.
2868         (m2expr_interpret_integer): Add location parameter.
2869         (append_m2_digit): Call m2linemap_internal_error_at.
2870         (m2expr_interpret_m2_integer): Add location parameter.
2871         (m2expr_GetSizeOf): Replace sizeof with SIZE in error message.
2872         * gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual):
2873         Replace int with bool.
2874         (m2expr_AreConstantsEqual): Ditto.
2875         (m2expr_IsFalse): Ditto.
2876         (m2expr_IsTrue): Ditto.
2877         (m2expr_interpret_integer): Add location parameter.
2878         (m2expr_interpret_m2_integer): Add location parameter.
2879         * gm2-gcc/m2linemap.cc (mformat_value): New function.
2880         (expand_format): New function.
2881         (expand_message): New function.
2882         (gm2_internal_error_at): New function.
2883         (m2linemap_internal_error_at): New function.
2884         * gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function.
2885         * gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool.
2886         (M2Options_SetPIM): Ditto.
2887         (M2Options_SetPIM2): Ditto.
2888         (M2Options_SetPIM3): Ditto.
2889         (M2Options_SetPIM4): Ditto.
2890         (M2Options_SetFloatValueCheck): Ditto.
2891         (M2Options_SetWholeValueCheck): Ditto.
2892         (M2Options_GetISO): Ditto.
2893         (M2Options_GetPIM): Ditto.
2894         (M2Options_GetPIM2): Ditto.
2895         (M2Options_GetPIM3): Ditto.
2896         (M2Options_GetPIM4): Ditto.
2897         (M2Options_GetPositiveModFloor): Ditto.
2898         (M2Options_GetFloatValueCheck): Ditto.
2899         (M2Options_GetWholeValueCheck): Ditto.
2900         (M2Options_Setc): Ditto.
2901         (M2Options_Getc): Ditto.
2902         (M2Options_SetPPOnly): Ditto.
2903         (M2Options_GetPPOnly): Ditto.
2904         (M2Options_SetUselist): Ditto.
2905         (M2Options_SetAutoInit): Ditto.
2906         (M2Options_SetPositiveModFloor): Ditto.
2907         (M2Options_SetNilCheck): Ditto.
2908         (M2Options_SetWholeDiv): Ditto.
2909         (M2Options_SetIndex): Ditto.
2910         (M2Options_SetRange): Ditto.
2911         (M2Options_SetReturnCheck): Ditto.
2912         (M2Options_SetCaseCheck): Ditto.
2913         (M2Options_SetCheckAll): Ditto.
2914         (M2Options_SetExceptions): Ditto.
2915         (M2Options_SetStyle): Ditto.
2916         (M2Options_SetPedantic): Ditto.
2917         (M2Options_SetPedanticParamNames): Ditto.
2918         (M2Options_SetPedanticCast): Ditto.
2919         (M2Options_SetExtendedOpaque): Ditto.
2920         (M2Options_SetVerboseUnbounded): Ditto.
2921         (M2Options_SetXCode): Ditto.
2922         (M2Options_SetCompilerDebugging): Ditto.
2923         (M2Options_SetQuadDebugging): Ditto.
2924         (M2Options_SetDebugTraceQuad): Ditto.
2925         (M2Options_SetDebugTraceAPI): Ditto.
2926         (M2Options_SetSources): Ditto.
2927         (M2Options_SetUnboundedByReference): Ditto.
2928         (M2Options_SetDumpSystemExports): Ditto.
2929         (M2Options_SetOptimizing): Ditto.
2930         (M2Options_SetQuiet): Ditto.
2931         (M2Options_SetCC1Quiet): Ditto.
2932         (M2Options_SetCpp): Ditto.
2933         (M2Options_SetSwig): Ditto.
2934         (M2Options_SetWholeProgram): Ditto.
2935         (M2Options_SetDebugFunctionLineNumbers): Ditto.
2936         (M2Options_SetGenerateStatementNote): Ditto.
2937         (M2Options_GetCpp): Ditto.
2938         (M2Options_GetM2g): Ditto.
2939         (M2Options_SetM2g): Ditto.
2940         (M2Options_SetLowerCaseKeywords): Ditto.
2941         (M2Options_SetVerbose): Ditto.
2942         (M2Options_SetUnusedVariableChecking): Ditto.
2943         (M2Options_SetUnusedParameterChecking): Ditto.
2944         (M2Options_SetStrictTypeChecking): Ditto.
2945         (M2Options_SetWall): Ditto.
2946         (M2Options_SetSaveTemps): Ditto.
2947         (M2Options_GetSaveTemps): Ditto.
2948         (M2Options_SetScaffoldStatic): Ditto.
2949         (M2Options_SetScaffoldDynamic): Ditto.
2950         (M2Options_SetScaffoldMain): Ditto.
2951         (M2Options_SetGenModuleList): Ditto.
2952         (M2Options_SetShared): Ditto.
2953         * gm2-libs-ch/M2LINK.c: Ditto.
2954         * gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace
2955         const char * with const void *.
2956         (M2RTS_RegisterModule): Ditto.
2957         (M2RTS_ConstructModules): Ditto.
2958         * gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter
2959         issueError.
2960         * gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter
2961         issueError.
2963 2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>
2965         PR modula2/109089
2966         * gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import.
2967         * gm2-gcc/gcc-consolidation.h (stdbool.h): Include.
2968         * gm2-gcc/init.h (defined): Change block start.
2969         * gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true.
2970         * gm2-gcc/m2block.h: Change int to bool.
2971         * gm2-gcc/m2builtins.cc: Ditto.
2972         * gm2-gcc/m2builtins.h: Ditto.
2973         * gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and
2974         int to bool.
2975         * gm2-gcc/m2convert.h: Change int to bool.
2976         * gm2-gcc/m2decl.cc: Change int to bool.
2977         * gm2-gcc/m2decl.h: Change int to bool.
2978         * gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and
2979         int to bool.
2980         * gm2-gcc/m2expr.h: Change int to bool.
2981         * gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and
2982         int to bool.
2983         * gm2-gcc/m2statement.h: Change int to bool.
2984         * gm2-gcc/m2top.cc: Change int to bool.
2985         * gm2-gcc/m2top.h: Change int to bool.
2986         * gm2-gcc/m2tree.cc: Change int to bool.
2987         * gm2-gcc/m2tree.h: Change int to bool.
2988         * gm2-gcc/m2type.cc: Change int to bool.
2989         * gm2-gcc/m2type.h: Change int to bool.
2990         * gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE.
2991         * gm2-libs/Builtins.def (isfinitef): Change return value from
2992         BOOLEAN to INTEGER.
2993         (isfinite): Ditto.
2994         (isfinitel): Ditto.
2995         * gm2-libs/Builtins.mod (isfinitef): Change return value from
2996         BOOLEAN to INTEGER.
2997         (isfinite): Ditto.
2998         (isfinitel): Ditto.
2999         * mc-boot/GASCII.cc: Rebuild.
3000         * mc-boot/GASCII.h: Rebuild.
3001         * mc-boot/GArgs.cc: Rebuild.
3002         * mc-boot/GArgs.h: Rebuild.
3003         * mc-boot/GAssertion.cc: Rebuild.
3004         * mc-boot/GAssertion.h: Rebuild.
3005         * mc-boot/GBreak.cc: Rebuild.
3006         * mc-boot/GBreak.h: Rebuild.
3007         * mc-boot/GCOROUTINES.h: Rebuild.
3008         * mc-boot/GCmdArgs.cc: Rebuild.
3009         * mc-boot/GCmdArgs.h: Rebuild.
3010         * mc-boot/GDebug.cc: Rebuild.
3011         * mc-boot/GDebug.h: Rebuild.
3012         * mc-boot/GDynamicStrings.cc: Rebuild.
3013         * mc-boot/GDynamicStrings.h: Rebuild.
3014         * mc-boot/GEnvironment.cc: Rebuild.
3015         * mc-boot/GEnvironment.h: Rebuild.
3016         * mc-boot/GFIO.cc: Rebuild.
3017         * mc-boot/GFIO.h: Rebuild.
3018         * mc-boot/GFormatStrings.cc: Rebuild.
3019         * mc-boot/GFormatStrings.h: Rebuild.
3020         * mc-boot/GFpuIO.cc: Rebuild.
3021         * mc-boot/GFpuIO.h: Rebuild.
3022         * mc-boot/GIO.cc: Rebuild.
3023         * mc-boot/GIO.h: Rebuild.
3024         * mc-boot/GIndexing.cc: Rebuild.
3025         * mc-boot/GIndexing.h: Rebuild.
3026         * mc-boot/GM2Dependent.cc: Rebuild.
3027         * mc-boot/GM2Dependent.h: Rebuild.
3028         * mc-boot/GM2EXCEPTION.cc: Rebuild.
3029         * mc-boot/GM2EXCEPTION.h: Rebuild.
3030         * mc-boot/GM2LINK.h: Rebuild.
3031         * mc-boot/GM2RTS.cc: Rebuild.
3032         * mc-boot/GM2RTS.h: Rebuild.
3033         * mc-boot/GMemUtils.cc: Rebuild.
3034         * mc-boot/GMemUtils.h: Rebuild.
3035         * mc-boot/GNumberIO.cc: Rebuild.
3036         * mc-boot/GNumberIO.h: Rebuild.
3037         * mc-boot/GPushBackInput.cc: Rebuild.
3038         * mc-boot/GPushBackInput.h: Rebuild.
3039         * mc-boot/GRTExceptions.cc: Rebuild.
3040         * mc-boot/GRTExceptions.h: Rebuild.
3041         * mc-boot/GRTco.h: Rebuild.
3042         * mc-boot/GRTentity.h: Rebuild.
3043         * mc-boot/GRTint.cc: Rebuild.
3044         * mc-boot/GRTint.h: Rebuild.
3045         * mc-boot/GSArgs.cc: Rebuild.
3046         * mc-boot/GSArgs.h: Rebuild.
3047         * mc-boot/GSFIO.cc: Rebuild.
3048         * mc-boot/GSFIO.h: Rebuild.
3049         * mc-boot/GSYSTEM.h: Rebuild.
3050         * mc-boot/GSelective.h: Rebuild.
3051         * mc-boot/GStdIO.cc: Rebuild.
3052         * mc-boot/GStdIO.h: Rebuild.
3053         * mc-boot/GStorage.cc: Rebuild.
3054         * mc-boot/GStorage.h: Rebuild.
3055         * mc-boot/GStrCase.cc: Rebuild.
3056         * mc-boot/GStrCase.h: Rebuild.
3057         * mc-boot/GStrIO.cc: Rebuild.
3058         * mc-boot/GStrIO.h: Rebuild.
3059         * mc-boot/GStrLib.cc: Rebuild.
3060         * mc-boot/GStrLib.h: Rebuild.
3061         * mc-boot/GStringConvert.cc: Rebuild.
3062         * mc-boot/GStringConvert.h: Rebuild.
3063         * mc-boot/GSysExceptions.h: Rebuild.
3064         * mc-boot/GSysStorage.cc: Rebuild.
3065         * mc-boot/GSysStorage.h: Rebuild.
3066         * mc-boot/GTimeString.cc: Rebuild.
3067         * mc-boot/GTimeString.h: Rebuild.
3068         * mc-boot/GUnixArgs.h: Rebuild.
3069         * mc-boot/Galists.cc: Rebuild.
3070         * mc-boot/Galists.h: Rebuild.
3071         * mc-boot/Gdecl.cc: Rebuild.
3072         * mc-boot/Gdecl.h: Rebuild.
3073         * mc-boot/Gdtoa.h: Rebuild.
3074         * mc-boot/Gerrno.h: Rebuild.
3075         * mc-boot/Gkeyc.cc: Rebuild.
3076         * mc-boot/Gkeyc.h: Rebuild.
3077         * mc-boot/Gldtoa.h: Rebuild.
3078         * mc-boot/Glibc.h: Rebuild.
3079         * mc-boot/Glibm.h: Rebuild.
3080         * mc-boot/Glists.cc: Rebuild.
3081         * mc-boot/Glists.h: Rebuild.
3082         * mc-boot/GmcComment.cc: Rebuild.
3083         * mc-boot/GmcComment.h: Rebuild.
3084         * mc-boot/GmcComp.cc: Rebuild.
3085         * mc-boot/GmcComp.h: Rebuild.
3086         * mc-boot/GmcDebug.cc: Rebuild.
3087         * mc-boot/GmcDebug.h: Rebuild.
3088         * mc-boot/GmcError.cc: Rebuild.
3089         * mc-boot/GmcError.h: Rebuild.
3090         * mc-boot/GmcFileName.cc: Rebuild.
3091         * mc-boot/GmcFileName.h: Rebuild.
3092         * mc-boot/GmcLexBuf.cc: Rebuild.
3093         * mc-boot/GmcLexBuf.h: Rebuild.
3094         * mc-boot/GmcMetaError.cc: Rebuild.
3095         * mc-boot/GmcMetaError.h: Rebuild.
3096         * mc-boot/GmcOptions.cc: Rebuild.
3097         * mc-boot/GmcOptions.h: Rebuild.
3098         * mc-boot/GmcPreprocess.cc: Rebuild.
3099         * mc-boot/GmcPreprocess.h: Rebuild.
3100         * mc-boot/GmcPretty.cc: Rebuild.
3101         * mc-boot/GmcPretty.h: Rebuild.
3102         * mc-boot/GmcPrintf.cc: Rebuild.
3103         * mc-boot/GmcPrintf.h: Rebuild.
3104         * mc-boot/GmcQuiet.cc: Rebuild.
3105         * mc-boot/GmcQuiet.h: Rebuild.
3106         * mc-boot/GmcReserved.cc: Rebuild.
3107         * mc-boot/GmcReserved.h: Rebuild.
3108         * mc-boot/GmcSearch.cc: Rebuild.
3109         * mc-boot/GmcSearch.h: Rebuild.
3110         * mc-boot/GmcStack.cc: Rebuild.
3111         * mc-boot/GmcStack.h: Rebuild.
3112         * mc-boot/GmcStream.cc: Rebuild.
3113         * mc-boot/GmcStream.h: Rebuild.
3114         * mc-boot/Gmcflex.h: Rebuild.
3115         * mc-boot/Gmcp1.cc: Rebuild.
3116         * mc-boot/Gmcp1.h: Rebuild.
3117         * mc-boot/Gmcp2.cc: Rebuild.
3118         * mc-boot/Gmcp2.h: Rebuild.
3119         * mc-boot/Gmcp3.cc: Rebuild.
3120         * mc-boot/Gmcp3.h: Rebuild.
3121         * mc-boot/Gmcp4.cc: Rebuild.
3122         * mc-boot/Gmcp4.h: Rebuild.
3123         * mc-boot/Gmcp5.cc: Rebuild.
3124         * mc-boot/Gmcp5.h: Rebuild.
3125         * mc-boot/GnameKey.cc: Rebuild.
3126         * mc-boot/GnameKey.h: Rebuild.
3127         * mc-boot/GsymbolKey.cc: Rebuild.
3128         * mc-boot/GsymbolKey.h: Rebuild.
3129         * mc-boot/Gtermios.h: Rebuild.
3130         * mc-boot/Gtop.cc: Rebuild.
3131         * mc-boot/Gvarargs.cc: Rebuild.
3132         * mc-boot/Gvarargs.h: Rebuild.
3133         * mc-boot/Gwlists.cc: Rebuild.
3134         * mc-boot/Gwlists.h: Rebuild.
3135         * mc-boot/Gwrapc.h: Rebuild.
3136         * mc/decl.mod (doBoolC): New procedure.
3137         (doBaseC): Call doBoolC.
3138         * mc/keyc.mod: Import useBool.
3139         (genBool): New procedure.
3140         (genDefs): Call genBool.
3141         * mc/mcOptions.def (useBool): New procedure.
3142         * mc/mcOptions.mod (useBool): New procedure.
3143         (useBoolType): New variable.
3144         (optionIs): Assign useBoolType to TRUE.
3146 2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>
3148         * mc-boot-ch/GBuiltins.cc: New file.
3149         * mc-boot-ch/Gdtoa.cc: New file.
3150         * mc-boot-ch/Gerrno.cc: New file.
3151         * mc-boot-ch/Gldtoa.cc: New file.
3152         * mc-boot-ch/Gm2rtsdummy.cc: New file.
3153         * mc-boot/GASCII.cc: New file.
3154         * mc-boot/GArgs.cc: New file.
3155         * mc-boot/GAssertion.cc: New file.
3156         * mc-boot/GBreak.cc: New file.
3157         * mc-boot/GCmdArgs.cc: New file.
3158         * mc-boot/GDebug.cc: New file.
3159         * mc-boot/GDynamicStrings.cc: New file.
3160         * mc-boot/GEnvironment.cc: New file.
3161         * mc-boot/GFIO.cc: New file.
3162         * mc-boot/GFormatStrings.cc: New file.
3163         * mc-boot/GFpuIO.cc: New file.
3164         * mc-boot/GIO.cc: New file.
3165         * mc-boot/GIndexing.cc: New file.
3166         * mc-boot/GM2Dependent.cc: New file.
3167         * mc-boot/GM2EXCEPTION.cc: New file.
3168         * mc-boot/GM2RTS.cc: New file.
3169         * mc-boot/GMemUtils.cc: New file.
3170         * mc-boot/GNumberIO.cc: New file.
3171         * mc-boot/GPushBackInput.cc: New file.
3172         * mc-boot/GRTExceptions.cc: New file.
3173         * mc-boot/GRTint.cc: New file.
3174         * mc-boot/GSArgs.cc: New file.
3175         * mc-boot/GSFIO.cc: New file.
3176         * mc-boot/GStdIO.cc: New file.
3177         * mc-boot/GStorage.cc: New file.
3178         * mc-boot/GStrCase.cc: New file.
3179         * mc-boot/GStrIO.cc: New file.
3180         * mc-boot/GStrLib.cc: New file.
3181         * mc-boot/GStringConvert.cc: New file.
3182         * mc-boot/GSysStorage.cc: New file.
3183         * mc-boot/GTimeString.cc: New file.
3184         * mc-boot/Galists.cc: New file.
3185         * mc-boot/Gdecl.cc: New file.
3186         * mc-boot/Gkeyc.cc: New file.
3187         * mc-boot/Glists.cc: New file.
3188         * mc-boot/GmcComment.cc: New file.
3189         * mc-boot/GmcComp.cc: New file.
3190         * mc-boot/GmcDebug.cc: New file.
3191         * mc-boot/GmcError.cc: New file.
3192         * mc-boot/GmcFileName.cc: New file.
3193         * mc-boot/GmcLexBuf.cc: New file.
3194         * mc-boot/GmcMetaError.cc: New file.
3195         * mc-boot/GmcOptions.cc: New file.
3196         * mc-boot/GmcPreprocess.cc: New file.
3197         * mc-boot/GmcPretty.cc: New file.
3198         * mc-boot/GmcPrintf.cc: New file.
3199         * mc-boot/GmcQuiet.cc: New file.
3200         * mc-boot/GmcReserved.cc: New file.
3201         * mc-boot/GmcSearch.cc: New file.
3202         * mc-boot/GmcStack.cc: New file.
3203         * mc-boot/GmcStream.cc: New file.
3204         * mc-boot/Gmcp1.cc: New file.
3205         * mc-boot/Gmcp2.cc: New file.
3206         * mc-boot/Gmcp3.cc: New file.
3207         * mc-boot/Gmcp4.cc: New file.
3208         * mc-boot/Gmcp5.cc: New file.
3209         * mc-boot/GnameKey.cc: New file.
3210         * mc-boot/GsymbolKey.cc: New file.
3211         * mc-boot/Gtop.cc: New file.
3212         * mc-boot/Gvarargs.cc: New file.
3213         * mc-boot/Gwlists.cc: New file.
3214         * pge-boot/GASCII.cc: New file.
3215         * pge-boot/GArgs.cc: New file.
3216         * pge-boot/GAssertion.cc: New file.
3217         * pge-boot/GBuiltins.cc: New file.
3218         * pge-boot/GDebug.cc: New file.
3219         * pge-boot/GDynamicStrings.cc: New file.
3220         * pge-boot/GFIO.cc: New file.
3221         * pge-boot/GIO.cc: New file.
3222         * pge-boot/GIndexing.cc: New file.
3223         * pge-boot/GLists.cc: New file.
3224         * pge-boot/GM2Dependent.cc: New file.
3225         * pge-boot/GM2EXCEPTION.cc: New file.
3226         * pge-boot/GM2LINK.cc: New file.
3227         * pge-boot/GM2RTS.cc: New file.
3228         * pge-boot/GNameKey.cc: New file.
3229         * pge-boot/GNumberIO.cc: New file.
3230         * pge-boot/GOutput.cc: New file.
3231         * pge-boot/GPushBackInput.cc: New file.
3232         * pge-boot/GRTExceptions.cc: New file.
3233         * pge-boot/GRTco.cc: New file.
3234         * pge-boot/GSFIO.cc: New file.
3235         * pge-boot/GSYSTEM.cc: New file.
3236         * pge-boot/GSelective.cc: New file.
3237         * pge-boot/GStdIO.cc: New file.
3238         * pge-boot/GStorage.cc: New file.
3239         * pge-boot/GStrCase.cc: New file.
3240         * pge-boot/GStrIO.cc: New file.
3241         * pge-boot/GStrLib.cc: New file.
3242         * pge-boot/GSymbolKey.cc: New file.
3243         * pge-boot/GSysExceptions.cc: New file.
3244         * pge-boot/GSysStorage.cc: New file.
3245         * pge-boot/Gabort.cc: New file.
3246         * pge-boot/Gbnflex.cc: New file.
3247         * pge-boot/Gcbuiltin.cc: New file.
3248         * pge-boot/Gdtoa.cc: New file.
3249         * pge-boot/Gerrno.cc: New file.
3250         * pge-boot/Gldtoa.cc: New file.
3251         * pge-boot/Glibc.cc: New file.
3252         * pge-boot/Glibm.cc: New file.
3253         * pge-boot/Gmcrts.cc: New file.
3254         * pge-boot/Gpge.cc: New file.
3255         * pge-boot/Gwrapc.cc: New file.
3256         * pge-boot/main.cc: New file.
3257         * pge-boot/network.cc: New file.
3259 2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>
3261         * Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
3262         (MC-BOOT-C): Rename to MC-BOOT-CC.
3263         (BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
3264         (BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
3265         (m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
3266         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
3267         * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
3268         source file extension to .cc.
3269         (m2/gm2-ppg-boot/main.o): Ditto.
3270         (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
3271         to .cc.
3272         (m2/gm2-pg-boot/main.o): Ditto.
3273         (m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
3274         (m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
3275         (m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
3276         (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
3277         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
3278         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
3279         (m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
3280         (m2/gm2-pge-boot/main.o): Ditto.
3281         (mc-push): Ditto.
3282         (mc-clean): Ditto.
3283         (mc-stage2): Ditto.
3284         ((objdir)/m2/mc-boot-gen): Ditto.
3285         (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
3286         (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
3287         * mc-boot-ch/GBuiltins.c: Correct comment and rename.
3288         * mc-boot-ch/Gdtoa.c: Correct comment and rename.
3289         * mc-boot-ch/Gldtoa.c: Correct comment and rename
3290         * mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
3291         * mc-boot-ch/Gerrno.c: Rename.
3292         * mc-boot-ch/GRTco.c: Removed.
3293         * mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
3294         * mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
3295         * mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
3296         * mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
3297         * mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
3298         * mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
3299         * mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
3300         * mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
3301         * mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
3302         * mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
3303         * mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
3304         * mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
3305         * mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
3306         * mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
3307         * mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
3308         * mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
3309         * mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
3310         * mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
3311         * mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
3312         * mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
3313         * mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
3314         * mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
3315         * mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
3316         * mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
3317         * mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
3318         * mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
3319         * mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
3320         * mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
3321         * mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
3322         * mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
3323         * mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
3324         * mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
3325         * mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
3326         * mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
3327         * mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
3328         * mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
3329         * mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
3330         * mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
3331         * mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
3332         * mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
3333         * mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
3334         * mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
3335         * mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
3336         * mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
3337         * mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
3338         * mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
3339         * mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
3340         * mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
3341         * mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
3342         * mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
3343         * mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
3344         * mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
3345         * mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
3346         * mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
3347         * mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
3348         * mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
3349         * mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
3350         * mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
3351         * mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
3352         * mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
3353         * mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
3354         * pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
3355         * pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
3356         * pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
3357         * pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
3358         * pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
3359         * pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
3360         * pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
3361         * pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
3362         * pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
3363         * pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
3364         * pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
3365         * pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
3366         * pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
3367         * pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
3368         * pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
3369         * pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
3370         * pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
3371         * pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
3372         * pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
3373         * pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
3374         * pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
3375         * pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
3376         * pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
3377         * pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
3378         * pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
3379         * pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
3380         * pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
3381         * pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
3382         * pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
3383         * pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
3384         * pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
3385         * pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
3386         * pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
3387         * pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
3388         * pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
3389         * pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
3390         * pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
3391         * pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
3392         * pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
3393         * pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
3394         * pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
3395         * pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
3396         * pge-boot/README: Correct description.
3397         * pge-boot/main.c: Rename to pge-boot/main.cc.
3398         * pge-boot/network.c: Rename to pge-boot/network.cc.
3400 2023-02-28  Gaius Mulley  <gaiusmod2@gmail.com>
3402         PR modula2/108956
3403         * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to
3404         add the --suppress-noreturn option.
3405         * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New
3406         specific rule to add the --suppress-noreturn option.
3407         (m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New
3408         specific rule to add the --suppress-noreturn option.
3409         (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
3410         (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New
3411         specific rule to add the --suppress-noreturn option.
3412         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
3413         * gm2-libs-ch/UnixArgs.cc (LIBNAME): New define.
3414         (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
3415         * gm2-libs-ch/dtoa.cc (LIBNAME): New define.
3416         (_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule.
3417         * gm2-libs-ch/ldtoa.cc (LIBNAME): New define.
3418         (_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule.
3419         * pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname
3420         parameter.
3421         * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname
3422         parameter.
3423         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove.
3424         * pge-boot/GUnixArgs.cc (LIBNAME): New define.
3425         (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
3426         * gm2-libs/RTint.def (AttachVector): Rename parameter.
3427         * mc-boot/GDynamicStrings.c: Rebuilt.
3428         * mc-boot/GFIO.c: Rebuilt.
3429         * mc-boot/GIndexing.c: Rebuilt.
3430         * mc-boot/GM2EXCEPTION.c: Rebuilt.
3431         * mc-boot/GPushBackInput.c: Rebuilt.
3432         * mc-boot/GRTExceptions.c: Rebuilt.
3433         * mc-boot/GRTint.c: Rebuilt.
3434         * mc-boot/GRTint.h: Rebuilt.
3435         * mc-boot/GStdIO.c: Rebuilt.
3436         * mc-boot/GStringConvert.c: Rebuilt.
3437         * mc-boot/GSysStorage.c: Rebuilt.
3438         * mc-boot/Gdecl.c: Rebuilt.
3439         * mc-boot/Gkeyc.c: Rebuilt.
3440         * mc-boot/GmcComment.c: Rebuilt.
3441         * mc-boot/GmcComp.c: Rebuilt.
3442         * mc-boot/GmcDebug.c: Rebuilt.
3443         * mc-boot/GmcMetaError.c: Rebuilt.
3444         * mc-boot/GmcOptions.c: Rebuilt.
3445         * mc-boot/GmcOptions.h: Rebuilt.
3446         * mc-boot/GmcStack.c: Rebuilt.
3447         * mc-boot/GnameKey.c: Rebuilt.
3448         * mc-boot/GsymbolKey.c: Rebuilt.
3449         * mc/decl.mod:: Rebuilt.
3450         * mc/mcOptions.def: Rebuilt.
3451         * mc/mcOptions.mod:: Rebuilt.
3452         * pge-boot/GDynamicStrings.c: Rebuilt.
3453         * pge-boot/GFIO.c: Rebuilt.
3454         * pge-boot/GIndexing.c: Rebuilt.
3455         * pge-boot/GM2EXCEPTION.c: Rebuilt.
3456         * pge-boot/GM2RTS.c: Rebuilt.
3457         * pge-boot/GNameKey.c: Rebuilt.
3458         * pge-boot/GPushBackInput.c: Rebuilt.
3459         * pge-boot/GRTExceptions.c: Rebuilt.
3460         * pge-boot/GStdIO.c: Rebuilt.
3461         * pge-boot/GSymbolKey.c: Rebuilt.
3462         * pge-boot/GSysStorage.c: Rebuilt.
3464 2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>
3466         PR modula2/108261
3467         * Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
3468         remove.  DynamicPath.def add.
3469         (GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
3470         DynamicPath.mod add.
3471         * Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
3472         (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
3473         dependency.
3474         (PGE-DEF): New definition.
3475         (BUILD-BOOT-PG-H): New dependency.
3476         (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
3477         dependency.
3478         (BUILD-BOOT-PGE-H): New dependency.
3479         (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
3480         dependency.
3481         (GM2PATH): Add pathname entries.
3482         (m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
3483         dependency.
3484         (m2/boot-bin/mc-opt$(exeext)): Fix -I path.
3485         * gm2-compiler/DynamicStringPath.def: Renamed module to
3486         DynamicPath.
3487         (GetUserPath): Remove.
3488         (GetSystemPath): Remove.
3489         (SetUserPath): Remove.
3490         (SetSystemPath): Remove.
3491         (DumpPath): New procedure definition.
3492         * gm2-compiler/DynamicStringPath.mod: Renamed module to
3493         DynamicPath.
3494         (GetUserPath): Remove.
3495         (GetSystemPath): Remove.
3496         (SetUserPath): Remove.
3497         (SetSystemPath): Remove.
3498         (DumpPath): Remove Debugging conditional.
3499         * gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
3500         GetLibName.
3501         (Debugging): New declaration.
3502         (GetFullSymName): Re-implemented to prefix (mange) libname
3503         to any extern variable/procedure which is IsExportQualified.
3504         * gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
3505         * gm2-compiler/M2Graph.mod (resolveImports): Add libname.
3506         * gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
3507         (GetM2Prefix): New procedure function.
3508         (SetM2PathName): New procedure.
3509         (GetM2PathName): New procedure function.
3510         * gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
3511         (GetM2Prefix): New procedure function implemented.
3512         (SetM2PathName): New procedure implemented.
3513         (GetM2PathName): New procedure function implemented.
3514         (RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
3515         * gm2-compiler/M2Quads.mod: Import GetLibName.
3516         (SafeRequestSym) Pass result of GetLibName to RequestDependant.
3517         (callRequestDependant): Add libname as a parameter.
3518         (BuildM2InitFunction): Add libname as a parameter.
3519         (BuildM2FiniFunction): Add libname as a parameter.
3520         (BuildM2CtorFunction): Add libname as a parameter.
3521         * gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
3522         if a definition source was found.
3523         * gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
3524         (FindSourceDefFile): Add named library parameter.
3525         (FindSourceModFile): Add named library parameter.
3526         * gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
3527         (FindSourceDefFile): Add named library parameter.
3528         (FindSourceModFile): Add named library parameter.
3529         * gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
3530         libname parameter.
3531         (PutLibName): New procedure.
3532         (GetLibName): New procedure function.
3533         * gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
3534         libname parameter.
3535         (GenName): Add libname parameter.
3536         (InitCtorFields): Add moduleSym as a parameter.
3537         (PutCtorExtern): Add libname parameter to GenName.
3538         * gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
3539         (_M2_DynamicPath_init): ...to this.
3540         (_M2_PathName_init): Added.
3541         * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
3542         Add m2pim as the manged component of the exported symbol.
3543         (m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
3544         * gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
3545         (M2Options_GetM2Prefix): New function.
3546         (M2Options_SetM2PathName): New function.
3547         (M2Options_GetM2PathName): New function.
3548         * gm2-lang.cc (push_back_Ipath): New function.
3549         (add_one_import_path): New function.
3550         (gm2_langhook_handle_option): Record -I component.  Call
3551         SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
3552         component.  Call SetM2Prefix when -fm2-prefix= is seen.
3553         (gm2_langhook_post_options): Iterative over pathname entries
3554         and call SetM2PathName, SetSearchPath as appropriate.
3555         * gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
3556         (DeconstructModules): Add libname parameter.
3557         (RegisterModule): Add libname parameter.
3558         (RequestDependant): Add libname parameter.
3559         * gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
3560         (DeconstructModules): Add libname parameter.
3561         (RegisterModule): Add libname parameter.
3562         (RequestDependant): Add libname parameter.
3563         * gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
3564         (DeconstructModules): Add libname parameter.
3565         (RegisterModule): Add libname parameter.
3566         (RequestDependant): Add libname parameter.
3567         * gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
3568         (DeconstructModules): Add libname parameter.
3569         (RegisterModule): Add libname parameter.
3570         (RequestDependant): Add libname parameter.
3571         * gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
3572         (DeconstructModules): Add libname parameter.
3573         (RegisterModule): Add libname parameter.
3574         (RequestDependant): Add libname parameter.
3575         * gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
3576         (DeconstructModules): Add libname parameter.
3577         (RegisterModule): Add libname parameter.
3578         (RequestDependant): Add libname parameter.
3579         * gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
3580         (DeconstructModules): Add libname parameter.
3581         (RegisterModule): Add libname parameter.
3582         (RequestDependant): Add libname parameter.
3583         * gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
3584         (DeconstructModules): Add libname parameter.
3585         (RegisterModule): Add libname parameter.
3586         (RequestDependant): Add libname parameter.
3587         * gm2-libs/RTint.mod (FindVector): Rename variables.
3588         (initInputVector): Rename variables.
3589         (initOutputVector): Rename variables.
3590         (InitTimeVector): Rename variables.
3591         (FindVectorNo): Rename variables.
3592         (FindPendingVector): Rename variables.
3593         (ReArmTimeVector): Rename variables.
3594         (GetTimeVector): Rename variables.
3595         (AttachVector): Rename variables.
3596         (AttachVector): Rename variables.
3597         (IncludeVector): Rename variables.
3598         (ExcludeVector): Rename variables.
3599         (AddFd): Rename variables.
3600         (AddFd): Rename variables.
3601         (DumpPendingQueue): Rename variables.
3602         (stop): Remove.
3603         (activatePending): Rename variables.
3604         (Listen): Rename variables.
3605         * gm2-libs/libc.def (snprintf): New function.
3606         * gm2-libs/sckt.def: Change all exported identifiers to be
3607         export qualified.
3608         * gm2spec.cc (push_back_Ipath): New function.
3609         (add_m2_I_path): New function.
3610         (lang_specific_driver): Skip -fm2-pathname= and remember pathname.
3611         Skip -I and record the path and current pathname.  Call add_m2_I_path.
3612         * lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
3613         * lang.opt (-fm2-pathname=): New entry.
3614         (-fm2-pathname): New entry.
3615         (-fm2-prefix=): New entry.
3616         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
3617         (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
3618         * mc-boot-ch/Glibc.c (libc_snprintf): New function.
3619         * mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
3620         (M2RTS_RegisterModule): Changed prototype.
3621         * mc-boot/GDynamicStrings.c: Rebuild.
3622         * mc-boot/GFIO.c: Rebuild.
3623         * mc-boot/GIndexing.c: Rebuild.
3624         * mc-boot/GM2Dependent.c: Rebuild.
3625         * mc-boot/GM2Dependent.h: Rebuild.
3626         * mc-boot/GM2EXCEPTION.c: Rebuild.
3627         * mc-boot/GM2RTS.c: Rebuild.
3628         * mc-boot/GM2RTS.h: Rebuild.
3629         * mc-boot/GPushBackInput.c: Rebuild.
3630         * mc-boot/GRTExceptions.c: Rebuild.
3631         * mc-boot/GRTint.c: Rebuild.
3632         * mc-boot/GStdIO.c: Rebuild.
3633         * mc-boot/GStringConvert.c: Rebuild.
3634         * mc-boot/GSysStorage.c: Rebuild.
3635         * mc-boot/Gdecl.c: Rebuild.
3636         * mc-boot/Gkeyc.c: Rebuild.
3637         * mc-boot/Glibc.h: Rebuild.
3638         * mc-boot/GmcComment.c: Rebuild.
3639         * mc-boot/GmcComp.c: Rebuild.
3640         * mc-boot/GmcDebug.c: Rebuild.
3641         * mc-boot/GmcMetaError.c: Rebuild.
3642         * mc-boot/GmcStack.c: Rebuild.
3643         * mc-boot/GnameKey.c: Rebuild.
3644         * mc-boot/GsymbolKey.c: Rebuild.
3645         * pge-boot/GASCII.c: Rebuild.
3646         * pge-boot/GArgs.c: Rebuild.
3647         * pge-boot/GAssertion.c: Rebuild.
3648         * pge-boot/GDebug.c: Rebuild.
3649         * pge-boot/GDynamicStrings.c: Rebuild.
3650         * pge-boot/GFIO.c: Rebuild.
3651         * pge-boot/GIO.c: Rebuild.
3652         * pge-boot/GIndexing.c: Rebuild.
3653         * pge-boot/GLists.c: Rebuild.
3654         * pge-boot/GM2Dependent.c: Rebuild.
3655         * pge-boot/GM2Dependent.h: Rebuild.
3656         * pge-boot/GM2EXCEPTION.c: Rebuild.
3657         * pge-boot/GM2RTS.c: Rebuild.
3658         * pge-boot/GM2RTS.h: Rebuild.
3659         * pge-boot/GNameKey.c: Rebuild.
3660         * pge-boot/GNumberIO.c: Rebuild.
3661         * pge-boot/GOutput.c: Rebuild.
3662         * pge-boot/GPushBackInput.c: Rebuild.
3663         * pge-boot/GRTExceptions.c: Rebuild.
3664         * pge-boot/GSFIO.c: Rebuild.
3665         * pge-boot/GStdIO.c: Rebuild.
3666         * pge-boot/GStorage.c: Rebuild.
3667         * pge-boot/GStrCase.c: Rebuild.
3668         * pge-boot/GStrIO.c: Rebuild.
3669         * pge-boot/GStrLib.c: Rebuild.
3670         * pge-boot/GSymbolKey.c: Rebuild.
3671         * pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
3672         (_M2_SysExceptions_fini): ... to this.
3673         * pge-boot/GSysStorage.c: Rebuild.
3674         (_M2_SysStorage_finish): Rename this...
3675         (_M2_SysStorage_fini): ... to this.
3676         * pge-boot/GUnixArgs.cc: New file.
3677         * pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
3678         (_M2_bnflex_fini): ... to this.
3679         * pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
3680         (_M2_errno_fini): ... to this.
3681         * pge-boot/Glibc.c (libc_snprintf): New function.
3682         * pge-boot/Glibc.h (libc_snprintf): New prototype.
3683         * pge-boot/Gpge.c (_M2_pge_finish): Rename this...
3684         (_M2_pge_fini): ... to this.
3685         * pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
3686         (_M2_termios_fini): ... to this.
3687         * pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
3688         (_M2_RTExceptions_fini): ... to this.
3689         (_M2_M2EXCEPTION_finish): Rename this...
3690         (_M2_M2EXCEPTION_fini): ... to this.
3691         (_M2_M2RTS_finish): Rename this...
3692         (_M2_M2RTS_fini): ... to this.
3693         (_M2_SysExceptions_finish): Rename this...
3694         (_M2_SysExceptions_fini): ... to this.
3695         (_M2_StrLib_finish): Rename this...
3696         (_M2_StrLib_fini): ... to this.
3697         (_M2_errno_finish): Rename this...
3698         (_M2_errno_fini): ... to this.
3699         (_M2_termios_finish): Rename this...
3700         (_M2_termios_fini): ... to this.
3701         (_M2_IO_finish): Rename this...
3702         (_M2_IO_fini): ... to this.
3703         (_M2_StdIO_finish): Rename this...
3704         (_M2_StdIO_fini): ... to this.
3705         (_M2_Debug_finish): Rename this...
3706         (_M2_Debug_fini): ... to this.
3707         (_M2_SysStorage_finish): Rename this...
3708         (_M2_SysStorage_fini): ... to this.
3709         (_M2_Storage_finish): Rename this...
3710         (_M2_Storage_fini): ... to this.
3711         (_M2_StrIO_finish): Rename this...
3712         (_M2_StrIO_fini): ... to this.
3713         (_M2_DynamicStrings_finish): Rename this...
3714         (_M2_DynamicStrings_fini): ... to this.
3715         (_M2_Assertion_finish): Rename this...
3716         (_M2_Assertion_fini): ... to this.
3717         (_M2_Indexing_finish): Rename this...
3718         (_M2_Indexing_fini): ... to this.
3719         (_M2_NameKey_finish): Rename this...
3720         (_M2_NameKey_fini): ... to this.
3721         (_M2_NumberIO_finish): Rename this...
3722         (_M2_NumberIO_fini): ... to this.
3723         (_M2_PushBackInput_finish): Rename this...
3724         (_M2_PushBackInput_fini): ... to this.
3725         (_M2_SymbolKey_finish): Rename this...
3726         (_M2_SymbolKey_fini): ... to this.
3727         (_M2_UnixArgs_finish): Rename this...
3728         (_M2_UnixArgs_fini): ... to this.
3729         (_M2_FIO_finish): Rename this...
3730         (_M2_FIO_fini): ... to this.
3731         (_M2_SFIO_finish): Rename this...
3732         (_M2_SFIO_fini): ... to this.
3733         (_M2_StrCase_finish): Rename this...
3734         (_M2_StrCase_fini): ... to this.
3735         (_M2_bnflex_finish): Rename this...
3736         (_M2_bnflex_fini): ... to this.
3737         (_M2_Lists_finish): Rename this...
3738         (_M2_Lists_fini): ... to this.
3739         (_M2_Args_finish): Rename this...
3740         (_M2_Args_fini): ... to this.
3741         (_M2_Output_finish): Rename this...
3742         (_M2_Output_fini): ... to this.
3743         (_M2_pge_finish): Rename this...
3744         (_M2_pge_fini): ... to this.
3745         * plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
3746         procedure names to their name mangled counterparts.
3747         * gm2-libs-iso/wrapsock.c: Removed.
3748         * gm2-libs-iso/wraptime.c: Removed.
3749         * mc-boot/Gpth.h: Removed.
3750         * gm2-compiler/PathName.def: New file.
3751         * gm2-compiler/PathName.mod: New file.
3752         * gm2-compiler/DynamicPath.def: New file.
3753         * gm2-compiler/DynamicPath.mod: New file.
3755 2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>
3757         PR modula2/108135
3758         * gm2-compiler/M2Search.mod (DSdbEnter): Comment out.
3759         (DSdbExit): Comment out.
3761 2023-02-06  Co-Authored by: Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3763         PR modula2/107234
3764         * m2pp.cc (m2pp_integer_cst): Use
3765         HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier.
3767 2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>
3769         * gm2-compiler/M2Preprocess.mod (BaseName): Comment out.
3770         * gm2-lang.cc (opt): Remove.
3771         * gm2spec.cc (add_include): Remove.
3772         (full_libraries): Remove.
3773         (concat_option): Remove.
3775 2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>
3777         * Make-lang.in (TEXISRC): Remove m2/images/gnu.eps.
3778         (RSTSRC): Remove m2/images/gnu.eps.
3779         (doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps.
3780         (doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps.
3781         (M2_PDFFILES): New definition.
3782         (m2.install-pdf): New rule.
3783         (m2.pod): Add $(objdir)/m2/images/gnu.eps.
3784         (m2.info): Add $(objdir)/m2/images/gnu.eps.
3785         (m2.html): New rule.
3786         (m2/gpl_v3_without_node.texi): New rule.
3787         (plugin/m2rte$(soext)): Simplify mkinstalldirs.
3788         (cc1gm2$(exeext)): Ditto.
3789         (m2/stage1/cc1gm2$(exeext)): Ditto.
3790         (m2/gm2-gcc/%.o): Ditto.
3791         (m2/gm2-gcc/rtegraph.o): Ditto.
3792         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
3793         (m2/mc-boot/$(SRC_PREFIX)%.o):Ditto.
3794         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
3795         (m2/mc-boot/main.o): Ditto.
3796         (m2/gm2-libs-boot/%.o): Ditto.
3797         (m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto.
3798         (m2/gm2-libs-boot/RTcodummy.o): Ditto.
3799         (m2/gm2-libs-boot/wrapc.o): Ditto.
3800         (m2/gm2-libs-boot/M2LINK.o): Ditto.
3801         (m2/gm2-libs-boot/UnixArgs.o): Ditto.
3802         (m2/gm2-libs-boot/choosetemp.o): Ditto.
3803         (m2/gm2-libs-boot/errno.o): Ditto.
3804         (m2/gm2-libs-boot/dtoa.o): Ditto.
3805         (m2/gm2-libs-boot/ldtoa.o): Ditto.
3806         (m2/gm2-libs-boot/termios.o): Ditto.
3807         (m2/gm2-libs-boot/SysExceptions.o): Ditto.
3808         (m2/gm2-libs-boot/SysStorage.o): Ditto.
3809         (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
3810         (m2/gm2-compiler-boot/M2Error.o): Ditto.
3811         (m2/gm2-compiler-boot/%.o): Ditto.
3812         (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
3813         (m2/gm2-compiler-boot/m2flex.o): Ditto.
3814         (m2/gm2-compiler/m2flex.c): Ditto.
3815         (m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto.
3816         (m2/gm2-compiler/%.o): Ditto.
3817         (m2/gm2-compiler/m2flex.o): Ditto.
3818         (m2/gm2-compiler/%.o): Ditto.
3819         (m2/gm2-libs-iso/%.o): Ditto.
3820         (m2/gm2-libs/gm2-libs-host.h): Ditto.
3821         ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto.
3822         ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
3823         ($(objdir)/m2/gm2-libs-iso/SYSTEM.def): Ditto.
3824         ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
3825         (m2/gm2-compiler/gm2.a): Ditto.
3826         (m2/gm2-libs-boot/libgm2.a): Ditto.
3827         (m2/gm2-compiler-boot/gm2.a): Ditto.
3828         (m2/boot-bin/mklink$(exeext)): Ditto.
3829         (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
3830         (m2/gm2-compiler/%.mod): Ditto.
3831         (m2/gm2-compiler-boot/%.mod): Ditto.
3832         (m2/pge-boot/%.o): Ditto.
3834 2023-02-01  Gaius Mulley  <gaiusmod2@gmail.com>
3836         * Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type.
3837         (GM2_ISO_FLAGS): Add -fno-return -Wreturn-type.
3838         * Make-maintainer.in (GM2PATH): Split into separate -I components.
3839         (MC-LIB-DEFS): Add RTentity.def.
3840         (m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to
3841         $(GM2PATH).
3842         (m2/boot-bin/mc-opt$(exeext)): Separate -I paths.
3843         (m2/mc/decl.o): Separate -I paths.
3844         (gm2-bootstrap): Separate -I paths.
3845         (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths.
3846         (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths.
3847         (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths.
3848         (gm2.verifyparanoid): Separate -I paths.
3849         (gm2.verifystage12): Separate -I paths.
3850         * gm2-compiler/M2ALU.mod (GetConstructorElement): Add default
3851         Return NulSym.  Remove return from the error case.
3852         * gm2-compiler/M2Base.mod (ComplexToScalar): Return RType
3853         from the error case.
3854         (MixMetaTypes):  Return MakeError as a default.
3855         * gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym
3856         from the error case.
3857         (GetTypeMax): Return NulSym from the error case.
3858         * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert
3859         by InternalError.
3860         * gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError.
3861         (GetTypeMin): Add InternalError.
3862         (GetTypeMax): Add InternalError.
3863         * gm2-compiler/M2System.mod (InitSystem): Call
3864         PutProcedureNoReturn on Throw.
3865         * gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree
3866         declare as noreturn.  fn_rethrow_tree declare as noreturn.
3867         * gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute.
3868         * gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute.
3869         * gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE.
3870         * gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute.
3871         * gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute.
3872         * gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute.
3873         (Halt): Ditto.
3874         (HaltC): Ditto.
3875         (ErrorMessage): Ditto.
3876         (AssignmentException): Ditto.
3877         (ReturnException): Ditto.
3878         (IncException): Ditto.
3879         (DecException): Ditto.
3880         (InclException): Ditto.
3881         (ExclException): Ditto.
3882         (ShiftException): Ditto.
3883         (RotateException): Ditto.
3884         (StaticArraySubscriptException): Ditto.
3885         (DynamicArraySubscriptException): Ditto.
3886         (ForLoopBeginException): Ditto.
3887         (ForLoopToException): Ditto.
3888         (ForLoopEndException): Ditto.
3889         (PointerNilException): Ditto.
3890         (NoReturnException): Ditto.
3891         (CaseException): Ditto.
3892         (WholeNonPosDivException): Ditto.
3893         (WholeNonPosModException): Ditto.
3894         (WholeZeroDivException): Ditto.
3895         (WholeZeroRemException): Ditto.
3896         (WholeValueException): Ditto.
3897         (RealValueException): Ditto.
3898         (ParameterException): Ditto.
3899         (NoException): Ditto.
3900         * gm2-libs-iso/SYSTEM.def (THROW): Ditto.
3901         * gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE.
3902         * gm2-libs-min/M2RTS.def: Add noreturn attribute.
3903         * gm2-libs/FIO.mod (BufferedRead): Return -1.
3904         (getFileName): Return NIL.
3905         (getFileNameLength): Return 0.
3906         * gm2-libs/M2RTS.def (HaltC): Add noreturn attribute.
3907         (AssignmentException): Ditto.
3908         (ReturnException): Ditto.
3909         (IncException): Ditto.
3910         (DecException): Ditto.
3911         (InclException): Ditto.
3912         (ExclException): Ditto.
3913         (ShiftException): Ditto.
3914         (RotateException): Ditto.
3915         (StaticArraySubscriptException): Ditto.
3916         (DynamicArraySubscriptException): Ditto.
3917         (ForLoopBeginException): Ditto.
3918         (ForLoopToException): Ditto.
3919         (ForLoopEndException): Ditto.
3920         (PointerNilException): Ditto.
3921         (NoReturnException): Ditto.
3922         (CaseException): Ditto.
3923         (WholeNonPosDivException): Ditto.
3924         (WholeNonPosModException): Ditto.
3925         (WholeZeroDivException): Ditto.
3926         (WholeZeroRemException): Ditto.
3927         (WholeValueException): Ditto.
3928         (RealValueException): Ditto.
3929         (ParameterException): Ditto.
3930         (NoException): Ditto.
3931         * gm2-libs/RTExceptions.def (Raise): Ditto.
3932         * gm2-libs/RTExceptions.mod (InvokeHandler): Ditto.
3933         * gm2-libs/SYSTEM.def (THROW): Ditto.
3934         * m2.flex (_M2_m2flex_fini): Remamed to...
3935         (_M2_m2flex_finish): ...here.
3936         * mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to...
3937         (_M2_Builtins_fini): ...this.
3938         * mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to...
3939         (_M2_RTco_fini): ...this.
3940         * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to...
3941         (_M2_SYSTEM_fini): ...this.
3942         * mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to...
3943         (_M2_Selective_fini): ...this.
3944         * mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add
3945         parameters.
3946         (_M2_SysExceptions_finish): Remamed to...
3947         (_M2_SysExceptions_fini): ...this.
3948         * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to...
3949         (_M2_UnixArgs_fini): ...this.
3950         (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter
3951         to _M2_UnixArgs_fini.
3952         * mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to...
3953         (_M2_dtoa_fini): ...this.
3954         * mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to...
3955         (_M2_errno_fini): ...this.
3956         * mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to...
3957         (_M2_ldtoa_fini): ...this.
3958         * mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters.
3959         (_M2_termios_finish): Remamed to...
3960         (_M2_termios_fini): ...this.
3961         * mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters.
3962         (_M2_wrapc_finish): Remamed to...
3963         (_M2_wrapc_fini): ...this.
3964         * mc-boot/GASCII.c: Rebuild.
3965         * mc-boot/GArgs.c: Rebuild.
3966         * mc-boot/GAssertion.c: Rebuild.
3967         * mc-boot/GBreak.c: Rebuild.
3968         * mc-boot/GCmdArgs.c: Rebuild.
3969         * mc-boot/GDebug.c: Rebuild.
3970         * mc-boot/GDynamicStrings.c: Rebuild.
3971         * mc-boot/GEnvironment.c: Rebuild.
3972         * mc-boot/GFIO.c: Rebuild.
3973         * mc-boot/GFormatStrings.c: Rebuild.
3974         * mc-boot/GFpuIO.c: Rebuild.
3975         * mc-boot/GIO.c: Rebuild.
3976         * mc-boot/GIndexing.c: Rebuild.
3977         * mc-boot/GM2Dependent.c: Rebuild.
3978         * mc-boot/GM2EXCEPTION.c: Rebuild.
3979         * mc-boot/GM2RTS.c: Rebuild.
3980         * mc-boot/GM2RTS.h: Rebuild.
3981         * mc-boot/GMemUtils.c: Rebuild.
3982         * mc-boot/GNumberIO.c: Rebuild.
3983         * mc-boot/GPushBackInput.c: Rebuild.
3984         * mc-boot/GRTExceptions.c: Rebuild.
3985         * mc-boot/GRTExceptions.h: Rebuild.
3986         * mc-boot/GRTco.h: Rebuild.
3987         * mc-boot/GRTint.c: Rebuild.
3988         * mc-boot/GSArgs.c: Rebuild.
3989         * mc-boot/GSFIO.c: Rebuild.
3990         * mc-boot/GStdIO.c: Rebuild.
3991         * mc-boot/GStorage.c: Rebuild.
3992         * mc-boot/GStrCase.c: Rebuild.
3993         * mc-boot/GStrIO.c: Rebuild.
3994         * mc-boot/GStrLib.c: Rebuild.
3995         * mc-boot/GStringConvert.c: Rebuild.
3996         * mc-boot/GSysStorage.c: Rebuild.
3997         * mc-boot/GTimeString.c: Rebuild.
3998         * mc-boot/Galists.c: Rebuild.
3999         * mc-boot/Gdecl.c: Rebuild.
4000         * mc-boot/Gkeyc.c: Rebuild.
4001         * mc-boot/Glists.c: Rebuild.
4002         * mc-boot/GmcComment.c: Rebuild.
4003         * mc-boot/GmcComp.c: Rebuild.
4004         * mc-boot/GmcDebug.c: Rebuild.
4005         * mc-boot/GmcError.c: Rebuild.
4006         * mc-boot/GmcFileName.c: Rebuild.
4007         * mc-boot/GmcLexBuf.c: Rebuild.
4008         * mc-boot/GmcMetaError.c: Rebuild.
4009         * mc-boot/GmcOptions.c: Rebuild.
4010         * mc-boot/GmcPreprocess.c: Rebuild.
4011         * mc-boot/GmcPretty.c: Rebuild.
4012         * mc-boot/GmcPrintf.c: Rebuild.
4013         * mc-boot/GmcQuiet.c: Rebuild.
4014         * mc-boot/GmcReserved.c: Rebuild.
4015         * mc-boot/GmcSearch.c: Rebuild.
4016         * mc-boot/GmcStack.c: Rebuild.
4017         * mc-boot/GmcStream.c: Rebuild.
4018         * mc-boot/Gmcp1.c: Rebuild.
4019         * mc-boot/Gmcp2.c: Rebuild.
4020         * mc-boot/Gmcp3.c: Rebuild.
4021         * mc-boot/Gmcp4.c: Rebuild.
4022         * mc-boot/Gmcp5.c: Rebuild.
4023         * mc-boot/GnameKey.c: Rebuild.
4024         * mc-boot/GsymbolKey.c: Rebuild.
4025         * mc-boot/Gtop.c: Rebuild.
4026         * mc-boot/Gvarargs.c: Rebuild.
4027         * mc-boot/Gwlists.c: Rebuild.
4028         * mc-boot/GRTentity.h: New file.
4029         * mc/decl.mod (scaffoldStatic): Change _finish to _fini.
4030         * mc/mc.flex (_M2_mcflex_fini): New function.
4031         (_M2_mcflex_finish): Remove function.
4032         * tools-src/mklink.c (GenerateFinishCalls): Change
4033         _finish to _fini.
4034         (GeneratePrototypes): Change _finish to _fini.
4036 2023-01-31  Gaius Mulley  <gaiusmod2@gmail.com>
4038         * Make-lang.in (gm2-libs.texi-check): Rename
4039         m2/gm2-libs-pim to m2/gm2-libs-log.
4040         * gm2-libs-pim/BitBlockOps.def: Moved to...
4041         * gm2-libs-log/BitBlockOps.def: ...here.
4042         * gm2-libs-pim/BitBlockOps.mod: Moved to...
4043         * gm2-libs-log/BitBlockOps.mod: ...here.
4044         * gm2-libs-pim/BitByteOps.def: Moved to...
4045         * gm2-libs-log/BitByteOps.def: ...here.
4046         * gm2-libs-pim/BitByteOps.mod: Moved to...
4047         * gm2-libs-log/BitByteOps.mod: ...here.
4048         * gm2-libs-pim/BitWordOps.def: Moved to...
4049         * gm2-libs-log/BitWordOps.def: ...here.
4050         * gm2-libs-pim/BitWordOps.mod: Moved to...
4051         * gm2-libs-log/BitWordOps.mod: ...here.
4052         * gm2-libs-pim/BlockOps.def: Moved to...
4053         * gm2-libs-log/BlockOps.def: ...here.
4054         * gm2-libs-pim/BlockOps.mod: Moved to...
4055         * gm2-libs-log/BlockOps.mod: ...here.
4056         * gm2-libs-pim/Break.c: Moved to...
4057         * gm2-libs-log/Break.c: ...here.
4058         * gm2-libs-pim/Break.def: Moved to...
4059         * gm2-libs-log/Break.def: ...here.
4060         * gm2-libs-pim/CardinalIO.def: Moved to...
4061         * gm2-libs-log/CardinalIO.def: ...here.
4062         * gm2-libs-pim/CardinalIO.mod: Moved to...
4063         * gm2-libs-log/CardinalIO.mod: ...here.
4064         * gm2-libs-pim/Conversions.def: Moved to...
4065         * gm2-libs-log/Conversions.def: ...here.
4066         * gm2-libs-pim/Conversions.mod: Moved to...
4067         * gm2-libs-log/Conversions.mod: ...here.
4068         * gm2-libs-pim/DebugPMD.def: Moved to...
4069         * gm2-libs-log/DebugPMD.def: ...here.
4070         * gm2-libs-pim/DebugPMD.mod: Moved to...
4071         * gm2-libs-log/DebugPMD.mod: ...here.
4072         * gm2-libs-pim/DebugTrace.def: Moved to...
4073         * gm2-libs-log/DebugTrace.def: ...here.
4074         * gm2-libs-pim/DebugTrace.mod: Moved to...
4075         * gm2-libs-log/DebugTrace.mod: ...here.
4076         * gm2-libs-pim/Delay.def: Moved to...
4077         * gm2-libs-log/Delay.def: ...here.
4078         * gm2-libs-pim/Delay.mod: Moved to...
4079         * gm2-libs-log/Delay.mod: ...here.
4080         * gm2-libs-pim/Display.def: Moved to...
4081         * gm2-libs-log/Display.def: ...here.
4082         * gm2-libs-pim/Display.mod: Moved to...
4083         * gm2-libs-log/Display.mod: ...here.
4084         * gm2-libs-pim/ErrorCode.def: Moved to...
4085         * gm2-libs-log/ErrorCode.def: ...here.
4086         * gm2-libs-pim/ErrorCode.mod: Moved to...
4087         * gm2-libs-log/ErrorCode.mod: ...here.
4088         * gm2-libs-pim/FileSystem.def: Moved to...
4089         * gm2-libs-log/FileSystem.def: ...here.
4090         * gm2-libs-pim/FileSystem.mod: Moved to...
4091         * gm2-libs-log/FileSystem.mod: ...here.
4092         * gm2-libs-pim/FloatingUtilities.def: Moved to...
4093         * gm2-libs-log/FloatingUtilities.def: ...here.
4094         * gm2-libs-pim/FloatingUtilities.mod: Moved to...
4095         * gm2-libs-log/FloatingUtilities.mod: ...here.
4096         * gm2-libs-pim/InOut.def: Moved to...
4097         * gm2-libs-log/InOut.def: ...here.
4098         * gm2-libs-pim/InOut.mod: Moved to...
4099         * gm2-libs-log/InOut.mod: ...here.
4100         * gm2-libs-pim/Keyboard.def: Moved to...
4101         * gm2-libs-log/Keyboard.def: ...here.
4102         * gm2-libs-pim/Keyboard.mod: Moved to...
4103         * gm2-libs-log/Keyboard.mod: ...here.
4104         * gm2-libs-pim/LongIO.def: Moved to...
4105         * gm2-libs-log/LongIO.def: ...here.
4106         * gm2-libs-pim/LongIO.mod: Moved to...
4107         * gm2-libs-log/LongIO.mod: ...here.
4108         * gm2-libs-pim/NumberConversion.def: Moved to...
4109         * gm2-libs-log/NumberConversion.def: ...here.
4110         * gm2-libs-pim/NumberConversion.mod: Moved to...
4111         * gm2-libs-log/NumberConversion.mod: ...here.
4112         * gm2-libs-pim/README.texi: Moved to...
4113         * gm2-libs-log/README.texi: ...here.
4114         * gm2-libs-pim/Random.def: Moved to...
4115         * gm2-libs-log/Random.def: ...here.
4116         * gm2-libs-pim/Random.mod: Moved to...
4117         * gm2-libs-log/Random.mod: ...here.
4118         * gm2-libs-pim/RealConversions.def: Moved to...
4119         * gm2-libs-log/RealConversions.def: ...here.
4120         * gm2-libs-pim/RealConversions.mod: Moved to...
4121         * gm2-libs-log/RealConversions.mod: ...here.
4122         * gm2-libs-pim/RealInOut.def: Moved to...
4123         * gm2-libs-log/RealInOut.def: ...here.
4124         * gm2-libs-pim/RealInOut.mod: Moved to...
4125         * gm2-libs-log/RealInOut.mod: ...here.
4126         * gm2-libs-pim/Strings.def: Moved to...
4127         * gm2-libs-log/Strings.def: ...here.
4128         * gm2-libs-pim/Strings.mod: Moved to...
4129         * gm2-libs-log/Strings.mod: ...here.
4130         * gm2-libs-pim/Termbase.def: Moved to...
4131         * gm2-libs-log/Termbase.def: ...here.
4132         * gm2-libs-pim/Termbase.mod: Moved to...
4133         * gm2-libs-log/Termbase.mod: ...here.
4134         * gm2-libs-pim/Terminal.def: Moved to...
4135         * gm2-libs-log/Terminal.def: ...here.
4136         * gm2-libs-pim/Terminal.mod: Moved to...
4137         * gm2-libs-log/Terminal.mod: ...here.
4138         * gm2-libs-pim/TimeDate.def: Moved to...
4139         * gm2-libs-log/TimeDate.def: ...here.
4140         * gm2-libs-pim/TimeDate.mod: Moved to...
4141         * gm2-libs-log/TimeDate.mod: ...here.
4143 2023-01-28  Iain Sandoe  <iain@sandoe.co.uk>
4145         * lang.opt: Claim Wreturn-type.
4147 2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>
4149         * gm2-compiler/M2Comp.mod:  Import MetaString0.
4150         (ExamineCompilationUnit): New variable Message.
4151         Create and format error string.
4152         * gm2-compiler/M2LexBuf.mod: New variable SeenEof.
4153         (GetNonEofToken): New procedure.
4154         (Init): Set SeenEof to FALSE.
4155         (GetToken): Use GetNonEofToken instead of calls to
4156         m2flex.GetToken and GetToken.
4157         (AddTok): Detect eoftok and set SeenEof.
4159 2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>
4161         * gm2-compiler/M2Options.def: Export GetMQ, SetMQ.
4162         * gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName):
4163         Test NewDir against NIL.  Test Dumpdir against NIL.
4164         Test GetMD () against NIL.  Test GetMMD () against NIL.
4165         Test GetMQ () against NIL.  Test GetObj () against NIL.
4166         Test tempfile against NIL.
4167         * gm2-compiler/P2SymBuild.def: Export
4168         BuildNoReturnAttribute.
4170 2023-01-27  Iain Sandoe  <iain@sandoe.co.uk>
4172         PR modula2/108555
4173         PR modula2/108182
4174         PR modula2/102343
4175         * gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C
4176         or CL_DRIVER.
4177         (gm2_langhook_init_options): Handle options that we want to pass
4178         to the preprocessor.
4179         * lang-specs.h: Pass -B and -save-temps to regular compile lines.
4180         * lang.opt: Add C and Driver options that Modula-2 intercepts for
4181         internal use. Reorder options into two sections and to collate.
4183 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
4185         * gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn.
4186         (DeclareProcedureToGccWholeProgram): New variable declared and set
4187         returnType.  Pass returnType to BuildEndFunctionDeclaration.
4188         Extra parameter IsProcedureNoReturn passed to
4189         BuildEndFunctionDeclaration.
4190         * gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct
4191         scaffold comment and add extra return 0.
4192         * gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute.
4193         (ProcedureHeading): Process EndBuildFormalParameters before
4194         parsing AttributeNoReturn.
4195         (DefProcedureHeading): Process EndBuildFormalParameters before
4196         parsing AttributeNoReturn.
4197         (AttributeNoReturn): Call BuildNoReturnAttribute.
4198         * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New
4199         procedure.
4200         * gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New
4201         procedure.
4202         * gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected
4203         comment.
4204         (PutProcedureNoReturn): New procedure.
4205         (IsProcedureNoReturn): New procedure function.
4206         * gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn
4207         new field.
4208         (MakeProcedure): Initialize IsNoReturn to FALSE.
4209         (PutProcedureNoReturn): New procedure.
4210         (IsProcedureNoReturn): New procedure function.
4211         * gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration):
4212         Add extra parameter isnoreturn.  Set TREE_THIS_VOLATILE
4213         to isnoreturn.
4214         * gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add
4215         extra parameter isnoreturn.
4216         * gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add
4217         extra parameter isnoreturn.
4218         * gm2-gcc/m2except.cc (m2except_InitExceptions): Change all
4219         function decl to pass an extra parameter isnoreturn.
4221 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
4223         * m2.flex (splitSlashStar): Fix comment so that /* does not
4224         appear inside the comment.
4226 2023-01-26  Iain Sandoe  <iain@sandoe.co.uk>
4228         PR modula2/108553
4229         * gm2-lang.cc (gm2_langhook_init_options): Remove debug code.
4231 2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>
4233         * Make-lang.in (m2/gm2config.h): Rewrite rule to be
4234         dependent upon m2/gm2config.aci.
4235         (m2/gm2config.aci): Newrule.
4236         * configure.ac (AC_CONFIG_HEADERS): Change destination
4237         to gm2config.aci.
4238         * configure: Regenerate.
4239         * gm2-libs/config-host: Regenerate.
4240         * gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment
4241         out.
4242         * gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove
4243         Dim.
4244         (StartBuildWith): Call BuildStmtNoteTok.
4245         (BuildStmtNoteTok): New procedure.
4246         (BuildStmtNote): Re-implement re-factor into two
4247         procedures and call BuildStmtNoteTok.
4248         * gm2config.h.in: Remove.
4249         * gm2config.aci.in: New file.
4251 2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>
4253         PR modula2/102343
4254         PR modula2/108182
4255         * gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs.
4256         * gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD,
4257         SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
4258         GetDumpDir):New.
4259         * gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD,
4260         SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
4261         GetDumpDir):New.
4262         * gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to
4263         indicate the main file.
4264         * gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs,
4265         handle MD, MMD and MQ options.
4266         * gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly,
4267         M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD,
4268         M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ,
4269         M2Options_SetObj, M2Options_GetObj): New.
4270         * gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre-
4271         processor-only jobs.
4272         * gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands.
4273         (gm2_langhook_option_lang_mask): Claim C and Driver options so that
4274         we can intercept them for building pre-processor commands.
4275         (gm2_langhook_init_options): Collect the preprocessor line here.
4276         Save options that have different actions for preprocessor and compile
4277         commands.
4278         (gm2_langhook_handle_option): Only handle the modula-2 options here.
4279         (gm2_langhook_post_options): Do not create a back-end for pre-
4280         processor-only jobs.
4281         * gm2spec.cc (lang_specific_driver): Ignore PCH options, append a
4282         scaffold-main for cases where we are building a main module with
4283         -c.
4284         * lang-specs.h: Revise to handle preprocessor-only jobs and to
4285         consume pre-processed files.
4286         * lang.opt: Remove Driver and C options copies (we claim these
4287         separately).
4289 2023-01-24  Co-Authored by: Iain Sandoe  <iain@sandoe.co.uk>
4291         * Make-lang.in (GM2-COMP-BOOT-DEFS): Add
4292         DynamicStringPath.def.
4293         (GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod.
4294         (GM2-COMP-DEFS): Add DynamicStringPath.def.
4295         (GM2-COMP-MODS): Add DynamicStringPath.mod.
4296         ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into
4297         multiple -I components.
4298         ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
4299         ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
4300         * gm2-compiler/M2Options.mod: Import DynamicStringPath.
4301         (SetSearchPath): Reimplement using DynamicStringPath
4302         procedures.
4303         * gm2-compiler/M2Search.def (InitSearchPath): Remove.
4304         (PrependSearchPath): Remove.
4305         * gm2-compiler/M2Search.mod (SFIO): Remove import.
4306         (DynamicStringPath): Add import.
4307         (Directory): Remove.
4308         (UserPath): Remove.
4309         (InitialPath): Remove.
4310         (InitSearchPath): Remove.
4311         (PrependSearchPath): Remove.
4312         (FindSourceFile): Re-implement.
4313         (FindSourceDefFile): Re-implement.
4314         (FindSourceModFile): Re-implement.
4315         * gm2-gcc/init.cc (_M2_DynamicStringPath_init):
4316         New prototype.
4317         (init_FrontEndInit): Call _M2_DynamicStringPath_init.
4318         * tools-src/makeSystem: Allow multiple -I paths.
4319         * gm2-compiler/DynamicStringPath.def: New file.
4320         * gm2-compiler/DynamicStringPath.mod: New file.
4321         * gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add
4322         prototype.
4324 2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>
4326         * m2.flex (cpreprocessor): Add temporary variable
4327         which is initialized to 0.
4328         (commentCLevel): New variable.
4329         (endOfCComment): New function.
4330         (splitSlashStar): New function to split /* into / and *
4331         tokens.
4332         (COMMENTC): New flex state.
4333         ("/*"): New rule to test whether we should treat /*
4334         as a single token or as two tokens.
4335         (<COMMENTC>.): New rule to skip a character.
4336         (<COMMENTC>\n.*): New rule to consume the line.
4337         (<COMMENTC>"*/"): New rule to call endOfCComment.
4339 2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>
4341         * gm2-libs-iso/RTco.def: Import RTentity.
4342         Declare RTco as a definition for C module.
4344 2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>
4346         PR modula2/108182
4347         PR modula2/108480
4348         * Make-lang.in: Pass libsubdir to the language init
4349         build.
4350         * gm2-lang.cc (INCLUDE_VECTOR): Define.
4351         (add_one_import_path): New.
4352         (add_m2_import_paths): New.
4353         (gm2_langhook_post_options): Arrange to add the include
4354         paths (and add the system ones) in the same order as C
4355         uses.
4356         * gm2spec.cc (build_archive_path): Remove.
4357         (add_default_combination): Remove.
4358         (add_default_archives): Remove.
4359         (add_default_libs): We no longer need a '-L' option, just
4360         emit the -l and each library in use.
4361         (build_include_path): Remove.
4362         (add_include): Remove.
4363         (add_default_includes): Remove.
4364         (library_installed): Remove.
4365         (check_valid_library): Remove.
4366         (check_valid_list): Remove.
4367         (convert_abbreviation): Diagnose unhandled cases.
4368         (lang_specific_driver): Skip options where we will add back
4369         a validated version.
4370         * lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not
4371         in use.  Revise the cc1gm2 spec to omit mentioning options that
4372         are handled in the c pre-processor line.
4373         * lang.opt: Allow preprocessing and path options as input to the
4374         cc1gm2 invocation, so that they can be passed to the preprocessor
4375         invocation.
4377 2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>
4379         PR modula2/108405
4380         * gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for
4381         extra space that is divisible by common OS pagesizes.
4383 2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>
4385         * gm2-libs/Args.mod (GetArg): Check index before
4386         accessing array.
4387         * gm2-libs/M2Dependent.mod (toCString): Check index
4388         before accessing array.
4389         * mc-boot/GArgs.c: Rebuilt.
4390         * mc-boot/GM2Dependent.c: Rebuilt.
4391         * mc-boot/Gkeyc.c: Rebuilt.
4392         * mc/keyc.mod (seenUIntMin): Initialize once.
4393         (seenUIntMax): Initialize once.
4394         (checkLimits): Only test seenUIntMin and seenUIntMax
4395         once.
4396         * pge-boot/GArgs.c:  Rebuilt.
4397         * pge-boot/GM2Dependent.c: Rebuilt.
4399 2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>
4401         * gm2-gcc/m2statement.cc (gm2_gimplify_function_node):
4402         Remove.
4403         * gm2-libs/DynamicStrings.mod (Equal): Remove dead code.
4404         * m2.flex (<COMMENT>"<*"): Add {} for else statement.
4405         * m2pp.cc (hextree): Add conditional #ifdef DEBUGGING.
4406         * mc-boot/GDynamicStrings.c: Rebuild.
4407         * pge-boot/GDynamicStrings.c: Rebuild.
4408         * pge-boot/GFIO.c: Rebuild.
4409         * pge-boot/GIndexing.c: Rebuild.
4410         * pge-boot/GM2EXCEPTION.c: Rebuild.
4411         * pge-boot/GM2RTS.c: Rebuild.
4412         * pge-boot/GNameKey.c: Rebuild.
4413         * pge-boot/GPushBackInput.c: Rebuild.
4414         * pge-boot/GRTExceptions.c: Rebuild.
4415         * pge-boot/GStdIO.c: Rebuild.
4416         * pge-boot/GSymbolKey.c: Rebuild.
4417         * pge-boot/GSysStorage.c: Rebuild.
4419 2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>
4421         * mc-boot/GM2RTS.c: Rebuilt.
4422         * mc-boot/GM2RTS.h: Rebuilt.
4423         * mc-boot/Gdecl.c: Rebuilt.
4424         * mc-boot/GmcOptions.c: Rebuilt.
4425         * mc/mcOptions.mod (displayVersion):
4426         Split first printf into three components
4428 2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>
4430         * gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename.
4431         (HaltC): New procedure declaration.
4432         (ErrorMessage): Parameter file renamed to filename.
4433         * gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to
4434         filename.
4435         (HaltC): New procedure implementation.
4436         (ErrorStringC): New procedure implementation.
4437         (ErrorMessageC): New procedure implementation.
4438         * gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename.
4439         (HaltC): New procedure declaration.
4440         (ErrorMessage): Parameter file renamed to filename.
4441         * gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename.
4442         (HaltC): New procedure implementation.
4443         (ErrorStringC): New procedure implementation.
4444         (ErrorMessageC): New procedure implementation.
4446 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
4448         * mc-boot-ch/Glibc.c (libc_time): New function.
4449         (libc_localtime): New function.
4450         * mc-boot/GDynamicStrings.c: Regenerate.
4451         * mc-boot/GFIO.c: Regenerate.
4452         * mc-boot/GFormatStrings.c: Regenerate.
4453         * mc-boot/GIndexing.c: Regenerate.
4454         * mc-boot/GM2Dependent.c: Regenerate.
4455         * mc-boot/GM2EXCEPTION.c: Regenerate.
4456         * mc-boot/GPushBackInput.c: Regenerate.
4457         * mc-boot/GRTExceptions.c: Regenerate.
4458         * mc-boot/GRTint.c: Regenerate.
4459         * mc-boot/GStdIO.c: Regenerate.
4460         * mc-boot/GStringConvert.c: Regenerate.
4461         * mc-boot/GSysStorage.c: Regenerate.
4462         * mc-boot/Gdecl.c: Regenerate.
4463         * mc-boot/GmcComment.c: Regenerate.
4464         * mc-boot/GmcComp.c: Regenerate.
4465         * mc-boot/GmcDebug.c: Regenerate.
4466         * mc-boot/GmcMetaError.c: Regenerate.
4467         * mc-boot/GmcOptions.c: Regenerate.
4468         * mc-boot/GmcStack.c: Regenerate.
4469         * mc-boot/GnameKey.c: Regenerate.
4470         * mc-boot/GsymbolKey.c: Regenerate.
4471         * mc-boot/Gkeyc.c: Regenerate.
4472         * mc/decl.mod (putFieldRecord): Change NulName to NulKey
4473         and fix type comparision.
4474         * mc/mcOptions.mod (YEAR): Remove.
4475         (getYear): New procedure function.
4476         (displayVersion): Use result from getYear instead of YEAR.
4477         Emit boilerplate for GPL v3.
4478         (gplBody): Use result from getYear instead of YEAR.
4479         (glplBody): Use result from getYear instead of YEAR.
4481 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
4483         * gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type
4484         against NulSym and call MetaErrorT1 if necessary.
4485         (AssignUnboundedNonVar): Check Type against NulSym and
4486         call MetaErrorT1 if necessary.
4487         (BuildDesignatorPointer): Check Type1 against NulSym and
4488         call MetaErrorT1 if necessary.
4490 2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>
4492         * mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3.
4493         (YEAR) set to 2023.
4495 2023-01-15  Gaius Mulley  <gaiusmod2@gmail.com>
4497         * gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment.
4498         Remove dead code.
4499         * gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter.
4500         * gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter.
4501         Create and push virtual token.
4502         (PopBooltok): New procedure.
4503         (PushBooltok): New procedure.
4504         (PushBool): Re-implement using PushBooltok.
4505         (PopBool): Re-implement using PopBooltok.
4506         * gm2-compiler/P3Build.bnf (ConstFactor): Record token
4507         position of NOT.
4508         (Factor): Record token position of NOT.
4509         * gm2-compiler/PHBuild.bnf (ConstFactor): Record token
4510         position of NOT.
4511         (Relation): Push token position.
4512         (UnaryOrConstTerm): Push token position.
4513         (AddOperator): Push token position.
4514         (MulOperator): Push token position.
4516 2023-01-13  Iain Sandoe  <iain@sandoe.co.uk>
4518         * gm2-gcc/m2options.h (M2Options_SetVerbose): Export the
4519         function.
4520         * gm2-lang.cc: Handle OPT_v, passing it to the compiler.
4521         * lang-specs.h: Pass -v to cc1gm2.
4523 2023-01-13  Gaius Mulley  <gaiusmod2@gmail.com>
4525         * mc-boot-ch/GRTco.c (RTco_select): Add return 0.
4526         * pge-boot/GRTco.c (RTco_select): Add return 0.
4528 2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>
4530         * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
4531         m2/gm2-libs/gm2-libs-host.h dependency.
4532         (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
4533         m2/gm2-libs/gm2-libs-host.h dependency.
4535 2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>
4537         * Make-lang.in (GM2_1): Change -B path to m2/stage1.
4538         ($(objdir)/m2/images/gnu.eps): Check and create dest dir
4539         if necessary.
4540         (gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
4541         m2/gm2-libs-iso and m2/gm2-libs if necessary.
4542         ($(objdir)/m2/gm2-compiler-boot): Remove.
4543         ($(objdir)/m2/gm2-libs-boot): Remove.
4544         ($(objdir)/m2/gm2-libs-libiberty): Remove.
4545         ($(objdir)/m2/gm2-libiberty): Remove.
4546         ($(objdir)/m2/gm2-gcc): Remove.
4547         ($(objdir)/m2/gm2-compiler): Remove.
4548         ($(objdir)/m2/gm2-libs): Remove.
4549         ($(objdir)/m2/gm2-libs-iso): Remove.
4550         ($(objdir)/m2/gm2-libs-min): Remove.
4551         ($(objdir)/m2/gm2-compiler-paranoid): Remove.
4552         ($(objdir)/m2/gm2-libs-paranoid): Remove.
4553         ($(objdir)/m2/gm2-compiler-verify): Remove.
4554         ($(objdir)/m2/boot-bin): Remove.
4555         ($(objdir)/m2/gm2-libs-pim): Remove.
4556         ($(objdir)/m2/gm2-libs-coroutines): Remove.
4557         (stage1/m2): Remove.
4558         (stage2/m2): Remove.
4559         (stage3/m2): Remove.
4560         (m2.stageprofile): New rule.
4561         (m2.stagefeedback): New rule.
4562         (cc1gm2$(exeext)): Change dependent name.
4563         (m2/stage2/cc1gm2$(exeext)): Change dependent name.
4564         Check and create dest dir.
4565         (m2/stage1/cc1gm2$(exeext)): Check and create dest dir
4566         if necessary.
4567         (m2/gm2-gcc/%.o): Ditto.
4568         (m2/gm2-gcc/rtegraph.o): Ditto.
4569         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
4570         (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
4571         (m2/mc-boot): Ditto.
4572         (m2/mc-boot-ch): Ditto.
4573         (m2/gm2-libs-boot): Ditto.
4574         (m2/gm2-compiler-boot): Ditto.
4575         (m2/gm2-compiler): Ditto.
4576         (m2/gm2-libiberty): Ditto.
4577         (m2/gm2-compiler): Ditto.
4578         (m2/gm2-libs-iso): Ditto.
4579         (m2/gm2-libs): Ditto.
4580         (m2/gm2-libs-min): Ditto.
4581         (m2/gm2-libs-coroutines): Ditto.
4582         (m2/boot-bin): Ditto.
4583         (m2/pge-boot): Ditto.
4584         (m2/pge-boot): Ditto.
4585         * Make-maintainer.in (m2/gm2-ppg-boot): Check and create
4586         dest dir if necessary.
4587         (m2): Ditto.
4588         (m2/gm2-ppg-boot): Ditto.
4589         (m2/gm2-pg-boot): Ditto.
4590         (m2/gm2-auto): Ditto.
4591         (m2/gm2-pg-boot): Ditto.
4592         (m2/gm2-pge-boot): Ditto.
4593         ($(objdir)/plugin): Ditto.
4594         ($(objdir)/m2/mc-boot-ch): Ditto.
4595         ($(objdir)/m2/mc-boot-gen): Ditto.
4596         (m2/boot-bin): Ditto.
4597         (m2/mc): Ditto.
4598         (m2/mc-obj): Ditto.
4599         ($(objdir)/m2/gm2-ppg-boot): Ditto.
4600         ($(objdir)/m2/gm2-pg-boot): Ditto.
4601         ($(objdir)/m2/gm2-pge-boot): Ditto.
4602         (m2/mc-boot-gen): Ditto.
4603         (m2/m2obj3): Ditto.
4604         (m2/gm2-libs-paranoid): Ditto.
4605         (m2/gm2-compiler-paranoid): Ditto.
4606         (m2/gm2-libs-paranoid): Ditto.
4607         (m2/gm2-compiler-paranoid): Ditto.
4608         (m2/gm2-libs-paranoid): Ditto.
4609         (m2/gm2-compiler-paranoid): Ditto.
4610         * config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
4611         (m2/gm2-libs-boot): Ditto.
4612         (m2/gm2-ici-boot): Ditto.
4613         (m2/gm2-libiberty): Ditto.
4614         (m2/gm2-gcc): Ditto.
4615         (m2/gm2-compiler): Ditto.
4616         (m2/gm2-libs): Ditto.
4617         (m2/gm2-libs-iso): Ditto.
4618         (m2/gm2-compiler-paranoid): Ditto.
4619         (m2/gm2-libs-paranoid): Ditto.
4620         (m2/gm2-compiler-verify): Ditto.
4621         (m2/boot-bin): Ditto.
4622         (m2/gm2-libs-pim): Ditto.
4623         (m2/gm2-libs-coroutines): Ditto.
4624         (m2/gm2-libs-min): Ditto.
4625         (m2/pge-boot): Ditto.
4626         (plugin): Ditto.
4627         (stage1/m2): Ditto.
4628         (stage2/m2): Ditto.
4629         (stage3/m2): Ditto.
4630         (stage4/m2): Ditto.
4631         (m2/gm2-auto): Ditto.
4632         (m2/gm2-pg-boot): Ditto.
4633         (m2/gm2-pge-boot): Ditto.
4634         (m2/gm2-ppg-boot): Ditto.
4635         (m2/mc-boot): Ditto.
4636         (m2/mc-boot-ch): Ditto.
4637         (m2/mc-boot-gen): Ditto.
4639 2023-01-09  Gaius Mulley  <gaiusmod2@gmail.com>
4641         * Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
4642         * gm2-libs/config-host: Regenerate.
4644 2023-01-07  Iain Sandoe  <iain@sandoe.co.uk>
4646         * gm2-libs-min/libc.c (abort): Update declaration to match the
4647         expected form, add no-return attribute.
4648         (exit): Add no-return attribute.
4650 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
4652         PR modula2/107631
4653         * gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
4654         significand, significandf, significandl.
4655         * gm2-libs/Builtins.def (significand): Likewise.
4656         * gm2-libs/Builtins.mod: Likewise.
4657         * target-independent/Builtins.texi: Likewise.
4658         * gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
4659         ilogb*().
4660         * gm2-libs-iso/LowReal.mod: Likewise.
4661         * gm2-libs-iso/LowShort.mod: Likewise.
4663 2023-01-05  Gaius Mulley  <gaiusmod2@gmail.com>
4665         * gm2-libs-min/M2RTS.def (ConstructModules): New procedure
4666         declaration.
4667         (DeconstructModules): New procedure declaration.
4668         * gm2-libs-min/M2RTS.mod (ConstructModules): New procedure
4669         dummy implementation.
4670         (DeconstructModules): New procedure dummy implementation.
4672 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
4674         * gm2spec.cc (lang_specific_driver): Handle static-libgm2.
4675         * lang.opt: Add static-libgm2.
4677 2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>
4679         * gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to
4680         the target driver if the linker does not support Bstatic/dynamic.
4682 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
4684         PR modula2/108183
4685         * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use
4686         an extern "C" function with 'constructor' attribute.
4687         * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise.
4688         * gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise.
4690 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
4692         PR modula2/108259
4693         * gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module
4694         registration constructors visible.
4696 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
4698         * Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also
4699         use the configured tools for texi -> dvi and texi -> pdf.
4701 2023-01-01  Iain Sandoe  <iain@sandoe.co.uk>
4702             Gaius Mulley  <gaiusmod2@gmail.com>
4704         PR modula2/108183
4705         * gm2-compiler/M2GCCDeclare.mod: Module registration constructors are
4706         externs to the builder of m2_link.
4708 2022-12-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4709             Iain Sandoe  <iain@sandoe.co.uk>
4711         PR modula2/107612
4712         * Make-lang.in (soext): Use .dylib for Darwin.
4713         (PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append
4714         -nodefaultlibs to suppress the linking of libstdc++.
4715         Use INCINTL in compile lines for the plugin.
4717 2022-12-21  Jakub Jelinek  <jakub@redhat.com>
4719         PR modula2/108153
4720         * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER.
4722 2022-12-19  Jakub Jelinek  <jakub@redhat.com>
4724         * gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf,
4725         m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error):
4726         Call functions with "%s", message rather than just message, so that
4727         % chars in message aren't treated as format specifiers.
4729 2022-12-19  Jakub Jelinek  <jakub@redhat.com>
4731         PR modula2/108147
4732         * gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf):
4733         Comment out prototypes with varargs.
4734         * gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf,
4735         m2linemap_NoteAtf): No longer varargs.
4736         * gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a
4737         non-varargs wrapper around ...
4738         (m2linemap_ErrorAtf_1): ... this.  New static function.
4739         (m2linemap_WarningAtf): Turned into a non-varargs wrapper around ...
4740         (m2linemap_WarningAtf_1): ... this.  New static function.
4741         (m2linemap_NoteAtf): Turned into a non-varargs wrapper around ...
4742         (m2linemap_NoteAtf_1): ... this.  New static function.
4744 2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>
4746         * configure.ac: Stop probing for realpath.
4747         * tools-src/calcpath: Break dependency on realpath, cut
4748         and echo.
4749         * configure: Rebuilt.
4751 2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>
4753         * gm2config.h.in: Rebuilt.
4755 2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
4757         * COPYING.FDL: New file.
4758         * COPYING.RUNTIME: New file.
4759         * COPYING3: New file.
4760         * COPYING3.LIB: New file.
4761         * Make-lang.in: New file.
4762         * Make-maintainer.in: New file.
4763         * NEWS: New file.
4764         * README: New file.
4765         * config-lang.in: New file.
4766         * config-make.in: New file.
4767         * configure.ac: New file.
4768         * gm2-compiler/CLexBuf.def: New file.
4769         * gm2-compiler/CLexBuf.mod: New file.
4770         * gm2-compiler/FifoQueue.def: New file.
4771         * gm2-compiler/FifoQueue.mod: New file.
4772         * gm2-compiler/Lists.def: New file.
4773         * gm2-compiler/Lists.mod: New file.
4774         * gm2-compiler/M2ALU.def: New file.
4775         * gm2-compiler/M2ALU.mod: New file.
4776         * gm2-compiler/M2AsmUtil.def: New file.
4777         * gm2-compiler/M2AsmUtil.mod: New file.
4778         * gm2-compiler/M2Base.def: New file.
4779         * gm2-compiler/M2Base.mod: New file.
4780         * gm2-compiler/M2BasicBlock.def: New file.
4781         * gm2-compiler/M2BasicBlock.mod: New file.
4782         * gm2-compiler/M2Batch.def: New file.
4783         * gm2-compiler/M2Batch.mod: New file.
4784         * gm2-compiler/M2Bitset.def: New file.
4785         * gm2-compiler/M2Bitset.mod: New file.
4786         * gm2-compiler/M2CaseList.def: New file.
4787         * gm2-compiler/M2CaseList.mod: New file.
4788         * gm2-compiler/M2Check.def: New file.
4789         * gm2-compiler/M2Check.mod: New file.
4790         * gm2-compiler/M2Code.def: New file.
4791         * gm2-compiler/M2Code.mod: New file.
4792         * gm2-compiler/M2ColorString.def: New file.
4793         * gm2-compiler/M2ColorString.mod: New file.
4794         * gm2-compiler/M2Comp.def: New file.
4795         * gm2-compiler/M2Comp.mod: New file.
4796         * gm2-compiler/M2Const.def: New file.
4797         * gm2-compiler/M2Const.mod: New file.
4798         * gm2-compiler/M2Debug.def: New file.
4799         * gm2-compiler/M2Debug.mod: New file.
4800         * gm2-compiler/M2DebugStack.def: New file.
4801         * gm2-compiler/M2DebugStack.mod: New file.
4802         * gm2-compiler/M2Defaults.def: New file.
4803         * gm2-compiler/M2Defaults.mod: New file.
4804         * gm2-compiler/M2DriverOptions.def: New file.
4805         * gm2-compiler/M2DriverOptions.mod: New file.
4806         * gm2-compiler/M2Emit.def: New file.
4807         * gm2-compiler/M2Emit.mod: New file.
4808         * gm2-compiler/M2Error.def: New file.
4809         * gm2-compiler/M2Error.mod: New file.
4810         * gm2-compiler/M2EvalSym.def: New file.
4811         * gm2-compiler/M2FileName.def: New file.
4812         * gm2-compiler/M2FileName.mod: New file.
4813         * gm2-compiler/M2GCCDeclare.def: New file.
4814         * gm2-compiler/M2GCCDeclare.mod: New file.
4815         * gm2-compiler/M2GenGCC.def: New file.
4816         * gm2-compiler/M2GenGCC.mod: New file.
4817         * gm2-compiler/M2Graph.def: New file.
4818         * gm2-compiler/M2Graph.mod: New file.
4819         * gm2-compiler/M2Lex.def: New file.
4820         * gm2-compiler/M2Lex.mod: New file.
4821         * gm2-compiler/M2LexBuf.def: New file.
4822         * gm2-compiler/M2LexBuf.mod: New file.
4823         * gm2-compiler/M2MetaError.def: New file.
4824         * gm2-compiler/M2MetaError.mod: New file.
4825         * gm2-compiler/M2Optimize.def: New file.
4826         * gm2-compiler/M2Optimize.mod: New file.
4827         * gm2-compiler/M2Options.def: New file.
4828         * gm2-compiler/M2Options.mod: New file.
4829         * gm2-compiler/M2Pass.def: New file.
4830         * gm2-compiler/M2Pass.mod: New file.
4831         * gm2-compiler/M2Preprocess.def: New file.
4832         * gm2-compiler/M2Preprocess.mod: New file.
4833         * gm2-compiler/M2Printf.def: New file.
4834         * gm2-compiler/M2Printf.mod: New file.
4835         * gm2-compiler/M2Quads.def: New file.
4836         * gm2-compiler/M2Quads.mod: New file.
4837         * gm2-compiler/M2Quiet.def: New file.
4838         * gm2-compiler/M2Quiet.mod: New file.
4839         * gm2-compiler/M2Range.def: New file.
4840         * gm2-compiler/M2Range.mod: New file.
4841         * gm2-compiler/M2Reserved.def: New file.
4842         * gm2-compiler/M2Reserved.mod: New file.
4843         * gm2-compiler/M2SSA.def: New file.
4844         * gm2-compiler/M2SSA.mod: New file.
4845         * gm2-compiler/M2Scaffold.def: New file.
4846         * gm2-compiler/M2Scaffold.mod: New file.
4847         * gm2-compiler/M2Scope.def: New file.
4848         * gm2-compiler/M2Scope.mod: New file.
4849         * gm2-compiler/M2Search.def: New file.
4850         * gm2-compiler/M2Search.mod: New file.
4851         * gm2-compiler/M2Size.def: New file.
4852         * gm2-compiler/M2Size.mod: New file.
4853         * gm2-compiler/M2StackAddress.def: New file.
4854         * gm2-compiler/M2StackAddress.mod: New file.
4855         * gm2-compiler/M2StackWord.def: New file.
4856         * gm2-compiler/M2StackWord.mod: New file.
4857         * gm2-compiler/M2Students.def: New file.
4858         * gm2-compiler/M2Students.mod: New file.
4859         * gm2-compiler/M2Swig.def: New file.
4860         * gm2-compiler/M2Swig.mod: New file.
4861         * gm2-compiler/M2System.def: New file.
4862         * gm2-compiler/M2System.mod: New file.
4863         * gm2-compiler/M2Version.def: New file.
4864         * gm2-compiler/NameKey.def: New file.
4865         * gm2-compiler/NameKey.mod: New file.
4866         * gm2-compiler/ObjectFiles.def: New file.
4867         * gm2-compiler/ObjectFiles.mod: New file.
4868         * gm2-compiler/Output.def: New file.
4869         * gm2-compiler/Output.mod: New file.
4870         * gm2-compiler/P0SymBuild.def: New file.
4871         * gm2-compiler/P0SymBuild.mod: New file.
4872         * gm2-compiler/P0SyntaxCheck.bnf: New file.
4873         * gm2-compiler/P0SyntaxCheck.def: New file.
4874         * gm2-compiler/P1Build.bnf: New file.
4875         * gm2-compiler/P1Build.def: New file.
4876         * gm2-compiler/P1SymBuild.def: New file.
4877         * gm2-compiler/P1SymBuild.mod: New file.
4878         * gm2-compiler/P2Build.bnf: New file.
4879         * gm2-compiler/P2Build.def: New file.
4880         * gm2-compiler/P2SymBuild.def: New file.
4881         * gm2-compiler/P2SymBuild.mod: New file.
4882         * gm2-compiler/P3Build.bnf: New file.
4883         * gm2-compiler/P3Build.def: New file.
4884         * gm2-compiler/P3SymBuild.def: New file.
4885         * gm2-compiler/P3SymBuild.mod: New file.
4886         * gm2-compiler/PCBuild.bnf: New file.
4887         * gm2-compiler/PCBuild.def: New file.
4888         * gm2-compiler/PCSymBuild.def: New file.
4889         * gm2-compiler/PCSymBuild.mod: New file.
4890         * gm2-compiler/PHBuild.bnf: New file.
4891         * gm2-compiler/PHBuild.def: New file.
4892         * gm2-compiler/README: New file.
4893         * gm2-compiler/Sets.def: New file.
4894         * gm2-compiler/Sets.mod: New file.
4895         * gm2-compiler/SymbolConversion.def: New file.
4896         * gm2-compiler/SymbolConversion.mod: New file.
4897         * gm2-compiler/SymbolKey.def: New file.
4898         * gm2-compiler/SymbolKey.mod: New file.
4899         * gm2-compiler/SymbolTable.def: New file.
4900         * gm2-compiler/SymbolTable.mod: New file.
4901         * gm2-compiler/bnflex.def: New file.
4902         * gm2-compiler/bnflex.mod: New file.
4903         * gm2-compiler/cflex.def: New file.
4904         * gm2-compiler/gm2.mod: New file.
4905         * gm2-compiler/gm2lcc.mod: New file.
4906         * gm2-compiler/gm2lgen.mod: New file.
4907         * gm2-compiler/gm2lorder.mod: New file.
4908         * gm2-compiler/m2flex.def: New file.
4909         * gm2-compiler/ppg.mod: New file.
4910         * gm2-gcc/README: New file.
4911         * gm2-gcc/dynamicstrings.h: New file.
4912         * gm2-gcc/gcc-consolidation.h: New file.
4913         * gm2-gcc/init.cc: New file.
4914         * gm2-gcc/init.def: New file.
4915         * gm2-gcc/init.h: New file.
4916         * gm2-gcc/m2assert.cc: New file.
4917         * gm2-gcc/m2assert.h: New file.
4918         * gm2-gcc/m2block.cc: New file.
4919         * gm2-gcc/m2block.def: New file.
4920         * gm2-gcc/m2block.h: New file.
4921         * gm2-gcc/m2builtins.cc: New file.
4922         * gm2-gcc/m2builtins.def: New file.
4923         * gm2-gcc/m2builtins.h: New file.
4924         * gm2-gcc/m2color.cc: New file.
4925         * gm2-gcc/m2color.def: New file.
4926         * gm2-gcc/m2color.h: New file.
4927         * gm2-gcc/m2configure.cc: New file.
4928         * gm2-gcc/m2configure.def: New file.
4929         * gm2-gcc/m2configure.h: New file.
4930         * gm2-gcc/m2convert.cc: New file.
4931         * gm2-gcc/m2convert.def: New file.
4932         * gm2-gcc/m2convert.h: New file.
4933         * gm2-gcc/m2decl.cc: New file.
4934         * gm2-gcc/m2decl.def: New file.
4935         * gm2-gcc/m2decl.h: New file.
4936         * gm2-gcc/m2except.cc: New file.
4937         * gm2-gcc/m2except.def: New file.
4938         * gm2-gcc/m2except.h: New file.
4939         * gm2-gcc/m2expr.cc: New file.
4940         * gm2-gcc/m2expr.def: New file.
4941         * gm2-gcc/m2expr.h: New file.
4942         * gm2-gcc/m2linemap.cc: New file.
4943         * gm2-gcc/m2linemap.def: New file.
4944         * gm2-gcc/m2linemap.h: New file.
4945         * gm2-gcc/m2misc.cc: New file.
4946         * gm2-gcc/m2misc.def: New file.
4947         * gm2-gcc/m2misc.h: New file.
4948         * gm2-gcc/m2options.h: New file.
4949         * gm2-gcc/m2range.h: New file.
4950         * gm2-gcc/m2search.h: New file.
4951         * gm2-gcc/m2statement.cc: New file.
4952         * gm2-gcc/m2statement.def: New file.
4953         * gm2-gcc/m2statement.h: New file.
4954         * gm2-gcc/m2top.cc: New file.
4955         * gm2-gcc/m2top.def: New file.
4956         * gm2-gcc/m2top.h: New file.
4957         * gm2-gcc/m2tree.cc: New file.
4958         * gm2-gcc/m2tree.def: New file.
4959         * gm2-gcc/m2tree.h: New file.
4960         * gm2-gcc/m2treelib.cc: New file.
4961         * gm2-gcc/m2treelib.def: New file.
4962         * gm2-gcc/m2treelib.h: New file.
4963         * gm2-gcc/m2type.cc: New file.
4964         * gm2-gcc/m2type.def: New file.
4965         * gm2-gcc/m2type.h: New file.
4966         * gm2-gcc/rtegraph.cc: New file.
4967         * gm2-gcc/rtegraph.h: New file.
4968         * gm2-ici/M2Emit.mod: New file.
4969         * gm2-ici/README: New file.
4970         * gm2-ici/m2linemap.c: New file.
4971         * gm2-internals.texi: New file.
4972         * gm2-lang.cc: New file.
4973         * gm2-lang.h: New file.
4974         * gm2-libiberty/README: New file.
4975         * gm2-libiberty/choosetemp.def: New file.
4976         * gm2-libiberty/pexecute.def: New file.
4977         * gm2-libs-ch/M2LINK.c: New file.
4978         * gm2-libs-ch/README: New file.
4979         * gm2-libs-ch/RTcodummy.c: New file.
4980         * gm2-libs-ch/RTintdummy.c: New file.
4981         * gm2-libs-ch/Selective.c: New file.
4982         * gm2-libs-ch/SysExceptions.c: New file.
4983         * gm2-libs-ch/UnixArgs.cc: New file.
4984         * gm2-libs-ch/cgetopt.c: New file.
4985         * gm2-libs-ch/choosetemp.c: New file.
4986         * gm2-libs-ch/dtoa.cc: New file.
4987         * gm2-libs-ch/errno.c: New file.
4988         * gm2-libs-ch/host.c: New file.
4989         * gm2-libs-ch/ldtoa.cc: New file.
4990         * gm2-libs-ch/m2rts.h: New file.
4991         * gm2-libs-ch/termios.c: New file.
4992         * gm2-libs-ch/tools.c: New file.
4993         * gm2-libs-ch/wrapc.c: New file.
4994         * gm2-libs-ch/xlibc.c: New file.
4995         * gm2-libs-coroutines/Debug.def: New file.
4996         * gm2-libs-coroutines/Debug.mod: New file.
4997         * gm2-libs-coroutines/Executive.def: New file.
4998         * gm2-libs-coroutines/Executive.mod: New file.
4999         * gm2-libs-coroutines/KeyBoardLEDs.def: New file.
5000         * gm2-libs-coroutines/README.texi: New file.
5001         * gm2-libs-coroutines/SYSTEM.def: New file.
5002         * gm2-libs-coroutines/SYSTEM.mod: New file.
5003         * gm2-libs-coroutines/TimerHandler.def: New file.
5004         * gm2-libs-coroutines/TimerHandler.mod: New file.
5005         * gm2-libs-iso/COROUTINES.def: New file.
5006         * gm2-libs-iso/COROUTINES.mod: New file.
5007         * gm2-libs-iso/ChanConsts.def: New file.
5008         * gm2-libs-iso/ChanConsts.h: New file.
5009         * gm2-libs-iso/ChanConsts.mod: New file.
5010         * gm2-libs-iso/CharClass.def: New file.
5011         * gm2-libs-iso/CharClass.mod: New file.
5012         * gm2-libs-iso/ClientSocket.def: New file.
5013         * gm2-libs-iso/ClientSocket.mod: New file.
5014         * gm2-libs-iso/ComplexMath.def: New file.
5015         * gm2-libs-iso/ComplexMath.mod: New file.
5016         * gm2-libs-iso/ConvStringLong.def: New file.
5017         * gm2-libs-iso/ConvStringLong.mod: New file.
5018         * gm2-libs-iso/ConvStringReal.def: New file.
5019         * gm2-libs-iso/ConvStringReal.mod: New file.
5020         * gm2-libs-iso/ConvTypes.def: New file.
5021         * gm2-libs-iso/ConvTypes.mod: New file.
5022         * gm2-libs-iso/EXCEPTIONS.def: New file.
5023         * gm2-libs-iso/EXCEPTIONS.mod: New file.
5024         * gm2-libs-iso/ErrnoCategory.def: New file.
5025         * gm2-libs-iso/GeneralUserExceptions.def: New file.
5026         * gm2-libs-iso/GeneralUserExceptions.mod: New file.
5027         * gm2-libs-iso/IOChan.def: New file.
5028         * gm2-libs-iso/IOChan.mod: New file.
5029         * gm2-libs-iso/IOConsts.def: New file.
5030         * gm2-libs-iso/IOConsts.mod: New file.
5031         * gm2-libs-iso/IOLink.def: New file.
5032         * gm2-libs-iso/IOLink.mod: New file.
5033         * gm2-libs-iso/IOResult.def: New file.
5034         * gm2-libs-iso/IOResult.mod: New file.
5035         * gm2-libs-iso/LongComplexMath.def: New file.
5036         * gm2-libs-iso/LongComplexMath.mod: New file.
5037         * gm2-libs-iso/LongConv.def: New file.
5038         * gm2-libs-iso/LongConv.mod: New file.
5039         * gm2-libs-iso/LongIO.def: New file.
5040         * gm2-libs-iso/LongIO.mod: New file.
5041         * gm2-libs-iso/LongMath.def: New file.
5042         * gm2-libs-iso/LongMath.mod: New file.
5043         * gm2-libs-iso/LongStr.def: New file.
5044         * gm2-libs-iso/LongStr.mod: New file.
5045         * gm2-libs-iso/LongWholeIO.def: New file.
5046         * gm2-libs-iso/LongWholeIO.mod: New file.
5047         * gm2-libs-iso/LowLong.def: New file.
5048         * gm2-libs-iso/LowLong.mod: New file.
5049         * gm2-libs-iso/LowReal.def: New file.
5050         * gm2-libs-iso/LowReal.mod: New file.
5051         * gm2-libs-iso/LowShort.def: New file.
5052         * gm2-libs-iso/LowShort.mod: New file.
5053         * gm2-libs-iso/M2EXCEPTION.def: New file.
5054         * gm2-libs-iso/M2EXCEPTION.mod: New file.
5055         * gm2-libs-iso/M2RTS.def: New file.
5056         * gm2-libs-iso/M2RTS.mod: New file.
5057         * gm2-libs-iso/MemStream.def: New file.
5058         * gm2-libs-iso/MemStream.mod: New file.
5059         * gm2-libs-iso/Preemptive.def: New file.
5060         * gm2-libs-iso/Preemptive.mod: New file.
5061         * gm2-libs-iso/Processes.def: New file.
5062         * gm2-libs-iso/Processes.mod: New file.
5063         * gm2-libs-iso/ProgramArgs.def: New file.
5064         * gm2-libs-iso/ProgramArgs.mod: New file.
5065         * gm2-libs-iso/README.texi: New file.
5066         * gm2-libs-iso/RTco.def: New file.
5067         * gm2-libs-iso/RTdata.def: New file.
5068         * gm2-libs-iso/RTdata.mod: New file.
5069         * gm2-libs-iso/RTentity.def: New file.
5070         * gm2-libs-iso/RTentity.mod: New file.
5071         * gm2-libs-iso/RTfio.def: New file.
5072         * gm2-libs-iso/RTfio.mod: New file.
5073         * gm2-libs-iso/RTgen.def: New file.
5074         * gm2-libs-iso/RTgen.mod: New file.
5075         * gm2-libs-iso/RTgenif.def: New file.
5076         * gm2-libs-iso/RTgenif.mod: New file.
5077         * gm2-libs-iso/RTio.def: New file.
5078         * gm2-libs-iso/RTio.mod: New file.
5079         * gm2-libs-iso/RandomNumber.def: New file.
5080         * gm2-libs-iso/RandomNumber.mod: New file.
5081         * gm2-libs-iso/RawIO.def: New file.
5082         * gm2-libs-iso/RawIO.mod: New file.
5083         * gm2-libs-iso/RealConv.def: New file.
5084         * gm2-libs-iso/RealConv.mod: New file.
5085         * gm2-libs-iso/RealIO.def: New file.
5086         * gm2-libs-iso/RealIO.mod: New file.
5087         * gm2-libs-iso/RealMath.def: New file.
5088         * gm2-libs-iso/RealMath.mod: New file.
5089         * gm2-libs-iso/RealStr.def: New file.
5090         * gm2-libs-iso/RealStr.mod: New file.
5091         * gm2-libs-iso/RndFile.def: New file.
5092         * gm2-libs-iso/RndFile.mod: New file.
5093         * gm2-libs-iso/SIOResult.def: New file.
5094         * gm2-libs-iso/SIOResult.mod: New file.
5095         * gm2-libs-iso/SLongIO.def: New file.
5096         * gm2-libs-iso/SLongIO.mod: New file.
5097         * gm2-libs-iso/SLongWholeIO.def: New file.
5098         * gm2-libs-iso/SLongWholeIO.mod: New file.
5099         * gm2-libs-iso/SRawIO.def: New file.
5100         * gm2-libs-iso/SRawIO.mod: New file.
5101         * gm2-libs-iso/SRealIO.def: New file.
5102         * gm2-libs-iso/SRealIO.mod: New file.
5103         * gm2-libs-iso/SShortIO.def: New file.
5104         * gm2-libs-iso/SShortIO.mod: New file.
5105         * gm2-libs-iso/SShortWholeIO.def: New file.
5106         * gm2-libs-iso/SShortWholeIO.mod: New file.
5107         * gm2-libs-iso/STextIO.def: New file.
5108         * gm2-libs-iso/STextIO.mod: New file.
5109         * gm2-libs-iso/SWholeIO.def: New file.
5110         * gm2-libs-iso/SWholeIO.mod: New file.
5111         * gm2-libs-iso/SYSTEM.def: New file.
5112         * gm2-libs-iso/SYSTEM.mod: New file.
5113         * gm2-libs-iso/Semaphores.def: New file.
5114         * gm2-libs-iso/Semaphores.mod: New file.
5115         * gm2-libs-iso/SeqFile.def: New file.
5116         * gm2-libs-iso/SeqFile.mod: New file.
5117         * gm2-libs-iso/ShortComplexMath.def: New file.
5118         * gm2-libs-iso/ShortComplexMath.mod: New file.
5119         * gm2-libs-iso/ShortIO.def: New file.
5120         * gm2-libs-iso/ShortIO.mod: New file.
5121         * gm2-libs-iso/ShortWholeIO.def: New file.
5122         * gm2-libs-iso/ShortWholeIO.mod: New file.
5123         * gm2-libs-iso/SimpleCipher.def: New file.
5124         * gm2-libs-iso/SimpleCipher.mod: New file.
5125         * gm2-libs-iso/StdChans.def: New file.
5126         * gm2-libs-iso/StdChans.mod: New file.
5127         * gm2-libs-iso/Storage.def: New file.
5128         * gm2-libs-iso/Storage.mod: New file.
5129         * gm2-libs-iso/StreamFile.def: New file.
5130         * gm2-libs-iso/StreamFile.mod: New file.
5131         * gm2-libs-iso/StringChan.def: New file.
5132         * gm2-libs-iso/StringChan.mod: New file.
5133         * gm2-libs-iso/Strings.def: New file.
5134         * gm2-libs-iso/Strings.mod: New file.
5135         * gm2-libs-iso/SysClock.def: New file.
5136         * gm2-libs-iso/SysClock.mod: New file.
5137         * gm2-libs-iso/TERMINATION.def: New file.
5138         * gm2-libs-iso/TERMINATION.mod: New file.
5139         * gm2-libs-iso/TermFile.def: New file.
5140         * gm2-libs-iso/TermFile.mod: New file.
5141         * gm2-libs-iso/TextIO.def: New file.
5142         * gm2-libs-iso/TextIO.mod: New file.
5143         * gm2-libs-iso/WholeConv.def: New file.
5144         * gm2-libs-iso/WholeConv.mod: New file.
5145         * gm2-libs-iso/WholeIO.def: New file.
5146         * gm2-libs-iso/WholeIO.mod: New file.
5147         * gm2-libs-iso/WholeStr.def: New file.
5148         * gm2-libs-iso/WholeStr.mod: New file.
5149         * gm2-libs-iso/wrapsock.c: New file.
5150         * gm2-libs-iso/wrapsock.def: New file.
5151         * gm2-libs-iso/wraptime.c: New file.
5152         * gm2-libs-iso/wraptime.def: New file.
5153         * gm2-libs-min/M2RTS.def: New file.
5154         * gm2-libs-min/M2RTS.mod: New file.
5155         * gm2-libs-min/SYSTEM.def: New file.
5156         * gm2-libs-min/SYSTEM.mod: New file.
5157         * gm2-libs-min/libc.c: New file.
5158         * gm2-libs-min/libc.def: New file.
5159         * gm2-libs-pim/BitBlockOps.def: New file.
5160         * gm2-libs-pim/BitBlockOps.mod: New file.
5161         * gm2-libs-pim/BitByteOps.def: New file.
5162         * gm2-libs-pim/BitByteOps.mod: New file.
5163         * gm2-libs-pim/BitWordOps.def: New file.
5164         * gm2-libs-pim/BitWordOps.mod: New file.
5165         * gm2-libs-pim/BlockOps.def: New file.
5166         * gm2-libs-pim/BlockOps.mod: New file.
5167         * gm2-libs-pim/Break.c: New file.
5168         * gm2-libs-pim/Break.def: New file.
5169         * gm2-libs-pim/CardinalIO.def: New file.
5170         * gm2-libs-pim/CardinalIO.mod: New file.
5171         * gm2-libs-pim/Conversions.def: New file.
5172         * gm2-libs-pim/Conversions.mod: New file.
5173         * gm2-libs-pim/DebugPMD.def: New file.
5174         * gm2-libs-pim/DebugPMD.mod: New file.
5175         * gm2-libs-pim/DebugTrace.def: New file.
5176         * gm2-libs-pim/DebugTrace.mod: New file.
5177         * gm2-libs-pim/Delay.def: New file.
5178         * gm2-libs-pim/Delay.mod: New file.
5179         * gm2-libs-pim/Display.def: New file.
5180         * gm2-libs-pim/Display.mod: New file.
5181         * gm2-libs-pim/ErrorCode.def: New file.
5182         * gm2-libs-pim/ErrorCode.mod: New file.
5183         * gm2-libs-pim/FileSystem.def: New file.
5184         * gm2-libs-pim/FileSystem.mod: New file.
5185         * gm2-libs-pim/FloatingUtilities.def: New file.
5186         * gm2-libs-pim/FloatingUtilities.mod: New file.
5187         * gm2-libs-pim/InOut.def: New file.
5188         * gm2-libs-pim/InOut.mod: New file.
5189         * gm2-libs-pim/Keyboard.def: New file.
5190         * gm2-libs-pim/Keyboard.mod: New file.
5191         * gm2-libs-pim/LongIO.def: New file.
5192         * gm2-libs-pim/LongIO.mod: New file.
5193         * gm2-libs-pim/NumberConversion.def: New file.
5194         * gm2-libs-pim/NumberConversion.mod: New file.
5195         * gm2-libs-pim/README.texi: New file.
5196         * gm2-libs-pim/Random.def: New file.
5197         * gm2-libs-pim/Random.mod: New file.
5198         * gm2-libs-pim/RealConversions.def: New file.
5199         * gm2-libs-pim/RealConversions.mod: New file.
5200         * gm2-libs-pim/RealInOut.def: New file.
5201         * gm2-libs-pim/RealInOut.mod: New file.
5202         * gm2-libs-pim/Strings.def: New file.
5203         * gm2-libs-pim/Strings.mod: New file.
5204         * gm2-libs-pim/Termbase.def: New file.
5205         * gm2-libs-pim/Termbase.mod: New file.
5206         * gm2-libs-pim/Terminal.def: New file.
5207         * gm2-libs-pim/Terminal.mod: New file.
5208         * gm2-libs-pim/TimeDate.def: New file.
5209         * gm2-libs-pim/TimeDate.mod: New file.
5210         * gm2-libs/ASCII.def: New file.
5211         * gm2-libs/ASCII.mod: New file.
5212         * gm2-libs/Args.def: New file.
5213         * gm2-libs/Args.mod: New file.
5214         * gm2-libs/Assertion.def: New file.
5215         * gm2-libs/Assertion.mod: New file.
5216         * gm2-libs/Break.def: New file.
5217         * gm2-libs/Break.mod: New file.
5218         * gm2-libs/Builtins.def: New file.
5219         * gm2-libs/Builtins.mod: New file.
5220         * gm2-libs/COROUTINES.def: New file.
5221         * gm2-libs/COROUTINES.mod: New file.
5222         * gm2-libs/CmdArgs.def: New file.
5223         * gm2-libs/CmdArgs.mod: New file.
5224         * gm2-libs/Debug.def: New file.
5225         * gm2-libs/Debug.mod: New file.
5226         * gm2-libs/DynamicStrings.def: New file.
5227         * gm2-libs/DynamicStrings.mod: New file.
5228         * gm2-libs/Environment.def: New file.
5229         * gm2-libs/Environment.mod: New file.
5230         * gm2-libs/FIO.def: New file.
5231         * gm2-libs/FIO.mod: New file.
5232         * gm2-libs/FormatStrings.def: New file.
5233         * gm2-libs/FormatStrings.mod: New file.
5234         * gm2-libs/FpuIO.def: New file.
5235         * gm2-libs/FpuIO.mod: New file.
5236         * gm2-libs/GetOpt.def: New file.
5237         * gm2-libs/GetOpt.mod: New file.
5238         * gm2-libs/IO.def: New file.
5239         * gm2-libs/IO.mod: New file.
5240         * gm2-libs/Indexing.def: New file.
5241         * gm2-libs/Indexing.mod: New file.
5242         * gm2-libs/LMathLib0.def: New file.
5243         * gm2-libs/LMathLib0.mod: New file.
5244         * gm2-libs/LegacyReal.def: New file.
5245         * gm2-libs/LegacyReal.mod: New file.
5246         * gm2-libs/M2Dependent.def: New file.
5247         * gm2-libs/M2Dependent.mod: New file.
5248         * gm2-libs/M2EXCEPTION.def: New file.
5249         * gm2-libs/M2EXCEPTION.mod: New file.
5250         * gm2-libs/M2LINK.def: New file.
5251         * gm2-libs/M2RTS.def: New file.
5252         * gm2-libs/M2RTS.mod: New file.
5253         * gm2-libs/MathLib0.def: New file.
5254         * gm2-libs/MathLib0.mod: New file.
5255         * gm2-libs/MemUtils.def: New file.
5256         * gm2-libs/MemUtils.mod: New file.
5257         * gm2-libs/NumberIO.def: New file.
5258         * gm2-libs/NumberIO.mod: New file.
5259         * gm2-libs/OptLib.def: New file.
5260         * gm2-libs/OptLib.mod: New file.
5261         * gm2-libs/PushBackInput.def: New file.
5262         * gm2-libs/PushBackInput.mod: New file.
5263         * gm2-libs/README.texi: New file.
5264         * gm2-libs/RTExceptions.def: New file.
5265         * gm2-libs/RTExceptions.mod: New file.
5266         * gm2-libs/RTint.def: New file.
5267         * gm2-libs/RTint.mod: New file.
5268         * gm2-libs/SArgs.def: New file.
5269         * gm2-libs/SArgs.mod: New file.
5270         * gm2-libs/SCmdArgs.def: New file.
5271         * gm2-libs/SCmdArgs.mod: New file.
5272         * gm2-libs/SEnvironment.def: New file.
5273         * gm2-libs/SEnvironment.mod: New file.
5274         * gm2-libs/SFIO.def: New file.
5275         * gm2-libs/SFIO.mod: New file.
5276         * gm2-libs/SMathLib0.def: New file.
5277         * gm2-libs/SMathLib0.mod: New file.
5278         * gm2-libs/SYSTEM.def: New file.
5279         * gm2-libs/SYSTEM.mod: New file.
5280         * gm2-libs/Scan.def: New file.
5281         * gm2-libs/Scan.mod: New file.
5282         * gm2-libs/Selective.def: New file.
5283         * gm2-libs/StdIO.def: New file.
5284         * gm2-libs/StdIO.mod: New file.
5285         * gm2-libs/Storage.def: New file.
5286         * gm2-libs/Storage.mod: New file.
5287         * gm2-libs/StrCase.def: New file.
5288         * gm2-libs/StrCase.mod: New file.
5289         * gm2-libs/StrIO.def: New file.
5290         * gm2-libs/StrIO.mod: New file.
5291         * gm2-libs/StrLib.def: New file.
5292         * gm2-libs/StrLib.mod: New file.
5293         * gm2-libs/StringConvert.def: New file.
5294         * gm2-libs/StringConvert.mod: New file.
5295         * gm2-libs/SysExceptions.def: New file.
5296         * gm2-libs/SysStorage.def: New file.
5297         * gm2-libs/SysStorage.mod: New file.
5298         * gm2-libs/TimeString.def: New file.
5299         * gm2-libs/TimeString.mod: New file.
5300         * gm2-libs/UnixArgs.def: New file.
5301         * gm2-libs/cbuiltin.def: New file.
5302         * gm2-libs/cgetopt.def: New file.
5303         * gm2-libs/config-host: New file.
5304         * gm2-libs/config-host.in: New file.
5305         * gm2-libs/cxxabi.def: New file.
5306         * gm2-libs/dtoa.def: New file.
5307         * gm2-libs/errno.def: New file.
5308         * gm2-libs/gdbif.def: New file.
5309         * gm2-libs/gdbif.mod: New file.
5310         * gm2-libs/gm2-libs-host.h.in: New file.
5311         * gm2-libs/ldtoa.def: New file.
5312         * gm2-libs/libc.def: New file.
5313         * gm2-libs/libm.def: New file.
5314         * gm2-libs/sckt.def: New file.
5315         * gm2-libs/termios.def: New file.
5316         * gm2-libs/wrapc.def: New file.
5317         * gm2config.h.in: New file.
5318         * gm2spec.cc: New file.
5319         * gm2version.h: New file.
5320         * init/README: New file.
5321         * init/mcinit: New file.
5322         * init/ppginit: New file.
5323         * lang-specs.h: New file.
5324         * lang.opt: New file.
5325         * m2-tree.def: New file.
5326         * m2-tree.h: New file.
5327         * m2.flex: New file.
5328         * m2pp.cc: New file.
5329         * m2pp.h: New file.
5330         * mc-boot-ch/GBuiltins.c: New file.
5331         * mc-boot-ch/GM2LINK.c: New file.
5332         * mc-boot-ch/GRTco.c: New file.
5333         * mc-boot-ch/GSYSTEM.c: New file.
5334         * mc-boot-ch/GSelective.c: New file.
5335         * mc-boot-ch/GSysExceptions.c: New file.
5336         * mc-boot-ch/GUnixArgs.cc: New file.
5337         * mc-boot-ch/Gabort.c: New file.
5338         * mc-boot-ch/Gcbuiltin.c: New file.
5339         * mc-boot-ch/Gdtoa.c: New file.
5340         * mc-boot-ch/Gerrno.c: New file.
5341         * mc-boot-ch/Gldtoa.c: New file.
5342         * mc-boot-ch/Glibc.c: New file.
5343         * mc-boot-ch/Glibm.c: New file.
5344         * mc-boot-ch/Gmcrts.c: New file.
5345         * mc-boot-ch/Gmcrts.h: New file.
5346         * mc-boot-ch/Gnetwork.h: New file.
5347         * mc-boot-ch/Gtermios.cc: New file.
5348         * mc-boot-ch/Gwrapc.c: New file.
5349         * mc-boot-ch/README: New file.
5350         * mc-boot-ch/m2rts.h: New file.
5351         * mc-boot-ch/network.c: New file.
5352         * mc-boot/GASCII.c: New file.
5353         * mc-boot/GASCII.h: New file.
5354         * mc-boot/GArgs.c: New file.
5355         * mc-boot/GArgs.h: New file.
5356         * mc-boot/GAssertion.c: New file.
5357         * mc-boot/GAssertion.h: New file.
5358         * mc-boot/GBreak.c: New file.
5359         * mc-boot/GBreak.h: New file.
5360         * mc-boot/GCOROUTINES.h: New file.
5361         * mc-boot/GCmdArgs.c: New file.
5362         * mc-boot/GCmdArgs.h: New file.
5363         * mc-boot/GDebug.c: New file.
5364         * mc-boot/GDebug.h: New file.
5365         * mc-boot/GDynamicStrings.c: New file.
5366         * mc-boot/GDynamicStrings.h: New file.
5367         * mc-boot/GEnvironment.c: New file.
5368         * mc-boot/GEnvironment.h: New file.
5369         * mc-boot/GFIO.c: New file.
5370         * mc-boot/GFIO.h: New file.
5371         * mc-boot/GFormatStrings.c: New file.
5372         * mc-boot/GFormatStrings.h: New file.
5373         * mc-boot/GFpuIO.c: New file.
5374         * mc-boot/GFpuIO.h: New file.
5375         * mc-boot/GIO.c: New file.
5376         * mc-boot/GIO.h: New file.
5377         * mc-boot/GIndexing.c: New file.
5378         * mc-boot/GIndexing.h: New file.
5379         * mc-boot/GM2Dependent.c: New file.
5380         * mc-boot/GM2Dependent.h: New file.
5381         * mc-boot/GM2EXCEPTION.c: New file.
5382         * mc-boot/GM2EXCEPTION.h: New file.
5383         * mc-boot/GM2LINK.h: New file.
5384         * mc-boot/GM2RTS.c: New file.
5385         * mc-boot/GM2RTS.h: New file.
5386         * mc-boot/GMemUtils.c: New file.
5387         * mc-boot/GMemUtils.h: New file.
5388         * mc-boot/GNumberIO.c: New file.
5389         * mc-boot/GNumberIO.h: New file.
5390         * mc-boot/GPushBackInput.c: New file.
5391         * mc-boot/GPushBackInput.h: New file.
5392         * mc-boot/GRTExceptions.c: New file.
5393         * mc-boot/GRTExceptions.h: New file.
5394         * mc-boot/GRTco.h: New file.
5395         * mc-boot/GRTint.c: New file.
5396         * mc-boot/GRTint.h: New file.
5397         * mc-boot/GSArgs.c: New file.
5398         * mc-boot/GSArgs.h: New file.
5399         * mc-boot/GSFIO.c: New file.
5400         * mc-boot/GSFIO.h: New file.
5401         * mc-boot/GSYSTEM.h: New file.
5402         * mc-boot/GSelective.h: New file.
5403         * mc-boot/GStdIO.c: New file.
5404         * mc-boot/GStdIO.h: New file.
5405         * mc-boot/GStorage.c: New file.
5406         * mc-boot/GStorage.h: New file.
5407         * mc-boot/GStrCase.c: New file.
5408         * mc-boot/GStrCase.h: New file.
5409         * mc-boot/GStrIO.c: New file.
5410         * mc-boot/GStrIO.h: New file.
5411         * mc-boot/GStrLib.c: New file.
5412         * mc-boot/GStrLib.h: New file.
5413         * mc-boot/GStringConvert.c: New file.
5414         * mc-boot/GStringConvert.h: New file.
5415         * mc-boot/GSysExceptions.h: New file.
5416         * mc-boot/GSysStorage.c: New file.
5417         * mc-boot/GSysStorage.h: New file.
5418         * mc-boot/GTimeString.c: New file.
5419         * mc-boot/GTimeString.h: New file.
5420         * mc-boot/GUnixArgs.h: New file.
5421         * mc-boot/Galists.c: New file.
5422         * mc-boot/Galists.h: New file.
5423         * mc-boot/Gdecl.c: New file.
5424         * mc-boot/Gdecl.h: New file.
5425         * mc-boot/Gdtoa.h: New file.
5426         * mc-boot/Gerrno.h: New file.
5427         * mc-boot/Gkeyc.c: New file.
5428         * mc-boot/Gkeyc.h: New file.
5429         * mc-boot/Gldtoa.h: New file.
5430         * mc-boot/Glibc.h: New file.
5431         * mc-boot/Glibm.h: New file.
5432         * mc-boot/Glists.c: New file.
5433         * mc-boot/Glists.h: New file.
5434         * mc-boot/GmcComment.c: New file.
5435         * mc-boot/GmcComment.h: New file.
5436         * mc-boot/GmcComp.c: New file.
5437         * mc-boot/GmcComp.h: New file.
5438         * mc-boot/GmcDebug.c: New file.
5439         * mc-boot/GmcDebug.h: New file.
5440         * mc-boot/GmcError.c: New file.
5441         * mc-boot/GmcError.h: New file.
5442         * mc-boot/GmcFileName.c: New file.
5443         * mc-boot/GmcFileName.h: New file.
5444         * mc-boot/GmcLexBuf.c: New file.
5445         * mc-boot/GmcLexBuf.h: New file.
5446         * mc-boot/GmcMetaError.c: New file.
5447         * mc-boot/GmcMetaError.h: New file.
5448         * mc-boot/GmcOptions.c: New file.
5449         * mc-boot/GmcOptions.h: New file.
5450         * mc-boot/GmcPreprocess.c: New file.
5451         * mc-boot/GmcPreprocess.h: New file.
5452         * mc-boot/GmcPretty.c: New file.
5453         * mc-boot/GmcPretty.h: New file.
5454         * mc-boot/GmcPrintf.c: New file.
5455         * mc-boot/GmcPrintf.h: New file.
5456         * mc-boot/GmcQuiet.c: New file.
5457         * mc-boot/GmcQuiet.h: New file.
5458         * mc-boot/GmcReserved.c: New file.
5459         * mc-boot/GmcReserved.h: New file.
5460         * mc-boot/GmcSearch.c: New file.
5461         * mc-boot/GmcSearch.h: New file.
5462         * mc-boot/GmcStack.c: New file.
5463         * mc-boot/GmcStack.h: New file.
5464         * mc-boot/GmcStream.c: New file.
5465         * mc-boot/GmcStream.h: New file.
5466         * mc-boot/Gmcflex.h: New file.
5467         * mc-boot/Gmcp1.c: New file.
5468         * mc-boot/Gmcp1.h: New file.
5469         * mc-boot/Gmcp2.c: New file.
5470         * mc-boot/Gmcp2.h: New file.
5471         * mc-boot/Gmcp3.c: New file.
5472         * mc-boot/Gmcp3.h: New file.
5473         * mc-boot/Gmcp4.c: New file.
5474         * mc-boot/Gmcp4.h: New file.
5475         * mc-boot/Gmcp5.c: New file.
5476         * mc-boot/Gmcp5.h: New file.
5477         * mc-boot/GnameKey.c: New file.
5478         * mc-boot/GnameKey.h: New file.
5479         * mc-boot/Gpth.h: New file.
5480         * mc-boot/GsymbolKey.c: New file.
5481         * mc-boot/GsymbolKey.h: New file.
5482         * mc-boot/Gtermios.h: New file.
5483         * mc-boot/Gtop.c: New file.
5484         * mc-boot/Gvarargs.c: New file.
5485         * mc-boot/Gvarargs.h: New file.
5486         * mc-boot/Gwlists.c: New file.
5487         * mc-boot/Gwlists.h: New file.
5488         * mc-boot/Gwrapc.h: New file.
5489         * mc-boot/README: New file.
5490         * mc/Indexing.def: New file.
5491         * mc/Indexing.mod: New file.
5492         * mc/README: New file.
5493         * mc/alists.def: New file.
5494         * mc/alists.mod: New file.
5495         * mc/decl.def: New file.
5496         * mc/decl.mod: New file.
5497         * mc/decl.mod-extra: New file.
5498         * mc/keyc.def: New file.
5499         * mc/keyc.mod: New file.
5500         * mc/lists.def: New file.
5501         * mc/lists.mod: New file.
5502         * mc/m2flex.def: New file.
5503         * mc/mc.flex: New file.
5504         * mc/mcComment.def: New file.
5505         * mc/mcComment.h: New file.
5506         * mc/mcComment.mod: New file.
5507         * mc/mcComp.def: New file.
5508         * mc/mcComp.mod: New file.
5509         * mc/mcDebug.def: New file.
5510         * mc/mcDebug.mod: New file.
5511         * mc/mcError.def: New file.
5512         * mc/mcError.mod: New file.
5513         * mc/mcFileName.def: New file.
5514         * mc/mcFileName.mod: New file.
5515         * mc/mcLexBuf.def: New file.
5516         * mc/mcLexBuf.h: New file.
5517         * mc/mcLexBuf.mod: New file.
5518         * mc/mcMetaError.def: New file.
5519         * mc/mcMetaError.mod: New file.
5520         * mc/mcOptions.def: New file.
5521         * mc/mcOptions.mod: New file.
5522         * mc/mcPreprocess.def: New file.
5523         * mc/mcPreprocess.mod: New file.
5524         * mc/mcPretty.def: New file.
5525         * mc/mcPretty.mod: New file.
5526         * mc/mcPrintf.def: New file.
5527         * mc/mcPrintf.mod: New file.
5528         * mc/mcQuiet.def: New file.
5529         * mc/mcQuiet.mod: New file.
5530         * mc/mcReserved.def: New file.
5531         * mc/mcReserved.h: New file.
5532         * mc/mcReserved.mod: New file.
5533         * mc/mcSearch.def: New file.
5534         * mc/mcSearch.mod: New file.
5535         * mc/mcStack.def: New file.
5536         * mc/mcStack.mod: New file.
5537         * mc/mcStream.def: New file.
5538         * mc/mcStream.mod: New file.
5539         * mc/mcflex.def: New file.
5540         * mc/mcp1.bnf: New file.
5541         * mc/mcp1.def: New file.
5542         * mc/mcp2.bnf: New file.
5543         * mc/mcp2.def: New file.
5544         * mc/mcp3.bnf: New file.
5545         * mc/mcp3.def: New file.
5546         * mc/mcp4.bnf: New file.
5547         * mc/mcp4.def: New file.
5548         * mc/mcp5.bnf: New file.
5549         * mc/mcp5.def: New file.
5550         * mc/nameKey.def: New file.
5551         * mc/nameKey.mod: New file.
5552         * mc/symbolKey.def: New file.
5553         * mc/symbolKey.mod: New file.
5554         * mc/top.mod: New file.
5555         * mc/varargs.def: New file.
5556         * mc/varargs.mod: New file.
5557         * mc/wlists.def: New file.
5558         * mc/wlists.mod: New file.
5559         * pge-boot/GASCII.c: New file.
5560         * pge-boot/GASCII.h: New file.
5561         * pge-boot/GArgs.c: New file.
5562         * pge-boot/GArgs.h: New file.
5563         * pge-boot/GAssertion.c: New file.
5564         * pge-boot/GAssertion.h: New file.
5565         * pge-boot/GBreak.h: New file.
5566         * pge-boot/GBuiltins.c: New file.
5567         * pge-boot/GCmdArgs.h: New file.
5568         * pge-boot/GDebug.c: New file.
5569         * pge-boot/GDebug.h: New file.
5570         * pge-boot/GDynamicStrings.c: New file.
5571         * pge-boot/GDynamicStrings.h: New file.
5572         * pge-boot/GEnvironment.h: New file.
5573         * pge-boot/GFIO.c: New file.
5574         * pge-boot/GFIO.h: New file.
5575         * pge-boot/GFormatStrings.h: New file.
5576         * pge-boot/GFpuIO.h: New file.
5577         * pge-boot/GIO.c: New file.
5578         * pge-boot/GIO.h: New file.
5579         * pge-boot/GIndexing.c: New file.
5580         * pge-boot/GIndexing.h: New file.
5581         * pge-boot/GLists.c: New file.
5582         * pge-boot/GLists.h: New file.
5583         * pge-boot/GM2Dependent.c: New file.
5584         * pge-boot/GM2Dependent.h: New file.
5585         * pge-boot/GM2EXCEPTION.c: New file.
5586         * pge-boot/GM2EXCEPTION.h: New file.
5587         * pge-boot/GM2LINK.c: New file.
5588         * pge-boot/GM2LINK.h: New file.
5589         * pge-boot/GM2RTS.c: New file.
5590         * pge-boot/GM2RTS.h: New file.
5591         * pge-boot/GNameKey.c: New file.
5592         * pge-boot/GNameKey.h: New file.
5593         * pge-boot/GNumberIO.c: New file.
5594         * pge-boot/GNumberIO.h: New file.
5595         * pge-boot/GOutput.c: New file.
5596         * pge-boot/GOutput.h: New file.
5597         * pge-boot/GPushBackInput.c: New file.
5598         * pge-boot/GPushBackInput.h: New file.
5599         * pge-boot/GRTExceptions.c: New file.
5600         * pge-boot/GRTExceptions.h: New file.
5601         * pge-boot/GRTco.c: New file.
5602         * pge-boot/GSArgs.h: New file.
5603         * pge-boot/GSEnvironment.h: New file.
5604         * pge-boot/GSFIO.c: New file.
5605         * pge-boot/GSFIO.h: New file.
5606         * pge-boot/GSYSTEM.c: New file.
5607         * pge-boot/GSYSTEM.h: New file.
5608         * pge-boot/GScan.h: New file.
5609         * pge-boot/GSelective.c: New file.
5610         * pge-boot/GStdIO.c: New file.
5611         * pge-boot/GStdIO.h: New file.
5612         * pge-boot/GStorage.c: New file.
5613         * pge-boot/GStorage.h: New file.
5614         * pge-boot/GStrCase.c: New file.
5615         * pge-boot/GStrCase.h: New file.
5616         * pge-boot/GStrIO.c: New file.
5617         * pge-boot/GStrIO.h: New file.
5618         * pge-boot/GStrLib.c: New file.
5619         * pge-boot/GStrLib.h: New file.
5620         * pge-boot/GStringConvert.h: New file.
5621         * pge-boot/GSymbolKey.c: New file.
5622         * pge-boot/GSymbolKey.h: New file.
5623         * pge-boot/GSysExceptions.c: New file.
5624         * pge-boot/GSysExceptions.h: New file.
5625         * pge-boot/GSysStorage.c: New file.
5626         * pge-boot/GSysStorage.h: New file.
5627         * pge-boot/GTimeString.h: New file.
5628         * pge-boot/GUnixArgs.cc: New file.
5629         * pge-boot/GUnixArgs.h: New file.
5630         * pge-boot/Gabort.c: New file.
5631         * pge-boot/Gbnflex.c: New file.
5632         * pge-boot/Gbnflex.h: New file.
5633         * pge-boot/Gcbuiltin.c: New file.
5634         * pge-boot/Gdtoa.c: New file.
5635         * pge-boot/Gdtoa.h: New file.
5636         * pge-boot/Gerrno.c: New file.
5637         * pge-boot/Gerrno.h: New file.
5638         * pge-boot/Gldtoa.c: New file.
5639         * pge-boot/Gldtoa.h: New file.
5640         * pge-boot/Glibc.c: New file.
5641         * pge-boot/Glibc.h: New file.
5642         * pge-boot/Glibm.c: New file.
5643         * pge-boot/Glibm.h: New file.
5644         * pge-boot/Gmcrts.c: New file.
5645         * pge-boot/Gmcrts.h: New file.
5646         * pge-boot/Gnetwork.h: New file.
5647         * pge-boot/Gpge.c: New file.
5648         * pge-boot/Gtermios.cc: New file.
5649         * pge-boot/Gtermios.h: New file.
5650         * pge-boot/Gwrapc.c: New file.
5651         * pge-boot/Gwrapc.h: New file.
5652         * pge-boot/README: New file.
5653         * pge-boot/m2rts.h: New file.
5654         * pge-boot/main.c: New file.
5655         * pge-boot/network.c: New file.
5656         * plugin/README: New file.
5657         * plugin/m2rte.cc: New file.
5658         * tools-src/README: New file.
5659         * tools-src/boilerplate.py: New file.
5660         * tools-src/buildpg: New file.
5661         * tools-src/calcpath: New file.
5662         * tools-src/def2doc.py: New file.
5663         * tools-src/makeSystem: New file.
5664         * tools-src/mklink.c: New file.
5665         * tools-src/tidydates.py: New file.
5666         * images/LICENSE.IMG: New file.
5667         * images/gnupng: New file.
5668         * images/gnu.eps: New file.
5669         * version.c: New file.
5670         * configure: Rebuilt.
5671         * target-independent/Builtins.texi: New file.
5672         * target-independent/SYSTEM-iso.texi: New file.
5673         * target-independent/SYSTEM-pim.texi: New file.
5674         * target-independent/gm2-libs.texi: New file.
5675         * target-independent/readme.txt: New file.