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