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