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