1 2024-11-15 Gaius Mulley <gaiusmod2@gmail.com>
4 * gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to
6 (IsUserType): Test against ZType.
7 (MixTypesDecl): Test for ZType.
8 * gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to
10 (CodeLastForIterator): New procedure.
11 (FoldLastForIterator): Ditto.
12 (PerformLastForIterator): Ditto.
13 (CodeStatement): Add case clause for LastForIteratorOp.
14 (ErrorMessageDecl): Add iserror parameter.
15 Call MetaErrorDecl with iserror parameter.
16 (checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter.
17 (CheckBinaryExpressionTypes): Ditto.
18 (CheckElementSetTypes): Ditto.
19 * gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment
20 detailing the fall back when UnknownTokenNo is encountered.
21 (MakeVirtual2Tok): Ditto.
22 * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against
24 (MakeVirtual2Tok): Ditto.
25 * gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter.
26 * gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error
28 Issue warning if error is FALSE.
29 * gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp.
30 * gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause
32 (CheckAddTuple2Read): New procedure.
33 (BuildForLoopToRangeCheck): Remove.
34 (ForLoopLastIteratorVariable): Ditto.
35 (ForLoopLastIteratorConstant): Ditto.
36 (ForLoopLastIterator): Reimplement.
37 (BuildForToByDo): Remove ByType from call to ForLoopLastIterator.
38 (WriteQuad): New case clause LastForIteratorOp.
39 (WriteOperator): Ditto.
40 * gm2-compiler/M2Students.def
41 (CheckForVariableThatLooksLikeKeyword): Replace with ...
42 (CheckVariableAgainstKeyword): ... this.
43 * gm2-compiler/M2Students.mod
44 (CheckForVariableThatLooksLikeKeyword): Replace with ...
45 (CheckVariableAgainstKeyword): ... this.
46 * gm2-compiler/M2SymInit.mod (CheckLastForIterator): New
48 (CheckReadBeforeInitQuad): New case clause to call
50 * gm2-compiler/P2SymBuild.mod: Replace
51 CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword.
53 2024-11-15 Gaius Mulley <gaiusmod2@gmail.com>
55 * Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c):
57 (m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto.
58 (m2/gm2-compiler-boot/P1Build.c): Ditto.
59 (m2/gm2-compiler-boot/P1Build.o): Ditto.
60 (m2/gm2-compiler-boot/P2Build.c): Ditto.
61 (m2/gm2-compiler-boot/P2Build.o): Ditto.
62 (m2/gm2-compiler-boot/P3Build.c): Ditto.
63 (m2/gm2-compiler-boot/P3Build.o): Ditto.
64 (m2/gm2-compiler-boot/PCBuild.c): Ditto.
65 (m2/gm2-compiler-boot/PCBuild.o): Ditto.
66 (m2/gm2-compiler-boot/PHBuild.c): Ditto.
67 (m2/gm2-compiler-boot/PHBuild.o): Ditto.
69 2024-11-11 Gaius Mulley <gaiusmod2@gmail.com>
71 * gm2-compiler/M2Base.def (MixTypes): Rename parameters.
72 (MixTypesDecl): New procedure function.
73 * gm2-compiler/M2Base.mod (BuildOrdFunctions): Add
74 DefProcedure parameter to PutFunction.
75 (BuildTruncFunctions): Ditto.
76 (BuildFloatFunctions): Ditto.
77 (BuildIntFunctions): Ditto.
78 (InitBaseFunctions): Ditto.
79 (MixTypesDecl): New procedure function.
80 (MixTypes): Reimplement.
81 * gm2-compiler/M2Check.mod (checkProcType): Replace
82 NoOfParam with NoOfParamAny.
83 Replace IsVarParam with IsVarParamAny.
84 (checkProcedureProcType): Ditto.
85 * gm2-compiler/M2Error.def: Remove unnecessary export qualified list.
86 * gm2-compiler/M2GCCDeclare.mod: Replace NoOfParam with NoOfParamAny.
87 Replace IsVarParam with IsVarParamAny.
88 (DeclareProcedureToGccWholeProgram): Rename son to
90 (DeclareProcedureToGccSeparateProgram): Ditto.
91 (PrintKind): New procedure.
92 (PrintProcedureParameters): Ditto.
93 (PrintProcedureReturnType): Ditto.
94 (PrintProcedure): Reimplement.
95 (PrintProcTypeParameters): New procedure.
96 (PrintProcType): Ditto.
97 (DeclareProcType): Rename Son to Parameter.
98 * gm2-compiler/M2GenGCC.mod: Replace NoOfParam with NoOfParamAny.
99 Replace IsVarParam with IsVarParamAny.
100 (ErrorMessageDecl): New procedure.
101 (checkIncorrectMeta): Replace call to MetaErrorT2 with
103 (ComparisonMixTypes): Add varleft and varright parameters.
104 Adjust all callers of ComparisonMixTypes.
105 * gm2-compiler/M2MetaError.def (MetaErrorDecl): New procedure.
106 * gm2-compiler/M2MetaError.mod (MetaErrorDecl): New procedure.
107 * gm2-compiler/M2Options.def (SetXCode): Add -fd flag description
109 * gm2-compiler/M2Options.mod (SetXCode): Add -fd flag description
111 * gm2-compiler/M2Quads.mod (CheckBreak): New procedure.
112 Replace NoOfParam with NoOfParamAny.
113 Replace IsVarParam with IsVarParamAny.
114 (FailParameter): Reimplement using GetVarDeclFullTok.
115 Generate message for formal parameter, actual parameter and
116 declaration of actual parameter.
117 (WarnParameter): Ditto.
118 (CheckBuildFunction): Reimplement error message using MetaErrorT1.
119 * gm2-compiler/M2Range.mod: Replace NoOfParam with NoOfParamAny.
120 Replace IsVarParam with IsVarParamAny.
121 * gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Call
122 PutProcedureDefined after every procedure declaration.
123 (DeclareArgEnvParams): Add ProperProcedure parameter to PutParam.
124 * gm2-compiler/M2Size.mod (MakeSize): Add DefProcedure parameter
126 * gm2-compiler/M2Swig.mod: Replace NoOfParam with NoOfParamAny.
127 Replace IsVarParam with IsVarParamAny.
128 * gm2-compiler/M2SymInit.mod: Ditto.
129 * gm2-compiler/M2System.mod (InitSystem): Add DefProcedure
130 parameter to PutFunction.
131 * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
132 (EndBuildProcedure): Ditto.
133 (EndBuildForward): Ditto.
134 * gm2-compiler/P2Build.bnf (BuildProcedureDefinedByForward):
136 (BuildProcedureDefinedByProper): Ditto.
137 (ForwardDeclaration): Remove BuildProcedureDefinedByForward.
138 (BuildNoReturnAttribute): Remove parameter.
139 * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): Remove
141 (BuildProcedureDefinedByForward): Remove.
142 (BuildProcedureDefinedByProper): Ditto.
143 * gm2-compiler/P2SymBuild.mod (Import): Remove
144 AreParametersDefinedInDefinition,
145 AreParametersDefinedInImplementation,
146 AreProcedureParametersDefined,
147 ParametersDefinedInDefinition,
148 ParametersDefinedInImplementation,
149 GetProcedureDeclaredDefinition,
150 GetProcedureDeclaredForward,
151 GetProcedureDeclaredProper,
152 GetParametersDefinedByForward,
153 GetParametersDefinedByProper and
154 PutProcedureNoReturn.
155 Add PutProcedureParametersDefined,
156 GetProcedureParametersDefined,
157 GetProcedureKindDesc,
158 GetProcedureDeclaredTok,
163 PutProcedureNoReturn and
165 (Debug): New procedure.
166 (P2StartBuildDefModule): Space formatting.
167 (BuildVariable): Reimplement to record full declaration.
168 (StartBuildProcedure): Reimplement using token to determine
169 the kind of procedure.
170 (BuildProcedureHeading): Ditto.
171 (BuildFPSection): Ditto.
172 (BuildVarArgs): Ditto.
173 (BuildOptArg): Ditto.
174 (BuildProcedureDefinedByForward): Remove.
175 (BuildProcedureDefinedByProper): Ditto.
176 (BuildFormalParameterSection): Reimplement so that the
177 quad stack is unchanged.
178 (CheckFormalParameterSection): Ditto.
179 (RemoveFPParameters): New procedure.
180 (ParameterError): Reimplement.
181 (StartBuildFormalParameters): Add annotation.
182 (ParameterMismatch): Reimplement.
183 (EndBuildFormalParameters): Reimplement to check against
185 (GetSourceDesc): Remove.
186 (GetCurSrcDesc): Ditto.
187 (GetDeclared): Ditto.
188 (ReturnTypeMismatch): Reimplement.
189 (BuildFunction): Ditto.
190 (BuildOptFunction): Ditto.
191 (CheckOptFunction): New procedure.
192 (BuildNoReturnAttribute): Remove parameter and obtain
193 procedure symbol from quad stack.
194 (CheckProcedureReturn): New procedure.
195 * gm2-compiler/P3SymBuild.mod (BuildOptArgInitializer):
196 Preserve ProcSym tok on the quad stack.
198 * gm2-compiler/PCSymBuild.mod (fixupProcedureType): Replace
199 NoOfParam with NoOfParamAny.
200 * gm2-compiler/SymbolTable.def (GetNthParam): Add ProcedureKind
202 (PutFunction): Ditto.
203 (PutOptFunction): Ditto.
204 (IsReturnOptional): Ditto.
206 (PutVarParam): Ditto.
207 (PutParamName): Ditto.
208 (PutProcedureNoReturn): Ditto.
209 (IsProcedureNoReturn): Ditto.
211 (IsUnboundedParam): Ditto.
213 (ForeachLocalSymDo): Ditto.
214 (GetProcedureKind): Ditto.
215 (GetProcedureDeclaredTok): Ditto.
216 (PutProcedureDeclaredTok): Ditto.
217 (GetReturnTypeTok): Ditto.
218 (PutReturnTypeTok): Ditto.
219 (PutParametersDefinedByForward): New procedure.
220 (PutProcedureParametersDefined): Ditto.
221 (PutProcedureDefined): Ditto.
222 (GetParametersDefinedByProper): Ditto.
223 (GetProcedureDeclaredForward): Ditto.
224 (GetProcedureDeclaredProper): Ditto.
225 (PutProcedureDeclaredProper): Ditto.
226 (GetProcedureDeclaredDefinition): Ditto.
227 (PutProcedureDeclaredDefinition): Ditto.
228 (GetProcedureDefined): Ditto.
229 (PutUseOptArg): Ditto.
231 (PutOptArgInit): Ditto.
232 (SetReturnOptional): Ditto.
233 (UsesOptArgAny): Ditto.
234 (GetProcedureKindDesc): Ditto.
235 (IsReturnOptionalAny): New procedure function.
236 (GetNthParamAny): Ditto.
237 (NoOfParamAny): Ditto.
238 (IsProcedureAnyNoReturn): Ditto.
239 (AreParametersDefinedInImplementation): Remove.
240 (ParametersDefinedInImplementation): Ditto.
241 (AreParametersDefinedInDefinition): Ditto.
242 (AreProcedureParametersDefined): Ditto.
243 (ParametersDefinedInDefinition): Ditto.
244 (ProcedureParametersDefined): Ditto.
245 (PutParametersDefinedByProper): Ditto.
246 (PutProcedureDeclaredForward): Ditto.
247 (GetParametersDefinedByForward): Ditto.
248 (GetProcedureParametersDefined): Ditto.
251 (PushParamSize): Ditto.
252 (PushSumOfLocalVarSize): Ditto.
253 (PushSumOfParamSize): Ditto.
255 (PopSumOfParamSize): Ditto.
256 * gm2-compiler/SymbolTable.mod (MakeProcedure): Reimplement.
257 (PutProcedureNoReturn): Add ProcedureKind parameter.
258 (GetNthParam): Ditto.
259 (PutFunction): Ditto.
260 (PutOptFunction): Ditto.
261 (IsReturnOptional): Ditto.
262 (MakeVariableForParam): Ditto.
264 (PutVarParam): Ditto.
265 (PutParamName): Ditto.
266 (AddParameter): Ditto.
268 (IsVarParamAny): Ditto.
270 (HasVarParameters): Ditto.
271 (IsUnboundedParam): Ditto.
272 (PutUseVarArgs): Ditto.
273 (UsesVarArgs): Ditto.
274 (PutUseOptArg): Ditto.
276 (UsesOptArgAny): Ditto.
277 (PutOptArgInit): Ditto.
278 (IsProcedure): Ditto.
282 (IsEnumeration): Ditto.
283 (IsUnbounded): Ditto.
285 (IsSetPacked): Ditto.
286 (CheckUnbounded): Ditto.
288 (IsModuleWithinProcedure): Ditto.
289 (GetDeclaredDef): Ditto.
290 (GetDeclaredMod): Ditto.
291 (GetDeclaredFor): Ditto.
292 (GetProcedureDeclaredForward): Ditto.
293 (GetProcedureKind): Ditto.
294 (PutProcedureDeclaredForward): Ditto.
295 (GetProcedureDeclaredTok): Ditto.
296 (GetProcedureDeclaredProper): Ditto.
297 (PutProcedureDeclaredTok): Ditto.
298 (PutProcedureDeclaredProper): Ditto.
299 (GetReturnTypeTok): Ditto.
300 (GetProcedureDeclaredDefinition): Ditto.
301 (PutReturnTypeTok): Ditto.
302 (PutProcedureDeclaredDefinition): Ditto.
303 (GetProcedureKindDesc): Ditto.
304 (IsProcedureVariable): Ditto.
305 (IsAModula2Type): Ditto.
307 (ProcedureParametersDefined): Ditto.
308 (AreParametersDefinedInImplementation): Remove.
309 (AreParametersDefinedInDefinition): Ditto.
310 (AreProcedureParametersDefined): Ditto.
311 (IsSizeSolved): Ditto.
312 (IsOffsetSolved): Ditto.
313 (IsValueSolved): Ditto.
314 (IsSumOfParamSizeSolved): Ditto.
319 (PushParamSize): Ditto.
320 (PushSumOfLocalVarSize): Ditto.
321 (PushSumOfParamSize): Ditto.
322 (PushVarSize): Ditto.
326 (PopSumOfParamSize): Ditto.
327 (PutParametersDefinedByForward): New procedure.
328 (PutProcedureParametersDefined): Ditto.
329 (PutProcedureDefined): Ditto.
330 (GetParametersDefinedByProper): Ditto.
331 (GetProcedureDeclaredForward): Ditto.
332 (GetProcedureDeclaredProper): Ditto.
333 (PutProcedureDeclaredProper): Ditto.
334 (GetProcedureDeclaredDefinition): Ditto.
335 (PutProcedureDeclaredDefinition): Ditto.
336 (GetProcedureDefined): Ditto.
337 (PutUseOptArg): Ditto.
339 (PutOptArgInit): Ditto.
340 (SetReturnOptional): Ditto.
341 (UsesOptArgAny): Ditto.
342 (GetProcedureKindDesc): Ditto.
343 (PutParametersDefinedByProper): Ditto.
344 (GetParametersDefinedByProper): Ditto.
345 (IsReturnOptionalAny): New procedure function.
346 (IsProcedureAnyDefaultBoolean): Ditto.
347 (IsProcedureAnyBoolean): Ditto.
348 (IsProcedureAnyNoReturn): Ditto.
349 (GetNthParamAny): Ditto.
350 (NoOfParamAny): Ditto.
351 (IsProcedureAnyNoReturn): Ditto.
352 (GetProcedureKind): Ditto.
353 (IsVarParamAny): Ditto.
354 (IsUnboundedParamAny): Ditto.
355 (ForeachParamSymDo): New comment.
356 * gm2-libs-coroutines/SYSTEM.mod: Reformat.
358 2024-11-09 Jakub Jelinek <jakub@redhat.com>
360 * Make-lang.in (m2_OBJS): Add $(BUILD-LIBS-BOOT),
361 $(BUILD-COMPILER-BOOT) and $(MC_LIBS).
363 2024-10-25 Jakub Jelinek <jakub@redhat.com>
365 * mc-boot/GFpuIO.cc: Remove trailing whitespace.
366 * mc-boot/GFIO.cc: Likewise.
367 * mc-boot/GFormatStrings.cc: Likewise.
368 * mc-boot/GCmdArgs.cc: Likewise.
369 * mc-boot/GDebug.h: Likewise.
370 * mc-boot/GM2Dependent.cc: Likewise.
371 * mc-boot/GRTint.cc: Likewise.
372 * mc-boot/GDebug.cc: Likewise.
373 * mc-boot/GmcError.cc: Likewise.
374 * mc-boot/Gmcp4.cc: Likewise.
375 * mc-boot/GM2RTS.cc: Likewise.
376 * mc-boot/GIO.cc: Likewise.
377 * mc-boot/Gmcp5.cc: Likewise.
378 * mc-boot/GDynamicStrings.cc: Likewise.
379 * mc-boot/Gmcp1.cc: Likewise.
380 * mc-boot/GFormatStrings.h: Likewise.
381 * mc-boot/Gmcp2.cc: Likewise.
382 * mc-boot/Gmcp3.cc: Likewise.
383 * pge-boot/GFIO.cc: Likewise.
384 * pge-boot/GDebug.h: Likewise.
385 * pge-boot/GM2Dependent.cc: Likewise.
386 * pge-boot/GDebug.cc: Likewise.
387 * pge-boot/GM2RTS.cc: Likewise.
388 * pge-boot/GSymbolKey.cc: Likewise.
389 * pge-boot/GIO.cc: Likewise.
390 * pge-boot/GIndexing.cc: Likewise.
391 * pge-boot/GDynamicStrings.cc: Likewise.
392 * pge-boot/GFormatStrings.h: Likewise.
394 2024-10-24 David Malcolm <dmalcolm@redhat.com>
395 Gaius Mulley <gaiusmod2@gmail.com>
398 * gm2-gcc/gcc-consolidation.h: Add #define INCLUDE_MEMORY.
399 * gm2-gcc/m2configure.cc: Likewise.
400 * mc-boot/GASCII.cc: Regenerate.
401 * mc-boot/GASCII.h: Ditto.
402 * mc-boot/GArgs.cc: Ditto.
403 * mc-boot/GArgs.h: Ditto.
404 * mc-boot/GAssertion.cc: Ditto.
405 * mc-boot/GAssertion.h: Ditto.
406 * mc-boot/GBreak.cc: Ditto.
407 * mc-boot/GBreak.h: Ditto.
408 * mc-boot/GCOROUTINES.h: Ditto.
409 * mc-boot/GCmdArgs.cc: Ditto.
410 * mc-boot/GCmdArgs.h: Ditto.
411 * mc-boot/GDebug.cc: Ditto.
412 * mc-boot/GDebug.h: Ditto.
413 * mc-boot/GDynamicStrings.cc: Ditto.
414 * mc-boot/GDynamicStrings.h: Ditto.
415 * mc-boot/GEnvironment.cc: Ditto.
416 * mc-boot/GEnvironment.h: Ditto.
417 * mc-boot/GFIO.cc: Ditto.
418 * mc-boot/GFIO.h: Ditto.
419 * mc-boot/GFormatStrings.cc: Ditto.
420 * mc-boot/GFormatStrings.h: Ditto.
421 * mc-boot/GFpuIO.cc: Ditto.
422 * mc-boot/GFpuIO.h: Ditto.
423 * mc-boot/GIO.cc: Ditto.
424 * mc-boot/GIO.h: Ditto.
425 * mc-boot/GIndexing.cc: Ditto.
426 * mc-boot/GIndexing.h: Ditto.
427 * mc-boot/GM2Dependent.cc: Ditto.
428 * mc-boot/GM2Dependent.h: Ditto.
429 * mc-boot/GM2EXCEPTION.cc: Ditto.
430 * mc-boot/GM2EXCEPTION.h: Ditto.
431 * mc-boot/GM2RTS.cc: Ditto.
432 * mc-boot/GM2RTS.h: Ditto.
433 * mc-boot/GMemUtils.cc: Ditto.
434 * mc-boot/GMemUtils.h: Ditto.
435 * mc-boot/GNumberIO.cc: Ditto.
436 * mc-boot/GNumberIO.h: Ditto.
437 * mc-boot/GPushBackInput.cc: Ditto.
438 * mc-boot/GPushBackInput.h: Ditto.
439 * mc-boot/GRTExceptions.cc: Ditto.
440 * mc-boot/GRTExceptions.h: Ditto.
441 * mc-boot/GRTco.h: Ditto.
442 * mc-boot/GRTentity.h: Ditto.
443 * mc-boot/GRTint.cc: Ditto.
444 * mc-boot/GRTint.h: Ditto.
445 * mc-boot/GSArgs.cc: Ditto.
446 * mc-boot/GSArgs.h: Ditto.
447 * mc-boot/GSFIO.cc: Ditto.
448 * mc-boot/GSFIO.h: Ditto.
449 * mc-boot/GSYSTEM.h: Ditto.
450 * mc-boot/GSelective.h: Ditto.
451 * mc-boot/GStdIO.cc: Ditto.
452 * mc-boot/GStdIO.h: Ditto.
453 * mc-boot/GStorage.cc: Ditto.
454 * mc-boot/GStorage.h: Ditto.
455 * mc-boot/GStrCase.cc: Ditto.
456 * mc-boot/GStrCase.h: Ditto.
457 * mc-boot/GStrIO.cc: Ditto.
458 * mc-boot/GStrIO.h: Ditto.
459 * mc-boot/GStrLib.cc: Ditto.
460 * mc-boot/GStrLib.h: Ditto.
461 * mc-boot/GStringConvert.cc: Ditto.
462 * mc-boot/GStringConvert.h: Ditto.
463 * mc-boot/GSysExceptions.h: Ditto.
464 * mc-boot/GSysStorage.cc: Ditto.
465 * mc-boot/GSysStorage.h: Ditto.
466 * mc-boot/GTimeString.cc: Ditto.
467 * mc-boot/GTimeString.h: Ditto.
468 * mc-boot/GUnixArgs.h: Ditto.
469 * mc-boot/Galists.cc: Ditto.
470 * mc-boot/Galists.h: Ditto.
471 * mc-boot/Gdecl.cc: Ditto.
472 * mc-boot/Gdecl.h: Ditto.
473 * mc-boot/Gdtoa.h: Ditto.
474 * mc-boot/Gerrno.h: Ditto.
475 * mc-boot/Gkeyc.cc: Ditto.
476 * mc-boot/Gkeyc.h: Ditto.
477 * mc-boot/Gldtoa.h: Ditto.
478 * mc-boot/Glibc.h: Ditto.
479 * mc-boot/Glibm.h: Ditto.
480 * mc-boot/Glists.cc: Ditto.
481 * mc-boot/Glists.h: Ditto.
482 * mc-boot/GmcComment.cc: Ditto.
483 * mc-boot/GmcComment.h: Ditto.
484 * mc-boot/GmcComp.cc: Ditto.
485 * mc-boot/GmcComp.h: Ditto.
486 * mc-boot/GmcDebug.cc: Ditto.
487 * mc-boot/GmcDebug.h: Ditto.
488 * mc-boot/GmcError.cc: Ditto.
489 * mc-boot/GmcError.h: Ditto.
490 * mc-boot/GmcFileName.cc: Ditto.
491 * mc-boot/GmcFileName.h: Ditto.
492 * mc-boot/GmcLexBuf.cc: Ditto.
493 * mc-boot/GmcLexBuf.h: Ditto.
494 * mc-boot/GmcMetaError.cc: Ditto.
495 * mc-boot/GmcMetaError.h: Ditto.
496 * mc-boot/GmcOptions.cc: Ditto.
497 * mc-boot/GmcOptions.h: Ditto.
498 * mc-boot/GmcPreprocess.cc: Ditto.
499 * mc-boot/GmcPreprocess.h: Ditto.
500 * mc-boot/GmcPretty.cc: Ditto.
501 * mc-boot/GmcPretty.h: Ditto.
502 * mc-boot/GmcPrintf.cc: Ditto.
503 * mc-boot/GmcPrintf.h: Ditto.
504 * mc-boot/GmcQuiet.cc: Ditto.
505 * mc-boot/GmcQuiet.h: Ditto.
506 * mc-boot/GmcReserved.cc: Ditto.
507 * mc-boot/GmcReserved.h: Ditto.
508 * mc-boot/GmcSearch.cc: Ditto.
509 * mc-boot/GmcSearch.h: Ditto.
510 * mc-boot/GmcStack.cc: Ditto.
511 * mc-boot/GmcStack.h: Ditto.
512 * mc-boot/GmcStream.cc: Ditto.
513 * mc-boot/GmcStream.h: Ditto.
514 * mc-boot/Gmcflex.h: Ditto.
515 * mc-boot/Gmcp1.cc: Ditto.
516 * mc-boot/Gmcp1.h: Ditto.
517 * mc-boot/Gmcp2.cc: Ditto.
518 * mc-boot/Gmcp2.h: Ditto.
519 * mc-boot/Gmcp3.cc: Ditto.
520 * mc-boot/Gmcp3.h: Ditto.
521 * mc-boot/Gmcp4.cc: Ditto.
522 * mc-boot/Gmcp4.h: Ditto.
523 * mc-boot/Gmcp5.cc: Ditto.
524 * mc-boot/Gmcp5.h: Ditto.
525 * mc-boot/GnameKey.cc: Ditto.
526 * mc-boot/GnameKey.h: Ditto.
527 * mc-boot/GsymbolKey.cc: Ditto.
528 * mc-boot/GsymbolKey.h: Ditto.
529 * mc-boot/Gtermios.h: Ditto.
530 * mc-boot/Gtop.cc: Ditto.
531 * mc-boot/Gvarargs.cc: Ditto.
532 * mc-boot/Gvarargs.h: Ditto.
533 * mc-boot/Gwlists.cc: Ditto.
534 * mc-boot/Gwlists.h: Ditto.
535 * mc-boot/Gwrapc.h: Ditto.
536 * mc/keyc.mod (checkGccConfigSystem): Add
537 #define INCLUDE_MEMORY.
538 * pge-boot/GASCII.cc: Regenerate.
539 * pge-boot/GASCII.h: Ditto.
540 * pge-boot/GArgs.cc: Ditto.
541 * pge-boot/GArgs.h: Ditto.
542 * pge-boot/GAssertion.cc: Ditto.
543 * pge-boot/GAssertion.h: Ditto.
544 * pge-boot/GBreak.h: Ditto.
545 * pge-boot/GCmdArgs.h: Ditto.
546 * pge-boot/GDebug.cc: Ditto.
547 * pge-boot/GDebug.h: Ditto.
548 * pge-boot/GDynamicStrings.cc: Ditto.
549 * pge-boot/GDynamicStrings.h: Ditto.
550 * pge-boot/GEnvironment.h: Ditto.
551 * pge-boot/GFIO.cc: Ditto.
552 * pge-boot/GFIO.h: Ditto.
553 * pge-boot/GFormatStrings.h: Ditto.
554 * pge-boot/GFpuIO.h: Ditto.
555 * pge-boot/GIO.cc: Ditto.
556 * pge-boot/GIO.h: Ditto.
557 * pge-boot/GIndexing.cc: Ditto.
558 * pge-boot/GIndexing.h: Ditto.
559 * pge-boot/GLists.cc: Ditto.
560 * pge-boot/GLists.h: Ditto.
561 * pge-boot/GM2Dependent.cc: Ditto.
562 * pge-boot/GM2Dependent.h: Ditto.
563 * pge-boot/GM2EXCEPTION.cc: Ditto.
564 * pge-boot/GM2EXCEPTION.h: Ditto.
565 * pge-boot/GM2RTS.cc: Ditto.
566 * pge-boot/GM2RTS.h: Ditto.
567 * pge-boot/GNameKey.cc: Ditto.
568 * pge-boot/GNameKey.h: Ditto.
569 * pge-boot/GNumberIO.cc: Ditto.
570 * pge-boot/GNumberIO.h: Ditto.
571 * pge-boot/GOutput.cc: Ditto.
572 * pge-boot/GOutput.h: Ditto.
573 * pge-boot/GPushBackInput.cc: Ditto.
574 * pge-boot/GPushBackInput.h: Ditto.
575 * pge-boot/GRTExceptions.cc: Ditto.
576 * pge-boot/GRTExceptions.h: Ditto.
577 * pge-boot/GSArgs.h: Ditto.
578 * pge-boot/GSEnvironment.h: Ditto.
579 * pge-boot/GSFIO.cc: Ditto.
580 * pge-boot/GSFIO.h: Ditto.
581 * pge-boot/GSYSTEM.h: Ditto.
582 * pge-boot/GScan.h: Ditto.
583 * pge-boot/GStdIO.cc: Ditto.
584 * pge-boot/GStdIO.h: Ditto.
585 * pge-boot/GStorage.cc: Ditto.
586 * pge-boot/GStorage.h: Ditto.
587 * pge-boot/GStrCase.cc: Ditto.
588 * pge-boot/GStrCase.h: Ditto.
589 * pge-boot/GStrIO.cc: Ditto.
590 * pge-boot/GStrIO.h: Ditto.
591 * pge-boot/GStrLib.cc: Ditto.
592 * pge-boot/GStrLib.h: Ditto.
593 * pge-boot/GStringConvert.h: Ditto.
594 * pge-boot/GSymbolKey.cc: Ditto.
595 * pge-boot/GSymbolKey.h: Ditto.
596 * pge-boot/GSysExceptions.h: Ditto.
597 * pge-boot/GSysStorage.cc: Ditto.
598 * pge-boot/GSysStorage.h: Ditto.
599 * pge-boot/GTimeString.h: Ditto.
600 * pge-boot/GUnixArgs.h: Ditto.
601 * pge-boot/Gbnflex.cc: Ditto.
602 * pge-boot/Gbnflex.h: Ditto.
603 * pge-boot/Gdtoa.h: Ditto.
604 * pge-boot/Gerrno.h: Ditto.
605 * pge-boot/Gldtoa.h: Ditto.
606 * pge-boot/Glibc.h: Ditto.
607 * pge-boot/Glibm.h: Ditto.
608 * pge-boot/Gpge.cc: Ditto.
609 * pge-boot/Gtermios.h: Ditto.
610 * pge-boot/Gwrapc.h: Ditto.
612 2024-10-20 Gaius Mulley <gaiusmod2@gmail.com>
614 * gm2-compiler/M2MetaError.mod (op): Corrected ordering.
615 * gm2-compiler/P2SymBuild.def: Remove comment.
616 * gm2-compiler/P2SymBuild.mod (GetComparison): Replace
617 the word less with fewer.
619 2024-10-19 Gaius Mulley <gaiusmod2@gmail.com>
621 * gm2-compiler/M2MetaError.mod (op): Alphabetically order
622 each case label and comment.
624 2024-10-19 Gaius Mulley <gaiusmod2@gmail.com>
627 * gm2-compiler/M2MetaError.def: Extend comment documentating
628 new format specifiers.
629 * gm2-compiler/M2MetaError.mod (GetTokProcedure): New declaration.
630 (doErrorScopeModule): New procedure.
631 (doErrorScopeForward): Ditto.
632 (doErrorScopeMod): Reimplement.
633 (doErrorScopeFor): New procedure.
634 (declarationMod): Ditto.
635 (doErrorScopeDefinition): Ditto.
636 (doErrorScopeDef): Reimplement.
637 (declaredDef): New procedure.
638 (declaredFor): Ditto.
639 (doErrorScopeProc): Ditto.
640 (declaredVar): Ditto.
641 (declaredType): Ditto.
642 (declaredFull): Ditto.
643 * gm2-compiler/M2Options.mod (SetAutoInit): Add missing
645 (GetDumpGimple): Remove duplicate implementation.
646 * gm2-compiler/M2Quads.def (DupFrame): New procedure.
647 * gm2-compiler/M2Quads.mod (DupFrame): New procedure.
648 * gm2-compiler/M2Reserved.def (ForwardTok): New variable.
649 * gm2-compiler/M2Reserved.mod (ForwardTok): Initialize variable.
650 * gm2-compiler/M2Scaffold.mod (DeclareArgEnvParams): Add
651 tokno parameter for call to PutParam.
652 * gm2-compiler/P0SymBuild.def (EndForward): New procedure.
653 * gm2-compiler/P0SymBuild.mod (EndForward): New procedure.
654 * gm2-compiler/P0SyntaxCheck.bnf (BlockAssert): New procedure.
655 (ProcedureDeclaration): Reimplement rule.
656 (PostProcedureHeading): New rule.
657 (ForwardDeclaration): Ditto.
658 (ProperProcedure): Ditto.
659 * gm2-compiler/P1Build.bnf (ProcedureDeclaration): Reimplement rule.
660 (PostProcedureHeading): New rule.
661 (ForwardDeclaration): Ditto.
662 (ProperProcedure): Ditto.
663 * gm2-compiler/P1SymBuild.def (Export): Removed unnecessary
665 (EndBuildForward): New procedure.
666 * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
667 (EndBuildProcedure): Ditto.
668 (EndBuildForward): Ditto.
669 * gm2-compiler/P2Build.bnf (ProcedureDeclaration): Reimplement rule.
670 (PostProcedureHeading): New rule.
671 (ForwardDeclaration): Ditto.
672 (ProperProcedure): Ditto.
673 * gm2-compiler/P2SymBuild.def (BuildProcedureDefinedByForward):
675 (BuildProcedureDefinedByProper): Ditto.
676 (CheckProcedure): Ditto.
677 (EndBuildForward): Ditto.
678 * gm2-compiler/P2SymBuild.mod (EndBuildProcedure): Reimplement.
679 (EndBuildForward): New procedure.
680 (BuildFPSection): Reimplement to allow forward declaration or
681 checking of parameters.
682 (BuildProcedureDefinedByProper): New procedure.
683 (BuildProcedureDefinedByForward): Ditto
684 (FailParameter): Remove.
685 (ParameterError): New procedure.
686 (ParameterMismatch): Ditto.
687 (EndBuildFormalParameters): Add parameter number check.
688 (GetComparison): New procedure function.
689 (GetSourceDesc): Ditto.
690 (GetCurSrcDesc): Ditto.
691 (GetDeclared): New procedure.
692 (ReturnTypeMismatch): Ditto.
693 (BuildFunction): Reimplement.
694 (CheckProcedure): New procedure.
695 (CheckFormalParameterSection): Reimplement using ParameterError.
696 * gm2-compiler/P3Build.bnf (ProcedureDeclaration): Reimplement rule.
697 (PostProcedureHeading): New rule.
698 (ForwardDeclaration): Ditto.
699 (ProperProcedure): Ditto.
700 * gm2-compiler/P3SymBuild.def (Export): Remove unnecessary export.
701 (EndBuildForward): New procedure.
702 * gm2-compiler/P3SymBuild.mod (EndBuildForward): New procedure.
703 * gm2-compiler/PCBuild.bnf (ProcedureDeclaration): Reimplement rule.
704 (PostProcedureHeading): New rule.
705 (ForwardDeclaration): Ditto.
706 (ProperProcedure): Ditto.
707 * gm2-compiler/PCSymBuild.def (EndBuildForward): New procedure.
708 * gm2-compiler/PCSymBuild.mod (EndBuildForward): Ditto.
709 * gm2-compiler/PHBuild.bnf (ProcedureDeclaration): Reimplement rule.
710 (PostProcedureHeading): New rule.
711 (ForwardDeclaration): Ditto.
712 (ProperProcedure): Ditto.
713 * gm2-compiler/SymbolTable.def (PutVarTok): New procedure.
714 (PutParam): Add typetok parameter.
715 (PutVarParam): Ditto.
716 (PutParamName): Ditto.
717 (GetDeclaredFor): New procedure function.
718 (AreParametersDefinedInDefinition): Ditto.
719 (PutParametersDefinedByForward): New procedure.
720 (GetParametersDefinedByForward): New procedure function.
721 (PutParametersDefinedByProper): New procedure.
722 (GetParametersDefinedByProper): New procedure function.
723 (GetProcedureDeclaredForward): Ditto.
724 (PutProcedureDeclaredForward): New procedure.
725 (GetProcedureDeclaredProper): New procedure function.
726 (PutProcedureDeclaredProper): New procedure.
727 (GetProcedureDeclaredDefinition): New procedure function.
728 (PutProcedureDeclaredDefinition): New procedure.
729 (GetVarDeclTypeTok): Ditto.
730 (PutVarDeclTypeTok): New procedure.
731 (GetVarDeclTok): Ditto.
732 (PutVarDeclTok): New procedure.
733 (GetVarDeclFullTok): Ditto.
734 * gm2-compiler/SymbolTable.mod (ProcedureDecl): New record type.
736 (SymProcedure): Add new field Declared.
737 (SymVar): Add new field Declared.
738 (PutVarTok): New procedure.
739 (PutParam): Add typetok parameter.
740 (PutVarParam): Ditto.
741 (PutParamName): Ditto.
742 (GetDeclaredFor): New procedure function.
743 (AreParametersDefinedInDefinition): Ditto.
744 (PutParametersDefinedByForward): New procedure.
745 (GetParametersDefinedByForward): New procedure function.
746 (PutParametersDefinedByProper): New procedure.
747 (GetParametersDefinedByProper): New procedure function.
748 (GetProcedureDeclaredForward): Ditto.
749 (PutProcedureDeclaredForward): New procedure.
750 (GetProcedureDeclaredProper): New procedure function.
751 (PutProcedureDeclaredProper): New procedure.
752 (GetProcedureDeclaredDefinition): New procedure function.
753 (PutProcedureDeclaredDefinition): New procedure.
754 (GetVarDeclTypeTok): Ditto.
755 (PutVarDeclTypeTok): New procedure.
756 (GetVarDeclTok): Ditto.
757 (PutVarDeclTok): New procedure.
758 (GetVarDeclFullTok): Ditto.
759 (MakeProcedure): Initialize Declared field.
760 (MakeVar): Initialize Declared field.
761 * gm2-libs-log/FileSystem.def (FileNameChar): Add
763 * m2.flex: Add FORWARD keyword.
765 2024-10-04 Gaius Mulley <gaiusmod2@gmail.com>
768 * gm2-compiler/M2Swig.mod (DoCheckUnbounded): Escape
769 the % character used in array_functions with %%.
771 2024-10-01 Gaius Mulley <gaiusmod2@gmail.com>
773 * gm2-libs/Indexing.def (FindIndice): New procedure
775 * gm2-libs/Indexing.mod (FindIndice): Implement new
778 2024-10-01 Gaius Mulley <gaiusmod2@gmail.com>
781 * gm2-compiler/M2Swig.mod (AnnotateProcedure): Capitalize
782 the generated comment, split comment into multiple lines and
783 terminate the comment with ". */".
784 (DoCheckUnbounded): Escape the % character with %%.
785 (DoWriteFile): Ditto.
787 2024-09-25 Mikael Morin <mikael@gcc.gnu.org>
790 * lang.opt.urls: Regenerate.
792 2024-09-23 Gaius Mulley <gaiusmod2@gmail.com>
794 * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): Remove
796 * gm2-libs/M2RTS.mod (HaltC): Add noreturn attribute.
797 * gm2-libs-min/M2RTS.mod (HALT): Add LOOP END.
799 2024-09-21 Gaius Mulley <gaiusmod2@gmail.com>
801 * gm2-compiler/M2Comp.mod (GenerateDependencies): Remove
803 (WriteDep): Remove parameter dep.
804 (WritePhoneDep): Ditto.
806 2024-09-20 Gaius Mulley <gaiusmod2@gmail.com>
808 * gm2-compiler/M2Check.mod (checkUnboundedArray): New
810 (checkUnboundedUnbounded): Ditto.
811 (checkUnbounded): Rewrite to check the unbounded data
813 (checkPair): Add comment.
814 (doCheckPair): Add comment.
815 Remove tinfo parameter from the call to checkTypeKindViolation.
816 (checkTypeKindViolation): Remove ununsed parameter tinfo.
817 * gm2-libs-ch/UnixArgs.cc (GM2RTS.h): Remove include.
818 * gm2-libs-ch/m2rts.h (M2RTS_INIT): New define.
820 (M2RTS_RegisterModule): New prototype.
821 (GM2RTS.h): Add include to the MC_M2 block.
823 2024-09-16 Gaius Mulley <gaiusmod2@gmail.com>
825 * Make-lang.in (GM2_BOOT_INCLUDES): New variable.
826 (m2/gm2-compiler-boot/M2GCCDeclare.o): Rewrite to use
828 (m2/gm2-compiler-boot/M2Error.o): Ditto.
829 (m2/gm2-compiler-boot/%.o): Ditto.
831 2024-09-16 Gaius Mulley <gaiusmod2@gmail.com>
834 * Make-lang.in (GM2-GCC-DEFS): Add gcctypes.def and
836 (MC-LIB-DEFS): Add CDataTypes.def.
837 * Make-maintainer.in (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o):
838 Change include path to pge-boot.
839 (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
840 (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
841 (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
842 (m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
843 (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
844 (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
845 (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
846 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
847 (GM2PATH): Add -I$(srcdir)/m2/gm2-gcc.
848 (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Add -I$(srcdir)/m2/gm2-gcc.
849 (m2/mc-boot-gen/$(SRC_PREFIX)%.cc): Ditto.
850 * gm2-compiler/M2ALU.def (PushIntegerTree): Replace Tree with tree.
851 (PopIntegerTree): Ditto.
852 (PushRealTree): Ditto.
853 (PopRealTree): Ditto.
854 (PushComplexTree): Ditto.
855 (PopComplexTree): Ditto.
856 (PushSetTree): Ditto.
858 (PopConstructorTree): Ditto.
859 (ConstructSetConstant): Ditto.
861 (CheckOrResetOverflow): Ditto.
862 (PushTypeOfTree): Ditto.
863 * gm2-compiler/M2ALU.mod (Tree): Replace with ...
865 (gcctypes): Import location_t and tree.
866 (m2linemap): Remove import of location_t.
867 * gm2-compiler/M2Base.def (m2linemap): Replace with ...
868 (gcctypes): ... this.
869 * gm2-compiler/M2Base.mod (gcctypes): Import of location_t.
870 (m2linemap): Remove import of location_t.
871 * gm2-compiler/M2Bitset.mod (m2tree): Remove import of Tree.
872 * gm2-compiler/M2CaseList.mod (gcctypes): Import tree.
873 (m2tree): Remove import of Tree.
874 (Tree): Replace with ...
876 * gm2-compiler/M2Emit.def (gcctypes): Import location_t.
877 * gm2-compiler/M2GCCDeclare.def (gcctypes): Import tree.
878 (PromoteToString): Replace Tree with tree.
879 (PromoteToCString): Ditto.
880 (ConstantKnownAndUsed): Ditto.
881 * gm2-compiler/M2GCCDeclare.mod (gcctypes): Import tree.
882 (m2tree): Remove import of Tree.
883 (Tree): Replace with ...
885 * gm2-compiler/M2GenGCC.def (gcctypes): Import tree.
886 (m2tree): Remove import of Tree.
887 (Tree): Replace with ...
889 (GetHighFromUnbounded): Replace Tree with tree.
890 (StringToChar): Ditto.
891 (LValueToGenericPtr): Ditto.
892 (ZConstToTypedConst): Ditto.
893 (PrepareCopyString): Ditto.
894 * gm2-compiler/M2GenGCC.mod (gcctypes): Import tree.
895 (m2tree): Remove import of Tree.
896 (Tree): Replace with ...
898 * gm2-compiler/M2LangDump.def (gcctypes): Import tree.
899 (m2tree): Remove import of Tree.
900 (Tree): Replace with ...
902 * gm2-compiler/M2LangDump.mod (Tree): Replace with ...
904 * gm2-compiler/M2LexBuf.def (m2linemap): Replace with ...
905 (gcctypes): ... this.
906 * gm2-compiler/M2LexBuf.mod (m2linemap): Replace with ...
907 (gcctypes): ... this.
908 * gm2-compiler/M2Options.def (m2linemap): Replace with ...
909 (gcctypes): ... this.
910 * gm2-compiler/M2Options.mod (m2linemap): Replace with ...
911 (gcctypes): ... this.
912 * gm2-compiler/M2Range.def (m2linemap): Replace with ...
913 (gcctypes): ... this.
914 (CDataTypes): Import ConstCharStar.
915 (CodeErrorCheck): Replace Tree with tree.
916 (OverlapsRange): Ditto.
918 (IsGreaterOrEqual): Ditto.
920 (BuildIfCallWholeHandlerLoc): Replace Tree with tree.
921 Replace ADDRESS with ConstCharStar.
922 (BuildIfCallRealHandlerLoc): Ditto.
924 * gm2-compiler/M2Range.mod (m2tree): Remove Tree.
925 (CodeErrorCheck): Replace Tree with tree.
926 (OverlapsRange): Ditto.
928 (IsGreaterOrEqual): Ditto.
931 (BuildIfCallWholeHandlerLoc): Replace Tree with tree.
932 Replace ADDRESS with ConstCharStar.
933 (BuildIfCallRealHandlerLoc): Ditto.
934 * gm2-compiler/M2System.def (m2linemap): Replace with ...
935 (gcctypes): ... this.
936 * gm2-compiler/M2System.mod (m2linemap): Replace with ...
937 (gcctypes): ... this.
938 (CreateMinMaxFor): Replace Tree with tree.
940 (AttemptToCreateType): Ditto.
941 (CreateSetType): Ditto.
942 (AttemptToCreateSetType): Ditto.
943 * gm2-compiler/P2SymBuild.mod (m2linemap): Replace with ...
944 (gcctypes): ... this.
945 * gm2-compiler/SymbolConversion.def (m2tree): Replace with ...
946 (gcctypes): ... this.
947 (Mod2Gcc): Replace Tree with tree.
950 * gm2-compiler/SymbolConversion.mod (m2tree): Replace with ...
951 (gcctypes): ... this.
952 (Mod2Gcc): Replace Tree with tree.
955 (Mod2GccWithoutGCCPoison): Ditto.
956 * gm2-compiler/SymbolTable.def (m2tree): Replace with ...
957 (gcctypes): ... this.
958 (PutModuleFinallyFunction): Replace Tree with tree.
959 (GetModuleFinallyFunction): Ditto.
960 * gm2-compiler/SymbolTable.mod (m2tree): Replace with ...
961 (gcctypes): ... this.
962 (PutModuleFinallyFunction): Replace Tree with tree.
963 (GetModuleFinallyFunction): Ditto.
964 * gm2-compiler/m2flex.def (m2linemap): Replace with ...
965 (gcctypes): ... this.
966 * gm2-gcc/init.def (PerCompilationInit): Replace ADDRESS with ConstCharStar.
967 (CDataTypes): Import ConstCharStar.
968 * gm2-gcc/m2block.def (SYSTEM): Remove import.
969 (CDataTypes): Import ConstCharStar.
970 (m2linemap): Remove import.
971 (m2tree): Remove import.
972 (gcctypes): Import tree.
973 (global_constant): Replace Tree with tree.
974 (RememberInitModuleFunction): Ditto.
975 (DumpGlobalConstants): Ditto.
976 (RememberConstant): Ditto.
977 (RememberType): Ditto.
979 (popFunctionScope): Ditto.
980 (pushFunctionScope): Ditto.
981 (finishFunctionCode): Ditto.
982 (finishFunctionDecl): Ditto.
983 (GetErrorNode): Ditto.
984 (includeDecl): Ditto.
986 (GetGlobalContext): Ditto.
987 (begin_statement_list): Ditto.
988 (push_statement_list): Ditto.
989 (pop_statement_list): Ditto.
990 (getLabel): Replace Tree with tree.
991 Replace ADDRESS with ConstCharStar.
992 * gm2-gcc/m2builtins.def (CDataTypes): Import ConstCharStar.
993 (GetBuiltinConst): Replace Tree with tree.
994 (GetBuiltinConstType): Ditto.
995 (GetBuiltinTypeInfoType): Ditto.
996 (GetBuiltinTypeInfo): Ditto.
997 (BuiltinExists): Ditto.
998 (BuildBuiltinTree): Ditto.
999 (BuiltinMemCopy): Ditto.
1000 (BuiltinMemSet): Ditto.
1001 (BuiltInAlloca): Ditto.
1002 (BuiltInIsfinite): Ditto.
1003 * gm2-gcc/m2convert.def (CDataTypes): Import ConstCharStar.
1005 (ToCardinal): Ditto.
1008 (ConvertToPtr): Ditto.
1009 (BuildConvert): Ditto.
1010 (ConvertConstantAndCheck): Ditto.
1011 (ConvertString): Ditto.
1012 (GenericToType): Ditto.
1013 * gm2-gcc/m2decl.cc (m2decl_BuildParameterDeclaration): Add
1015 * gm2-gcc/m2decl.def (CDataTypes): Import ConstCharStar.
1016 (BuildModuleCtor): Ditto.
1017 (DeclareModuleCtor): Ditto.
1018 (DeclareM2linkForcedModuleInitOrder): Ditto.
1019 (DeclareM2linkStaticInitialization): Ditto.
1020 (BuildPtrToTypeString): Ditto.
1021 (BuildIntegerConstant): Ditto.
1022 (BuildStringConstantType): Ditto.
1023 (DeclareKnownVariable): Ditto.
1024 (DeclareKnownConstant): Ditto.
1025 (BuildParameterDeclaration): Ditto.
1026 (BuildEndFunctionDeclaration): Ditto.
1027 (RememberVariables): Ditto.
1028 (BuildConstLiteralNumber): Ditto.
1029 (BuildStringConstant): Ditto.
1030 (BuildCStringConstant): Ditto.
1031 (GetDeclContext): Ditto.
1032 * gm2-gcc/m2decl.h (m2decl_BuildParameterDeclaration): Add
1034 * gm2-gcc/m2except.def (CDataTypes): Import ConstCharStar.
1035 (BuildThrow): Ditto.
1036 (BuildTryBegin): Ditto.
1037 (BuildTryEnd): Ditto.
1038 (BuildCatchBegin): Ditto.
1039 (BuildCatchEnd): Ditto.
1040 * gm2-gcc/m2expr.def (CDataTypes): Import ConstCharStar.
1041 (CSTIntToString): Ditto.
1042 (CSTIntToChar): Ditto.
1043 (CheckConstStrZtypeRange): Ditto.
1044 (CompareTrees): Ditto.
1045 (GetPointerOne): Ditto.
1046 (GetPointerZero): Ditto.
1047 (GetWordOne): Ditto.
1048 (GetWordZero): Ditto.
1049 (GetIntegerOne): Ditto.
1050 (GetIntegerZero): Ditto.
1051 (GetCardinalOne): Ditto.
1052 (GetCardinalZero): Ditto.
1053 (GetSizeOfInBits): Ditto.
1055 (BuildLogicalRotate): Ditto.
1060 (BuildMultCheck): Ditto.
1063 (BuildLogicalShift): Ditto.
1066 (BuildDivM2): Ditto.
1067 (BuildDivM2Check): Ditto.
1068 (BuildModM2): Ditto.
1069 (BuildModM2Check): Ditto.
1070 (BuildModFloor): Ditto.
1071 (BuildDivCeil): Ditto.
1072 (BuildModCeil): Ditto.
1073 (BuildDivFloor): Ditto.
1074 (BuildModTrunc): Ditto.
1075 (BuildDivTrunc): Ditto.
1076 (BuildDivTruncCheck): Ditto.
1078 (BuildSubCheck): Ditto.
1079 (BuildAddCheck): Ditto.
1082 (FoldAndStrip): Ditto.
1083 (StringLength): Ditto.
1084 (TreeOverflow): Ditto.
1085 (RemoveOverflow): Ditto.
1086 (BuildCoerce): Ditto.
1087 (BuildTrunc): Ditto.
1088 (BuildNegate): Ditto.
1089 (BuildNegateCheck): Ditto.
1090 (BuildSetNegate): Ditto.
1091 (BuildTBitSize): Ditto.
1094 (BuildOffset1): Ditto.
1095 (BuildOffset): Ditto.
1096 (BuildLogicalOrAddress): Ditto.
1097 (BuildLogicalOr): Ditto.
1098 (BuildLogicalAnd): Ditto.
1099 (BuildSymmetricDifference): Ditto.
1100 (BuildLogicalDifference): Ditto.
1101 (BuildLessThan): Ditto.
1102 (BuildGreaterThan): Ditto.
1103 (BuildLessThanOrEqual): Ditto.
1104 (BuildGreaterThanOrEqual): Ditto.
1105 (BuildEqualTo): Ditto.
1106 (BuildNotEqualTo): Ditto.
1107 (BuildIsSuperset): Ditto.
1108 (BuildIsNotSuperset): Ditto.
1109 (BuildIsSubset): Ditto.
1110 (BuildIsNotSubset): Ditto.
1111 (BuildIfConstInVar): Ditto.
1112 (BuildIfNotConstInVar): Ditto.
1113 (BuildIfVarInVar): Ditto.
1114 (BuildIfNotVarInVar): Ditto.
1115 (BuildForeachWordInSetDoIfExpr): Ditto.
1116 (BuildIfInRangeGoto): Ditto.
1117 (BuildIfNotInRangeGoto): Ditto.
1118 (BuildArray): Ditto.
1119 (BuildComponentRef): Ditto.
1120 (BuildIndirect): Ditto.
1123 (GetCstInteger): Ditto.
1124 (AreConstantsEqual): Ditto.
1125 (AreRealOrComplexConstantsEqual): Ditto.
1126 (DetermineSign): Ditto.
1131 (BuildCmplx): Ditto.
1132 (BuildBinaryForeachWordDo): Ditto.
1133 (BuildBinarySetDo): Ditto.
1134 (ConstantExpressionWarning): Ditto.
1135 (BuildAddAddress): Ditto.
1137 (OverflowZType): Ditto.
1138 (BuildCondIfExpression): Ditto.
1139 * gm2-gcc/m2linemap.def (CDataTypes): Import ConstCharStar.
1140 * gm2-gcc/m2misc.def (m2tree): Replace with ...
1141 (gcctypes): ... this.
1142 (DebugTree): Replace Tree with tree.
1143 * gm2-gcc/m2pp.def (m2tree): Replace with ...
1144 (gcctypes): ... this.
1145 (DumpGimpleFd): Replace Tree with tree.
1146 * gm2-gcc/m2statement.cc (m2statement_BuildBuiltinCallTree):
1147 Remove unused location parameter.
1148 * gm2-gcc/m2statement.def (m2linemap): Replace with ...
1149 (gcctypes): ... this.
1150 (CDataTypes): Import CharStar.
1151 (DoJump): Replace Tree with tree.
1152 Replace ADDRESS with CharStar.
1153 (BuildStartFunctionCode): Replace Tree with tree.
1154 (BuildEndFunctionCode): Ditto.
1155 (BuildReturnValueCode): Ditto.
1156 (BuildAssignmentTree): Ditto.
1157 (BuildAssignmentStatement): Ditto.
1159 (DeclareLabel): Ditto.
1160 (BuildIfThenDoEnd): Ditto.
1161 (BuildIfThenElseEnd): Ditto.
1162 (BuildParam): Ditto.
1163 (BuildFunctionCallTree): Ditto.
1164 (BuildProcedureCallTree): Ditto.
1165 (BuildIndirectProcedureCallTree): Ditto.
1166 (BuildFunctValue): Ditto.
1167 (BuildCall2): Ditto.
1168 (BuildCall3): Ditto.
1169 (SetLastFunction): Ditto.
1170 (GetLastFunction): Ditto.
1171 (GetParamTree): Ditto.
1172 (BuildTryFinally): Ditto.
1173 (BuildCleanUp): Ditto.
1175 (BuildUnaryForeachWordDo): Ditto.
1176 (BuildExcludeVarConst): Ditto.
1177 (BuildExcludeVarVar): Ditto.
1178 (BuildIncludeVarConst): Ditto.
1179 (BuildIncludeVarVar): Ditto.
1180 (BuildStart): Ditto.
1182 (BuildCallInner): Ditto.
1183 (BuildBuiltinCallTree): Remove unused location parameter.
1184 * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): Remove
1185 unused location parameter.
1186 * gm2-gcc/m2tree.def (gcctypes): Import tree.
1187 (IsAConstant): Replace Tree with tree.
1189 (IsTreeOverflow): Ditto.
1190 (skip_const_decl): Ditto.
1191 (skip_type_decl): Ditto.
1195 (debug_tree): Ditto.
1196 (IstreeOverflow): Ditto.
1197 * gm2-gcc/m2treelib.def (m2linemap): Replace with ...
1198 (gcctypes): ... this.
1199 (get_set_address_if_var): Ditto.
1200 (get_set_field_rhs): Ditto.
1201 (get_set_field_lhs): Ditto.
1202 (get_set_address): Ditto.
1203 (get_set_value): Ditto.
1204 (get_field_no): Ditto.
1205 (get_rvalue): Ditto.
1207 (build_modify_expr): Ditto.
1208 (do_jump_if_bit): Ditto.
1209 * gm2-gcc/m2type.def (m2linemap): Replace with ...
1210 (gcctypes): ... this.
1212 (CDataTypes): Import ConstCharStar and charStar.
1213 (ValueInTypeRange): Replace Tree with tree.
1214 (ValueOutOfTypeRange): Ditto.
1215 (ExceedsTypeRange): Ditto.
1216 (WithinTypeRange): Ditto.
1217 (BuildSubrangeType): Ditto.
1218 (BuildCharConstant): Ditto.
1219 (BuildCharConstantChar): Ditto.
1220 (BuildArrayConstructorElement): Ditto.
1221 (BuildEndArrayConstructor): Ditto.
1222 (BuildStartArrayConstructor): Ditto.
1223 (BuildRecordConstructorElement): Ditto.
1224 (BuildEndRecordConstructor): Ditto.
1225 (BuildStartRecordConstructor): Ditto.
1226 (BuildEndSetConstructor): Ditto.
1227 (BuildSetConstructorElement): Ditto.
1228 (BuildStartSetConstructor): Ditto.
1229 (BuildSetType): Ditto.
1230 (BuildConstPointerType): Ditto.
1231 (BuildPointerType): Ditto.
1232 (BuildEnumerator): Ditto.
1233 (BuildEndEnumeration): Ditto.
1234 (BuildStartEnumeration): Ditto.
1235 (BuildTypeDeclaration): Ditto.
1236 (GetMaxFrom): Ditto.
1237 (GetMinFrom): Ditto.
1238 (GetDefaultType): Ditto.
1239 (BuildEndType): Ditto.
1240 (BuildStartType): Ditto.
1241 (BuildVariableArrayAndDeclare): Ditto.
1242 (BuildProcTypeParameterDeclaration): Ditto.
1243 (BuildStartFunctionType): Ditto.
1244 (BuildEndFunctionType): Ditto.
1245 (GetTreeType): Ditto.
1246 (DeclareKnownType): Ditto.
1247 (GetM2ZType): Ditto.
1248 (GetM2RType): Ditto.
1249 (BuildSetTypeFromSubrange): Ditto.
1250 (BuildSmallestTypeRange): Ditto.
1251 (GetBooleanType): Ditto.
1252 (GetBooleanFalse): Ditto.
1253 (GetBooleanTrue): Ditto.
1254 (GetPackedBooleanType): Ditto.
1255 (GetCharType): Ditto.
1256 (GetByteType): Ditto.
1257 (GetVoidType): Ditto.
1258 (GetBitnumType): Ditto.
1259 (GetRealType): Ditto.
1260 (GetLongRealType): Ditto.
1261 (GetShortRealType): Ditto.
1262 (GetLongIntType): Ditto.
1263 (GetPointerType): Ditto.
1264 (GetCardinalType): Ditto.
1265 (GetIntegerType): Ditto.
1266 (GetWordType): Ditto.
1267 (GetM2CardinalType): Ditto.
1268 (GetBitsetType): Ditto.
1269 (GetM2CType): Ditto.
1270 (GetProcType): Ditto.
1271 (GetM2ComplexType): Ditto.
1272 (GetM2LongComplexType): Ditto.
1273 (GetM2ShortComplexType): Ditto.
1274 (GetM2Complex128): Ditto.
1275 (GetM2Complex96): Ditto.
1276 (GetM2Complex64): Ditto.
1277 (GetM2Complex32): Ditto.
1278 (GetM2Real128): Ditto.
1279 (GetM2Real96): Ditto.
1280 (GetM2Real64): Ditto.
1281 (GetM2Real32): Ditto.
1282 (GetM2Bitset32): Ditto.
1283 (GetM2Bitset16): Ditto.
1284 (GetM2Bitset8): Ditto.
1285 (GetM2Word64): Ditto.
1286 (GetM2Word32): Ditto.
1287 (GetM2Word16): Ditto.
1288 (GetM2Cardinal64): Ditto.
1289 (GetM2Cardinal32): Ditto.
1290 (GetM2Cardinal16): Ditto.
1291 (GetM2Cardinal8): Ditto.
1292 (GetM2Integer64): Ditto.
1293 (GetM2Integer32): Ditto.
1294 (GetM2Integer16): Ditto.
1295 (GetM2Integer8): Ditto.
1296 (GetISOLocType): Ditto.
1297 (GetISOByteType): Ditto.
1298 (GetISOWordType): Ditto.
1299 (GetShortCardType): Ditto.
1300 (GetM2ShortCardType): Ditto.
1301 (GetShortIntType): Ditto.
1302 (GetM2ShortIntType): Ditto.
1303 (GetM2LongCardType): Ditto.
1304 (GetM2LongIntType): Ditto.
1305 (GetM2LongRealType): Ditto.
1306 (GetM2RealType): Ditto.
1307 (GetM2ShortRealType): Ditto.
1308 (GetM2IntegerType): Ditto.
1309 (GetM2CharType): Ditto.
1310 (GetCSizeTType): Ditto.
1311 (GetCSSizeTType): Ditto.
1312 (BuildArrayStringConstructor): Ditto.
1313 (RealToTree): Ditto.
1314 (BuildStartRecord): Ditto.
1315 (BuildStartUnion): Ditto.
1316 (BuildStartVarient): Ditto.
1317 (BuildEndVarient): Ditto.
1318 (BuildStartFieldVarient): Ditto.
1319 (BuildEndFieldVarient): Ditto.
1320 (BuildStartFieldRecord): Ditto.
1321 (BuildFieldRecord): Ditto.
1323 (ChainOnParamValue): Ditto.
1324 (AddStringToTreeList): Ditto.
1325 (BuildEndRecord): Ditto.
1326 (SetAlignment): Ditto.
1327 (SetDeclPacked): Ditto.
1328 (SetTypePacked): Ditto.
1329 (SetRecordFieldOffset): Ditto.
1330 (BuildPackedFieldRecord): Ditto.
1331 (BuildNumberOfArrayElements): Ditto.
1332 (AddStatement): Ditto.
1333 (MarkFunctionReferenced): Ditto.
1334 (BuildArrayIndexType): Ditto.
1335 (GetArrayNoOfElements): Ditto.
1336 (BuildEndArrayType): Ditto.
1337 (PutArrayType): Ditto.
1338 (BuildStartArrayType): Ditto.
1340 (SameRealType): Ditto.
1341 * m2.flex (Gm2linemap.h): Include.
1342 * mc-boot/GDynamicStrings.cc: Rebuild.
1343 * mc-boot/GFIO.cc: Ditto.
1344 * mc-boot/GIndexing.cc: Ditto.
1345 * mc-boot/GM2Dependent.cc: Ditto.
1346 * mc-boot/GSArgs.cc: Ditto.
1347 * mc-boot/GStringConvert.cc: Ditto.
1348 * mc-boot/Gdecl.cc: Ditto.
1349 * mc-boot/Gdecl.h: Ditto.
1350 * mc-boot/Gdtoa.h: Ditto.
1351 * mc-boot/Gkeyc.cc: Ditto.
1352 * mc-boot/Gkeyc.h: Ditto.
1353 * mc-boot/Glibc.h: Ditto.
1354 * mc-boot/GmcComp.cc: Ditto.
1355 * mc-boot/GmcLexBuf.cc: Ditto.
1356 * mc-boot/GmcPreprocess.cc: Ditto.
1357 * mc-boot/GmcStream.cc: Ditto.
1358 * mc-boot/Gmcp1.cc: Ditto.
1359 * mc-boot/Gmcp3.cc: Ditto.
1360 * mc-boot/Gmcp4.cc: Ditto.
1361 * mc-boot/Gmcp5.cc: Ditto.
1362 * mc-boot/GnameKey.cc: Ditto.
1363 * mc-boot/Gvarargs.cc: Ditto.
1364 * mc/decl.def (putDefUnqualified): New procedure function.
1365 (isDefUnqualified): Ditto.
1366 * mc/decl.mod (defT): Add unqualified field.
1367 (charStarN): New variable.
1368 (constCharStarN): Ditto.
1369 (checkGccType): New procedure.
1370 (checkCDataTypes): Ditto.
1371 (import): Call checkGccType and checkCDataTypes.
1372 (putDefUnqualified): New procedure function.
1373 (isDefUnqualified): Ditto.
1374 * mc/keyc.def (useGccTree): New procedure.
1375 (useGccLocation): Ditto.
1376 * mc/keyc.mod (checkGccConfigSystem): Call checkGccConfigSystem.
1377 (useGccTree): New procedure.
1378 (useGccLocation): Ditto.
1379 * mc/mcp1.bnf (decl): Import putDefUnqualified.
1380 (Export): Call putDefUnqualified.
1381 * gm2-gcc/CDataTypes.def: New file.
1382 * gm2-gcc/gcctypes.def: New file.
1384 2024-09-02 Gaius Mulley <gaiusmod2@gmail.com>
1387 * gm2-lang.cc: Replace physical address with URL in GPL header.
1388 * gm2-lang.h: Ditto.
1389 * images/LICENSE.IMG: Ditto.
1390 * m2-tree.def: Ditto.
1391 * mc-boot/GIndexing.cc: Ditto.
1392 * mc-boot/Gkeyc.cc: Ditto.
1393 * mc-boot/Glists.cc: Ditto.
1394 * mc-boot/GmcComp.cc: Ditto.
1395 * mc-boot/GmcDebug.cc: Ditto.
1396 * mc-boot/GmcFileName.cc: Ditto.
1397 * mc-boot/GmcMetaError.cc: Ditto.
1398 * mc-boot/GmcOptions.cc: Ditto.
1399 * mc-boot/GmcPreprocess.cc: Ditto.
1400 * mc-boot/GmcPretty.cc: Ditto.
1401 * mc-boot/GmcPrintf.cc: Ditto.
1402 * mc-boot/GmcQuiet.cc: Ditto.
1403 * mc-boot/GmcReserved.cc: Ditto.
1404 * mc-boot/GmcSearch.cc: Ditto.
1405 * mc-boot/GmcStack.cc: Ditto.
1406 * mc/Indexing.mod: Ditto.
1407 * mc/keyc.mod: Ditto.
1408 * mc/lists.mod: Ditto.
1409 * mc/mcComp.mod: Ditto.
1410 * mc/mcDebug.mod: Ditto.
1411 * mc/mcFileName.mod: Ditto.
1412 * mc/mcMetaError.mod: Ditto.
1413 * mc/mcOptions.mod: Ditto.
1414 * mc/mcPreprocess.mod: Ditto.
1415 * mc/mcPretty.mod: Ditto.
1416 * mc/mcPrintf.mod: Ditto.
1417 * mc/mcQuiet.mod: Ditto.
1418 * mc/mcReserved.mod: Ditto.
1419 * mc/mcSearch.mod: Ditto.
1420 * mc/mcStack.mod: Ditto.
1421 * tools-src/buildpg: Ditto.
1422 * tools-src/calcpath: Ditto.
1423 * tools-src/checkmeta.py: Ditto.
1424 * tools-src/def2doc.py: Ditto.
1425 * tools-src/makeSystem: Ditto.
1426 * tools-src/tidydates.py: Ditto.
1428 2024-09-02 Richard Sandiford <richard.sandiford@arm.com>
1430 * gm2-gcc/m2block.cc (flush_pending_note): Rename ASM_INPUT_P
1432 * gm2-gcc/m2statement.cc (m2statement_BuildAsm): Likewise.
1434 2024-08-30 Gaius Mulley <gaiusmod2@gmail.com>
1437 * pge-boot/GM2RTS.h: Regenerate.
1438 * pge-boot/m2rts.h: Ditto.
1440 2024-08-28 Gaius Mulley <gaiusmod2@gmail.com>
1443 * Make-lang.in (MC_SRC_FLAGS): New macro.
1444 (m2/mc-boot/$(SRC_PREFIX)%.o): Use MC_SRC_FLAGS.
1445 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
1446 (m2/gm2-libs-boot/M2RTS.o): Ditto.
1447 (m2/gm2-libs-boot/%.o): Ditto.
1448 (GM2-LIBS-BOOT-H): New macro.
1449 (m2/gm2-libs-boot/RTcodummy.o): Use MC_SRC_FLAGS.
1450 Remove gm2-libs-host.h from the dependancy.
1451 (m2/gm2-libs-boot/wrapc.o): Use MC_SRC_FLAGS.
1452 Add dependancy GM2-LIBS-BOOT-H.
1453 (m2/gm2-libs-boot/UnixArgs.o): Ditto.
1454 (m2/gm2-libs-boot/choosetemp.o): Ditto.
1455 (m2/gm2-libs-boot/errno.o): Ditto.
1456 (m2/gm2-libs-boot/dtoa.o): Ditto.
1457 (m2/gm2-libs-boot/ldtoa.o): Ditto.
1458 (m2/gm2-libs-boot/termios.o): Ditto.
1459 (m2/gm2-libs-boot/SysExceptions.o): Ditto.
1460 (m2/gm2-compiler-boot/M2GCCDeclare.o): Add gm2-libs-ch to the
1462 (m2/gm2-compiler-boot/M2Error.o): Ditto.
1463 (m2/gm2-compiler-boot/%.o): Ditto.
1464 (m2/pge-boot/%.o): Ditto.
1465 * gm2-gcc/m2color.cc (m2color_colorize_start): Replace parameter
1466 type char to void and recast to char * when calling colorize_start.
1467 * gm2-gcc/m2color.h (m2color_colorize_start): Replace parameter
1469 * gm2-gcc/m2type.h: Remove #if 0 block.
1470 * gm2-libs-ch/SysExceptions.c (DECL_PROC_T): Provide alternative
1471 defines for MC an gm2.
1473 (EXTERN): Force undefine and redefine.
1474 (SysExceptions_InitExceptionHandlers): Rewrite function
1475 declaration using defined macros.
1476 (_M2_SysExceptions_init): Use EXTERN.
1477 (_M2_SysExceptions_finish): Replace with ...
1478 (_M2_SysExceptions_fini): ... this and add parameters.
1479 * gm2-libs-ch/UnixArgs.cc (gm2-libs-host.h): Include.
1480 (GUnixArgs.h): Include.
1481 (GM2RTS.h): Include.
1482 (UnixArgs_GetArgV): Change return type to void *.
1483 (UnixArgs_GetEnvV): Ditto.
1484 * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): Add new
1486 (M2RTS_RequestDependant): Remove.
1487 (M2RTS_RegisterModule): Ditto.
1488 (M2RTS_Terminate): Ditto.
1489 (M2RTS_DeconstructModules): Ditto.
1490 (M2RTS_Halt): Ditto.
1491 (_M2_M2RTS_init): Ditto.
1492 (M2RTS_ConstructModules): Ditto.
1493 * gm2-libs-ch/termios.c (_termios_C): Define.
1494 (EXTERN): Add conditional definition.
1495 (doSetUnset): New function.
1496 (_M2_termios_init): Add correct parameters.
1497 (_M2_termios_finish): Ditto.
1498 (_M2_termios_fini): Ditto.
1499 * mc-boot-ch/GSysExceptions.c (DECL_PROC_T): New define.
1501 (EXTERN): Force undef.
1502 (SysExceptions_InitExceptionHandlers): Rewrite.
1503 * mc-boot-ch/Glibc.c (libc_open): Rename parameter
1505 * mc-boot-ch/Gtermios.cc (_termios_C): New define.
1506 (KillTermios): Change parameter type from
1507 struct termios * to termios_TERMIOS.
1510 (tcsdrain): Rewrite.
1511 (tcsflush): Rewrite.
1512 (cfgetospeed): Rewrite.
1513 (cfgetispeed): Rewrite.
1514 (cfsetospeed): Rewrite.
1515 (cfsetispeed): Rewrite.
1516 (cfsetspeed): Rewrite.
1517 (cfsetspeed): Rewrite.
1518 (tcgetattr): Rewrite.
1519 (tcsetattr): Rewrite.
1520 (cfmakeraw): Rewrite.
1521 (tcsendbreak): Rewrite.
1523 (tcflushi): Rewrite.
1524 (tcflusho): Rewrite.
1525 (tcflushio): Rewrite.
1526 (tcflowoni): Rewrite.
1527 (tcflowoffi): Rewrite.
1528 (tcflowono): Rewrite.
1529 (tcflowoffo): Rewrite.
1534 (InitTermios): Rewrite.
1535 * pge-boot/GM2RTS.cc: Regenerate.
1536 * pge-boot/GSysExceptions.cc: Ditto.
1537 * pge-boot/Gtermios.cc: Ditto.
1538 * pge-boot/m2rts.h: Rewrite.
1539 * mc-boot-ch/GSYSTEM.h: New file.
1540 * mc-boot-ch/GSysExceptions.h: New file.
1541 * mc-boot-ch/Gtermios.h: New file.
1543 2024-08-24 Gaius Mulley <gaiusmod2@gmail.com>
1545 * gm2-libs/libc.def (atof): Export unqualified.
1557 2024-08-16 Gaius Mulley <gaiusmod2@gmail.com>
1559 * gm2-libs-iso/StdChans.mod (in): Rename to ...
1561 (out): Rename to ...
1563 (err): Rename to ...
1566 2024-08-16 Gaius Mulley <gaiusmod2@gmail.com>
1568 * gm2-libs/DynamicStrings.mod (Slice): Rename end to stop.
1570 2024-08-16 Gaius Mulley <gaiusmod2@gmail.com>
1573 * gm2-libs-iso/TermFile.mod (termOpen): Add third argument
1575 * gm2-libs/libc.def (open): Remove vararg and use INTEGER for
1576 mode parameter three.
1577 * mc-boot-ch/Glibc.c (tracedb_open): Replace mode_t with int.
1578 (libc_open): Rewrite without varargs.
1579 * mc-boot/Glibc.h (libc_open): Replace varargs with int mode.
1580 * pge-boot/Glibc.cc (libc_open): Rewrite.
1581 * pge-boot/Glibc.h (libc_open): Replace varargs with int mode.
1583 2024-08-12 Gaius Mulley <gaiusmod2@gmail.com>
1586 * gm2-compiler/ppg.mod (FindStr): Initialize j.
1587 * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Replace
1588 M2RTS_RegisterModule with M2RTS_RegisterModule_Cstr.
1589 * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Ditto.
1590 * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Cast parameter s
1592 (_M2_ldtoa_ctor): Replace M2RTS_RegisterModule with
1593 M2RTS_RegisterModule_Cstr.
1594 * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New
1596 (M2RTS_RegisterModule): Remove const.
1597 * mc-boot-ch/GSelective.c (Selective_FdIsSet): Return bool
1599 * mc-boot-ch/Gldtoa.cc (ldtoa_strtold): Change const char to
1601 Cast s before passing as a parameter to strtod.
1602 * mc-boot-ch/Glibc.c (tracedb_open): Replace const char with const
1604 (libc_perror): Replace char with const char.
1605 (libc_printf): Replace char with void.
1606 (libc_snprintf): Replace char with void.
1607 Add const_cast for parameter to index.
1608 Add reinterpret_cast for parameter to vsnprintf.
1609 (libc_open): Replace first paramter type char with void.
1610 Add vararg for the third parameter.
1611 * mc-boot-ch/Gm2rtsdummy.cc (M2RTS_RequestDependant): Remove #if 0 code.
1612 (m2pim_M2RTS_RegisterModule): Change const char parameters to void
1613 (M2RTS_RegisterModule): Ditto.
1614 (_M2_M2RTS_init): Remove #if 0 code.
1615 (M2RTS_ConstructModules): Ditto.
1616 (M2RTS_Terminate): Ditto.
1617 (M2RTS_DeconstructModules): Ditto.
1618 (M2RTS_Halt): Ditto.
1619 * mc-boot-ch/Gtermios.cc (SetFlag): Return bool.
1620 * mc-boot-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
1621 (M2RTS_RegisterModule): Change const char parameters to void.
1622 * mc-boot/Gdecl.cc: Regenerate.
1623 * mc/decl.mod (getNextConstExp): Reimplement.
1624 * pge-boot/GDynamicStrings.cc: Regenerate.
1625 * pge-boot/GDynamicStrings.h: Ditto.
1626 * pge-boot/GM2RTS.h (M2RTS_RegisterModule_Cstr): New function.
1627 (M2RTS_RegisterModule): Reformat.
1628 * pge-boot/GSymbolKey.cc: Regenerate.
1629 * pge-boot/GSysExceptions.cc (_M2_SysExceptions_init): Add correct parameters.
1630 (_M2_SysExceptions_fini): Ditto.
1631 * pge-boot/GUnixArgs.cc (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor):
1632 Replace call to M2RTS_RegisterModule with M2RTS_RegisterModuleCstr.
1633 * pge-boot/Gerrno.cc (_M2_errno_init): Add correct parameters.
1634 (_M2_errno_fini): Ditto.
1635 * pge-boot/Gldtoa.cc (ldtoa_strtold): Replace const char with
1637 Use reinterpret_cast when passing s to strtod.
1638 Replace true with TRUE.
1639 * pge-boot/Gldtoa.h (ldtoa_strtold): Tidy up.
1640 * pge-boot/Glibc.cc (libc_read): Use size_t as the return type.
1641 (libc_write): Ditto.
1642 (libc_strlen): Ditto.
1643 (libc_perror): Replace char with const char.
1644 (libc_printf): Replace char to const char.
1645 Cast parameter to index using const_cast.
1646 (libc_snprintf): Replace char with void.
1647 Cast parameter to index using const_cast.
1648 (libc_malloc): Replace parameter type with size_t.
1649 (libc_memcpy): Replace third parameter type with size_t.
1650 (libc_open): Use varargs.
1651 * pge-boot/Glibc.h (libc_perror): Add _string_high parameter.
1652 * pge-boot/Gpge.cc: Regenerate.
1653 * pge-boot/Gtermios.cc (SetFlag): Replace return type with bool.
1654 (_M2_termios_init): Add correct parameters.
1655 (_M2_termios_fini): Ditto.
1656 * pge-boot/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
1657 (M2RTS_RegisterModule): Replace const char with void.
1659 2024-08-10 Wilken Gottwalt <wilken.gottwalt@posteo.net>
1661 * gm2-libs-iso/MemStream.mod: Guard debug output.
1663 2024-07-28 Gaius Mulley <gaiusmod2@gmail.com>
1666 * gm2-gcc/m2builtins.cc (define_builtin): Build
1667 the function decl using the libname.
1669 2024-07-24 Gaius Mulley <gaiusmod2@gmail.com>
1671 * gm2-compiler/M2StateCheck.mod (GenerateError): Add
1672 symbol name to the error message.
1674 2024-07-23 Gaius Mulley <gaiusmod2@gmail.com>
1677 * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2StateCheck.def.
1678 (GM2-COMP-BOOT-MODS): Add M2StateCheck.mod.
1679 (GM2-COMP-DEFS): Add M2StateCheck.def.
1680 (GM2-COMP-MODS): Add M2StateCheck.mod.
1681 * gm2-compiler/M2Quads.mod (StartBuildWith): Generate
1682 unrecoverable error is the qualident type is NulSym.
1683 Replace MetaError1 with MetaErrorT1 and position the error
1685 * gm2-compiler/P3Build.bnf (M2StateCheck): Import procedures.
1686 (seenError): New variable.
1687 (WasNoError): Remove variable.
1688 (BlockState): New variable.
1689 (ErrorString): Rewrite using seenError.
1690 (CompilationUnit): Ditto.
1691 (QualidentCheck): New rule.
1692 (ConstantDeclaration): Bookend with InclConst and ExclConst.
1693 (Constructor): Add InclConstructor, ExclConstructor and call
1695 (ConstActualParameters): Call PushState, PopState, InclConstFunc
1697 (TypeDeclaration): Bookend with InclType and ExclType.
1698 (SimpleType): Call QualidentCheck.
1700 (OptReturnType): Ditto.
1701 (VariableDeclaration): Bookend with InclVar and ExclVar.
1702 (Designator): Call QualidentCheck.
1703 (Formal;Type): Ditto.
1704 * gm2-compiler/PCBuild.bnf (M2StateCheck): Import procedures.
1705 (ConstantDeclaration): Rewrite using InclConst and ExclConst.
1706 (Constructor): Bookend with InclConstructor and ExclConstructor.
1707 Call CheckQualident.
1708 (ConstructorOrConstActualParameters): Rewrite and cal
1710 (ConstActualParameters): Bookend with PushState PopState.
1711 Call InclConstFunc and CheckQualident.
1712 * gm2-gcc/init.cc (_M2_M2StateCheck_init): New declaration.
1713 (_M2_P3Build_init): New declaration.
1714 (init_PerCompilationInit): Call _M2_M2StateCheck_init and
1716 * gm2-compiler/M2StateCheck.def: New file.
1717 * gm2-compiler/M2StateCheck.mod: New file.
1719 2024-07-16 Gaius Mulley <gaiusmod2@gmail.com>
1722 * gm2-compiler/M2StackAddress.mod (PopAddress): Detect tail=NIL
1723 and generate an internal error.
1724 * gm2-compiler/PCBuild.bnf (InConstParameter): New variable.
1725 (InConstBlock): New variable.
1726 (ErrorString): Rewrite using MetaErrorStringT0.
1727 (ErrorArrayAt): Rewrite using MetaErrorStringT0.
1728 (WarnMissingToken): Use MetaErrorStringT0.
1729 (CompilationUnit): Set seenError FALSE.
1730 (init): Initialize InConstParameter and InConstBlock.
1731 (ConstantDeclaration): Set InConstBlock.
1732 (ConstSetOrQualidentOrFunction): Call CheckNotVar if not
1733 InConstParameter and InConstBlock.
1734 (ConstActualParameters): Set InConstParameter TRUE and restore
1736 * gm2-compiler/PCSymBuild.def (CheckNotVar): New procedure.
1737 Remove all unnecessary export qualified list.
1738 * gm2-compiler/PCSymBuild.mod (CheckNotVar): New procedure.
1740 2024-07-12 FX Coudert <fxcoudert@gmail.com>
1742 * gm2-gcc/m2linemap.cc (INCLUDE_STRING): Define before
1743 include of gcc-consolidation.h.
1744 * gm2spec.cc (INCLUDE_STRING): Define before include of
1746 (INCLUDE_VECTOR): Ditto.
1748 2024-07-10 Gaius Mulley <gaiusmod2@gmail.com>
1751 * gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New
1753 (builtin_function_match): New function.
1754 (builtin_macro_match): Ditto.
1755 (m2builtins_BuiltinExists): Use builtin_function_match and
1756 builtin_macro_match.
1757 (lookup_builtin_macro): Use builtin_macro_match.
1758 (lookup_builtin_function): Use builtin_function_match.
1759 (define_builtin): Assign builtinname field.
1761 2024-07-07 Gaius Mulley <gaiusmod2@gmail.com>
1762 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1763 Andrew Pinski <quic_apinski@quicinc.com>
1766 * gm2-gcc/m2builtins.cc (builtin_function_entry): Add GTY.
1767 (DoBuiltinMemCopy): Add rettype and use rettype in the call.
1768 (DoBuiltinAlloca): Ditto.
1769 (DoBuiltinIsfinite): Ditto.
1770 (DoBuiltinIsnan): Ditto.
1771 (m2builtins_BuiltInHugeVal): Ditto.
1772 (m2builtins_BuiltInHugeValShort): Ditto.
1773 (m2builtins_BuiltInHugeValLong): Ditto.
1775 2024-06-25 Gaius Mulley <gaiusmod2@gmail.com>
1777 * gm2-compiler/M2GenGCC.mod (QuadCondition): Remove.
1778 (FoldIfEqu): Remove WalkAction parameter.
1779 (FoldIfNotEqu): Ditto.
1780 (FoldIfGreEqu): Ditto.
1781 (FoldIfLessEqu): Ditto.
1783 (FoldIfLess): Ditto.
1785 (FoldIfNotIn): Ditto.
1786 * gm2-compiler/M2Quads.mod (GenQuadOTypeUniquetok): Remove.
1788 2024-06-25 Gaius Mulley <gaiusmod2@gmail.com>
1791 * gm2-libs-ch/termios.c (cfmakeraw): Remove return.
1792 * mc-boot-ch/Gtermios.cc (cfmakeraw): Remove return.
1793 * pge-boot/Gtermios.cc (cfmakeraw): Remove return.
1795 2024-06-25 Gaius Mulley <gaiusmod2@gmail.com>
1798 * gm2-compiler/M2BasicBlock.def (GetBasicBlockScope): New procedure.
1799 (GetBasicBlockStart): Ditto.
1800 (GetBasicBlockEnd): Ditto.
1801 (IsBasicBlockFirst): New procedure function.
1802 * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): Allow
1803 conditional boolean quads to be removed.
1804 (GetBasicBlockScope): Implement new procedure.
1805 (GetBasicBlockStart): Ditto.
1806 (GetBasicBlockEnd): Ditto.
1807 (IsBasicBlockFirst): Implement new procedure function.
1808 * gm2-compiler/M2GCCDeclare.def (FoldConstants): New parameter
1810 * gm2-compiler/M2GCCDeclare.mod (FoldConstants): New parameter
1812 (DeclareTypesConstantsProceduresInRange): Recreate basic blocks
1813 after resolving constant expressions.
1814 (CodeBecomes): Guard IsVariableSSA with IsVar.
1815 * gm2-compiler/M2GenGCC.def (ResolveConstantExpressions): New
1816 parameter declaration.
1817 * gm2-compiler/M2GenGCC.mod (FoldIfLess): Remove relop pattern
1820 (FoldIfLessEqu): Ditto.
1821 (FoldIfGreEqu): Ditto.
1823 (FoldIfNotIn): Ditto.
1825 (FoldIfNotEqu): Ditto.
1826 (FoldBecomes): Add BasicBlock parameter and allow conditional
1827 boolean becomes to be folded in the first basic block.
1828 (ResolveConstantExpressions): Reimplement.
1829 * gm2-compiler/M2Quads.def (IsConstQuad): New procedure function.
1830 (IsConditionalBooleanQuad): Ditto.
1831 * gm2-compiler/M2Quads.mod (IsConstQuad): Implement new procedure function.
1832 (IsConditionalBooleanQuad): Ditto.
1833 (MoveWithMode): Use GenQuadOTypetok.
1834 (IsInitialisingConst): Rewrite using OpUsesOp1.
1835 (OpUsesOp1): New procedure function.
1836 (doBuildAssignment): Mark des as a VarConditional.
1837 (ConvertBooleanToVariable): Call PutVarConditional.
1838 (DumpQuadSummary): New procedure.
1839 (BuildRelOpFromBoolean): Updated debugging and improved comments.
1840 (BuildRelOp): Only call BuildRelOpFromBoolean if we are in a const
1841 expression and both operands are boolean relops.
1842 (GenQuadOTypeUniquetok): New procedure.
1843 (BackPatch): Correct comment.
1844 * gm2-compiler/SymbolTable.def (PutVarConditional): New procedure.
1845 (IsVarConditional): New procedure function.
1846 * gm2-compiler/SymbolTable.mod (PutVarConditional): Implement new
1848 (IsVarConditional): Implement new procedure function.
1849 (SymConstVar): New field IsConditional.
1850 (SymVar): New field IsConditional.
1851 (MakeVar): Initialize IsConditional field.
1852 (MakeConstVar): Initialize IsConditional field.
1853 * gm2-compiler/M2Swig.mod (DoBasicBlock): Change parameters to
1855 * gm2-compiler/M2Code.mod (SecondDeclareAndOptimize): Use iterator
1856 to FoldConstants over basic block list.
1857 * gm2-compiler/M2SymInit.mod (AppendEntry): Replace parameters
1859 * gm2-compiler/P3Build.bnf (Relation): Call RecordOp for #, <> and =.
1861 2024-06-17 Kewen Lin <linkw@linux.ibm.com>
1863 * gm2-gcc/m2type.cc (build_m2_short_real_node): Adjust assertion with
1865 (build_m2_real_node): Likewise.
1866 (build_m2_long_real_node): Add assertion with TYPE_SIZE check.
1868 2024-06-11 Gaius Mulley <gaiusmod2@gmail.com>
1871 * Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.
1872 * Make-maintainer.in (mc-basetest): New rule.
1873 (mc-devel-basetest): New rule.
1874 (mc-clean): Remove mc.
1875 (m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque
1876 with $(EXTENDED_OPAQUE).
1877 (PG-SRC): Move define before generic rules.
1879 (m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.
1880 (m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.
1881 (m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.
1882 (m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.
1883 (m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.
1884 (m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.
1885 (m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.
1886 (m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
1887 (m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.
1888 (m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.
1889 (m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.
1890 (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
1891 (m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
1892 (m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
1893 (m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
1894 (m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
1895 (m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.
1896 (m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.
1897 (m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.
1898 (m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
1899 (m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
1900 (m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.
1901 (m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
1902 (m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.
1903 (m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
1904 (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
1905 (m2/ppg$(exeext)): Ditto.
1906 (m2/gm2-ppg-boot/main.o): Ditto.
1907 (m2/gm2-auto): Ditto.
1908 (c-family/m2pp.o): Ditto.
1909 (BUILD-BOOT-PG-H): Correct macro definition.
1910 (m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.
1911 (m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
1912 (m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
1913 (m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.
1914 (m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.
1915 (m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.
1916 (m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.
1917 (m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
1918 (m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
1919 (m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.
1920 (m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
1921 (m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.
1922 (m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
1923 (BUILD-BOOT-PGE-H): Correct macro definition.
1924 (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
1925 (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
1926 (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.
1927 (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
1928 (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.
1929 (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
1930 (m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.
1931 (m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
1932 (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.
1933 (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
1934 (m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.
1935 (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
1936 (m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.
1937 (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
1938 (mc-basetest): Ditto.
1939 (mc-devel-basetest): Ditto.
1940 * gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.
1941 * gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.
1942 (BuildBitLength): Ditto.
1943 * gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment
1944 to the start of the block.
1945 * gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
1946 (SetOrDesignatorOrFunction): Ditto.
1947 * gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
1948 (SetOrDesignatorOrFunction): Ditto.
1949 (ByteAlignment): Ditto.
1950 * gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.
1951 * gm2-libs/ldtoa.def (ldtoa): Ditto.
1952 * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.
1953 (_M2_SYSTEM_fini): Ditto.
1954 * mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.
1955 (dtoa_dtoa): Return void * and use bool in the fifth parameter.
1956 (_M2_dtoa_init): Correct parameter list.
1957 (_M2_dtoa_fini): Ditto.
1958 * mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.
1959 (_M2_errno_fini): Ditto.
1960 * mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.
1961 (ldtoa_ldtoa): Return void * and use bool in the fifth parameter.
1962 (_M2_ldtoa_init): Correct parameter list.
1963 (_M2_ldtoa_fini): Ditto.
1964 * mc-boot-ch/Glibc.c (tracedb_zresult): New function.
1965 (libc_read): Return size_t and use size_t in parameter three.
1966 (libc_write): Return size_t and use size_t in parameter three.
1967 (libc_printf): Add const to the format specifier.
1968 Change declaration of c to use const.
1969 (libc_snprintf): Add const to the format specifier.
1970 Change declaration of c to use const.
1971 (libc_malloc): Use size_t.
1972 (libc_memcpy): Ditto.
1973 * mc-boot/GASCII.cc: Regenerate.
1974 * mc-boot/GArgs.cc: Ditto.
1975 * mc-boot/GAssertion.cc: Ditto.
1976 * mc-boot/GBreak.cc: Ditto.
1977 * mc-boot/GCmdArgs.cc: Ditto.
1978 * mc-boot/GDebug.cc: Ditto.
1979 * mc-boot/GDynamicStrings.cc: Ditto.
1980 * mc-boot/GEnvironment.cc: Ditto.
1981 * mc-boot/GFIO.cc: Ditto.
1982 * mc-boot/GFormatStrings.cc: Ditto.
1983 * mc-boot/GFpuIO.cc: Ditto.
1984 * mc-boot/GIO.cc: Ditto.
1985 * mc-boot/GIndexing.cc: Ditto.
1986 * mc-boot/GM2Dependent.cc: Ditto.
1987 * mc-boot/GM2EXCEPTION.cc: Ditto.
1988 * mc-boot/GM2RTS.cc: Ditto.
1989 * mc-boot/GMemUtils.cc: Ditto.
1990 * mc-boot/GNumberIO.cc: Ditto.
1991 * mc-boot/GPushBackInput.cc: Ditto.
1992 * mc-boot/GRTExceptions.cc: Ditto.
1993 * mc-boot/GRTint.cc: Ditto.
1994 * mc-boot/GSArgs.cc: Ditto.
1995 * mc-boot/GSFIO.cc: Ditto.
1996 * mc-boot/GStdIO.cc: Ditto.
1997 * mc-boot/GStorage.cc: Ditto.
1998 * mc-boot/GStrCase.cc: Ditto.
1999 * mc-boot/GStrIO.cc: Ditto.
2000 * mc-boot/GStrLib.cc: Ditto.
2001 * mc-boot/GStringConvert.cc: Ditto.
2002 * mc-boot/GSysStorage.cc: Ditto.
2003 * mc-boot/GTimeString.cc: Ditto.
2004 * mc-boot/Galists.cc: Ditto.
2005 * mc-boot/Gdecl.cc: Ditto.
2006 * mc-boot/Gkeyc.cc: Ditto.
2007 * mc-boot/Glists.cc: Ditto.
2008 * mc-boot/GmcComment.cc: Ditto.
2009 * mc-boot/GmcComp.cc: Ditto.
2010 * mc-boot/GmcDebug.cc: Ditto.
2011 * mc-boot/GmcError.cc: Ditto.
2012 * mc-boot/GmcFileName.cc: Ditto.
2013 * mc-boot/GmcLexBuf.cc: Ditto.
2014 * mc-boot/GmcMetaError.cc: Ditto.
2015 * mc-boot/GmcOptions.cc: Ditto.
2016 * mc-boot/GmcPreprocess.cc: Ditto.
2017 * mc-boot/GmcPretty.cc: Ditto.
2018 * mc-boot/GmcPrintf.cc: Ditto.
2019 * mc-boot/GmcQuiet.cc: Ditto.
2020 * mc-boot/GmcReserved.cc: Ditto.
2021 * mc-boot/GmcSearch.cc: Ditto.
2022 * mc-boot/GmcStack.cc: Ditto.
2023 * mc-boot/GmcStream.cc: Ditto.
2024 * mc-boot/Gmcp1.cc: Ditto.
2025 * mc-boot/Gmcp2.cc: Ditto.
2026 * mc-boot/Gmcp3.cc: Ditto.
2027 * mc-boot/Gmcp4.cc: Ditto.
2028 * mc-boot/Gmcp5.cc: Ditto.
2029 * mc-boot/GnameKey.cc: Ditto.
2030 * mc-boot/GsymbolKey.cc: Ditto.
2031 * mc-boot/Gvarargs.cc: Ditto.
2032 * mc-boot/Gwlists.cc: Ditto.
2033 * mc-boot/Gdecl.h: Ditto.
2034 * mc-boot/Gldtoa.h: Ditto.
2035 * mc-boot/Glibc.h: Ditto.
2036 * mc/decl.def (putTypeOpaque): New procedure.
2037 (isTypeOpaque): New procedure function.
2038 * mc/decl.mod (debugOpaque): New constant.
2039 (nodeT): New enumeration field opaquecast.
2040 (node): New record field opaquecastF.
2041 (opaqueCastState): New record.
2042 (opaquecastT): New record.
2043 (typeT): New field isOpaque.
2044 (varT): New field opaqueState.
2049 (recordfieldT): Ditto.
2050 (componentrefT): Ditto.
2051 (pointerrefT): Ditto.
2053 (procedureT): Ditto.
2055 (makeType): Initialize field isOpaque.
2056 (makeTypeImp): Initialize field isOpaque.
2057 (putVar): Call initNodeOpaqueCastState.
2058 (putReturnType): Ditto.
2059 (makeProcType): Ditto.
2060 (putProcTypeReturn): Ditto.
2061 (makeVarParameter): Ditto.
2062 (makeNonVarParameter): Ditto.
2063 (makeFuncCall): Ditto.
2064 (putTypeOpaque): New procedure.
2065 (isTypeOpaque): New procedure function.
2066 (doMakeComponentRef): Call initNodeOpaqueCastState.
2067 (makePointerRef): Call initNodeOpaqueCastState.
2068 (doGetFuncType): Call initNodeOpaqueCastState.
2069 (doBinary): Add FALSE parameter to doExprCup.
2070 (doDeRefC): Rewrite.
2071 (doComponentRefC): Call flushOpaque.
2072 (doPointerRefC): Call flushOpaque.
2073 (doArrayRefC): Add const_cast for unbounded array.
2074 (doExprCup): Rewrite.
2075 (doTypeAliasC): Remove.
2076 (isDeclType): New procedure function.
2077 (doEnumerationC): New procedure function.
2078 (doParamTypeEmit): Ditto.
2079 (doParamTypeNameModifier): Ditto.
2080 (initOpaqueCastState): Ditto.
2081 (initNodeOpaqueCastState): Ditto.
2082 (setOpaqueCastState): Ditto.
2083 (setNodeOpaqueVoidStar): Ditto.
2084 (nodeUsesOpaque): Ditto.
2085 (getNodeOpaqueVoidStar): Ditto.
2086 (getOpaqueFlushNecessary): Ditto.
2087 (makeOpaqueCast): Ditto.
2088 (flushOpaque): Ditto.
2089 (castOpaque): Ditto.
2090 (isTypeOpaqueDefImp): Ditto.
2091 (isParamVoidStar): Ditto.
2092 (isRefVoidStar): Ditto.
2093 (isReturnVoidStar): Ditto.
2094 (isVarVoidStar): Ditto.
2095 (initNodeOpaqueState): Ditto.
2096 (assignNodeOpaqueCastState): Ditto.
2097 (assignNodeOpaqueCastFalse): Ditto.
2098 (dumpOpaqueState): Ditto.
2099 (doProcTypeC): Rewrite.
2100 (isDeclInImp): New procedure function.
2101 (doTypeNameModifier): Ditto.
2102 (doTypeC): Emit typedef if enum is declared in this module.
2103 (doCompletePartialProcType): Rewrite.
2104 (outputCompletePartialProcType): New procedure.
2105 (doOpaqueModifier): Ditto.
2107 (doProcedureHeadingC): Add opaque modifier to return type if
2109 (doReturnC): Cast opaque type for return if necessary.
2110 (forceCastOpaque): New procedure.
2111 (forceReintCastOpaque): New procedure.
2112 (doUnConstCastUnbounded): New procedure.
2113 (doAssignmentC): Cast opaque for both des and expr if necessary.
2114 (doAdrExprC): Use static_cast for void * casting.
2115 (doFuncVarParam): New procedure.
2116 (doFuncParamC): Rewrite.
2117 (doAdrArgC): Rewrite.
2118 (getFunction): New procedure function.
2119 (stop): Rename to ...
2120 (localstop): ... this.
2121 (dupFunccall): Call assignNodeOpaqueCastState.
2124 (addDoneDef): Do not add opaque types to the doneQ when declared in
2125 the definition module.
2126 * mc/mc.flex (openSource): Return bool.
2127 (_M2_mcflex_init): Correct parameter list.
2128 (_M2_mcflex_fini): Ditto.
2129 * mc/mcComment.h (stdbool.h): Include.
2130 (mcComment_initComment): Change unsigned int to bool.
2131 * mc/mcOptions.mod (handleOption): Disable --extended-opaque
2133 * mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.
2135 2024-06-06 Gaius Mulley <gaiusmod2@gmail.com>
2136 Kewen.Lin <linkw@linux.ibm.com>
2138 * gm2-gcc/m2type.cc (build_m2_short_real_node): Rewrite
2139 to use the default float_type_node.
2140 (build_m2_real_node): Rewrite to use the default
2142 (build_m2_long_real_node): Rewrite to use the default
2143 long_double_type_node or float128_type_node.
2145 2024-05-21 Gaius Mulley <gaiusmod2@gmail.com>
2147 * Make-lang.in (MC_EXTENDED_OPAQUE): New definition.
2148 * mc-boot/GDynamicStrings.cc: Rebuild.
2149 * mc-boot/GDynamicStrings.h: Rebuild.
2150 * mc-boot/Galists.cc: Rebuild.
2151 * mc-boot/Galists.h: Rebuild.
2152 * mc-boot/Gdecl.cc: Rebuild.
2153 * mc/alists.def (equalList): New procedure.
2154 * mc/alists.mod (equalList): New procedure implementation.
2155 * mc/decl.mod (group): New type.
2156 (freeGroup): New variable.
2157 (globalGroup): Ditto.
2158 (todoQ): Remove declaration and prefix all occurances with globalGroup^.
2161 (newGroup): New procedure.
2165 (equalGroup): Ditto.
2166 (topologicallyOut): Rewrite.
2168 2024-05-21 Sam James <sam@gentoo.org>
2170 * Make-lang.in (m2.install-info): Pass --destdir for dir index.
2172 2024-05-15 Gaius Mulley <gaiusmod2@gmail.com>
2175 * gm2-libs-iso/TextIO.mod (ReadRestLine): Use ReadChar to
2176 skip unwanted characters as this calls IOChan.Look and updates
2177 the cid result status. A Skip without a Look does not update
2178 the status. Skip always sets read result to allRight.
2179 * gm2-libs-iso/TextUtil.def (SkipSpaces): Improve comments.
2180 (CharAvailable): Improve comments.
2181 * gm2-libs-iso/TextUtil.mod (SkipSpaces): Improve comments.
2182 (CharAvailable): Improve comments.
2184 2024-05-09 Gaius Mulley <gaiusmod2@gmail.com>
2187 * gm2-compiler/SymbolTable.mod (GetScope): Add UndefinedSym
2188 case clause and return NulSym.
2190 2024-05-03 Gaius Mulley <gaiusmod2@gmail.com>
2193 * gm2-compiler/M2LangDump.mod (GenQualidentSymString): Add
2194 missing return result into identstr.
2195 * gm2-compiler/M2Quads.mod (ForLoopLastIteratorVariable): New
2197 (ForLoopLastIteratorConstant): Ditto.
2198 (ForLoopLastIterator): Ditto.
2199 (BuildForToByDo): Remove LastIterator calculation and call
2200 ForLoopLastIterator instead.
2201 (FinalValue): Replace with ...
2202 (LastIterator): ... this.
2204 2024-05-02 Gaius Mulley <gaiusmod2@gmail.com>
2207 * gm2-compiler/M2AsmUtil.def: Remove export qualified and
2209 * gm2-compiler/M2LangDump.mod (AddRuleTextDump): New procedure.
2210 (AddRuleScopeQualidentDump): Add warning check against unmatched
2212 (GenQualidentSymString): New procedure function.
2213 (IdentQualidentMatch): New procedure function.
2214 (IsRuleFilenameMatch): New procedure function.
2215 (CheckRuleMatch): New procedure function.
2216 (AddRuleFilenameDump): New procedure function.
2217 * gm2-gcc/m2misc.cc (m2misc_warning_m2_dump_filter): New function.
2218 * gm2-gcc/m2misc.def (warning_m2_dump_filter): New procedure.
2219 * gm2-gcc/m2misc.h (m2misc_warning_m2_dump_filter): New prototype.
2220 * gm2-gcc/m2pp.cc (VERBOSE_TYPE_DESC): New define.
2221 (m2pp_identifier): Define out verbose type info.
2222 (m2pp_constructor): Define out verbose type info.
2223 (m2pp_assignment): Define out verbose type info.
2224 * gm2-lang.cc (ENABLE_M2DUMP_ALL): Remove.
2225 * lang.opt (fm2-dump): Add.
2226 (fm2-dump-decl=): Add.
2227 (fm2-dump-gimple=): Add.
2228 (fm2-dump-quad=): Add.
2229 (fm2-dump-filter=): Add.
2231 2024-04-25 Gaius Mulley <gaiusmod2@gmail.com>
2234 * gm2-compiler/M2Range.mod (FoldTypeAssign): Avoid error
2235 string concatenation.
2237 2024-04-25 Gaius Mulley <gaiusmod2@gmail.com>
2239 * gm2-compiler/M2FileName.def (CalculateFileName): Remove
2240 quoted string in comment.
2241 * gm2-compiler/M2Range.mod (FoldTypeParam): Generate dialect
2242 specific parameter incompatibility error message.
2244 2024-04-23 Jakub Jelinek <jakub@redhat.com>
2246 * lang.opt (fdef=, fmod=): Spelling fix: recognise -> recognize.
2248 2024-04-23 Jakub Jelinek <jakub@redhat.com>
2250 * lang.opt (fuse-list=): Spelling fix: finalializations ->
2253 2024-04-22 Gaius Mulley <gaiusmod2@gmail.com>
2256 * gm2-compiler/M2GenGCC.mod (FoldBinarySet): Add condition
2257 checking to ensure op2 and op3 are fully resolved before
2258 type checking is performed.
2260 2024-04-22 Gaius Mulley <gaiusmod2@gmail.com>
2263 * gm2-compiler/M2Check.mod (checkUnbounded): Remove unused
2265 (constCheckMeta): Include check for IsReallyPointer in the
2267 * gm2-compiler/M2Quads.mod (MoveWithMode): Remove CopyConstString.
2268 * gm2-compiler/SymbolTable.def (IsHiddenReallyPointer): Export.
2269 * gm2-compiler/SymbolTable.mod (SkipHiddenType): Remove.
2270 (IsReallyPointer): Include IsHiddenReallyPointer test.
2272 2024-04-20 Gaius Mulley <gaiusmod2@gmail.com>
2275 * gm2-compiler/M2Check.mod (GetProcedureProcType): Import.
2276 (getType): Return value using GetProcedureProcType if sym is a
2278 * gm2-compiler/M2Range.mod (FoldTypeExpr): Remove quad if
2279 expression is type compatible.
2280 * gm2-compiler/SymbolTable.def (GetProcedureProcType): New
2282 * gm2-compiler/SymbolTable.mod (Procedure): Add ProcedureType.
2283 (MakeProcedure): Initialize ProcedureType.
2284 (PutParam): Call AddProcedureProcTypeParam.
2285 (PutVarParam): Call AddProcedureProcTypeParam.
2286 (AddProcedureProcTypeParam): New procedure.
2287 (GetProcedureProcType): New procedure function.
2289 2024-04-16 Gaius Mulley <gaiusmod2@gmail.com>
2292 * gm2-compiler/M2Code.mod (DumpLangDecl): Replace with ...
2293 (GetDumpDecl): ... this.
2294 (DumpLangGimple): Replace with ...
2295 (GetDumpGimple): ... this.
2296 * gm2-compiler/M2GenGCC.mod:
2297 * gm2-compiler/M2LangDump.mod (GetDumpLangQuadFilename): Replace with ...
2298 (GetDumpQuadFilename): ... this.
2299 (GetDumpLangDeclFilename): Replace with ...
2300 (GetDumpDeclFilename): ... this.
2301 (GetDumpLangGimpleFilename): Replace with ...
2302 (GetDumpGimpleFilename): ... this.
2303 * gm2-compiler/M2Options.def (GetDumpLangDeclFilename): New
2305 (GetDumpDeclFilename): Ditto.
2306 (SetDumpLangDeclFilename): New procedure.
2307 (SetDumpDeclFilename): Ditto.
2308 (GetDumpLangQuadFilename): New procedure function.
2309 (GetDumpQuadFilename): Ditto
2310 (SetDumpLangQuadFilename): New procedure.
2311 (SetDumpQuadFilename): Ditto.
2312 (GetDumpLangGimpleFilename): New procedure function.
2313 (GetDumpGimpleFilename): Ditto.
2314 (SetDumpLangGimpleFilename): New procedure.
2315 (SetDumpGimpleFilename): Ditto.
2316 (GetDumpLangGimple): New procedure function.
2317 (SetM2Dump): New procedure.
2318 (GetDumpGimple): New procedure function.
2319 (GetDumpQuad): Ditto.
2320 (GetDumpDecl): Ditto.
2321 * gm2-compiler/M2Options.mod (DumpLangDeclFilename): Remove.
2322 (DumpLangQuadFilename): Ditto.
2323 (DumpLangGimpleFilename): Ditto.
2324 (DumpDeclFilename): New variable.
2325 (DumpQuadFilename): Ditto.
2326 (DumpGimpleFilename): Ditto.
2327 (DebugTraceTree): New variable.
2328 (SetQuadDebugging): Rewrite.
2329 (GetDumpLangDeclFilename): Replace with ...
2330 (GetDumpDeclFilename): ... this.
2331 (SetDumpLangQuadFilename): Replace with ...
2332 (SetDumpQuadFilename): ... this.
2333 (GetDumpLangGimpleFilename): Replace with ...
2334 (GetDumpGimpleFilename): ... this.
2335 (SetDumpLangGimpleFilename): Replace with ...
2336 (SetDumpGimpleFilename): ... this.
2337 (GetDumpLangGimple): Remove.
2338 (MatchDump): New procedure function.
2339 (SetM2Dump): New procedure.
2340 (GetDumpGimple): New procedure function.
2341 (GetDumpQuad): Ditto.
2342 (GetDumpDecl): Ditto.
2343 (GetDumpLangGimple): Ditto.
2344 * gm2-compiler/M2Quads.mod (BreakAtQuad): Assigned to 140.
2345 (BuildTypeCoercion): Add ConstExpr parameter.
2346 Check for const parameter in a const expression.
2347 Create a constant temporary if in a const expression.
2348 (BuildCastFunction): Pass ConstExpr to BuildTypeCoercion.
2349 (BuildFunctionCall): Pass ConstExpr to BuildTypeCoercion.
2350 * gm2-compiler/PCSymBuild.mod (buildConstFunction): Test for Cast
2351 and call InitConvert.
2352 (ErrorConstFunction): Add CAST to the error message.
2353 * gm2-compiler/SymbolTable.mod (GetConstStringContent): Remove
2355 * gm2-gcc/m2decl.cc (m2decl_DeclareKnownConstant): Copy value
2356 and change type of value.
2357 * gm2-gcc/m2options.h (M2Options_GetDumpLangDeclFilename): Remove.
2358 (M2Options_SetDumpLangDeclFilename): Ditto.
2359 (M2Options_GetDumpLangQuadFilename): Ditto.
2360 (M2Options_SetDumpLangQuadFilename): Ditto.
2361 (M2Options_GetDumpLangGimpleFilename): Ditto.
2362 (M2Options_SetDumpLangGimpleFilename): Ditto.
2363 (M2Options_GetDumpLangGimple): Ditto.
2364 (M2Options_GetDumpDeclFilename): New function.
2365 (M2Options_SetDumpDeclFilename): Ditto.
2366 (M2Options_GetDumpQuadFilename): Ditto.
2367 (M2Options_SetDumpQuadFilename): Ditto.
2368 (M2Options_GetDumpGimpleFilename): Ditto.
2369 (M2Options_SetDumpGimpleFilename): Ditto.
2370 (M2Options_SetM2Dump): Ditto.
2371 (M2Options_GetDumpGimple): Ditto.
2372 * gm2-gcc/m2pp.cc (GM2): New define.
2373 (m2pp_type_lowlevel): Remove linefeed.
2374 (m2pp_identifier): Add type description for const.
2375 (m2pp_assignment): Display lhs/rhs types.
2376 (m2pp_dump_gimple): Replace GetDumpLangGimple with GetDumpGimple.
2377 * gm2-lang.cc (ENABLE_QUAD_DUMP_ALL): Remove.
2378 (ENABLE_M2DUMP_ALL): New define.
2379 (gm2_langhook_handle_option): Remove commented options
2380 OPT_fdump_lang_all, OPT_fdump_lang_decl_, OPT_fdump_lang_gimple,
2381 OPT_fdump_lang_gimple_, OPT_fdump_lang_quad and
2382 OPT_fdump_lang_quad_.
2383 Add commented options OPT_fm2_dump_, OPT_fm2_dump_decl_,
2384 OPT_fm2_dump_gimple_ and OPT_fm2_dump_quad_.
2386 2024-04-09 Gaius Mulley <gaiusmod2@gmail.com>
2388 * tools-src/makeSystem: Invoke ${COMPILER} once and adjust
2389 the echo string to expand the shell variables with -wrapper
2392 2024-04-09 Gaius Mulley <gaiusmod2@gmail.com>
2395 * gm2-compiler/M2Options.mod (LineDirectives): Initially
2398 2024-04-06 Gaius Mulley <gaiusmod2@gmail.com>
2401 * gm2-compiler/M2GenGCC.mod (CodeStatememt): Add quad trace.
2402 (ResolveConstantExpressions): Add parameter p to FoldIfLess,
2403 FoldIfGre, FoldIfLessEqu, FoldIfGreEqu, FoldIfEqu, FoldIfNotEqu,
2404 FoldIfIn and FoldIfNotIn.
2405 (CodeInline): Add constExpr variable and pass it to GetQuadOtok.
2406 (CodeReturnValue): Ditto.
2408 (FoldStringLength): Ditto.
2409 (FoldStringConvertM2nul): Ditto.
2410 (FoldStringConvertCnul): Ditto.
2411 (DeclaredOperandsBecomes): Ditto.
2412 (TypeCheckBecomes): Ditto.
2413 (PerformFoldBecomes): Ditto.
2414 (CodeBecomes): Ditto.
2415 (CheckElementSetTypes): Ditto.
2416 (CodeBinarySet): Ditto.
2417 (PerformCodeIfLess): Ditto.
2418 (PerformCodeIfGre): Ditto.
2419 (PerformCodeIfLessEqu): Ditto.
2420 (PerformCodeIfGreEqu): Ditto.
2421 (PerformCodeIfEqu): Ditto.
2422 (PerformCodeIfNotEqu): Ditto.
2423 (IsValidExpressionRelOp): Ditto.
2424 (PerformCodeIfIn): Ditto.
2425 (PerformCodeIfNotIn): Ditto.
2427 (QuadCondition): New procedure function.
2428 (IsBooleanRelOpPattern): Ditto.
2429 (FoldBooleanRelopPattern): Ditto.
2430 (FoldIfGre): Check for boolean relop constant expression and
2432 (FoldIfLessEqu): Ditto.
2435 (FoldIfNotIn): Ditto.
2436 (FoldIfGreEqu): New procedure.
2437 (FoldIfNotEqu): Ditto.
2438 * gm2-compiler/M2Optimize.mod (ReduceBranch): Add constExpr
2439 variable and pass it to GetQuadOtok.
2440 * gm2-compiler/M2Quads.def (IsBecomes): New procedure function.
2442 (IsQuadConstExpr): Ditto.
2443 (SetQuadConstExpr): Ditto.
2444 (GetQuadDest): New procedure.
2445 (GetQuadOp1): New procedure.
2446 (GetQuadOp2): New procedure.
2447 (GetQuadOp3): New procedure.
2448 (GetQuadOtok): New procedure.
2449 (GetQuadOTypetok): New procedure.
2450 (PutQuadOtok): New procedure.
2451 (IsInConstParameters): New procedure function.
2452 * gm2-compiler/M2Quads.mod (IsBecomes): New procedure function.
2454 (IsQuadConstExpr): Ditto.
2455 (SetQuadConstExpr): Ditto.
2456 (GetQuadDest): New procedure.
2457 (GetQuadOp1): New procedure.
2458 (GetQuadOp2): New procedure.
2459 (GetQuadOp3): New procedure.
2460 (GetQuadOtok): New procedure.
2461 (GetQuadOTypetok): New procedure.
2462 (PutQuadOtok): New procedure.
2463 (IsInConstParameters): New procedure function.
2464 (ConstStack): Remove to ...
2465 (ConstExprStack): ... this.
2466 (ConstParamStack): New variable and initialize.
2467 (QuadFrame): New field ConstExpr.
2468 (GetQuadOtok): Add parameter constExpr and assign.
2469 (PutQuadOtok): Add constExpr parameter and assign.
2470 (PutQuadOType): Ditto.
2471 (GetQuadOTypetok): Ditto.
2472 (EraseQuad): Assign ConstExpr to FALSE.
2473 (FoldSubrange): Set ConstExpr to FALSE in BecomesOp.
2474 (PushInConstParameters): New procedure.
2475 (PopInConstParameters): New procedure.
2476 (IsInConstParameters): New procedure function.
2477 * gm2-compiler/M2SymInit.mod (IssueConditional): Add
2478 constExpr boolean variable.
2479 (CheckReadBeforeInitQuad): Ditto.
2480 (trashParam): Ditto.
2481 * gm2-compiler/P3Build.bnf (ConstExpression): Call
2482 PushInConstExpression and PopInConstExpression.
2483 (ConstSetOrQualidentOrFunction): Call
2484 PushInConstParameters and PopInConstParameters.
2485 * gm2-compiler/PCBuild.bnf (ConstExpression): Call
2486 PushInConstExpression and PopInConstExpression.
2487 * gm2-compiler/PHBuild.bnf: Ditto
2488 * gm2-gcc/m2expr.cc (m2expr_BuildCondIfExpression): New
2490 * gm2-gcc/m2expr.def (BuildCondIfExpression): New prototype.
2491 * gm2-gcc/m2expr.h (m2expr_BuildCondIfExpression): New function.
2493 2024-04-05 Christophe Lyon <christophe.lyon@linaro.org>
2495 * Make-lang.in (m2.install-dvi): New rule.
2497 2024-04-02 Gaius Mulley <gaiusmod2@gmail.com>
2500 * gm2-compiler/M2GenGCC.mod (CodeStatement): Test
2501 GetDebugTraceQuad before calling DisplayQuad.
2502 * gm2-compiler/M2LexBuf.mod (NumberIO): Import CardToStr.
2503 (GetToken): Test GetDebugTraceToken before writing the
2504 token number or token line.
2505 * gm2-compiler/M2Options.def (SetDebugTraceQuad): Rename to
2506 (SetM2DebugTraceFilter): ...this.
2507 (SetDebugTraceAPI): Remove.
2508 (GetDebugTraceQuad): New procedure function.
2509 (GetDebugTraceTree): Ditto.
2510 (GetDebugTraceToken): Ditto.
2511 (GetDebugTraceLine): Ditto.
2512 (GetDebugFunctionLineNumbers): Ditto.
2513 * gm2-compiler/M2Options.mod (DebugFunctionLineNumbers): New
2515 (DebugTraceQuad): Ditto.
2516 (DebugTraceTree): Ditto.
2517 (DebugTraceLine): Ditto.
2518 (DebugTraceToken): Ditto.
2519 (errors1): New procedure.
2520 (SetDebugTraceQuad): Remove.
2521 (SetM2DebugTraceFilter): New procedure implemented.
2522 (SetM2DebugTrace): Ditto.
2523 (GetDebugTraceQuad): Ditto.
2524 (GetDebugTraceToken ): Ditto.
2525 (GetDebugTraceLine): Ditto.
2526 (SetDebugTraceLine): Remove.
2527 * gm2-compiler/M2Quads.mod (GenQuadOTrash): Test
2528 GetDebugTraceQuad and call DisplayQuad.
2529 (GenQuadOTypetok): Ditto.
2530 * gm2-compiler/SymbolTable.mod: Replace
2531 DebugFunctionLineNumbers with GetDebugFunctionLineNumbers.
2532 * gm2-gcc/init.cc (_M2_M2LangDump_init): Add prototype.
2533 (init_PerCompilationInit): Add call.
2534 * gm2-gcc/m2misc.cc (m2misc_cerror): New function.
2535 (m2misc_error): Ditto.
2536 * gm2-gcc/m2misc.def (error): New procedure.
2538 * gm2-gcc/m2misc.h (m2misc_cerror): New prototype.
2539 (m2misc_error): Ditto.
2540 * gm2-gcc/m2options.h (M2Options_SetDebugTraceQuad): New
2542 (M2Options_SetDebugTraceAPI): Remove.
2543 (M2Options_GetDebugTraceToken): New prototype.
2544 (M2Options_GetDebugTraceLine): Ditto.
2545 (M2Options_SetDebugFunctionLineNumbers): Ditto.
2546 (M2Options_GetDebugFunctionLineNumbers): Ditto.
2547 (M2Options_SetM2DebugTraceFilter): Ditto.
2548 * gm2-lang.cc (gm2_langhook_init_options): Remove
2549 OPT_fdebug_trace_quad case.
2550 Remove OPT_fdebug_trace_api case.
2551 Add OPT_fm2_debug_trace_ case.
2552 * lang.opt (fm2-debug-trace): New option.
2553 (fdebug-trace-api): Remove.
2554 (fdebug-trace-quad): Remove.
2555 * m2.flex (m2flex_M2Error): Check s for NULL.
2556 (skipnewline): New function.
2557 (consumeLine): Call traceline.
2559 2024-04-01 Gaius Mulley <gaiusmod2@gmail.com>
2562 * gm2-compiler/M2Quads.mod (ConvertToAddress): Pass
2563 procedure, false parameters to BuildConvertFunction.
2564 (PushOne): Pass procedure, true parameters to
2565 BuildConvertFunction.
2566 Remove usused parameter internal.
2567 (BuildPseudoBy): Remove parameter to PushOne.
2568 (BuildIncProcedure): Ditto.
2569 (BuildDecProcedure): Ditto.
2570 (BuildFunctionCall): Add ConstExpr parameter to
2571 BuildPseudoFunctionCall.
2572 (BuildConstFunctionCall): Add procedure and true to
2573 BuildConvertFunction.
2574 (BuildPseudoFunctionCall): Add ConstExpr parameter.
2575 Pass ProcSym and ConstExpr to BuildLengthFunction,
2576 BuildConvertFunction, BuildOddFunction, BuildAbsFunction,
2577 BuildCapFunction, BuildValFunction, BuildChrFunction,
2578 BuildOrdFunction, BuildIntFunction, BuildTruncFunction,
2579 BuildFloatFunction, BuildAddAdrFunction, BuildSubAdrFunction,
2580 BuildDifAdrFunction, BuildCastFunction, BuildReFunction,
2581 BuildImFunction and BuildCmplxFunction.
2582 (BuildAddAdrFunction): Add ProcSym, ConstExpr parameters and
2583 check for constant parameters.
2584 (BuildSubAdrFunction): Ditto.
2585 (BuildDifAdrFunction): Ditto.
2586 (ConstExprError): Ditto.
2587 (BuildLengthFunction): Ditto.
2588 (BuildOddFunction): Ditto.
2589 (BuildAbsFunction): Ditto.
2590 (BuildCapFunction): Ditto.
2591 (BuildChrFunction): Ditto.
2592 (BuildOrdFunction): Ditto.
2593 (BuildIntFunction): Ditto.
2594 (BuildValFunction): Ditto.
2595 (BuildCastFunction): Ditto.
2596 (BuildConvertFunction): Ditto.
2597 (BuildTruncFunction): Ditto.
2598 (BuildFloatFunction): Ditto.
2599 (BuildReFunction): Ditto.
2600 (BuildImFunction): Ditto.
2601 (BuildCmplxFunction): Ditto.
2603 2024-03-31 Christophe Lyon <christophe.lyon@linaro.org>
2605 * Make-lang.in (m2.install-info): Fix rule.
2607 2024-03-31 Christophe Lyon <christophe.lyon@linaro.org>
2609 * Make-lang.in (install-html): New rule.
2611 2024-03-28 Gaius Mulley <gaiusmod2@gmail.com>
2614 * gm2-compiler/P0SyntaxCheck.bnf (DetectImport): New
2616 (EnableImportCheck): New boolean.
2617 (Expect): Call DetectImport.
2618 (Export): Set EnableImportCheck TRUE before ';' and FALSE
2621 2024-03-28 Gaius Mulley <(no_default)>
2624 * gm2-compiler/M2Options.def (SetCpp): Add comment.
2625 (GetCpp): Move after SetCpp.
2626 (GetLineDirectives): New procedure function.
2627 * gm2-compiler/M2Options.mod (GetLineDirectives): New
2629 * gm2-gcc/m2options.h (M2Options_GetLineDirectives): New
2631 * gm2-lang.cc (gm2_langhook_init_options): OPT_fcpp only
2633 * m2.flex: Test GetLineDirectives before changing to LINE0
2636 2024-03-28 Gaius Mulley <gaiusmod2@gmail.com>
2638 * target-independent/m2/Builtins.texi: Rebuilt.
2639 * target-independent/m2/gm2-libs.texi: Rebuilt.
2641 2024-03-26 Gaius Mulley <gaiusmod2@gmail.com>
2644 * gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New struct.
2645 (lookup_builtin_macro): New function.
2646 (m2builtins_BuildBuiltinTree): Rewrite to lookup builtin function
2648 (lookup_builtin_function): New function.
2649 (define_builtin): Rename parameter type to prototype push macro
2650 definition to builtin_macros vector.
2651 (define_builtin_ext): New function.
2652 (define_builtin_math): New function.
2653 (m2builtins_init): Add isgreater, isless, isgreaterequal,
2654 islessequal, islessgreater, isunordered, isnormal to macro definitions.
2655 * gm2-libs/Builtins.def (isgreater): New procedure function.
2656 (isgreaterf): Ditto.
2657 (isgreaterl): Ditto.
2658 (isgreaterequal): Ditto.
2659 (isgreaterequalf): Ditto.
2660 (isgreaterequall): Ditto.
2664 (islessequal): Ditto.
2665 (islessequalf): Ditto.
2666 (islessequall): Ditto.
2667 (islessgreater): Ditto.
2668 (islessgreaterf): Ditto.
2669 (islessgreaterl): Ditto.
2670 (isunordered): Ditto.
2671 (isunorderedf): Ditto.
2672 (isunorderedl): Ditto.
2679 (isinf_sign): Ditto.
2680 (isinf_signf): Ditto.
2681 (isinf_signl): Ditto.
2682 * gm2-libs/Builtins.mod (isgreater): New procedure function.
2683 (isgreaterf): Ditto.
2684 (isgreaterl): Ditto.
2685 (isgreaterequal): Ditto.
2686 (isgreaterequalf): Ditto.
2687 (isgreaterequall): Ditto.
2691 (islessequal): Ditto.
2692 (islessequalf): Ditto.
2693 (islessequall): Ditto.
2694 (islessgreater): Ditto.
2695 (islessgreaterf): Ditto.
2696 (islessgreaterl): Ditto.
2697 (isunordered): Ditto.
2698 (isunorderedf): Ditto.
2699 (isunorderedl): Ditto.
2706 (isinf_sign): Ditto.
2707 (isinf_signf): Ditto.
2708 (isinf_signl): Ditto.
2710 2024-03-25 Gaius Mulley <gaiusmod2@gmail.com>
2712 * Make-lang.in (doc/m2.pdf): Add line break.
2713 * target-independent/m2/Builtins.texi: Rebuilt.
2714 * target-independent/m2/gm2-libs.texi: Rebuilt.
2716 2024-03-23 Gaius Mulley <gaiusmod2@gmail.com>
2719 * gm2-compiler/M2Quads.mod (BuildTruncFunction): Correct
2720 error format specifier.
2721 (BuildFloatFunction): Correct error format specifier.
2723 2024-03-23 Gaius Mulley <gaiusmod2@gmail.com>
2726 * m2.flex: Call AddTokCharStar with a stringtok if
2727 end of line is reached without a closing quote.
2729 2024-03-22 Gaius Mulley <gaiusmod2@gmail.com>
2732 * gm2-compiler/M2Quads.mod (BuildConstructor): Add escape
2735 2024-03-21 Gaius Mulley <gaiusmod2@gmail.com>
2738 * Make-lang.in (GM2_C_OBJS): Add m2/gm2-gcc/m2pp.o.
2739 (m2/m2pp.o): Remove rule.
2740 (GM2-COMP-BOOT-DEFS): Add M2LangDump.def.
2741 (GM2-COMP-BOOT-MODS): Add M2LangDump.mod.
2742 (GM2-GCC-DEFS): Add M2LangDump.def.
2743 (GM2-GCC-MODS): Add M2LangDump.mod.
2744 * gm2-compiler/M2CaseList.mod (WriteCase): Rewrite.
2745 * gm2-compiler/M2Code.mod (DoModuleDeclare): Call
2746 DumpFilteredResolver depending upon DumpLangDecl.
2747 (DoCodeBlock): Call CreateDumpGimple depending upon
2749 (Code): Replace DisplayQuadList blocks with DumpQuadruples.
2750 (DisplayQuadsInScope): Remove.
2751 (DisplayQuadNumbers): Remove.
2752 (CodeBlock): Rewrite.
2753 * gm2-compiler/M2GCCDeclare.def (IncludeDumpSymbol): New procedure.
2754 (DumpFilteredResolver): New procedure.
2755 (DumpFilteredDefinitive): New procedure.
2756 * gm2-compiler/M2GCCDeclare.mod (IncludeDumpSymbol): New procedure.
2757 (DumpFilteredResolver): New procedure.
2758 (DumpFilteredDefinitive): New procedure.
2759 (doInclude): Rewrite to use GetDumpFile.
2760 (WatchIncludeList): Remove fixed debugging value.
2761 (doExclude): Rewrite to use GetDumpFile.
2762 (DeclareTypesConstantsProceduresInRange): Remove fixed debugging
2764 (PreAddModGcc): Rename parameter t as tree.
2765 (IncludeGetNth): Rewrite to use GetDumpFile.
2766 (IncludeType): Ditto.
2767 (IncludeSubscript): Ditto.
2768 (PrintLocalSymbol): Ditto.
2769 (PrintLocalSymbols): Ditto.
2770 (IncludeGetVarient): Ditto.
2771 (PrintDeclared): Ditto.
2772 (PrintAlignment): Ditto.
2774 (PrintScope): Ditto.
2775 (PrintProcedure): Ditto.
2777 (PrintSymbol): Ditto.
2778 (PrintTerse): Ditto.
2779 * gm2-compiler/M2Options.def (GetDumpLangDeclFilename): New
2781 (SetDumpLangDeclFilename): New procedure.
2782 (GetDumpLangQuadFilename): New procedure function.
2783 (SetDumpLangQuadFilename): New procedure.
2784 (GetDumpLangGimpleFilename): New procedure function.
2785 (SetDumpLangGimpleFilename): New procedure.
2786 (SetM2DumpFilter): New procedure.
2787 (GetM2DumpFilter): New procedure function.
2788 (GetDumpLangGimple): New procedure function.
2789 * gm2-compiler/M2Options.mod (GetDumpLangDeclFilename): New
2791 (SetDumpLangDeclFilename): New procedure.
2792 (GetDumpLangQuadFilename): New procedure function.
2793 (SetDumpLangQuadFilename): New procedure.
2794 (GetDumpLangGimpleFilename): New procedure function.
2795 (SetDumpLangGimpleFilename): New procedure.
2796 (SetM2DumpFilter): New procedure.
2797 (GetM2DumpFilter): New procedure function.
2798 (GetDumpLangGimple): New procedure function.
2799 * gm2-compiler/M2Quads.def (DumpQuadruples): New procedure.
2800 * gm2-compiler/M2Quads.mod (DumpUntil): New procedure.
2801 (GetCtorInit): New procedure function.
2802 (GetCtorFini): New procedure function.
2803 (DumpQuadrupleFilter): New procedure function.
2804 (DumpQuadrupleAll): New procedure.
2805 (DisplayQuadList): Remove procedure.
2806 (DumpQuadruples): New procedure.
2807 (DisplayQuadRange): Rewrite.
2808 (DisplayQuad): Ditto.
2809 (DisplayProcedureAttributes): Ditto.
2810 (WriteOperator): Ditto.
2812 * gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): Replace
2813 DisplayQuadruples with TraceQuadruples.
2814 (ForeachScopeBlockDo3): Replace DisplayQuadruples with
2816 * gm2-compiler/SymbolConversion.def (Gcc2Mod): New procedure function.
2817 * gm2-compiler/SymbolConversion.mod: New procedure function.
2818 * gm2-gcc/m2misc.cc (m2misc_DebugTree): New function.
2819 (m2misc_DebugTreeChain): New function.
2820 * gm2-gcc/m2options.h (M2Options_GetDumpLangDeclFilename): New
2822 (M2Options_SetDumpLangDeclFilename): New prototype.
2823 (M2Options_GetDumpLangQuadFilename): New prototype.
2824 (M2Options_SetDumpLangQuadFilename): New prototype.
2825 (M2Options_GetDumpLangGimpleFilename): New prototype.
2826 (M2Options_SetDumpLangGimpleFilename): New prototype.
2827 (M2Options_GetDumpLangGimple): New prototype.
2828 (M2Options_SetM2DumpFilter): New prototype.
2829 (M2Options_GetM2DumpFilter): New prototype.
2830 * m2pp.cc: Move to...
2831 * gm2-gcc/m2pp.cc: ...here.
2832 * m2pp.h: Move to...
2833 * gm2-gcc/m2pp.h: ...here.
2834 * gm2-gcc/m2statement.cc (m2statement_BuildEndFunctionCode): Call
2836 * gm2-lang.cc (ENABLE_QUAD_DUMP_ALL): New define.
2837 (gm2_langhook_init_options): Add switch cases for proposed new
2838 command line options.
2839 * gm2-libs/DynamicStrings.def (ReverseIndex): New procedure
2841 * gm2-libs/DynamicStrings.mod: New procedure function.
2842 * gm2-compiler/M2LangDump.def: New file.
2843 * gm2-compiler/M2LangDump.mod: New file.
2844 * gm2-gcc/m2langdump.h: New file.
2845 * gm2-gcc/m2pp.def: New file.
2847 2024-03-21 Gaius Mulley <gaiusmod2@gmail.com>
2850 * gm2-compiler/PCSymBuild.mod (PushConstFunctionType): Check
2851 func against NulSym and issue an error.
2853 2024-03-18 Gaius Mulley <gaiusmod2@gmail.com>
2856 * gm2-compiler/SymbolTable.mod (GetLowestType): Do not
2857 skip over a set type, but return sym.
2859 2024-03-17 Gaius Mulley <gaiusmod2@gmail.com>
2862 * gm2-compiler/M2ALU.mod (ElementsSolved): Add tokenno parameter.
2863 Add constant checks and generate error messages.
2864 (EvalSetValues): Pass tokenno parameter to ElementsSolved.
2865 * gm2-compiler/M2LexBuf.mod (stop): New procedure.
2866 (MakeVirtualTok): Call stop if caret = BadTokenNo.
2867 * gm2-compiler/M2Quads.def (BuildNulExpression): Add tokpos
2869 (BuildSetStart): Ditto.
2870 (BuildEmptySet): Ditto.
2871 (BuildConstructorEnd): Add startpos parameter.
2872 (BuildTypeForConstructor): Add tokpos parameter.
2873 * gm2-compiler/M2Quads.mod (BuildNulExpression): Add tokpos
2874 parameter and push tokpos to the quad stack.
2875 (BuildSetStart): Add tokpos parameter and push tokpos.
2876 (BuildSetEnd): Rewrite.
2877 (BuildEmptySet): Add tokpos parameter and push tokpos with
2879 (BuildConstructorStart): Pop typepos.
2880 (BuildConstructorEnd): Add startpos parameter.
2881 Create valtok from startpos and cbratokpos.
2882 (BuildTypeForConstructor): Add tokpos parameter.
2883 * gm2-compiler/M2Range.def (InitAssignmentRangeCheck): Rename
2884 d to des and e to expr.
2885 Add destok and exprtok parameters.
2886 * gm2-compiler/M2Range.mod (InitAssignmentRangeCheck): Rename
2887 d to des and e to expr.
2888 Add destok and exprtok parameters.
2889 Save destok and exprtok into range record.
2890 (FoldAssignment): Pass exprtok to TryDeclareConstant.
2891 * gm2-compiler/P3Build.bnf (ComponentValue): Rewrite.
2892 (Constructor): Rewrite.
2893 (ConstSetOrQualidentOrFunction): Rewrite.
2894 (SetOrQualidentOrFunction): Rewrite.
2895 * gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Rewrite.
2896 (SetOrQualidentOrFunction): Rewrite.
2897 * gm2-compiler/PHBuild.bnf (Constructor): Rewrite.
2898 (ConstSetOrQualidentOrFunction): Rewrite.
2900 2024-03-14 Gaius Mulley <gaiusmod2@gmail.com>
2903 * gm2-compiler/M2Quads.mod (BuildConstHighFromSym):
2904 Call PutConst to assign the type Cardinal in the result
2907 2024-03-14 Gaius Mulley <gaiusmod2@gmail.com>
2910 * gm2-compiler/M2GenGCC.mod (CodeStatement): Remove op1, op2 and
2911 op3 parameters to CodeIfLess, CodeIfLessEqu, CodeIfGreEqu, CodeIfGre,
2912 CodeIfIn, CodeIfNotIn.
2913 (CodeIfLess): Rewrite.
2914 (PerformCodeIfLess): New procedure.
2915 (CodeIfLess): Rewrite.
2916 (PerformCodeIfLess): New procedure.
2917 (CodeIfLessEqu): Rewrite.
2918 (PerformCodeIfLessEqu): New procedure.
2919 (CodeIfGreEqu): Rewrite.
2920 (PerformCodeIfGreEqu): New procedure.
2921 (CodeIfGre): Rewrite.
2922 (PerformCodeIfGre): New procedure.
2923 (CodeIfIn): Rewrite.
2924 (PerformCodeIfIn): New procedure.
2925 (CodeIfNotIn): Rewrite.
2926 (PerformCodeIfNotIn): New procedure.
2928 2024-03-14 Gaius Mulley <gaiusmod2@gmail.com>
2931 * gm2-compiler/M2Check.mod (checkUnbounded): New procedure
2933 (checkArrayTypeEquivalence): Extend checking to cover unbounded
2934 arrays, arrays and constants.
2935 (IsTyped): Simplified the expression and corrected a test for
2937 (checkTypeKindViolation): New procedure function.
2938 (doCheckPair): Call checkTypeKindViolation.
2939 * gm2-compiler/M2GenGCC.mod (CodeStatement): Remove parameters
2940 to CodeEqu and CodeNotEqu.
2941 (PerformCodeIfEqu): New procedure.
2942 (CodeIfEqu): Rewrite.
2943 (PerformCodeIfNotEqu): New procedure.
2944 (CodeIfNotEqu): Rewrite.
2945 * gm2-compiler/M2Quads.mod (BuildRelOpFromBoolean): Correct
2948 2024-03-11 Gaius Mulley <gaiusmod2@gmail.com>
2951 * gm2-compiler/M2Batch.mod (MakeProgramSource): Call PutDeclared
2952 if the module is known.
2953 (MakeDefinitionSource): Ditto.
2954 (MakeImplementationSource): Ditto.
2955 * gm2-compiler/M2Comp.mod (ExamineHeader): New procedure.
2956 (ExamineCompilationUnit): Rewrite.
2957 (PeepInto): Rewrite.
2958 * gm2-compiler/M2Error.mod (NewError): Remove default call to
2960 * gm2-compiler/M2Quads.mod (callRequestDependant): Push tokno with
2962 (BuildStringAdrParam): Ditto.
2963 (doBuildBinaryOp): Push OperatorPos on the bool stack.
2964 (BuildRelOp): Ditto.
2965 * gm2-compiler/P2Build.bnf (SetType): Pass set token pos to
2967 (PointerType): Pass pointer token pos to BuildPointerType.
2968 * gm2-compiler/P2SymBuild.def (BuildPointerType): Add parameter
2970 (BuildSetType): Add parameter setpos.
2971 * gm2-compiler/P2SymBuild.mod (BuildPointerType): Add parameter
2972 pointerpos. Build combined token and use it when creating a
2974 (BuildSetType): Add parameter setpos. Build combined token and
2975 use it when creating a set type.
2976 * gm2-compiler/SymbolTable.mod (DebugUnknownToken): New constant.
2977 (CheckTok): New procedure function.
2978 (MakeProcedure): Call CheckTok.
2979 (MakeRecord): Ditto.
2980 (MakeVarient): Ditto.
2981 (MakeEnumeration): Ditto.
2982 (MakeHiddenType): Ditto.
2983 (MakeConstant): Ditto.
2984 (MakeConstStringCnul): Ditto.
2985 (MakeSubrange): Ditto.
2986 (MakeTemporary): Ditto.
2987 (MakeVariableForParam): Ditto.
2988 (MakeParameterHeapVar): Ditto.
2989 (MakePointer): Ditto.
2991 (MakeUnbounded): Ditto.
2992 (MakeProcType): Ditto.
2994 2024-03-08 Gaius Mulley <gaiusmod2@gmail.com>
2996 * gm2-compiler/M2Quads.mod (Init): Use InitIndexTuned with
2998 * gm2-compiler/SymbolConversion.mod (Init): Ditto.
2999 * gm2-compiler/SymbolTable.mod (BEGIN): Ditto.
3000 * mc-boot/GM2Dependent.cc: Rebuild.
3001 * mc-boot/GM2Dependent.h: Rebuild.
3002 * mc-boot/GM2RTS.cc: Rebuild.
3003 * pge-boot/GIndexing.cc: Rebuild.
3004 * pge-boot/GIndexing.h: Rebuild.
3005 * pge-boot/GM2Dependent.cc: Rebuild.
3006 * pge-boot/GM2Dependent.h: Rebuild.
3007 * pge-boot/GM2RTS.cc: Rebuild.
3009 2024-03-07 Gaius Mulley <gaiusmod2@gmail.com>
3012 * gm2-compiler/M2LexBuf.def (TokenToLineNo): Rename parameter.
3013 (TokenToColumnNo): Rename parameter.
3014 (TokenToLocation): Rename parameter.
3015 (FindFileNameFromToken): Rename parameter.
3016 (DumpTokens): Rewrite comment.
3017 * gm2-compiler/M2LexBuf.mod: Rewrite.
3018 * gm2-compiler/P0SyntaxCheck.bnf (CheckInsertCandidate):
3019 DumpTokens before and after inserting recovery token.
3020 * gm2-gcc/m2builtins.cc (do_target_support_exists): Add
3022 * gm2-libs/Indexing.def (InitIndexTuned): New procedure
3024 (IsEmpty): New procedure function.
3025 * gm2-libs/Indexing.mod (InitIndexTuned): New procedure
3027 (IsEmpty): New procedure function.
3028 (Index): New field GrowFactor.
3029 (PutIndice): Use GrowFactor to extend dynamic array.
3031 2024-03-04 Gaius Mulley <gaiusmod2@gmail.com>
3034 * gm2-libs-iso/M2RTS.mod (ProcedureChain): Remove.
3035 (ProcedureList): Remove.
3036 (ExecuteReverse): Remove.
3037 (ExecuteTerminationProcedures): Rewrite.
3038 (ExecuteInitialProcedures): Rewrite.
3039 (AppendProc): Remove.
3040 (InstallTerminationProcedure): Rewrite.
3041 (InstallInitialProcedure): Rewrite.
3042 (InitProcList): Remove.
3043 * gm2-libs/M2Dependent.def (InstallTerminationProcedure):
3045 (ExecuteTerminationProcedures): New procedure.
3046 (InstallInitialProcedure): New procedure.
3047 (ExecuteInitialProcedures): New procedure.
3048 * gm2-libs/M2Dependent.mod (ProcedureChain): New type.
3049 (ProcedureList): New type.
3050 (ExecuteReverse): New procedure.
3051 (ExecuteTerminationProcedures): New procedure.
3052 (ExecuteInitialProcedures): New procedure.
3053 (AppendProc): New procedure.
3054 (InstallTerminationProcedure): New procedure.
3055 (InstallInitialProcedure): New procedure.
3056 (InitProcList): New procedure.
3057 * gm2-libs/M2RTS.mod (ProcedureChain): Remove.
3058 (ProcedureList): Remove.
3059 (ExecuteReverse): Remove.
3060 (ExecuteTerminationProcedures): Rewrite.
3061 (ExecuteInitialProcedures): Rewrite.
3062 (AppendProc): Remove.
3063 (InstallTerminationProcedure): Rewrite.
3064 (InstallInitialProcedure): Rewrite.
3065 (InitProcList): Remove.
3067 2024-02-25 Gaius Mulley <gaiusmod2@gmail.com>
3070 * Make-lang.in (BUILD-PGE-O): Add m2/pge-boot/Gwrapc.o.
3071 * gm2-libs-ch/wrapc.c (wrapc_SeekSet): New function.
3072 (wrapc_SeekEnd): Ditto.
3073 (wrapc_ReadOnly): Ditto.
3074 (wrapc_WriteOnly): Ditto.
3075 * gm2-libs/FIO.mod (SEEK_SET): Remove.
3077 (UNIXREADONLY): Remove.
3078 (UNIXWRITEONLY): Remove.
3079 (ConnectToUnix): Replace UNIXWRITEONLY with a call to WriteOnly.
3080 Replace UNIXREADONLY with a call to ReadOnly.
3081 (SetPositionFromBeginning): Replace SEEK_SET with a call to
3083 (SetPositionFromEnd): Replace SEEK_END with a call to
3085 * gm2-libs/wrapc.def (SeekSet): New procedure function.
3086 (SeekEnd): New procedure function.
3087 (ReadOnly): New procedure function.
3088 (WriteOnly): New procedure function.
3089 * mc-boot-ch/Glibc.c (BUILD_MC_LIBC_TRACE): Undef.
3090 (check_init): New function.
3092 (tracedb_open): Ditto.
3093 (tracedb_result): Ditto.
3095 (libc_write): Ditto.
3096 (libc_close): Ditto.
3097 (libc_creat): Ditto.
3099 (libc_lseek): Ditto.
3100 * mc-boot-ch/Gwrapc.c (wrapc_SeekSet): New function.
3101 (wrapc_SeekEnd): Ditto.
3102 (wrapc_ReadOnly): Ditto.
3103 (wrapc_WriteOnly): Ditto.
3104 * mc-boot/GDynamicStrings.cc: Rebuilt.
3105 * mc-boot/GFIO.cc: Ditto.
3106 * mc-boot/GIndexing.cc: Ditto.
3107 * mc-boot/GM2Dependent.cc: Ditto.
3108 * mc-boot/GM2EXCEPTION.cc: Ditto.
3109 * mc-boot/GPushBackInput.cc: Ditto.
3110 * mc-boot/GRTExceptions.cc: Ditto.
3111 * mc-boot/GRTint.cc: Ditto.
3112 * mc-boot/GSArgs.cc: Ditto.
3113 * mc-boot/GStdIO.cc: Ditto.
3114 * mc-boot/GStringConvert.cc: Ditto.
3115 * mc-boot/GSysStorage.cc: Ditto.
3116 * mc-boot/Gdecl.cc: Ditto.
3117 * mc-boot/Gkeyc.cc: Ditto.
3118 * mc-boot/Glibc.h: Ditto.
3119 * mc-boot/GmcComment.cc: Ditto.
3120 * mc-boot/GmcComp.cc: Ditto.
3121 * mc-boot/GmcDebug.cc: Ditto.
3122 * mc-boot/GmcMetaError.cc: Ditto.
3123 * mc-boot/GmcStack.cc: Ditto.
3124 * mc-boot/GmcStream.cc: Ditto.
3125 * mc-boot/GnameKey.cc: Ditto.
3126 * mc-boot/GsymbolKey.cc: Ditto.
3127 * mc-boot/Gvarargs.cc: Ditto.
3128 * mc-boot/Gwrapc.h: Ditto.
3129 * mc/decl.mod (getSymName): Add pointerref clause.
3130 * mc/mcStream.mod (copy): Check for an error after every read.
3131 * mc/varargs.mod (copy): Rewrite pointer arithmetic using INC to
3132 avoid type incompatibility.
3133 * pge-boot/GDynamicStrings.cc: Rebuilt.
3134 * pge-boot/GDynamicStrings.h: Ditto.
3135 * pge-boot/GFIO.cc: Ditto.
3136 * pge-boot/GFIO.h: Ditto.
3137 * pge-boot/GIO.cc: Ditto.
3138 * pge-boot/GIndexing.cc: Ditto.
3139 * pge-boot/GM2Dependent.cc: Ditto.
3140 * pge-boot/GM2EXCEPTION.cc: Ditto.
3141 * pge-boot/GNameKey.cc: Ditto.
3142 * pge-boot/GPushBackInput.cc: Ditto.
3143 * pge-boot/GRTExceptions.cc: Ditto.
3144 * pge-boot/GStdIO.cc: Ditto.
3145 * pge-boot/GSymbolKey.cc: Ditto.
3146 * pge-boot/GSysStorage.cc: Ditto.
3147 * pge-boot/Glibc.h: Ditto.
3148 * pge-boot/Gwrapc.cc: Ditto.
3149 * pge-boot/Gwrapc.h: Ditto.
3151 2024-02-22 Gaius Mulley <gaiusmod2@gmail.com>
3154 * gm2-compiler/M2Check.mod (Import): IsConstLitInternal and
3156 (isInternal): New procedure function.
3157 (doCheck): Test for isInternal in either operand and early
3159 * gm2-compiler/M2Quads.mod (PushOne): Rewrite with extra
3161 (BuildPseudoBy): Add TRUE parameter to PushOne call.
3162 (BuildIncProcedure): Add FALSE parameter to PushOne call.
3163 (BuildDecProcedure): Add FALSE parameter to PushOne call.
3164 * gm2-compiler/M2Range.mod (ForLoopBeginTypeCompatible):
3165 Uncomment code and tidy up error string.
3166 * gm2-compiler/SymbolTable.def (PutConstLitInternal):
3168 (IsConstLitInternal): New procedure function.
3169 * gm2-compiler/SymbolTable.mod (PutConstLitInternal):
3171 (IsConstLitInternal): New procedure function.
3172 (SymConstLit): New field IsInternal.
3173 (CreateConstLit): Initialize IsInternal to FALSE.
3175 2024-02-21 Gaius Mulley <gaiusmod2@gmail.com>
3178 * gm2-compiler/M2GenGCC.mod (Import): Remove DisplayQuadruples.
3179 Remove DisplayQuadList.
3180 (MixTypesBinary): Replace check with overflowCheck.
3181 New variable typeChecking.
3182 Use GenQuadOTypetok to retrieve typeChecking.
3183 Use typeChecking to suppress error message.
3184 * gm2-compiler/M2LexBuf.def (MakeVirtual2Tok): New procedure
3186 * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Improve comment.
3187 (MakeVirtual2Tok): New procedure function.
3188 * gm2-compiler/M2Quads.def (GetQuadOTypetok): New procedure.
3189 * gm2-compiler/M2Quads.mod (QuadFrame): New field CheckType.
3190 (PutQuadO): Rewrite using PutQuadOType.
3191 (PutQuadOType): New procedure.
3192 (GetQuadOTypetok): New procedure.
3193 (BuildPseudoBy): Rewrite.
3194 (BuildForToByDo): Remove type checking.
3195 Add parameters e2, e2tok, BySym, bytok to
3196 InitForLoopBeginRange.
3198 (BuildEndFor): Pop the RangeId.
3199 Use GenQuadOTypetok to generate AddOp without type checking.
3200 Call PutRangeForIncrement with the RangeId and IncQuad.
3201 (GenQuadOtok): Rewrite using GenQuadOTypetok.
3202 (GenQuadOTypetok): New procedure.
3203 * gm2-compiler/M2Range.def (InitForLoopBeginRangeCheck):
3204 Rename d as des, e as expr.
3205 Add expr1, expr1tok, expr2, expr2tok, byconst, byconsttok
3207 (PutRangeForIncrement): New procedure.
3208 * gm2-compiler/M2Range.mod (Import): MakeVirtual2Tok.
3209 (Range): Add expr2, byconst, destok, exprtok, expr2tok,
3211 (InitRange): Initialize expr2 to NulSym.
3212 Initialize byconst to NulSym.
3213 Initialize tokenNo, destok, exprtok, expr2tok, byconst to
3215 Initialize incrementquad to 0.
3216 (PutRangeForIncrement): New procedure.
3217 (PutRangeDesExpr2): New procedure.
3218 (InitForLoopBeginRangeCheck): Rewrite.
3219 (ForLoopBeginTypeCompatible): New procedure function.
3220 (CodeForLoopBegin): Call ForLoopBeginTypeCompatible and
3221 only code the for loop assignment if all the type checks
3224 2024-02-19 Gaius Mulley <gaiusmod2@gmail.com>
3227 * gm2-compiler/M2ALU.mod (StringFitsArray): Add tokeno parameter
3229 (InitialiseArrayOfCharWithString): Add tokeno parameter to
3231 (CheckGetCharFromString): Add tokeno parameter to GetStringLength.
3232 * gm2-compiler/M2Const.mod (constResolveViaMeta): Replace
3233 PutConstString with PutConstStringKnown.
3234 * gm2-compiler/M2GCCDeclare.mod (DeclareCharConstant): Add tokenno
3235 parameter and add assert. Use tokenno to generate location.
3236 (DeclareStringConstant): Add tokenno and add asserts.
3237 Add tokenno parameter to calls to GetStringLength.
3238 (PromoteToString): Add assert and add tokenno parameter to
3240 (PromoteToCString): Add assert and add tokenno parameter to
3242 (DeclareConstString): New procedure function.
3243 (TryDeclareConst): Remove size local variable.
3244 Check IsConstStringKnown.
3245 Call DeclareConstString.
3246 (PrintString): New procedure.
3247 (PrintVerboseFromList): Call PrintString.
3248 (CheckResolveSubrange): Check IsConstStringKnown before creating
3249 subrange for char or issuing an error.
3250 * gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Add
3251 StringLengthOp, StringConvertM2nulOp, StringConvertCnulOp case
3253 (FindSize): Add assert IsConstStringKnown.
3254 (StringToChar): New variable tokenno.
3255 Add tokenno parameter to GetStringLength.
3256 (FoldStringLength): New procedure.
3257 (FoldStringConvertM2nul): New procedure.
3258 (FoldStringConvertCnul): New procedure.
3259 (CodeAddr): Add tokenno parameter.
3260 Replace CurrentQuadToken with tokenno.
3261 Add tokenno parameter to GetStringLength.
3262 (PrepareCopyString): Rewrite.
3263 (IsConstStrKnown): New procedure function.
3264 (FoldAdd): Detect conststring op2 and op3 which are known and
3265 concat. Place result into op1.
3266 (FoldStandardFunction): Pass tokenno as a parameter to
3268 (CodeXIndr): Rewrite comment.
3269 Rename op1 to left, op3 to right.
3270 Pass rightpos to GetStringLength.
3271 * gm2-compiler/M2Quads.def (QuadrupleOp): Add
3272 StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
3273 * gm2-compiler/M2Quads.mod (import): Remove MakeConstLitString.
3274 Add CopyConstString and PutConstStringKnown.
3275 (IsInitialisingConst): Add StringConvertCnulOp,
3276 StringConvertM2nulOp and StringLengthOp.
3277 (callRequestDependant): Replace MakeConstLitString with
3279 (DeferMakeConstStringCnul): New procedure function.
3280 (DeferMakeConstStringM2nul): New procedure function.
3281 (CheckParameter): Add early return if the string const is unknown.
3282 (DescribeType): Add token parameter to GetStringLength.
3283 Check for IsConstStringKnown.
3284 (ManipulateParameters): Use DeferMakeConstStringCnul and
3285 DeferMakeConstStringM2nul.
3286 (MakeLengthConst): Remove and replace with...
3287 (DeferMakeLengthConst): ... this.
3288 (doBuildBinaryOp): Create ConstString and set it to contents
3290 Check IsConstStringKnown before generating error message.
3291 (WriteQuad): Add StringConvertCnulOp, StringConvertM2nulOp and
3293 (WriteOperator): Add StringConvertCnulOp, StringConvertM2nulOp and
3295 * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
3296 StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
3297 * gm2-compiler/NameKey.mod (LengthKey): Allow NulName to return 0.
3298 * gm2-compiler/P2SymBuild.mod (BuildString): Replace
3299 MakeConstLitString with MakeConstString.
3300 (DetermineType): Replace PutConstString with PutConstStringKnown.
3301 * gm2-compiler/SymbolTable.def (MakeConstVar): Tidy up comment.
3302 (MakeConstLitString): Remove.
3303 (MakeConstString): New procedure function.
3304 (MakeConstStringCnul): New procedure function.
3305 (MakeConstStringM2nul): New procedure function.
3306 (PutConstStringKnown): New procedure.
3307 (CopyConstString): New procedure.
3308 (IsConstStringKnown): New procedure function.
3309 (IsConstStringM2): New procedure function.
3310 (IsConstStringC): New procedure function.
3311 (IsConstStringM2nul): New procedure function.
3312 (IsConstStringCnul): New procedure function.
3313 (GetStringLength): Add token parameter.
3314 (PutConstString): Remove.
3315 (GetConstStringM2): Remove.
3316 (GetConstStringC): Remove.
3317 (GetConstStringM2nul): Remove.
3318 (GetConstStringCnul): Remove.
3319 (MakeConstStringC): Remove.
3320 * gm2-compiler/SymbolTable.mod (SymConstString): Remove
3321 M2Variant, NulM2Variant, CVariant, NulCVariant.
3323 (CheckAnonymous): Replace $$ with __anon.
3324 (IsNameAnonymous): Replace $$ with __anon.
3325 (MakeConstVar): Detect whether the name is nul and treat as
3326 a temporary constant.
3327 (MakeConstLitString): Remove.
3328 (BackFillString): Remove.
3329 (InitConstString): Rewrite.
3330 (GetConstStringM2): Remove.
3331 (GetConstStringC): Remove.
3332 (GetConstStringContent): New procedure function.
3333 (GetConstStringM2nul): Remove.
3334 (GetConstStringCnul): Remove.
3335 (MakeConstStringCnul): Rewrite.
3336 (MakeConstStringM2nul): Rewrite.
3337 (MakeConstStringC): Remove.
3338 (MakeConstString): Rewrite.
3339 (PutConstStringKnown): New procedure.
3340 (CopyConstString): New procedure.
3341 (PutConstString): Remove.
3342 (IsConstStringKnown): New procedure function.
3343 (IsConstStringM2): New procedure function.
3344 (IsConstStringC): Rewrite.
3345 (IsConstStringM2nul): Rewrite.
3346 (IsConstStringCnul): Rewrite.
3347 (GetConstStringKind): New procedure function.
3348 (GetString): Check Known.
3349 (GetStringLength): Add token parameter and check Known.
3351 2024-02-10 Gaius Mulley <gaiusmod2@gmail.com>
3354 * gm2-libs/SArgs.mod (GetArg): Re-write address arithmetic
3355 to avoid (void *) computation.
3357 2024-02-03 Gaius Mulley <gaiusmod2@gmail.com>
3360 * gm2-compiler/M2Base.mod (IsUserType): New procedure function.
3361 (MixTypes): Use IsUserType instead of IsType before calling MixTypes.
3362 * gm2-compiler/M2GenGCC.mod (GetTypeMode): Remove and import from
3364 (CodeBinaryCheck): Replace call to MixTypes with MixTypesBinary.
3365 (CodeBinary): Replace call to MixTypes with MixTypesBinary.
3366 (CodeIfLess): Replace MixTypes with ComparisonMixTypes.
3367 (CodeIfGre): Replace MixTypes with ComparisonMixTypes.
3368 (CodeIfLessEqu): Replace MixTypes with ComparisonMixTypes.
3369 (CodeIfGreEqu): Replace MixTypes with ComparisonMixTypes.
3370 (CodeIfEqu): Replace MixTypes with ComparisonMixTypes.
3371 (CodeIfNotEqu): Replace MixTypes with ComparisonMixTypes.
3372 (ComparisonMixTypes): New procedure function.
3373 * gm2-compiler/M2Quads.mod (BuildEndFor): Replace GenQuadO
3374 with GenQuadOtok and pass tokenpos for the operands to the AddOp
3376 (CheckRangeIncDec): Check etype against NulSym and dtype for a
3377 pointer and set etype to Address.
3378 (BuildAddAdrFunction): New variable opa. Convert operand to an
3379 address and save result in opa. Replace GenQuad with GenQuadOtok.
3380 (BuildSubAdrFunction): New variable opa. Convert operand to an
3381 address and save result in opa. Replace GenQuad with GenQuadOtok.
3382 (BuildDiffAdrFunction): New variable opa. Convert operand to an
3383 address and save result in opa. Replace GenQuad with GenQuadOtok.
3384 (calculateMultipicand): Replace GenQuadO with GenQuadOtok.
3385 (ConvertToAddress): New procedure function.
3386 (BuildDynamicArray): Convert index to address before adding to
3388 * gm2-compiler/SymbolTable.def (GetTypeMode): New procedure function.
3389 * gm2-compiler/SymbolTable.mod (GetTypeMode): New procedure
3390 function implemented (moved from M2GenGCC.mod).
3391 * gm2-libs/SArgs.mod (GetArg): Replace cast to PtrToChar with ADDRESS.
3393 2024-02-01 Gaius Mulley <gaiusmod2@gmail.com>
3397 * gm2-compiler/M2Comp.mod (Pass0CheckMod): Test IsDefImp before
3398 checking IsDefinitionForC.
3400 2024-01-31 Gaius Mulley <gaiusmod2@gmail.com>
3402 * gm2-compiler/M2Comp.mod (Pass0CheckMod): Tidy up comment.
3403 * gm2-compiler/P1Build.bnf (PossiblyExportIdent): Replace
3404 PushTF with PushTFtok.
3406 2024-01-26 Gaius Mulley <gaiusmod2@gmail.com>
3408 * gm2-compiler/M2Check.mod (dumpIndice): New procedure.
3409 (dumpIndex): New procedure.
3410 (dumptInfo): New procedure.
3411 (buildError4): Add comment and pass formal and actual to
3412 MetaError4. Improve text describing error.
3413 (buildError2): Generate different error descriptions for
3414 the three error kinds.
3415 (checkConstMeta): Add block comment. Add more meta checks
3416 and call doCheckPair to complete string const checking.
3417 Add tinfo parameter.
3418 (checkConstEquivalence): Add tinfo parameter.
3419 * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
3420 Print the length of a const string.
3421 * gm2-compiler/M2GenGCC.mod (CodeParam): Remove parameters
3423 (doParam): Add paramtok parameter. Use paramtok instead rather
3424 than CurrentQuadToken.
3425 (CodeParam): Rewrite.
3426 * gm2-compiler/M2Quads.mod (CheckProcedureParameters):
3427 Add comments explaining that const strings are not checked
3429 (FailParameter): Use MetaErrorT2 with tokpos rather than
3431 (doBuildBinaryOp): Assign OldPos and OperatorPos before the
3433 * gm2-compiler/SymbolTable.mod (PutConstString): Add call to
3434 InitWhereDeclaredTok.
3436 2024-01-25 Gaius Mulley <gaiusmod2@gmail.com>
3438 * gm2-libs/libc.def (lseek): Change the second parameter
3439 type to CSSIZE_T and make the return value optional.
3441 2024-01-24 Gaius Mulley <gaiusmod2@gmail.com>
3444 * gm2-libs/FIO.mod (SetPositionFromBeginning): Convert pos into
3445 CSSIZE_T during call to lseek.
3446 (SetPositionFromEnd): Convert pos into CSSIZE_T during call to
3449 2024-01-23 H.J. Lu <hjl.tools@gmail.com>
3452 * mc/mc.flex (alloca): Don't redefine.
3453 (handleDate): Replace (long *)0 with (time_t *)0 when calling
3456 2024-01-19 Gaius Mulley <gaiusmod2@gmail.com>
3458 * gm2-compiler/M2BasicBlock.mod (InitBasicBlocks): Rename
3459 ForeachScopeBlockDo to ForeachScopeBlockDo3.
3460 * gm2-compiler/M2Code.mod: Import ForeachScopeBlockDo2.
3461 (OptimizeScopeBlock): Call ForeachScopeBlockDo3 for
3462 procedures with three parameters and ForeachScopeBlockDo2
3465 * gm2-compiler/M2GCCDeclare.mod (DeclareTypesConstantsProcedures):
3466 Rename ForeachScopeBlockDo to ForeachScopeBlockDo3.
3467 * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): Remove Scope
3469 * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): Remove Scope
3471 (MaybeDebugBuiltinMemcpy): Remove parameter tok.
3472 (MaybeDebugBuiltinMemset): Remove.
3473 (MakeCopyUse): Remove tokenno from call to
3474 MaybeDebugBuiltinMemcpy.
3475 (PerformFoldBecomes): Remove desloc and exprloc.
3476 (checkArrayElements): Remove location. Remove virtpos
3477 as a parameter to MaybeDebugBuiltinMemcpy.
3478 (NoWalkProcedure): Add attribute unused.
3479 (CheckElementSetTypes): Remove parameter p.
3480 Remove CurrentQuadToken in call to MaybeDebugBuiltinMemcpy.
3481 Remove NoWalkProcedure from call to CheckElementSetTypes.
3482 Remove tokenno from call to MaybeDebugBuiltinMemcpy.
3483 * gm2-compiler/M2Optimize.mod (RemoveProcedures): Replace
3484 two parameter indirect procedure iterator with
3485 ForeachScopeBlockDo2.
3486 * gm2-compiler/M2SSA.mod: Remove ForeachScopeBlockDo.
3487 * gm2-compiler/M2Scope.def (ForeachScopeBlockDo2): New
3489 (ForeachScopeBlockDo): Rename ...
3490 (ForeachScopeBlockDo3): ... to this.
3491 (ScopeProcedure2): New declaration.
3492 * gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): New
3494 (ForeachScopeBlockDo): Rename ...
3495 (ForeachScopeBlockDo3): ... to this.
3497 2024-01-18 Gaius Mulley <gaiusmod2@gmail.com>
3500 * Make-lang.in (host_mc_longreal): Remove.
3501 * configure: Regenerate.
3502 * configure.ac (M2C_LONGREAL_FLOAT128): Remove.
3503 (M2C_LONGREAL_PPC64LE): Remove.
3504 * gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure.
3505 (GetIBMLongDouble): New procedure function.
3506 (SetIEEELongDouble): New procedure.
3507 (GetIEEELongDouble): New procedure function.
3508 * gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure.
3509 (GetIBMLongDouble): New procedure function.
3510 (SetIEEELongDouble): New procedure.
3511 (GetIEEELongDouble): New procedure function.
3512 (InitializeLongDoubleFlags): New procedure called during
3513 module block initialization.
3514 * gm2-gcc/m2configure.cc: Remove duplicate includes.
3515 (m2configure_M2CLongRealFloat128): Remove.
3516 (m2configure_M2CLongRealIBM128): Remove.
3517 (m2configure_M2CLongRealLongDouble): Remove.
3518 (m2configure_M2CLongRealLongDoublePPC64LE): Remove.
3519 (m2configure_TargetIEEEQuadDefault): New function.
3520 * gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove.
3521 (M2CLongRealIBM128): Remove.
3522 (M2CLongRealLongDouble): Remove.
3523 (M2CLongRealLongDoublePPC64LE): Remove.
3524 (TargetIEEEQuadDefault): New function.
3525 * gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove.
3526 (m2configure_M2CLongRealIBM128): Remove.
3527 (m2configure_M2CLongRealLongDouble): Remove.
3528 (m2configure_M2CLongRealLongDoublePPC64LE): Remove.
3529 (m2configure_TargetIEEEQuadDefault): New function.
3530 * gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype.
3531 (M2Options_GetIBMLongDouble): New prototype.
3532 (M2Options_SetIEEELongDouble): New prototype.
3533 (M2Options_GetIEEELongDouble): New prototype.
3534 * gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using
3535 results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble.
3536 * gm2-lang.cc (gm2_langhook_handle_option): Add case
3537 OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble.
3538 Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble.
3539 * gm2config.aci.in: Regenerate.
3540 * gm2spec.cc (lang_specific_driver): Remove block defined by
3541 M2C_LONGREAL_PPC64LE.
3542 Remove case OPT_mabi_ibmlongdouble.
3543 Remove case OPT_mabi_ieeelongdouble.
3545 2024-01-11 Gaius Mulley <gaiusmod2@gmail.com>
3548 * gm2-compiler/M2GenGCC.mod (IsExpressionCompatible): Import.
3549 (ExpressionTypeCompatible): Import.
3550 (CodeStatement): Remove op1, op2, op3 parameters from CodeSetOr,
3551 CodeSetAnd, CodeSetSymmetricDifference, CodeSetLogicalDifference.
3552 (checkArrayElements): Rename op1 to des and op3 to expr.
3553 Use despos and exprpos instead of CurrentQuadToken.
3554 (checkRecordTypes): Rename op1 to des and op2 to expr.
3555 Use virtpos instead of CurrentQuadToken.
3556 (checkIncorrectMeta): Ditto.
3557 (checkBecomes): Rename op1 to des and op3 to expr.
3558 Use virtpos instead of CurrentQuadToken.
3559 (NoWalkProcedure): New procedure stub.
3560 (CheckBinaryExpressionTypes): New procedure function.
3561 (CheckElementSetTypes): New procedure function.
3562 (CodeBinarySet): Re-write.
3563 (FoldBinarySet): Re-write.
3564 (CodeSetOr): Remove parameters op1, op2 and op3.
3565 (CodeSetAnd): Ditto.
3566 (CodeSetLogicalDifference): Ditto.
3567 (CodeSetSymmetricDifference): Ditto.
3568 (CodeIfIn): Call CheckBinaryExpressionTypes and
3569 CheckElementSetTypes.
3570 * gm2-compiler/M2Quads.mod (BuildRotateFunction): Correct
3571 parameters to MakeVirtualTok to reflect parameter block
3574 2024-01-09 Gaius Mulley <gaiusmod2@gmail.com>
3577 * gm2-compiler/M2GCCDeclare.mod (Group): New declaration.
3578 Import MakeSubrange, MakeConstVar, MakeConstLit and DivTrunc.
3579 (FreeGroup): New declaration.
3580 (GlobalGroup): New declaration.
3581 (ToBeSolvedByQuads): Remove.
3582 (NilTypedArrays): Remove.
3583 (PartiallyDeclared): Remove.
3584 (HeldByAlignment): Remove.
3585 (FinishedAlignment): Remove.
3587 (DebugSet): Re-format.
3588 (DebugNumber): Re-format.
3589 (DebugSetNumbers): Reference sets using GlobalGroup.
3590 (AddSymToWatch): Re-format.
3591 (WatchIncludeList): Reference sets using GlobalGroup.
3592 (WatchRemoveList): Reference sets using GlobalGroup.
3593 (NewGroup): New procedure.
3594 (DisposeGroup): New procedure.
3595 (InitGroup): New procedure.
3596 (KillGroup): New procedure.
3597 (DupGroup): New procedure.
3598 (EqualGroup): New procedure.
3599 (LookupSet): New procedure.
3600 (CanDeclareTypePartially): Reference sets using GlobalGroup.
3601 (CompletelyResolved): Reference sets using GlobalGroup.
3602 (IsNilTypedArrays): Reference sets using GlobalGroup.
3603 (IsFullyDeclared): Reference sets using GlobalGroup.
3604 (IsPartiallyDeclared): Reference sets using GlobalGroup.
3605 (IsPartiallyOrFullyDeclared): Reference sets using GlobalGroup.
3606 (DeclareTypeConstFully): Reference sets using GlobalGroup.
3608 (Body): Use bodyt and to lookup the required set.
3609 (ForeachTryDeclare): Remove parameter l. Lookup set instead.
3610 (DeclareOutstandingTypes): Add new rules setarraynul and setfully.
3611 Reference sets using GlobalGroup.
3612 (ActivateWatch): New procedure.
3613 (DeclareTypesConstantsProceduresInRange): Re-written to check
3615 (DeclareTypesConstantsProcedures): Re-written to check
3617 (DeclareBoolean): Reference sets using GlobalGroup.
3618 (DeclarePackedBoolean): Ditto.
3619 (DeclareDefaultConstants): Ditto.
3620 (FreeGroup): Initialized.
3621 (GlobalGroup): Ditto.
3622 * gm2-compiler/Sets.def (EqualSet): New procedure function.
3623 Remove export qualified list of identifiers.
3624 * gm2-compiler/Sets.mod (EqualSet): New procedure function.
3626 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3628 * lang.opt.urls: New file, autogenerated by
3629 regenerate-opt-urls.py.
3631 2023-12-15 Gaius Mulley <gaiusmod2@gmail.com>
3634 * gm2-compiler/M2Check.mod (checkConstMeta): New procedure
3636 (checkConstEquivalence): New procedure function.
3637 (doCheckPair): Add call to checkConstEquivalence.
3638 * gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Call
3639 FoldBecomes with reduced parameters.
3640 (FoldBecomes): Re-write.
3641 (TryDeclareConst): New procedure.
3642 (RemoveQuads): New procedure.
3643 (DeclaredOperandsBecomes): New procedure function.
3644 (TypeCheckBecomes): New procedure function.
3645 (PerformFoldBecomes): New procedure.
3646 * gm2-compiler/M2Range.mod (FoldAssignment): Call
3647 AssignmentTypeCompatible to check des expr compatibility.
3648 * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Remove
3650 (FilterCheckReadBeforeInitQuad): Remove parameter lst.
3651 (CheckReadBeforeInitFirstBasicBlock): Remove parameter lst.
3652 Call FilterCheckReadBeforeInitQuad without lst.
3654 2023-12-13 Gaius Mulley <gaiusmod2@gmail.com>
3657 * gm2-libs-iso/ConvStringShort.def: New file.
3658 * gm2-libs-iso/ConvStringShort.mod: New file.
3659 * gm2-libs-iso/ShortConv.def: New file.
3660 * gm2-libs-iso/ShortConv.mod: New file.
3661 * gm2-libs-iso/ShortMath.def: New file.
3662 * gm2-libs-iso/ShortMath.mod: New file.
3663 * gm2-libs-iso/ShortStr.def: New file.
3664 * gm2-libs-iso/ShortStr.mod: New file.
3666 2023-12-12 Gaius Mulley <gaiusmod2@gmail.com>
3669 * gm2-libs-coroutines/SYSTEM.mod: Remove redundant import of memcpy.
3670 * gm2-libs-iso/ClientSocket.mod: Remove redundant import of IOConsts.
3671 * gm2-libs-iso/IOChan.mod: Remove redundant import of IOConsts.
3672 * gm2-libs-iso/IOLink.mod: Remove redundant import of IOChan and SYSTEM.
3673 * gm2-libs-iso/IOResult.mod: Remove redundant import of IOChan.
3674 * gm2-libs-iso/LongIO.mod: Remove redundant import of writeString.
3675 * gm2-libs-iso/LongWholeIO.mod: Remove redundant import of IOChan.
3676 * gm2-libs-iso/M2RTS.mod: Remove redundant import of ADDRESS.
3677 * gm2-libs-iso/MemStream.mod: Remove redundant import of ADDRESS.
3678 * gm2-libs-iso/RTdata.mod: Remove redundant import of DeviceTablePtr.
3679 * gm2-libs-iso/RTfio.mod: Remove redundant import of DeviceTablePtr.
3680 * gm2-libs-iso/RTgen.mod: Remove redundant import of DeviceTablePtr.
3681 * gm2-libs-iso/RealIO.mod: Remove redundant import of writeString.
3682 * gm2-libs-iso/RndFile.mod: Remove redundant import of SYSTEM.
3683 * gm2-libs-iso/SYSTEM.mod: Remove redundant import of memcpy.
3684 * gm2-libs-iso/ShortWholeIO.mod: Remove redundant import of IOConsts.
3685 * gm2-libs-iso/TextIO.mod: Remove redundant import of IOChan.
3686 * gm2-libs-iso/TextUtil.mod: Remove redundant import of IOChan.
3687 * gm2-libs-iso/WholeIO.mod: Remove redundant import of IOChan.
3688 * gm2-libs-log/BitByteOps.mod: Remove redundant import of BYTE.
3689 * gm2-libs-log/FileSystem.mod: Remove redundant import of BYTE and ADDRESS.
3690 * gm2-libs-log/InOut.mod: Remove redundant import of String.
3691 * gm2-libs-log/RealConversions.mod: Remove redundant import of StringToLongreal.
3692 * gm2-libs/FIO.mod: Remove redundant import of SIZE.
3693 * gm2-libs/FormatStrings.mod: Remove redundant import of String
3695 * gm2-libs/IO.mod: Remove redundant import of SIZE.
3696 * gm2-libs/Indexing.mod: Remove redundant import of ADDRESS.
3697 * gm2-libs/M2Dependent.mod: Remove redundant import of SIZE.
3698 * gm2-libs/M2RTS.mod: Remove redundant import of ADDRESS.
3699 * gm2-libs/OptLib.mod: Remove redundant import of DynamicStrings.
3700 * gm2-libs/SYSTEM.mod: Remove redundant import of memcpy.
3701 * gm2-libs/StringConvert.mod: Remove redundant import of String.
3703 2023-12-07 Gaius Mulley <gaiusmod2@gmail.com>
3706 * gm2-compiler/M2Base.mod (Ass): Extend array to include proc row
3707 and column. Allow PIM to assign cardinal variables to address
3711 * gm2-compiler/M2Check.mod (getSType): New procedure function.
3712 Replace all occurances of GetSType with getSType.
3713 * gm2-compiler/M2GenGCC.mod (CodeParam): Rewrite format specifier
3715 * gm2-compiler/M2Quads.mod (CheckProcTypeAndProcedure): Add tokno
3717 * gm2-compiler/M2Range.def (InitTypesParameterCheck): Add tokno
3719 (InitParameterRangeCheck): Add tokno parameter.
3720 Remove EXPORT QUALIFIED list.
3721 (InitParameterRangeCheck): Add tokno parameter.
3722 * gm2-compiler/M2Range.mod (InitTypesParameterCheck): Add tokno
3723 parameter and pass tokno to PutRangeParam.
3724 (InitParameterRangeCheck): Add tokno parameter and pass tokno to
3726 (PutRangeParam): Add tokno parameter and assign to tokenNo.
3727 (FoldTypeParam): Rewrite format string.
3729 2023-12-06 Thomas Schwinge <thomas@codesourcery.com>
3731 * lang.opt (-isysroot): New.
3733 2023-12-05 Gaius Mulley <gaiusmod2@gmail.com>
3736 * gm2-compiler/M2Quads.mod (BuildReFunction): Use
3737 GetDType to retrieve the type of the operand when
3738 converting the complex type to its scalar equivalent.
3739 (BuildImFunction): Use GetDType to retrieve the type of the
3740 operand when converting the complex type to its scalar
3743 2023-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3745 * mc/mc.flex [__GNUC__]: Define alloca as __builtin_alloca.
3746 (handleDate): Use strchr instead of index.
3748 2023-12-04 Gaius Mulley <gaiusmod2@gmail.com>
3751 * tools-src/makeSystem: Change all occurrences of -c to -S.
3753 2023-11-01 Gaius Mulley <gaiusmod2@gmail.com>
3756 * gm2-compiler/SymbolTable.mod (OverflowZType): Import from m2expr.
3757 (ConstantStringExceedsZType): Remove import.
3758 (GetConstLitType): Replace ConstantStringExceedsZType with OverflowZType.
3759 * gm2-gcc/m2decl.cc (m2decl_ConstantStringExceedsZType): Remove.
3760 (m2decl_BuildConstLiteralNumber): Re-write.
3761 * gm2-gcc/m2decl.def (ConstantStringExceedsZType): Remove.
3762 * gm2-gcc/m2decl.h (m2decl_ConstantStringExceedsZType): Remove.
3763 * gm2-gcc/m2expr.cc (m2expr_StrToWideInt): Rewrite to check overflow.
3764 (m2expr_OverflowZType): New function.
3765 (ToWideInt): New function.
3766 * gm2-gcc/m2expr.def (OverflowZType): New procedure function declaration.
3767 * gm2-gcc/m2expr.h (m2expr_OverflowZType): New prototype.
3769 2023-10-27 Gaius Mulley <gaiusmod2@gmail.com>
3772 * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Re-format.
3773 (cgetopt_cgetopt_long_only): Re-format.
3774 (cgetopt_SetOption): Re-format and assign flag to NULL
3775 if name is also NULL.
3776 * gm2-libs/GetOpt.def (AddLongOption): Add index parameter
3777 and change flag to be a VAR parameter rather than a pointer.
3778 (GetOptLong): Re-format.
3779 (GetOpt): Correct comment.
3780 * gm2-libs/GetOpt.mod: Re-write to rely on cgetopt rather
3781 than implement long option creation in GetOpt.
3782 * gm2-libs/cgetopt.def (SetOption): has_arg type is INTEGER.
3784 2023-10-25 Gaius Mulley <gaiusmod2@gmail.com>
3787 * gm2-gcc/m2builtins.cc (gm2_isnan_node): New tree.
3788 (DoBuiltinIsnan): New function.
3789 (m2builtins_BuiltInIsnan): New function.
3790 (m2builtins_init): Initialize gm2_isnan_node.
3791 (list_of_builtins): Add define for __builtin_isnan.
3792 * gm2-libs-ch/wrapc.c (wrapc_isnan): New function.
3793 (wrapc_isnanf): New function.
3794 (wrapc_isnanl): New function.
3795 * gm2-libs/Builtins.def (isnanf): New procedure function.
3796 (isnan): New procedure function.
3797 (isnanl): New procedure function.
3798 * gm2-libs/Builtins.mod:
3799 * gm2-libs/wrapc.def (isnan): New function.
3800 (isnanf): New function.
3801 (isnanl): New function.
3803 2023-10-24 Gaius Mulley <gaiusmod2@gmail.com>
3805 * gm2-libs/M2Dependent.mod (InitDependencyList): New
3807 (CreateModule): Call InitDependencyList to initialize
3808 all fields of DependencyList.
3810 2023-10-24 Gaius Mulley <gaiusmod2@gmail.com>
3812 * gm2-libs/M2Dependent.mod (CreateModule): Initialize all
3813 dependency fields for DependencyList.
3815 2023-10-17 Gaius Mulley <gaiusmod2@gmail.com>
3818 * Make-lang.in (CM2DEP): New define conditionally set if
3819 ($(CXXDEPMODE),depmode=gcc3).
3820 (GM2_1): Use $(CM2DEP).
3821 (m2/gm2-gcc/%.o): Ensure $(@D)/$(DEPDIR) is created.
3822 Add $(CM2DEP) to the $(COMPILER) command and use $(POSTCOMPILE).
3823 (m2/gm2-gcc/m2configure.o): Ditto.
3824 (m2/gm2-lang.o): Ditto.
3826 (m2/gm2-gcc/rtegraph.o): Ditto.
3827 (m2/mc-boot/$(SRC_PREFIX)%.o): Ditto.
3828 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
3829 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
3830 (m2/mc-boot/main.o): Ditto.
3832 (m2/gm2-libs-boot/M2RTS.o): Ditto.
3833 (m2/gm2-libs-boot/%.o): Ditto.
3834 (m2/gm2-libs-boot/%.o): Ditto.
3835 (m2/gm2-libs-boot/RTcodummy.o): Ditto.
3836 (m2/gm2-libs-boot/RTintdummy.o): Ditto.
3837 (m2/gm2-libs-boot/wrapc.o): Ditto.
3838 (m2/gm2-libs-boot/UnixArgs.o): Ditto.
3839 (m2/gm2-libs-boot/choosetemp.o): Ditto.
3840 (m2/gm2-libs-boot/errno.o): Ditto.
3841 (m2/gm2-libs-boot/dtoa.o): Ditto.
3842 (m2/gm2-libs-boot/ldtoa.o): Ditto.
3843 (m2/gm2-libs-boot/termios.o): Ditto.
3844 (m2/gm2-libs-boot/SysExceptions.o): Ditto.
3845 (m2/gm2-libs-boot/SysStorage.o): Ditto.
3846 (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
3847 (m2/gm2-compiler-boot/M2Error.o): Ditto.
3848 (m2/gm2-compiler-boot/%.o): Ditto.
3849 (m2/gm2-compiler-boot/%.o): Ditto.
3850 (m2/gm2-compiler-boot/m2flex.o): Ditto.
3851 (m2/gm2-compiler/%.o): Ditto.
3852 (m2/gm2-compiler/m2flex.o): Ditto.
3853 (m2/gm2-libs-iso/%.o): Ditto.
3854 (m2/gm2-libs/%.o): Ditto.
3855 (m2/gm2-libs/%.o): Ditto.
3856 (m2/gm2-libs/choosetemp.o): Ditto.
3857 (m2/boot-bin/mklink$(exeext)): Ditto.
3858 (m2/pge-boot/%.o): Ditto.
3859 (m2/pge-boot/%.o): Ditto.
3860 (m2/gm2-compiler/%.o): Ensure $(@D)/$(DEPDIR) is created and use
3862 (m2/gm2-compiler/%.o): Ditto.
3863 (m2/gm2-libs-iso/%.o): Ditto.
3864 (m2/gm2-libs/%.o): Ditto.
3865 * README: Purge out of date info.
3866 * gm2-compiler/M2Comp.mod (MakeSaveTempsFileNameExt): Import.
3867 (OnExitDelete): Import.
3868 (GetModuleDefImportStatementList): Import.
3869 (GetModuleModImportStatementList): Import.
3870 (GetImportModule): Import.
3871 (IsImportStatement): Import.
3873 (GetImportStatementList): Import.
3877 (IsNoError): Import.
3878 (WriteLine): Import.
3879 (WriteChar): Import.
3880 (FlushOutErr): Import.
3882 (OpenToRead): Import.
3883 (OpenToWrite): Import.
3888 (GetDepTarget): Import.
3894 (GenerateDefDependency): New procedure.
3895 (GenerateDependenciesFromImport): New procedure.
3896 (GenerateDependenciesFromList): New procedure.
3897 (GenerateDependencies): New procedure.
3898 (Compile): Re-write.
3899 (compile): Re-format.
3900 (CreateFileStem): New procedure function.
3901 (DoPass0): Re-write.
3902 (IsLibrary): New procedure function.
3903 (IsUnique): New procedure function.
3904 (Append): New procedure.
3905 (MergeDep): New procedure.
3906 (GetRuleTarget): New procedure function.
3907 (ReadDepContents): New procedure function.
3908 (WriteDep): New procedure.
3909 (WritePhonyDep): New procedure.
3910 (WriteDepContents): New procedure.
3911 (CreateDepFilename): New procedure function.
3912 (Pass0CheckDef): New procedure function.
3913 (Pass0CheckMod): New procedure function.
3914 (DoPass0): Re-write.
3915 (DepContent): New variable.
3916 (DepOutput): New variable.
3917 (BaseName): New procedure function.
3918 * gm2-compiler/M2GCCDeclare.mod (PrintTerse): Handle IsImport.
3919 Replace IsGnuAsmVolatile with IsGnuAsm.
3920 * gm2-compiler/M2Options.def (EXPORT QUALIFIED): Remove list.
3921 (SetM): New procedure.
3922 (GetM): New procedure function.
3923 (SetMM): New procedure.
3924 (GetMM): New procedure function.
3925 (SetMF): New procedure.
3926 (GetMF): New procedure function.
3927 (SetPPOnly): New procedure.
3928 (GetB): New procedure function.
3929 (SetMD): New procedure.
3930 (GetMD): New procedure function.
3931 (SetMMD): New procedure.
3932 (GetMMD): New procedure function.
3933 (SetMQ): New procedure.
3934 (SetMT): New procedure.
3935 (GetMT): New procedure function.
3936 (GetDepTarget): New procedure function.
3937 (SetMP): New procedure.
3938 (GetMP): New procedure function.
3939 (SetObj): New procedure.
3940 (SetSaveTempsDir): New procedure.
3941 * gm2-compiler/M2Options.mod (SetM): New procedure.
3942 (GetM): New procedure function.
3943 (SetMM): New procedure.
3944 (GetMM): New procedure function.
3945 (SetMF): New procedure.
3946 (GetMF): New procedure function.
3947 (SetPPOnly): New procedure.
3948 (GetB): New procedure function.
3949 (SetMD): New procedure.
3950 (GetMD): New procedure function.
3951 (SetMMD): New procedure.
3952 (GetMMD): New procedure function.
3953 (SetMQ): New procedure.
3954 (SetMT): New procedure.
3955 (GetMT): New procedure function.
3956 (GetDepTarget): New procedure function.
3957 (SetMP): New procedure.
3958 (GetMP): New procedure function.
3959 (SetObj): New procedure.
3960 (SetSaveTempsDir): New procedure.
3961 * gm2-compiler/M2Preprocess.def (PreprocessModule): New parameters
3962 topSource and outputDep. Re-write.
3963 (MakeSaveTempsFileNameExt): New procedure function.
3964 (OnExitDelete): New procedure function.
3965 * gm2-compiler/M2Preprocess.mod (GetM): Import.
3967 (OnExitDelete): Add debugging message.
3968 (RemoveFile): Add debugging message.
3970 (BuildCommandLineExecute): New procedure function.
3971 * gm2-compiler/M2Search.def (SetDefExtension): Remove unnecessary
3973 * gm2-compiler/SymbolTable.mod (GetSymName): Handle ImportSym and
3975 * gm2-gcc/m2options.h (M2Options_SetMD): New function.
3976 (M2Options_GetMD): New function.
3977 (M2Options_SetMMD): New function.
3978 (M2Options_GetMMD): New function.
3979 (M2Options_SetM): New function.
3980 (M2Options_GetM): New function.
3981 (M2Options_SetMM): New function.
3982 (M2Options_GetMM): New function.
3983 (M2Options_GetMQ): New function.
3984 (M2Options_SetMF): New function.
3985 (M2Options_GetMF): New function.
3986 (M2Options_SetMT): New function.
3987 (M2Options_SetMP): New function.
3988 (M2Options_GetMP): New function.
3989 (M2Options_GetDepTarget): New function.
3990 * gm2-lang.cc (gm2_langhook_init): Correct comment case.
3991 (gm2_langhook_init_options): Add case OPT_M and
3993 (gm2_langhook_post_options): Add case OPT_MF, OPT_MT,
3995 * lang-specs.h (M2CPP): Pass though MF option.
3996 (MDMMD): New define. Add MDMMD to "@modula-2".
3998 2023-10-15 Gaius Mulley <gaiusmod2@gmail.com>
4000 * Make-lang.in (m2.tags): New rule.
4002 2023-10-11 Gaius Mulley <gaiusmod2@gmail.com>
4004 * gm2-compiler/M2GCCDeclare.mod (DeclareSubrange): Check
4005 the base type of the subrange against the ZTYPE and call
4006 DeclareSubrangeNarrow if necessary.
4007 (DeclareSubrangeNarrow): New procedure function.
4009 2023-10-11 Gaius Mulley <gaiusmod2@gmail.com>
4012 * gm2-compiler/M2CaseList.mod (appendTree): Replace
4013 InitStringCharStar with InitString.
4014 * gm2-compiler/M2GCCDeclare.mod: Import AreConstantsEqual.
4015 (DeclareSubrange): Add zero alignment test and call
4016 BuildSmallestTypeRange if necessary.
4017 (WalkSubrangeDependants): Walk the align expression.
4018 (IsSubrangeDependants): Test the align expression.
4019 * gm2-compiler/M2Quads.mod (BuildStringAdrParam): Correct end name.
4020 * gm2-compiler/P2SymBuild.mod (BuildTypeAlignment): Allow subranges
4021 to be zero aligned (packed).
4022 * gm2-compiler/SymbolTable.mod (Subrange): Add Align field.
4023 (MakeSubrange): Set Align to NulSym.
4024 (PutAlignment): Assign Subrange.Align to align.
4025 (GetAlignment): Return Subrange.Align.
4026 * gm2-gcc/m2expr.cc (noBitsRequired): Rewrite.
4027 (calcNbits): Rename ...
4028 (m2expr_calcNbits): ... to this and test for negative values.
4029 (m2expr_BuildTBitSize): Replace calcNBits with m2expr_calcNbits.
4030 * gm2-gcc/m2expr.def (calcNbits): Export.
4031 * gm2-gcc/m2expr.h (m2expr_calcNbits): New prototype.
4032 * gm2-gcc/m2type.cc (noBitsRequired): Remove.
4033 (m2type_BuildSmallestTypeRange): Call m2expr_calcNbits.
4034 (m2type_BuildSubrangeType): Create range_type from
4035 build_range_type (type, lowval, highval).
4037 2023-09-29 Gaius Mulley <gaiusmod2@gmail.com>
4039 * gm2-compiler/M2Quads.mod (EndBuildFor): Improve
4041 * gm2-libs-iso/SysClock.mod (ExtractDate): Replace
4042 testDays with yearOfDays. New local variable monthOfDays.
4044 2023-09-26 Gaius Mulley <gaiusmod2@gmail.com>
4047 * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes.
4048 (BuildTrashTreeFromInterface): Minor spacing changes.
4049 * gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call
4050 string to generate a nul terminated C style string.
4051 * gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure.
4052 (BuildM2InitFunction): Replace inline parameter generation with
4053 calls to BuildStringAdrParam.
4055 2023-09-19 Gaius Mulley <gaiusmod2@gmail.com>
4057 * Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
4058 and if so use __float128 for longreal in mc.
4059 (MC_ARGS): Append host_mc_longreal.
4060 * config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
4061 (TEST_HOST_CPU_DEFAULT): New variable.
4062 * configure: Regenerate.
4063 * configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
4065 (M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
4066 * gm2-compiler/M2GCCDeclare.mod: Correct comment case.
4067 * gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
4068 SetLastFunction for the builtin function call.
4069 (MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
4071 (MaybeDebugBuiltinMemset): New procedure function.
4072 (MakeCopyUse): Use GNU formatting.
4073 (UseBuiltin): Rewrite to check BuiltinExists.
4074 (CodeDirectCall): Rewrite to check BuiltinExists and call
4076 (CodeMakeAdr): Re-format.
4077 * gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
4078 * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
4079 "cond" to switch UninitVariableConditionalChecking separately.
4080 (SetDebugBuiltins): New procedure.
4081 * gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
4083 * gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
4084 to BuildRealFuncProcCall.
4085 (BuildRealFuncProcCall): Add ConstExpr parameter. Pass ConstExpr
4086 to BuildFunctionCall.
4087 (BuildFunctionCall): Add parameter ConstExpr. Pass ConstExpr to
4088 BuildRealFunctionCall.
4089 (BuildConstFunctionCall): Add parameter ConstExpr. Pass ConstExpr to
4091 (BuildRealFunctionCall): Add parameter ConstExpr. Pass ConstExpr to
4092 BuildRealFuncProcCall.
4093 * gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
4094 to BuildFunctionCall.
4095 (AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
4096 * gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
4098 * gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
4100 (IsProcedureBuiltinAvailable): New procedure function.
4101 * gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
4102 (bf_category): New enum type.
4103 (struct builtin_function_entry): New field function_avail.
4104 (m2builtins_BuiltInMemCopy): Rename from ...
4105 (m2builtins_BuiltinMemCopy): ... this.
4106 (DoBuiltinMemSet): New function.
4107 (m2builtins_BuiltinMemSet): New function.
4108 (do_target_support_exists): New function.
4109 (target_support_exists): New function.
4110 (m2builtins_BuiltinExists): Return true or false.
4111 (m2builtins_BuildBuiltinTree): Rename local variables.
4112 Replace long_double_type_node with GetM2LongRealType.
4113 (m2builtins_init): Use GetM2LongRealType rather than
4114 long_double_type_node.
4115 * gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
4116 (BuiltinMemCopy): ... this.
4117 (BuiltinMemSet): New procedure function.
4118 * gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
4119 (m2builtins_BuiltinMemCopy): ... this.
4120 (m2builtins_BuiltinMemSet): New procedure function.
4121 * gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
4123 (m2configure_M2CLongRealIBM128): New procedure function.
4124 (m2configure_M2CLongRealLongDouble): New procedure function.
4125 (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
4126 * gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
4127 (M2CLongRealIBM128): New procedure function.
4128 (M2CLongRealLongDouble): New procedure function.
4129 (M2CLongRealLongDoublePPC64LE): New procedure function.
4130 * gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
4131 (m2configure_M2CLongRealFloat128): New procedure function.
4132 (m2configure_M2CLongRealIBM128): New procedure function.
4133 (m2configure_M2CLongRealLongDouble): New procedure function.
4134 (m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
4135 * gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
4136 * gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
4137 * gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
4139 (m2statement_BuildGoto):Set TREE_USED to true.
4140 (m2statement_BuildParam): Set TREE_USED to true.
4141 (m2statement_BuildBuiltinCallTree): New function.
4142 (m2statement_BuildFunctValue): Set TREE_USED to true.
4143 * gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
4144 * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
4146 * gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
4147 (m2treelib_DoCall1): Remove spacing.
4148 (m2treelib_DoCall2): Remove spacing.
4149 (m2treelib_DoCall3): Remove spacing.
4150 (add_stmt): Rename parameter.
4151 * gm2-gcc/m2type.cc (build_set_type): Remove spacing.
4152 (build_m2_specific_size_type): Remove spacing.
4153 (finish_build_pointer_type): Remove spacing.
4154 (m2type_BuildVariableArrayAndDeclare): Remove spacing.
4155 (build_m2_short_real_node): Remove spacing.
4156 (build_m2_real_node): Remove spacing.
4157 (build_m2_long_real_node): Use float128_type_node if
4158 M2CLongRealFloat128 is set.
4159 (build_m2_ztype_node): Remove spacing.
4160 (build_m2_long_int_node): Remove spacing.
4161 (build_m2_long_card_node): Remove spacing.
4162 (build_m2_short_int_node): Remove spacing.
4163 (build_m2_short_card_node): Remove spacing.
4164 (build_m2_iso_loc_node): Remove spacing.
4165 (m2type_SameRealType): New function.
4166 (m2type_InitBaseTypes): Create m2_c_type_node using
4167 m2_long_complex_type_node.
4168 (m2type_SetAlignment): Tidy up comment.
4169 * gm2-gcc/m2type.def (SameRealType): New procedure function.
4170 * gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
4171 * gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
4172 node from m2 language specific long double node.
4173 * gm2-libs-log/RealConversions.mod (IsNan): New procedure
4175 (doPowerOfTen): Re-implement.
4176 * gm2-libs/Builtins.mod: Add newline.
4177 * gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
4178 * gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
4179 * gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
4180 (M2C_LONGREAL_PPC64LE): New config value.
4181 * gm2spec.cc (lang_specific_driver): New local variable
4182 need_default_mabi set to default value depending upon
4183 M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
4184 * lang.opt (Wcase-enum): Moved to correct section.
4185 * m2pp.cc (m2pp_real_type): New function.
4186 (m2pp_type): Call m2pp_real_type.
4187 (m2pp_print_mode): New function.
4188 (m2pp_simple_type): Call m2pp_simple_type.
4189 (m2pp_float): New function.
4190 (m2pp_expression): Call m2pp_float.
4191 * mc-boot/GDynamicStrings.cc: Rebuild.
4192 * mc-boot/GDynamicStrings.h: Rebuild.
4193 * mc-boot/GFIO.cc: Rebuild.
4194 * mc-boot/GFIO.h: Rebuild.
4195 * mc-boot/GIO.cc: Rebuild.
4196 * mc-boot/GRTint.cc: Rebuild.
4197 * mc-boot/Gdecl.cc: Rebuild.
4198 * mc-boot/GmcOptions.cc: Rebuild.
4199 * mc-boot/GmcOptions.h: Rebuild.
4200 * mc/decl.mod: Rebuild.
4201 * mc/mcOptions.def (getCRealType): New procedure function.
4202 (getCLongRealType): New procedure function.
4203 (getCShortRealType): New procedure function.
4204 * mc/mcOptions.mod (getCRealType): New procedure function.
4205 (getCLongRealType): New procedure function.
4206 (getCShortRealType): New procedure function.
4208 2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
4210 * gm2-compiler/M2CaseList.mod (NewRanges): Add block
4212 (NewSet): Add block comment.
4213 (DisplayRanges): Add block comment.
4214 (IncludeElement): Add block comment.
4215 (IncludeElements): Add block comment.
4216 (appendString): Add block comment.
4217 (appendEnum): Add block comment.
4218 (appendTree): Add block comment.
4219 (SubrangeErrors): Add block comment.
4221 2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
4223 * gm2-compiler/M2CaseList.mod (appendString): New procedure.
4224 (appendEnum): Re-implement.
4225 (NoOfSetElements): New procedure function.
4226 (isPrintableChar): New procedure function.
4227 (appendTree): New procedure.
4228 (SubrangeErrors): New procedure.
4229 (EmitMissingRangeErrors): Call SubrangeErrors if appropriate.
4230 * gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid
4231 using a temporary variable once.
4232 (IsLocalVar): Comment out.
4233 (RecordContainsVarient): Remove fieldtype.
4234 (GenerateNoteFlow): Remove lst parameter.
4235 (CheckDeferredRecordAccess): Remove lst parameter.
4236 (CheckUnary): Remove lst parameter. Remove procSym.
4237 (CheckBinary): Remove lst parameter. Remove procSym.
4238 (CheckIndrX): Remove lst parameter. Remove procSym.
4239 (CheckXIndr): Remove bblst and procSym parameters.
4240 (CheckRecordField): Remove procSym, op1tok, op2tok and op2.
4241 (CheckBecomes): Remove procSym and bblst.
4242 (CheckComparison): Remove procSym and bblst.
4243 (CheckAddr): Remove procSym parameter.
4244 * gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function.
4245 (m2expr_CSTIntToChar): New function.
4246 * gm2-gcc/m2expr.def (CSTIntToString): New procedure function
4248 (CSTIntToChar): New procedure function declaration.
4249 * gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype.
4250 (m2expr_CSTIntToString): New prototype.
4252 2023-09-13 Gaius Mulley <gaiusmod2@gmail.com>
4254 * Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
4255 (GM2_ISO_FLAGS): Add -Wcase-enum.
4256 * gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
4257 singular or plural start text prior to the enum list.
4258 Remove unused parameter tokenno.
4259 (EmitMissingRangeErrors): New procedure.
4260 (MissingCaseBounds): Call EmitMissingRangeErrors.
4261 (MissingCaseStatementBounds): Call EmitMissingRangeErrors.
4262 * gm2-libs-iso/TextIO.mod: Fix spacing.
4264 2023-09-12 Gaius Mulley <gaiusmod2@gmail.com>
4266 * gm2-compiler/M2CaseList.def (PushCase): Rename parameters
4267 r to rec and v to va. Add expr parameter.
4268 (MissingCaseStatementBounds): New procedure function.
4269 * gm2-compiler/M2CaseList.mod (RangePair): Add expression.
4270 (PushCase): Rename parameters r to rec and v to va. Add
4272 (RemoveRange): New procedure function.
4273 (SubBitRange): Detect the case when the range in the set matches
4275 (CheckLowHigh): New procedure.
4276 (ExcludeCaseRanges): Rename parameter c to cd. Rename local
4277 variables q to cl and r to rp.
4280 (DoEnumValues): Remove.
4281 (IncludeElement): New procedure.
4282 (IncludeElements): New procedure.
4283 (ErrorRangeEnum): New procedure.
4284 (ErrorRange): Remove.
4285 (ErrorRanges): Remove.
4286 (appendEnum): New procedure.
4287 (appendStr): New procedure.
4288 (EnumerateErrors): New procedure.
4289 (MissingCaseBounds): Re-implement.
4290 (InRangeList): Remove.
4291 (MissingCaseStatementBounds): New procedure function.
4292 (checkTypes): Re-format.
4293 (inRange): Re-format.
4294 (TypeCaseBounds): Re-format.
4295 * gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
4297 * gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
4298 with ForeachLocalSymDo.
4299 * gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
4300 (CaseEnumChecking): New variable.
4301 * gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
4302 (Module initialization): set CaseEnumChecking to FALSE.
4303 * gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
4304 * gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
4306 (BuildCaseStart): Pass selector expression to InitCaseBounds.
4307 (CheckUninitializedVariablesAreUsed): Remove.
4308 (IsInlineWithinBlock): Remove.
4309 (AsmStatementsInBlock): Remove.
4310 (CheckVariablesInBlock): Remove commented code.
4311 (BeginVarient): Pass NulSym to InitCaseBounds.
4312 * gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
4313 errorGenerated. Add call to MissingCaseStatementBounds.
4314 * gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
4315 * gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
4316 (InitFunction): Add else clause.
4317 (InitConvert): Add else clause.
4318 (InitLeaf): Add else clause.
4319 (InitBinary): Add else clause.
4320 (InitUnary): Add else clause.
4321 * gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
4322 (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
4324 * gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
4325 Add case label for EnumerationSym and call GetItemFromList.
4326 (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
4328 (SymEnumeration): Add ListOfFields used for declaration order.
4329 (MakeEnumeration): Initialize ListOfFields.
4330 (PutFieldEnumeration): Include Field in ListOfFields.
4331 * gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
4333 * gm2-lang.cc (gm2_langhook_handle_option): Add
4334 OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
4335 * lang.opt (Wcase-enum): Add.
4337 2023-09-11 Gaius Mulley <gaiusmod2@gmail.com>
4340 * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
4341 case labels LogicalDiffOp, DummyOp, OptParamOp and
4344 2023-08-20 Gaius Mulley <gaiusmod2@gmail.com>
4347 * gm2-libs/Builtins.def (nexttoward): Alter the second
4348 parameter to LONGREAL.
4349 (nexttowardf): Alter the second parameter to LONGREAL.
4350 * gm2-libs/Builtins.mod (nexttoward): Alter the second
4351 parameter to LONGREAL.
4352 (nexttowardf): Alter the second parameter to LONGREAL.
4353 * gm2-libs/cbuiltin.def (nexttoward): Alter the second
4354 parameter to LONGREAL.
4355 (nexttowardf): Alter the second parameter to LONGREAL.
4357 2023-08-13 Iain Sandoe <iain@sandoe.co.uk>
4359 * Make-lang.in: Update suffix spellings to use 'soext'.
4360 Add libc to the plugin link.
4362 2023-08-12 Gaius Mulley <gaiusmod2@gmail.com>
4365 * gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
4366 (GetClock): Call EpochTime if the C time functions are
4368 * gm2-libs-iso/wrapclock.def (istimezone): New function
4371 2023-08-12 Gaius Mulley <gaiusmod2@gmail.com>
4374 * Make-lang.in (M2RTE_PLUGIN_SO): Assigned to
4375 plugin/m2rte$(exeext).so if enable_plugin is yes.
4376 (m2.all.cross): Replace plugin/m2rte$(soext) with
4378 (m2.all.encap): Replace plugin/m2rte$(soext) with
4380 (m2.install-plugin): Add dummy rule when enable_plugin
4382 (plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin
4384 (m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
4386 (m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
4388 * gm2spec.cc (lang_specific_driver): Set need_plugin to false
4391 2023-08-09 Gaius Mulley <gaiusmod2@gmail.com>
4394 * gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
4396 (SetClock): Test SetTimespec return value.
4397 * gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
4399 (SetTimespec): Add integer return type.
4401 2023-08-05 Gaius Mulley <gaiusmod2@gmail.com>
4404 * gm2-libs-iso/SysClock.mod: Re-implement using wrapclock.
4405 * gm2-libs-iso/wrapclock.def: New file.
4407 2023-08-01 Gaius Mulley <gaiusmod2@gmail.com>
4410 * gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New
4412 (checkTypeKindEquivalence): Call checkProcTypeEquivalence
4413 if either left or right is a proc type.
4414 * gm2-compiler/M2Quads.mod (BuildRelOp): Create
4415 combinedTok prior to creating the range check quadruple.
4416 Use combinedTok when creating the range check quadruple.
4418 2023-08-01 Gaius Mulley <gaiusmod2@gmail.com>
4421 * gm2-compiler/M2Quads.mod (BuildDesignatorArray):
4422 Rename t as type and d as dim. New variable result.
4423 Allow constants of an array type to be indexed.
4425 2023-07-25 Gaius Mulley <gaiusmod2@gmail.com>
4428 * gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
4430 * gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
4432 * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
4433 skip_const_decl before chaining the parameter value.
4434 Use PromoteToCString to ensure the string is nul terminated.
4435 (CodeInline): Remove all parameters and replace with quad.
4436 Use GetQuadOtok to get operand token numbers.
4437 Remove call to DeclareConstant and replace it with PromoteToCString.
4438 * gm2-compiler/M2Quads.def (BuildInline): Rename into ...
4439 (BuildAsm): ... this.
4440 * gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
4441 (BuildAsm): ... this.
4442 (BuildAsmElement): Add debugging.
4443 * gm2-compiler/P1Build.bnf: Remove import of BuildInline.
4444 * gm2-compiler/P2Build.bnf: Remove import of BuildInline.
4445 * gm2-compiler/P3Build.bnf: Remove import of BuildInline and
4447 * gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
4448 * gm2-libs-iso/SysClock.mod (foo): Remove.
4449 * gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
4450 Rename variable t to src.
4451 * m2pp.cc (pf): Correct block comment.
4452 (pe): Correct block comment.
4453 (m2pp_asm_expr): New function.
4454 (m2pp_statement): Call m2pp_asm_expr.
4456 2023-07-22 Gaius Mulley <gaiusmod2@gmail.com>
4459 * gm2-libs/FIO.def (ReadAny): Correct comment as
4460 HIGH (a) + 1 is number of bytes.
4461 (WriteAny): Correct comment as HIGH (a) + 1 is number of
4463 * gm2-libs/FIO.mod (ReadAny): Correct comment as
4464 HIGH (a) + 1 is number of bytes. Also pass HIGH (a) + 1
4466 (WriteAny): Correct comment as HIGH (a) + 1 is number of
4467 bytes. Also pass HIGH (a) + 1 to BufferedWrite.
4468 (BufferedWrite): Rename parameter a to src, rename variable
4469 t to dest. Correct parameter order to memcpy.
4471 2023-07-20 Gaius Mulley <gaiusmod2@gmail.com>
4473 * gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
4474 (CheckIndrX): Call SetupLAlias between lhs and content.
4475 (trashParam): Re-write.
4476 (SetVarLRInitialized): Indicate shadow and heap are initialized.
4477 Call SetupIndr between shadow and heap.
4478 * gm2-compiler/P2SymBuild.mod: Import
4479 PutProcedureParameterHeapVars.
4480 (EndBuildProcedure): Call PutProcedureParameterHeapVars.
4481 * gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
4483 (PutProcedureParameterHeapVars): New procedure function.
4484 * gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
4486 (GetParameterHeapVar): New procedure function.
4487 (PuttParameterHeapVar): New procedure function.
4488 (PutProcedureParameterHeapVars): New procedure.
4489 (VarParam): HeapVar new record field.
4490 (PutVarParam): HeapVar assigned to NulSym.
4492 2023-07-19 Gaius Mulley <gaiusmod2@gmail.com>
4495 * Make-lang.in (m2_OBJS): Add m2/gm2-gcc/rtegraph.o and
4496 m2/gm2-compiler-boot/m2flex.o.
4497 (c-family/m2pp.o): Remove.
4498 * Make-maintainer.in (c-family/m2pp.o): Add.
4500 2023-07-19 Gaius Mulley <gaiusmod2@gmail.com>
4502 * gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed
4503 unnecessary in error message. Use vartok for location.
4504 (BuildOddFunction): Use optok for location.
4505 (BuildAbsFunction): Use vartok for location. Bugfix set vartok.
4506 (BuildCapFunction): Use optok for location.
4507 (BuildOrdFunction): Use optok for location and correct format
4509 (BuildShiftFunction): Use vartok for location.
4510 (BuildRotateFunction): Use vartok for location.
4511 (BuildTruncFunction): Use vartok for location.
4512 (BuildFloatFunction): Use vartok for location.
4513 (BuildReFunction): Use vartok for location.
4514 (BuildImFunction): Use vartok for location.
4515 * gm2-compiler/M2SymInit.mod (trashParam): Remove commented code.
4517 2023-07-19 Gaius Mulley <gaiusmod2@gmail.com>
4519 * gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash
4520 parameter value to NIL if DEALLOCATE is detected.
4521 * gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass
4522 tok to SetVarInitialized. Pass tok to GetVarComponentInitialized.
4523 (ComponentFindVar): Add tok parameter. Check aliased pointer
4524 against Nil and generate warning if necessary.
4525 (deRefComponent): Add tok and sym parameters and pass them to
4527 (SetVarComponentInitialized): Add tok parameter. Pass tok to
4528 ComponentFindVar. Pass tok and sym to deRefComponent.
4529 (GetVarComponentInitialized): Add tok parameter. Pass tok to
4530 ComponentFindVar. Pass tok to deRefComponent.
4531 (SetVarInitialized): Add tok parameter. Pass tok to
4532 SetVarComponentInitialized.
4533 (doGetVarInitialized): Add tok parameter. Pass tok to
4534 GetVarComponentInitialized.
4535 (CheckXIndr): Pass lhs and lhstok to getContent.
4536 (CheckIndrX): Pass rhs and rhstok to getContent.
4537 (CheckBecomes): Pass destok to ComponentFindVar. Pass des and
4538 destok to deRefComponent.
4539 (CheckAddr): Pass contenttok to GetVarInitialized. Pass ptrtok
4540 to SetVarInitialized.
4541 (CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for
4542 op1 cases and op3tok for op3 cases.
4543 (trashParam): Get operand tokens. Pass op3tok to
4544 SetVarInitialized. Pass op3 and op3tok to getContent.
4545 Alias ptr to NIL if procedure is DEALLOCATE. Pass op3tok to
4547 (IsDeallocate): New procedure function.
4548 (DetectTrash): Use IsDeallocate.
4549 (SetupLAlias): Allow exp to be Nil.
4550 (getContent): Generate warning message if ptr is Nil.
4552 2023-07-18 Gaius Mulley <gaiusmod2@gmail.com>
4554 * Make-lang.in: Minor formatting change.
4555 * gm2-compiler/M2GCCDeclare.mod
4556 (DeclareUnboundedProcedureParameters): Rename local variables.
4557 (WalkUnboundedProcedureParameters): Rename local variables.
4558 (DoVariableDeclaration): Avoid declaration of a variable if
4559 it is on the heap (used by static analysis only).
4560 * gm2-compiler/M2GenGCC.mod: Formatting.
4561 * gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function.
4562 * gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function.
4563 (QuadFrame): Add Trash field.
4564 (BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create
4565 a heap variable for parameter 1 saving it as the trashed variable
4566 for static analysis.
4567 (GenQuadOTrash): New procedure.
4568 (DisplayQuadRange): Bugfix. Write the scope number.
4569 * gm2-compiler/M2SymInit.mod: Rewritten to separate LValue
4570 equivalence from LValue to RValue pairings. Comprehensive
4571 detection of variant record implemented. Allow dereferencing
4572 of pointers through LValue/RValue chains.
4573 * gm2-compiler/SymbolTable.def (PutVarHeap): New procedure.
4574 (IsVarHeap): New procedure function.
4575 (ForeachParamSymDo): New procedure.
4576 * gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure.
4577 (IsVarHeap): New procedure function.
4578 (ForeachParamSymDo): New procedure.
4579 (MakeVariableForParam): Reformatted.
4580 (CheckForUnknownInModule): Reformatted.
4581 (SymVar): Add field Heap.
4582 (MakeVar): Assign Heap to FALSE.
4584 2023-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4586 * Make-lang.in (m2/boot-bin/mklink$(exeext)): Add $(LDFLAGS).
4588 2023-07-11 Gaius Mulley <gaiusmod2@gmail.com>
4590 * gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New
4592 * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New
4594 (InitBasicBlocksFromRange): New parameter ScopeSym. Call
4595 ConvertQuads2BasicBlock with ScopeSym.
4596 (DisplayBasicBlocks): Uncomment.
4597 * gm2-compiler/M2Code.mod: Replace VariableAnalysis with
4598 ScopeBlockVariableAnalysis.
4599 (InitialDeclareAndOptiomize): Add parameter scope.
4600 (SecondDeclareAndOptimize): Add parameter scope.
4601 * gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope
4602 parameter to DeclareTypesConstantsProceduresInRange.
4603 (DeclareTypesConstantsProceduresInRange): New parameter scope.
4604 Pass scope to DisplayQuadRange. Reformatted.
4605 * gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter
4607 * gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter
4609 * gm2-compiler/M2Optimize.mod (KnownReachable): New parameter
4611 * gm2-compiler/M2Options.def (SetUninitVariableChecking): Add
4613 * gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add
4614 arg parameter and set boolean UninitVariableChecking and
4615 UninitVariableConditionalChecking.
4616 (UninitVariableConditionalChecking): New boolean set to FALSE.
4617 * gm2-compiler/M2Quads.def (IsGoto): New procedure function.
4618 (DisplayQuadRange): Add scope parameter.
4619 (LoopAnalysis): Add scope parameter.
4620 * gm2-compiler/M2Quads.mod: Import PutVarArrayRef.
4621 (IsGoto): New procedure function.
4622 (LoopAnalysis): Add scope parameter and use MetaErrorT1 instead
4624 (BuildStaticArray): Call PutVarArrayRef.
4625 (BuildDynamicArray): Call PutVarArrayRef.
4626 (DisplayQuadRange): Add scope parameter.
4627 (GetM2OperatorDesc): Add relational condition cases.
4628 * gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter.
4629 * gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to
4631 (ForeachScopeBlockDo): Pass scopeSym to p.
4632 * gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ...
4633 (ScopeBlockVariableAnalysis): ... this.
4634 * gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add
4636 (bbEntry): New pointer to record.
4637 (bbArray): New array.
4638 (bbFreeList): New variable.
4639 (errorList): New list.
4640 (IssueConditional): New procedure.
4641 (GenerateNoteFlow): New procedure.
4642 (IssueWarning): New procedure.
4643 (IsUniqueWarning): New procedure.
4644 (CheckDeferredRecordAccess): Re-implement.
4645 (CheckBinary): Add warning and lst parameters.
4646 (CheckUnary): Add warning and lst parameters.
4647 (CheckXIndr): Add warning and lst parameters.
4648 (CheckIndrX): Add warning and lst parameters.
4649 (CheckBecomes): Add warning and lst parameters.
4650 (CheckComparison): Add warning and lst parameters.
4651 (CheckReadBeforeInitQuad): Add warning and lst parameters to all
4652 Check procedures. Add all case quadruple clauses.
4653 (FilterCheckReadBeforeInitQuad): Add warning and lst parameters.
4654 (CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters.
4655 (bbArrayKill): New procedure.
4656 (DumpBBEntry): New procedure.
4657 (DumpBBArray): New procedure.
4658 (DumpBBSequence): New procedure.
4659 (TestBBSequence): New procedure.
4660 (CreateBBPermultations): New procedure.
4661 (ScopeBlockVariableAnalysis): New procedure.
4662 (GetOp3): New procedure.
4663 (GenerateCFG): New procedure.
4664 (NewEntry): New procedure.
4665 (AppendEntry): New procedure.
4666 (init): Initialize bbFreeList and errorList.
4667 * gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure.
4668 (IsVarArrayRef): New procedure function.
4669 * gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field.
4670 (MakeVar): Set ArrayRef to FALSE.
4671 (PutVarArrayRef): New procedure.
4672 (IsVarArrayRef): New procedure function.
4673 * gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype.
4674 (init_PerCompilationInit): Add call to _M2_M2SymInit_init.
4675 * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
4677 * gm2-lang.cc (gm2_langhook_handle_option): Add new case
4678 OPT_Wuninit_variable_checking_.
4679 * lang.opt: Wuninit-variable-checking= new entry.
4681 2023-07-03 Gaius Mulley <gaiusmod2@gmail.com>
4684 * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def.
4685 (GM2-COMP-BOOT-MODS): Add M2SymInit.mod.
4686 * gm2-compiler/M2BasicBlock.mod: Formatting changes.
4687 * gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from
4688 M2Quads. Import VariableAnalysis from M2SymInit.mod.
4689 * gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
4690 Add debugging print for a component.
4691 (TypeConstFullyDeclared): Call RememberType for every type.
4692 * gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to
4694 (CodeBecomes): Add parameter to GetQuadOtok.
4695 (CodeXIndr): Add parameter to GetQuadOtok.
4696 * gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and
4697 preserve operand token positions when reducing the branch
4699 (ReduceGoto): Reformat.
4700 (FoldMultipleGoto): Reformat.
4701 (KnownReachable): Reformat.
4702 * gm2-compiler/M2Options.def (UninitVariableChecking): New
4703 variable declared and exported.
4704 (SetUninitVariableChecking): New procedure.
4705 * gm2-compiler/M2Options.mod (SetWall): Set
4706 UninitVariableChecking.
4707 (SetUninitVariableChecking): New procedure.
4708 * gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared.
4709 (VariableAnalysis): Removed.
4710 * gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure.
4711 (doVal): Reformatted.
4712 (MarkAsWrite): Reformatted.
4713 (MarkArrayAsWritten): Reformatted.
4714 (doIndrX): Use PutQuadOtok.
4715 (MakeRightValue): Use GenQuadOtok.
4716 (MakeLeftValue): Use GenQuadOtok.
4717 (CheckReadBeforeInitialized): Remove.
4718 (IsNeverAltered): Reformat.
4719 (DebugLocation): New procedure.
4720 (BuildDesignatorPointer): Use GenQuadO to preserve operand token
4722 (BuildRelOp): Use GenQuadOtok ditto.
4723 * gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure.
4724 (VarInitState): New procedure.
4725 (PutVarInitialized): New procedure.
4726 (PutVarFieldInitialized): New procedure function.
4727 (GetVarFieldInitialized): New procedure function.
4728 (PrintInitialized): New procedure.
4729 * gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure.
4730 (VarInitState): New procedure.
4731 (PutVarInitialized): New procedure.
4732 (PutVarFieldInitialized): New procedure function.
4733 (GetVarFieldInitialized): New procedure function.
4734 (PrintInitialized): New procedure.
4735 (LRInitDesc): New type.
4736 (SymVar): InitState new field.
4737 (MakeVar): Initialize InitState.
4738 * gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
4739 New function declaration.
4740 * gm2-lang.cc (gm2_langhook_handle_option): Detect
4741 OPT_Wuninit_variable_checking and call SetUninitVariableChecking.
4742 * lang.opt: Add Wuninit-variable-checking.
4743 * gm2-compiler/M2SymInit.def: New file.
4744 * gm2-compiler/M2SymInit.mod: New file.
4746 2023-06-30 Iain Sandoe <iain@sandoe.co.uk>
4749 * gm2-libs/RTint.mod: Do not use NIL timeout setting on select,
4750 test failures sequentially, finishing on the first success.
4752 2023-06-18 Gaius Mulley <gaiusmod2@gmail.com>
4755 * Make-lang.in (m2_OBJS): Assign $(GM2_C_OBJS).
4756 (GM2_C_OBJS): Remove m2/stor-layout.o.
4757 (m2/stor-layout.o): Remove rule.
4758 * gm2-gcc/gcc-consolidation.h (rtl.h): Remove include.
4759 (df.h): Remove include.
4760 (except.h): Remove include.
4762 2023-06-15 Marek Polacek <polacek@redhat.com>
4764 * Make-lang.in: New var, GM2_PICFLAGS. Use it.
4766 2023-06-13 Gaius Mulley <gaiusmod2@gmail.com>
4768 * Make-lang.in (check-format-error): New rule.
4769 * gm2-compiler/M2MetaError.mod (op): Add calls InternalError if
4770 digits are detected.
4771 * gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format
4773 (BuildLengthFunction): Bugfix to format specifiers.
4774 (BuildOddFunction): Bugfix to format specifiers.
4775 (BuildAbsFunction): Bugfix to format specifiers.
4776 (BuildCapFunction): Bugfix to format specifiers.
4777 (BuildChrFunction): Bugfix to format specifiers.
4778 (BuildOrdFunction): Bugfix to format specifiers.
4779 (BuildMakeAdrFunction): Bugfix to format specifiers.
4780 (BuildSizeFunction): Bugfix to format specifiers.
4781 (BuildBitSizeFunction): Bugfix to format specifiers.
4782 * tools-src/checkmeta.py: New file.
4784 2023-06-12 Gaius Mulley <gaiusmod2@gmail.com>
4787 * gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort
4789 (BuildValFunction): Replace abort format specifier.
4790 (BuildCastFunction): Replace abort format specifier.
4791 (BuildMinFunction): Replace abort format specifier.
4792 (BuildMaxFunction): Replace abort format specifier.
4793 (BuildTruncFunction): Replace abort format specifier.
4794 * gm2-compiler/P3Build.bnf (Pass1): Remove.
4797 (Expect): Add Pass1.
4798 (AsmStatement): Remove Pass3.
4799 (AsmOperands): Remove Pass3.
4800 (AsmOperandSpec): Remove Pass3.
4801 (AsmInputElement): Remove Pass3.
4802 (AsmOutputElement): Remove Pass3.
4803 (AsmTrashList): Remove Pass3.
4805 2023-06-12 Gaius Mulley <gaiusmod2@gmail.com>
4808 * gm2-compiler/M2Quads.def (BuildAsmElement): Remove
4810 (BuildAsmTrash): New procedure.
4811 * gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure.
4812 (BuildAsmElement): Remove trash parameter.
4813 * gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite.
4815 2023-06-08 Gaius Mulley <gaiusmod2@gmail.com>
4818 * gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove
4819 tokenno parameter. Use object tok instead of tokenno.
4820 (BuildTrashTreeFromInterface): Use object tok instead of
4822 (CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface.
4823 * gm2-compiler/M2Quads.def (BuildAsmElement): Exported and
4825 * gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted.
4826 (BuildInline): Reformatted.
4827 (BuildLineNo): Reformatted.
4828 (UseLineNote): Reformatted.
4829 (BuildAsmElement): New procedure.
4830 * gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use
4831 ConstExpression instead of string.
4832 (AsmElement): Use ConstExpression instead of string.
4833 (TrashList): Use ConstExpression instead of string.
4834 * gm2-compiler/P1Build.bnf (AsmOperands): Use
4835 ConstExpression instead of string.
4836 (AsmElement): Use ConstExpression instead of string.
4837 (TrashList): Use ConstExpression instead of string.
4838 * gm2-compiler/P2Build.bnf (AsmOperands): Use
4839 ConstExpression instead of string.
4840 (AsmElement): Use ConstExpression instead of string.
4841 (TrashList): Use ConstExpression instead of string.
4842 * gm2-compiler/P3Build.bnf (AsmOperands): Rewrite.
4843 (AsmOperandSpec): Rewrite.
4844 (AsmOutputList): New rule.
4845 (AsmInputList): New rule.
4846 (TrashList): Rewrite.
4847 * gm2-compiler/PCBuild.bnf (AsmOperands): Use
4848 ConstExpression instead of string.
4849 (AsmElement): Use ConstExpression instead of string.
4850 (TrashList): Use ConstExpression instead of string.
4851 * gm2-compiler/PHBuild.bnf (AsmOperands): Use
4852 ConstExpression instead of string.
4853 (AsmElement): Use ConstExpression instead of string.
4854 (TrashList): Use ConstExpression instead of string.
4855 * gm2-compiler/SymbolTable.def (PutRegInterface):
4857 (GetRegInterface): Rewrite interface.
4858 * gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure.
4859 (PutFirstUsed): New procedure.
4860 (PutRegInterface): Rewrite.
4861 (GetRegInterface): Rewrite.
4863 2023-06-07 Jakub Jelinek <jakub@redhat.com>
4865 * Make-lang.in: Build $(generated_files) before building
4868 2023-06-07 Gaius Mulley <gaiusmod2@gmail.com>
4871 * gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted.
4872 (ForeachNodeDo): Reformatted.
4873 * gm2-compiler/SymbolTable.mod (AddListify): Join list
4874 with "," or "and" if more than one word is in the list.
4875 * m2.flex: Remove -1 from atoi(yytext) line number.
4877 2023-06-03 Gaius Mulley <gaiusmod2@gmail.com>
4880 * gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import.
4881 (CheckFormalParameterSection): Call PutDeclared for the shadow
4882 variable associated with the parameter.
4884 2023-05-24 Gaius Mulley <gaiusmod2@gmail.com>
4887 * Make-maintainer.in: Change header to include emacs file mode.
4888 * gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether
4889 operand is a constant string and is nul terminated then return one.
4890 * gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return
4891 TRUE. Static analysis missing return path fix.
4892 * gm2-libs/IO.mod (Init): Rewrite to help static analysis.
4893 * target-independent/m2/gm2-libs.texi: Rebuild.
4895 2023-05-19 Gaius Mulley <gaiusmod2@gmail.com>
4898 * gm2-libs-iso/Strings.mod (Delete): Re-implement.
4900 2023-05-18 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
4902 * gm2-gcc/m2builtins.cc (doradix): Use _P defines from tree.h.
4904 (doexponentmin): Ditto.
4905 (doexponentmax): Ditto.
4908 (dogUnderflow): Ditto.
4909 * gm2-gcc/m2convert.cc (unsafe_conversion_p): Ditto.
4910 * gm2-gcc/m2expr.cc (m2expr_build_unary_op_check): Ditto.
4911 (m2expr_build_binary_op_check): Ditto.
4912 * gm2-gcc/m2tree.cc (m2tree_is_var): Ditto.
4913 * gm2-gcc/m2treelib.cc (build_modify_expr): Ditto.
4914 * gm2-gcc/m2type.cc (gm2_finish_decl): Ditto.
4915 * m2pp.cc (hextree): Ditto.
4916 (m2pp_call_expr): Ditto.
4918 2023-05-17 Gaius Mulley <gaiusmod2@gmail.com>
4920 * gm2-libs-iso/LongWholeIO.mod (WriteInt): Only request a
4921 sign if the value is < 0.
4922 * gm2-libs-iso/ShortWholeIO.mod (WriteInt): Only request a
4923 sign if the value is < 0.
4924 * gm2-libs-iso/WholeIO.mod (WriteInt): Only request a sign
4925 if the value is < 0.
4926 * gm2-libs-iso/WholeStr.mod (WriteInt): Only request a sign
4927 if the value is < 0.
4929 2023-05-16 Gaius Mulley <gaiusmod2@gmail.com>
4932 * gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
4933 * gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
4934 (ReadCard): Call SkipSpaces.
4935 * gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
4936 * gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
4937 (ReadCard): Call SkipSpaces.
4938 * gm2-libs-iso/TextIO.mod: Import SkipSpaces.
4939 * gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
4940 (ReadCard): Call SkipSpaces.
4941 * gm2-libs-iso/TextUtil.def: New file.
4942 * gm2-libs-iso/TextUtil.mod: New file.
4944 2023-05-16 Gaius Mulley <gaiusmod2@gmail.com>
4947 * gm2-libs-coroutines/TimerHandler.mod (EnableLED): New constant.
4948 (Timer): Test EnableLED before switching on the scroll LED.
4950 2023-05-12 Gaius Mulley <gaiusmod2@gmail.com>
4953 * gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend
4954 used to select FIO.OpenForRandom.
4955 (OpenRead): Pass extra parameter to newCid.
4956 (OpenWrite): Pass extra parameter to newCid.
4957 (OpenAppend): Pass extra parameter to newCid.
4959 2023-05-11 Gaius Mulley <gaiusmod2@gmail.com>
4962 * gm2-compiler/M2ALU.mod (ConvertConstToType): Use
4963 PrepareCopyString in place of DoCopyString.
4964 * gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
4965 (PrepareCopyString): ... this.
4966 * gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
4967 with a single parameter. Call CodeXIndr with a single parameter.
4968 (CodeReturnValue): Remove parameters and replace with a single
4969 quadno. Reimplement using PrepareCopyString. Issue error
4970 if the string exceeds designator space.
4971 (DoCopyString): Reimplement and rename to ...
4972 (PrepareCopyString): ... this.
4973 (CodeXIndr): Remove parameters and replace with a single
4974 quadno. Reimplement using PrepareCopyString. Issue error
4975 if the string exceeds designator space.
4976 (CodeBecomes): Remove parameters and replace with a single
4977 quadno. Reimplement using PrepareCopyString. Issue error
4978 if the string exceeds designator space.
4979 * gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
4981 * gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
4982 tokreturn. Rename tokno to tokcombined.
4984 2023-05-09 Gaius Mulley <gaiusmod2@gmail.com>
4987 * gm2-libs-iso/RTgen.mod (doLook): Remove old.
4988 Remove re-assignment of result.
4989 * gm2-libs-iso/TextIO.mod (CanRead): Rename into ...
4990 (CharAvailable): ... this.
4991 (DumpState): New procedure.
4992 (SetResult): Rename as SetNul.
4993 (WasGoodChar): Rename into ...
4994 (EofOrEoln): ... this.
4995 (SkipLine): Skip over the newline.
4996 (ReadString): Flip THEN ELSE statements after testing for
4998 (ReadRestLine): Flip THEN ELSE statements after testing for
5001 2023-05-04 Gaius Mulley <gaiusmod2@gmail.com>
5004 * gm2-compiler/M2GenGCC.mod (CodeStatement): Detect
5005 ArithAddOp and call CodeAddChecked.
5006 (ResolveConstantExpressions): Detect ArithAddOp and call
5008 (FoldArithAdd): New procedure.
5009 (FoldAdd): Refactor to use FoldArithAdd.
5010 * gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp.
5011 * gm2-compiler/M2Quads.mod: Remove commented imports.
5012 (QuadFrame): Changed comments to use GNU coding standards.
5013 (ArithPlusTok): New global variable.
5014 (BuildForToByDo): Use ArithPlusTok instead of PlusTok.
5015 (MakeOp): Detect ArithPlusTok and return ArithAddOp.
5016 (WriteQuad): Add ArithAddOp clause.
5017 (WriteOperator): Add ArithAddOp clause.
5018 (Init): Initialize ArithPlusTok.
5020 2023-05-04 Gaius Mulley <gaiusmod2@gmail.com>
5023 * Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def.
5024 (BUILD-PGE-O): Remove GM2LINK.o.
5025 * Make-maintainer.in (PPG-DEFS): New define.
5026 (PPG-LIB-DEFS): Remove M2LINK.def.
5027 (BUILD-BOOT-PPG-H): Add PPGDEF .h files.
5028 (m2/ppg$(exeext)): Remove M2LINK.o
5029 (PGE-DEPS): New define.
5030 (m2/pg$(exeext)): Remove M2LINK.o.
5031 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot.
5032 (m2/pge$(exeext)): Remove M2LINK.o.
5033 (pge-maintainer): Re-implement.
5034 (pge-libs-push): Re-implement.
5035 (m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o.
5036 * gm2-libs/DynamicStrings.mod (writeAddress): Re-implement
5038 * gm2-libs/M2Dependent.mod: Remove commented out imports.
5039 * mc-boot/GDynamicStrings.cc: Rebuild.
5040 * mc-boot/GFIO.cc: Rebuild.
5041 * mc-boot/GFormatStrings.cc: Rebuild.
5042 * mc-boot/GM2Dependent.cc: Rebuild.
5043 * mc-boot/GM2Dependent.h: Rebuild.
5044 * mc-boot/GM2RTS.cc: Rebuild.
5045 * mc-boot/GM2RTS.h: Rebuild.
5046 * mc-boot/GRTExceptions.cc: Rebuild.
5047 * mc-boot/GRTint.cc: Rebuild.
5048 * mc-boot/GSFIO.cc: Rebuild.
5049 * mc-boot/GStringConvert.cc: Rebuild.
5050 * mc-boot/Gdecl.cc: Rebuild.
5051 * pge-boot/GASCII.cc: Rebuild.
5052 * pge-boot/GASCII.h: Rebuild.
5053 * pge-boot/GArgs.cc: Rebuild.
5054 * pge-boot/GArgs.h: Rebuild.
5055 * pge-boot/GAssertion.cc: Rebuild.
5056 * pge-boot/GAssertion.h: Rebuild.
5057 * pge-boot/GBreak.h: Rebuild.
5058 * pge-boot/GCmdArgs.h: Rebuild.
5059 * pge-boot/GDebug.cc: Rebuild.
5060 * pge-boot/GDebug.h: Rebuild.
5061 * pge-boot/GDynamicStrings.cc: Rebuild.
5062 * pge-boot/GDynamicStrings.h: Rebuild.
5063 * pge-boot/GEnvironment.h: Rebuild.
5064 * pge-boot/GFIO.cc: Rebuild.
5065 * pge-boot/GFIO.h: Rebuild.
5066 * pge-boot/GFormatStrings.h:: Rebuild.
5067 * pge-boot/GFpuIO.h:: Rebuild.
5068 * pge-boot/GIO.cc: Rebuild.
5069 * pge-boot/GIO.h: Rebuild.
5070 * pge-boot/GIndexing.cc: Rebuild.
5071 * pge-boot/GIndexing.h: Rebuild.
5072 * pge-boot/GLists.cc: Rebuild.
5073 * pge-boot/GLists.h: Rebuild.
5074 * pge-boot/GM2Dependent.cc: Rebuild.
5075 * pge-boot/GM2Dependent.h: Rebuild.
5076 * pge-boot/GM2EXCEPTION.cc: Rebuild.
5077 * pge-boot/GM2EXCEPTION.h: Rebuild.
5078 * pge-boot/GM2RTS.cc: Rebuild.
5079 * pge-boot/GM2RTS.h: Rebuild.
5080 * pge-boot/GNameKey.cc: Rebuild.
5081 * pge-boot/GNameKey.h: Rebuild.
5082 * pge-boot/GNumberIO.cc: Rebuild.
5083 * pge-boot/GNumberIO.h: Rebuild.
5084 * pge-boot/GOutput.cc: Rebuild.
5085 * pge-boot/GOutput.h: Rebuild.
5086 * pge-boot/GPushBackInput.cc: Rebuild.
5087 * pge-boot/GPushBackInput.h: Rebuild.
5088 * pge-boot/GRTExceptions.cc: Rebuild.
5089 * pge-boot/GRTExceptions.h: Rebuild.
5090 * pge-boot/GSArgs.h: Rebuild.
5091 * pge-boot/GSEnvironment.h: Rebuild.
5092 * pge-boot/GSFIO.cc: Rebuild.
5093 * pge-boot/GSFIO.h: Rebuild.
5094 * pge-boot/GSYSTEM.h: Rebuild.
5095 * pge-boot/GScan.h: Rebuild.
5096 * pge-boot/GStdIO.cc: Rebuild.
5097 * pge-boot/GStdIO.h: Rebuild.
5098 * pge-boot/GStorage.cc: Rebuild.
5099 * pge-boot/GStorage.h: Rebuild.
5100 * pge-boot/GStrCase.cc: Rebuild.
5101 * pge-boot/GStrCase.h: Rebuild.
5102 * pge-boot/GStrIO.cc: Rebuild.
5103 * pge-boot/GStrIO.h: Rebuild.
5104 * pge-boot/GStrLib.cc: Rebuild.
5105 * pge-boot/GStrLib.h: Rebuild.
5106 * pge-boot/GStringConvert.h: Rebuild.
5107 * pge-boot/GSymbolKey.cc: Rebuild.
5108 * pge-boot/GSymbolKey.h: Rebuild.
5109 * pge-boot/GSysExceptions.h: Rebuild.
5110 * pge-boot/GSysStorage.cc: Rebuild.
5111 * pge-boot/GSysStorage.h: Rebuild.
5112 * pge-boot/GTimeString.h: Rebuild.
5113 * pge-boot/GUnixArgs.h: Rebuild.
5114 * pge-boot/Gbnflex.cc: Rebuild.
5115 * pge-boot/Gbnflex.h: Rebuild.
5116 * pge-boot/Gdtoa.h: Rebuild.
5117 * pge-boot/Gerrno.h: Rebuild.
5118 * pge-boot/Gldtoa.h: Rebuild.
5119 * pge-boot/Glibc.h: Rebuild.
5120 * pge-boot/Glibm.h: Rebuild.
5121 * pge-boot/Gpge.cc: Rebuild.
5122 * pge-boot/Gtermios.h: Rebuild.
5123 * pge-boot/Gwrapc.h: Rebuild.
5124 * mc-boot/GM2LINK.h: Removed.
5125 * pge-boot/GM2LINK.cc: Removed.
5126 * pge-boot/GM2LINK.h: Removed.
5128 2023-04-30 Gaius Mulley <gaiusmod2@gmail.com>
5130 * gm2-compiler/SymbolTable.mod (ConstLitPoolEntry): New
5132 (ConstLitSym): New field RangeError.
5133 (ConstLitPoolTree): New SymbolTree representing name to
5135 (ConstLitArray): New dynamic array containing pointers
5136 to a ConstLitPoolEntry.
5137 (CreateConstLit): New procedure function.
5138 (LookupConstLitPoolEntry): New procedure function.
5139 (AddConstLitPoolEntry): New procedure function.
5140 (MakeConstLit): Re-implemented to check the constant lit
5141 pool before calling CreateConstLit.
5142 * m2.flex: Add ability to decode binary constant literals.
5144 2023-04-26 Gaius Mulley <gaiusmod2@gmail.com>
5147 * gm2-compiler/M2ALU.mod (Less): Reformatted.
5148 * gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove
5150 (ConstantStringExceedsZType): Import.
5151 (GetConstLitType): Re-implement using ConstantStringExceedsZType.
5152 * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove.
5153 (m2decl_ConstantStringExceedsZType): New function.
5154 (m2decl_BuildConstLiteralNumber): Re-implement.
5155 * gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove.
5156 (ConstantStringExceedsZType): New function.
5157 * gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove.
5158 (m2decl_ConstantStringExceedsZType): New function.
5159 * gm2-gcc/m2expr.cc (append_digit): Remove.
5160 (m2expr_interpret_integer): Remove.
5161 (append_m2_digit): Remove.
5162 (m2expr_StrToWideInt): New function.
5163 (m2expr_interpret_m2_integer): Remove.
5164 * gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function.
5165 * gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function.
5166 * gm2-gcc/m2type.cc (build_m2_word64_type_node): New function.
5167 (build_m2_ztype_node): New function.
5168 (m2type_InitBaseTypes): Call build_m2_ztype_node.
5169 * gm2-lang.cc (gm2_type_for_size): Re-write using early returns.
5171 2023-04-21 Arsen Arsenović <arsen@aarsen.me>
5173 * Make-lang.in: Remove references to $(P).
5174 * Make-maintainer.in: Ditto.
5176 2023-04-21 Gaius Mulley <gaiusmod2@gmail.com>
5179 * gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE
5180 (t) == CONSTRUCTOR) to expression.
5182 2023-04-13 Gaius Mulley <gaiusmod2@gmail.com>
5185 * lang.opt: Fix typo "maybe" to "may be".
5187 2023-04-13 Gaius Mulley <gaiusmod2@gmail.com>
5189 * gm2-compiler/M2ALU.def (PopChar): New procedure function.
5190 * gm2-compiler/M2ALU.mod (PopChar): New procedure function.
5191 * gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect
5192 a single constant char and build a C string.
5193 * gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure
5195 (GetStr): New procedure function.
5196 (FoldAdd): Use IsConstStr.
5197 * gm2-compiler/M2Quads.mod: Formatting changes.
5198 * gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function.
5199 * gm2-gcc/m2expr.def (GetCstInteger): New procedure function.
5200 * gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype.
5202 2023-04-05 Gaius Mulley <gaiusmod2@gmail.com>
5205 * gm2-compiler/M2Base.def (Unbounded): Remove.
5206 * gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
5208 * gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
5209 error format string.
5210 (BuildExceptProcedure): Correct error format string.
5211 (BuildAdrFunction): Call PutWriteQuad when taking the
5212 address of a variable.
5213 * gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
5215 * gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
5216 * gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
5217 (PopAllocationExemption): Remove f.
5218 * gm2-libs/FIO.mod (BufferedWrite): Remove result.
5219 * gm2-libs/FormatStrings.mod (Copy): Remove endpos and
5221 (HandlePercent): Remove result.
5222 * gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
5223 * gm2-libs/M2Dependent.mod (CreateModule): Remove p0
5225 (DumpModuleData): Remove mptr.
5226 (ConstructModules): Remove nulp.
5227 * gm2-libs/RTExceptions.mod (PopHandler): Remove i.
5228 * gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
5230 * gm2-libs/SFIO.mod (ReadS): Remove c.
5231 * gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
5234 2023-04-03 Gaius Mulley <gaiusmod2@gmail.com>
5237 * gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration):
5238 Remove second parameter module. Adjust all callers to
5239 remove the second parameter.
5240 * gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove.
5241 (InStopSet): Remove.
5242 (PeepToken): Remove.
5243 (PushQualident): Remove.
5244 (SimpleDes): Remove.
5245 (ActualParameters): Remove.
5247 2023-04-02 Gaius Mulley <gaiusmod2@gmail.com>
5250 * Make-lang.in (GM2_O): Set to -O0.
5251 (GM2_LIBS): Remove target libraries and replace with build libs.
5252 (BUILD-LIBS): New declaration.
5253 (m2/gm2-libs/libgm2.a): New rule.
5254 (m2/gm2-libs/%.o): New rule.
5255 (m2/gm2-libs/choosetemp.o): New rule.
5256 * gm2-compiler/M2ColorString.mod (append): Use ADR rather than
5257 implicit conversion.
5258 * gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when
5259 a source file is not found. Improve comments and formatting.
5260 * gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove
5261 ansi-decl.h. Add getopt.h.
5262 (cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_.
5263 * gm2spec.cc (lang_specific_driver): Do not skip -fmod=.
5266 2023-03-29 Gaius Mulley <gaiusmod2@gmail.com>
5270 * gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by
5271 ensuring the extension contains the ".".
5272 (CalculateStemName): Re-formatted.
5273 (ExtractExtension): Re-formatted.
5274 (ExtractModule): Re-formatted.
5275 * gm2-compiler/M2Options.def (setdefextension): Add block comment.
5276 (setmodextension): Add block comment. Re-formatted.
5277 * gm2-compiler/M2Options.mod (setdefextension): Add block comment.
5278 (setmodextension): Add block comment. Re-formatted.
5279 * gm2-compiler/M2Search.mod (FindSourceDefFile): Use
5281 (DefaultDefExt): New constant.
5282 (DefaultModExt): New constant.
5283 (FindSourceModFile): Use DefaultModExt.
5284 * gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct
5286 * gm2spec.cc (M2SOURCE): New constant.
5287 (LANGSPEC): New value.
5288 (MATHLIB): New value.
5289 (WITHLIBC): New value.
5290 (SKIPOPT): New value.
5291 (lang_specific_driver): Replace seen_module_extension bool with
5292 module_extension char *. Detect -fmod= and remember extension.
5293 Use the extension to detect modula-2 source and mark it as such.
5295 2023-03-23 Gaius Mulley <gaiusmod2@gmail.com>
5298 * gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment
5299 out ErrorString in debugging block.
5300 (BuildConstructorStart): Replace Assert with a call to
5301 MetaErrorT3. Import MetaErrorT3.
5302 * gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename
5304 (WalkFunctionParam): Remove test for IsEnumeration when
5305 resolving MIN or MAX parameters.
5306 * gm2-compiler/PHBuild.bnf (BlockAssert): New procedure.
5307 (ErrorArrayat): New procedure.
5308 (Expect): Renamed parameter t to tok.
5309 (PushQualident): New rule.
5310 (ConstSetOrQualidentOrFunction): Force AutoOn.
5311 (TypeDeclaration): Add debugging assert.
5312 (SimpleType): Add debugging assert.
5313 (DefaultRecordAttributes): New rule (and bugfix).
5314 (FieldPragmaExpression): New rule (and bugfix).
5315 (PragmaConstExpression): New rule (and bugfix).
5316 (SetOrDesignatorOrFunction): Add debugging assert.
5317 (Block): Add debugging assert.
5318 * gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int
5320 * gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool.
5321 (m2expr_GetBooleanTrue): Remove.
5322 (m2expr_GetBooleanFalse): Remove.
5323 * gm2-gcc/m2options.h (M2Options_SetStatistics): Replace
5326 2023-03-22 Gaius Mulley <gaiusmod2@gmail.com>
5329 * Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C
5331 * gm2spec.cc (add_m2_I_path): Indentation.
5332 (lang_specific_driver): New variable seen_pathname.
5333 Detect -fm2-pathname. If not seen then push_back_Ipath (".").
5334 Change non iso library path to "m2cor,m2log,m2pim,m2iso".
5336 2023-03-22 Gaius Mulley <gaiusmod2@gmail.com>
5339 * Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove
5340 m2/gm2-libs-boot/M2LINK.o.
5341 (m2/stage1/cc1gm2$(exeext)): Ditto.
5342 (GM2-LIBS-BOOT-DEFS): Remove M2LINK.def.
5343 (GM2-LIBS-DEFS): Ditto.
5344 (m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS.
5345 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
5346 (m2/mc-boot/main.o): Ditto.
5347 (mcflex.o): Add $(CFLAGS).
5348 (m2/gm2-libs-boot/M2LINK.o): Remove rule.
5349 * gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove.
5350 * gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove.
5351 (M2LinkIndex): Remove.
5352 (DoVariableDeclaration): Remove initial and call to
5354 (AddEntryM2Link): Remove.
5355 (GetEntryM2Link): Remove.
5356 (DeclareM2linkGlobals): Remove.
5357 (DetectM2LinkInitial): Remove.
5358 (InitM2LinkModule): Remove.
5359 * gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to
5360 DeclareM2linkGlobals.
5361 * gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra
5362 parameter containing runtime module override to ConstructModules.
5363 * gm2-compiler/M2Scaffold.mod: Update comment describing
5365 * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder):
5367 * gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder
5369 * gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter.
5370 * gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder
5372 * gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder
5374 * gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter.
5375 * gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder
5377 * gm2-libs/M2LINK.def: Removed.
5379 2023-03-21 Gaius Mulley <gaiusmod2@gmail.com>
5381 * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
5382 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
5383 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
5384 (m2/mc-boot/main.o): Add $(CXXFLAGS).
5386 2023-03-19 Gaius Mulley <gaiusmod2@gmail.com>
5388 * Make-maintainer.in (gm2.maintainer-clean): Remove.
5389 (gm2.maintainer-help): Add gm2.maintainer-tools,
5390 gm2.maintainer-doc. Remove gm2.maintainer-clean.
5391 Change target-independent directory to target-independent/m2.
5392 * gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__.
5393 * gm2-compiler/M2Options.def (SetAutoInit): Update comment.
5394 * gm2-compiler/M2Options.mod (SetAutoInit): Update comment.
5395 * gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len
5397 * gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to
5398 ADDRESS and add _name_high.
5399 * gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change
5401 * gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change
5403 * gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool.
5404 (m2expr_BuildIfConstInVar): Change int to bool.
5405 (m2expr_BuildIfNotConstInVar): Change int to bool.
5406 (m2expr_BuildIfVarInVar): Change int to bool.
5407 (m2expr_BuildIfNotVarInVar): Change int to bool.
5408 (m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool.
5409 * gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool.
5410 (m2expr_BuildIfVarInVar): Change int to bool.
5411 (m2expr_BuildIfNotConstInVar): Change int to bool.
5412 (m2expr_BuildIfConstInVar): Change int to bool.
5413 * gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool.
5414 (M2Options_SetNilCheck): Change int to bool.
5415 (M2Options_SetReturnCheck): Change int to bool.
5416 (M2Options_SetCaseCheck): Change int to bool.
5417 (M2Options_SetCheckAll): Change int to bool.
5418 (M2Options_SetVerboseUnbounded): Change int to bool.
5419 (M2Options_SetUnboundedByReference): Change int to bool.
5420 (M2Options_SetOptimizing): Change int to bool.
5421 (M2Options_SetQuiet): Change int to bool.
5422 (M2Options_SetCpp): Change int to bool.
5423 (M2Options_SetM2g): Change int to bool.
5424 (M2Options_SetLowerCaseKeywords): Change int to bool.
5425 (M2Options_SetVerbose): Change int to bool.
5426 * gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool.
5427 (m2treelib_get_field_no): Change int to bool.
5428 (m2treelib_get_set_value): Change int to bool.
5429 (m2treelib_get_set_address): Change int to bool.
5430 (m2treelib_get_set_address_if_var): Change int to bool.
5431 * gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool.
5432 (get_set_address): Change int to bool.
5433 (get_set_value): Change int to bool.
5434 (get_field_no): Change int to bool.
5435 (get_rvalue): Change int to bool.
5436 * gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool.
5437 (m2treelib_get_set_value): Change int to bool.
5438 (m2treelib_get_set_address): Change int to bool.
5439 (m2treelib_get_set_address_if_var): Change int to bool.
5440 * gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool.
5441 * gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool.
5442 * gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool.
5443 * gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool.
5444 (ldtoa_ldtoa): Change int to bool.
5445 * m2.flex (functionInfo): Change int to bool.
5446 (pushFunction): Change parameter from int to bool.
5447 * mc-boot/GDebug.cc (Debug_Halt): Rebuild.
5448 * mc-boot/GDebug.h (Debug_Halt): Rebuild.
5449 * mc-boot/GDynamicStrings.cc: Rebuild.
5450 * mc-boot/GDynamicStrings.h: Rebuild.
5451 * mc-boot/GFIO.cc: Rebuild.
5452 * mc-boot/GM2RTS.cc: Rebuild.
5453 * mc-boot/GM2RTS.h: Rebuild.
5454 * mc-boot/GPushBackInput.cc: Rebuild.
5455 * mc-boot/GRTExceptions.cc: Rebuild.
5456 * mc-boot/GRTint.cc: Rebuild.
5457 * mc-boot/GSysStorage.cc: Rebuild.
5458 * mc-boot/Gdecl.cc: Rebuild.
5459 * mc-boot/GsymbolKey.cc: Rebuild.
5460 * mc/symbolKey.mod: Rebuild.
5461 * target-independent/m2/Builtins.texi: Rebuild.
5462 * target-independent/m2/SYSTEM-iso.texi: Rebuild.
5463 * target-independent/m2/SYSTEM-pim.texi: Rebuild.
5464 * target-independent/m2/gm2-libs.texi: Rebuild.
5465 * tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to
5468 2023-03-17 Gaius Mulley <gaiusmod2@gmail.com>
5471 * gm2-gcc/m2expr.cc: Correct ? : order in comments.
5472 (m2expr_BuildDivM2): Improve comment.
5473 * lang.opt: Improve option descriptions.
5475 2023-03-17 Gaius Mulley <gaiusmod2@gmail.com>
5478 * gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to
5479 use %qs rather than quotes.
5481 2023-03-17 Gaius Mulley <gaiusmod2@gmail.com>
5483 * gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix):
5485 * gm2-libs/SysStorage.mod (enableTrace): Disable tracing.
5487 2023-03-16 Gaius Mulley <gaiusmod2@gmail.com>
5489 * gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters
5492 * gm2-compiler/ppg.mod (GetEpsilon): Ditto.
5493 (GetReachEnd): Ditto.
5495 (CodeCondition): Ditto.
5496 (CodeThenDo): Ditto.
5498 (RecoverCondition): Ditto.
5499 (ConditionIndent): Ditto.
5500 * gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto.
5501 * gm2-libs-coroutines/Executive.mod (Assert): Ditto.
5502 (Resume): Remove redundant comments.
5503 (Wait): Remove redundant comments.
5504 * gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters
5506 (IOTransferHandler): Ditto.
5509 * gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters
5512 (ReArmEvent): Ditto.
5513 (OnActiveQueue): Ditto.
5514 * gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto.
5516 (IOTRANSFER): Ditto.
5517 * gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters.
5518 * gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered.
5520 * gm2-libs-iso/M2RTS.mod: Ditto.
5521 * gm2-libs-iso/RTentity.mod (PutKey): Ditto.
5523 (findChildAndParent): Ditto.
5525 * gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace.
5526 Add UseMallocFree test.
5527 (DEALLOCATE): Add DebugTrace. Add UseMallocFree test.
5528 (assert): Halt parameters reordered.
5529 * gm2-libs-log/Termbase.mod (Read): Ditto.
5530 (KeyPressed): Ditto.
5533 * gm2-libs/Debug.def (Halt): Halt parameters reordered.
5534 * gm2-libs/Debug.mod (Halt): Ditto.
5535 * gm2-libs/DynamicStrings.def (PopAllocation): Improve comment.
5536 * gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment.
5537 Halt parameters reordered.
5538 * gm2-libs/M2RTS.def (Halt): Ditto.
5540 * gm2-libs/M2RTS.mod (Halt): Ditto.
5542 * gm2-libs/PushBackInput.mod (PutStr): Ditto.
5545 * gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto.
5546 * gm2-libs/RTint.mod (ReArmTimeVector): Ditto.
5547 (GetTimeVector): Ditto.
5548 (AttachVector): Ditto.
5549 (IncludeVector): Ditto.
5551 * gm2-libs/SysStorage.mod (ALLOCATE): Ditto.
5552 (DEALLOCATE): Ditto.
5553 (REALLOCATE): Ditto.
5554 * gm2-libs-coroutines/Debug.def: Removed.
5555 * gm2-libs-coroutines/Debug.mod: Removed.
5557 2023-03-16 Gaius Mulley <gaiusmod2@gmail.com>
5559 * Make-lang.in: Rename target-independent to
5560 target-independent/m2.
5561 * target-independent/readme.txt: Update.
5562 * target-independent/m2/gm2-ebnf.texi: New file.
5563 * target-independent/m2/gpl_v3_without_node.texi: New file.
5564 * target-independent/Builtins.texi: Rename ...
5565 * target-independent/m2/Builtins.texi: ... to this.
5566 * target-independent/SYSTEM-iso.texi: Rename ...
5567 * target-independent/m2/SYSTEM-iso.texi: ... to this.
5568 * target-independent/SYSTEM-pim.texi: Rename ...
5569 * target-independent/m2/SYSTEM-pim.texi: ... to this.
5570 * target-independent/gm2-libs.texi: Rename ...
5571 * target-independent/m2/gm2-libs.texi: ... to this.
5573 2023-03-15 Gaius Mulley <gaiusmod2@gmail.com>
5576 * gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
5577 * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.
5579 2023-03-14 Gaius Mulley <gaiusmod2@gmail.com>
5582 * gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int
5584 * gm2-libs-ch/termios.c (doSetUnset): Replace int for bool.
5585 * gm2-libs/Builtins.mod (isfinitef): Correct typo in return
5588 2023-03-13 Gaius Mulley <gaiusmod2@gmail.com>
5591 * gm2-compiler/M2ALU.def (PushString): New parameter issueError.
5592 * gm2-compiler/M2ALU.mod (PushString): New parameter issueError.
5593 * gm2-compiler/SymbolTable.mod (PushString): New parameter issueError.
5594 * gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass
5595 location to interpret_m2_integer.
5596 (m2decl_BuildConstLiteralNumber): New parameter issueError.
5597 * gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool.
5598 (m2expr_IsFalse): Replace int with bool.
5599 (m2expr_AreConstantsEqual): Replace int with bool.
5600 (m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at.
5601 (append_digit): Ditto.
5602 (m2expr_interpret_integer): Add location parameter.
5603 (append_m2_digit): Call m2linemap_internal_error_at.
5604 (m2expr_interpret_m2_integer): Add location parameter.
5605 (m2expr_GetSizeOf): Replace sizeof with SIZE in error message.
5606 * gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual):
5607 Replace int with bool.
5608 (m2expr_AreConstantsEqual): Ditto.
5609 (m2expr_IsFalse): Ditto.
5610 (m2expr_IsTrue): Ditto.
5611 (m2expr_interpret_integer): Add location parameter.
5612 (m2expr_interpret_m2_integer): Add location parameter.
5613 * gm2-gcc/m2linemap.cc (mformat_value): New function.
5614 (expand_format): New function.
5615 (expand_message): New function.
5616 (gm2_internal_error_at): New function.
5617 (m2linemap_internal_error_at): New function.
5618 * gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function.
5619 * gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool.
5620 (M2Options_SetPIM): Ditto.
5621 (M2Options_SetPIM2): Ditto.
5622 (M2Options_SetPIM3): Ditto.
5623 (M2Options_SetPIM4): Ditto.
5624 (M2Options_SetFloatValueCheck): Ditto.
5625 (M2Options_SetWholeValueCheck): Ditto.
5626 (M2Options_GetISO): Ditto.
5627 (M2Options_GetPIM): Ditto.
5628 (M2Options_GetPIM2): Ditto.
5629 (M2Options_GetPIM3): Ditto.
5630 (M2Options_GetPIM4): Ditto.
5631 (M2Options_GetPositiveModFloor): Ditto.
5632 (M2Options_GetFloatValueCheck): Ditto.
5633 (M2Options_GetWholeValueCheck): Ditto.
5634 (M2Options_Setc): Ditto.
5635 (M2Options_Getc): Ditto.
5636 (M2Options_SetPPOnly): Ditto.
5637 (M2Options_GetPPOnly): Ditto.
5638 (M2Options_SetUselist): Ditto.
5639 (M2Options_SetAutoInit): Ditto.
5640 (M2Options_SetPositiveModFloor): Ditto.
5641 (M2Options_SetNilCheck): Ditto.
5642 (M2Options_SetWholeDiv): Ditto.
5643 (M2Options_SetIndex): Ditto.
5644 (M2Options_SetRange): Ditto.
5645 (M2Options_SetReturnCheck): Ditto.
5646 (M2Options_SetCaseCheck): Ditto.
5647 (M2Options_SetCheckAll): Ditto.
5648 (M2Options_SetExceptions): Ditto.
5649 (M2Options_SetStyle): Ditto.
5650 (M2Options_SetPedantic): Ditto.
5651 (M2Options_SetPedanticParamNames): Ditto.
5652 (M2Options_SetPedanticCast): Ditto.
5653 (M2Options_SetExtendedOpaque): Ditto.
5654 (M2Options_SetVerboseUnbounded): Ditto.
5655 (M2Options_SetXCode): Ditto.
5656 (M2Options_SetCompilerDebugging): Ditto.
5657 (M2Options_SetQuadDebugging): Ditto.
5658 (M2Options_SetDebugTraceQuad): Ditto.
5659 (M2Options_SetDebugTraceAPI): Ditto.
5660 (M2Options_SetSources): Ditto.
5661 (M2Options_SetUnboundedByReference): Ditto.
5662 (M2Options_SetDumpSystemExports): Ditto.
5663 (M2Options_SetOptimizing): Ditto.
5664 (M2Options_SetQuiet): Ditto.
5665 (M2Options_SetCC1Quiet): Ditto.
5666 (M2Options_SetCpp): Ditto.
5667 (M2Options_SetSwig): Ditto.
5668 (M2Options_SetWholeProgram): Ditto.
5669 (M2Options_SetDebugFunctionLineNumbers): Ditto.
5670 (M2Options_SetGenerateStatementNote): Ditto.
5671 (M2Options_GetCpp): Ditto.
5672 (M2Options_GetM2g): Ditto.
5673 (M2Options_SetM2g): Ditto.
5674 (M2Options_SetLowerCaseKeywords): Ditto.
5675 (M2Options_SetVerbose): Ditto.
5676 (M2Options_SetUnusedVariableChecking): Ditto.
5677 (M2Options_SetUnusedParameterChecking): Ditto.
5678 (M2Options_SetStrictTypeChecking): Ditto.
5679 (M2Options_SetWall): Ditto.
5680 (M2Options_SetSaveTemps): Ditto.
5681 (M2Options_GetSaveTemps): Ditto.
5682 (M2Options_SetScaffoldStatic): Ditto.
5683 (M2Options_SetScaffoldDynamic): Ditto.
5684 (M2Options_SetScaffoldMain): Ditto.
5685 (M2Options_SetGenModuleList): Ditto.
5686 (M2Options_SetShared): Ditto.
5687 * gm2-libs-ch/M2LINK.c: Ditto.
5688 * gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace
5689 const char * with const void *.
5690 (M2RTS_RegisterModule): Ditto.
5691 (M2RTS_ConstructModules): Ditto.
5692 * gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter
5694 * gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter
5697 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
5700 * gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import.
5701 * gm2-gcc/gcc-consolidation.h (stdbool.h): Include.
5702 * gm2-gcc/init.h (defined): Change block start.
5703 * gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true.
5704 * gm2-gcc/m2block.h: Change int to bool.
5705 * gm2-gcc/m2builtins.cc: Ditto.
5706 * gm2-gcc/m2builtins.h: Ditto.
5707 * gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and
5709 * gm2-gcc/m2convert.h: Change int to bool.
5710 * gm2-gcc/m2decl.cc: Change int to bool.
5711 * gm2-gcc/m2decl.h: Change int to bool.
5712 * gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and
5714 * gm2-gcc/m2expr.h: Change int to bool.
5715 * gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and
5717 * gm2-gcc/m2statement.h: Change int to bool.
5718 * gm2-gcc/m2top.cc: Change int to bool.
5719 * gm2-gcc/m2top.h: Change int to bool.
5720 * gm2-gcc/m2tree.cc: Change int to bool.
5721 * gm2-gcc/m2tree.h: Change int to bool.
5722 * gm2-gcc/m2type.cc: Change int to bool.
5723 * gm2-gcc/m2type.h: Change int to bool.
5724 * gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE.
5725 * gm2-libs/Builtins.def (isfinitef): Change return value from
5729 * gm2-libs/Builtins.mod (isfinitef): Change return value from
5733 * mc-boot/GASCII.cc: Rebuild.
5734 * mc-boot/GASCII.h: Rebuild.
5735 * mc-boot/GArgs.cc: Rebuild.
5736 * mc-boot/GArgs.h: Rebuild.
5737 * mc-boot/GAssertion.cc: Rebuild.
5738 * mc-boot/GAssertion.h: Rebuild.
5739 * mc-boot/GBreak.cc: Rebuild.
5740 * mc-boot/GBreak.h: Rebuild.
5741 * mc-boot/GCOROUTINES.h: Rebuild.
5742 * mc-boot/GCmdArgs.cc: Rebuild.
5743 * mc-boot/GCmdArgs.h: Rebuild.
5744 * mc-boot/GDebug.cc: Rebuild.
5745 * mc-boot/GDebug.h: Rebuild.
5746 * mc-boot/GDynamicStrings.cc: Rebuild.
5747 * mc-boot/GDynamicStrings.h: Rebuild.
5748 * mc-boot/GEnvironment.cc: Rebuild.
5749 * mc-boot/GEnvironment.h: Rebuild.
5750 * mc-boot/GFIO.cc: Rebuild.
5751 * mc-boot/GFIO.h: Rebuild.
5752 * mc-boot/GFormatStrings.cc: Rebuild.
5753 * mc-boot/GFormatStrings.h: Rebuild.
5754 * mc-boot/GFpuIO.cc: Rebuild.
5755 * mc-boot/GFpuIO.h: Rebuild.
5756 * mc-boot/GIO.cc: Rebuild.
5757 * mc-boot/GIO.h: Rebuild.
5758 * mc-boot/GIndexing.cc: Rebuild.
5759 * mc-boot/GIndexing.h: Rebuild.
5760 * mc-boot/GM2Dependent.cc: Rebuild.
5761 * mc-boot/GM2Dependent.h: Rebuild.
5762 * mc-boot/GM2EXCEPTION.cc: Rebuild.
5763 * mc-boot/GM2EXCEPTION.h: Rebuild.
5764 * mc-boot/GM2LINK.h: Rebuild.
5765 * mc-boot/GM2RTS.cc: Rebuild.
5766 * mc-boot/GM2RTS.h: Rebuild.
5767 * mc-boot/GMemUtils.cc: Rebuild.
5768 * mc-boot/GMemUtils.h: Rebuild.
5769 * mc-boot/GNumberIO.cc: Rebuild.
5770 * mc-boot/GNumberIO.h: Rebuild.
5771 * mc-boot/GPushBackInput.cc: Rebuild.
5772 * mc-boot/GPushBackInput.h: Rebuild.
5773 * mc-boot/GRTExceptions.cc: Rebuild.
5774 * mc-boot/GRTExceptions.h: Rebuild.
5775 * mc-boot/GRTco.h: Rebuild.
5776 * mc-boot/GRTentity.h: Rebuild.
5777 * mc-boot/GRTint.cc: Rebuild.
5778 * mc-boot/GRTint.h: Rebuild.
5779 * mc-boot/GSArgs.cc: Rebuild.
5780 * mc-boot/GSArgs.h: Rebuild.
5781 * mc-boot/GSFIO.cc: Rebuild.
5782 * mc-boot/GSFIO.h: Rebuild.
5783 * mc-boot/GSYSTEM.h: Rebuild.
5784 * mc-boot/GSelective.h: Rebuild.
5785 * mc-boot/GStdIO.cc: Rebuild.
5786 * mc-boot/GStdIO.h: Rebuild.
5787 * mc-boot/GStorage.cc: Rebuild.
5788 * mc-boot/GStorage.h: Rebuild.
5789 * mc-boot/GStrCase.cc: Rebuild.
5790 * mc-boot/GStrCase.h: Rebuild.
5791 * mc-boot/GStrIO.cc: Rebuild.
5792 * mc-boot/GStrIO.h: Rebuild.
5793 * mc-boot/GStrLib.cc: Rebuild.
5794 * mc-boot/GStrLib.h: Rebuild.
5795 * mc-boot/GStringConvert.cc: Rebuild.
5796 * mc-boot/GStringConvert.h: Rebuild.
5797 * mc-boot/GSysExceptions.h: Rebuild.
5798 * mc-boot/GSysStorage.cc: Rebuild.
5799 * mc-boot/GSysStorage.h: Rebuild.
5800 * mc-boot/GTimeString.cc: Rebuild.
5801 * mc-boot/GTimeString.h: Rebuild.
5802 * mc-boot/GUnixArgs.h: Rebuild.
5803 * mc-boot/Galists.cc: Rebuild.
5804 * mc-boot/Galists.h: Rebuild.
5805 * mc-boot/Gdecl.cc: Rebuild.
5806 * mc-boot/Gdecl.h: Rebuild.
5807 * mc-boot/Gdtoa.h: Rebuild.
5808 * mc-boot/Gerrno.h: Rebuild.
5809 * mc-boot/Gkeyc.cc: Rebuild.
5810 * mc-boot/Gkeyc.h: Rebuild.
5811 * mc-boot/Gldtoa.h: Rebuild.
5812 * mc-boot/Glibc.h: Rebuild.
5813 * mc-boot/Glibm.h: Rebuild.
5814 * mc-boot/Glists.cc: Rebuild.
5815 * mc-boot/Glists.h: Rebuild.
5816 * mc-boot/GmcComment.cc: Rebuild.
5817 * mc-boot/GmcComment.h: Rebuild.
5818 * mc-boot/GmcComp.cc: Rebuild.
5819 * mc-boot/GmcComp.h: Rebuild.
5820 * mc-boot/GmcDebug.cc: Rebuild.
5821 * mc-boot/GmcDebug.h: Rebuild.
5822 * mc-boot/GmcError.cc: Rebuild.
5823 * mc-boot/GmcError.h: Rebuild.
5824 * mc-boot/GmcFileName.cc: Rebuild.
5825 * mc-boot/GmcFileName.h: Rebuild.
5826 * mc-boot/GmcLexBuf.cc: Rebuild.
5827 * mc-boot/GmcLexBuf.h: Rebuild.
5828 * mc-boot/GmcMetaError.cc: Rebuild.
5829 * mc-boot/GmcMetaError.h: Rebuild.
5830 * mc-boot/GmcOptions.cc: Rebuild.
5831 * mc-boot/GmcOptions.h: Rebuild.
5832 * mc-boot/GmcPreprocess.cc: Rebuild.
5833 * mc-boot/GmcPreprocess.h: Rebuild.
5834 * mc-boot/GmcPretty.cc: Rebuild.
5835 * mc-boot/GmcPretty.h: Rebuild.
5836 * mc-boot/GmcPrintf.cc: Rebuild.
5837 * mc-boot/GmcPrintf.h: Rebuild.
5838 * mc-boot/GmcQuiet.cc: Rebuild.
5839 * mc-boot/GmcQuiet.h: Rebuild.
5840 * mc-boot/GmcReserved.cc: Rebuild.
5841 * mc-boot/GmcReserved.h: Rebuild.
5842 * mc-boot/GmcSearch.cc: Rebuild.
5843 * mc-boot/GmcSearch.h: Rebuild.
5844 * mc-boot/GmcStack.cc: Rebuild.
5845 * mc-boot/GmcStack.h: Rebuild.
5846 * mc-boot/GmcStream.cc: Rebuild.
5847 * mc-boot/GmcStream.h: Rebuild.
5848 * mc-boot/Gmcflex.h: Rebuild.
5849 * mc-boot/Gmcp1.cc: Rebuild.
5850 * mc-boot/Gmcp1.h: Rebuild.
5851 * mc-boot/Gmcp2.cc: Rebuild.
5852 * mc-boot/Gmcp2.h: Rebuild.
5853 * mc-boot/Gmcp3.cc: Rebuild.
5854 * mc-boot/Gmcp3.h: Rebuild.
5855 * mc-boot/Gmcp4.cc: Rebuild.
5856 * mc-boot/Gmcp4.h: Rebuild.
5857 * mc-boot/Gmcp5.cc: Rebuild.
5858 * mc-boot/Gmcp5.h: Rebuild.
5859 * mc-boot/GnameKey.cc: Rebuild.
5860 * mc-boot/GnameKey.h: Rebuild.
5861 * mc-boot/GsymbolKey.cc: Rebuild.
5862 * mc-boot/GsymbolKey.h: Rebuild.
5863 * mc-boot/Gtermios.h: Rebuild.
5864 * mc-boot/Gtop.cc: Rebuild.
5865 * mc-boot/Gvarargs.cc: Rebuild.
5866 * mc-boot/Gvarargs.h: Rebuild.
5867 * mc-boot/Gwlists.cc: Rebuild.
5868 * mc-boot/Gwlists.h: Rebuild.
5869 * mc-boot/Gwrapc.h: Rebuild.
5870 * mc/decl.mod (doBoolC): New procedure.
5871 (doBaseC): Call doBoolC.
5872 * mc/keyc.mod: Import useBool.
5873 (genBool): New procedure.
5874 (genDefs): Call genBool.
5875 * mc/mcOptions.def (useBool): New procedure.
5876 * mc/mcOptions.mod (useBool): New procedure.
5877 (useBoolType): New variable.
5878 (optionIs): Assign useBoolType to TRUE.
5880 2023-03-04 Gaius Mulley <gaiusmod2@gmail.com>
5882 * mc-boot-ch/GBuiltins.cc: New file.
5883 * mc-boot-ch/Gdtoa.cc: New file.
5884 * mc-boot-ch/Gerrno.cc: New file.
5885 * mc-boot-ch/Gldtoa.cc: New file.
5886 * mc-boot-ch/Gm2rtsdummy.cc: New file.
5887 * mc-boot/GASCII.cc: New file.
5888 * mc-boot/GArgs.cc: New file.
5889 * mc-boot/GAssertion.cc: New file.
5890 * mc-boot/GBreak.cc: New file.
5891 * mc-boot/GCmdArgs.cc: New file.
5892 * mc-boot/GDebug.cc: New file.
5893 * mc-boot/GDynamicStrings.cc: New file.
5894 * mc-boot/GEnvironment.cc: New file.
5895 * mc-boot/GFIO.cc: New file.
5896 * mc-boot/GFormatStrings.cc: New file.
5897 * mc-boot/GFpuIO.cc: New file.
5898 * mc-boot/GIO.cc: New file.
5899 * mc-boot/GIndexing.cc: New file.
5900 * mc-boot/GM2Dependent.cc: New file.
5901 * mc-boot/GM2EXCEPTION.cc: New file.
5902 * mc-boot/GM2RTS.cc: New file.
5903 * mc-boot/GMemUtils.cc: New file.
5904 * mc-boot/GNumberIO.cc: New file.
5905 * mc-boot/GPushBackInput.cc: New file.
5906 * mc-boot/GRTExceptions.cc: New file.
5907 * mc-boot/GRTint.cc: New file.
5908 * mc-boot/GSArgs.cc: New file.
5909 * mc-boot/GSFIO.cc: New file.
5910 * mc-boot/GStdIO.cc: New file.
5911 * mc-boot/GStorage.cc: New file.
5912 * mc-boot/GStrCase.cc: New file.
5913 * mc-boot/GStrIO.cc: New file.
5914 * mc-boot/GStrLib.cc: New file.
5915 * mc-boot/GStringConvert.cc: New file.
5916 * mc-boot/GSysStorage.cc: New file.
5917 * mc-boot/GTimeString.cc: New file.
5918 * mc-boot/Galists.cc: New file.
5919 * mc-boot/Gdecl.cc: New file.
5920 * mc-boot/Gkeyc.cc: New file.
5921 * mc-boot/Glists.cc: New file.
5922 * mc-boot/GmcComment.cc: New file.
5923 * mc-boot/GmcComp.cc: New file.
5924 * mc-boot/GmcDebug.cc: New file.
5925 * mc-boot/GmcError.cc: New file.
5926 * mc-boot/GmcFileName.cc: New file.
5927 * mc-boot/GmcLexBuf.cc: New file.
5928 * mc-boot/GmcMetaError.cc: New file.
5929 * mc-boot/GmcOptions.cc: New file.
5930 * mc-boot/GmcPreprocess.cc: New file.
5931 * mc-boot/GmcPretty.cc: New file.
5932 * mc-boot/GmcPrintf.cc: New file.
5933 * mc-boot/GmcQuiet.cc: New file.
5934 * mc-boot/GmcReserved.cc: New file.
5935 * mc-boot/GmcSearch.cc: New file.
5936 * mc-boot/GmcStack.cc: New file.
5937 * mc-boot/GmcStream.cc: New file.
5938 * mc-boot/Gmcp1.cc: New file.
5939 * mc-boot/Gmcp2.cc: New file.
5940 * mc-boot/Gmcp3.cc: New file.
5941 * mc-boot/Gmcp4.cc: New file.
5942 * mc-boot/Gmcp5.cc: New file.
5943 * mc-boot/GnameKey.cc: New file.
5944 * mc-boot/GsymbolKey.cc: New file.
5945 * mc-boot/Gtop.cc: New file.
5946 * mc-boot/Gvarargs.cc: New file.
5947 * mc-boot/Gwlists.cc: New file.
5948 * pge-boot/GASCII.cc: New file.
5949 * pge-boot/GArgs.cc: New file.
5950 * pge-boot/GAssertion.cc: New file.
5951 * pge-boot/GBuiltins.cc: New file.
5952 * pge-boot/GDebug.cc: New file.
5953 * pge-boot/GDynamicStrings.cc: New file.
5954 * pge-boot/GFIO.cc: New file.
5955 * pge-boot/GIO.cc: New file.
5956 * pge-boot/GIndexing.cc: New file.
5957 * pge-boot/GLists.cc: New file.
5958 * pge-boot/GM2Dependent.cc: New file.
5959 * pge-boot/GM2EXCEPTION.cc: New file.
5960 * pge-boot/GM2LINK.cc: New file.
5961 * pge-boot/GM2RTS.cc: New file.
5962 * pge-boot/GNameKey.cc: New file.
5963 * pge-boot/GNumberIO.cc: New file.
5964 * pge-boot/GOutput.cc: New file.
5965 * pge-boot/GPushBackInput.cc: New file.
5966 * pge-boot/GRTExceptions.cc: New file.
5967 * pge-boot/GRTco.cc: New file.
5968 * pge-boot/GSFIO.cc: New file.
5969 * pge-boot/GSYSTEM.cc: New file.
5970 * pge-boot/GSelective.cc: New file.
5971 * pge-boot/GStdIO.cc: New file.
5972 * pge-boot/GStorage.cc: New file.
5973 * pge-boot/GStrCase.cc: New file.
5974 * pge-boot/GStrIO.cc: New file.
5975 * pge-boot/GStrLib.cc: New file.
5976 * pge-boot/GSymbolKey.cc: New file.
5977 * pge-boot/GSysExceptions.cc: New file.
5978 * pge-boot/GSysStorage.cc: New file.
5979 * pge-boot/Gabort.cc: New file.
5980 * pge-boot/Gbnflex.cc: New file.
5981 * pge-boot/Gcbuiltin.cc: New file.
5982 * pge-boot/Gdtoa.cc: New file.
5983 * pge-boot/Gerrno.cc: New file.
5984 * pge-boot/Gldtoa.cc: New file.
5985 * pge-boot/Glibc.cc: New file.
5986 * pge-boot/Glibm.cc: New file.
5987 * pge-boot/Gmcrts.cc: New file.
5988 * pge-boot/Gpge.cc: New file.
5989 * pge-boot/Gwrapc.cc: New file.
5990 * pge-boot/main.cc: New file.
5991 * pge-boot/network.cc: New file.
5993 2023-03-04 Gaius Mulley <gaiusmod2@gmail.com>
5995 * Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
5996 (MC-BOOT-C): Rename to MC-BOOT-CC.
5997 (BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
5998 (BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
5999 (m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
6000 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
6001 * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
6002 source file extension to .cc.
6003 (m2/gm2-ppg-boot/main.o): Ditto.
6004 (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
6006 (m2/gm2-pg-boot/main.o): Ditto.
6007 (m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
6008 (m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
6009 (m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
6010 (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
6011 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
6012 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
6013 (m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
6014 (m2/gm2-pge-boot/main.o): Ditto.
6018 ((objdir)/m2/mc-boot-gen): Ditto.
6019 (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
6020 (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
6021 * mc-boot-ch/GBuiltins.c: Correct comment and rename.
6022 * mc-boot-ch/Gdtoa.c: Correct comment and rename.
6023 * mc-boot-ch/Gldtoa.c: Correct comment and rename
6024 * mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
6025 * mc-boot-ch/Gerrno.c: Rename.
6026 * mc-boot-ch/GRTco.c: Removed.
6027 * mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
6028 * mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
6029 * mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
6030 * mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
6031 * mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
6032 * mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
6033 * mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
6034 * mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
6035 * mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
6036 * mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
6037 * mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
6038 * mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
6039 * mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
6040 * mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
6041 * mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
6042 * mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
6043 * mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
6044 * mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
6045 * mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
6046 * mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
6047 * mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
6048 * mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
6049 * mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
6050 * mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
6051 * mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
6052 * mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
6053 * mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
6054 * mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
6055 * mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
6056 * mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
6057 * mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
6058 * mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
6059 * mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
6060 * mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
6061 * mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
6062 * mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
6063 * mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
6064 * mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
6065 * mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
6066 * mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
6067 * mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
6068 * mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
6069 * mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
6070 * mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
6071 * mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
6072 * mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
6073 * mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
6074 * mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
6075 * mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
6076 * mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
6077 * mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
6078 * mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
6079 * mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
6080 * mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
6081 * mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
6082 * mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
6083 * mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
6084 * mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
6085 * mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
6086 * mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
6087 * mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
6088 * pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
6089 * pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
6090 * pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
6091 * pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
6092 * pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
6093 * pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
6094 * pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
6095 * pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
6096 * pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
6097 * pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
6098 * pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
6099 * pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
6100 * pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
6101 * pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
6102 * pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
6103 * pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
6104 * pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
6105 * pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
6106 * pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
6107 * pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
6108 * pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
6109 * pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
6110 * pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
6111 * pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
6112 * pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
6113 * pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
6114 * pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
6115 * pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
6116 * pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
6117 * pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
6118 * pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
6119 * pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
6120 * pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
6121 * pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
6122 * pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
6123 * pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
6124 * pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
6125 * pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
6126 * pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
6127 * pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
6128 * pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
6129 * pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
6130 * pge-boot/README: Correct description.
6131 * pge-boot/main.c: Rename to pge-boot/main.cc.
6132 * pge-boot/network.c: Rename to pge-boot/network.cc.
6134 2023-02-28 Gaius Mulley <gaiusmod2@gmail.com>
6137 * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to
6138 add the --suppress-noreturn option.
6139 * Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New
6140 specific rule to add the --suppress-noreturn option.
6141 (m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New
6142 specific rule to add the --suppress-noreturn option.
6143 (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
6144 (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New
6145 specific rule to add the --suppress-noreturn option.
6146 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
6147 * gm2-libs-ch/UnixArgs.cc (LIBNAME): New define.
6148 (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
6149 * gm2-libs-ch/dtoa.cc (LIBNAME): New define.
6150 (_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule.
6151 * gm2-libs-ch/ldtoa.cc (LIBNAME): New define.
6152 (_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule.
6153 * pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname
6155 * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname
6157 * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove.
6158 * pge-boot/GUnixArgs.cc (LIBNAME): New define.
6159 (_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
6160 * gm2-libs/RTint.def (AttachVector): Rename parameter.
6161 * mc-boot/GDynamicStrings.c: Rebuilt.
6162 * mc-boot/GFIO.c: Rebuilt.
6163 * mc-boot/GIndexing.c: Rebuilt.
6164 * mc-boot/GM2EXCEPTION.c: Rebuilt.
6165 * mc-boot/GPushBackInput.c: Rebuilt.
6166 * mc-boot/GRTExceptions.c: Rebuilt.
6167 * mc-boot/GRTint.c: Rebuilt.
6168 * mc-boot/GRTint.h: Rebuilt.
6169 * mc-boot/GStdIO.c: Rebuilt.
6170 * mc-boot/GStringConvert.c: Rebuilt.
6171 * mc-boot/GSysStorage.c: Rebuilt.
6172 * mc-boot/Gdecl.c: Rebuilt.
6173 * mc-boot/Gkeyc.c: Rebuilt.
6174 * mc-boot/GmcComment.c: Rebuilt.
6175 * mc-boot/GmcComp.c: Rebuilt.
6176 * mc-boot/GmcDebug.c: Rebuilt.
6177 * mc-boot/GmcMetaError.c: Rebuilt.
6178 * mc-boot/GmcOptions.c: Rebuilt.
6179 * mc-boot/GmcOptions.h: Rebuilt.
6180 * mc-boot/GmcStack.c: Rebuilt.
6181 * mc-boot/GnameKey.c: Rebuilt.
6182 * mc-boot/GsymbolKey.c: Rebuilt.
6183 * mc/decl.mod:: Rebuilt.
6184 * mc/mcOptions.def: Rebuilt.
6185 * mc/mcOptions.mod:: Rebuilt.
6186 * pge-boot/GDynamicStrings.c: Rebuilt.
6187 * pge-boot/GFIO.c: Rebuilt.
6188 * pge-boot/GIndexing.c: Rebuilt.
6189 * pge-boot/GM2EXCEPTION.c: Rebuilt.
6190 * pge-boot/GM2RTS.c: Rebuilt.
6191 * pge-boot/GNameKey.c: Rebuilt.
6192 * pge-boot/GPushBackInput.c: Rebuilt.
6193 * pge-boot/GRTExceptions.c: Rebuilt.
6194 * pge-boot/GStdIO.c: Rebuilt.
6195 * pge-boot/GSymbolKey.c: Rebuilt.
6196 * pge-boot/GSysStorage.c: Rebuilt.
6198 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
6201 * Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
6202 remove. DynamicPath.def add.
6203 (GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
6204 DynamicPath.mod add.
6205 * Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
6206 (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
6208 (PGE-DEF): New definition.
6209 (BUILD-BOOT-PG-H): New dependency.
6210 (m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
6212 (BUILD-BOOT-PGE-H): New dependency.
6213 (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
6215 (GM2PATH): Add pathname entries.
6216 (m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
6218 (m2/boot-bin/mc-opt$(exeext)): Fix -I path.
6219 * gm2-compiler/DynamicStringPath.def: Renamed module to
6221 (GetUserPath): Remove.
6222 (GetSystemPath): Remove.
6223 (SetUserPath): Remove.
6224 (SetSystemPath): Remove.
6225 (DumpPath): New procedure definition.
6226 * gm2-compiler/DynamicStringPath.mod: Renamed module to
6228 (GetUserPath): Remove.
6229 (GetSystemPath): Remove.
6230 (SetUserPath): Remove.
6231 (SetSystemPath): Remove.
6232 (DumpPath): Remove Debugging conditional.
6233 * gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
6235 (Debugging): New declaration.
6236 (GetFullSymName): Re-implemented to prefix (mange) libname
6237 to any extern variable/procedure which is IsExportQualified.
6238 * gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
6239 * gm2-compiler/M2Graph.mod (resolveImports): Add libname.
6240 * gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
6241 (GetM2Prefix): New procedure function.
6242 (SetM2PathName): New procedure.
6243 (GetM2PathName): New procedure function.
6244 * gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
6245 (GetM2Prefix): New procedure function implemented.
6246 (SetM2PathName): New procedure implemented.
6247 (GetM2PathName): New procedure function implemented.
6248 (RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
6249 * gm2-compiler/M2Quads.mod: Import GetLibName.
6250 (SafeRequestSym) Pass result of GetLibName to RequestDependant.
6251 (callRequestDependant): Add libname as a parameter.
6252 (BuildM2InitFunction): Add libname as a parameter.
6253 (BuildM2FiniFunction): Add libname as a parameter.
6254 (BuildM2CtorFunction): Add libname as a parameter.
6255 * gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
6256 if a definition source was found.
6257 * gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
6258 (FindSourceDefFile): Add named library parameter.
6259 (FindSourceModFile): Add named library parameter.
6260 * gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
6261 (FindSourceDefFile): Add named library parameter.
6262 (FindSourceModFile): Add named library parameter.
6263 * gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
6265 (PutLibName): New procedure.
6266 (GetLibName): New procedure function.
6267 * gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
6269 (GenName): Add libname parameter.
6270 (InitCtorFields): Add moduleSym as a parameter.
6271 (PutCtorExtern): Add libname parameter to GenName.
6272 * gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
6273 (_M2_DynamicPath_init): ...to this.
6274 (_M2_PathName_init): Added.
6275 * gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
6276 Add m2pim as the manged component of the exported symbol.
6277 (m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
6278 * gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
6279 (M2Options_GetM2Prefix): New function.
6280 (M2Options_SetM2PathName): New function.
6281 (M2Options_GetM2PathName): New function.
6282 * gm2-lang.cc (push_back_Ipath): New function.
6283 (add_one_import_path): New function.
6284 (gm2_langhook_handle_option): Record -I component. Call
6285 SetM2PathName when -fm2-pathname= is seen. Record -fm2-pathnameI
6286 component. Call SetM2Prefix when -fm2-prefix= is seen.
6287 (gm2_langhook_post_options): Iterative over pathname entries
6288 and call SetM2PathName, SetSearchPath as appropriate.
6289 * gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
6290 (DeconstructModules): Add libname parameter.
6291 (RegisterModule): Add libname parameter.
6292 (RequestDependant): Add libname parameter.
6293 * gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
6294 (DeconstructModules): Add libname parameter.
6295 (RegisterModule): Add libname parameter.
6296 (RequestDependant): Add libname parameter.
6297 * gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
6298 (DeconstructModules): Add libname parameter.
6299 (RegisterModule): Add libname parameter.
6300 (RequestDependant): Add libname parameter.
6301 * gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
6302 (DeconstructModules): Add libname parameter.
6303 (RegisterModule): Add libname parameter.
6304 (RequestDependant): Add libname parameter.
6305 * gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
6306 (DeconstructModules): Add libname parameter.
6307 (RegisterModule): Add libname parameter.
6308 (RequestDependant): Add libname parameter.
6309 * gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
6310 (DeconstructModules): Add libname parameter.
6311 (RegisterModule): Add libname parameter.
6312 (RequestDependant): Add libname parameter.
6313 * gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
6314 (DeconstructModules): Add libname parameter.
6315 (RegisterModule): Add libname parameter.
6316 (RequestDependant): Add libname parameter.
6317 * gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
6318 (DeconstructModules): Add libname parameter.
6319 (RegisterModule): Add libname parameter.
6320 (RequestDependant): Add libname parameter.
6321 * gm2-libs/RTint.mod (FindVector): Rename variables.
6322 (initInputVector): Rename variables.
6323 (initOutputVector): Rename variables.
6324 (InitTimeVector): Rename variables.
6325 (FindVectorNo): Rename variables.
6326 (FindPendingVector): Rename variables.
6327 (ReArmTimeVector): Rename variables.
6328 (GetTimeVector): Rename variables.
6329 (AttachVector): Rename variables.
6330 (AttachVector): Rename variables.
6331 (IncludeVector): Rename variables.
6332 (ExcludeVector): Rename variables.
6333 (AddFd): Rename variables.
6334 (AddFd): Rename variables.
6335 (DumpPendingQueue): Rename variables.
6337 (activatePending): Rename variables.
6338 (Listen): Rename variables.
6339 * gm2-libs/libc.def (snprintf): New function.
6340 * gm2-libs/sckt.def: Change all exported identifiers to be
6342 * gm2spec.cc (push_back_Ipath): New function.
6343 (add_m2_I_path): New function.
6344 (lang_specific_driver): Skip -fm2-pathname= and remember pathname.
6345 Skip -I and record the path and current pathname. Call add_m2_I_path.
6346 * lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
6347 * lang.opt (-fm2-pathname=): New entry.
6348 (-fm2-pathname): New entry.
6349 (-fm2-prefix=): New entry.
6350 * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
6351 (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
6352 * mc-boot-ch/Glibc.c (libc_snprintf): New function.
6353 * mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
6354 (M2RTS_RegisterModule): Changed prototype.
6355 * mc-boot/GDynamicStrings.c: Rebuild.
6356 * mc-boot/GFIO.c: Rebuild.
6357 * mc-boot/GIndexing.c: Rebuild.
6358 * mc-boot/GM2Dependent.c: Rebuild.
6359 * mc-boot/GM2Dependent.h: Rebuild.
6360 * mc-boot/GM2EXCEPTION.c: Rebuild.
6361 * mc-boot/GM2RTS.c: Rebuild.
6362 * mc-boot/GM2RTS.h: Rebuild.
6363 * mc-boot/GPushBackInput.c: Rebuild.
6364 * mc-boot/GRTExceptions.c: Rebuild.
6365 * mc-boot/GRTint.c: Rebuild.
6366 * mc-boot/GStdIO.c: Rebuild.
6367 * mc-boot/GStringConvert.c: Rebuild.
6368 * mc-boot/GSysStorage.c: Rebuild.
6369 * mc-boot/Gdecl.c: Rebuild.
6370 * mc-boot/Gkeyc.c: Rebuild.
6371 * mc-boot/Glibc.h: Rebuild.
6372 * mc-boot/GmcComment.c: Rebuild.
6373 * mc-boot/GmcComp.c: Rebuild.
6374 * mc-boot/GmcDebug.c: Rebuild.
6375 * mc-boot/GmcMetaError.c: Rebuild.
6376 * mc-boot/GmcStack.c: Rebuild.
6377 * mc-boot/GnameKey.c: Rebuild.
6378 * mc-boot/GsymbolKey.c: Rebuild.
6379 * pge-boot/GASCII.c: Rebuild.
6380 * pge-boot/GArgs.c: Rebuild.
6381 * pge-boot/GAssertion.c: Rebuild.
6382 * pge-boot/GDebug.c: Rebuild.
6383 * pge-boot/GDynamicStrings.c: Rebuild.
6384 * pge-boot/GFIO.c: Rebuild.
6385 * pge-boot/GIO.c: Rebuild.
6386 * pge-boot/GIndexing.c: Rebuild.
6387 * pge-boot/GLists.c: Rebuild.
6388 * pge-boot/GM2Dependent.c: Rebuild.
6389 * pge-boot/GM2Dependent.h: Rebuild.
6390 * pge-boot/GM2EXCEPTION.c: Rebuild.
6391 * pge-boot/GM2RTS.c: Rebuild.
6392 * pge-boot/GM2RTS.h: Rebuild.
6393 * pge-boot/GNameKey.c: Rebuild.
6394 * pge-boot/GNumberIO.c: Rebuild.
6395 * pge-boot/GOutput.c: Rebuild.
6396 * pge-boot/GPushBackInput.c: Rebuild.
6397 * pge-boot/GRTExceptions.c: Rebuild.
6398 * pge-boot/GSFIO.c: Rebuild.
6399 * pge-boot/GStdIO.c: Rebuild.
6400 * pge-boot/GStorage.c: Rebuild.
6401 * pge-boot/GStrCase.c: Rebuild.
6402 * pge-boot/GStrIO.c: Rebuild.
6403 * pge-boot/GStrLib.c: Rebuild.
6404 * pge-boot/GSymbolKey.c: Rebuild.
6405 * pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
6406 (_M2_SysExceptions_fini): ... to this.
6407 * pge-boot/GSysStorage.c: Rebuild.
6408 (_M2_SysStorage_finish): Rename this...
6409 (_M2_SysStorage_fini): ... to this.
6410 * pge-boot/GUnixArgs.cc: New file.
6411 * pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
6412 (_M2_bnflex_fini): ... to this.
6413 * pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
6414 (_M2_errno_fini): ... to this.
6415 * pge-boot/Glibc.c (libc_snprintf): New function.
6416 * pge-boot/Glibc.h (libc_snprintf): New prototype.
6417 * pge-boot/Gpge.c (_M2_pge_finish): Rename this...
6418 (_M2_pge_fini): ... to this.
6419 * pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
6420 (_M2_termios_fini): ... to this.
6421 * pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
6422 (_M2_RTExceptions_fini): ... to this.
6423 (_M2_M2EXCEPTION_finish): Rename this...
6424 (_M2_M2EXCEPTION_fini): ... to this.
6425 (_M2_M2RTS_finish): Rename this...
6426 (_M2_M2RTS_fini): ... to this.
6427 (_M2_SysExceptions_finish): Rename this...
6428 (_M2_SysExceptions_fini): ... to this.
6429 (_M2_StrLib_finish): Rename this...
6430 (_M2_StrLib_fini): ... to this.
6431 (_M2_errno_finish): Rename this...
6432 (_M2_errno_fini): ... to this.
6433 (_M2_termios_finish): Rename this...
6434 (_M2_termios_fini): ... to this.
6435 (_M2_IO_finish): Rename this...
6436 (_M2_IO_fini): ... to this.
6437 (_M2_StdIO_finish): Rename this...
6438 (_M2_StdIO_fini): ... to this.
6439 (_M2_Debug_finish): Rename this...
6440 (_M2_Debug_fini): ... to this.
6441 (_M2_SysStorage_finish): Rename this...
6442 (_M2_SysStorage_fini): ... to this.
6443 (_M2_Storage_finish): Rename this...
6444 (_M2_Storage_fini): ... to this.
6445 (_M2_StrIO_finish): Rename this...
6446 (_M2_StrIO_fini): ... to this.
6447 (_M2_DynamicStrings_finish): Rename this...
6448 (_M2_DynamicStrings_fini): ... to this.
6449 (_M2_Assertion_finish): Rename this...
6450 (_M2_Assertion_fini): ... to this.
6451 (_M2_Indexing_finish): Rename this...
6452 (_M2_Indexing_fini): ... to this.
6453 (_M2_NameKey_finish): Rename this...
6454 (_M2_NameKey_fini): ... to this.
6455 (_M2_NumberIO_finish): Rename this...
6456 (_M2_NumberIO_fini): ... to this.
6457 (_M2_PushBackInput_finish): Rename this...
6458 (_M2_PushBackInput_fini): ... to this.
6459 (_M2_SymbolKey_finish): Rename this...
6460 (_M2_SymbolKey_fini): ... to this.
6461 (_M2_UnixArgs_finish): Rename this...
6462 (_M2_UnixArgs_fini): ... to this.
6463 (_M2_FIO_finish): Rename this...
6464 (_M2_FIO_fini): ... to this.
6465 (_M2_SFIO_finish): Rename this...
6466 (_M2_SFIO_fini): ... to this.
6467 (_M2_StrCase_finish): Rename this...
6468 (_M2_StrCase_fini): ... to this.
6469 (_M2_bnflex_finish): Rename this...
6470 (_M2_bnflex_fini): ... to this.
6471 (_M2_Lists_finish): Rename this...
6472 (_M2_Lists_fini): ... to this.
6473 (_M2_Args_finish): Rename this...
6474 (_M2_Args_fini): ... to this.
6475 (_M2_Output_finish): Rename this...
6476 (_M2_Output_fini): ... to this.
6477 (_M2_pge_finish): Rename this...
6478 (_M2_pge_fini): ... to this.
6479 * plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
6480 procedure names to their name mangled counterparts.
6481 * gm2-libs-iso/wrapsock.c: Removed.
6482 * gm2-libs-iso/wraptime.c: Removed.
6483 * mc-boot/Gpth.h: Removed.
6484 * gm2-compiler/PathName.def: New file.
6485 * gm2-compiler/PathName.mod: New file.
6486 * gm2-compiler/DynamicPath.def: New file.
6487 * gm2-compiler/DynamicPath.mod: New file.
6489 2023-02-06 Gaius Mulley <gaiusmod2@gmail.com>
6492 * gm2-compiler/M2Search.mod (DSdbEnter): Comment out.
6493 (DSdbExit): Comment out.
6495 2023-02-06 Co-Authored by: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6498 * m2pp.cc (m2pp_integer_cst): Use
6499 HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier.
6501 2023-02-06 Gaius Mulley <gaiusmod2@gmail.com>
6503 * gm2-compiler/M2Preprocess.mod (BaseName): Comment out.
6504 * gm2-lang.cc (opt): Remove.
6505 * gm2spec.cc (add_include): Remove.
6506 (full_libraries): Remove.
6507 (concat_option): Remove.
6509 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
6511 * Make-lang.in (TEXISRC): Remove m2/images/gnu.eps.
6512 (RSTSRC): Remove m2/images/gnu.eps.
6513 (doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps.
6514 (doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps.
6515 (M2_PDFFILES): New definition.
6516 (m2.install-pdf): New rule.
6517 (m2.pod): Add $(objdir)/m2/images/gnu.eps.
6518 (m2.info): Add $(objdir)/m2/images/gnu.eps.
6519 (m2.html): New rule.
6520 (m2/gpl_v3_without_node.texi): New rule.
6521 (plugin/m2rte$(soext)): Simplify mkinstalldirs.
6522 (cc1gm2$(exeext)): Ditto.
6523 (m2/stage1/cc1gm2$(exeext)): Ditto.
6524 (m2/gm2-gcc/%.o): Ditto.
6525 (m2/gm2-gcc/rtegraph.o): Ditto.
6526 (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
6527 (m2/mc-boot/$(SRC_PREFIX)%.o):Ditto.
6528 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
6529 (m2/mc-boot/main.o): Ditto.
6530 (m2/gm2-libs-boot/%.o): Ditto.
6531 (m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto.
6532 (m2/gm2-libs-boot/RTcodummy.o): Ditto.
6533 (m2/gm2-libs-boot/wrapc.o): Ditto.
6534 (m2/gm2-libs-boot/M2LINK.o): Ditto.
6535 (m2/gm2-libs-boot/UnixArgs.o): Ditto.
6536 (m2/gm2-libs-boot/choosetemp.o): Ditto.
6537 (m2/gm2-libs-boot/errno.o): Ditto.
6538 (m2/gm2-libs-boot/dtoa.o): Ditto.
6539 (m2/gm2-libs-boot/ldtoa.o): Ditto.
6540 (m2/gm2-libs-boot/termios.o): Ditto.
6541 (m2/gm2-libs-boot/SysExceptions.o): Ditto.
6542 (m2/gm2-libs-boot/SysStorage.o): Ditto.
6543 (m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
6544 (m2/gm2-compiler-boot/M2Error.o): Ditto.
6545 (m2/gm2-compiler-boot/%.o): Ditto.
6546 (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
6547 (m2/gm2-compiler-boot/m2flex.o): Ditto.
6548 (m2/gm2-compiler/m2flex.c): Ditto.
6549 (m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto.
6550 (m2/gm2-compiler/%.o): Ditto.
6551 (m2/gm2-compiler/m2flex.o): Ditto.
6552 (m2/gm2-compiler/%.o): Ditto.
6553 (m2/gm2-libs-iso/%.o): Ditto.
6554 (m2/gm2-libs/gm2-libs-host.h): Ditto.
6555 ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto.
6556 ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
6557 ($(objdir)/m2/gm2-libs-iso/SYSTEM.def): Ditto.
6558 ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
6559 (m2/gm2-compiler/gm2.a): Ditto.
6560 (m2/gm2-libs-boot/libgm2.a): Ditto.
6561 (m2/gm2-compiler-boot/gm2.a): Ditto.
6562 (m2/boot-bin/mklink$(exeext)): Ditto.
6563 (m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
6564 (m2/gm2-compiler/%.mod): Ditto.
6565 (m2/gm2-compiler-boot/%.mod): Ditto.
6566 (m2/pge-boot/%.o): Ditto.
6568 2023-02-01 Gaius Mulley <gaiusmod2@gmail.com>
6570 * Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type.
6571 (GM2_ISO_FLAGS): Add -fno-return -Wreturn-type.
6572 * Make-maintainer.in (GM2PATH): Split into separate -I components.
6573 (MC-LIB-DEFS): Add RTentity.def.
6574 (m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to
6576 (m2/boot-bin/mc-opt$(exeext)): Separate -I paths.
6577 (m2/mc/decl.o): Separate -I paths.
6578 (gm2-bootstrap): Separate -I paths.
6579 (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths.
6580 (m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths.
6581 (m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths.
6582 (gm2.verifyparanoid): Separate -I paths.
6583 (gm2.verifystage12): Separate -I paths.
6584 * gm2-compiler/M2ALU.mod (GetConstructorElement): Add default
6585 Return NulSym. Remove return from the error case.
6586 * gm2-compiler/M2Base.mod (ComplexToScalar): Return RType
6587 from the error case.
6588 (MixMetaTypes): Return MakeError as a default.
6589 * gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym
6590 from the error case.
6591 (GetTypeMax): Return NulSym from the error case.
6592 * gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert
6594 * gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError.
6595 (GetTypeMin): Add InternalError.
6596 (GetTypeMax): Add InternalError.
6597 * gm2-compiler/M2System.mod (InitSystem): Call
6598 PutProcedureNoReturn on Throw.
6599 * gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree
6600 declare as noreturn. fn_rethrow_tree declare as noreturn.
6601 * gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute.
6602 * gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute.
6603 * gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE.
6604 * gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute.
6605 * gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute.
6606 * gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute.
6609 (ErrorMessage): Ditto.
6610 (AssignmentException): Ditto.
6611 (ReturnException): Ditto.
6612 (IncException): Ditto.
6613 (DecException): Ditto.
6614 (InclException): Ditto.
6615 (ExclException): Ditto.
6616 (ShiftException): Ditto.
6617 (RotateException): Ditto.
6618 (StaticArraySubscriptException): Ditto.
6619 (DynamicArraySubscriptException): Ditto.
6620 (ForLoopBeginException): Ditto.
6621 (ForLoopToException): Ditto.
6622 (ForLoopEndException): Ditto.
6623 (PointerNilException): Ditto.
6624 (NoReturnException): Ditto.
6625 (CaseException): Ditto.
6626 (WholeNonPosDivException): Ditto.
6627 (WholeNonPosModException): Ditto.
6628 (WholeZeroDivException): Ditto.
6629 (WholeZeroRemException): Ditto.
6630 (WholeValueException): Ditto.
6631 (RealValueException): Ditto.
6632 (ParameterException): Ditto.
6633 (NoException): Ditto.
6634 * gm2-libs-iso/SYSTEM.def (THROW): Ditto.
6635 * gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE.
6636 * gm2-libs-min/M2RTS.def: Add noreturn attribute.
6637 * gm2-libs/FIO.mod (BufferedRead): Return -1.
6638 (getFileName): Return NIL.
6639 (getFileNameLength): Return 0.
6640 * gm2-libs/M2RTS.def (HaltC): Add noreturn attribute.
6641 (AssignmentException): Ditto.
6642 (ReturnException): Ditto.
6643 (IncException): Ditto.
6644 (DecException): Ditto.
6645 (InclException): Ditto.
6646 (ExclException): Ditto.
6647 (ShiftException): Ditto.
6648 (RotateException): Ditto.
6649 (StaticArraySubscriptException): Ditto.
6650 (DynamicArraySubscriptException): Ditto.
6651 (ForLoopBeginException): Ditto.
6652 (ForLoopToException): Ditto.
6653 (ForLoopEndException): Ditto.
6654 (PointerNilException): Ditto.
6655 (NoReturnException): Ditto.
6656 (CaseException): Ditto.
6657 (WholeNonPosDivException): Ditto.
6658 (WholeNonPosModException): Ditto.
6659 (WholeZeroDivException): Ditto.
6660 (WholeZeroRemException): Ditto.
6661 (WholeValueException): Ditto.
6662 (RealValueException): Ditto.
6663 (ParameterException): Ditto.
6664 (NoException): Ditto.
6665 * gm2-libs/RTExceptions.def (Raise): Ditto.
6666 * gm2-libs/RTExceptions.mod (InvokeHandler): Ditto.
6667 * gm2-libs/SYSTEM.def (THROW): Ditto.
6668 * m2.flex (_M2_m2flex_fini): Remamed to...
6669 (_M2_m2flex_finish): ...here.
6670 * mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to...
6671 (_M2_Builtins_fini): ...this.
6672 * mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to...
6673 (_M2_RTco_fini): ...this.
6674 * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to...
6675 (_M2_SYSTEM_fini): ...this.
6676 * mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to...
6677 (_M2_Selective_fini): ...this.
6678 * mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add
6680 (_M2_SysExceptions_finish): Remamed to...
6681 (_M2_SysExceptions_fini): ...this.
6682 * mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to...
6683 (_M2_UnixArgs_fini): ...this.
6684 (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter
6685 to _M2_UnixArgs_fini.
6686 * mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to...
6687 (_M2_dtoa_fini): ...this.
6688 * mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to...
6689 (_M2_errno_fini): ...this.
6690 * mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to...
6691 (_M2_ldtoa_fini): ...this.
6692 * mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters.
6693 (_M2_termios_finish): Remamed to...
6694 (_M2_termios_fini): ...this.
6695 * mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters.
6696 (_M2_wrapc_finish): Remamed to...
6697 (_M2_wrapc_fini): ...this.
6698 * mc-boot/GASCII.c: Rebuild.
6699 * mc-boot/GArgs.c: Rebuild.
6700 * mc-boot/GAssertion.c: Rebuild.
6701 * mc-boot/GBreak.c: Rebuild.
6702 * mc-boot/GCmdArgs.c: Rebuild.
6703 * mc-boot/GDebug.c: Rebuild.
6704 * mc-boot/GDynamicStrings.c: Rebuild.
6705 * mc-boot/GEnvironment.c: Rebuild.
6706 * mc-boot/GFIO.c: Rebuild.
6707 * mc-boot/GFormatStrings.c: Rebuild.
6708 * mc-boot/GFpuIO.c: Rebuild.
6709 * mc-boot/GIO.c: Rebuild.
6710 * mc-boot/GIndexing.c: Rebuild.
6711 * mc-boot/GM2Dependent.c: Rebuild.
6712 * mc-boot/GM2EXCEPTION.c: Rebuild.
6713 * mc-boot/GM2RTS.c: Rebuild.
6714 * mc-boot/GM2RTS.h: Rebuild.
6715 * mc-boot/GMemUtils.c: Rebuild.
6716 * mc-boot/GNumberIO.c: Rebuild.
6717 * mc-boot/GPushBackInput.c: Rebuild.
6718 * mc-boot/GRTExceptions.c: Rebuild.
6719 * mc-boot/GRTExceptions.h: Rebuild.
6720 * mc-boot/GRTco.h: Rebuild.
6721 * mc-boot/GRTint.c: Rebuild.
6722 * mc-boot/GSArgs.c: Rebuild.
6723 * mc-boot/GSFIO.c: Rebuild.
6724 * mc-boot/GStdIO.c: Rebuild.
6725 * mc-boot/GStorage.c: Rebuild.
6726 * mc-boot/GStrCase.c: Rebuild.
6727 * mc-boot/GStrIO.c: Rebuild.
6728 * mc-boot/GStrLib.c: Rebuild.
6729 * mc-boot/GStringConvert.c: Rebuild.
6730 * mc-boot/GSysStorage.c: Rebuild.
6731 * mc-boot/GTimeString.c: Rebuild.
6732 * mc-boot/Galists.c: Rebuild.
6733 * mc-boot/Gdecl.c: Rebuild.
6734 * mc-boot/Gkeyc.c: Rebuild.
6735 * mc-boot/Glists.c: Rebuild.
6736 * mc-boot/GmcComment.c: Rebuild.
6737 * mc-boot/GmcComp.c: Rebuild.
6738 * mc-boot/GmcDebug.c: Rebuild.
6739 * mc-boot/GmcError.c: Rebuild.
6740 * mc-boot/GmcFileName.c: Rebuild.
6741 * mc-boot/GmcLexBuf.c: Rebuild.
6742 * mc-boot/GmcMetaError.c: Rebuild.
6743 * mc-boot/GmcOptions.c: Rebuild.
6744 * mc-boot/GmcPreprocess.c: Rebuild.
6745 * mc-boot/GmcPretty.c: Rebuild.
6746 * mc-boot/GmcPrintf.c: Rebuild.
6747 * mc-boot/GmcQuiet.c: Rebuild.
6748 * mc-boot/GmcReserved.c: Rebuild.
6749 * mc-boot/GmcSearch.c: Rebuild.
6750 * mc-boot/GmcStack.c: Rebuild.
6751 * mc-boot/GmcStream.c: Rebuild.
6752 * mc-boot/Gmcp1.c: Rebuild.
6753 * mc-boot/Gmcp2.c: Rebuild.
6754 * mc-boot/Gmcp3.c: Rebuild.
6755 * mc-boot/Gmcp4.c: Rebuild.
6756 * mc-boot/Gmcp5.c: Rebuild.
6757 * mc-boot/GnameKey.c: Rebuild.
6758 * mc-boot/GsymbolKey.c: Rebuild.
6759 * mc-boot/Gtop.c: Rebuild.
6760 * mc-boot/Gvarargs.c: Rebuild.
6761 * mc-boot/Gwlists.c: Rebuild.
6762 * mc-boot/GRTentity.h: New file.
6763 * mc/decl.mod (scaffoldStatic): Change _finish to _fini.
6764 * mc/mc.flex (_M2_mcflex_fini): New function.
6765 (_M2_mcflex_finish): Remove function.
6766 * tools-src/mklink.c (GenerateFinishCalls): Change
6768 (GeneratePrototypes): Change _finish to _fini.
6770 2023-01-31 Gaius Mulley <gaiusmod2@gmail.com>
6772 * Make-lang.in (gm2-libs.texi-check): Rename
6773 m2/gm2-libs-pim to m2/gm2-libs-log.
6774 * gm2-libs-pim/BitBlockOps.def: Moved to...
6775 * gm2-libs-log/BitBlockOps.def: ...here.
6776 * gm2-libs-pim/BitBlockOps.mod: Moved to...
6777 * gm2-libs-log/BitBlockOps.mod: ...here.
6778 * gm2-libs-pim/BitByteOps.def: Moved to...
6779 * gm2-libs-log/BitByteOps.def: ...here.
6780 * gm2-libs-pim/BitByteOps.mod: Moved to...
6781 * gm2-libs-log/BitByteOps.mod: ...here.
6782 * gm2-libs-pim/BitWordOps.def: Moved to...
6783 * gm2-libs-log/BitWordOps.def: ...here.
6784 * gm2-libs-pim/BitWordOps.mod: Moved to...
6785 * gm2-libs-log/BitWordOps.mod: ...here.
6786 * gm2-libs-pim/BlockOps.def: Moved to...
6787 * gm2-libs-log/BlockOps.def: ...here.
6788 * gm2-libs-pim/BlockOps.mod: Moved to...
6789 * gm2-libs-log/BlockOps.mod: ...here.
6790 * gm2-libs-pim/Break.c: Moved to...
6791 * gm2-libs-log/Break.c: ...here.
6792 * gm2-libs-pim/Break.def: Moved to...
6793 * gm2-libs-log/Break.def: ...here.
6794 * gm2-libs-pim/CardinalIO.def: Moved to...
6795 * gm2-libs-log/CardinalIO.def: ...here.
6796 * gm2-libs-pim/CardinalIO.mod: Moved to...
6797 * gm2-libs-log/CardinalIO.mod: ...here.
6798 * gm2-libs-pim/Conversions.def: Moved to...
6799 * gm2-libs-log/Conversions.def: ...here.
6800 * gm2-libs-pim/Conversions.mod: Moved to...
6801 * gm2-libs-log/Conversions.mod: ...here.
6802 * gm2-libs-pim/DebugPMD.def: Moved to...
6803 * gm2-libs-log/DebugPMD.def: ...here.
6804 * gm2-libs-pim/DebugPMD.mod: Moved to...
6805 * gm2-libs-log/DebugPMD.mod: ...here.
6806 * gm2-libs-pim/DebugTrace.def: Moved to...
6807 * gm2-libs-log/DebugTrace.def: ...here.
6808 * gm2-libs-pim/DebugTrace.mod: Moved to...
6809 * gm2-libs-log/DebugTrace.mod: ...here.
6810 * gm2-libs-pim/Delay.def: Moved to...
6811 * gm2-libs-log/Delay.def: ...here.
6812 * gm2-libs-pim/Delay.mod: Moved to...
6813 * gm2-libs-log/Delay.mod: ...here.
6814 * gm2-libs-pim/Display.def: Moved to...
6815 * gm2-libs-log/Display.def: ...here.
6816 * gm2-libs-pim/Display.mod: Moved to...
6817 * gm2-libs-log/Display.mod: ...here.
6818 * gm2-libs-pim/ErrorCode.def: Moved to...
6819 * gm2-libs-log/ErrorCode.def: ...here.
6820 * gm2-libs-pim/ErrorCode.mod: Moved to...
6821 * gm2-libs-log/ErrorCode.mod: ...here.
6822 * gm2-libs-pim/FileSystem.def: Moved to...
6823 * gm2-libs-log/FileSystem.def: ...here.
6824 * gm2-libs-pim/FileSystem.mod: Moved to...
6825 * gm2-libs-log/FileSystem.mod: ...here.
6826 * gm2-libs-pim/FloatingUtilities.def: Moved to...
6827 * gm2-libs-log/FloatingUtilities.def: ...here.
6828 * gm2-libs-pim/FloatingUtilities.mod: Moved to...
6829 * gm2-libs-log/FloatingUtilities.mod: ...here.
6830 * gm2-libs-pim/InOut.def: Moved to...
6831 * gm2-libs-log/InOut.def: ...here.
6832 * gm2-libs-pim/InOut.mod: Moved to...
6833 * gm2-libs-log/InOut.mod: ...here.
6834 * gm2-libs-pim/Keyboard.def: Moved to...
6835 * gm2-libs-log/Keyboard.def: ...here.
6836 * gm2-libs-pim/Keyboard.mod: Moved to...
6837 * gm2-libs-log/Keyboard.mod: ...here.
6838 * gm2-libs-pim/LongIO.def: Moved to...
6839 * gm2-libs-log/LongIO.def: ...here.
6840 * gm2-libs-pim/LongIO.mod: Moved to...
6841 * gm2-libs-log/LongIO.mod: ...here.
6842 * gm2-libs-pim/NumberConversion.def: Moved to...
6843 * gm2-libs-log/NumberConversion.def: ...here.
6844 * gm2-libs-pim/NumberConversion.mod: Moved to...
6845 * gm2-libs-log/NumberConversion.mod: ...here.
6846 * gm2-libs-pim/README.texi: Moved to...
6847 * gm2-libs-log/README.texi: ...here.
6848 * gm2-libs-pim/Random.def: Moved to...
6849 * gm2-libs-log/Random.def: ...here.
6850 * gm2-libs-pim/Random.mod: Moved to...
6851 * gm2-libs-log/Random.mod: ...here.
6852 * gm2-libs-pim/RealConversions.def: Moved to...
6853 * gm2-libs-log/RealConversions.def: ...here.
6854 * gm2-libs-pim/RealConversions.mod: Moved to...
6855 * gm2-libs-log/RealConversions.mod: ...here.
6856 * gm2-libs-pim/RealInOut.def: Moved to...
6857 * gm2-libs-log/RealInOut.def: ...here.
6858 * gm2-libs-pim/RealInOut.mod: Moved to...
6859 * gm2-libs-log/RealInOut.mod: ...here.
6860 * gm2-libs-pim/Strings.def: Moved to...
6861 * gm2-libs-log/Strings.def: ...here.
6862 * gm2-libs-pim/Strings.mod: Moved to...
6863 * gm2-libs-log/Strings.mod: ...here.
6864 * gm2-libs-pim/Termbase.def: Moved to...
6865 * gm2-libs-log/Termbase.def: ...here.
6866 * gm2-libs-pim/Termbase.mod: Moved to...
6867 * gm2-libs-log/Termbase.mod: ...here.
6868 * gm2-libs-pim/Terminal.def: Moved to...
6869 * gm2-libs-log/Terminal.def: ...here.
6870 * gm2-libs-pim/Terminal.mod: Moved to...
6871 * gm2-libs-log/Terminal.mod: ...here.
6872 * gm2-libs-pim/TimeDate.def: Moved to...
6873 * gm2-libs-log/TimeDate.def: ...here.
6874 * gm2-libs-pim/TimeDate.mod: Moved to...
6875 * gm2-libs-log/TimeDate.mod: ...here.
6877 2023-01-28 Iain Sandoe <iain@sandoe.co.uk>
6879 * lang.opt: Claim Wreturn-type.
6881 2023-01-27 Gaius Mulley <gaiusmod2@gmail.com>
6883 * gm2-compiler/M2Comp.mod: Import MetaString0.
6884 (ExamineCompilationUnit): New variable Message.
6885 Create and format error string.
6886 * gm2-compiler/M2LexBuf.mod: New variable SeenEof.
6887 (GetNonEofToken): New procedure.
6888 (Init): Set SeenEof to FALSE.
6889 (GetToken): Use GetNonEofToken instead of calls to
6890 m2flex.GetToken and GetToken.
6891 (AddTok): Detect eoftok and set SeenEof.
6893 2023-01-27 Gaius Mulley <gaiusmod2@gmail.com>
6895 * gm2-compiler/M2Options.def: Export GetMQ, SetMQ.
6896 * gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName):
6897 Test NewDir against NIL. Test Dumpdir against NIL.
6898 Test GetMD () against NIL. Test GetMMD () against NIL.
6899 Test GetMQ () against NIL. Test GetObj () against NIL.
6900 Test tempfile against NIL.
6901 * gm2-compiler/P2SymBuild.def: Export
6902 BuildNoReturnAttribute.
6904 2023-01-27 Iain Sandoe <iain@sandoe.co.uk>
6909 * gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C
6911 (gm2_langhook_init_options): Handle options that we want to pass
6912 to the preprocessor.
6913 * lang-specs.h: Pass -B and -save-temps to regular compile lines.
6914 * lang.opt: Add C and Driver options that Modula-2 intercepts for
6915 internal use. Reorder options into two sections and to collate.
6917 2023-01-26 Gaius Mulley <gaiusmod2@gmail.com>
6919 * gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn.
6920 (DeclareProcedureToGccWholeProgram): New variable declared and set
6921 returnType. Pass returnType to BuildEndFunctionDeclaration.
6922 Extra parameter IsProcedureNoReturn passed to
6923 BuildEndFunctionDeclaration.
6924 * gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct
6925 scaffold comment and add extra return 0.
6926 * gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute.
6927 (ProcedureHeading): Process EndBuildFormalParameters before
6928 parsing AttributeNoReturn.
6929 (DefProcedureHeading): Process EndBuildFormalParameters before
6930 parsing AttributeNoReturn.
6931 (AttributeNoReturn): Call BuildNoReturnAttribute.
6932 * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New
6934 * gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New
6936 * gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected
6938 (PutProcedureNoReturn): New procedure.
6939 (IsProcedureNoReturn): New procedure function.
6940 * gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn
6942 (MakeProcedure): Initialize IsNoReturn to FALSE.
6943 (PutProcedureNoReturn): New procedure.
6944 (IsProcedureNoReturn): New procedure function.
6945 * gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration):
6946 Add extra parameter isnoreturn. Set TREE_THIS_VOLATILE
6948 * gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add
6949 extra parameter isnoreturn.
6950 * gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add
6951 extra parameter isnoreturn.
6952 * gm2-gcc/m2except.cc (m2except_InitExceptions): Change all
6953 function decl to pass an extra parameter isnoreturn.
6955 2023-01-26 Gaius Mulley <gaiusmod2@gmail.com>
6957 * m2.flex (splitSlashStar): Fix comment so that /* does not
6958 appear inside the comment.
6960 2023-01-26 Iain Sandoe <iain@sandoe.co.uk>
6963 * gm2-lang.cc (gm2_langhook_init_options): Remove debug code.
6965 2023-01-26 Gaius Mulley <gaiusmod2@gmail.com>
6967 * Make-lang.in (m2/gm2config.h): Rewrite rule to be
6968 dependent upon m2/gm2config.aci.
6969 (m2/gm2config.aci): Newrule.
6970 * configure.ac (AC_CONFIG_HEADERS): Change destination
6972 * configure: Regenerate.
6973 * gm2-libs/config-host: Regenerate.
6974 * gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment
6976 * gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove
6978 (StartBuildWith): Call BuildStmtNoteTok.
6979 (BuildStmtNoteTok): New procedure.
6980 (BuildStmtNote): Re-implement re-factor into two
6981 procedures and call BuildStmtNoteTok.
6982 * gm2config.h.in: Remove.
6983 * gm2config.aci.in: New file.
6985 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
6989 * gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs.
6990 * gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD,
6991 SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
6993 * gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD,
6994 SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
6996 * gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to
6997 indicate the main file.
6998 * gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs,
6999 handle MD, MMD and MQ options.
7000 * gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly,
7001 M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD,
7002 M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ,
7003 M2Options_SetObj, M2Options_GetObj): New.
7004 * gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre-
7005 processor-only jobs.
7006 * gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands.
7007 (gm2_langhook_option_lang_mask): Claim C and Driver options so that
7008 we can intercept them for building pre-processor commands.
7009 (gm2_langhook_init_options): Collect the preprocessor line here.
7010 Save options that have different actions for preprocessor and compile
7012 (gm2_langhook_handle_option): Only handle the modula-2 options here.
7013 (gm2_langhook_post_options): Do not create a back-end for pre-
7014 processor-only jobs.
7015 * gm2spec.cc (lang_specific_driver): Ignore PCH options, append a
7016 scaffold-main for cases where we are building a main module with
7018 * lang-specs.h: Revise to handle preprocessor-only jobs and to
7019 consume pre-processed files.
7020 * lang.opt: Remove Driver and C options copies (we claim these
7023 2023-01-24 Co-Authored by: Iain Sandoe <iain@sandoe.co.uk>
7025 * Make-lang.in (GM2-COMP-BOOT-DEFS): Add
7026 DynamicStringPath.def.
7027 (GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod.
7028 (GM2-COMP-DEFS): Add DynamicStringPath.def.
7029 (GM2-COMP-MODS): Add DynamicStringPath.mod.
7030 ($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into
7031 multiple -I components.
7032 ($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
7033 ($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
7034 * gm2-compiler/M2Options.mod: Import DynamicStringPath.
7035 (SetSearchPath): Reimplement using DynamicStringPath
7037 * gm2-compiler/M2Search.def (InitSearchPath): Remove.
7038 (PrependSearchPath): Remove.
7039 * gm2-compiler/M2Search.mod (SFIO): Remove import.
7040 (DynamicStringPath): Add import.
7041 (Directory): Remove.
7043 (InitialPath): Remove.
7044 (InitSearchPath): Remove.
7045 (PrependSearchPath): Remove.
7046 (FindSourceFile): Re-implement.
7047 (FindSourceDefFile): Re-implement.
7048 (FindSourceModFile): Re-implement.
7049 * gm2-gcc/init.cc (_M2_DynamicStringPath_init):
7051 (init_FrontEndInit): Call _M2_DynamicStringPath_init.
7052 * tools-src/makeSystem: Allow multiple -I paths.
7053 * gm2-compiler/DynamicStringPath.def: New file.
7054 * gm2-compiler/DynamicStringPath.mod: New file.
7055 * gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add
7058 2023-01-24 Gaius Mulley <gaiusmod2@gmail.com>
7060 * m2.flex (cpreprocessor): Add temporary variable
7061 which is initialized to 0.
7062 (commentCLevel): New variable.
7063 (endOfCComment): New function.
7064 (splitSlashStar): New function to split /* into / and *
7066 (COMMENTC): New flex state.
7067 ("/*"): New rule to test whether we should treat /*
7068 as a single token or as two tokens.
7069 (<COMMENTC>.): New rule to skip a character.
7070 (<COMMENTC>\n.*): New rule to consume the line.
7071 (<COMMENTC>"*/"): New rule to call endOfCComment.
7073 2023-01-24 Gaius Mulley <gaiusmod2@gmail.com>
7075 * gm2-libs-iso/RTco.def: Import RTentity.
7076 Declare RTco as a definition for C module.
7078 2023-01-23 Iain Sandoe <iain@sandoe.co.uk>
7082 * Make-lang.in: Pass libsubdir to the language init
7084 * gm2-lang.cc (INCLUDE_VECTOR): Define.
7085 (add_one_import_path): New.
7086 (add_m2_import_paths): New.
7087 (gm2_langhook_post_options): Arrange to add the include
7088 paths (and add the system ones) in the same order as C
7090 * gm2spec.cc (build_archive_path): Remove.
7091 (add_default_combination): Remove.
7092 (add_default_archives): Remove.
7093 (add_default_libs): We no longer need a '-L' option, just
7094 emit the -l and each library in use.
7095 (build_include_path): Remove.
7096 (add_include): Remove.
7097 (add_default_includes): Remove.
7098 (library_installed): Remove.
7099 (check_valid_library): Remove.
7100 (check_valid_list): Remove.
7101 (convert_abbreviation): Diagnose unhandled cases.
7102 (lang_specific_driver): Skip options where we will add back
7103 a validated version.
7104 * lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not
7105 in use. Revise the cc1gm2 spec to omit mentioning options that
7106 are handled in the c pre-processor line.
7107 * lang.opt: Allow preprocessing and path options as input to the
7108 cc1gm2 invocation, so that they can be passed to the preprocessor
7111 2023-01-23 Iain Sandoe <iain@sandoe.co.uk>
7114 * gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for
7115 extra space that is divisible by common OS pagesizes.
7117 2023-01-20 Gaius Mulley <gaiusmod2@gmail.com>
7119 * gm2-libs/Args.mod (GetArg): Check index before
7121 * gm2-libs/M2Dependent.mod (toCString): Check index
7122 before accessing array.
7123 * mc-boot/GArgs.c: Rebuilt.
7124 * mc-boot/GM2Dependent.c: Rebuilt.
7125 * mc-boot/Gkeyc.c: Rebuilt.
7126 * mc/keyc.mod (seenUIntMin): Initialize once.
7127 (seenUIntMax): Initialize once.
7128 (checkLimits): Only test seenUIntMin and seenUIntMax
7130 * pge-boot/GArgs.c: Rebuilt.
7131 * pge-boot/GM2Dependent.c: Rebuilt.
7133 2023-01-20 Gaius Mulley <gaiusmod2@gmail.com>
7135 * gm2-gcc/m2statement.cc (gm2_gimplify_function_node):
7137 * gm2-libs/DynamicStrings.mod (Equal): Remove dead code.
7138 * m2.flex (<COMMENT>"<*"): Add {} for else statement.
7139 * m2pp.cc (hextree): Add conditional #ifdef DEBUGGING.
7140 * mc-boot/GDynamicStrings.c: Rebuild.
7141 * pge-boot/GDynamicStrings.c: Rebuild.
7142 * pge-boot/GFIO.c: Rebuild.
7143 * pge-boot/GIndexing.c: Rebuild.
7144 * pge-boot/GM2EXCEPTION.c: Rebuild.
7145 * pge-boot/GM2RTS.c: Rebuild.
7146 * pge-boot/GNameKey.c: Rebuild.
7147 * pge-boot/GPushBackInput.c: Rebuild.
7148 * pge-boot/GRTExceptions.c: Rebuild.
7149 * pge-boot/GStdIO.c: Rebuild.
7150 * pge-boot/GSymbolKey.c: Rebuild.
7151 * pge-boot/GSysStorage.c: Rebuild.
7153 2023-01-17 Gaius Mulley <gaiusmod2@gmail.com>
7155 * mc-boot/GM2RTS.c: Rebuilt.
7156 * mc-boot/GM2RTS.h: Rebuilt.
7157 * mc-boot/Gdecl.c: Rebuilt.
7158 * mc-boot/GmcOptions.c: Rebuilt.
7159 * mc/mcOptions.mod (displayVersion):
7160 Split first printf into three components
7162 2023-01-17 Gaius Mulley <gaiusmod2@gmail.com>
7164 * gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename.
7165 (HaltC): New procedure declaration.
7166 (ErrorMessage): Parameter file renamed to filename.
7167 * gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to
7169 (HaltC): New procedure implementation.
7170 (ErrorStringC): New procedure implementation.
7171 (ErrorMessageC): New procedure implementation.
7172 * gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename.
7173 (HaltC): New procedure declaration.
7174 (ErrorMessage): Parameter file renamed to filename.
7175 * gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename.
7176 (HaltC): New procedure implementation.
7177 (ErrorStringC): New procedure implementation.
7178 (ErrorMessageC): New procedure implementation.
7180 2023-01-16 Gaius Mulley <gaiusmod2@gmail.com>
7182 * mc-boot-ch/Glibc.c (libc_time): New function.
7183 (libc_localtime): New function.
7184 * mc-boot/GDynamicStrings.c: Regenerate.
7185 * mc-boot/GFIO.c: Regenerate.
7186 * mc-boot/GFormatStrings.c: Regenerate.
7187 * mc-boot/GIndexing.c: Regenerate.
7188 * mc-boot/GM2Dependent.c: Regenerate.
7189 * mc-boot/GM2EXCEPTION.c: Regenerate.
7190 * mc-boot/GPushBackInput.c: Regenerate.
7191 * mc-boot/GRTExceptions.c: Regenerate.
7192 * mc-boot/GRTint.c: Regenerate.
7193 * mc-boot/GStdIO.c: Regenerate.
7194 * mc-boot/GStringConvert.c: Regenerate.
7195 * mc-boot/GSysStorage.c: Regenerate.
7196 * mc-boot/Gdecl.c: Regenerate.
7197 * mc-boot/GmcComment.c: Regenerate.
7198 * mc-boot/GmcComp.c: Regenerate.
7199 * mc-boot/GmcDebug.c: Regenerate.
7200 * mc-boot/GmcMetaError.c: Regenerate.
7201 * mc-boot/GmcOptions.c: Regenerate.
7202 * mc-boot/GmcStack.c: Regenerate.
7203 * mc-boot/GnameKey.c: Regenerate.
7204 * mc-boot/GsymbolKey.c: Regenerate.
7205 * mc-boot/Gkeyc.c: Regenerate.
7206 * mc/decl.mod (putFieldRecord): Change NulName to NulKey
7207 and fix type comparision.
7208 * mc/mcOptions.mod (YEAR): Remove.
7209 (getYear): New procedure function.
7210 (displayVersion): Use result from getYear instead of YEAR.
7211 Emit boilerplate for GPL v3.
7212 (gplBody): Use result from getYear instead of YEAR.
7213 (glplBody): Use result from getYear instead of YEAR.
7215 2023-01-16 Gaius Mulley <gaiusmod2@gmail.com>
7217 * gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type
7218 against NulSym and call MetaErrorT1 if necessary.
7219 (AssignUnboundedNonVar): Check Type against NulSym and
7220 call MetaErrorT1 if necessary.
7221 (BuildDesignatorPointer): Check Type1 against NulSym and
7222 call MetaErrorT1 if necessary.
7224 2023-01-16 Gaius Mulley <gaiusmod2@gmail.com>
7226 * mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3.
7229 2023-01-15 Gaius Mulley <gaiusmod2@gmail.com>
7231 * gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment.
7233 * gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter.
7234 * gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter.
7235 Create and push virtual token.
7236 (PopBooltok): New procedure.
7237 (PushBooltok): New procedure.
7238 (PushBool): Re-implement using PushBooltok.
7239 (PopBool): Re-implement using PopBooltok.
7240 * gm2-compiler/P3Build.bnf (ConstFactor): Record token
7242 (Factor): Record token position of NOT.
7243 * gm2-compiler/PHBuild.bnf (ConstFactor): Record token
7245 (Relation): Push token position.
7246 (UnaryOrConstTerm): Push token position.
7247 (AddOperator): Push token position.
7248 (MulOperator): Push token position.
7250 2023-01-13 Iain Sandoe <iain@sandoe.co.uk>
7252 * gm2-gcc/m2options.h (M2Options_SetVerbose): Export the
7254 * gm2-lang.cc: Handle OPT_v, passing it to the compiler.
7255 * lang-specs.h: Pass -v to cc1gm2.
7257 2023-01-13 Gaius Mulley <gaiusmod2@gmail.com>
7259 * mc-boot-ch/GRTco.c (RTco_select): Add return 0.
7260 * pge-boot/GRTco.c (RTco_select): Add return 0.
7262 2023-01-10 Gaius Mulley <gaiusmod2@gmail.com>
7264 * Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
7265 m2/gm2-libs/gm2-libs-host.h dependency.
7266 (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
7267 m2/gm2-libs/gm2-libs-host.h dependency.
7269 2023-01-10 Gaius Mulley <gaiusmod2@gmail.com>
7271 * Make-lang.in (GM2_1): Change -B path to m2/stage1.
7272 ($(objdir)/m2/images/gnu.eps): Check and create dest dir
7274 (gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
7275 m2/gm2-libs-iso and m2/gm2-libs if necessary.
7276 ($(objdir)/m2/gm2-compiler-boot): Remove.
7277 ($(objdir)/m2/gm2-libs-boot): Remove.
7278 ($(objdir)/m2/gm2-libs-libiberty): Remove.
7279 ($(objdir)/m2/gm2-libiberty): Remove.
7280 ($(objdir)/m2/gm2-gcc): Remove.
7281 ($(objdir)/m2/gm2-compiler): Remove.
7282 ($(objdir)/m2/gm2-libs): Remove.
7283 ($(objdir)/m2/gm2-libs-iso): Remove.
7284 ($(objdir)/m2/gm2-libs-min): Remove.
7285 ($(objdir)/m2/gm2-compiler-paranoid): Remove.
7286 ($(objdir)/m2/gm2-libs-paranoid): Remove.
7287 ($(objdir)/m2/gm2-compiler-verify): Remove.
7288 ($(objdir)/m2/boot-bin): Remove.
7289 ($(objdir)/m2/gm2-libs-pim): Remove.
7290 ($(objdir)/m2/gm2-libs-coroutines): Remove.
7291 (stage1/m2): Remove.
7292 (stage2/m2): Remove.
7293 (stage3/m2): Remove.
7294 (m2.stageprofile): New rule.
7295 (m2.stagefeedback): New rule.
7296 (cc1gm2$(exeext)): Change dependent name.
7297 (m2/stage2/cc1gm2$(exeext)): Change dependent name.
7298 Check and create dest dir.
7299 (m2/stage1/cc1gm2$(exeext)): Check and create dest dir
7301 (m2/gm2-gcc/%.o): Ditto.
7302 (m2/gm2-gcc/rtegraph.o): Ditto.
7303 (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
7304 (m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
7305 (m2/mc-boot): Ditto.
7306 (m2/mc-boot-ch): Ditto.
7307 (m2/gm2-libs-boot): Ditto.
7308 (m2/gm2-compiler-boot): Ditto.
7309 (m2/gm2-compiler): Ditto.
7310 (m2/gm2-libiberty): Ditto.
7311 (m2/gm2-compiler): Ditto.
7312 (m2/gm2-libs-iso): Ditto.
7313 (m2/gm2-libs): Ditto.
7314 (m2/gm2-libs-min): Ditto.
7315 (m2/gm2-libs-coroutines): Ditto.
7316 (m2/boot-bin): Ditto.
7317 (m2/pge-boot): Ditto.
7318 (m2/pge-boot): Ditto.
7319 * Make-maintainer.in (m2/gm2-ppg-boot): Check and create
7320 dest dir if necessary.
7322 (m2/gm2-ppg-boot): Ditto.
7323 (m2/gm2-pg-boot): Ditto.
7324 (m2/gm2-auto): Ditto.
7325 (m2/gm2-pg-boot): Ditto.
7326 (m2/gm2-pge-boot): Ditto.
7327 ($(objdir)/plugin): Ditto.
7328 ($(objdir)/m2/mc-boot-ch): Ditto.
7329 ($(objdir)/m2/mc-boot-gen): Ditto.
7330 (m2/boot-bin): Ditto.
7333 ($(objdir)/m2/gm2-ppg-boot): Ditto.
7334 ($(objdir)/m2/gm2-pg-boot): Ditto.
7335 ($(objdir)/m2/gm2-pge-boot): Ditto.
7336 (m2/mc-boot-gen): Ditto.
7338 (m2/gm2-libs-paranoid): Ditto.
7339 (m2/gm2-compiler-paranoid): Ditto.
7340 (m2/gm2-libs-paranoid): Ditto.
7341 (m2/gm2-compiler-paranoid): Ditto.
7342 (m2/gm2-libs-paranoid): Ditto.
7343 (m2/gm2-compiler-paranoid): Ditto.
7344 * config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
7345 (m2/gm2-libs-boot): Ditto.
7346 (m2/gm2-ici-boot): Ditto.
7347 (m2/gm2-libiberty): Ditto.
7348 (m2/gm2-gcc): Ditto.
7349 (m2/gm2-compiler): Ditto.
7350 (m2/gm2-libs): Ditto.
7351 (m2/gm2-libs-iso): Ditto.
7352 (m2/gm2-compiler-paranoid): Ditto.
7353 (m2/gm2-libs-paranoid): Ditto.
7354 (m2/gm2-compiler-verify): Ditto.
7355 (m2/boot-bin): Ditto.
7356 (m2/gm2-libs-pim): Ditto.
7357 (m2/gm2-libs-coroutines): Ditto.
7358 (m2/gm2-libs-min): Ditto.
7359 (m2/pge-boot): Ditto.
7365 (m2/gm2-auto): Ditto.
7366 (m2/gm2-pg-boot): Ditto.
7367 (m2/gm2-pge-boot): Ditto.
7368 (m2/gm2-ppg-boot): Ditto.
7369 (m2/mc-boot): Ditto.
7370 (m2/mc-boot-ch): Ditto.
7371 (m2/mc-boot-gen): Ditto.
7373 2023-01-09 Gaius Mulley <gaiusmod2@gmail.com>
7375 * Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
7376 * gm2-libs/config-host: Regenerate.
7378 2023-01-07 Iain Sandoe <iain@sandoe.co.uk>
7380 * gm2-libs-min/libc.c (abort): Update declaration to match the
7381 expected form, add no-return attribute.
7382 (exit): Add no-return attribute.
7384 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
7387 * gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
7388 significand, significandf, significandl.
7389 * gm2-libs/Builtins.def (significand): Likewise.
7390 * gm2-libs/Builtins.mod: Likewise.
7391 * target-independent/Builtins.texi: Likewise.
7392 * gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
7394 * gm2-libs-iso/LowReal.mod: Likewise.
7395 * gm2-libs-iso/LowShort.mod: Likewise.
7397 2023-01-05 Gaius Mulley <gaiusmod2@gmail.com>
7399 * gm2-libs-min/M2RTS.def (ConstructModules): New procedure
7401 (DeconstructModules): New procedure declaration.
7402 * gm2-libs-min/M2RTS.mod (ConstructModules): New procedure
7403 dummy implementation.
7404 (DeconstructModules): New procedure dummy implementation.
7406 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
7408 * gm2spec.cc (lang_specific_driver): Handle static-libgm2.
7409 * lang.opt: Add static-libgm2.
7411 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
7413 * gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to
7414 the target driver if the linker does not support Bstatic/dynamic.
7416 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7419 * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use
7420 an extern "C" function with 'constructor' attribute.
7421 * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise.
7422 * gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise.
7424 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7427 * gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module
7428 registration constructors visible.
7430 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7432 * Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also
7433 use the configured tools for texi -> dvi and texi -> pdf.
7435 2023-01-01 Iain Sandoe <iain@sandoe.co.uk>
7436 Gaius Mulley <gaiusmod2@gmail.com>
7439 * gm2-compiler/M2GCCDeclare.mod: Module registration constructors are
7440 externs to the builder of m2_link.
7442 2022-12-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7443 Iain Sandoe <iain@sandoe.co.uk>
7446 * Make-lang.in (soext): Use .dylib for Darwin.
7447 (PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append
7448 -nodefaultlibs to suppress the linking of libstdc++.
7449 Use INCINTL in compile lines for the plugin.
7451 2022-12-21 Jakub Jelinek <jakub@redhat.com>
7454 * gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER.
7456 2022-12-19 Jakub Jelinek <jakub@redhat.com>
7458 * gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf,
7459 m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error):
7460 Call functions with "%s", message rather than just message, so that
7461 % chars in message aren't treated as format specifiers.
7463 2022-12-19 Jakub Jelinek <jakub@redhat.com>
7466 * gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf):
7467 Comment out prototypes with varargs.
7468 * gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf,
7469 m2linemap_NoteAtf): No longer varargs.
7470 * gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a
7471 non-varargs wrapper around ...
7472 (m2linemap_ErrorAtf_1): ... this. New static function.
7473 (m2linemap_WarningAtf): Turned into a non-varargs wrapper around ...
7474 (m2linemap_WarningAtf_1): ... this. New static function.
7475 (m2linemap_NoteAtf): Turned into a non-varargs wrapper around ...
7476 (m2linemap_NoteAtf_1): ... this. New static function.
7478 2022-12-15 Gaius Mulley <gaiusmod2@gmail.com>
7480 * configure.ac: Stop probing for realpath.
7481 * tools-src/calcpath: Break dependency on realpath, cut
7483 * configure: Rebuilt.
7485 2022-12-15 Gaius Mulley <gaiusmod2@gmail.com>
7487 * gm2config.h.in: Rebuilt.
7489 2022-12-14 Gaius Mulley <gaiusmod2@gmail.com>
7491 * COPYING.FDL: New file.
7492 * COPYING.RUNTIME: New file.
7493 * COPYING3: New file.
7494 * COPYING3.LIB: New file.
7495 * Make-lang.in: New file.
7496 * Make-maintainer.in: New file.
7499 * config-lang.in: New file.
7500 * config-make.in: New file.
7501 * configure.ac: New file.
7502 * gm2-compiler/CLexBuf.def: New file.
7503 * gm2-compiler/CLexBuf.mod: New file.
7504 * gm2-compiler/FifoQueue.def: New file.
7505 * gm2-compiler/FifoQueue.mod: New file.
7506 * gm2-compiler/Lists.def: New file.
7507 * gm2-compiler/Lists.mod: New file.
7508 * gm2-compiler/M2ALU.def: New file.
7509 * gm2-compiler/M2ALU.mod: New file.
7510 * gm2-compiler/M2AsmUtil.def: New file.
7511 * gm2-compiler/M2AsmUtil.mod: New file.
7512 * gm2-compiler/M2Base.def: New file.
7513 * gm2-compiler/M2Base.mod: New file.
7514 * gm2-compiler/M2BasicBlock.def: New file.
7515 * gm2-compiler/M2BasicBlock.mod: New file.
7516 * gm2-compiler/M2Batch.def: New file.
7517 * gm2-compiler/M2Batch.mod: New file.
7518 * gm2-compiler/M2Bitset.def: New file.
7519 * gm2-compiler/M2Bitset.mod: New file.
7520 * gm2-compiler/M2CaseList.def: New file.
7521 * gm2-compiler/M2CaseList.mod: New file.
7522 * gm2-compiler/M2Check.def: New file.
7523 * gm2-compiler/M2Check.mod: New file.
7524 * gm2-compiler/M2Code.def: New file.
7525 * gm2-compiler/M2Code.mod: New file.
7526 * gm2-compiler/M2ColorString.def: New file.
7527 * gm2-compiler/M2ColorString.mod: New file.
7528 * gm2-compiler/M2Comp.def: New file.
7529 * gm2-compiler/M2Comp.mod: New file.
7530 * gm2-compiler/M2Const.def: New file.
7531 * gm2-compiler/M2Const.mod: New file.
7532 * gm2-compiler/M2Debug.def: New file.
7533 * gm2-compiler/M2Debug.mod: New file.
7534 * gm2-compiler/M2DebugStack.def: New file.
7535 * gm2-compiler/M2DebugStack.mod: New file.
7536 * gm2-compiler/M2Defaults.def: New file.
7537 * gm2-compiler/M2Defaults.mod: New file.
7538 * gm2-compiler/M2DriverOptions.def: New file.
7539 * gm2-compiler/M2DriverOptions.mod: New file.
7540 * gm2-compiler/M2Emit.def: New file.
7541 * gm2-compiler/M2Emit.mod: New file.
7542 * gm2-compiler/M2Error.def: New file.
7543 * gm2-compiler/M2Error.mod: New file.
7544 * gm2-compiler/M2EvalSym.def: New file.
7545 * gm2-compiler/M2FileName.def: New file.
7546 * gm2-compiler/M2FileName.mod: New file.
7547 * gm2-compiler/M2GCCDeclare.def: New file.
7548 * gm2-compiler/M2GCCDeclare.mod: New file.
7549 * gm2-compiler/M2GenGCC.def: New file.
7550 * gm2-compiler/M2GenGCC.mod: New file.
7551 * gm2-compiler/M2Graph.def: New file.
7552 * gm2-compiler/M2Graph.mod: New file.
7553 * gm2-compiler/M2Lex.def: New file.
7554 * gm2-compiler/M2Lex.mod: New file.
7555 * gm2-compiler/M2LexBuf.def: New file.
7556 * gm2-compiler/M2LexBuf.mod: New file.
7557 * gm2-compiler/M2MetaError.def: New file.
7558 * gm2-compiler/M2MetaError.mod: New file.
7559 * gm2-compiler/M2Optimize.def: New file.
7560 * gm2-compiler/M2Optimize.mod: New file.
7561 * gm2-compiler/M2Options.def: New file.
7562 * gm2-compiler/M2Options.mod: New file.
7563 * gm2-compiler/M2Pass.def: New file.
7564 * gm2-compiler/M2Pass.mod: New file.
7565 * gm2-compiler/M2Preprocess.def: New file.
7566 * gm2-compiler/M2Preprocess.mod: New file.
7567 * gm2-compiler/M2Printf.def: New file.
7568 * gm2-compiler/M2Printf.mod: New file.
7569 * gm2-compiler/M2Quads.def: New file.
7570 * gm2-compiler/M2Quads.mod: New file.
7571 * gm2-compiler/M2Quiet.def: New file.
7572 * gm2-compiler/M2Quiet.mod: New file.
7573 * gm2-compiler/M2Range.def: New file.
7574 * gm2-compiler/M2Range.mod: New file.
7575 * gm2-compiler/M2Reserved.def: New file.
7576 * gm2-compiler/M2Reserved.mod: New file.
7577 * gm2-compiler/M2SSA.def: New file.
7578 * gm2-compiler/M2SSA.mod: New file.
7579 * gm2-compiler/M2Scaffold.def: New file.
7580 * gm2-compiler/M2Scaffold.mod: New file.
7581 * gm2-compiler/M2Scope.def: New file.
7582 * gm2-compiler/M2Scope.mod: New file.
7583 * gm2-compiler/M2Search.def: New file.
7584 * gm2-compiler/M2Search.mod: New file.
7585 * gm2-compiler/M2Size.def: New file.
7586 * gm2-compiler/M2Size.mod: New file.
7587 * gm2-compiler/M2StackAddress.def: New file.
7588 * gm2-compiler/M2StackAddress.mod: New file.
7589 * gm2-compiler/M2StackWord.def: New file.
7590 * gm2-compiler/M2StackWord.mod: New file.
7591 * gm2-compiler/M2Students.def: New file.
7592 * gm2-compiler/M2Students.mod: New file.
7593 * gm2-compiler/M2Swig.def: New file.
7594 * gm2-compiler/M2Swig.mod: New file.
7595 * gm2-compiler/M2System.def: New file.
7596 * gm2-compiler/M2System.mod: New file.
7597 * gm2-compiler/M2Version.def: New file.
7598 * gm2-compiler/NameKey.def: New file.
7599 * gm2-compiler/NameKey.mod: New file.
7600 * gm2-compiler/ObjectFiles.def: New file.
7601 * gm2-compiler/ObjectFiles.mod: New file.
7602 * gm2-compiler/Output.def: New file.
7603 * gm2-compiler/Output.mod: New file.
7604 * gm2-compiler/P0SymBuild.def: New file.
7605 * gm2-compiler/P0SymBuild.mod: New file.
7606 * gm2-compiler/P0SyntaxCheck.bnf: New file.
7607 * gm2-compiler/P0SyntaxCheck.def: New file.
7608 * gm2-compiler/P1Build.bnf: New file.
7609 * gm2-compiler/P1Build.def: New file.
7610 * gm2-compiler/P1SymBuild.def: New file.
7611 * gm2-compiler/P1SymBuild.mod: New file.
7612 * gm2-compiler/P2Build.bnf: New file.
7613 * gm2-compiler/P2Build.def: New file.
7614 * gm2-compiler/P2SymBuild.def: New file.
7615 * gm2-compiler/P2SymBuild.mod: New file.
7616 * gm2-compiler/P3Build.bnf: New file.
7617 * gm2-compiler/P3Build.def: New file.
7618 * gm2-compiler/P3SymBuild.def: New file.
7619 * gm2-compiler/P3SymBuild.mod: New file.
7620 * gm2-compiler/PCBuild.bnf: New file.
7621 * gm2-compiler/PCBuild.def: New file.
7622 * gm2-compiler/PCSymBuild.def: New file.
7623 * gm2-compiler/PCSymBuild.mod: New file.
7624 * gm2-compiler/PHBuild.bnf: New file.
7625 * gm2-compiler/PHBuild.def: New file.
7626 * gm2-compiler/README: New file.
7627 * gm2-compiler/Sets.def: New file.
7628 * gm2-compiler/Sets.mod: New file.
7629 * gm2-compiler/SymbolConversion.def: New file.
7630 * gm2-compiler/SymbolConversion.mod: New file.
7631 * gm2-compiler/SymbolKey.def: New file.
7632 * gm2-compiler/SymbolKey.mod: New file.
7633 * gm2-compiler/SymbolTable.def: New file.
7634 * gm2-compiler/SymbolTable.mod: New file.
7635 * gm2-compiler/bnflex.def: New file.
7636 * gm2-compiler/bnflex.mod: New file.
7637 * gm2-compiler/cflex.def: New file.
7638 * gm2-compiler/gm2.mod: New file.
7639 * gm2-compiler/gm2lcc.mod: New file.
7640 * gm2-compiler/gm2lgen.mod: New file.
7641 * gm2-compiler/gm2lorder.mod: New file.
7642 * gm2-compiler/m2flex.def: New file.
7643 * gm2-compiler/ppg.mod: New file.
7644 * gm2-gcc/README: New file.
7645 * gm2-gcc/dynamicstrings.h: New file.
7646 * gm2-gcc/gcc-consolidation.h: New file.
7647 * gm2-gcc/init.cc: New file.
7648 * gm2-gcc/init.def: New file.
7649 * gm2-gcc/init.h: New file.
7650 * gm2-gcc/m2assert.cc: New file.
7651 * gm2-gcc/m2assert.h: New file.
7652 * gm2-gcc/m2block.cc: New file.
7653 * gm2-gcc/m2block.def: New file.
7654 * gm2-gcc/m2block.h: New file.
7655 * gm2-gcc/m2builtins.cc: New file.
7656 * gm2-gcc/m2builtins.def: New file.
7657 * gm2-gcc/m2builtins.h: New file.
7658 * gm2-gcc/m2color.cc: New file.
7659 * gm2-gcc/m2color.def: New file.
7660 * gm2-gcc/m2color.h: New file.
7661 * gm2-gcc/m2configure.cc: New file.
7662 * gm2-gcc/m2configure.def: New file.
7663 * gm2-gcc/m2configure.h: New file.
7664 * gm2-gcc/m2convert.cc: New file.
7665 * gm2-gcc/m2convert.def: New file.
7666 * gm2-gcc/m2convert.h: New file.
7667 * gm2-gcc/m2decl.cc: New file.
7668 * gm2-gcc/m2decl.def: New file.
7669 * gm2-gcc/m2decl.h: New file.
7670 * gm2-gcc/m2except.cc: New file.
7671 * gm2-gcc/m2except.def: New file.
7672 * gm2-gcc/m2except.h: New file.
7673 * gm2-gcc/m2expr.cc: New file.
7674 * gm2-gcc/m2expr.def: New file.
7675 * gm2-gcc/m2expr.h: New file.
7676 * gm2-gcc/m2linemap.cc: New file.
7677 * gm2-gcc/m2linemap.def: New file.
7678 * gm2-gcc/m2linemap.h: New file.
7679 * gm2-gcc/m2misc.cc: New file.
7680 * gm2-gcc/m2misc.def: New file.
7681 * gm2-gcc/m2misc.h: New file.
7682 * gm2-gcc/m2options.h: New file.
7683 * gm2-gcc/m2range.h: New file.
7684 * gm2-gcc/m2search.h: New file.
7685 * gm2-gcc/m2statement.cc: New file.
7686 * gm2-gcc/m2statement.def: New file.
7687 * gm2-gcc/m2statement.h: New file.
7688 * gm2-gcc/m2top.cc: New file.
7689 * gm2-gcc/m2top.def: New file.
7690 * gm2-gcc/m2top.h: New file.
7691 * gm2-gcc/m2tree.cc: New file.
7692 * gm2-gcc/m2tree.def: New file.
7693 * gm2-gcc/m2tree.h: New file.
7694 * gm2-gcc/m2treelib.cc: New file.
7695 * gm2-gcc/m2treelib.def: New file.
7696 * gm2-gcc/m2treelib.h: New file.
7697 * gm2-gcc/m2type.cc: New file.
7698 * gm2-gcc/m2type.def: New file.
7699 * gm2-gcc/m2type.h: New file.
7700 * gm2-gcc/rtegraph.cc: New file.
7701 * gm2-gcc/rtegraph.h: New file.
7702 * gm2-ici/M2Emit.mod: New file.
7703 * gm2-ici/README: New file.
7704 * gm2-ici/m2linemap.c: New file.
7705 * gm2-internals.texi: New file.
7706 * gm2-lang.cc: New file.
7707 * gm2-lang.h: New file.
7708 * gm2-libiberty/README: New file.
7709 * gm2-libiberty/choosetemp.def: New file.
7710 * gm2-libiberty/pexecute.def: New file.
7711 * gm2-libs-ch/M2LINK.c: New file.
7712 * gm2-libs-ch/README: New file.
7713 * gm2-libs-ch/RTcodummy.c: New file.
7714 * gm2-libs-ch/RTintdummy.c: New file.
7715 * gm2-libs-ch/Selective.c: New file.
7716 * gm2-libs-ch/SysExceptions.c: New file.
7717 * gm2-libs-ch/UnixArgs.cc: New file.
7718 * gm2-libs-ch/cgetopt.c: New file.
7719 * gm2-libs-ch/choosetemp.c: New file.
7720 * gm2-libs-ch/dtoa.cc: New file.
7721 * gm2-libs-ch/errno.c: New file.
7722 * gm2-libs-ch/host.c: New file.
7723 * gm2-libs-ch/ldtoa.cc: New file.
7724 * gm2-libs-ch/m2rts.h: New file.
7725 * gm2-libs-ch/termios.c: New file.
7726 * gm2-libs-ch/tools.c: New file.
7727 * gm2-libs-ch/wrapc.c: New file.
7728 * gm2-libs-ch/xlibc.c: New file.
7729 * gm2-libs-coroutines/Debug.def: New file.
7730 * gm2-libs-coroutines/Debug.mod: New file.
7731 * gm2-libs-coroutines/Executive.def: New file.
7732 * gm2-libs-coroutines/Executive.mod: New file.
7733 * gm2-libs-coroutines/KeyBoardLEDs.def: New file.
7734 * gm2-libs-coroutines/README.texi: New file.
7735 * gm2-libs-coroutines/SYSTEM.def: New file.
7736 * gm2-libs-coroutines/SYSTEM.mod: New file.
7737 * gm2-libs-coroutines/TimerHandler.def: New file.
7738 * gm2-libs-coroutines/TimerHandler.mod: New file.
7739 * gm2-libs-iso/COROUTINES.def: New file.
7740 * gm2-libs-iso/COROUTINES.mod: New file.
7741 * gm2-libs-iso/ChanConsts.def: New file.
7742 * gm2-libs-iso/ChanConsts.h: New file.
7743 * gm2-libs-iso/ChanConsts.mod: New file.
7744 * gm2-libs-iso/CharClass.def: New file.
7745 * gm2-libs-iso/CharClass.mod: New file.
7746 * gm2-libs-iso/ClientSocket.def: New file.
7747 * gm2-libs-iso/ClientSocket.mod: New file.
7748 * gm2-libs-iso/ComplexMath.def: New file.
7749 * gm2-libs-iso/ComplexMath.mod: New file.
7750 * gm2-libs-iso/ConvStringLong.def: New file.
7751 * gm2-libs-iso/ConvStringLong.mod: New file.
7752 * gm2-libs-iso/ConvStringReal.def: New file.
7753 * gm2-libs-iso/ConvStringReal.mod: New file.
7754 * gm2-libs-iso/ConvTypes.def: New file.
7755 * gm2-libs-iso/ConvTypes.mod: New file.
7756 * gm2-libs-iso/EXCEPTIONS.def: New file.
7757 * gm2-libs-iso/EXCEPTIONS.mod: New file.
7758 * gm2-libs-iso/ErrnoCategory.def: New file.
7759 * gm2-libs-iso/GeneralUserExceptions.def: New file.
7760 * gm2-libs-iso/GeneralUserExceptions.mod: New file.
7761 * gm2-libs-iso/IOChan.def: New file.
7762 * gm2-libs-iso/IOChan.mod: New file.
7763 * gm2-libs-iso/IOConsts.def: New file.
7764 * gm2-libs-iso/IOConsts.mod: New file.
7765 * gm2-libs-iso/IOLink.def: New file.
7766 * gm2-libs-iso/IOLink.mod: New file.
7767 * gm2-libs-iso/IOResult.def: New file.
7768 * gm2-libs-iso/IOResult.mod: New file.
7769 * gm2-libs-iso/LongComplexMath.def: New file.
7770 * gm2-libs-iso/LongComplexMath.mod: New file.
7771 * gm2-libs-iso/LongConv.def: New file.
7772 * gm2-libs-iso/LongConv.mod: New file.
7773 * gm2-libs-iso/LongIO.def: New file.
7774 * gm2-libs-iso/LongIO.mod: New file.
7775 * gm2-libs-iso/LongMath.def: New file.
7776 * gm2-libs-iso/LongMath.mod: New file.
7777 * gm2-libs-iso/LongStr.def: New file.
7778 * gm2-libs-iso/LongStr.mod: New file.
7779 * gm2-libs-iso/LongWholeIO.def: New file.
7780 * gm2-libs-iso/LongWholeIO.mod: New file.
7781 * gm2-libs-iso/LowLong.def: New file.
7782 * gm2-libs-iso/LowLong.mod: New file.
7783 * gm2-libs-iso/LowReal.def: New file.
7784 * gm2-libs-iso/LowReal.mod: New file.
7785 * gm2-libs-iso/LowShort.def: New file.
7786 * gm2-libs-iso/LowShort.mod: New file.
7787 * gm2-libs-iso/M2EXCEPTION.def: New file.
7788 * gm2-libs-iso/M2EXCEPTION.mod: New file.
7789 * gm2-libs-iso/M2RTS.def: New file.
7790 * gm2-libs-iso/M2RTS.mod: New file.
7791 * gm2-libs-iso/MemStream.def: New file.
7792 * gm2-libs-iso/MemStream.mod: New file.
7793 * gm2-libs-iso/Preemptive.def: New file.
7794 * gm2-libs-iso/Preemptive.mod: New file.
7795 * gm2-libs-iso/Processes.def: New file.
7796 * gm2-libs-iso/Processes.mod: New file.
7797 * gm2-libs-iso/ProgramArgs.def: New file.
7798 * gm2-libs-iso/ProgramArgs.mod: New file.
7799 * gm2-libs-iso/README.texi: New file.
7800 * gm2-libs-iso/RTco.def: New file.
7801 * gm2-libs-iso/RTdata.def: New file.
7802 * gm2-libs-iso/RTdata.mod: New file.
7803 * gm2-libs-iso/RTentity.def: New file.
7804 * gm2-libs-iso/RTentity.mod: New file.
7805 * gm2-libs-iso/RTfio.def: New file.
7806 * gm2-libs-iso/RTfio.mod: New file.
7807 * gm2-libs-iso/RTgen.def: New file.
7808 * gm2-libs-iso/RTgen.mod: New file.
7809 * gm2-libs-iso/RTgenif.def: New file.
7810 * gm2-libs-iso/RTgenif.mod: New file.
7811 * gm2-libs-iso/RTio.def: New file.
7812 * gm2-libs-iso/RTio.mod: New file.
7813 * gm2-libs-iso/RandomNumber.def: New file.
7814 * gm2-libs-iso/RandomNumber.mod: New file.
7815 * gm2-libs-iso/RawIO.def: New file.
7816 * gm2-libs-iso/RawIO.mod: New file.
7817 * gm2-libs-iso/RealConv.def: New file.
7818 * gm2-libs-iso/RealConv.mod: New file.
7819 * gm2-libs-iso/RealIO.def: New file.
7820 * gm2-libs-iso/RealIO.mod: New file.
7821 * gm2-libs-iso/RealMath.def: New file.
7822 * gm2-libs-iso/RealMath.mod: New file.
7823 * gm2-libs-iso/RealStr.def: New file.
7824 * gm2-libs-iso/RealStr.mod: New file.
7825 * gm2-libs-iso/RndFile.def: New file.
7826 * gm2-libs-iso/RndFile.mod: New file.
7827 * gm2-libs-iso/SIOResult.def: New file.
7828 * gm2-libs-iso/SIOResult.mod: New file.
7829 * gm2-libs-iso/SLongIO.def: New file.
7830 * gm2-libs-iso/SLongIO.mod: New file.
7831 * gm2-libs-iso/SLongWholeIO.def: New file.
7832 * gm2-libs-iso/SLongWholeIO.mod: New file.
7833 * gm2-libs-iso/SRawIO.def: New file.
7834 * gm2-libs-iso/SRawIO.mod: New file.
7835 * gm2-libs-iso/SRealIO.def: New file.
7836 * gm2-libs-iso/SRealIO.mod: New file.
7837 * gm2-libs-iso/SShortIO.def: New file.
7838 * gm2-libs-iso/SShortIO.mod: New file.
7839 * gm2-libs-iso/SShortWholeIO.def: New file.
7840 * gm2-libs-iso/SShortWholeIO.mod: New file.
7841 * gm2-libs-iso/STextIO.def: New file.
7842 * gm2-libs-iso/STextIO.mod: New file.
7843 * gm2-libs-iso/SWholeIO.def: New file.
7844 * gm2-libs-iso/SWholeIO.mod: New file.
7845 * gm2-libs-iso/SYSTEM.def: New file.
7846 * gm2-libs-iso/SYSTEM.mod: New file.
7847 * gm2-libs-iso/Semaphores.def: New file.
7848 * gm2-libs-iso/Semaphores.mod: New file.
7849 * gm2-libs-iso/SeqFile.def: New file.
7850 * gm2-libs-iso/SeqFile.mod: New file.
7851 * gm2-libs-iso/ShortComplexMath.def: New file.
7852 * gm2-libs-iso/ShortComplexMath.mod: New file.
7853 * gm2-libs-iso/ShortIO.def: New file.
7854 * gm2-libs-iso/ShortIO.mod: New file.
7855 * gm2-libs-iso/ShortWholeIO.def: New file.
7856 * gm2-libs-iso/ShortWholeIO.mod: New file.
7857 * gm2-libs-iso/SimpleCipher.def: New file.
7858 * gm2-libs-iso/SimpleCipher.mod: New file.
7859 * gm2-libs-iso/StdChans.def: New file.
7860 * gm2-libs-iso/StdChans.mod: New file.
7861 * gm2-libs-iso/Storage.def: New file.
7862 * gm2-libs-iso/Storage.mod: New file.
7863 * gm2-libs-iso/StreamFile.def: New file.
7864 * gm2-libs-iso/StreamFile.mod: New file.
7865 * gm2-libs-iso/StringChan.def: New file.
7866 * gm2-libs-iso/StringChan.mod: New file.
7867 * gm2-libs-iso/Strings.def: New file.
7868 * gm2-libs-iso/Strings.mod: New file.
7869 * gm2-libs-iso/SysClock.def: New file.
7870 * gm2-libs-iso/SysClock.mod: New file.
7871 * gm2-libs-iso/TERMINATION.def: New file.
7872 * gm2-libs-iso/TERMINATION.mod: New file.
7873 * gm2-libs-iso/TermFile.def: New file.
7874 * gm2-libs-iso/TermFile.mod: New file.
7875 * gm2-libs-iso/TextIO.def: New file.
7876 * gm2-libs-iso/TextIO.mod: New file.
7877 * gm2-libs-iso/WholeConv.def: New file.
7878 * gm2-libs-iso/WholeConv.mod: New file.
7879 * gm2-libs-iso/WholeIO.def: New file.
7880 * gm2-libs-iso/WholeIO.mod: New file.
7881 * gm2-libs-iso/WholeStr.def: New file.
7882 * gm2-libs-iso/WholeStr.mod: New file.
7883 * gm2-libs-iso/wrapsock.c: New file.
7884 * gm2-libs-iso/wrapsock.def: New file.
7885 * gm2-libs-iso/wraptime.c: New file.
7886 * gm2-libs-iso/wraptime.def: New file.
7887 * gm2-libs-min/M2RTS.def: New file.
7888 * gm2-libs-min/M2RTS.mod: New file.
7889 * gm2-libs-min/SYSTEM.def: New file.
7890 * gm2-libs-min/SYSTEM.mod: New file.
7891 * gm2-libs-min/libc.c: New file.
7892 * gm2-libs-min/libc.def: New file.
7893 * gm2-libs-pim/BitBlockOps.def: New file.
7894 * gm2-libs-pim/BitBlockOps.mod: New file.
7895 * gm2-libs-pim/BitByteOps.def: New file.
7896 * gm2-libs-pim/BitByteOps.mod: New file.
7897 * gm2-libs-pim/BitWordOps.def: New file.
7898 * gm2-libs-pim/BitWordOps.mod: New file.
7899 * gm2-libs-pim/BlockOps.def: New file.
7900 * gm2-libs-pim/BlockOps.mod: New file.
7901 * gm2-libs-pim/Break.c: New file.
7902 * gm2-libs-pim/Break.def: New file.
7903 * gm2-libs-pim/CardinalIO.def: New file.
7904 * gm2-libs-pim/CardinalIO.mod: New file.
7905 * gm2-libs-pim/Conversions.def: New file.
7906 * gm2-libs-pim/Conversions.mod: New file.
7907 * gm2-libs-pim/DebugPMD.def: New file.
7908 * gm2-libs-pim/DebugPMD.mod: New file.
7909 * gm2-libs-pim/DebugTrace.def: New file.
7910 * gm2-libs-pim/DebugTrace.mod: New file.
7911 * gm2-libs-pim/Delay.def: New file.
7912 * gm2-libs-pim/Delay.mod: New file.
7913 * gm2-libs-pim/Display.def: New file.
7914 * gm2-libs-pim/Display.mod: New file.
7915 * gm2-libs-pim/ErrorCode.def: New file.
7916 * gm2-libs-pim/ErrorCode.mod: New file.
7917 * gm2-libs-pim/FileSystem.def: New file.
7918 * gm2-libs-pim/FileSystem.mod: New file.
7919 * gm2-libs-pim/FloatingUtilities.def: New file.
7920 * gm2-libs-pim/FloatingUtilities.mod: New file.
7921 * gm2-libs-pim/InOut.def: New file.
7922 * gm2-libs-pim/InOut.mod: New file.
7923 * gm2-libs-pim/Keyboard.def: New file.
7924 * gm2-libs-pim/Keyboard.mod: New file.
7925 * gm2-libs-pim/LongIO.def: New file.
7926 * gm2-libs-pim/LongIO.mod: New file.
7927 * gm2-libs-pim/NumberConversion.def: New file.
7928 * gm2-libs-pim/NumberConversion.mod: New file.
7929 * gm2-libs-pim/README.texi: New file.
7930 * gm2-libs-pim/Random.def: New file.
7931 * gm2-libs-pim/Random.mod: New file.
7932 * gm2-libs-pim/RealConversions.def: New file.
7933 * gm2-libs-pim/RealConversions.mod: New file.
7934 * gm2-libs-pim/RealInOut.def: New file.
7935 * gm2-libs-pim/RealInOut.mod: New file.
7936 * gm2-libs-pim/Strings.def: New file.
7937 * gm2-libs-pim/Strings.mod: New file.
7938 * gm2-libs-pim/Termbase.def: New file.
7939 * gm2-libs-pim/Termbase.mod: New file.
7940 * gm2-libs-pim/Terminal.def: New file.
7941 * gm2-libs-pim/Terminal.mod: New file.
7942 * gm2-libs-pim/TimeDate.def: New file.
7943 * gm2-libs-pim/TimeDate.mod: New file.
7944 * gm2-libs/ASCII.def: New file.
7945 * gm2-libs/ASCII.mod: New file.
7946 * gm2-libs/Args.def: New file.
7947 * gm2-libs/Args.mod: New file.
7948 * gm2-libs/Assertion.def: New file.
7949 * gm2-libs/Assertion.mod: New file.
7950 * gm2-libs/Break.def: New file.
7951 * gm2-libs/Break.mod: New file.
7952 * gm2-libs/Builtins.def: New file.
7953 * gm2-libs/Builtins.mod: New file.
7954 * gm2-libs/COROUTINES.def: New file.
7955 * gm2-libs/COROUTINES.mod: New file.
7956 * gm2-libs/CmdArgs.def: New file.
7957 * gm2-libs/CmdArgs.mod: New file.
7958 * gm2-libs/Debug.def: New file.
7959 * gm2-libs/Debug.mod: New file.
7960 * gm2-libs/DynamicStrings.def: New file.
7961 * gm2-libs/DynamicStrings.mod: New file.
7962 * gm2-libs/Environment.def: New file.
7963 * gm2-libs/Environment.mod: New file.
7964 * gm2-libs/FIO.def: New file.
7965 * gm2-libs/FIO.mod: New file.
7966 * gm2-libs/FormatStrings.def: New file.
7967 * gm2-libs/FormatStrings.mod: New file.
7968 * gm2-libs/FpuIO.def: New file.
7969 * gm2-libs/FpuIO.mod: New file.
7970 * gm2-libs/GetOpt.def: New file.
7971 * gm2-libs/GetOpt.mod: New file.
7972 * gm2-libs/IO.def: New file.
7973 * gm2-libs/IO.mod: New file.
7974 * gm2-libs/Indexing.def: New file.
7975 * gm2-libs/Indexing.mod: New file.
7976 * gm2-libs/LMathLib0.def: New file.
7977 * gm2-libs/LMathLib0.mod: New file.
7978 * gm2-libs/LegacyReal.def: New file.
7979 * gm2-libs/LegacyReal.mod: New file.
7980 * gm2-libs/M2Dependent.def: New file.
7981 * gm2-libs/M2Dependent.mod: New file.
7982 * gm2-libs/M2EXCEPTION.def: New file.
7983 * gm2-libs/M2EXCEPTION.mod: New file.
7984 * gm2-libs/M2LINK.def: New file.
7985 * gm2-libs/M2RTS.def: New file.
7986 * gm2-libs/M2RTS.mod: New file.
7987 * gm2-libs/MathLib0.def: New file.
7988 * gm2-libs/MathLib0.mod: New file.
7989 * gm2-libs/MemUtils.def: New file.
7990 * gm2-libs/MemUtils.mod: New file.
7991 * gm2-libs/NumberIO.def: New file.
7992 * gm2-libs/NumberIO.mod: New file.
7993 * gm2-libs/OptLib.def: New file.
7994 * gm2-libs/OptLib.mod: New file.
7995 * gm2-libs/PushBackInput.def: New file.
7996 * gm2-libs/PushBackInput.mod: New file.
7997 * gm2-libs/README.texi: New file.
7998 * gm2-libs/RTExceptions.def: New file.
7999 * gm2-libs/RTExceptions.mod: New file.
8000 * gm2-libs/RTint.def: New file.
8001 * gm2-libs/RTint.mod: New file.
8002 * gm2-libs/SArgs.def: New file.
8003 * gm2-libs/SArgs.mod: New file.
8004 * gm2-libs/SCmdArgs.def: New file.
8005 * gm2-libs/SCmdArgs.mod: New file.
8006 * gm2-libs/SEnvironment.def: New file.
8007 * gm2-libs/SEnvironment.mod: New file.
8008 * gm2-libs/SFIO.def: New file.
8009 * gm2-libs/SFIO.mod: New file.
8010 * gm2-libs/SMathLib0.def: New file.
8011 * gm2-libs/SMathLib0.mod: New file.
8012 * gm2-libs/SYSTEM.def: New file.
8013 * gm2-libs/SYSTEM.mod: New file.
8014 * gm2-libs/Scan.def: New file.
8015 * gm2-libs/Scan.mod: New file.
8016 * gm2-libs/Selective.def: New file.
8017 * gm2-libs/StdIO.def: New file.
8018 * gm2-libs/StdIO.mod: New file.
8019 * gm2-libs/Storage.def: New file.
8020 * gm2-libs/Storage.mod: New file.
8021 * gm2-libs/StrCase.def: New file.
8022 * gm2-libs/StrCase.mod: New file.
8023 * gm2-libs/StrIO.def: New file.
8024 * gm2-libs/StrIO.mod: New file.
8025 * gm2-libs/StrLib.def: New file.
8026 * gm2-libs/StrLib.mod: New file.
8027 * gm2-libs/StringConvert.def: New file.
8028 * gm2-libs/StringConvert.mod: New file.
8029 * gm2-libs/SysExceptions.def: New file.
8030 * gm2-libs/SysStorage.def: New file.
8031 * gm2-libs/SysStorage.mod: New file.
8032 * gm2-libs/TimeString.def: New file.
8033 * gm2-libs/TimeString.mod: New file.
8034 * gm2-libs/UnixArgs.def: New file.
8035 * gm2-libs/cbuiltin.def: New file.
8036 * gm2-libs/cgetopt.def: New file.
8037 * gm2-libs/config-host: New file.
8038 * gm2-libs/config-host.in: New file.
8039 * gm2-libs/cxxabi.def: New file.
8040 * gm2-libs/dtoa.def: New file.
8041 * gm2-libs/errno.def: New file.
8042 * gm2-libs/gdbif.def: New file.
8043 * gm2-libs/gdbif.mod: New file.
8044 * gm2-libs/gm2-libs-host.h.in: New file.
8045 * gm2-libs/ldtoa.def: New file.
8046 * gm2-libs/libc.def: New file.
8047 * gm2-libs/libm.def: New file.
8048 * gm2-libs/sckt.def: New file.
8049 * gm2-libs/termios.def: New file.
8050 * gm2-libs/wrapc.def: New file.
8051 * gm2config.h.in: New file.
8052 * gm2spec.cc: New file.
8053 * gm2version.h: New file.
8054 * init/README: New file.
8055 * init/mcinit: New file.
8056 * init/ppginit: New file.
8057 * lang-specs.h: New file.
8058 * lang.opt: New file.
8059 * m2-tree.def: New file.
8060 * m2-tree.h: New file.
8061 * m2.flex: New file.
8062 * m2pp.cc: New file.
8064 * mc-boot-ch/GBuiltins.c: New file.
8065 * mc-boot-ch/GM2LINK.c: New file.
8066 * mc-boot-ch/GRTco.c: New file.
8067 * mc-boot-ch/GSYSTEM.c: New file.
8068 * mc-boot-ch/GSelective.c: New file.
8069 * mc-boot-ch/GSysExceptions.c: New file.
8070 * mc-boot-ch/GUnixArgs.cc: New file.
8071 * mc-boot-ch/Gabort.c: New file.
8072 * mc-boot-ch/Gcbuiltin.c: New file.
8073 * mc-boot-ch/Gdtoa.c: New file.
8074 * mc-boot-ch/Gerrno.c: New file.
8075 * mc-boot-ch/Gldtoa.c: New file.
8076 * mc-boot-ch/Glibc.c: New file.
8077 * mc-boot-ch/Glibm.c: New file.
8078 * mc-boot-ch/Gmcrts.c: New file.
8079 * mc-boot-ch/Gmcrts.h: New file.
8080 * mc-boot-ch/Gnetwork.h: New file.
8081 * mc-boot-ch/Gtermios.cc: New file.
8082 * mc-boot-ch/Gwrapc.c: New file.
8083 * mc-boot-ch/README: New file.
8084 * mc-boot-ch/m2rts.h: New file.
8085 * mc-boot-ch/network.c: New file.
8086 * mc-boot/GASCII.c: New file.
8087 * mc-boot/GASCII.h: New file.
8088 * mc-boot/GArgs.c: New file.
8089 * mc-boot/GArgs.h: New file.
8090 * mc-boot/GAssertion.c: New file.
8091 * mc-boot/GAssertion.h: New file.
8092 * mc-boot/GBreak.c: New file.
8093 * mc-boot/GBreak.h: New file.
8094 * mc-boot/GCOROUTINES.h: New file.
8095 * mc-boot/GCmdArgs.c: New file.
8096 * mc-boot/GCmdArgs.h: New file.
8097 * mc-boot/GDebug.c: New file.
8098 * mc-boot/GDebug.h: New file.
8099 * mc-boot/GDynamicStrings.c: New file.
8100 * mc-boot/GDynamicStrings.h: New file.
8101 * mc-boot/GEnvironment.c: New file.
8102 * mc-boot/GEnvironment.h: New file.
8103 * mc-boot/GFIO.c: New file.
8104 * mc-boot/GFIO.h: New file.
8105 * mc-boot/GFormatStrings.c: New file.
8106 * mc-boot/GFormatStrings.h: New file.
8107 * mc-boot/GFpuIO.c: New file.
8108 * mc-boot/GFpuIO.h: New file.
8109 * mc-boot/GIO.c: New file.
8110 * mc-boot/GIO.h: New file.
8111 * mc-boot/GIndexing.c: New file.
8112 * mc-boot/GIndexing.h: New file.
8113 * mc-boot/GM2Dependent.c: New file.
8114 * mc-boot/GM2Dependent.h: New file.
8115 * mc-boot/GM2EXCEPTION.c: New file.
8116 * mc-boot/GM2EXCEPTION.h: New file.
8117 * mc-boot/GM2LINK.h: New file.
8118 * mc-boot/GM2RTS.c: New file.
8119 * mc-boot/GM2RTS.h: New file.
8120 * mc-boot/GMemUtils.c: New file.
8121 * mc-boot/GMemUtils.h: New file.
8122 * mc-boot/GNumberIO.c: New file.
8123 * mc-boot/GNumberIO.h: New file.
8124 * mc-boot/GPushBackInput.c: New file.
8125 * mc-boot/GPushBackInput.h: New file.
8126 * mc-boot/GRTExceptions.c: New file.
8127 * mc-boot/GRTExceptions.h: New file.
8128 * mc-boot/GRTco.h: New file.
8129 * mc-boot/GRTint.c: New file.
8130 * mc-boot/GRTint.h: New file.
8131 * mc-boot/GSArgs.c: New file.
8132 * mc-boot/GSArgs.h: New file.
8133 * mc-boot/GSFIO.c: New file.
8134 * mc-boot/GSFIO.h: New file.
8135 * mc-boot/GSYSTEM.h: New file.
8136 * mc-boot/GSelective.h: New file.
8137 * mc-boot/GStdIO.c: New file.
8138 * mc-boot/GStdIO.h: New file.
8139 * mc-boot/GStorage.c: New file.
8140 * mc-boot/GStorage.h: New file.
8141 * mc-boot/GStrCase.c: New file.
8142 * mc-boot/GStrCase.h: New file.
8143 * mc-boot/GStrIO.c: New file.
8144 * mc-boot/GStrIO.h: New file.
8145 * mc-boot/GStrLib.c: New file.
8146 * mc-boot/GStrLib.h: New file.
8147 * mc-boot/GStringConvert.c: New file.
8148 * mc-boot/GStringConvert.h: New file.
8149 * mc-boot/GSysExceptions.h: New file.
8150 * mc-boot/GSysStorage.c: New file.
8151 * mc-boot/GSysStorage.h: New file.
8152 * mc-boot/GTimeString.c: New file.
8153 * mc-boot/GTimeString.h: New file.
8154 * mc-boot/GUnixArgs.h: New file.
8155 * mc-boot/Galists.c: New file.
8156 * mc-boot/Galists.h: New file.
8157 * mc-boot/Gdecl.c: New file.
8158 * mc-boot/Gdecl.h: New file.
8159 * mc-boot/Gdtoa.h: New file.
8160 * mc-boot/Gerrno.h: New file.
8161 * mc-boot/Gkeyc.c: New file.
8162 * mc-boot/Gkeyc.h: New file.
8163 * mc-boot/Gldtoa.h: New file.
8164 * mc-boot/Glibc.h: New file.
8165 * mc-boot/Glibm.h: New file.
8166 * mc-boot/Glists.c: New file.
8167 * mc-boot/Glists.h: New file.
8168 * mc-boot/GmcComment.c: New file.
8169 * mc-boot/GmcComment.h: New file.
8170 * mc-boot/GmcComp.c: New file.
8171 * mc-boot/GmcComp.h: New file.
8172 * mc-boot/GmcDebug.c: New file.
8173 * mc-boot/GmcDebug.h: New file.
8174 * mc-boot/GmcError.c: New file.
8175 * mc-boot/GmcError.h: New file.
8176 * mc-boot/GmcFileName.c: New file.
8177 * mc-boot/GmcFileName.h: New file.
8178 * mc-boot/GmcLexBuf.c: New file.
8179 * mc-boot/GmcLexBuf.h: New file.
8180 * mc-boot/GmcMetaError.c: New file.
8181 * mc-boot/GmcMetaError.h: New file.
8182 * mc-boot/GmcOptions.c: New file.
8183 * mc-boot/GmcOptions.h: New file.
8184 * mc-boot/GmcPreprocess.c: New file.
8185 * mc-boot/GmcPreprocess.h: New file.
8186 * mc-boot/GmcPretty.c: New file.
8187 * mc-boot/GmcPretty.h: New file.
8188 * mc-boot/GmcPrintf.c: New file.
8189 * mc-boot/GmcPrintf.h: New file.
8190 * mc-boot/GmcQuiet.c: New file.
8191 * mc-boot/GmcQuiet.h: New file.
8192 * mc-boot/GmcReserved.c: New file.
8193 * mc-boot/GmcReserved.h: New file.
8194 * mc-boot/GmcSearch.c: New file.
8195 * mc-boot/GmcSearch.h: New file.
8196 * mc-boot/GmcStack.c: New file.
8197 * mc-boot/GmcStack.h: New file.
8198 * mc-boot/GmcStream.c: New file.
8199 * mc-boot/GmcStream.h: New file.
8200 * mc-boot/Gmcflex.h: New file.
8201 * mc-boot/Gmcp1.c: New file.
8202 * mc-boot/Gmcp1.h: New file.
8203 * mc-boot/Gmcp2.c: New file.
8204 * mc-boot/Gmcp2.h: New file.
8205 * mc-boot/Gmcp3.c: New file.
8206 * mc-boot/Gmcp3.h: New file.
8207 * mc-boot/Gmcp4.c: New file.
8208 * mc-boot/Gmcp4.h: New file.
8209 * mc-boot/Gmcp5.c: New file.
8210 * mc-boot/Gmcp5.h: New file.
8211 * mc-boot/GnameKey.c: New file.
8212 * mc-boot/GnameKey.h: New file.
8213 * mc-boot/Gpth.h: New file.
8214 * mc-boot/GsymbolKey.c: New file.
8215 * mc-boot/GsymbolKey.h: New file.
8216 * mc-boot/Gtermios.h: New file.
8217 * mc-boot/Gtop.c: New file.
8218 * mc-boot/Gvarargs.c: New file.
8219 * mc-boot/Gvarargs.h: New file.
8220 * mc-boot/Gwlists.c: New file.
8221 * mc-boot/Gwlists.h: New file.
8222 * mc-boot/Gwrapc.h: New file.
8223 * mc-boot/README: New file.
8224 * mc/Indexing.def: New file.
8225 * mc/Indexing.mod: New file.
8226 * mc/README: New file.
8227 * mc/alists.def: New file.
8228 * mc/alists.mod: New file.
8229 * mc/decl.def: New file.
8230 * mc/decl.mod: New file.
8231 * mc/decl.mod-extra: New file.
8232 * mc/keyc.def: New file.
8233 * mc/keyc.mod: New file.
8234 * mc/lists.def: New file.
8235 * mc/lists.mod: New file.
8236 * mc/m2flex.def: New file.
8237 * mc/mc.flex: New file.
8238 * mc/mcComment.def: New file.
8239 * mc/mcComment.h: New file.
8240 * mc/mcComment.mod: New file.
8241 * mc/mcComp.def: New file.
8242 * mc/mcComp.mod: New file.
8243 * mc/mcDebug.def: New file.
8244 * mc/mcDebug.mod: New file.
8245 * mc/mcError.def: New file.
8246 * mc/mcError.mod: New file.
8247 * mc/mcFileName.def: New file.
8248 * mc/mcFileName.mod: New file.
8249 * mc/mcLexBuf.def: New file.
8250 * mc/mcLexBuf.h: New file.
8251 * mc/mcLexBuf.mod: New file.
8252 * mc/mcMetaError.def: New file.
8253 * mc/mcMetaError.mod: New file.
8254 * mc/mcOptions.def: New file.
8255 * mc/mcOptions.mod: New file.
8256 * mc/mcPreprocess.def: New file.
8257 * mc/mcPreprocess.mod: New file.
8258 * mc/mcPretty.def: New file.
8259 * mc/mcPretty.mod: New file.
8260 * mc/mcPrintf.def: New file.
8261 * mc/mcPrintf.mod: New file.
8262 * mc/mcQuiet.def: New file.
8263 * mc/mcQuiet.mod: New file.
8264 * mc/mcReserved.def: New file.
8265 * mc/mcReserved.h: New file.
8266 * mc/mcReserved.mod: New file.
8267 * mc/mcSearch.def: New file.
8268 * mc/mcSearch.mod: New file.
8269 * mc/mcStack.def: New file.
8270 * mc/mcStack.mod: New file.
8271 * mc/mcStream.def: New file.
8272 * mc/mcStream.mod: New file.
8273 * mc/mcflex.def: New file.
8274 * mc/mcp1.bnf: New file.
8275 * mc/mcp1.def: New file.
8276 * mc/mcp2.bnf: New file.
8277 * mc/mcp2.def: New file.
8278 * mc/mcp3.bnf: New file.
8279 * mc/mcp3.def: New file.
8280 * mc/mcp4.bnf: New file.
8281 * mc/mcp4.def: New file.
8282 * mc/mcp5.bnf: New file.
8283 * mc/mcp5.def: New file.
8284 * mc/nameKey.def: New file.
8285 * mc/nameKey.mod: New file.
8286 * mc/symbolKey.def: New file.
8287 * mc/symbolKey.mod: New file.
8288 * mc/top.mod: New file.
8289 * mc/varargs.def: New file.
8290 * mc/varargs.mod: New file.
8291 * mc/wlists.def: New file.
8292 * mc/wlists.mod: New file.
8293 * pge-boot/GASCII.c: New file.
8294 * pge-boot/GASCII.h: New file.
8295 * pge-boot/GArgs.c: New file.
8296 * pge-boot/GArgs.h: New file.
8297 * pge-boot/GAssertion.c: New file.
8298 * pge-boot/GAssertion.h: New file.
8299 * pge-boot/GBreak.h: New file.
8300 * pge-boot/GBuiltins.c: New file.
8301 * pge-boot/GCmdArgs.h: New file.
8302 * pge-boot/GDebug.c: New file.
8303 * pge-boot/GDebug.h: New file.
8304 * pge-boot/GDynamicStrings.c: New file.
8305 * pge-boot/GDynamicStrings.h: New file.
8306 * pge-boot/GEnvironment.h: New file.
8307 * pge-boot/GFIO.c: New file.
8308 * pge-boot/GFIO.h: New file.
8309 * pge-boot/GFormatStrings.h: New file.
8310 * pge-boot/GFpuIO.h: New file.
8311 * pge-boot/GIO.c: New file.
8312 * pge-boot/GIO.h: New file.
8313 * pge-boot/GIndexing.c: New file.
8314 * pge-boot/GIndexing.h: New file.
8315 * pge-boot/GLists.c: New file.
8316 * pge-boot/GLists.h: New file.
8317 * pge-boot/GM2Dependent.c: New file.
8318 * pge-boot/GM2Dependent.h: New file.
8319 * pge-boot/GM2EXCEPTION.c: New file.
8320 * pge-boot/GM2EXCEPTION.h: New file.
8321 * pge-boot/GM2LINK.c: New file.
8322 * pge-boot/GM2LINK.h: New file.
8323 * pge-boot/GM2RTS.c: New file.
8324 * pge-boot/GM2RTS.h: New file.
8325 * pge-boot/GNameKey.c: New file.
8326 * pge-boot/GNameKey.h: New file.
8327 * pge-boot/GNumberIO.c: New file.
8328 * pge-boot/GNumberIO.h: New file.
8329 * pge-boot/GOutput.c: New file.
8330 * pge-boot/GOutput.h: New file.
8331 * pge-boot/GPushBackInput.c: New file.
8332 * pge-boot/GPushBackInput.h: New file.
8333 * pge-boot/GRTExceptions.c: New file.
8334 * pge-boot/GRTExceptions.h: New file.
8335 * pge-boot/GRTco.c: New file.
8336 * pge-boot/GSArgs.h: New file.
8337 * pge-boot/GSEnvironment.h: New file.
8338 * pge-boot/GSFIO.c: New file.
8339 * pge-boot/GSFIO.h: New file.
8340 * pge-boot/GSYSTEM.c: New file.
8341 * pge-boot/GSYSTEM.h: New file.
8342 * pge-boot/GScan.h: New file.
8343 * pge-boot/GSelective.c: New file.
8344 * pge-boot/GStdIO.c: New file.
8345 * pge-boot/GStdIO.h: New file.
8346 * pge-boot/GStorage.c: New file.
8347 * pge-boot/GStorage.h: New file.
8348 * pge-boot/GStrCase.c: New file.
8349 * pge-boot/GStrCase.h: New file.
8350 * pge-boot/GStrIO.c: New file.
8351 * pge-boot/GStrIO.h: New file.
8352 * pge-boot/GStrLib.c: New file.
8353 * pge-boot/GStrLib.h: New file.
8354 * pge-boot/GStringConvert.h: New file.
8355 * pge-boot/GSymbolKey.c: New file.
8356 * pge-boot/GSymbolKey.h: New file.
8357 * pge-boot/GSysExceptions.c: New file.
8358 * pge-boot/GSysExceptions.h: New file.
8359 * pge-boot/GSysStorage.c: New file.
8360 * pge-boot/GSysStorage.h: New file.
8361 * pge-boot/GTimeString.h: New file.
8362 * pge-boot/GUnixArgs.cc: New file.
8363 * pge-boot/GUnixArgs.h: New file.
8364 * pge-boot/Gabort.c: New file.
8365 * pge-boot/Gbnflex.c: New file.
8366 * pge-boot/Gbnflex.h: New file.
8367 * pge-boot/Gcbuiltin.c: New file.
8368 * pge-boot/Gdtoa.c: New file.
8369 * pge-boot/Gdtoa.h: New file.
8370 * pge-boot/Gerrno.c: New file.
8371 * pge-boot/Gerrno.h: New file.
8372 * pge-boot/Gldtoa.c: New file.
8373 * pge-boot/Gldtoa.h: New file.
8374 * pge-boot/Glibc.c: New file.
8375 * pge-boot/Glibc.h: New file.
8376 * pge-boot/Glibm.c: New file.
8377 * pge-boot/Glibm.h: New file.
8378 * pge-boot/Gmcrts.c: New file.
8379 * pge-boot/Gmcrts.h: New file.
8380 * pge-boot/Gnetwork.h: New file.
8381 * pge-boot/Gpge.c: New file.
8382 * pge-boot/Gtermios.cc: New file.
8383 * pge-boot/Gtermios.h: New file.
8384 * pge-boot/Gwrapc.c: New file.
8385 * pge-boot/Gwrapc.h: New file.
8386 * pge-boot/README: New file.
8387 * pge-boot/m2rts.h: New file.
8388 * pge-boot/main.c: New file.
8389 * pge-boot/network.c: New file.
8390 * plugin/README: New file.
8391 * plugin/m2rte.cc: New file.
8392 * tools-src/README: New file.
8393 * tools-src/boilerplate.py: New file.
8394 * tools-src/buildpg: New file.
8395 * tools-src/calcpath: New file.
8396 * tools-src/def2doc.py: New file.
8397 * tools-src/makeSystem: New file.
8398 * tools-src/mklink.c: New file.
8399 * tools-src/tidydates.py: New file.
8400 * images/LICENSE.IMG: New file.
8401 * images/gnupng: New file.
8402 * images/gnu.eps: New file.
8403 * version.c: New file.
8404 * configure: Rebuilt.
8405 * target-independent/Builtins.texi: New file.
8406 * target-independent/SYSTEM-iso.texi: New file.
8407 * target-independent/SYSTEM-pim.texi: New file.
8408 * target-independent/gm2-libs.texi: New file.
8409 * target-independent/readme.txt: New file.