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