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