2025-04-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119735
	* gm2-compiler/M2MetaError.def: Hide %n from comment.
	* gm2-compiler/SymbolTable.def (PutIncludedByDefinition): Remove '
	from comment.
	* gm2-gcc/m2expr.def (init): Ditto.
	* gm2-libiberty/pexecute.def: Ditto.
	* gm2-libs-coroutines/Executive.def (InitSemaphore): Ditto.
	(Wait): Ditto.
	* gm2-libs-iso/ClientSocket.def: Ditto.
	* gm2-libs-log/BlockOps.def (BlockMoveBackward): Ditto.
	* gm2-libs-log/InOut.def: Ditto.
	* mc/mcFileName.def: Ditto.

2025-04-09  Jakub Jelinek  <jakub@redhat.com>

	* gm2-compiler/M2MetaError.def: Fix comment typo, range" -> "range2".

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	* lang.opt.urls: Regenerate.

2025-03-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119504
	* gm2-compiler/M2Quads.mod (BuildHighFunction): Defend against
	Type = NulSym and fall into BuildConstHighFromSym.
	(BuildDesignatorArray): Rewrite to detect an array access to
	a constant string.
	(BuildDesignatorArrayStaticDynamic): New procedure.

2025-03-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119449
	* gm2-compiler/M2GCCDeclare.def (TryDeclareType): Remove tokenno
	parameter.
	* gm2-compiler/M2GCCDeclare.mod (TryDeclareType): Ditto.
	* gm2-compiler/M2GenGCC.mod (FoldTBitsize): Remove op2 and
	rename op1 as res and op3 as type.
	(FoldStandardFunction): Call FoldTBitsize omitting op2.
	* gm2-compiler/M2Quads.mod (GetTypeMin): Rewrite.
	(GetTypeMinLower): New procedure function.
	(GetTypeMax): Rewrite.
	(GetTypeMaxLower): New procedure function.
	* gm2-compiler/M2Range.mod (CheckCancelled): Comment out.
	* gm2-compiler/M2System.mod (CreateMinMaxFor): Add realtype
	parameter.
	(MapType): Rewrite to use realtype.
	(CreateType): Ditto.
	(AttemptToCreateType): Ditto.
	(MakeFixedSizedTypes): Add realtype boolean.
	(InitPIMTypes): Ditto.
	(InitISOTypes): Ditto.
	(MakeExtraSystemTypes): Ditto.
	* gm2-gcc/m2pp.cc (m2pp_nop_expr): Remove code.
	* gm2-gcc/m2type.cc (IsGccRealType): New function.
	(m2type_GetMinFrom): Rewrite.
	(m2type_GetMaxFrom): Ditto.
	(do_min_real): Declare static.
	(do_max_real): Declare static.

2025-03-20  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118600
	* gm2-compiler/M2GenGCC.mod (PerformCodeBecomes): New procedure.
	(CodeBecomes): Refactor and call PerformCodeBecomes.
	* gm2-gcc/m2builtins.cc (gm2_strncpy_node): New global variable.
	(DoBuiltinStrNCopy): New function.
	(m2builtins_BuiltinStrNCopy): New function.
	(m2builtins_init): Initialize gm2_strncpy_node.
	* gm2-gcc/m2builtins.def (BuiltinStrNCopy): New procedure
	function.
	* gm2-gcc/m2builtins.h (m2builtins_BuiltinStrNCopy): New
	function.
	* gm2-gcc/m2statement.cc (copy_record_fields): New function.
	(copy_array): Ditto.
	(copy_strncpy): Ditto.
	(copy_memcpy): Ditto.
	(CopyByField_Lower): Ditto.
	(m2statement_CopyByField): Ditto.
	* gm2-gcc/m2statement.def (CopyByField): New procedure function.
	* gm2-gcc/m2statement.h (m2statement_CopyByField): New function.
	* gm2-gcc/m2type.cc (check_record_fields): Ditto.
	(check_array_types): Ditto.
	(m2type_IsGccStrictTypeEquivalent): Ditto.
	* gm2-gcc/m2type.def (IsGccStrictTypeEquivalent): New procedure
	function.
	* gm2-gcc/m2type.h (m2type_IsAddress): Replace return type int
	with bool.

2025-03-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115111
	* gm2-compiler/M2GenGCC.mod (CodeStatementNote): Add debugging.
	* gm2-compiler/M2Quads.def (BuildEndWhile): New parameter reltokpos.
	* gm2-compiler/M2Quads.mod (BuildEndWhile): Reimplement using new parameter.
	* gm2-compiler/P3Build.bnf (WhileStatement): Call BuildEndWhile
	with -1 relative position.
	* gm2-gcc/m2block.cc (do_add_stmt): Tidy comment.
	(GetGlobals): Ditto.
	(flush_pending_note): Remove #if 0 code.
	* gm2-gcc/m2pp.cc (m2pp_nop_expr): New function.
	(m2pp_statement): New case clause call m2pp_nop_expr.

2025-03-10  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119192
	* gm2-compiler/M2GCCDeclare.def (TryDeclareType): New procedure.
	* gm2-compiler/M2GCCDeclare.mod (IsAnyType): New procedure.
	(TryDeclareType): Ditto.
	* gm2-compiler/M2GenGCC.mod (FoldTBitsize): New procedure.
	(FoldStandardFunction): Call FoldTBitsize.
	* gm2-gcc/m2expr.cc (BuildTBitSize): Improve comment.
	(m2expr_BuildSystemTBitSize): New function.
	* gm2-gcc/m2expr.def (BuildSystemTBitSize): New procedure
	function.
	* gm2-gcc/m2expr.h (m2expr_BuildSystemTBitSize): New function
	prototype.

2025-03-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118998
	* gm2-gcc/m2expr.cc (m2expr_BuildLRotate): Convert nBits
	to the return type.
	(m2expr_BuildRRotate): Ditto.
	(m2expr_BuildLogicalRotate): Convert op3 to an integer type.
	Replace op3 aith rotateCount.
	Negate rotateCount if it is negative and call rotate right.
	* gm2-gcc/m2pp.cc (m2pp_bit_and_expr): New function.
	(m2pp_binary_function): Ditto.
	(m2pp_simple_expression): BIT_AND_EXPR new case clause.
	LROTATE_EXPR ditto.
	RROTATE_EXPR ditto.

2025-03-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119088
	* gm2-compiler/M2SymInit.mod (ConfigSymInit): Reimplement to
	defensively check for NulSym type.

2025-02-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118978
	* gm2-compiler/M2Check.mod (checkConstMeta): Add check for
	typed constants.
	* gm2-compiler/M2Quads.mod (BoolFrame): New field RangeDep.
	(CheckProcedureParameters): Call PutRangeDep to associate the
	range dependency with the parameter on the quad stack.
	Pass ParamCheckId to CheckParameter.
	(CheckProcTypeAndProcedure): Add ParamCheckId parameter.
	Pass ParamCheckId to BuildRange.
	(CheckParameter): New parameter ParamCheckId.
	Pass ParamCheckId to CheckProcTypeAndProcedure.
	(CheckParameterOrdinals): Add extra range dep parameter to the
	call of InitParameterRangeCheck.
	(ConvertBooleanToVariable): Initialize RangeDep field.
	(PushBacktok): Ditto.
	(OperandRangeDep): New procedure.
	(PutRangeDep): Ditto.
	* gm2-compiler/M2Range.def (InitTypesParameterCheck): Add new
	parameter depRangeId.
	(InitParameterRangeCheck): Add new parameter parentRangeId.
	(FoldRangeCheck): Add new parameter range.
	* gm2-compiler/M2Range.mod (InitTypesParameterCheck): Add new
	parameter depRangeId.
	(InitParameterRangeCheck): Add new parameter parentRangeId.
	(FoldRangeCheck): Add new parameter range and rewrite.
	(FoldRangeCheckLower): New procedure.
	(Range): New field cancelled.
	New field dependantid.
	(PutRangeParam): Initialize dependantid.
	(PutRangeParamAssign): Ditto.
	(CheckCancelled): New procedure.
	(Cancel): Ditto.
	(IsCancelled): New procedure function.
	(FoldTypeParam): Add depRangeId parameter.
	(WriteRangeCheck): Add dependent debugging.

2025-02-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118761
	* gm2spec.cc (lang_specific_driver): Add case clauses for
	OPT__help, OPT__help_ set in_added_libraries to 0 and early
	return.

2025-02-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115112
	* gm2-compiler/M2Quads.mod (BuildPseudoProcedureCall): Pass
	tokno to each build procedure.
	(BuildThrowProcedure): New parameter functok.
	(BuildIncProcedure): New parameter proctok.
	Pass proctok on the quad stack during every push.
	(BuildDecProcedure): Ditto.
	(BuildInclProcedure): New parameter proctok.
	(BuildExclProcedure): New parameter proctok.

2025-02-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118703
	* gm2-gcc/m2builtins.cc (define_builtin_gcc): New function.
	(m2builtins_init): Call define_builtin_gcc.
	* gm2-libs/Builtins.def (clz): New procedure function.
	(clzll): Ditto.
	(ctz): Ditto.
	(ctzll): Ditto.
	* gm2-libs/Builtins.mod (clz): New procedure function.
	(clzll): Ditto.
	(ctz): Ditto.
	(ctzll): Ditto.
	* gm2-libs/cbuiltin.def (clz): New procedure function.
	(clzll): Ditto.
	(ctz): Ditto.
	(ctzll): Ditto.

2025-01-29  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	PR modula2/118183
	PR modula2/116073
	* gm2-compiler/M2Options.mod (OffTBits): Assign to 0.
	* gm2-gcc/m2type.cc (build_m2_specific_size_type): Ensure that
	layout_type is called before returning c.
	(build_m2_offt_type_node): If GetFileOffsetBits returns 0 then
	use the type size of ssize_t.

2025-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GenGCC.mod (FoldConstBecomes): Remove
	commented out code.
	Improve early return comment.

2025-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GenGCC.mod (FoldStatementNote): Add header
	comment.
	(CodeStatementNote): Ditto.
	(FoldRange): Tidy comment.
	(CodeError): Ditto.
	(CodeProcedureScope): Ditto.
	(CheckConvertCoerceParameter): Replace op1 with nth.
	Replace op2 with callee.
	Replace op3 with actual.

2025-01-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117737
	PR modula2/118010
	* Make-maintainer.in (PGE-MC-OPTIONS): New macro.
	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Use $(PGE-MC-OPTIONS).
	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
	(m2/gm2-auto/pg.o): Ditto.
	(m2/gm2-auto/pge.o): Ditto.
	(mc-autogen): Add include directory $(GMPINC) to $(CXX).
	* mc/keyc.mod (checkGccConfigSystem): Remove
	INCLUDE_MEMORY define.
	* mc-boot/GASCII.cc (INCLUDE_MEMORY): Removed during rebuild.
	* mc-boot/GASCII.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GArgs.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GArgs.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GAssertion.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GAssertion.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GBreak.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GBreak.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GCOROUTINES.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GCmdArgs.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GCmdArgs.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GDebug.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GDebug.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GDynamicStrings.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GDynamicStrings.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GEnvironment.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GEnvironment.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFormatStrings.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFormatStrings.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFpuIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GFpuIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GIndexing.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GIndexing.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2Dependent.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2Dependent.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2EXCEPTION.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2EXCEPTION.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2RTS.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GM2RTS.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GMemUtils.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GMemUtils.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GNumberIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GNumberIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GPushBackInput.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GPushBackInput.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTExceptions.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTExceptions.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTco.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTentity.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTint.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GRTint.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSArgs.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSArgs.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSFIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSFIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSYSTEM.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSelective.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStdIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStdIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStorage.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStorage.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrCase.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrCase.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrIO.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrIO.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrLib.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStrLib.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStringConvert.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GStringConvert.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSysExceptions.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSysStorage.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GSysStorage.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GTimeString.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GTimeString.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GUnixArgs.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Galists.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Galists.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gdecl.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gdecl.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gdtoa.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gerrno.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gkeyc.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gkeyc.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gldtoa.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Glibc.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Glibm.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Glists.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Glists.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcComment.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcComment.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcComp.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcComp.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcDebug.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcDebug.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcError.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcError.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcFileName.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcFileName.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcLexBuf.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcLexBuf.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcMetaError.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcMetaError.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcOptions.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcOptions.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPreprocess.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPreprocess.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPretty.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPretty.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPrintf.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcPrintf.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcQuiet.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcQuiet.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcReserved.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcReserved.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcSearch.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcSearch.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcStack.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcStack.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcStream.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GmcStream.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcflex.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp1.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp1.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp2.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp2.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp3.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp3.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp4.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp4.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp5.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gmcp5.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GnameKey.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GnameKey.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/GsymbolKey.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/GsymbolKey.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gtermios.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gtop.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gvarargs.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gvarargs.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gwlists.cc (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gwlists.h (INCLUDE_MEMORY): Ditto.
	* mc-boot/Gwrapc.h (INCLUDE_MEMORY): Ditto.
	* pge-boot/GIndexing.h (INCLUDE_MEMORY): Ditto.
	* pge-boot/GSEnvironment.h (INCLUDE_MEMORY): Ditto.
	* pge-boot/GScan.h (INCLUDE_MEMORY): Ditto.

2025-01-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	* gm2-libs-log/FileSystem.mod (doModeChange): Replace
	LONGINT with COFF_T.
	(SetPos): Use COFF_T for the return value and offset type
	when calling lseek.
	* gm2-libs/FIO.mod (SetPositionFromBeginning): Convert pos
	to COFF_T.
	(SetPositionFromEnd): Ditto.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/Glibc.h: Ditto.
	* pge-boot/GFIO.cc: Ditto.
	* pge-boot/Glibc.h: Ditto.

2025-01-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	* gm2-compiler/P2SymBuild.mod (Debug): Comment out unused
	procedure.
	* gm2-libs/libc.def (lseek): Declare second parameter offset
	as COFF_T.

2025-01-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118589
	* gm2-compiler/M2MetaError.mod (symDesc): Add opaque type
	description.
	* gm2-compiler/M2Quads.mod (BuildDesignatorPointerError): New
	procedure.
	(BuildDesignatorPointer): Reimplement.
	* gm2-compiler/P3Build.bnf (SubDesignator): Tidy up error message.
	Use MetaErrorT2 rather than WriteForma1 and use the token pos from
	the quad stack.

2025-01-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116557
	* COPYING.FDL: Remove physical address and replace with a URL.

2025-01-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118453
	* gm2-compiler/M2Check.mod (buildError4): Call MetaError1
	for the actual and formal parameter type.
	* gm2-compiler/P2Build.bnf (SubrangeType): Construct a virtual
	token containing the subrange type declaration.
	(PrefixedSubrangeType): Ditto.
	* gm2-compiler/P2SymBuild.def (BuildSubrange): Add tok parameter.
	* gm2-compiler/P2SymBuild.mod (BuildSubrange): Use tok parameter,
	rather than the token at the start of the subrange.

2025-01-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	PR modula2/118183
	* gm2-compiler/M2GCCDeclare.mod (Import): COffT, GetCOffTType.
	(DeclareDefaultSimpleTypes): Declare COFF_T.
	* gm2-compiler/M2GenGCC.mod (GetParamSize): Correct first
	parameter to BuildSize to use location rather than a token position.
	* gm2-compiler/M2Options.def (SetFileOffsetBits): New procedure.
	(GetFileOffsetBits): New procedure function.
	* gm2-compiler/M2Options.mod (SetFileOffsetBits): New procedure.
	(GetFileOffsetBits): New procedure function.
	(OffTBits): New variable.
	* gm2-compiler/M2System.def (COffT): New variable.
	* gm2-compiler/M2System.mod (MakeExtraSystemTypes): Declare
	COffT.
	* gm2-compiler/P1SymBuild.mod (EndBuildProcedure): Call
	PutProcedureDefined.
	* gm2-compiler/P2SymBuild.mod (Debug): Reimplement.
	* gm2-compiler/SymbolTable.mod (InitProcedureDeclaration):
	Initialize ProcedureTok.
	* gm2-gcc/gcctypes.def (location_t): Declare as CARDINAL64.
	* gm2-gcc/m2linemap.cc (m2linemap_GetLocationBinary): Add
	call to linemap_add indication a LC_LEAVE.
	* gm2-gcc/m2options.h (M2Options_SetFileOffsetBits): New procedure.
	(M2Options_GetFileOffsetBits): New procedure function.
	* gm2-gcc/m2type.cc (m2_offt_type_node): New variable.
	(m2type_GetCSizeTType): Reword comment.
	(m2type_GetCSSizeTType): Reword comment.
	(m2type_GetCOffTType): New function.
	(build_m2_offt_type_node): New function.
	(m2type_InitSystemTypes): Initialize m2_offt_type_node.
	* gm2-gcc/m2type.def (GetCSizeTType): Reword comment.
	(GetCOffTType): New procedure function.
	* gm2-gcc/m2type.h (m2type_GetCOffTType): New prototype.
	* gm2-lang.cc (gm2_langhook_handle_option): New clause
	OPT_fm2_file_offset_bits_.
	* gm2-libs-coroutines/SYSTEM.def: Add COFF_T to export list.
	* gm2-libs-iso/SYSTEM.def: Ditto.
	* gm2-libs-min/SYSTEM.def: Ditto.
	* gm2-libs/SYSTEM.def: Add COFF_T and CARDINAL64 to export list.
	* gm2-libs/libc.def (lseek): Change return type to COFF_T.
	* lang.opt (-fm2-file-offset-bits=): New option.
	* mc-boot-ch/Glibc.c (libc_lseek): Change result to use off_t.
	* mc-boot/GASCII.cc: Rebuilt.
	* mc-boot/GASCII.h: Ditto.
	* mc-boot/GArgs.cc: Ditto.
	* mc-boot/GArgs.h: Ditto.
	* mc-boot/GAssertion.cc: Ditto.
	* mc-boot/GAssertion.h: Ditto.
	* mc-boot/GBreak.cc: Ditto.
	* mc-boot/GBreak.h: Ditto.
	* mc-boot/GCOROUTINES.h: Ditto.
	* mc-boot/GCmdArgs.cc: Ditto.
	* mc-boot/GCmdArgs.h: Ditto.
	* mc-boot/GDebug.cc: Ditto.
	* mc-boot/GDebug.h: Ditto.
	* mc-boot/GDynamicStrings.cc: Ditto.
	* mc-boot/GDynamicStrings.h: Ditto.
	* mc-boot/GEnvironment.cc: Ditto.
	* mc-boot/GEnvironment.h: Ditto.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GFIO.h: Ditto.
	* mc-boot/GFormatStrings.cc: Ditto.
	* mc-boot/GFormatStrings.h: Ditto.
	* mc-boot/GFpuIO.cc: Ditto.
	* mc-boot/GFpuIO.h: Ditto.
	* mc-boot/GIO.cc: Ditto.
	* mc-boot/GIO.h: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GIndexing.h: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GM2Dependent.h: Ditto.
	* mc-boot/GM2EXCEPTION.cc: Ditto.
	* mc-boot/GM2EXCEPTION.h: Ditto.
	* mc-boot/GM2RTS.cc: Ditto.
	(M2RTS_Halt): Call libc_exit.
	(M2RTS_HaltC): Ditto.
	* mc-boot/GM2RTS.h: Rebuilt.
	* mc-boot/GMemUtils.cc: Ditto.
	* mc-boot/GMemUtils.h: Ditto.
	* mc-boot/GNumberIO.cc: Ditto.
	* mc-boot/GNumberIO.h: Ditto.
	* mc-boot/GPushBackInput.cc: Ditto.
	* mc-boot/GPushBackInput.h: Ditto.
	* mc-boot/GRTExceptions.cc: Ditto.
	* mc-boot/GRTExceptions.h: Ditto.
	* mc-boot/GRTco.h: Ditto.
	* mc-boot/GRTentity.h: Ditto.
	* mc-boot/GRTint.cc: Ditto.
	* mc-boot/GRTint.h: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GSArgs.h: Ditto.
	* mc-boot/GSFIO.cc: Ditto.
	* mc-boot/GSFIO.h: Ditto.
	* mc-boot/GSYSTEM.h: Ditto.
	* mc-boot/GSelective.h: Ditto.
	* mc-boot/GStdIO.cc: Ditto.
	* mc-boot/GStdIO.h: Ditto.
	* mc-boot/GStorage.cc: Ditto.
	* mc-boot/GStorage.h: Ditto.
	* mc-boot/GStrCase.cc: Ditto.
	* mc-boot/GStrCase.h: Ditto.
	* mc-boot/GStrIO.cc: Ditto.
	* mc-boot/GStrIO.h: Ditto.
	* mc-boot/GStrLib.cc: Ditto.
	* mc-boot/GStrLib.h: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/GStringConvert.h: Ditto.
	* mc-boot/GSysExceptions.h: Ditto.
	* mc-boot/GSysStorage.cc: Ditto.
	* mc-boot/GSysStorage.h: Ditto.
	* mc-boot/GTimeString.cc: Ditto.
	* mc-boot/GTimeString.h: Ditto.
	* mc-boot/GUnixArgs.h: Ditto.
	* mc-boot/Galists.cc: Ditto.
	* mc-boot/Galists.h: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gdecl.h: Rebuilt.
	* mc-boot/Gdtoa.h: Ditto.
	* mc-boot/Gerrno.h: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Gkeyc.h: Rebuilt.
	* mc-boot/Gldtoa.h: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc-boot/Glibm.h: Ditto.
	* mc-boot/Glists.cc: Ditto.
	* mc-boot/Glists.h: Ditto.
	* mc-boot/GmcComment.cc: Ditto.
	* mc-boot/GmcComment.h: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcComp.h: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcDebug.h: Ditto.
	* mc-boot/GmcError.cc: Ditto.
	* mc-boot/GmcError.h: Ditto.
	* mc-boot/GmcFileName.cc: Ditto.
	* mc-boot/GmcFileName.h: Ditto.
	* mc-boot/GmcLexBuf.cc: Ditto.
	* mc-boot/GmcLexBuf.h: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcMetaError.h: Ditto.
	* mc-boot/GmcOptions.cc: Ditto.
	* mc-boot/GmcOptions.h: Ditto.
	* mc-boot/GmcPreprocess.cc: Ditto.
	* mc-boot/GmcPreprocess.h: Ditto.
	* mc-boot/GmcPretty.cc: Ditto.
	* mc-boot/GmcPretty.h: Ditto.
	* mc-boot/GmcPrintf.cc: Ditto.
	* mc-boot/GmcPrintf.h: Ditto.
	* mc-boot/GmcQuiet.cc: Ditto.
	* mc-boot/GmcQuiet.h: Ditto.
	* mc-boot/GmcReserved.cc: Ditto.
	* mc-boot/GmcReserved.h: Ditto.
	* mc-boot/GmcSearch.cc: Ditto.
	* mc-boot/GmcSearch.h: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc-boot/GmcStack.h: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/GmcStream.h: Ditto.
	* mc-boot/Gmcflex.h: Ditto.
	* mc-boot/Gmcp1.cc: Ditto.
	* mc-boot/Gmcp1.h: Ditto.
	* mc-boot/Gmcp2.cc: Ditto.
	* mc-boot/Gmcp2.h: Ditto.
	* mc-boot/Gmcp3.cc: Ditto.
	* mc-boot/Gmcp3.h: Ditto.
	* mc-boot/Gmcp4.cc: Ditto.
	* mc-boot/Gmcp4.h: Ditto.
	* mc-boot/Gmcp5.cc: Ditto.
	* mc-boot/Gmcp5.h: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/GnameKey.h: Ditto.
	* mc-boot/GsymbolKey.cc: Ditto.
	* mc-boot/GsymbolKey.h: Ditto.
	* mc-boot/Gtermios.h: Ditto.
	* mc-boot/Gtop.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc-boot/Gvarargs.h: Ditto.
	* mc-boot/Gwlists.cc: Ditto.
	* mc-boot/Gwlists.h: Ditto.
	* mc-boot/Gwrapc.h: Ditto.
	* mc/decl.mod (cofft): New enum.
	(cardinal64): Ditto.
	(cofftN): New variable.
	(cardinal64N): Ditto.
	(isProcedure): Remove.
	(getSymName): Add clause for cofft and cardinal64.
	(makeBase): Ditto.
	(isOrdinal): Ditto.
	(getType): Ditto.
	(doGetExprType): Ditto.
	(getScope): Ditto.
	(doExprC): Ditto.
	(isSystem): Ditto.
	(doSystemC): Ditto.
	(doDependants): Ditto.
	(visitDependants): Ditto.
	(genKind): Ditto.
	(doSystemM2): Ditto.
	(doDupExpr): Ditto.
	(makeSystem): Initialize cofftN and cardinal64N.
	* mc/keyc.mod (useUIntMin): Remove.
	(useUIntMax): Ditto.
	* pge-boot/GIndexing.h: Rebuilt.
	* pge-boot/GSEnvironment.h: Ditto.
	* pge-boot/GScan.h: Ditto.
	* pge-boot/Glibc.h: Ditto.

2024-12-23  Wilken Gottwalt  <wilken.gottwalt@posteo.net>

	* gm2-libs-log/InOut.mod: Fix bad identifier warning.

2024-12-10  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117120
	* gm2-compiler/M2CaseList.mod (CaseBoundsResolved): Rewrite.
	(ConvertNulStr2NulChar): New procedure function.
	(NulStr2NulChar): Ditto.
	(GetCaseExpression): Ditto.
	(OverlappingCaseBound): Rewrite.
	* gm2-compiler/M2GCCDeclare.mod (CheckResolveSubrange): Allow
	'' to be used as the subrange low limit.
	* gm2-compiler/M2GenGCC.mod (FoldConvert): Rewrite.
	(PopKindTree): Ditto.
	(BuildHighFromString): Reformat.
	* gm2-compiler/SymbolTable.mod (PushConstString): Add test for
	length 0 and PushChar (nul).

2024-12-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115328
	* gm2-compiler/M2Options.def (GetEnableForward): New procedure
	function.
	(SetEnableForward): New procedure.
	* gm2-compiler/M2Options.mod (GetEnableForward): New procedure
	function.
	(SetEnableForward): New procedure.
	(EnableForward): New boolean.
	* gm2-compiler/P1SymBuild.mod (EndBuildForward): Check
	GetEnableForward and generate an error message if false.

2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117948
	* gm2-compiler/P1Build.bnf (ForwardDeclaration): Pass token
	position of the FORWARD keyword to EndBuildForward.
	* gm2-compiler/P1SymBuild.def (EndBuildForward): New parameter
	forwardPos.
	* gm2-compiler/P1SymBuild.mod (EndBuildForward): Issue an error at
	forwardPos if the Iso boolean is false.

2024-12-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117904
	* gm2-compiler/M2GenGCC.mod (PerformLastForIterator): Add call to
	BuildConvert when increment is > 0.

2024-11-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117777
	* gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Allow term after
	ConstExpression to be optional.
	* gm2-compiler/P1Build.bnf (AsmOperands): Ditto.
	* gm2-compiler/P2Build.bnf (AsmOperands): Ditto.
	* gm2-compiler/PCBuild.bnf (AsmOperands): Ditto.
	* gm2-compiler/PHBuild.bnf (AsmOperands): Ditto.

2024-11-23  Maciej W. Rozycki  <macro@orcam.me.uk>

	* Make-lang.in (m2 modula-2 modula2): Remove $(GCC_PARTS).

2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR bootstrap/117737
	* gm2-gcc/gcc-consolidation.h (INCLUDE_MEMORY): Remove.
	* gm2-gcc/m2configure.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GASCII.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GASCII.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GArgs.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GArgs.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GAssertion.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GAssertion.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GBreak.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GBreak.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GCOROUTINES.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GCmdArgs.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GCmdArgs.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GDebug.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GDebug.h (INCLUDE_MEMORY): Remove. Remove.
	* mc-boot/GDynamicStrings.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GDynamicStrings.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GEnvironment.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GEnvironment.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GFIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GFIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GFormatStrings.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GFormatStrings.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GFpuIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GFpuIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GIndexing.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GIndexing.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2Dependent.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2Dependent.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2EXCEPTION.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2EXCEPTION.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2RTS.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GM2RTS.h (INCLUDE_MEMORY): Remove. Remove.
	* mc-boot/GMemUtils.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GMemUtils.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GNumberIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GNumberIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GPushBackInput.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GPushBackInput.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTExceptions.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTExceptions.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTco.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTentity.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTint.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GRTint.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSArgs.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GSArgs.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSFIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GSFIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSYSTEM.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSelective.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStdIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStdIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStorage.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStorage.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrCase.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrCase.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrIO.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrIO.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrLib.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStrLib.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GStringConvert.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GStringConvert.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSysExceptions.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GSysStorage.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GSysStorage.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GTimeString.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GTimeString.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GUnixArgs.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Galists.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Galists.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gdecl.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gdecl.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gdtoa.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gerrno.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gkeyc.cc (INCLUDE_MEMORY): Remove.
	(checkGccConfigSystem): Remove printing out `#define INCLUDE_MEMORY`.
	* mc-boot/Gkeyc.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gldtoa.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Glibc.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Glibm.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Glists.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Glists.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcComment.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcComment.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcComp.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcComp.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcDebug.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcDebug.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcError.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcError.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcFileName.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcFileName.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcLexBuf.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcLexBuf.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcMetaError.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcMetaError.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcOptions.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcOptions.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPreprocess.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPreprocess.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPretty.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPretty.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPrintf.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcPrintf.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcQuiet.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcQuiet.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcReserved.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcReserved.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcSearch.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcSearch.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcStack.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcStack.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcStream.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GmcStream.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcflex.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp1.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp1.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp2.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp2.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp3.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp3.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp4.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp4.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp5.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gmcp5.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GnameKey.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GnameKey.h (INCLUDE_MEMORY): Remove.
	* mc-boot/GsymbolKey.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/GsymbolKey.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gtermios.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gtop.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gvarargs.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gvarargs.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gwlists.cc (INCLUDE_MEMORY): Remove.
	* mc-boot/Gwlists.h (INCLUDE_MEMORY): Remove.
	* mc-boot/Gwrapc.h (INCLUDE_MEMORY): Remove.
	* pge-boot/GIndexing.h (INCLUDE_MEMORY): Remove.
	* pge-boot/GSEnvironment.h (INCLUDE_MEMORY): Remove.
	* pge-boot/GScan.h (INCLUDE_MEMORY): Remove.

2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117555
	* gm2-libs-iso/M2EXCEPTION.mod (M2Exception): Add missing
	return statement.
	* gm2-libs-iso/RealConv.mod (ValueReal): Ditto.
	* gm2-libs-iso/RndFile.mod (StartPos): Ditto.
	(EndPos): Ditto.
	(NewPos): Ditto.
	* gm2-libs-iso/ShortConv.mod (ValueReal): Ditto.
	* gm2-libs-iso/WholeConv.mod (ValueInt): Ditto.
	(ValueCard): Ditto.

2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117660
	* gm2-compiler/P2Build.bnf (ArrayType): Update tok with the
	composite token produced during array type declaration.
	* gm2-compiler/P2SymBuild.mod (EndBuildArray): Create the
	combinedtok and store it into the symbol table.
	Also ensure combinedtok is pushed to the quad stack.
	(BuildFieldArray): Preserve typetok.
	* gm2-compiler/SymbolTable.def (PutArray): Rename parameters.
	* gm2-compiler/SymbolTable.mod (PutArray): Rename parameters.

2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117371
	* gm2-compiler/M2GenGCC.mod (PerformLastForIterator):
	Add check for zero step value and issue an error message.

2024-11-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117555
	* gm2-libs-iso/EXCEPTIONS.mod (CurrentNumber): Add return
	statement.
	* gm2-libs-iso/IOChan.mod (ReadResult): Ditto.
	(CurrentFlags): Ditto.
	(DeviceError): Ditto.
	* gm2-libs-iso/IOLink.mod (DeviceTablePtrValue): Ditto.
	* gm2-libs-iso/LongConv.mod (ValueReal): Ditto.
	* gm2-libs/M2RTS.mod (Halt): Add noreturn attribute.
	Add exit (1).
	(HaltC): Add exit (1).
	* pge-boot/GM2RTS.cc (M2RTS_Halt): Add exit (1).
	(M2RTS_HaltC): Ditto.

2024-11-15  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117371
	* gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to
	MetaErrorDecl.
	(IsUserType): Test against ZType.
	(MixTypesDecl): Test for ZType.
	* gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to
	MetaErrorDecl.
	(CodeLastForIterator): New procedure.
	(FoldLastForIterator): Ditto.
	(PerformLastForIterator): Ditto.
	(CodeStatement): Add case clause for LastForIteratorOp.
	(ErrorMessageDecl): Add iserror parameter.
	Call MetaErrorDecl with iserror parameter.
	(checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter.
	(CheckBinaryExpressionTypes): Ditto.
	(CheckElementSetTypes): Ditto.
	* gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment
	detailing the fall back when UnknownTokenNo is encountered.
	(MakeVirtual2Tok): Ditto.
	* gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against
	UnknownTokenNo.
	(MakeVirtual2Tok): Ditto.
	* gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter.
	* gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error
	parameter.
	Issue warning if error is FALSE.
	* gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp.
	* gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause
	LastForIteratorOp.
	(CheckAddTuple2Read): New procedure.
	(BuildForLoopToRangeCheck): Remove.
	(ForLoopLastIteratorVariable): Ditto.
	(ForLoopLastIteratorConstant): Ditto.
	(ForLoopLastIterator): Reimplement.
	(BuildForToByDo): Remove ByType from call to ForLoopLastIterator.
	(WriteQuad): New case clause LastForIteratorOp.
	(WriteOperator): Ditto.
	* gm2-compiler/M2Students.def
	(CheckForVariableThatLooksLikeKeyword): Replace with ...
	(CheckVariableAgainstKeyword): ... this.
	* gm2-compiler/M2Students.mod
	(CheckForVariableThatLooksLikeKeyword): Replace with ...
	(CheckVariableAgainstKeyword): ... this.
	* gm2-compiler/M2SymInit.mod (CheckLastForIterator): New
	procedure.
	(CheckReadBeforeInitQuad): New case clause to call
	CheckLastForIterator.
	* gm2-compiler/P2SymBuild.mod: Replace
	CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword.

2024-11-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c):
	New rule.
	(m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto.
	(m2/gm2-compiler-boot/P1Build.c): Ditto.
	(m2/gm2-compiler-boot/P1Build.o): Ditto.
	(m2/gm2-compiler-boot/P2Build.c): Ditto.
	(m2/gm2-compiler-boot/P2Build.o): Ditto.
	(m2/gm2-compiler-boot/P3Build.c): Ditto.
	(m2/gm2-compiler-boot/P3Build.o): Ditto.
	(m2/gm2-compiler-boot/PCBuild.c): Ditto.
	(m2/gm2-compiler-boot/PCBuild.o): Ditto.
	(m2/gm2-compiler-boot/PHBuild.c): Ditto.
	(m2/gm2-compiler-boot/PHBuild.o): Ditto.

2024-11-11  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Base.def (MixTypes): Rename parameters.
	(MixTypesDecl): New procedure function.
	* gm2-compiler/M2Base.mod (BuildOrdFunctions): Add
	DefProcedure parameter to PutFunction.
	(BuildTruncFunctions): Ditto.
	(BuildFloatFunctions): Ditto.
	(BuildIntFunctions): Ditto.
	(InitBaseFunctions): Ditto.
	(MixTypesDecl): New procedure function.
	(MixTypes): Reimplement.
	* gm2-compiler/M2Check.mod (checkProcType): Replace
	NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	(checkProcedureProcType): Ditto.
	* gm2-compiler/M2Error.def: Remove unnecessary export qualified list.
	* gm2-compiler/M2GCCDeclare.mod: Replace NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	(DeclareProcedureToGccWholeProgram): Rename son to
	Variable.
	(DeclareProcedureToGccSeparateProgram): Ditto.
	(PrintKind): New procedure.
	(PrintProcedureParameters): Ditto.
	(PrintProcedureReturnType): Ditto.
	(PrintProcedure): Reimplement.
	(PrintProcTypeParameters): New procedure.
	(PrintProcType): Ditto.
	(DeclareProcType): Rename Son to Parameter.
	* gm2-compiler/M2GenGCC.mod: Replace NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	(ErrorMessageDecl): New procedure.
	(checkIncorrectMeta): Replace call to MetaErrorT2 with
	ErrorMessageDecl.
	(ComparisonMixTypes): Add varleft and varright parameters.
	Adjust all callers of ComparisonMixTypes.
	* gm2-compiler/M2MetaError.def (MetaErrorDecl): New procedure.
	* gm2-compiler/M2MetaError.mod (MetaErrorDecl): New procedure.
	* gm2-compiler/M2Options.def (SetXCode): Add -fd flag description
	to comment.
	* gm2-compiler/M2Options.mod (SetXCode): Add -fd flag description
	to comment.
	* gm2-compiler/M2Quads.mod (CheckBreak): New procedure.
	Replace NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	(FailParameter): Reimplement using GetVarDeclFullTok.
	Generate message for formal parameter, actual parameter and
	declaration of actual parameter.
	(WarnParameter): Ditto.
	(CheckBuildFunction): Reimplement error message using MetaErrorT1.
	* gm2-compiler/M2Range.mod: Replace NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	* gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Call
	PutProcedureDefined after every procedure declaration.
	(DeclareArgEnvParams): Add ProperProcedure parameter to PutParam.
	* gm2-compiler/M2Size.mod (MakeSize): Add DefProcedure parameter
	to PutFunction.
	* gm2-compiler/M2Swig.mod: Replace NoOfParam with NoOfParamAny.
	Replace IsVarParam with IsVarParamAny.
	* gm2-compiler/M2SymInit.mod: Ditto.
	* gm2-compiler/M2System.mod (InitSystem): Add DefProcedure
	parameter to PutFunction.
	* gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
	(EndBuildProcedure): Ditto.
	(EndBuildForward): Ditto.
	* gm2-compiler/P2Build.bnf (BuildProcedureDefinedByForward):
	Remove.
	(BuildProcedureDefinedByProper): Ditto.
	(ForwardDeclaration): Remove BuildProcedureDefinedByForward.
	(BuildNoReturnAttribute): Remove parameter.
	* gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): Remove
	parameter.
	(BuildProcedureDefinedByForward): Remove.
	(BuildProcedureDefinedByProper): Ditto.
	* gm2-compiler/P2SymBuild.mod (Import): Remove
	AreParametersDefinedInDefinition,
	AreParametersDefinedInImplementation,
	AreProcedureParametersDefined,
	ParametersDefinedInDefinition,
	ParametersDefinedInImplementation,
	GetProcedureDeclaredDefinition,
	GetProcedureDeclaredForward,
	GetProcedureDeclaredProper,
	GetParametersDefinedByForward,
	GetParametersDefinedByProper and
	PutProcedureNoReturn.
	Add PutProcedureParametersDefined,
	GetProcedureParametersDefined,
	GetProcedureKindDesc,
	GetProcedureDeclaredTok,
	GetProcedureKind,
	GetReturnTypeTok,
	SetReturnOptional,
	IsReturnOptional,
	PutProcedureNoReturn and
	PutProcedureDefined.
	(Debug): New procedure.
	(P2StartBuildDefModule): Space formatting.
	(BuildVariable): Reimplement to record full declaration.
	(StartBuildProcedure): Reimplement using token to determine
	the kind of procedure.
	(BuildProcedureHeading): Ditto.
	(BuildFPSection): Ditto.
	(BuildVarArgs): Ditto.
	(BuildOptArg): Ditto.
	(BuildProcedureDefinedByForward): Remove.
	(BuildProcedureDefinedByProper): Ditto.
	(BuildFormalParameterSection): Reimplement so that the
	quad stack is unchanged.
	(CheckFormalParameterSection): Ditto.
	(RemoveFPParameters): New procedure.
	(ParameterError): Reimplement.
	(StartBuildFormalParameters): Add annotation.
	(ParameterMismatch): Reimplement.
	(EndBuildFormalParameters): Reimplement to check against
	all procedure kinds.
	(GetSourceDesc): Remove.
	(GetCurSrcDesc): Ditto.
	(GetDeclared): Ditto.
	(ReturnTypeMismatch): Reimplement.
	(BuildFunction): Ditto.
	(BuildOptFunction): Ditto.
	(CheckOptFunction): New procedure.
	(BuildNoReturnAttribute): Remove parameter and obtain
	procedure symbol from quad stack.
	(CheckProcedureReturn): New procedure.
	* gm2-compiler/P3SymBuild.mod (BuildOptArgInitializer):
	Preserve ProcSym tok on the quad stack.
	Add Assert.
	* gm2-compiler/PCSymBuild.mod (fixupProcedureType): Replace
	NoOfParam with NoOfParamAny.
	* gm2-compiler/SymbolTable.def (GetNthParam): Add ProcedureKind
	parameter.
	(PutFunction): Ditto.
	(PutOptFunction): Ditto.
	(IsReturnOptional): Ditto.
	(PutParam): Ditto.
	(PutVarParam): Ditto.
	(PutParamName): Ditto.
	(PutProcedureNoReturn): Ditto.
	(IsProcedureNoReturn): Ditto.
	(IsVarParam): Ditto.
	(IsUnboundedParam): Ditto.
	(NoOfParam): Ditto.
	(ForeachLocalSymDo): Ditto.
	(GetProcedureKind): Ditto.
	(GetProcedureDeclaredTok): Ditto.
	(PutProcedureDeclaredTok): Ditto.
	(GetReturnTypeTok): Ditto.
	(PutReturnTypeTok): Ditto.
	(PutParametersDefinedByForward): New procedure.
	(PutProcedureParametersDefined): Ditto.
	(PutProcedureDefined): Ditto.
	(GetParametersDefinedByProper): Ditto.
	(GetProcedureDeclaredForward): Ditto.
	(GetProcedureDeclaredProper): Ditto.
	(PutProcedureDeclaredProper): Ditto.
	(GetProcedureDeclaredDefinition): Ditto.
	(PutProcedureDeclaredDefinition): Ditto.
	(GetProcedureDefined): Ditto.
	(PutUseOptArg): Ditto.
	(UsesOptArg): Ditto.
	(PutOptArgInit): Ditto.
	(SetReturnOptional): Ditto.
	(UsesOptArgAny): Ditto.
	(GetProcedureKindDesc): Ditto.
	(IsReturnOptionalAny): New procedure function.
	(GetNthParamAny): Ditto.
	(NoOfParamAny): Ditto.
	(IsProcedureAnyNoReturn): Ditto.
	(AreParametersDefinedInImplementation): Remove.
	(ParametersDefinedInImplementation): Ditto.
	(AreParametersDefinedInDefinition): Ditto.
	(AreProcedureParametersDefined): Ditto.
	(ParametersDefinedInDefinition): Ditto.
	(ProcedureParametersDefined): Ditto.
	(PutParametersDefinedByProper): Ditto.
	(PutProcedureDeclaredForward): Ditto.
	(GetParametersDefinedByForward): Ditto.
	(GetProcedureParametersDefined): Ditto.
	(PushOffset): Ditto.
	(PopSize): Ditto.
	(PushParamSize): Ditto.
	(PushSumOfLocalVarSize): Ditto.
	(PushSumOfParamSize): Ditto.
	(PopOffset): Ditto.
	(PopSumOfParamSize): Ditto.
	* gm2-compiler/SymbolTable.mod (MakeProcedure): Reimplement.
	(PutProcedureNoReturn): Add ProcedureKind parameter.
	(GetNthParam): Ditto.
	(PutFunction): Ditto.
	(PutOptFunction): Ditto.
	(IsReturnOptional): Ditto.
	(MakeVariableForParam): Ditto.
	(PutParam): Ditto.
	(PutVarParam): Ditto.
	(PutParamName): Ditto.
	(AddParameter): Ditto.
	(IsVarParam): Ditto.
	(IsVarParamAny): Ditto.
	(NoOfParam): Ditto.
	(HasVarParameters): Ditto.
	(IsUnboundedParam): Ditto.
	(PutUseVarArgs): Ditto.
	(UsesVarArgs): Ditto.
	(PutUseOptArg): Ditto.
	(UsesOptArg): Ditto.
	(UsesOptArgAny): Ditto.
	(PutOptArgInit): Ditto.
	(IsProcedure): Ditto.
	(IsPointer): Ditto.
	(IsRecord): Ditto.
	(IsArray): Ditto.
	(IsEnumeration): Ditto.
	(IsUnbounded): Ditto.
	(IsSet): Ditto.
	(IsSetPacked): Ditto.
	(CheckUnbounded): Ditto.
	(IsOAFamily): Ditto.
	(IsModuleWithinProcedure): Ditto.
	(GetDeclaredDef): Ditto.
	(GetDeclaredMod): Ditto.
	(GetDeclaredFor): Ditto.
	(GetProcedureDeclaredForward): Ditto.
	(GetProcedureKind): Ditto.
	(PutProcedureDeclaredForward): Ditto.
	(GetProcedureDeclaredTok): Ditto.
	(GetProcedureDeclaredProper): Ditto.
	(PutProcedureDeclaredTok): Ditto.
	(PutProcedureDeclaredProper): Ditto.
	(GetReturnTypeTok): Ditto.
	(GetProcedureDeclaredDefinition): Ditto.
	(PutReturnTypeTok): Ditto.
	(PutProcedureDeclaredDefinition): Ditto.
	(GetProcedureKindDesc): Ditto.
	(IsProcedureVariable): Ditto.
	(IsAModula2Type): Ditto.
	(GetParam): Ditto.
	(ProcedureParametersDefined): Ditto.
	(AreParametersDefinedInImplementation): Remove.
	(AreParametersDefinedInDefinition): Ditto.
	(AreProcedureParametersDefined): Ditto.
	(IsSizeSolved): Ditto.
	(IsOffsetSolved): Ditto.
	(IsValueSolved): Ditto.
	(IsSumOfParamSizeSolved): Ditto.
	(PushSize): Ditto.
	(PushOffset): Ditto.
	(PopSize): Ditto.
	(PushValue): Ditto.
	(PushParamSize): Ditto.
	(PushSumOfLocalVarSize): Ditto.
	(PushSumOfParamSize): Ditto.
	(PushVarSize): Ditto.
	(PopValue): Ditto.
	(PopSize): Ditto.
	(PopOffset): Ditto.
	(PopSumOfParamSize): Ditto.
	(PutParametersDefinedByForward): New procedure.
	(PutProcedureParametersDefined): Ditto.
	(PutProcedureDefined): Ditto.
	(GetParametersDefinedByProper): Ditto.
	(GetProcedureDeclaredForward): Ditto.
	(GetProcedureDeclaredProper): Ditto.
	(PutProcedureDeclaredProper): Ditto.
	(GetProcedureDeclaredDefinition): Ditto.
	(PutProcedureDeclaredDefinition): Ditto.
	(GetProcedureDefined): Ditto.
	(PutUseOptArg): Ditto.
	(UsesOptArg): Ditto.
	(PutOptArgInit): Ditto.
	(SetReturnOptional): Ditto.
	(UsesOptArgAny): Ditto.
	(GetProcedureKindDesc): Ditto.
	(PutParametersDefinedByProper): Ditto.
	(GetParametersDefinedByProper): Ditto.
	(IsReturnOptionalAny): New procedure function.
	(IsProcedureAnyDefaultBoolean): Ditto.
	(IsProcedureAnyBoolean): Ditto.
	(IsProcedureAnyNoReturn): Ditto.
	(GetNthParamAny): Ditto.
	(NoOfParamAny): Ditto.
	(IsProcedureAnyNoReturn): Ditto.
	(GetProcedureKind): Ditto.
	(IsVarParamAny): Ditto.
	(IsUnboundedParamAny): Ditto.
	(ForeachParamSymDo): New comment.
	* gm2-libs-coroutines/SYSTEM.mod: Reformat.

2024-11-09  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (m2_OBJS): Add $(BUILD-LIBS-BOOT),
	$(BUILD-COMPILER-BOOT) and $(MC_LIBS).

2024-10-25  Jakub Jelinek  <jakub@redhat.com>

	* mc-boot/GFpuIO.cc: Remove trailing whitespace.
	* mc-boot/GFIO.cc: Likewise.
	* mc-boot/GFormatStrings.cc: Likewise.
	* mc-boot/GCmdArgs.cc: Likewise.
	* mc-boot/GDebug.h: Likewise.
	* mc-boot/GM2Dependent.cc: Likewise.
	* mc-boot/GRTint.cc: Likewise.
	* mc-boot/GDebug.cc: Likewise.
	* mc-boot/GmcError.cc: Likewise.
	* mc-boot/Gmcp4.cc: Likewise.
	* mc-boot/GM2RTS.cc: Likewise.
	* mc-boot/GIO.cc: Likewise.
	* mc-boot/Gmcp5.cc: Likewise.
	* mc-boot/GDynamicStrings.cc: Likewise.
	* mc-boot/Gmcp1.cc: Likewise.
	* mc-boot/GFormatStrings.h: Likewise.
	* mc-boot/Gmcp2.cc: Likewise.
	* mc-boot/Gmcp3.cc: Likewise.
	* pge-boot/GFIO.cc: Likewise.
	* pge-boot/GDebug.h: Likewise.
	* pge-boot/GM2Dependent.cc: Likewise.
	* pge-boot/GDebug.cc: Likewise.
	* pge-boot/GM2RTS.cc: Likewise.
	* pge-boot/GSymbolKey.cc: Likewise.
	* pge-boot/GIO.cc: Likewise.
	* pge-boot/GIndexing.cc: Likewise.
	* pge-boot/GDynamicStrings.cc: Likewise.
	* pge-boot/GFormatStrings.h: Likewise.

2024-10-24  David Malcolm  <dmalcolm@redhat.com>
	    Gaius Mulley  <gaiusmod2@gmail.com>

	PR other/116613
	* gm2-gcc/gcc-consolidation.h: Add #define INCLUDE_MEMORY.
	* gm2-gcc/m2configure.cc: Likewise.
	* mc-boot/GASCII.cc: Regenerate.
	* mc-boot/GASCII.h: Ditto.
	* mc-boot/GArgs.cc: Ditto.
	* mc-boot/GArgs.h: Ditto.
	* mc-boot/GAssertion.cc: Ditto.
	* mc-boot/GAssertion.h: Ditto.
	* mc-boot/GBreak.cc: Ditto.
	* mc-boot/GBreak.h: Ditto.
	* mc-boot/GCOROUTINES.h: Ditto.
	* mc-boot/GCmdArgs.cc: Ditto.
	* mc-boot/GCmdArgs.h: Ditto.
	* mc-boot/GDebug.cc: Ditto.
	* mc-boot/GDebug.h: Ditto.
	* mc-boot/GDynamicStrings.cc: Ditto.
	* mc-boot/GDynamicStrings.h: Ditto.
	* mc-boot/GEnvironment.cc: Ditto.
	* mc-boot/GEnvironment.h: Ditto.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GFIO.h: Ditto.
	* mc-boot/GFormatStrings.cc: Ditto.
	* mc-boot/GFormatStrings.h: Ditto.
	* mc-boot/GFpuIO.cc: Ditto.
	* mc-boot/GFpuIO.h: Ditto.
	* mc-boot/GIO.cc: Ditto.
	* mc-boot/GIO.h: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GIndexing.h: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GM2Dependent.h: Ditto.
	* mc-boot/GM2EXCEPTION.cc: Ditto.
	* mc-boot/GM2EXCEPTION.h: Ditto.
	* mc-boot/GM2RTS.cc: Ditto.
	* mc-boot/GM2RTS.h: Ditto.
	* mc-boot/GMemUtils.cc: Ditto.
	* mc-boot/GMemUtils.h: Ditto.
	* mc-boot/GNumberIO.cc: Ditto.
	* mc-boot/GNumberIO.h: Ditto.
	* mc-boot/GPushBackInput.cc: Ditto.
	* mc-boot/GPushBackInput.h: Ditto.
	* mc-boot/GRTExceptions.cc: Ditto.
	* mc-boot/GRTExceptions.h: Ditto.
	* mc-boot/GRTco.h: Ditto.
	* mc-boot/GRTentity.h: Ditto.
	* mc-boot/GRTint.cc: Ditto.
	* mc-boot/GRTint.h: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GSArgs.h: Ditto.
	* mc-boot/GSFIO.cc: Ditto.
	* mc-boot/GSFIO.h: Ditto.
	* mc-boot/GSYSTEM.h: Ditto.
	* mc-boot/GSelective.h: Ditto.
	* mc-boot/GStdIO.cc: Ditto.
	* mc-boot/GStdIO.h: Ditto.
	* mc-boot/GStorage.cc: Ditto.
	* mc-boot/GStorage.h: Ditto.
	* mc-boot/GStrCase.cc: Ditto.
	* mc-boot/GStrCase.h: Ditto.
	* mc-boot/GStrIO.cc: Ditto.
	* mc-boot/GStrIO.h: Ditto.
	* mc-boot/GStrLib.cc: Ditto.
	* mc-boot/GStrLib.h: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/GStringConvert.h: Ditto.
	* mc-boot/GSysExceptions.h: Ditto.
	* mc-boot/GSysStorage.cc: Ditto.
	* mc-boot/GSysStorage.h: Ditto.
	* mc-boot/GTimeString.cc: Ditto.
	* mc-boot/GTimeString.h: Ditto.
	* mc-boot/GUnixArgs.h: Ditto.
	* mc-boot/Galists.cc: Ditto.
	* mc-boot/Galists.h: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gdecl.h: Ditto.
	* mc-boot/Gdtoa.h: Ditto.
	* mc-boot/Gerrno.h: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Gkeyc.h: Ditto.
	* mc-boot/Gldtoa.h: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc-boot/Glibm.h: Ditto.
	* mc-boot/Glists.cc: Ditto.
	* mc-boot/Glists.h: Ditto.
	* mc-boot/GmcComment.cc: Ditto.
	* mc-boot/GmcComment.h: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcComp.h: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcDebug.h: Ditto.
	* mc-boot/GmcError.cc: Ditto.
	* mc-boot/GmcError.h: Ditto.
	* mc-boot/GmcFileName.cc: Ditto.
	* mc-boot/GmcFileName.h: Ditto.
	* mc-boot/GmcLexBuf.cc: Ditto.
	* mc-boot/GmcLexBuf.h: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcMetaError.h: Ditto.
	* mc-boot/GmcOptions.cc: Ditto.
	* mc-boot/GmcOptions.h: Ditto.
	* mc-boot/GmcPreprocess.cc: Ditto.
	* mc-boot/GmcPreprocess.h: Ditto.
	* mc-boot/GmcPretty.cc: Ditto.
	* mc-boot/GmcPretty.h: Ditto.
	* mc-boot/GmcPrintf.cc: Ditto.
	* mc-boot/GmcPrintf.h: Ditto.
	* mc-boot/GmcQuiet.cc: Ditto.
	* mc-boot/GmcQuiet.h: Ditto.
	* mc-boot/GmcReserved.cc: Ditto.
	* mc-boot/GmcReserved.h: Ditto.
	* mc-boot/GmcSearch.cc: Ditto.
	* mc-boot/GmcSearch.h: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc-boot/GmcStack.h: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/GmcStream.h: Ditto.
	* mc-boot/Gmcflex.h: Ditto.
	* mc-boot/Gmcp1.cc: Ditto.
	* mc-boot/Gmcp1.h: Ditto.
	* mc-boot/Gmcp2.cc: Ditto.
	* mc-boot/Gmcp2.h: Ditto.
	* mc-boot/Gmcp3.cc: Ditto.
	* mc-boot/Gmcp3.h: Ditto.
	* mc-boot/Gmcp4.cc: Ditto.
	* mc-boot/Gmcp4.h: Ditto.
	* mc-boot/Gmcp5.cc: Ditto.
	* mc-boot/Gmcp5.h: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/GnameKey.h: Ditto.
	* mc-boot/GsymbolKey.cc: Ditto.
	* mc-boot/GsymbolKey.h: Ditto.
	* mc-boot/Gtermios.h: Ditto.
	* mc-boot/Gtop.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc-boot/Gvarargs.h: Ditto.
	* mc-boot/Gwlists.cc: Ditto.
	* mc-boot/Gwlists.h: Ditto.
	* mc-boot/Gwrapc.h: Ditto.
	* mc/keyc.mod (checkGccConfigSystem): Add
	#define INCLUDE_MEMORY.
	* pge-boot/GASCII.cc: Regenerate.
	* pge-boot/GASCII.h: Ditto.
	* pge-boot/GArgs.cc: Ditto.
	* pge-boot/GArgs.h: Ditto.
	* pge-boot/GAssertion.cc: Ditto.
	* pge-boot/GAssertion.h: Ditto.
	* pge-boot/GBreak.h: Ditto.
	* pge-boot/GCmdArgs.h: Ditto.
	* pge-boot/GDebug.cc: Ditto.
	* pge-boot/GDebug.h: Ditto.
	* pge-boot/GDynamicStrings.cc: Ditto.
	* pge-boot/GDynamicStrings.h: Ditto.
	* pge-boot/GEnvironment.h: Ditto.
	* pge-boot/GFIO.cc: Ditto.
	* pge-boot/GFIO.h: Ditto.
	* pge-boot/GFormatStrings.h: Ditto.
	* pge-boot/GFpuIO.h: Ditto.
	* pge-boot/GIO.cc: Ditto.
	* pge-boot/GIO.h: Ditto.
	* pge-boot/GIndexing.cc: Ditto.
	* pge-boot/GIndexing.h: Ditto.
	* pge-boot/GLists.cc: Ditto.
	* pge-boot/GLists.h: Ditto.
	* pge-boot/GM2Dependent.cc: Ditto.
	* pge-boot/GM2Dependent.h: Ditto.
	* pge-boot/GM2EXCEPTION.cc: Ditto.
	* pge-boot/GM2EXCEPTION.h: Ditto.
	* pge-boot/GM2RTS.cc: Ditto.
	* pge-boot/GM2RTS.h: Ditto.
	* pge-boot/GNameKey.cc: Ditto.
	* pge-boot/GNameKey.h: Ditto.
	* pge-boot/GNumberIO.cc: Ditto.
	* pge-boot/GNumberIO.h: Ditto.
	* pge-boot/GOutput.cc: Ditto.
	* pge-boot/GOutput.h: Ditto.
	* pge-boot/GPushBackInput.cc: Ditto.
	* pge-boot/GPushBackInput.h: Ditto.
	* pge-boot/GRTExceptions.cc: Ditto.
	* pge-boot/GRTExceptions.h: Ditto.
	* pge-boot/GSArgs.h: Ditto.
	* pge-boot/GSEnvironment.h: Ditto.
	* pge-boot/GSFIO.cc: Ditto.
	* pge-boot/GSFIO.h: Ditto.
	* pge-boot/GSYSTEM.h: Ditto.
	* pge-boot/GScan.h: Ditto.
	* pge-boot/GStdIO.cc: Ditto.
	* pge-boot/GStdIO.h: Ditto.
	* pge-boot/GStorage.cc: Ditto.
	* pge-boot/GStorage.h: Ditto.
	* pge-boot/GStrCase.cc: Ditto.
	* pge-boot/GStrCase.h: Ditto.
	* pge-boot/GStrIO.cc: Ditto.
	* pge-boot/GStrIO.h: Ditto.
	* pge-boot/GStrLib.cc: Ditto.
	* pge-boot/GStrLib.h: Ditto.
	* pge-boot/GStringConvert.h: Ditto.
	* pge-boot/GSymbolKey.cc: Ditto.
	* pge-boot/GSymbolKey.h: Ditto.
	* pge-boot/GSysExceptions.h: Ditto.
	* pge-boot/GSysStorage.cc: Ditto.
	* pge-boot/GSysStorage.h: Ditto.
	* pge-boot/GTimeString.h: Ditto.
	* pge-boot/GUnixArgs.h: Ditto.
	* pge-boot/Gbnflex.cc: Ditto.
	* pge-boot/Gbnflex.h: Ditto.
	* pge-boot/Gdtoa.h: Ditto.
	* pge-boot/Gerrno.h: Ditto.
	* pge-boot/Gldtoa.h: Ditto.
	* pge-boot/Glibc.h: Ditto.
	* pge-boot/Glibm.h: Ditto.
	* pge-boot/Gpge.cc: Ditto.
	* pge-boot/Gtermios.h: Ditto.
	* pge-boot/Gwrapc.h: Ditto.

2024-10-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2MetaError.mod (op): Corrected ordering.
	* gm2-compiler/P2SymBuild.def: Remove comment.
	* gm2-compiler/P2SymBuild.mod (GetComparison): Replace
	the word less with fewer.

2024-10-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2MetaError.mod (op): Alphabetically order
	each case label and comment.

2024-10-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115328
	* gm2-compiler/M2MetaError.def: Extend comment documentating
	new format specifiers.
	* gm2-compiler/M2MetaError.mod (GetTokProcedure): New declaration.
	(doErrorScopeModule): New procedure.
	(doErrorScopeForward): Ditto.
	(doErrorScopeMod): Reimplement.
	(doErrorScopeFor): New procedure.
	(declarationMod): Ditto.
	(doErrorScopeDefinition): Ditto.
	(doErrorScopeDef): Reimplement.
	(declaredDef): New procedure.
	(declaredFor): Ditto.
	(doErrorScopeProc): Ditto.
	(declaredVar): Ditto.
	(declaredType): Ditto.
	(declaredFull): Ditto.
	* gm2-compiler/M2Options.mod (SetAutoInit): Add missing
	return type.
	(GetDumpGimple): Remove duplicate implementation.
	* gm2-compiler/M2Quads.def (DupFrame): New procedure.
	* gm2-compiler/M2Quads.mod (DupFrame): New procedure.
	* gm2-compiler/M2Reserved.def (ForwardTok): New variable.
	* gm2-compiler/M2Reserved.mod (ForwardTok): Initialize variable.
	* gm2-compiler/M2Scaffold.mod (DeclareArgEnvParams): Add
	tokno parameter for call to PutParam.
	* gm2-compiler/P0SymBuild.def (EndForward): New procedure.
	* gm2-compiler/P0SymBuild.mod (EndForward): New procedure.
	* gm2-compiler/P0SyntaxCheck.bnf (BlockAssert): New procedure.
	(ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/P1Build.bnf (ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/P1SymBuild.def (Export): Removed unnecessary
	export.
	(EndBuildForward): New procedure.
	* gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
	(EndBuildProcedure): Ditto.
	(EndBuildForward): Ditto.
	* gm2-compiler/P2Build.bnf (ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/P2SymBuild.def (BuildProcedureDefinedByForward):
	New procedure.
	(BuildProcedureDefinedByProper): Ditto.
	(CheckProcedure): Ditto.
	(EndBuildForward): Ditto.
	* gm2-compiler/P2SymBuild.mod (EndBuildProcedure): Reimplement.
	(EndBuildForward): New procedure.
	(BuildFPSection): Reimplement to allow forward declaration or
	checking of parameters.
	(BuildProcedureDefinedByProper): New procedure.
	(BuildProcedureDefinedByForward): Ditto
	(FailParameter): Remove.
	(ParameterError): New procedure.
	(ParameterMismatch): Ditto.
	(EndBuildFormalParameters): Add parameter number check.
	(GetComparison): New procedure function.
	(GetSourceDesc): Ditto.
	(GetCurSrcDesc): Ditto.
	(GetDeclared): New procedure.
	(ReturnTypeMismatch): Ditto.
	(BuildFunction): Reimplement.
	(CheckProcedure): New procedure.
	(CheckFormalParameterSection): Reimplement using ParameterError.
	* gm2-compiler/P3Build.bnf (ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/P3SymBuild.def (Export): Remove unnecessary export.
	(EndBuildForward): New procedure.
	* gm2-compiler/P3SymBuild.mod (EndBuildForward): New procedure.
	* gm2-compiler/PCBuild.bnf (ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/PCSymBuild.def (EndBuildForward): New procedure.
	* gm2-compiler/PCSymBuild.mod (EndBuildForward): Ditto.
	* gm2-compiler/PHBuild.bnf (ProcedureDeclaration): Reimplement rule.
	(PostProcedureHeading): New rule.
	(ForwardDeclaration): Ditto.
	(ProperProcedure): Ditto.
	* gm2-compiler/SymbolTable.def (PutVarTok): New procedure.
	(PutParam): Add typetok parameter.
	(PutVarParam): Ditto.
	(PutParamName): Ditto.
	(GetDeclaredFor): New procedure function.
	(AreParametersDefinedInDefinition): Ditto.
	(PutParametersDefinedByForward): New procedure.
	(GetParametersDefinedByForward): New procedure function.
	(PutParametersDefinedByProper): New procedure.
	(GetParametersDefinedByProper): New procedure function.
	(GetProcedureDeclaredForward): Ditto.
	(PutProcedureDeclaredForward): New procedure.
	(GetProcedureDeclaredProper): New procedure function.
	(PutProcedureDeclaredProper): New procedure.
	(GetProcedureDeclaredDefinition): New procedure function.
	(PutProcedureDeclaredDefinition): New procedure.
	(GetVarDeclTypeTok): Ditto.
	(PutVarDeclTypeTok): New procedure.
	(GetVarDeclTok): Ditto.
	(PutVarDeclTok): New procedure.
	(GetVarDeclFullTok): Ditto.
	* gm2-compiler/SymbolTable.mod (ProcedureDecl): New record type.
	(VarDecl): Ditto.
	(SymProcedure): Add new field Declared.
	(SymVar): Add new field Declared.
	(PutVarTok): New procedure.
	(PutParam): Add typetok parameter.
	(PutVarParam): Ditto.
	(PutParamName): Ditto.
	(GetDeclaredFor): New procedure function.
	(AreParametersDefinedInDefinition): Ditto.
	(PutParametersDefinedByForward): New procedure.
	(GetParametersDefinedByForward): New procedure function.
	(PutParametersDefinedByProper): New procedure.
	(GetParametersDefinedByProper): New procedure function.
	(GetProcedureDeclaredForward): Ditto.
	(PutProcedureDeclaredForward): New procedure.
	(GetProcedureDeclaredProper): New procedure function.
	(PutProcedureDeclaredProper): New procedure.
	(GetProcedureDeclaredDefinition): New procedure function.
	(PutProcedureDeclaredDefinition): New procedure.
	(GetVarDeclTypeTok): Ditto.
	(PutVarDeclTypeTok): New procedure.
	(GetVarDeclTok): Ditto.
	(PutVarDeclTok): New procedure.
	(GetVarDeclFullTok): Ditto.
	(MakeProcedure): Initialize Declared field.
	(MakeVar): Initialize Declared field.
	* gm2-libs-log/FileSystem.def (FileNameChar): Add
	missing return type.
	* m2.flex: Add FORWARD keyword.

2024-10-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116918
	* gm2-compiler/M2Swig.mod (DoCheckUnbounded): Escape
	the % character used in array_functions with %%.

2024-10-01  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/Indexing.def (FindIndice): New procedure
	function.
	* gm2-libs/Indexing.mod (FindIndice): Implement new
	procedure function.

2024-10-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116918
	* gm2-compiler/M2Swig.mod (AnnotateProcedure): Capitalize
	the generated comment, split comment into multiple lines and
	terminate the comment with ".  */".
	(DoCheckUnbounded): Escape the % character with %%.
	(DoWriteFile): Ditto.

2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>

	PR other/116801
	* lang.opt.urls: Regenerate.

2024-09-23  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/gm2-libs-boot/M2RTS.o): Remove
	--suppress-noreturn.
	* gm2-libs/M2RTS.mod (HaltC): Add noreturn attribute.
	* gm2-libs-min/M2RTS.mod (HALT): Add LOOP END.

2024-09-21  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Comp.mod (GenerateDependencies): Remove
	unused parameter.
	(WriteDep): Remove parameter dep.
	(WritePhoneDep): Ditto.

2024-09-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Check.mod (checkUnboundedArray): New
	procedure function.
	(checkUnboundedUnbounded): Ditto.
	(checkUnbounded): Rewrite to check the unbounded data
	type.
	(checkPair): Add comment.
	(doCheckPair): Add comment.
	Remove tinfo parameter from the call to checkTypeKindViolation.
	(checkTypeKindViolation): Remove ununsed parameter tinfo.
	* gm2-libs-ch/UnixArgs.cc (GM2RTS.h): Remove include.
	* gm2-libs-ch/m2rts.h (M2RTS_INIT): New define.
	(M2RTS_DEP): Ditto.
	(M2RTS_RegisterModule): New prototype.
	(GM2RTS.h): Add include to the MC_M2 block.

2024-09-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_BOOT_INCLUDES): New variable.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Rewrite to use
	GM2_BOOT_INCLUDES.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.

2024-09-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116181
	* Make-lang.in (GM2-GCC-DEFS): Add gcctypes.def and
	CDataTypes.def.
	(MC-LIB-DEFS): Add CDataTypes.def.
	* Make-maintainer.in (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o):
	Change include path to pge-boot.
	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(GM2PATH): Add -I$(srcdir)/m2/gm2-gcc.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.h): Add -I$(srcdir)/m2/gm2-gcc.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.cc): Ditto.
	* gm2-compiler/M2ALU.def (PushIntegerTree): Replace Tree with tree.
	(PopIntegerTree): Ditto.
	(PushRealTree): Ditto.
	(PopRealTree): Ditto.
	(PushComplexTree): Ditto.
	(PopComplexTree): Ditto.
	(PushSetTree): Ditto.
	(PopSetTree): Ditto.
	(PopConstructorTree): Ditto.
	(ConstructSetConstant): Ditto.
	(BuildRange): Ditto.
	(CheckOrResetOverflow): Ditto.
	(PushTypeOfTree): Ditto.
	* gm2-compiler/M2ALU.mod (Tree): Replace with ...
	(tree): ... this.
	(gcctypes): Import location_t and tree.
	(m2linemap): Remove import of location_t.
	* gm2-compiler/M2Base.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2Base.mod (gcctypes): Import of location_t.
	(m2linemap): Remove import of location_t.
	* gm2-compiler/M2Bitset.mod (m2tree): Remove import of Tree.
	* gm2-compiler/M2CaseList.mod (gcctypes): Import tree.
	(m2tree): Remove import of Tree.
	(Tree): Replace with ...
	(tree): ... this.
	* gm2-compiler/M2Emit.def (gcctypes): Import location_t.
	* gm2-compiler/M2GCCDeclare.def (gcctypes): Import tree.
	(PromoteToString): Replace Tree with tree.
	(PromoteToCString): Ditto.
	(ConstantKnownAndUsed): Ditto.
	* gm2-compiler/M2GCCDeclare.mod (gcctypes): Import tree.
	(m2tree): Remove import of Tree.
	(Tree): Replace with ...
	(tree): ... this.
	* gm2-compiler/M2GenGCC.def (gcctypes): Import tree.
	(m2tree): Remove import of Tree.
	(Tree): Replace with ...
	(tree): ... this.
	(GetHighFromUnbounded): Replace Tree with tree.
	(StringToChar): Ditto.
	(LValueToGenericPtr): Ditto.
	(ZConstToTypedConst): Ditto.
	(PrepareCopyString): Ditto.
	* gm2-compiler/M2GenGCC.mod (gcctypes): Import tree.
	(m2tree): Remove import of Tree.
	(Tree): Replace with ...
	(tree): ... this.
	* gm2-compiler/M2LangDump.def (gcctypes): Import tree.
	(m2tree): Remove import of Tree.
	(Tree): Replace with ...
	(tree): ... this.
	* gm2-compiler/M2LangDump.mod (Tree): Replace with ...
	(tree): ... this.
	* gm2-compiler/M2LexBuf.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2LexBuf.mod (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2Options.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2Options.mod (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2Range.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	(CDataTypes): Import ConstCharStar.
	(CodeErrorCheck): Replace Tree with tree.
	(OverlapsRange): Ditto.
	(IsEqual): Ditto.
	(IsGreaterOrEqual): Ditto.
	(IsGreater): Ditto.
	(BuildIfCallWholeHandlerLoc): Replace Tree with tree.
	Replace ADDRESS with ConstCharStar.
	(BuildIfCallRealHandlerLoc): Ditto.
	(GetMinMax): Ditto.
	* gm2-compiler/M2Range.mod (m2tree): Remove Tree.
	(CodeErrorCheck): Replace Tree with tree.
	(OverlapsRange): Ditto.
	(IsEqual): Ditto.
	(IsGreaterOrEqual): Ditto.
	(IsGreater): Ditto.
	(GetMinMax): Ditto.
	(BuildIfCallWholeHandlerLoc): Replace Tree with tree.
	Replace ADDRESS with ConstCharStar.
	(BuildIfCallRealHandlerLoc): Ditto.
	* gm2-compiler/M2System.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/M2System.mod (m2linemap): Replace with ...
	(gcctypes): ... this.
	(CreateMinMaxFor): Replace Tree with tree.
	(CreateType): Ditto.
	(AttemptToCreateType): Ditto.
	(CreateSetType): Ditto.
	(AttemptToCreateSetType): Ditto.
	* gm2-compiler/P2SymBuild.mod (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-compiler/SymbolConversion.def (m2tree): Replace with ...
	(gcctypes): ... this.
	(Mod2Gcc): Replace Tree with tree.
	(Gcc2Mod): Ditto.
	(AddModGcc): Ditto.
	* gm2-compiler/SymbolConversion.mod (m2tree): Replace with ...
	(gcctypes): ... this.
	(Mod2Gcc): Replace Tree with tree.
	(Gcc2Mod): Ditto.
	(AddModGcc): Ditto.
	(Mod2GccWithoutGCCPoison): Ditto.
	* gm2-compiler/SymbolTable.def (m2tree): Replace with ...
	(gcctypes): ... this.
	(PutModuleFinallyFunction): Replace Tree with tree.
	(GetModuleFinallyFunction): Ditto.
	* gm2-compiler/SymbolTable.mod (m2tree): Replace with ...
	(gcctypes): ... this.
	(PutModuleFinallyFunction): Replace Tree with tree.
	(GetModuleFinallyFunction): Ditto.
	* gm2-compiler/m2flex.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	* gm2-gcc/init.def (PerCompilationInit): Replace ADDRESS with ConstCharStar.
	(CDataTypes): Import ConstCharStar.
	* gm2-gcc/m2block.def (SYSTEM): Remove import.
	(CDataTypes): Import ConstCharStar.
	(m2linemap): Remove import.
	(m2tree): Remove import.
	(gcctypes): Import tree.
	(global_constant): Replace Tree with tree.
	(RememberInitModuleFunction): Ditto.
	(DumpGlobalConstants): Ditto.
	(RememberConstant): Ditto.
	(RememberType): Ditto.
	(pushDecl): Ditto.
	(popFunctionScope): Ditto.
	(pushFunctionScope): Ditto.
	(finishFunctionCode): Ditto.
	(finishFunctionDecl): Ditto.
	(GetErrorNode): Ditto.
	(includeDecl): Ditto.
	(GetGlobals): Ditto.
	(GetGlobalContext): Ditto.
	(begin_statement_list): Ditto.
	(push_statement_list): Ditto.
	(pop_statement_list): Ditto.
	(getLabel): Replace Tree with tree.
	Replace ADDRESS with ConstCharStar.
	* gm2-gcc/m2builtins.def (CDataTypes): Import ConstCharStar.
	(GetBuiltinConst): Replace Tree with tree.
	(GetBuiltinConstType): Ditto.
	(GetBuiltinTypeInfoType): Ditto.
	(GetBuiltinTypeInfo): Ditto.
	(BuiltinExists): Ditto.
	(BuildBuiltinTree): Ditto.
	(BuiltinMemCopy): Ditto.
	(BuiltinMemSet): Ditto.
	(BuiltInAlloca): Ditto.
	(BuiltInIsfinite): Ditto.
	* gm2-gcc/m2convert.def (CDataTypes): Import ConstCharStar.
	(ToWord): Ditto.
	(ToCardinal): Ditto.
	(ToInteger): Ditto.
	(ToBitset): Ditto.
	(ConvertToPtr): Ditto.
	(BuildConvert): Ditto.
	(ConvertConstantAndCheck): Ditto.
	(ConvertString): Ditto.
	(GenericToType): Ditto.
	* gm2-gcc/m2decl.cc (m2decl_BuildParameterDeclaration): Add
	const attribute.
	* gm2-gcc/m2decl.def (CDataTypes): Import ConstCharStar.
	(BuildModuleCtor): Ditto.
	(DeclareModuleCtor): Ditto.
	(DeclareM2linkForcedModuleInitOrder): Ditto.
	(DeclareM2linkStaticInitialization): Ditto.
	(BuildPtrToTypeString): Ditto.
	(BuildIntegerConstant): Ditto.
	(BuildStringConstantType): Ditto.
	(DeclareKnownVariable): Ditto.
	(DeclareKnownConstant): Ditto.
	(BuildParameterDeclaration): Ditto.
	(BuildEndFunctionDeclaration): Ditto.
	(RememberVariables): Ditto.
	(BuildConstLiteralNumber): Ditto.
	(BuildStringConstant): Ditto.
	(BuildCStringConstant): Ditto.
	(GetDeclContext): Ditto.
	* gm2-gcc/m2decl.h (m2decl_BuildParameterDeclaration): Add
	const attribute.
	* gm2-gcc/m2except.def (CDataTypes): Import ConstCharStar.
	(BuildThrow): Ditto.
	(BuildTryBegin): Ditto.
	(BuildTryEnd): Ditto.
	(BuildCatchBegin): Ditto.
	(BuildCatchEnd): Ditto.
	* gm2-gcc/m2expr.def (CDataTypes): Import ConstCharStar.
	(CSTIntToString): Ditto.
	(CSTIntToChar): Ditto.
	(CheckConstStrZtypeRange): Ditto.
	(CompareTrees): Ditto.
	(GetPointerOne): Ditto.
	(GetPointerZero): Ditto.
	(GetWordOne): Ditto.
	(GetWordZero): Ditto.
	(GetIntegerOne): Ditto.
	(GetIntegerZero): Ditto.
	(GetCardinalOne): Ditto.
	(GetCardinalZero): Ditto.
	(GetSizeOfInBits): Ditto.
	(GetSizeOf): Ditto.
	(BuildLogicalRotate): Ditto.
	(BuildLRRn): Ditto.
	(BuildLRLn): Ditto.
	(BuildMask): Ditto.
	(BuildMult): Ditto.
	(BuildMultCheck): Ditto.
	(BuildLRR): Ditto.
	(BuildLRL): Ditto.
	(BuildLogicalShift): Ditto.
	(BuildLSR): Ditto.
	(BuildLSL): Ditto.
	(BuildDivM2): Ditto.
	(BuildDivM2Check): Ditto.
	(BuildModM2): Ditto.
	(BuildModM2Check): Ditto.
	(BuildModFloor): Ditto.
	(BuildDivCeil): Ditto.
	(BuildModCeil): Ditto.
	(BuildDivFloor): Ditto.
	(BuildModTrunc): Ditto.
	(BuildDivTrunc): Ditto.
	(BuildDivTruncCheck): Ditto.
	(BuildRDiv): Ditto.
	(BuildSubCheck): Ditto.
	(BuildAddCheck): Ditto.
	(BuildSub): Ditto.
	(BuildAdd): Ditto.
	(FoldAndStrip): Ditto.
	(StringLength): Ditto.
	(TreeOverflow): Ditto.
	(RemoveOverflow): Ditto.
	(BuildCoerce): Ditto.
	(BuildTrunc): Ditto.
	(BuildNegate): Ditto.
	(BuildNegateCheck): Ditto.
	(BuildSetNegate): Ditto.
	(BuildTBitSize): Ditto.
	(BuildSize): Ditto.
	(BuildAddr): Ditto.
	(BuildOffset1): Ditto.
	(BuildOffset): Ditto.
	(BuildLogicalOrAddress): Ditto.
	(BuildLogicalOr): Ditto.
	(BuildLogicalAnd): Ditto.
	(BuildSymmetricDifference): Ditto.
	(BuildLogicalDifference): Ditto.
	(BuildLessThan): Ditto.
	(BuildGreaterThan): Ditto.
	(BuildLessThanOrEqual): Ditto.
	(BuildGreaterThanOrEqual): Ditto.
	(BuildEqualTo): Ditto.
	(BuildNotEqualTo): Ditto.
	(BuildIsSuperset): Ditto.
	(BuildIsNotSuperset): Ditto.
	(BuildIsSubset): Ditto.
	(BuildIsNotSubset): Ditto.
	(BuildIfConstInVar): Ditto.
	(BuildIfNotConstInVar): Ditto.
	(BuildIfVarInVar): Ditto.
	(BuildIfNotVarInVar): Ditto.
	(BuildForeachWordInSetDoIfExpr): Ditto.
	(BuildIfInRangeGoto): Ditto.
	(BuildIfNotInRangeGoto): Ditto.
	(BuildArray): Ditto.
	(BuildComponentRef): Ditto.
	(BuildIndirect): Ditto.
	(IsTrue): Ditto.
	(IsFalse): Ditto.
	(GetCstInteger): Ditto.
	(AreConstantsEqual): Ditto.
	(AreRealOrComplexConstantsEqual): Ditto.
	(DetermineSign): Ditto.
	(BuildCap): Ditto.
	(BuildAbs): Ditto.
	(BuildRe): Ditto.
	(BuildIm): Ditto.
	(BuildCmplx): Ditto.
	(BuildBinaryForeachWordDo): Ditto.
	(BuildBinarySetDo): Ditto.
	(ConstantExpressionWarning): Ditto.
	(BuildAddAddress): Ditto.
	(calcNbits): Ditto.
	(OverflowZType): Ditto.
	(BuildCondIfExpression): Ditto.
	* gm2-gcc/m2linemap.def (CDataTypes): Import ConstCharStar.
	* gm2-gcc/m2misc.def (m2tree): Replace with ...
	(gcctypes): ... this.
	(DebugTree): Replace Tree with tree.
	* gm2-gcc/m2pp.def (m2tree): Replace with ...
	(gcctypes): ... this.
	(DumpGimpleFd): Replace Tree with tree.
	* gm2-gcc/m2statement.cc (m2statement_BuildBuiltinCallTree):
	Remove unused location parameter.
	* gm2-gcc/m2statement.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	(CDataTypes): Import CharStar.
	(DoJump): Replace Tree with tree.
	Replace ADDRESS with CharStar.
	(BuildStartFunctionCode): Replace Tree with tree.
	(BuildEndFunctionCode): Ditto.
	(BuildReturnValueCode): Ditto.
	(BuildAssignmentTree): Ditto.
	(BuildAssignmentStatement): Ditto.
	(BuildGoto): Ditto.
	(DeclareLabel): Ditto.
	(BuildIfThenDoEnd): Ditto.
	(BuildIfThenElseEnd): Ditto.
	(BuildParam): Ditto.
	(BuildFunctionCallTree): Ditto.
	(BuildProcedureCallTree): Ditto.
	(BuildIndirectProcedureCallTree): Ditto.
	(BuildFunctValue): Ditto.
	(BuildCall2): Ditto.
	(BuildCall3): Ditto.
	(SetLastFunction): Ditto.
	(GetLastFunction): Ditto.
	(GetParamTree): Ditto.
	(BuildTryFinally): Ditto.
	(BuildCleanUp): Ditto.
	(BuildAsm): Ditto.
	(BuildUnaryForeachWordDo): Ditto.
	(BuildExcludeVarConst): Ditto.
	(BuildExcludeVarVar): Ditto.
	(BuildIncludeVarConst): Ditto.
	(BuildIncludeVarVar): Ditto.
	(BuildStart): Ditto.
	(BuildEnd): Ditto.
	(BuildCallInner): Ditto.
	(BuildBuiltinCallTree):  Remove unused location parameter.
	* gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): Remove
	unused location parameter.
	* gm2-gcc/m2tree.def (gcctypes): Import tree.
	(IsAConstant): Replace Tree with tree.
	(IsOrdinal): Ditto.
	(IsTreeOverflow): Ditto.
	(skip_const_decl): Ditto.
	(skip_type_decl): Ditto.
	(is_type): Ditto.
	(is_array): Ditto.
	(is_var): Ditto.
	(debug_tree): Ditto.
	(IstreeOverflow): Ditto.
	* gm2-gcc/m2treelib.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	(get_set_address_if_var): Ditto.
	(get_set_field_rhs): Ditto.
	(get_set_field_lhs): Ditto.
	(get_set_address): Ditto.
	(get_set_value): Ditto.
	(get_field_no): Ditto.
	(get_rvalue): Ditto.
	(DoCall): Ditto.
	(build_modify_expr): Ditto.
	(do_jump_if_bit): Ditto.
	* gm2-gcc/m2type.def (m2linemap): Replace with ...
	(gcctypes): ... this.
	(m2tree): Remove.
	(CDataTypes): Import ConstCharStar and charStar.
	(ValueInTypeRange): Replace Tree with tree.
	(ValueOutOfTypeRange): Ditto.
	(ExceedsTypeRange): Ditto.
	(WithinTypeRange): Ditto.
	(BuildSubrangeType): Ditto.
	(BuildCharConstant): Ditto.
	(BuildCharConstantChar): Ditto.
	(BuildArrayConstructorElement): Ditto.
	(BuildEndArrayConstructor): Ditto.
	(BuildStartArrayConstructor): Ditto.
	(BuildRecordConstructorElement): Ditto.
	(BuildEndRecordConstructor): Ditto.
	(BuildStartRecordConstructor): Ditto.
	(BuildEndSetConstructor): Ditto.
	(BuildSetConstructorElement): Ditto.
	(BuildStartSetConstructor): Ditto.
	(BuildSetType): Ditto.
	(BuildConstPointerType): Ditto.
	(BuildPointerType): Ditto.
	(BuildEnumerator): Ditto.
	(BuildEndEnumeration): Ditto.
	(BuildStartEnumeration): Ditto.
	(BuildTypeDeclaration): Ditto.
	(GetMaxFrom): Ditto.
	(GetMinFrom): Ditto.
	(GetDefaultType): Ditto.
	(BuildEndType): Ditto.
	(BuildStartType): Ditto.
	(BuildVariableArrayAndDeclare): Ditto.
	(BuildProcTypeParameterDeclaration): Ditto.
	(BuildStartFunctionType): Ditto.
	(BuildEndFunctionType): Ditto.
	(GetTreeType): Ditto.
	(DeclareKnownType): Ditto.
	(GetM2ZType): Ditto.
	(GetM2RType): Ditto.
	(BuildSetTypeFromSubrange): Ditto.
	(BuildSmallestTypeRange): Ditto.
	(GetBooleanType): Ditto.
	(GetBooleanFalse): Ditto.
	(GetBooleanTrue): Ditto.
	(GetPackedBooleanType): Ditto.
	(GetCharType): Ditto.
	(GetByteType): Ditto.
	(GetVoidType): Ditto.
	(GetBitnumType): Ditto.
	(GetRealType): Ditto.
	(GetLongRealType): Ditto.
	(GetShortRealType): Ditto.
	(GetLongIntType): Ditto.
	(GetPointerType): Ditto.
	(GetCardinalType): Ditto.
	(GetIntegerType): Ditto.
	(GetWordType): Ditto.
	(GetM2CardinalType): Ditto.
	(GetBitsetType): Ditto.
	(GetM2CType): Ditto.
	(GetProcType): Ditto.
	(GetM2ComplexType): Ditto.
	(GetM2LongComplexType): Ditto.
	(GetM2ShortComplexType): Ditto.
	(GetM2Complex128): Ditto.
	(GetM2Complex96): Ditto.
	(GetM2Complex64): Ditto.
	(GetM2Complex32): Ditto.
	(GetM2Real128): Ditto.
	(GetM2Real96): Ditto.
	(GetM2Real64): Ditto.
	(GetM2Real32): Ditto.
	(GetM2Bitset32): Ditto.
	(GetM2Bitset16): Ditto.
	(GetM2Bitset8): Ditto.
	(GetM2Word64): Ditto.
	(GetM2Word32): Ditto.
	(GetM2Word16): Ditto.
	(GetM2Cardinal64): Ditto.
	(GetM2Cardinal32): Ditto.
	(GetM2Cardinal16): Ditto.
	(GetM2Cardinal8): Ditto.
	(GetM2Integer64): Ditto.
	(GetM2Integer32): Ditto.
	(GetM2Integer16): Ditto.
	(GetM2Integer8): Ditto.
	(GetISOLocType): Ditto.
	(GetISOByteType): Ditto.
	(GetISOWordType): Ditto.
	(GetShortCardType): Ditto.
	(GetM2ShortCardType): Ditto.
	(GetShortIntType): Ditto.
	(GetM2ShortIntType): Ditto.
	(GetM2LongCardType): Ditto.
	(GetM2LongIntType): Ditto.
	(GetM2LongRealType): Ditto.
	(GetM2RealType): Ditto.
	(GetM2ShortRealType): Ditto.
	(GetM2IntegerType): Ditto.
	(GetM2CharType): Ditto.
	(GetCSizeTType): Ditto.
	(GetCSSizeTType): Ditto.
	(BuildArrayStringConstructor): Ditto.
	(RealToTree): Ditto.
	(BuildStartRecord): Ditto.
	(BuildStartUnion): Ditto.
	(BuildStartVarient): Ditto.
	(BuildEndVarient): Ditto.
	(BuildStartFieldVarient): Ditto.
	(BuildEndFieldVarient): Ditto.
	(BuildStartFieldRecord): Ditto.
	(BuildFieldRecord): Ditto.
	(ChainOn): Ditto.
	(ChainOnParamValue): Ditto.
	(AddStringToTreeList): Ditto.
	(BuildEndRecord): Ditto.
	(SetAlignment): Ditto.
	(SetDeclPacked): Ditto.
	(SetTypePacked): Ditto.
	(SetRecordFieldOffset): Ditto.
	(BuildPackedFieldRecord): Ditto.
	(BuildNumberOfArrayElements): Ditto.
	(AddStatement): Ditto.
	(MarkFunctionReferenced): Ditto.
	(BuildArrayIndexType): Ditto.
	(GetArrayNoOfElements): Ditto.
	(BuildEndArrayType): Ditto.
	(PutArrayType): Ditto.
	(BuildStartArrayType): Ditto.
	(IsAddress): Ditto.
	(SameRealType): Ditto.
	* m2.flex (Gm2linemap.h): Include.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gdecl.h: Ditto.
	* mc-boot/Gdtoa.h: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Gkeyc.h: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcLexBuf.cc: Ditto.
	* mc-boot/GmcPreprocess.cc: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/Gmcp1.cc: Ditto.
	* mc-boot/Gmcp3.cc: Ditto.
	* mc-boot/Gmcp4.cc: Ditto.
	* mc-boot/Gmcp5.cc: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc/decl.def (putDefUnqualified): New procedure function.
	(isDefUnqualified): Ditto.
	* mc/decl.mod (defT): Add unqualified field.
	(charStarN): New variable.
	(constCharStarN): Ditto.
	(checkGccType): New procedure.
	(checkCDataTypes): Ditto.
	(import): Call checkGccType and checkCDataTypes.
	(putDefUnqualified): New procedure function.
	(isDefUnqualified): Ditto.
	* mc/keyc.def (useGccTree): New procedure.
	(useGccLocation): Ditto.
	* mc/keyc.mod (checkGccConfigSystem): Call checkGccConfigSystem.
	(useGccTree): New procedure.
	(useGccLocation): Ditto.
	* mc/mcp1.bnf (decl): Import putDefUnqualified.
	(Export): Call putDefUnqualified.
	* gm2-gcc/CDataTypes.def: New file.
	* gm2-gcc/gcctypes.def: New file.

2024-09-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116557
	* gm2-lang.cc: Replace physical address with URL in GPL header.
	* gm2-lang.h: Ditto.
	* images/LICENSE.IMG: Ditto.
	* m2-tree.def: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Glists.cc: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcFileName.cc: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcOptions.cc: Ditto.
	* mc-boot/GmcPreprocess.cc: Ditto.
	* mc-boot/GmcPretty.cc: Ditto.
	* mc-boot/GmcPrintf.cc: Ditto.
	* mc-boot/GmcQuiet.cc: Ditto.
	* mc-boot/GmcReserved.cc: Ditto.
	* mc-boot/GmcSearch.cc: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc/Indexing.mod: Ditto.
	* mc/keyc.mod: Ditto.
	* mc/lists.mod: Ditto.
	* mc/mcComp.mod: Ditto.
	* mc/mcDebug.mod: Ditto.
	* mc/mcFileName.mod: Ditto.
	* mc/mcMetaError.mod: Ditto.
	* mc/mcOptions.mod: Ditto.
	* mc/mcPreprocess.mod: Ditto.
	* mc/mcPretty.mod: Ditto.
	* mc/mcPrintf.mod: Ditto.
	* mc/mcQuiet.mod: Ditto.
	* mc/mcReserved.mod: Ditto.
	* mc/mcSearch.mod: Ditto.
	* mc/mcStack.mod: Ditto.
	* tools-src/buildpg: Ditto.
	* tools-src/calcpath: Ditto.
	* tools-src/checkmeta.py: Ditto.
	* tools-src/def2doc.py: Ditto.
	* tools-src/makeSystem: Ditto.
	* tools-src/tidydates.py: Ditto.

2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>

	* gm2-gcc/m2block.cc (flush_pending_note): Rename ASM_INPUT_P
	to ASM_BASIC_P.
	* gm2-gcc/m2statement.cc (m2statement_BuildAsm): Likewise.

2024-08-30  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116181
	* pge-boot/GM2RTS.h: Regenerate.
	* pge-boot/m2rts.h: Ditto.

2024-08-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116181
	* Make-lang.in (MC_SRC_FLAGS): New macro.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Use MC_SRC_FLAGS.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-libs-boot/M2RTS.o): Ditto.
	(m2/gm2-libs-boot/%.o): Ditto.
	(GM2-LIBS-BOOT-H): New macro.
	(m2/gm2-libs-boot/RTcodummy.o): Use MC_SRC_FLAGS.
	Remove gm2-libs-host.h from the dependancy.
	(m2/gm2-libs-boot/wrapc.o): Use MC_SRC_FLAGS.
	Add dependancy GM2-LIBS-BOOT-H.
	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
	(m2/gm2-libs-boot/choosetemp.o): Ditto.
	(m2/gm2-libs-boot/errno.o): Ditto.
	(m2/gm2-libs-boot/dtoa.o): Ditto.
	(m2/gm2-libs-boot/ldtoa.o): Ditto.
	(m2/gm2-libs-boot/termios.o): Ditto.
	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Add gm2-libs-ch to the
	search path.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/pge-boot/%.o): Ditto.
	* gm2-gcc/m2color.cc (m2color_colorize_start): Replace parameter
	type char to void and recast to char * when calling colorize_start.
	* gm2-gcc/m2color.h (m2color_colorize_start): Replace parameter
	type char to void.
	* gm2-gcc/m2type.h: Remove #if 0 block.
	* gm2-libs-ch/SysExceptions.c (DECL_PROC_T): Provide alternative
	defines for MC an gm2.
	(PROC_FUNC): Ditto.
	(EXTERN): Force undefine and redefine.
	(SysExceptions_InitExceptionHandlers): Rewrite function
	declaration using defined macros.
	(_M2_SysExceptions_init): Use EXTERN.
	(_M2_SysExceptions_finish): Replace with ...
	(_M2_SysExceptions_fini): ... this and add parameters.
	* gm2-libs-ch/UnixArgs.cc (gm2-libs-host.h): Include.
	(GUnixArgs.h): Include.
	(GM2RTS.h): Include.
	(UnixArgs_GetArgV): Change return type to void *.
	(UnixArgs_GetEnvV): Ditto.
	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): Add new
	conditional macro.
	(M2RTS_RequestDependant): Remove.
	(M2RTS_RegisterModule): Ditto.
	(M2RTS_Terminate): Ditto.
	(M2RTS_DeconstructModules): Ditto.
	(M2RTS_Halt): Ditto.
	(_M2_M2RTS_init): Ditto.
	(M2RTS_ConstructModules): Ditto.
	* gm2-libs-ch/termios.c (_termios_C): Define.
	(EXTERN): Add conditional definition.
	(doSetUnset): New function.
	(_M2_termios_init): Add correct parameters.
	(_M2_termios_finish): Ditto.
	(_M2_termios_fini): Ditto.
	* mc-boot-ch/GSysExceptions.c (DECL_PROC_T): New define.
	(PROC_FUNC): Ditto.
	(EXTERN): Force undef.
	(SysExceptions_InitExceptionHandlers): Rewrite.
	* mc-boot-ch/Glibc.c (libc_open): Rename parameter
	oflag to flags.
	* mc-boot-ch/Gtermios.cc (_termios_C): New define.
	(KillTermios): Change parameter type from
	struct termios * to termios_TERMIOS.
	(tcsnow): Rewrite.
	(tcsnow): Rewrite.
	(tcsdrain): Rewrite.
	(tcsflush): Rewrite.
	(cfgetospeed): Rewrite.
	(cfgetispeed): Rewrite.
	(cfsetospeed): Rewrite.
	(cfsetispeed): Rewrite.
	(cfsetspeed): Rewrite.
	(cfsetspeed): Rewrite.
	(tcgetattr): Rewrite.
	(tcsetattr): Rewrite.
	(cfmakeraw): Rewrite.
	(tcsendbreak): Rewrite.
	(tcdrain): Rewrite.
	(tcflushi): Rewrite.
	(tcflusho): Rewrite.
	(tcflushio): Rewrite.
	(tcflowoni): Rewrite.
	(tcflowoffi): Rewrite.
	(tcflowono): Rewrite.
	(tcflowoffo): Rewrite.
	(GetFlag): Rewrite.
	(SetFlag): Rewrite.
	(GetChar): Rewrite.
	(SetChar): Rewrite.
	(InitTermios): Rewrite.
	* pge-boot/GM2RTS.cc: Regenerate.
	* pge-boot/GSysExceptions.cc: Ditto.
	* pge-boot/Gtermios.cc: Ditto.
	* pge-boot/m2rts.h: Rewrite.
	* mc-boot-ch/GSYSTEM.h: New file.
	* mc-boot-ch/GSysExceptions.h: New file.
	* mc-boot-ch/Gtermios.h: New file.

2024-08-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/libc.def (atof): Export unqualified.
	(atoi): Ditto.
	(atol): Ditto.
	(atoll): Ditto.
	(strtod): Ditto.
	(strtof): Ditto.
	(strtold): Ditto.
	(strtol): Ditto.
	(strtoll): Ditto.
	(strtoul): Ditto.
	(strtoull): Ditto.

2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/StdChans.mod (in): Rename to ...
	(inch): ... this.
	(out): Rename to ...
	(outch): ... this.
	(err): Rename to ...
	(errch): ... this.

2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/DynamicStrings.mod (Slice): Rename end to stop.

2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116378
	* gm2-libs-iso/TermFile.mod (termOpen): Add third argument
	for open.
	* gm2-libs/libc.def (open): Remove vararg and use INTEGER for
	mode parameter three.
	* mc-boot-ch/Glibc.c (tracedb_open): Replace mode_t with int.
	(libc_open): Rewrite without varargs.
	* mc-boot/Glibc.h (libc_open): Replace varargs with int mode.
	* pge-boot/Glibc.cc (libc_open): Rewrite.
	* pge-boot/Glibc.h (libc_open): Replace varargs with int mode.

2024-08-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116181
	* gm2-compiler/ppg.mod (FindStr): Initialize j.
	* gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Replace
	M2RTS_RegisterModule with M2RTS_RegisterModule_Cstr.
	* gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Ditto.
	* gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Cast parameter s
	for strtod.
	(_M2_ldtoa_ctor): Replace M2RTS_RegisterModule with
	M2RTS_RegisterModule_Cstr.
	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New
	define.
	(M2RTS_RegisterModule): Remove const.
	* mc-boot-ch/GSelective.c (Selective_FdIsSet): Return bool
	rather than int.
	* mc-boot-ch/Gldtoa.cc (ldtoa_strtold): Change const char to
	void.
	Cast s before passing as a parameter to strtod.
	* mc-boot-ch/Glibc.c (tracedb_open): Replace const char with const
	void.
	(libc_perror): Replace char with const char.
	(libc_printf): Replace char with void.
	(libc_snprintf): Replace char with void.
	Add const_cast for parameter to index.
	Add reinterpret_cast for parameter to vsnprintf.
	(libc_open): Replace first paramter type char with void.
	Add vararg for the third parameter.
	* mc-boot-ch/Gm2rtsdummy.cc (M2RTS_RequestDependant): Remove #if 0 code.
	(m2pim_M2RTS_RegisterModule): Change const char parameters to void
	(M2RTS_RegisterModule): Ditto.
	(_M2_M2RTS_init): Remove #if 0 code.
	(M2RTS_ConstructModules): Ditto.
	(M2RTS_Terminate): Ditto.
	(M2RTS_DeconstructModules): Ditto.
	(M2RTS_Halt): Ditto.
	* mc-boot-ch/Gtermios.cc (SetFlag): Return bool.
	* mc-boot-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
	(M2RTS_RegisterModule): Change const char parameters to void.
	* mc-boot/Gdecl.cc: Regenerate.
	* mc/decl.mod (getNextConstExp): Reimplement.
	* pge-boot/GDynamicStrings.cc: Regenerate.
	* pge-boot/GDynamicStrings.h: Ditto.
	* pge-boot/GM2RTS.h (M2RTS_RegisterModule_Cstr): New function.
	(M2RTS_RegisterModule): Reformat.
	* pge-boot/GSymbolKey.cc: Regenerate.
	* pge-boot/GSysExceptions.cc (_M2_SysExceptions_init): Add correct parameters.
	(_M2_SysExceptions_fini): Ditto.
	* pge-boot/GUnixArgs.cc (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor):
	Replace call to M2RTS_RegisterModule with M2RTS_RegisterModuleCstr.
	* pge-boot/Gerrno.cc (_M2_errno_init): Add correct parameters.
	(_M2_errno_fini): Ditto.
	* pge-boot/Gldtoa.cc (ldtoa_strtold): Replace const char with
	void.
	Use reinterpret_cast when passing s to strtod.
	Replace true with TRUE.
	* pge-boot/Gldtoa.h (ldtoa_strtold): Tidy up.
	* pge-boot/Glibc.cc (libc_read): Use size_t as the return type.
	(libc_write): Ditto.
	(libc_strlen): Ditto.
	(libc_perror): Replace char with const char.
	(libc_printf): Replace char to const char.
	Cast parameter to index using const_cast.
	(libc_snprintf): Replace char with void.
	Cast parameter to index using const_cast.
	(libc_malloc): Replace parameter type with size_t.
	(libc_memcpy): Replace third parameter type with size_t.
	(libc_open): Use varargs.
	* pge-boot/Glibc.h (libc_perror): Add _string_high parameter.
	* pge-boot/Gpge.cc: Regenerate.
	* pge-boot/Gtermios.cc (SetFlag): Replace return type with bool.
	(_M2_termios_init): Add correct parameters.
	(_M2_termios_fini): Ditto.
	* pge-boot/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
	(M2RTS_RegisterModule): Replace const char with void.

2024-08-10  Wilken Gottwalt  <wilken.gottwalt@posteo.net>

	* gm2-libs-iso/MemStream.mod: Guard debug output.

2024-07-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115823
	* gm2-gcc/m2builtins.cc (define_builtin): Build
	the function decl using the libname.

2024-07-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2StateCheck.mod (GenerateError): Add
	symbol name to the error message.

2024-07-23  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/116048
	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2StateCheck.def.
	(GM2-COMP-BOOT-MODS): Add M2StateCheck.mod.
	(GM2-COMP-DEFS): Add M2StateCheck.def.
	(GM2-COMP-MODS): Add M2StateCheck.mod.
	* gm2-compiler/M2Quads.mod (StartBuildWith): Generate
	unrecoverable error is the qualident type is NulSym.
	Replace MetaError1 with MetaErrorT1 and position the error
	to the qualident.
	* gm2-compiler/P3Build.bnf (M2StateCheck): Import procedures.
	(seenError): New variable.
	(WasNoError): Remove variable.
	(BlockState): New variable.
	(ErrorString): Rewrite using seenError.
	(CompilationUnit): Ditto.
	(QualidentCheck): New rule.
	(ConstantDeclaration): Bookend with InclConst and ExclConst.
	(Constructor): Add InclConstructor, ExclConstructor and call
	CheckQualident.
	(ConstActualParameters): Call PushState, PopState, InclConstFunc
	and CheckQualident.
	(TypeDeclaration): Bookend with InclType and ExclType.
	(SimpleType): Call QualidentCheck.
	(CaseTag): Ditto.
	(OptReturnType): Ditto.
	(VariableDeclaration): Bookend with InclVar and ExclVar.
	(Designator): Call QualidentCheck.
	(Formal;Type): Ditto.
	* gm2-compiler/PCBuild.bnf (M2StateCheck): Import procedures.
	(ConstantDeclaration): Rewrite using InclConst and ExclConst.
	(Constructor): Bookend with InclConstructor and ExclConstructor.
	Call CheckQualident.
	(ConstructorOrConstActualParameters): Rewrite and cal
	l CheckQualident.
	(ConstActualParameters): Bookend with PushState PopState.
	Call InclConstFunc and CheckQualident.
	* gm2-gcc/init.cc (_M2_M2StateCheck_init): New declaration.
	(_M2_P3Build_init): New declaration.
	(init_PerCompilationInit): Call _M2_M2StateCheck_init and
	_M2_P3Build_init.
	* gm2-compiler/M2StateCheck.def: New file.
	* gm2-compiler/M2StateCheck.mod: New file.

2024-07-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115957
	* gm2-compiler/M2StackAddress.mod (PopAddress): Detect tail=NIL
	and generate an internal error.
	* gm2-compiler/PCBuild.bnf (InConstParameter): New variable.
	(InConstBlock): New variable.
	(ErrorString): Rewrite using MetaErrorStringT0.
	(ErrorArrayAt): Rewrite using MetaErrorStringT0.
	(WarnMissingToken): Use MetaErrorStringT0.
	(CompilationUnit): Set seenError FALSE.
	(init): Initialize InConstParameter and InConstBlock.
	(ConstantDeclaration): Set InConstBlock.
	(ConstSetOrQualidentOrFunction): Call CheckNotVar if not
	InConstParameter and InConstBlock.
	(ConstActualParameters): Set InConstParameter TRUE and restore
	value at the end.
	* gm2-compiler/PCSymBuild.def (CheckNotVar): New procedure.
	Remove all unnecessary export qualified list.
	* gm2-compiler/PCSymBuild.mod (CheckNotVar): New procedure.

2024-07-12  FX Coudert  <fxcoudert@gmail.com>

	* gm2-gcc/m2linemap.cc (INCLUDE_STRING): Define before
	include of gcc-consolidation.h.
	* gm2spec.cc (INCLUDE_STRING): Define before include of
	system.h.
	(INCLUDE_VECTOR): Ditto.

2024-07-10  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115823
	* gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New
	field builtinname.
	(builtin_function_match): New function.
	(builtin_macro_match): Ditto.
	(m2builtins_BuiltinExists): Use builtin_function_match and
	builtin_macro_match.
	(lookup_builtin_macro): Use builtin_macro_match.
	(lookup_builtin_function): Use builtin_function_match.
	(define_builtin): Assign builtinname field.

2024-07-07  Gaius Mulley  <gaiusmod2@gmail.com>
	    Stefan Schulze Frielinghaus   <stefansf@linux.ibm.com>
	    Andrew Pinski   <quic_apinski@quicinc.com>

	PR modula2/115804
	* gm2-gcc/m2builtins.cc (builtin_function_entry): Add GTY.
	(DoBuiltinMemCopy): Add rettype and use rettype in the call.
	(DoBuiltinAlloca): Ditto.
	(DoBuiltinIsfinite): Ditto.
	(DoBuiltinIsnan): Ditto.
	(m2builtins_BuiltInHugeVal): Ditto.
	(m2builtins_BuiltInHugeValShort): Ditto.
	(m2builtins_BuiltInHugeValLong): Ditto.

2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GenGCC.mod (QuadCondition): Remove.
	(FoldIfEqu): Remove WalkAction parameter.
	(FoldIfNotEqu): Ditto.
	(FoldIfGreEqu): Ditto.
	(FoldIfLessEqu): Ditto.
	(FoldIfGre): Ditto.
	(FoldIfLess): Ditto.
	(FoldIfIn): Ditto.
	(FoldIfNotIn): Ditto.
	* gm2-compiler/M2Quads.mod (GenQuadOTypeUniquetok): Remove.

2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115540
	* gm2-libs-ch/termios.c (cfmakeraw): Remove return.
	* mc-boot-ch/Gtermios.cc (cfmakeraw): Remove return.
	* pge-boot/Gtermios.cc (cfmakeraw): Remove return.

2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115536
	* gm2-compiler/M2BasicBlock.def (GetBasicBlockScope): New procedure.
	(GetBasicBlockStart): Ditto.
	(GetBasicBlockEnd): Ditto.
	(IsBasicBlockFirst): New procedure function.
	* gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): Allow
	conditional boolean quads to be removed.
	(GetBasicBlockScope): Implement new procedure.
	(GetBasicBlockStart): Ditto.
	(GetBasicBlockEnd): Ditto.
	(IsBasicBlockFirst): Implement new procedure function.
	* gm2-compiler/M2GCCDeclare.def (FoldConstants): New parameter
	declaration.
	* gm2-compiler/M2GCCDeclare.mod (FoldConstants): New parameter
	declaration.
	(DeclareTypesConstantsProceduresInRange): Recreate basic blocks
	after resolving constant expressions.
	(CodeBecomes): Guard IsVariableSSA with IsVar.
	* gm2-compiler/M2GenGCC.def (ResolveConstantExpressions): New
	parameter declaration.
	* gm2-compiler/M2GenGCC.mod (FoldIfLess): Remove relop pattern
	detection.
	(FoldIfGre): Ditto.
	(FoldIfLessEqu): Ditto.
	(FoldIfGreEqu): Ditto.
	(FoldIfIn): Ditto.
	(FoldIfNotIn): Ditto.
	(FoldIfEqu): Ditto.
	(FoldIfNotEqu): Ditto.
	(FoldBecomes): Add BasicBlock parameter and allow conditional
	boolean becomes to be folded in the first basic block.
	(ResolveConstantExpressions): Reimplement.
	* gm2-compiler/M2Quads.def (IsConstQuad): New procedure function.
	(IsConditionalBooleanQuad): Ditto.
	* gm2-compiler/M2Quads.mod (IsConstQuad): Implement new procedure function.
	(IsConditionalBooleanQuad): Ditto.
	(MoveWithMode): Use GenQuadOTypetok.
	(IsInitialisingConst): Rewrite using OpUsesOp1.
	(OpUsesOp1): New procedure function.
	(doBuildAssignment): Mark des as a VarConditional.
	(ConvertBooleanToVariable): Call PutVarConditional.
	(DumpQuadSummary): New procedure.
	(BuildRelOpFromBoolean): Updated debugging and improved comments.
	(BuildRelOp): Only call BuildRelOpFromBoolean if we are in a const
	expression and both operands are boolean relops.
	(GenQuadOTypeUniquetok): New procedure.
	(BackPatch): Correct comment.
	* gm2-compiler/SymbolTable.def (PutVarConditional): New procedure.
	(IsVarConditional): New procedure function.
	* gm2-compiler/SymbolTable.mod (PutVarConditional): Implement new
	procedure.
	(IsVarConditional): Implement new procedure function.
	(SymConstVar): New field IsConditional.
	(SymVar): New field IsConditional.
	(MakeVar): Initialize IsConditional field.
	(MakeConstVar): Initialize IsConditional field.
	* gm2-compiler/M2Swig.mod (DoBasicBlock): Change parameters to
	use BasicBlock.
	* gm2-compiler/M2Code.mod (SecondDeclareAndOptimize): Use iterator
	to FoldConstants over basic block list.
	* gm2-compiler/M2SymInit.mod (AppendEntry): Replace parameters
	with BasicBlock.
	* gm2-compiler/P3Build.bnf (Relation): Call RecordOp for #, <> and =.

2024-06-17  Kewen Lin  <linkw@linux.ibm.com>

	* gm2-gcc/m2type.cc (build_m2_short_real_node): Adjust assertion with
	TYPE_SIZE check.
	(build_m2_real_node): Likewise.
	(build_m2_long_real_node): Add assertion with TYPE_SIZE check.

2024-06-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114529
	* Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.
	* Make-maintainer.in (mc-basetest): New rule.
	(mc-devel-basetest): New rule.
	(mc-clean): Remove mc.
	(m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque
	with $(EXTENDED_OPAQUE).
	(PG-SRC): Move define before generic rules.
	(PGE-DEF): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/ppg$(exeext)): Ditto.
	(m2/gm2-ppg-boot/main.o): Ditto.
	(m2/gm2-auto): Ditto.
	(c-family/m2pp.o): Ditto.
	(BUILD-BOOT-PG-H): Correct macro definition.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.
	(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.
	(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
	(BUILD-BOOT-PGE-H): Correct macro definition.
	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
	(mc-basetest): Ditto.
	(mc-devel-basetest): Ditto.
	* gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.
	* gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.
	(BuildBitLength): Ditto.
	* gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment
	to the start of the block.
	* gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
	(SetOrDesignatorOrFunction): Ditto.
	* gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
	(SetOrDesignatorOrFunction): Ditto.
	(ByteAlignment): Ditto.
	* gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.
	* gm2-libs/ldtoa.def (ldtoa): Ditto.
	* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.
	(_M2_SYSTEM_fini): Ditto.
	* mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.
	(dtoa_dtoa): Return void * and use bool in the fifth parameter.
	(_M2_dtoa_init): Correct parameter list.
	(_M2_dtoa_fini): Ditto.
	* mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.
	(_M2_errno_fini): Ditto.
	* mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.
	(ldtoa_ldtoa): Return void * and use bool in the fifth parameter.
	(_M2_ldtoa_init): Correct parameter list.
	(_M2_ldtoa_fini): Ditto.
	* mc-boot-ch/Glibc.c (tracedb_zresult): New function.
	(libc_read): Return size_t and use size_t in parameter three.
	(libc_write): Return size_t and use size_t in parameter three.
	(libc_printf): Add const to the format specifier.
	Change declaration of c to use const.
	(libc_snprintf): Add const to the format specifier.
	Change declaration of c to use const.
	(libc_malloc): Use size_t.
	(libc_memcpy): Ditto.
	* mc-boot/GASCII.cc: Regenerate.
	* mc-boot/GArgs.cc: Ditto.
	* mc-boot/GAssertion.cc: Ditto.
	* mc-boot/GBreak.cc: Ditto.
	* mc-boot/GCmdArgs.cc: Ditto.
	* mc-boot/GDebug.cc: Ditto.
	* mc-boot/GDynamicStrings.cc: Ditto.
	* mc-boot/GEnvironment.cc: Ditto.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GFormatStrings.cc: Ditto.
	* mc-boot/GFpuIO.cc: Ditto.
	* mc-boot/GIO.cc: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GM2EXCEPTION.cc: Ditto.
	* mc-boot/GM2RTS.cc: Ditto.
	* mc-boot/GMemUtils.cc: Ditto.
	* mc-boot/GNumberIO.cc: Ditto.
	* mc-boot/GPushBackInput.cc: Ditto.
	* mc-boot/GRTExceptions.cc: Ditto.
	* mc-boot/GRTint.cc: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GSFIO.cc: Ditto.
	* mc-boot/GStdIO.cc: Ditto.
	* mc-boot/GStorage.cc: Ditto.
	* mc-boot/GStrCase.cc: Ditto.
	* mc-boot/GStrIO.cc: Ditto.
	* mc-boot/GStrLib.cc: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/GSysStorage.cc: Ditto.
	* mc-boot/GTimeString.cc: Ditto.
	* mc-boot/Galists.cc: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Glists.cc: Ditto.
	* mc-boot/GmcComment.cc: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcError.cc: Ditto.
	* mc-boot/GmcFileName.cc: Ditto.
	* mc-boot/GmcLexBuf.cc: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcOptions.cc: Ditto.
	* mc-boot/GmcPreprocess.cc: Ditto.
	* mc-boot/GmcPretty.cc: Ditto.
	* mc-boot/GmcPrintf.cc: Ditto.
	* mc-boot/GmcQuiet.cc: Ditto.
	* mc-boot/GmcReserved.cc: Ditto.
	* mc-boot/GmcSearch.cc: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/Gmcp1.cc: Ditto.
	* mc-boot/Gmcp2.cc: Ditto.
	* mc-boot/Gmcp3.cc: Ditto.
	* mc-boot/Gmcp4.cc: Ditto.
	* mc-boot/Gmcp5.cc: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/GsymbolKey.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc-boot/Gwlists.cc: Ditto.
	* mc-boot/Gdecl.h: Ditto.
	* mc-boot/Gldtoa.h: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc/decl.def (putTypeOpaque): New procedure.
	(isTypeOpaque): New procedure function.
	* mc/decl.mod (debugOpaque): New constant.
	(nodeT): New enumeration field opaquecast.
	(node): New record field opaquecastF.
	(opaqueCastState): New record.
	(opaquecastT): New record.
	(typeT): New field isOpaque.
	(varT): New field opaqueState.
	(arrayT): Ditto.
	(varparamT): Ditto.
	(paramT): Ditto.
	(pointerT): Ditto.
	(recordfieldT): Ditto.
	(componentrefT): Ditto.
	(pointerrefT): Ditto.
	(arrayrefT): Ditto.
	(procedureT): Ditto.
	(proctypeT): Ditto.
	(makeType): Initialize field isOpaque.
	(makeTypeImp): Initialize field isOpaque.
	(putVar): Call initNodeOpaqueCastState.
	(putReturnType): Ditto.
	(makeProcType): Ditto.
	(putProcTypeReturn): Ditto.
	(makeVarParameter): Ditto.
	(makeNonVarParameter): Ditto.
	(makeFuncCall): Ditto.
	(putTypeOpaque): New procedure.
	(isTypeOpaque): New procedure function.
	(doMakeComponentRef): Call initNodeOpaqueCastState.
	(makePointerRef): Call initNodeOpaqueCastState.
	(doGetFuncType): Call initNodeOpaqueCastState.
	(doBinary): Add FALSE parameter to doExprCup.
	(doDeRefC): Rewrite.
	(doComponentRefC): Call flushOpaque.
	(doPointerRefC): Call flushOpaque.
	(doArrayRefC): Add const_cast for unbounded array.
	(doExprCup): Rewrite.
	(doTypeAliasC): Remove.
	(isDeclType): New procedure function.
	(doEnumerationC): New procedure function.
	(doParamTypeEmit): Ditto.
	(doParamTypeNameModifier): Ditto.
	(initOpaqueCastState): Ditto.
	(initNodeOpaqueCastState): Ditto.
	(setOpaqueCastState): Ditto.
	(setNodeOpaqueVoidStar): Ditto.
	(nodeUsesOpaque): Ditto.
	(getNodeOpaqueVoidStar): Ditto.
	(getOpaqueFlushNecessary): Ditto.
	(makeOpaqueCast): Ditto.
	(flushOpaque): Ditto.
	(castOpaque): Ditto.
	(isTypeOpaqueDefImp): Ditto.
	(isParamVoidStar): Ditto.
	(isRefVoidStar): Ditto.
	(isReturnVoidStar): Ditto.
	(isVarVoidStar): Ditto.
	(initNodeOpaqueState): Ditto.
	(assignNodeOpaqueCastState): Ditto.
	(assignNodeOpaqueCastFalse): Ditto.
	(dumpOpaqueState): Ditto.
	(doProcTypeC): Rewrite.
	(isDeclInImp): New procedure function.
	(doTypeNameModifier): Ditto.
	(doTypeC): Emit typedef if enum is declared in this module.
	(doCompletePartialProcType): Rewrite.
	(outputCompletePartialProcType): New procedure.
	(doOpaqueModifier): Ditto.
	(doVarC): Ditto.
	(doProcedureHeadingC): Add opaque modifier to return type if
	necessary.
	(doReturnC): Cast opaque type for return if necessary.
	(forceCastOpaque): New procedure.
	(forceReintCastOpaque): New procedure.
	(doUnConstCastUnbounded): New procedure.
	(doAssignmentC): Cast opaque for both des and expr if necessary.
	(doAdrExprC): Use static_cast for void * casting.
	(doFuncVarParam): New procedure.
	(doFuncParamC): Rewrite.
	(doAdrArgC): Rewrite.
	(getFunction): New procedure function.
	(stop): Rename to ...
	(localstop): ... this.
	(dupFunccall): Call assignNodeOpaqueCastState.
	(dbg): Rewrite.
	(addDone): Rewrite.
	(addDoneDef): Do not add opaque types to the doneQ when declared in
	the definition module.
	* mc/mc.flex (openSource): Return bool.
	(_M2_mcflex_init): Correct parameter list.
	(_M2_mcflex_fini): Ditto.
	* mc/mcComment.h (stdbool.h): Include.
	(mcComment_initComment): Change unsigned int to bool.
	* mc/mcOptions.mod (handleOption): Disable --extended-opaque
	and issue warning.
	* mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.

2024-06-06  Gaius Mulley  <gaiusmod2@gmail.com>
	    Kewen.Lin   <linkw@linux.ibm.com>

	* gm2-gcc/m2type.cc (build_m2_short_real_node): Rewrite
	to use the default float_type_node.
	(build_m2_real_node): Rewrite to use the default
	double_type_node.
	(build_m2_long_real_node): Rewrite to use the default
	long_double_type_node or float128_type_node.

2024-05-21  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (MC_EXTENDED_OPAQUE): New definition.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/Galists.cc: Rebuild.
	* mc-boot/Galists.h: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc/alists.def (equalList): New procedure.
	* mc/alists.mod (equalList): New procedure implementation.
	* mc/decl.mod (group): New type.
	(freeGroup): New variable.
	(globalGroup): Ditto.
	(todoQ): Remove declaration and prefix all occurances with globalGroup^.
	(partialQ): Ditto.
	(doneQ): Ditto.
	(newGroup): New procedure.
	(initGroup): Ditto.
	(killGroup): Ditto.
	(dupGroup): Ditto.
	(equalGroup): Ditto.
	(topologicallyOut): Rewrite.

2024-05-21  Sam James  <sam@gentoo.org>

	* Make-lang.in (m2.install-info): Pass --destdir for dir index.

2024-05-15  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115057
	* gm2-libs-iso/TextIO.mod (ReadRestLine): Use ReadChar to
	skip unwanted characters as this calls IOChan.Look and updates
	the cid result status.  A Skip without a Look does not update
	the status.  Skip always sets read result to allRight.
	* gm2-libs-iso/TextUtil.def (SkipSpaces): Improve comments.
	(CharAvailable): Improve comments.
	* gm2-libs-iso/TextUtil.mod (SkipSpaces): Improve comments.
	(CharAvailable): Improve comments.

2024-05-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/115003
	* gm2-compiler/SymbolTable.mod (GetScope): Add UndefinedSym
	case clause and return NulSym.

2024-05-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114929
	* gm2-compiler/M2LangDump.mod (GenQualidentSymString): Add
	missing return result into identstr.
	* gm2-compiler/M2Quads.mod (ForLoopLastIteratorVariable): New
	procedure.
	(ForLoopLastIteratorConstant): Ditto.
	(ForLoopLastIterator): Ditto.
	(BuildForToByDo): Remove LastIterator calculation and call
	ForLoopLastIterator instead.
	(FinalValue): Replace with ...
	(LastIterator): ... this.

2024-05-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113836
	* gm2-compiler/M2AsmUtil.def: Remove export qualified and
	unused import.
	* gm2-compiler/M2LangDump.mod (AddRuleTextDump): New procedure.
	(AddRuleScopeQualidentDump): Add warning check against unmatched
	rule.
	(GenQualidentSymString): New procedure function.
	(IdentQualidentMatch): New procedure function.
	(IsRuleFilenameMatch): New procedure function.
	(CheckRuleMatch): New procedure function.
	(AddRuleFilenameDump): New procedure function.
	* gm2-gcc/m2misc.cc (m2misc_warning_m2_dump_filter): New function.
	* gm2-gcc/m2misc.def (warning_m2_dump_filter): New procedure.
	* gm2-gcc/m2misc.h (m2misc_warning_m2_dump_filter): New prototype.
	* gm2-gcc/m2pp.cc (VERBOSE_TYPE_DESC): New define.
	(m2pp_identifier): Define out verbose type info.
	(m2pp_constructor): Define out verbose type info.
	(m2pp_assignment): Define out verbose type info.
	* gm2-lang.cc (ENABLE_M2DUMP_ALL): Remove.
	* lang.opt (fm2-dump): Add.
	(fm2-dump-decl=): Add.
	(fm2-dump-gimple=): Add.
	(fm2-dump-quad=): Add.
	(fm2-dump-filter=): Add.

2024-04-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114836
	* gm2-compiler/M2Range.mod (FoldTypeAssign): Avoid error
	string concatenation.

2024-04-25  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2FileName.def (CalculateFileName): Remove
	quoted string in comment.
	* gm2-compiler/M2Range.mod (FoldTypeParam): Generate dialect
	specific parameter incompatibility error message.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	* lang.opt (fdef=, fmod=): Spelling fix: recognise -> recognize.

2024-04-23  Jakub Jelinek  <jakub@redhat.com>

	* lang.opt (fuse-list=): Spelling fix: finalializations ->
	finalizations.

2024-04-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114811
	* gm2-compiler/M2GenGCC.mod (FoldBinarySet): Add condition
	checking to ensure op2 and op3 are fully resolved before
	type checking is performed.

2024-04-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114807
	* gm2-compiler/M2Check.mod (checkUnbounded): Remove unused
	local variables.
	(constCheckMeta): Include check for IsReallyPointer in the
	failure case.
	* gm2-compiler/M2Quads.mod (MoveWithMode): Remove CopyConstString.
	* gm2-compiler/SymbolTable.def (IsHiddenReallyPointer): Export.
	* gm2-compiler/SymbolTable.mod (SkipHiddenType): Remove.
	(IsReallyPointer): Include IsHiddenReallyPointer test.

2024-04-20  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112893
	* gm2-compiler/M2Check.mod (GetProcedureProcType): Import.
	(getType): Return value using GetProcedureProcType if sym is a
	procedure.
	* gm2-compiler/M2Range.mod (FoldTypeExpr): Remove quad if
	expression is type compatible.
	* gm2-compiler/SymbolTable.def (GetProcedureProcType): New
	procedure function.
	* gm2-compiler/SymbolTable.mod (Procedure): Add ProcedureType.
	(MakeProcedure): Initialize ProcedureType.
	(PutParam): Call AddProcedureProcTypeParam.
	(PutVarParam): Call AddProcedureProcTypeParam.
	(AddProcedureProcTypeParam): New procedure.
	(GetProcedureProcType): New procedure function.

2024-04-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114745
	* gm2-compiler/M2Code.mod (DumpLangDecl): Replace with ...
	(GetDumpDecl): ... this.
	(DumpLangGimple): Replace with ...
	(GetDumpGimple): ... this.
	* gm2-compiler/M2GenGCC.mod:
	* gm2-compiler/M2LangDump.mod (GetDumpLangQuadFilename): Replace with ...
	(GetDumpQuadFilename): ... this.
	(GetDumpLangDeclFilename): Replace with ...
	(GetDumpDeclFilename): ... this.
	(GetDumpLangGimpleFilename): Replace with ...
	(GetDumpGimpleFilename): ... this.
	* gm2-compiler/M2Options.def (GetDumpLangDeclFilename): New
	procedure function.
	(GetDumpDeclFilename): Ditto.
	(SetDumpLangDeclFilename): New procedure.
	(SetDumpDeclFilename): Ditto.
	(GetDumpLangQuadFilename): New procedure function.
	(GetDumpQuadFilename): Ditto
	(SetDumpLangQuadFilename): New procedure.
	(SetDumpQuadFilename): Ditto.
	(GetDumpLangGimpleFilename): New procedure function.
	(GetDumpGimpleFilename): Ditto.
	(SetDumpLangGimpleFilename): New procedure.
	(SetDumpGimpleFilename): Ditto.
	(GetDumpLangGimple): New procedure function.
	(SetM2Dump): New procedure.
	(GetDumpGimple): New procedure function.
	(GetDumpQuad): Ditto.
	(GetDumpDecl): Ditto.
	* gm2-compiler/M2Options.mod (DumpLangDeclFilename): Remove.
	(DumpLangQuadFilename): Ditto.
	(DumpLangGimpleFilename): Ditto.
	(DumpDeclFilename): New variable.
	(DumpQuadFilename): Ditto.
	(DumpGimpleFilename): Ditto.
	(DebugTraceTree): New variable.
	(SetQuadDebugging): Rewrite.
	(GetDumpLangDeclFilename): Replace with ...
	(GetDumpDeclFilename): ... this.
	(SetDumpLangQuadFilename): Replace with ...
	(SetDumpQuadFilename): ... this.
	(GetDumpLangGimpleFilename): Replace with ...
	(GetDumpGimpleFilename): ... this.
	(SetDumpLangGimpleFilename): Replace with ...
	(SetDumpGimpleFilename): ... this.
	(GetDumpLangGimple): Remove.
	(MatchDump): New procedure function.
	(SetM2Dump): New procedure.
	(GetDumpGimple): New procedure function.
	(GetDumpQuad): Ditto.
	(GetDumpDecl): Ditto.
	(GetDumpLangGimple): Ditto.
	* gm2-compiler/M2Quads.mod (BreakAtQuad): Assigned to 140.
	(BuildTypeCoercion): Add ConstExpr parameter.
	Check for const parameter in a const expression.
	Create a constant temporary if in a const expression.
	(BuildCastFunction): Pass ConstExpr to BuildTypeCoercion.
	(BuildFunctionCall): Pass ConstExpr to BuildTypeCoercion.
	* gm2-compiler/PCSymBuild.mod (buildConstFunction): Test for Cast
	and call InitConvert.
	(ErrorConstFunction): Add CAST to the error message.
	* gm2-compiler/SymbolTable.mod (GetConstStringContent): Remove
	unused procedure.
	* gm2-gcc/m2decl.cc (m2decl_DeclareKnownConstant): Copy value
	and change type of value.
	* gm2-gcc/m2options.h (M2Options_GetDumpLangDeclFilename): Remove.
	(M2Options_SetDumpLangDeclFilename): Ditto.
	(M2Options_GetDumpLangQuadFilename): Ditto.
	(M2Options_SetDumpLangQuadFilename): Ditto.
	(M2Options_GetDumpLangGimpleFilename): Ditto.
	(M2Options_SetDumpLangGimpleFilename): Ditto.
	(M2Options_GetDumpLangGimple): Ditto.
	(M2Options_GetDumpDeclFilename): New function.
	(M2Options_SetDumpDeclFilename): Ditto.
	(M2Options_GetDumpQuadFilename): Ditto.
	(M2Options_SetDumpQuadFilename): Ditto.
	(M2Options_GetDumpGimpleFilename): Ditto.
	(M2Options_SetDumpGimpleFilename): Ditto.
	(M2Options_SetM2Dump): Ditto.
	(M2Options_GetDumpGimple): Ditto.
	* gm2-gcc/m2pp.cc (GM2): New define.
	(m2pp_type_lowlevel): Remove linefeed.
	(m2pp_identifier): Add type description for const.
	(m2pp_assignment): Display lhs/rhs types.
	(m2pp_dump_gimple): Replace GetDumpLangGimple with GetDumpGimple.
	* gm2-lang.cc (ENABLE_QUAD_DUMP_ALL): Remove.
	(ENABLE_M2DUMP_ALL): New define.
	(gm2_langhook_handle_option): Remove commented options
	OPT_fdump_lang_all, OPT_fdump_lang_decl_, OPT_fdump_lang_gimple,
	OPT_fdump_lang_gimple_, OPT_fdump_lang_quad and
	OPT_fdump_lang_quad_.
	Add commented options OPT_fm2_dump_, OPT_fm2_dump_decl_,
	OPT_fm2_dump_gimple_ and OPT_fm2_dump_quad_.

2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>

	* tools-src/makeSystem: Invoke ${COMPILER} once and adjust
	the echo string to expand the shell variables with -wrapper
	gdb, --args.

2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114648
	* gm2-compiler/M2Options.mod (LineDirectives): Initially
	set to true.

2024-04-06  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114617
	* gm2-compiler/M2GenGCC.mod (CodeStatememt): Add quad trace.
	(ResolveConstantExpressions): Add parameter p to FoldIfLess,
	FoldIfGre, FoldIfLessEqu, FoldIfGreEqu, FoldIfEqu, FoldIfNotEqu,
	FoldIfIn and FoldIfNotIn.
	(CodeInline): Add constExpr variable and pass it to GetQuadOtok.
	(CodeReturnValue): Ditto.
	(CodeParam): Ditto.
	(FoldStringLength): Ditto.
	(FoldStringConvertM2nul): Ditto.
	(FoldStringConvertCnul): Ditto.
	(DeclaredOperandsBecomes): Ditto.
	(TypeCheckBecomes): Ditto.
	(PerformFoldBecomes): Ditto.
	(CodeBecomes): Ditto.
	(CheckElementSetTypes): Ditto.
	(CodeBinarySet): Ditto.
	(PerformCodeIfLess): Ditto.
	(PerformCodeIfGre): Ditto.
	(PerformCodeIfLessEqu): Ditto.
	(PerformCodeIfGreEqu): Ditto.
	(PerformCodeIfEqu): Ditto.
	(PerformCodeIfNotEqu): Ditto.
	(IsValidExpressionRelOp): Ditto.
	(PerformCodeIfIn): Ditto.
	(PerformCodeIfNotIn): Ditto.
	(CodeXIndr): Ditto.
	(QuadCondition): New procedure function.
	(IsBooleanRelOpPattern): Ditto.
	(FoldBooleanRelopPattern): Ditto.
	(FoldIfGre): Check for boolean relop constant expression and
	add parameter p.
	(FoldIfLessEqu): Ditto.
	(FoldIfIn): Ditto.
	(FoldIfEqu): Ditto.
	(FoldIfNotIn): Ditto.
	(FoldIfGreEqu): New procedure.
	(FoldIfNotEqu): Ditto.
	* gm2-compiler/M2Optimize.mod (ReduceBranch): Add constExpr
	variable and pass it to GetQuadOtok.
	* gm2-compiler/M2Quads.def (IsBecomes): New procedure function.
	(IsDummy): Ditto.
	(IsQuadConstExpr): Ditto.
	(SetQuadConstExpr): Ditto.
	(GetQuadDest): New procedure.
	(GetQuadOp1): New procedure.
	(GetQuadOp2): New procedure.
	(GetQuadOp3): New procedure.
	(GetQuadOtok): New procedure.
	(GetQuadOTypetok): New procedure.
	(PutQuadOtok): New procedure.
	(IsInConstParameters): New procedure function.
	* gm2-compiler/M2Quads.mod (IsBecomes): New procedure function.
	(IsDummy): Ditto.
	(IsQuadConstExpr): Ditto.
	(SetQuadConstExpr): Ditto.
	(GetQuadDest): New procedure.
	(GetQuadOp1): New procedure.
	(GetQuadOp2): New procedure.
	(GetQuadOp3): New procedure.
	(GetQuadOtok): New procedure.
	(GetQuadOTypetok): New procedure.
	(PutQuadOtok): New procedure.
	(IsInConstParameters): New procedure function.
	(ConstStack): Remove to ...
	(ConstExprStack): ... this.
	(ConstParamStack): New variable and initialize.
	(QuadFrame): New field ConstExpr.
	(GetQuadOtok): Add parameter constExpr and assign.
	(PutQuadOtok): Add constExpr parameter and assign.
	(PutQuadOType): Ditto.
	(GetQuadOTypetok): Ditto.
	(EraseQuad): Assign ConstExpr to FALSE.
	(FoldSubrange): Set ConstExpr to FALSE in BecomesOp.
	(PushInConstParameters): New procedure.
	(PopInConstParameters): New procedure.
	(IsInConstParameters): New procedure function.
	* gm2-compiler/M2SymInit.mod (IssueConditional): Add
	constExpr boolean variable.
	(CheckReadBeforeInitQuad): Ditto.
	(trashParam): Ditto.
	* gm2-compiler/P3Build.bnf (ConstExpression): Call
	PushInConstExpression and PopInConstExpression.
	(ConstSetOrQualidentOrFunction): Call
	PushInConstParameters and PopInConstParameters.
	* gm2-compiler/PCBuild.bnf (ConstExpression): Call
	PushInConstExpression and PopInConstExpression.
	* gm2-compiler/PHBuild.bnf: Ditto
	* gm2-gcc/m2expr.cc (m2expr_BuildCondIfExpression): New
	function.
	* gm2-gcc/m2expr.def (BuildCondIfExpression): New prototype.
	* gm2-gcc/m2expr.h (m2expr_BuildCondIfExpression): New function.

2024-04-05  Christophe Lyon  <christophe.lyon@linaro.org>

	* Make-lang.in (m2.install-dvi): New rule.

2024-04-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114565
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Test
	GetDebugTraceQuad before calling DisplayQuad.
	* gm2-compiler/M2LexBuf.mod (NumberIO): Import CardToStr.
	(GetToken): Test GetDebugTraceToken before writing the
	token number or token line.
	* gm2-compiler/M2Options.def (SetDebugTraceQuad): Rename to
	(SetM2DebugTraceFilter): ...this.
	(SetDebugTraceAPI): Remove.
	(GetDebugTraceQuad): New procedure function.
	(GetDebugTraceTree): Ditto.
	(GetDebugTraceToken): Ditto.
	(GetDebugTraceLine): Ditto.
	(GetDebugFunctionLineNumbers): Ditto.
	* gm2-compiler/M2Options.mod (DebugFunctionLineNumbers): New
	boolean variable.
	(DebugTraceQuad): Ditto.
	(DebugTraceTree): Ditto.
	(DebugTraceLine): Ditto.
	(DebugTraceToken): Ditto.
	(errors1): New procedure.
	(SetDebugTraceQuad): Remove.
	(SetM2DebugTraceFilter): New procedure implemented.
	(SetM2DebugTrace): Ditto.
	(GetDebugTraceQuad): Ditto.
	(GetDebugTraceToken ): Ditto.
	(GetDebugTraceLine): Ditto.
	(SetDebugTraceLine): Remove.
	* gm2-compiler/M2Quads.mod (GenQuadOTrash): Test
	GetDebugTraceQuad and call DisplayQuad.
	(GenQuadOTypetok): Ditto.
	* gm2-compiler/SymbolTable.mod: Replace
	DebugFunctionLineNumbers with GetDebugFunctionLineNumbers.
	* gm2-gcc/init.cc (_M2_M2LangDump_init): Add prototype.
	(init_PerCompilationInit): Add call.
	* gm2-gcc/m2misc.cc (m2misc_cerror): New function.
	(m2misc_error): Ditto.
	* gm2-gcc/m2misc.def (error): New procedure.
	(cerror): Ditto.
	* gm2-gcc/m2misc.h (m2misc_cerror): New prototype.
	(m2misc_error): Ditto.
	* gm2-gcc/m2options.h (M2Options_SetDebugTraceQuad): New
	prototype.
	(M2Options_SetDebugTraceAPI): Remove.
	(M2Options_GetDebugTraceToken): New prototype.
	(M2Options_GetDebugTraceLine): Ditto.
	(M2Options_SetDebugFunctionLineNumbers): Ditto.
	(M2Options_GetDebugFunctionLineNumbers): Ditto.
	(M2Options_SetM2DebugTraceFilter): Ditto.
	* gm2-lang.cc (gm2_langhook_init_options): Remove
	OPT_fdebug_trace_quad case.
	Remove OPT_fdebug_trace_api case.
	Add OPT_fm2_debug_trace_ case.
	* lang.opt (fm2-debug-trace): New option.
	(fdebug-trace-api): Remove.
	(fdebug-trace-quad): Remove.
	* m2.flex (m2flex_M2Error): Check s for NULL.
	(skipnewline): New function.
	(consumeLine): Call traceline.

2024-04-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114548
	* gm2-compiler/M2Quads.mod (ConvertToAddress): Pass
	procedure, false parameters to BuildConvertFunction.
	(PushOne): Pass procedure, true parameters to
	BuildConvertFunction.
	Remove usused parameter internal.
	(BuildPseudoBy): Remove parameter to PushOne.
	(BuildIncProcedure): Ditto.
	(BuildDecProcedure): Ditto.
	(BuildFunctionCall): Add ConstExpr parameter to
	BuildPseudoFunctionCall.
	(BuildConstFunctionCall): Add procedure and true to
	BuildConvertFunction.
	(BuildPseudoFunctionCall): Add ConstExpr parameter.
	Pass ProcSym and ConstExpr to BuildLengthFunction,
	BuildConvertFunction, BuildOddFunction, BuildAbsFunction,
	BuildCapFunction, BuildValFunction, BuildChrFunction,
	BuildOrdFunction, BuildIntFunction, BuildTruncFunction,
	BuildFloatFunction, BuildAddAdrFunction, BuildSubAdrFunction,
	BuildDifAdrFunction, BuildCastFunction, BuildReFunction,
	BuildImFunction and BuildCmplxFunction.
	(BuildAddAdrFunction): Add ProcSym, ConstExpr parameters and
	check for constant parameters.
	(BuildSubAdrFunction): Ditto.
	(BuildDifAdrFunction): Ditto.
	(ConstExprError): Ditto.
	(BuildLengthFunction): Ditto.
	(BuildOddFunction): Ditto.
	(BuildAbsFunction): Ditto.
	(BuildCapFunction): Ditto.
	(BuildChrFunction): Ditto.
	(BuildOrdFunction): Ditto.
	(BuildIntFunction): Ditto.
	(BuildValFunction): Ditto.
	(BuildCastFunction): Ditto.
	(BuildConvertFunction): Ditto.
	(BuildTruncFunction): Ditto.
	(BuildFloatFunction): Ditto.
	(BuildReFunction): Ditto.
	(BuildImFunction): Ditto.
	(BuildCmplxFunction): Ditto.

2024-03-31  Christophe Lyon  <christophe.lyon@linaro.org>

	* Make-lang.in (m2.install-info): Fix rule.

2024-03-31  Christophe Lyon  <christophe.lyon@linaro.org>

	* Make-lang.in (install-html): New rule.

2024-03-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114520
	* gm2-compiler/P0SyntaxCheck.bnf (DetectImport): New
	procedure.
	(EnableImportCheck): New boolean.
	(Expect): Call DetectImport.
	(Export): Set EnableImportCheck TRUE before ';' and FALSE
	afterwards.

2024-03-28  Gaius Mulley  <(no_default)>

	PR modula2/114517
	* gm2-compiler/M2Options.def (SetCpp): Add comment.
	(GetCpp): Move after SetCpp.
	(GetLineDirectives): New procedure function.
	* gm2-compiler/M2Options.mod (GetLineDirectives): New
	procedure function.
	* gm2-gcc/m2options.h (M2Options_GetLineDirectives): New
	prototype.
	* gm2-lang.cc (gm2_langhook_init_options): OPT_fcpp only
	assert if !value.
	* m2.flex: Test GetLineDirectives before changing to LINE0
	state.

2024-03-28  Gaius Mulley  <gaiusmod2@gmail.com>

	* target-independent/m2/Builtins.texi: Rebuilt.
	* target-independent/m2/gm2-libs.texi: Rebuilt.

2024-03-26  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114478
	* gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New struct.
	(lookup_builtin_macro): New function.
	(m2builtins_BuildBuiltinTree): Rewrite to lookup builtin function
	and builtin macro.
	(lookup_builtin_function): New function.
	(define_builtin): Rename parameter type to prototype push macro
	definition to builtin_macros vector.
	(define_builtin_ext): New function.
	(define_builtin_math): New function.
	(m2builtins_init): Add isgreater, isless, isgreaterequal,
	islessequal, islessgreater, isunordered, isnormal to macro definitions.
	* gm2-libs/Builtins.def (isgreater): New procedure function.
	(isgreaterf): Ditto.
	(isgreaterl): Ditto.
	(isgreaterequal): Ditto.
	(isgreaterequalf): Ditto.
	(isgreaterequall): Ditto.
	(isless): Ditto.
	(islessf): Ditto.
	(islessl): Ditto.
	(islessequal): Ditto.
	(islessequalf): Ditto.
	(islessequall): Ditto.
	(islessgreater): Ditto.
	(islessgreaterf): Ditto.
	(islessgreaterl): Ditto.
	(isunordered): Ditto.
	(isunorderedf): Ditto.
	(isunorderedl): Ditto.
	(iseqsig): Ditto.
	(iseqsigf): Ditto.
	(iseqsigl): Ditto.
	(isnormal): Ditto.
	(isnormalf): Ditto.
	(isnormall): Ditto.
	(isinf_sign): Ditto.
	(isinf_signf): Ditto.
	(isinf_signl): Ditto.
	* gm2-libs/Builtins.mod (isgreater): New procedure function.
	(isgreaterf): Ditto.
	(isgreaterl): Ditto.
	(isgreaterequal): Ditto.
	(isgreaterequalf): Ditto.
	(isgreaterequall): Ditto.
	(isless): Ditto.
	(islessf): Ditto.
	(islessl): Ditto.
	(islessequal): Ditto.
	(islessequalf): Ditto.
	(islessequall): Ditto.
	(islessgreater): Ditto.
	(islessgreaterf): Ditto.
	(islessgreaterl): Ditto.
	(isunordered): Ditto.
	(isunorderedf): Ditto.
	(isunorderedl): Ditto.
	(iseqsig): Ditto.
	(iseqsigf): Ditto.
	(iseqsigl): Ditto.
	(isnormal): Ditto.
	(isnormalf): Ditto.
	(isnormall): Ditto.
	(isinf_sign): Ditto.
	(isinf_signf): Ditto.
	(isinf_signl): Ditto.

2024-03-25  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (doc/m2.pdf): Add line break.
	* target-independent/m2/Builtins.texi: Rebuilt.
	* target-independent/m2/gm2-libs.texi: Rebuilt.

2024-03-23  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114444
	* gm2-compiler/M2Quads.mod (BuildTruncFunction): Correct
	error format specifier.
	(BuildFloatFunction): Correct error format specifier.

2024-03-23  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114443
	* m2.flex: Call AddTokCharStar with a stringtok if
	end of line is reached without a closing quote.

2024-03-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114422
	* gm2-compiler/M2Quads.mod (BuildConstructor): Add escape
	character.

2024-03-21  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113836
	* Make-lang.in (GM2_C_OBJS): Add m2/gm2-gcc/m2pp.o.
	(m2/m2pp.o): Remove rule.
	(GM2-COMP-BOOT-DEFS): Add M2LangDump.def.
	(GM2-COMP-BOOT-MODS): Add M2LangDump.mod.
	(GM2-GCC-DEFS): Add M2LangDump.def.
	(GM2-GCC-MODS): Add M2LangDump.mod.
	* gm2-compiler/M2CaseList.mod (WriteCase): Rewrite.
	* gm2-compiler/M2Code.mod (DoModuleDeclare): Call
	DumpFilteredResolver depending upon DumpLangDecl.
	(DoCodeBlock): Call CreateDumpGimple depending upon
	DumpLangGimple.
	(Code): Replace DisplayQuadList blocks with DumpQuadruples.
	(DisplayQuadsInScope): Remove.
	(DisplayQuadNumbers): Remove.
	(CodeBlock): Rewrite.
	* gm2-compiler/M2GCCDeclare.def (IncludeDumpSymbol): New procedure.
	(DumpFilteredResolver): New procedure.
	(DumpFilteredDefinitive): New procedure.
	* gm2-compiler/M2GCCDeclare.mod (IncludeDumpSymbol): New procedure.
	(DumpFilteredResolver): New procedure.
	(DumpFilteredDefinitive): New procedure.
	(doInclude): Rewrite to use GetDumpFile.
	(WatchIncludeList): Remove fixed debugging value.
	(doExclude): Rewrite to use GetDumpFile.
	(DeclareTypesConstantsProceduresInRange): Remove fixed debugging
	values.
	(PreAddModGcc): Rename parameter t as tree.
	(IncludeGetNth): Rewrite to use GetDumpFile.
	(IncludeType): Ditto.
	(IncludeSubscript): Ditto.
	(PrintLocalSymbol): Ditto.
	(PrintLocalSymbols): Ditto.
	(IncludeGetVarient): Ditto.
	(PrintDeclared): Ditto.
	(PrintAlignment): Ditto.
	(PrintDecl): Ditto.
	(PrintScope): Ditto.
	(PrintProcedure): Ditto.
	(PrintSym): Ditto.
	(PrintSymbol): Ditto.
	(PrintTerse): Ditto.
	* gm2-compiler/M2Options.def (GetDumpLangDeclFilename): New
	procedure function.
	(SetDumpLangDeclFilename): New procedure.
	(GetDumpLangQuadFilename): New procedure function.
	(SetDumpLangQuadFilename): New procedure.
	(GetDumpLangGimpleFilename): New procedure function.
	(SetDumpLangGimpleFilename): New procedure.
	(SetM2DumpFilter): New procedure.
	(GetM2DumpFilter): New procedure function.
	(GetDumpLangGimple): New procedure function.
	* gm2-compiler/M2Options.mod (GetDumpLangDeclFilename): New
	procedure function.
	(SetDumpLangDeclFilename): New procedure.
	(GetDumpLangQuadFilename): New procedure function.
	(SetDumpLangQuadFilename): New procedure.
	(GetDumpLangGimpleFilename): New procedure function.
	(SetDumpLangGimpleFilename): New procedure.
	(SetM2DumpFilter): New procedure.
	(GetM2DumpFilter): New procedure function.
	(GetDumpLangGimple): New procedure function.
	* gm2-compiler/M2Quads.def (DumpQuadruples): New procedure.
	* gm2-compiler/M2Quads.mod (DumpUntil): New procedure.
	(GetCtorInit): New procedure function.
	(GetCtorFini): New procedure function.
	(DumpQuadrupleFilter): New procedure function.
	(DumpQuadrupleAll): New procedure.
	(DisplayQuadList): Remove procedure.
	(DumpQuadruples): New procedure.
	(DisplayQuadRange): Rewrite.
	(DisplayQuad): Ditto.
	(DisplayProcedureAttributes): Ditto.
	(WriteOperator): Ditto.
	(WriteMode): Ditto.
	* gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): Replace
	DisplayQuadruples with TraceQuadruples.
	(ForeachScopeBlockDo3): Replace	DisplayQuadruples with
	TraceQuadruples.
	* gm2-compiler/SymbolConversion.def (Gcc2Mod): New procedure function.
	* gm2-compiler/SymbolConversion.mod: New procedure function.
	* gm2-gcc/m2misc.cc (m2misc_DebugTree): New function.
	(m2misc_DebugTreeChain): New function.
	* gm2-gcc/m2options.h (M2Options_GetDumpLangDeclFilename): New
	prototype.
	(M2Options_SetDumpLangDeclFilename): New prototype.
	(M2Options_GetDumpLangQuadFilename): New prototype.
	(M2Options_SetDumpLangQuadFilename): New prototype.
	(M2Options_GetDumpLangGimpleFilename): New prototype.
	(M2Options_SetDumpLangGimpleFilename): New prototype.
	(M2Options_GetDumpLangGimple): New prototype.
	(M2Options_SetM2DumpFilter): New prototype.
	(M2Options_GetM2DumpFilter): New prototype.
	* m2pp.cc: Move to...
	* gm2-gcc/m2pp.cc: ...here.
	* m2pp.h: Move to...
	* gm2-gcc/m2pp.h: ...here.
	* gm2-gcc/m2statement.cc (m2statement_BuildEndFunctionCode): Call
	m2pp_dump_gimple.
	* gm2-lang.cc (ENABLE_QUAD_DUMP_ALL): New define.
	(gm2_langhook_init_options): Add switch cases for proposed new
	command line options.
	* gm2-libs/DynamicStrings.def (ReverseIndex): New procedure
	function.
	* gm2-libs/DynamicStrings.mod: New procedure function.
	* gm2-compiler/M2LangDump.def: New file.
	* gm2-compiler/M2LangDump.mod: New file.
	* gm2-gcc/m2langdump.h: New file.
	* gm2-gcc/m2pp.def: New file.

2024-03-21  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114418
	* gm2-compiler/PCSymBuild.mod (PushConstFunctionType): Check
	func against NulSym and issue an error.

2024-03-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114380
	* gm2-compiler/SymbolTable.mod (GetLowestType): Do not
	skip over a set type, but return sym.

2024-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114296
	* gm2-compiler/M2ALU.mod (ElementsSolved): Add tokenno parameter.
	Add constant checks and generate error messages.
	(EvalSetValues): Pass tokenno parameter to ElementsSolved.
	* gm2-compiler/M2LexBuf.mod (stop): New procedure.
	(MakeVirtualTok): Call stop if caret = BadTokenNo.
	* gm2-compiler/M2Quads.def (BuildNulExpression): Add tokpos
	parameter.
	(BuildSetStart): Ditto.
	(BuildEmptySet): Ditto.
	(BuildConstructorEnd): Add startpos parameter.
	(BuildTypeForConstructor): Add tokpos parameter.
	* gm2-compiler/M2Quads.mod (BuildNulExpression): Add tokpos
	parameter and push tokpos to the quad stack.
	(BuildSetStart): Add tokpos parameter and push tokpos.
	(BuildSetEnd): Rewrite.
	(BuildEmptySet): Add tokpos parameter and push tokpos with
	the set	type.
	(BuildConstructorStart): Pop typepos.
	(BuildConstructorEnd): Add startpos parameter.
	Create valtok from startpos and cbratokpos.
	(BuildTypeForConstructor): Add tokpos parameter.
	* gm2-compiler/M2Range.def (InitAssignmentRangeCheck): Rename
	d to des and e to expr.
	Add destok and exprtok parameters.
	* gm2-compiler/M2Range.mod (InitAssignmentRangeCheck): Rename
	d to des and e to expr.
	Add destok and exprtok parameters.
	Save destok and exprtok into range record.
	(FoldAssignment): Pass exprtok to TryDeclareConstant.
	* gm2-compiler/P3Build.bnf (ComponentValue): Rewrite.
	(Constructor): Rewrite.
	(ConstSetOrQualidentOrFunction): Rewrite.
	(SetOrQualidentOrFunction): Rewrite.
	* gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Rewrite.
	(SetOrQualidentOrFunction): Rewrite.
	* gm2-compiler/PHBuild.bnf (Constructor): Rewrite.
	(ConstSetOrQualidentOrFunction): Rewrite.

2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114294
	* gm2-compiler/M2Quads.mod (BuildConstHighFromSym):
	Call PutConst to assign the type Cardinal in the result
	constant.

2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114333
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Remove op1, op2 and
	op3 parameters to CodeIfLess, CodeIfLessEqu, CodeIfGreEqu, CodeIfGre,
	CodeIfIn, CodeIfNotIn.
	(CodeIfLess): Rewrite.
	(PerformCodeIfLess): New procedure.
	(CodeIfLess): Rewrite.
	(PerformCodeIfLess): New procedure.
	(CodeIfLessEqu): Rewrite.
	(PerformCodeIfLessEqu): New procedure.
	(CodeIfGreEqu): Rewrite.
	(PerformCodeIfGreEqu): New procedure.
	(CodeIfGre): Rewrite.
	(PerformCodeIfGre): New procedure.
	(CodeIfIn): Rewrite.
	(PerformCodeIfIn): New procedure.
	(CodeIfNotIn): Rewrite.
	(PerformCodeIfNotIn): New procedure.

2024-03-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114333
	* gm2-compiler/M2Check.mod (checkUnbounded): New procedure
	function.
	(checkArrayTypeEquivalence): Extend checking to cover unbounded
	arrays, arrays and constants.
	(IsTyped): Simplified the expression and corrected a test for
	IsConstructor.
	(checkTypeKindViolation): New procedure function.
	(doCheckPair): Call checkTypeKindViolation.
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Remove parameters
	to CodeEqu and CodeNotEqu.
	(PerformCodeIfEqu): New procedure.
	(CodeIfEqu): Rewrite.
	(PerformCodeIfNotEqu): New procedure.
	(CodeIfNotEqu): Rewrite.
	* gm2-compiler/M2Quads.mod (BuildRelOpFromBoolean): Correct
	comment.

2024-03-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114295
	* gm2-compiler/M2Batch.mod (MakeProgramSource): Call PutDeclared
	if the module is known.
	(MakeDefinitionSource): Ditto.
	(MakeImplementationSource): Ditto.
	* gm2-compiler/M2Comp.mod (ExamineHeader): New procedure.
	(ExamineCompilationUnit): Rewrite.
	(PeepInto): Rewrite.
	* gm2-compiler/M2Error.mod (NewError): Remove default call to
	GetTokenNo.
	* gm2-compiler/M2Quads.mod (callRequestDependant): Push tokno with
	Adr.
	(BuildStringAdrParam): Ditto.
	(doBuildBinaryOp): Push OperatorPos on the bool stack.
	(BuildRelOp): Ditto.
	* gm2-compiler/P2Build.bnf (SetType): Pass set token pos to
	BuildSetType.
	(PointerType): Pass pointer token pos to BuildPointerType.
	* gm2-compiler/P2SymBuild.def (BuildPointerType): Add parameter
	pointerpos.
	(BuildSetType): Add parameter setpos.
	* gm2-compiler/P2SymBuild.mod (BuildPointerType): Add parameter
	pointerpos.  Build combined token and use it when creating a
	pointer type.
	(BuildSetType): Add parameter setpos.  Build combined token and
	use it when creating a set type.
	* gm2-compiler/SymbolTable.mod (DebugUnknownToken): New constant.
	(CheckTok): New procedure function.
	(MakeProcedure): Call CheckTok.
	(MakeRecord): Ditto.
	(MakeVarient): Ditto.
	(MakeEnumeration): Ditto.
	(MakeHiddenType): Ditto.
	(MakeConstant): Ditto.
	(MakeConstStringCnul): Ditto.
	(MakeSubrange): Ditto.
	(MakeTemporary): Ditto.
	(MakeVariableForParam): Ditto.
	(MakeParameterHeapVar): Ditto.
	(MakePointer): Ditto.
	(MakeSet): Ditto.
	(MakeUnbounded): Ditto.
	(MakeProcType): Ditto.

2024-03-08  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (Init): Use InitIndexTuned with
	default size 65K.
	* gm2-compiler/SymbolConversion.mod (Init): Ditto.
	* gm2-compiler/SymbolTable.mod (BEGIN):	Ditto.
	* mc-boot/GM2Dependent.cc: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* pge-boot/GIndexing.cc: Rebuild.
	* pge-boot/GIndexing.h: Rebuild.
	* pge-boot/GM2Dependent.cc: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2RTS.cc: Rebuild.

2024-03-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109969
	* gm2-compiler/M2LexBuf.def (TokenToLineNo): Rename parameter.
	(TokenToColumnNo): Rename parameter.
	(TokenToLocation): Rename parameter.
	(FindFileNameFromToken): Rename parameter.
	(DumpTokens): Rewrite comment.
	* gm2-compiler/M2LexBuf.mod: Rewrite.
	* gm2-compiler/P0SyntaxCheck.bnf (CheckInsertCandidate):
	DumpTokens before and after inserting recovery token.
	* gm2-gcc/m2builtins.cc (do_target_support_exists): Add
	bf_c99_compl case.
	* gm2-libs/Indexing.def (InitIndexTuned): New procedure
	function.
	(IsEmpty): New procedure function.
	* gm2-libs/Indexing.mod (InitIndexTuned): New procedure
	function.
	(IsEmpty): New procedure function.
	(Index): New field GrowFactor.
	(PutIndice): Use GrowFactor to extend dynamic array.

2024-03-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114227
	* gm2-libs-iso/M2RTS.mod (ProcedureChain): Remove.
	(ProcedureList): Remove.
	(ExecuteReverse): Remove.
	(ExecuteTerminationProcedures): Rewrite.
	(ExecuteInitialProcedures): Rewrite.
	(AppendProc): Remove.
	(InstallTerminationProcedure): Rewrite.
	(InstallInitialProcedure): Rewrite.
	(InitProcList): Remove.
	* gm2-libs/M2Dependent.def (InstallTerminationProcedure):
	New procedure.
	(ExecuteTerminationProcedures): New procedure.
	(InstallInitialProcedure): New procedure.
	(ExecuteInitialProcedures): New procedure.
	* gm2-libs/M2Dependent.mod (ProcedureChain): New type.
	(ProcedureList): New type.
	(ExecuteReverse): New procedure.
	(ExecuteTerminationProcedures): New procedure.
	(ExecuteInitialProcedures): New procedure.
	(AppendProc): New procedure.
	(InstallTerminationProcedure): New procedure.
	(InstallInitialProcedure): New procedure.
	(InitProcList): New procedure.
	* gm2-libs/M2RTS.mod (ProcedureChain): Remove.
	(ProcedureList): Remove.
	(ExecuteReverse): Remove.
	(ExecuteTerminationProcedures): Rewrite.
	(ExecuteInitialProcedures): Rewrite.
	(AppendProc): Remove.
	(InstallTerminationProcedure): Rewrite.
	(InstallInitialProcedure): Rewrite.
	(InitProcList): Remove.

2024-02-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113749
	* Make-lang.in (BUILD-PGE-O): Add m2/pge-boot/Gwrapc.o.
	* gm2-libs-ch/wrapc.c (wrapc_SeekSet): New function.
	(wrapc_SeekEnd): Ditto.
	(wrapc_ReadOnly): Ditto.
	(wrapc_WriteOnly): Ditto.
	* gm2-libs/FIO.mod (SEEK_SET): Remove.
	(SEEK_END): Remove.
	(UNIXREADONLY): Remove.
	(UNIXWRITEONLY): Remove.
	(ConnectToUnix): Replace UNIXWRITEONLY with a call to WriteOnly.
	Replace UNIXREADONLY with a call to ReadOnly.
	(SetPositionFromBeginning): Replace SEEK_SET with a call to
	SeekSet.
	(SetPositionFromEnd): Replace SEEK_END with a call to
	SeekEnd.
	* gm2-libs/wrapc.def (SeekSet): New procedure function.
	(SeekEnd): New procedure function.
	(ReadOnly): New procedure function.
	(WriteOnly): New procedure function.
	* mc-boot-ch/Glibc.c (BUILD_MC_LIBC_TRACE): Undef.
	(check_init): New function.
	(tracedb): Ditto.
	(tracedb_open): Ditto.
	(tracedb_result): Ditto.
	(libc_read): Ditto.
	(libc_write): Ditto.
	(libc_close): Ditto.
	(libc_creat): Ditto.
	(libc_open): Ditto.
	(libc_lseek): Ditto.
	* mc-boot-ch/Gwrapc.c (wrapc_SeekSet): New function.
	(wrapc_SeekEnd): Ditto.
	(wrapc_ReadOnly): Ditto.
	(wrapc_WriteOnly): Ditto.
	* mc-boot/GDynamicStrings.cc: Rebuilt.
	* mc-boot/GFIO.cc: Ditto.
	* mc-boot/GIndexing.cc: Ditto.
	* mc-boot/GM2Dependent.cc: Ditto.
	* mc-boot/GM2EXCEPTION.cc: Ditto.
	* mc-boot/GPushBackInput.cc: Ditto.
	* mc-boot/GRTExceptions.cc: Ditto.
	* mc-boot/GRTint.cc: Ditto.
	* mc-boot/GSArgs.cc: Ditto.
	* mc-boot/GStdIO.cc: Ditto.
	* mc-boot/GStringConvert.cc: Ditto.
	* mc-boot/GSysStorage.cc: Ditto.
	* mc-boot/Gdecl.cc: Ditto.
	* mc-boot/Gkeyc.cc: Ditto.
	* mc-boot/Glibc.h: Ditto.
	* mc-boot/GmcComment.cc: Ditto.
	* mc-boot/GmcComp.cc: Ditto.
	* mc-boot/GmcDebug.cc: Ditto.
	* mc-boot/GmcMetaError.cc: Ditto.
	* mc-boot/GmcStack.cc: Ditto.
	* mc-boot/GmcStream.cc: Ditto.
	* mc-boot/GnameKey.cc: Ditto.
	* mc-boot/GsymbolKey.cc: Ditto.
	* mc-boot/Gvarargs.cc: Ditto.
	* mc-boot/Gwrapc.h: Ditto.
	* mc/decl.mod (getSymName): Add pointerref clause.
	* mc/mcStream.mod (copy): Check for an error after every read.
	* mc/varargs.mod (copy): Rewrite pointer arithmetic using INC to
	avoid type incompatibility.
	* pge-boot/GDynamicStrings.cc: Rebuilt.
	* pge-boot/GDynamicStrings.h: Ditto.
	* pge-boot/GFIO.cc: Ditto.
	* pge-boot/GFIO.h: Ditto.
	* pge-boot/GIO.cc: Ditto.
	* pge-boot/GIndexing.cc: Ditto.
	* pge-boot/GM2Dependent.cc: Ditto.
	* pge-boot/GM2EXCEPTION.cc: Ditto.
	* pge-boot/GNameKey.cc: Ditto.
	* pge-boot/GPushBackInput.cc: Ditto.
	* pge-boot/GRTExceptions.cc: Ditto.
	* pge-boot/GStdIO.cc: Ditto.
	* pge-boot/GSymbolKey.cc: Ditto.
	* pge-boot/GSysStorage.cc: Ditto.
	* pge-boot/Glibc.h: Ditto.
	* pge-boot/Gwrapc.cc: Ditto.
	* pge-boot/Gwrapc.h: Ditto.

2024-02-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114055
	* gm2-compiler/M2Check.mod (Import): IsConstLitInternal and
	IsConstLit.
	(isInternal): New procedure function.
	(doCheck): Test for isInternal in either operand and early
	return true.
	* gm2-compiler/M2Quads.mod (PushOne): Rewrite with extra
	parameter internal.
	(BuildPseudoBy): Add TRUE parameter to PushOne call.
	(BuildIncProcedure): Add FALSE parameter to PushOne call.
	(BuildDecProcedure): Add FALSE parameter to PushOne call.
	* gm2-compiler/M2Range.mod (ForLoopBeginTypeCompatible):
	Uncomment code and tidy up error string.
	* gm2-compiler/SymbolTable.def (PutConstLitInternal):
	New procedure.
	(IsConstLitInternal): New procedure function.
	* gm2-compiler/SymbolTable.mod (PutConstLitInternal):
	New procedure.
	(IsConstLitInternal): New procedure function.
	(SymConstLit): New field IsInternal.
	(CreateConstLit): Initialize IsInternal to FALSE.

2024-02-21  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/114026
	* gm2-compiler/M2GenGCC.mod (Import): Remove DisplayQuadruples.
	Remove DisplayQuadList.
	(MixTypesBinary): Replace check with overflowCheck.
	New variable typeChecking.
	Use GenQuadOTypetok to retrieve typeChecking.
	Use typeChecking to suppress error message.
	* gm2-compiler/M2LexBuf.def (MakeVirtual2Tok): New procedure
	function.
	* gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Improve comment.
	(MakeVirtual2Tok): New procedure function.
	* gm2-compiler/M2Quads.def (GetQuadOTypetok): New procedure.
	* gm2-compiler/M2Quads.mod (QuadFrame): New field CheckType.
	(PutQuadO): Rewrite using PutQuadOType.
	(PutQuadOType): New procedure.
	(GetQuadOTypetok): New procedure.
	(BuildPseudoBy): Rewrite.
	(BuildForToByDo): Remove type checking.
	Add parameters e2, e2tok, BySym, bytok to
	InitForLoopBeginRange.
	Push the RangeId.
	(BuildEndFor): Pop the RangeId.
	Use GenQuadOTypetok to generate AddOp without type checking.
	Call PutRangeForIncrement with the RangeId and IncQuad.
	(GenQuadOtok): Rewrite using GenQuadOTypetok.
	(GenQuadOTypetok): New procedure.
	* gm2-compiler/M2Range.def (InitForLoopBeginRangeCheck):
	Rename d as des, e as expr.
	Add expr1, expr1tok, expr2, expr2tok, byconst, byconsttok
	parameters.
	(PutRangeForIncrement): New procedure.
	* gm2-compiler/M2Range.mod (Import): MakeVirtual2Tok.
	(Range): Add expr2, byconst, destok, exprtok, expr2tok,
	incrementquad.
	(InitRange): Initialize expr2 to NulSym.
	Initialize byconst to NulSym.
	Initialize tokenNo, destok, exprtok, expr2tok, byconst to
	UnknownTokenNo.
	Initialize incrementquad to 0.
	(PutRangeForIncrement): New procedure.
	(PutRangeDesExpr2): New procedure.
	(InitForLoopBeginRangeCheck): Rewrite.
	(ForLoopBeginTypeCompatible): New procedure function.
	(CodeForLoopBegin): Call ForLoopBeginTypeCompatible and
	only code the for loop assignment if all the type checks
	succeed.

2024-02-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113889
	* gm2-compiler/M2ALU.mod (StringFitsArray): Add tokeno parameter
	to GetStringLength.
	(InitialiseArrayOfCharWithString): Add tokeno parameter to
	GetStringLength.
	(CheckGetCharFromString): Add tokeno parameter to GetStringLength.
	* gm2-compiler/M2Const.mod (constResolveViaMeta): Replace
	PutConstString with PutConstStringKnown.
	* gm2-compiler/M2GCCDeclare.mod (DeclareCharConstant): Add tokenno
	parameter and add assert.  Use tokenno to generate location.
	(DeclareStringConstant): Add tokenno and add asserts.
	Add tokenno parameter to calls to GetStringLength.
	(PromoteToString): Add assert and add tokenno parameter to
	GetStringLength.
	(PromoteToCString): Add assert and add tokenno parameter to
	GetStringLength.
	(DeclareConstString): New procedure function.
	(TryDeclareConst): Remove size local variable.
	Check IsConstStringKnown.
	Call DeclareConstString.
	(PrintString): New procedure.
	(PrintVerboseFromList): Call PrintString.
	(CheckResolveSubrange): Check IsConstStringKnown before creating
	subrange for char or issuing an error.
	* gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Add
	StringLengthOp, StringConvertM2nulOp, StringConvertCnulOp case
	clauses.
	(FindSize): Add assert IsConstStringKnown.
	(StringToChar): New variable tokenno.
	Add tokenno parameter to GetStringLength.
	(FoldStringLength): New procedure.
	(FoldStringConvertM2nul): New procedure.
	(FoldStringConvertCnul): New procedure.
	(CodeAddr): Add tokenno parameter.
	Replace CurrentQuadToken with tokenno.
	Add tokenno parameter to GetStringLength.
	(PrepareCopyString): Rewrite.
	(IsConstStrKnown): New procedure function.
	(FoldAdd): Detect conststring op2 and op3 which are known and
	concat.  Place result into op1.
	(FoldStandardFunction): Pass tokenno as a parameter to
	GetStringLength.
	(CodeXIndr): Rewrite comment.
	Rename op1 to left, op3 to right.
	Pass rightpos to GetStringLength.
	* gm2-compiler/M2Quads.def (QuadrupleOp): Add
	StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
	* gm2-compiler/M2Quads.mod (import): Remove MakeConstLitString.
	Add CopyConstString and PutConstStringKnown.
	(IsInitialisingConst): Add StringConvertCnulOp,
	StringConvertM2nulOp and StringLengthOp.
	(callRequestDependant): Replace MakeConstLitString with
	MakeConstString.
	(DeferMakeConstStringCnul): New procedure function.
	(DeferMakeConstStringM2nul): New procedure function.
	(CheckParameter): Add early return if the string const is unknown.
	(DescribeType): Add token parameter to GetStringLength.
	Check for IsConstStringKnown.
	(ManipulateParameters): Use DeferMakeConstStringCnul and
	DeferMakeConstStringM2nul.
	(MakeLengthConst): Remove and replace with...
	(DeferMakeLengthConst): ... this.
	(doBuildBinaryOp): Create ConstString and set it to contents
	unknown.
	Check IsConstStringKnown before generating error message.
	(WriteQuad): Add StringConvertCnulOp, StringConvertM2nulOp and
	StringLengthOp.
	(WriteOperator): Add StringConvertCnulOp, StringConvertM2nulOp and
	StringLengthOp.
	* gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
	StringConvertCnulOp, StringConvertM2nulOp and StringLengthOp.
	* gm2-compiler/NameKey.mod (LengthKey): Allow NulName to return 0.
	* gm2-compiler/P2SymBuild.mod (BuildString): Replace
	MakeConstLitString with MakeConstString.
	(DetermineType): Replace PutConstString with PutConstStringKnown.
	* gm2-compiler/SymbolTable.def (MakeConstVar): Tidy up comment.
	(MakeConstLitString): Remove.
	(MakeConstString): New procedure function.
	(MakeConstStringCnul): New procedure function.
	(MakeConstStringM2nul): New procedure function.
	(PutConstStringKnown): New procedure.
	(CopyConstString): New procedure.
	(IsConstStringKnown): New procedure function.
	(IsConstStringM2): New procedure function.
	(IsConstStringC): New procedure function.
	(IsConstStringM2nul): New procedure function.
	(IsConstStringCnul): New procedure function.
	(GetStringLength): Add token parameter.
	(PutConstString): Remove.
	(GetConstStringM2): Remove.
	(GetConstStringC): Remove.
	(GetConstStringM2nul): Remove.
	(GetConstStringCnul): Remove.
	(MakeConstStringC): Remove.
	* gm2-compiler/SymbolTable.mod (SymConstString): Remove
	M2Variant, NulM2Variant, CVariant, NulCVariant.
	Add Known.
	(CheckAnonymous): Replace $$ with __anon.
	(IsNameAnonymous): Replace $$ with __anon.
	(MakeConstVar): Detect whether the name is nul and treat as
	a temporary constant.
	(MakeConstLitString): Remove.
	(BackFillString): Remove.
	(InitConstString): Rewrite.
	(GetConstStringM2): Remove.
	(GetConstStringC): Remove.
	(GetConstStringContent): New procedure function.
	(GetConstStringM2nul): Remove.
	(GetConstStringCnul): Remove.
	(MakeConstStringCnul): Rewrite.
	(MakeConstStringM2nul): Rewrite.
	(MakeConstStringC): Remove.
	(MakeConstString): Rewrite.
	(PutConstStringKnown): New procedure.
	(CopyConstString): New procedure.
	(PutConstString): Remove.
	(IsConstStringKnown): New procedure function.
	(IsConstStringM2): New procedure function.
	(IsConstStringC): Rewrite.
	(IsConstStringM2nul): Rewrite.
	(IsConstStringCnul): Rewrite.
	(GetConstStringKind): New procedure function.
	(GetString): Check Known.
	(GetStringLength): Add token parameter and check Known.

2024-02-10  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113848
	* gm2-libs/SArgs.mod (GetArg): Re-write address arithmetic
	to avoid (void *) computation.

2024-02-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113730
	* gm2-compiler/M2Base.mod (IsUserType): New procedure function.
	(MixTypes): Use IsUserType instead of IsType before calling MixTypes.
	* gm2-compiler/M2GenGCC.mod (GetTypeMode): Remove and import from
	SymbolTable.
	(CodeBinaryCheck): Replace call to MixTypes with MixTypesBinary.
	(CodeBinary): Replace call to MixTypes with MixTypesBinary.
	(CodeIfLess): Replace MixTypes with ComparisonMixTypes.
	(CodeIfGre): Replace MixTypes with ComparisonMixTypes.
	(CodeIfLessEqu): Replace MixTypes with ComparisonMixTypes.
	(CodeIfGreEqu): Replace MixTypes with ComparisonMixTypes.
	(CodeIfEqu): Replace MixTypes with ComparisonMixTypes.
	(CodeIfNotEqu): Replace MixTypes with ComparisonMixTypes.
	(ComparisonMixTypes): New procedure function.
	* gm2-compiler/M2Quads.mod (BuildEndFor): Replace GenQuadO
	with GenQuadOtok and pass tokenpos for the operands to the AddOp
	and XIndrOp.
	(CheckRangeIncDec): Check etype against NulSym and dtype for a
	pointer and set etype to Address.
	(BuildAddAdrFunction): New variable opa.  Convert operand to an
	address and save result in opa.  Replace GenQuad with GenQuadOtok.
	(BuildSubAdrFunction): New variable opa.  Convert operand to an
	address and save result in opa.  Replace GenQuad with GenQuadOtok.
	(BuildDiffAdrFunction): New variable opa.  Convert operand to an
	address and save result in opa.  Replace GenQuad with GenQuadOtok.
	(calculateMultipicand): Replace GenQuadO with GenQuadOtok.
	(ConvertToAddress): New procedure function.
	(BuildDynamicArray): Convert index to address before adding to
	the base.
	* gm2-compiler/SymbolTable.def (GetTypeMode): New procedure function.
	* gm2-compiler/SymbolTable.mod (GetTypeMode): New procedure
	function implemented (moved from M2GenGCC.mod).
	* gm2-libs/SArgs.mod (GetArg): Replace cast to PtrToChar with ADDRESS.

2024-02-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111627
	PR modula2/112506
	* gm2-compiler/M2Comp.mod (Pass0CheckMod): Test IsDefImp before
	checking IsDefinitionForC.

2024-01-31  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Comp.mod (Pass0CheckMod): Tidy up comment.
	* gm2-compiler/P1Build.bnf (PossiblyExportIdent): Replace
	PushTF with PushTFtok.

2024-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Check.mod (dumpIndice): New procedure.
	(dumpIndex): New procedure.
	(dumptInfo): New procedure.
	(buildError4): Add comment and pass formal and actual to
	MetaError4.  Improve text describing error.
	(buildError2): Generate different error descriptions for
	the three error kinds.
	(checkConstMeta): Add block comment.  Add more meta checks
	and call doCheckPair to complete string const checking.
	Add tinfo parameter.
	(checkConstEquivalence): Add tinfo parameter.
	* gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
	Print the length of a const string.
	* gm2-compiler/M2GenGCC.mod (CodeParam): Remove parameters
	op1, op2 and op3.
	(doParam): Add paramtok parameter.  Use paramtok instead rather
	than CurrentQuadToken.
	(CodeParam): Rewrite.
	* gm2-compiler/M2Quads.mod (CheckProcedureParameters):
	Add comments explaining that const strings are not checked
	in M2Quads.mod.
	(FailParameter): Use MetaErrorT2 with tokpos rather than
	MetaError2.
	(doBuildBinaryOp): Assign OldPos and OperatorPos before the
	IF block.
	* gm2-compiler/SymbolTable.mod (PutConstString): Add call to
	InitWhereDeclaredTok.

2024-01-25  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/libc.def (lseek): Change the second parameter
	type to	CSSIZE_T and make the return value optional.

2024-01-24  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/113559
	* gm2-libs/FIO.mod (SetPositionFromBeginning): Convert pos into
	CSSIZE_T during call to lseek.
	(SetPositionFromEnd): Convert pos into CSSIZE_T during call to
	lseek.

2024-01-23  H.J. Lu  <hjl.tools@gmail.com>

	PR bootstrap/113554
	* mc/mc.flex (alloca): Don't redefine.
	(handleDate): Replace (long *)0 with (time_t *)0 when calling
	time.

2024-01-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2BasicBlock.mod (InitBasicBlocks): Rename
	ForeachScopeBlockDo to ForeachScopeBlockDo3.
	* gm2-compiler/M2Code.mod: Import ForeachScopeBlockDo2.
	(OptimizeScopeBlock): Call ForeachScopeBlockDo3 for
	procedures with three parameters and ForeachScopeBlockDo2
	for two parameters.
	(CodeBlock): Ditto.
	* gm2-compiler/M2GCCDeclare.mod (DeclareTypesConstantsProcedures):
	Rename ForeachScopeBlockDo to ForeachScopeBlockDo3.
	* gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): Remove Scope
	parameter.
	* gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): Remove Scope
	parameter.
	(MaybeDebugBuiltinMemcpy): Remove parameter tok.
	(MaybeDebugBuiltinMemset): Remove.
	(MakeCopyUse): Remove tokenno from call to
	MaybeDebugBuiltinMemcpy.
	(PerformFoldBecomes): Remove desloc and exprloc.
	(checkArrayElements): Remove location.  Remove virtpos
	as a parameter to MaybeDebugBuiltinMemcpy.
	(NoWalkProcedure): Add attribute unused.
	(CheckElementSetTypes): Remove parameter p.
	Remove CurrentQuadToken in call to MaybeDebugBuiltinMemcpy.
	Remove NoWalkProcedure from call to CheckElementSetTypes.
	Remove tokenno from call to MaybeDebugBuiltinMemcpy.
	* gm2-compiler/M2Optimize.mod (RemoveProcedures): Replace
	two parameter indirect procedure iterator with
	ForeachScopeBlockDo2.
	* gm2-compiler/M2SSA.mod: Remove ForeachScopeBlockDo.
	* gm2-compiler/M2Scope.def (ForeachScopeBlockDo2): New
	declaration.
	(ForeachScopeBlockDo): Rename ...
	(ForeachScopeBlockDo3): ... to this.
	(ScopeProcedure2): New declaration.
	* gm2-compiler/M2Scope.mod (ForeachScopeBlockDo2): New
	procedure.
	(ForeachScopeBlockDo): Rename ...
	(ForeachScopeBlockDo3): ... to this.

2024-01-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111956
	* Make-lang.in (host_mc_longreal): Remove.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): Remove.
	(M2C_LONGREAL_PPC64LE): Remove.
	* gm2-compiler/M2Options.def (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	* gm2-compiler/M2Options.mod (SetIBMLongDouble): New procedure.
	(GetIBMLongDouble): New procedure function.
	(SetIEEELongDouble): New procedure.
	(GetIEEELongDouble): New procedure function.
	(InitializeLongDoubleFlags): New procedure called during
	module block initialization.
	* gm2-gcc/m2configure.cc: Remove duplicate includes.
	(m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): Remove.
	(M2CLongRealIBM128): Remove.
	(M2CLongRealLongDouble): Remove.
	(M2CLongRealLongDoublePPC64LE): Remove.
	(TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2configure.h (m2configure_M2CLongRealFloat128): Remove.
	(m2configure_M2CLongRealIBM128): Remove.
	(m2configure_M2CLongRealLongDouble): Remove.
	(m2configure_M2CLongRealLongDoublePPC64LE): Remove.
	(m2configure_TargetIEEEQuadDefault): New function.
	* gm2-gcc/m2options.h (M2Options_SetIBMLongDouble): New prototype.
	(M2Options_GetIBMLongDouble): New prototype.
	(M2Options_SetIEEELongDouble): New prototype.
	(M2Options_GetIEEELongDouble): New prototype.
	* gm2-gcc/m2type.cc (build_m2_long_real_node): Re-implement using
	results of M2Options_GetIBMLongDouble and M2Options_GetIEEELongDouble.
	* gm2-lang.cc (gm2_langhook_handle_option): Add case
	OPT_mabi_ibmlongdouble and call M2Options_SetIBMLongDouble.
	Add case OPT_mabi_ieeelongdouble and call M2Options_SetIEEELongDouble.
	* gm2config.aci.in: Regenerate.
	* gm2spec.cc (lang_specific_driver): Remove block defined by
	M2C_LONGREAL_PPC64LE.
	Remove case OPT_mabi_ibmlongdouble.
	Remove case OPT_mabi_ieeelongdouble.

2024-01-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112946
	* gm2-compiler/M2GenGCC.mod (IsExpressionCompatible): Import.
	(ExpressionTypeCompatible): Import.
	(CodeStatement): Remove op1, op2, op3 parameters from CodeSetOr,
	CodeSetAnd, CodeSetSymmetricDifference, CodeSetLogicalDifference.
	(checkArrayElements): Rename op1 to des and op3 to expr.
	Use despos and exprpos instead of CurrentQuadToken.
	(checkRecordTypes): Rename op1 to des and op2 to expr.
	Use virtpos instead of CurrentQuadToken.
	(checkIncorrectMeta): Ditto.
	(checkBecomes): Rename op1 to des and op3 to expr.
	Use virtpos instead of CurrentQuadToken.
	(NoWalkProcedure): New procedure stub.
	(CheckBinaryExpressionTypes): New procedure function.
	(CheckElementSetTypes): New procedure function.
	(CodeBinarySet): Re-write.
	(FoldBinarySet): Re-write.
	(CodeSetOr): Remove parameters op1, op2 and op3.
	(CodeSetAnd): Ditto.
	(CodeSetLogicalDifference): Ditto.
	(CodeSetSymmetricDifference): Ditto.
	(CodeIfIn): Call CheckBinaryExpressionTypes and
	CheckElementSetTypes.
	* gm2-compiler/M2Quads.mod (BuildRotateFunction): Correct
	parameters to MakeVirtualTok to reflect parameter block
	passed to Rotate.

2024-01-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112920
	* gm2-compiler/M2GCCDeclare.mod (Group): New declaration.
	Import MakeSubrange, MakeConstVar, MakeConstLit and DivTrunc.
	(FreeGroup): New declaration.
	(GlobalGroup): New declaration.
	(ToBeSolvedByQuads): Remove.
	(NilTypedArrays): Remove.
	(PartiallyDeclared): Remove.
	(HeldByAlignment): Remove.
	(FinishedAlignment): Remove.
	(ToDoList): Remove.
	(DebugSet): Re-format.
	(DebugNumber): Re-format.
	(DebugSetNumbers): Reference sets using GlobalGroup.
	(AddSymToWatch): Re-format.
	(WatchIncludeList): Reference sets using GlobalGroup.
	(WatchRemoveList): Reference sets using GlobalGroup.
	(NewGroup): New procedure.
	(DisposeGroup): New procedure.
	(InitGroup): New procedure.
	(KillGroup): New procedure.
	(DupGroup): New procedure.
	(EqualGroup): New procedure.
	(LookupSet): New procedure.
	(CanDeclareTypePartially): Reference sets using GlobalGroup.
	(CompletelyResolved): Reference sets using GlobalGroup.
	(IsNilTypedArrays): Reference sets using GlobalGroup.
	(IsFullyDeclared): Reference sets using GlobalGroup.
	(IsPartiallyDeclared): Reference sets using GlobalGroup.
	(IsPartiallyOrFullyDeclared): Reference sets using GlobalGroup.
	(DeclareTypeConstFully): Reference sets using GlobalGroup.
	(bodyl): Remove.
	(Body): Use bodyt and to lookup the required set.
	(ForeachTryDeclare): Remove parameter l.  Lookup set instead.
	(DeclareOutstandingTypes): Add new rules setarraynul and setfully.
	Reference sets using GlobalGroup.
	(ActivateWatch): New procedure.
	(DeclareTypesConstantsProceduresInRange): Re-written to check
	group change.
	(DeclareTypesConstantsProcedures): Re-written to check
	group change.
	(DeclareBoolean): Reference sets using GlobalGroup.
	(DeclarePackedBoolean): Ditto.
	(DeclareDefaultConstants): Ditto.
	(FreeGroup): Initialized.
	(GlobalGroup): Ditto.
	* gm2-compiler/Sets.def (EqualSet): New procedure function.
	Remove export qualified list of identifiers.
	* gm2-compiler/Sets.mod (EqualSet): New procedure function.

2024-01-04  David Malcolm  <dmalcolm@redhat.com>

	* lang.opt.urls: New file, autogenerated by
	regenerate-opt-urls.py.

2023-12-15  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112946
	* gm2-compiler/M2Check.mod (checkConstMeta): New procedure
	function.
	(checkConstEquivalence): New procedure function.
	(doCheckPair): Add call to checkConstEquivalence.
	* gm2-compiler/M2GenGCC.mod (ResolveConstantExpressions): Call
	FoldBecomes with reduced parameters.
	(FoldBecomes): Re-write.
	(TryDeclareConst): New procedure.
	(RemoveQuads): New procedure.
	(DeclaredOperandsBecomes): New procedure function.
	(TypeCheckBecomes): New procedure function.
	(PerformFoldBecomes): New procedure.
	* gm2-compiler/M2Range.mod (FoldAssignment): Call
	AssignmentTypeCompatible to check des expr compatibility.
	* gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Remove
	parameter lst.
	(FilterCheckReadBeforeInitQuad): Remove parameter lst.
	(CheckReadBeforeInitFirstBasicBlock): Remove parameter lst.
	Call FilterCheckReadBeforeInitQuad without lst.

2023-12-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112921
	* gm2-libs-iso/ConvStringShort.def: New file.
	* gm2-libs-iso/ConvStringShort.mod: New file.
	* gm2-libs-iso/ShortConv.def: New file.
	* gm2-libs-iso/ShortConv.mod: New file.
	* gm2-libs-iso/ShortMath.def: New file.
	* gm2-libs-iso/ShortMath.mod: New file.
	* gm2-libs-iso/ShortStr.def: New file.
	* gm2-libs-iso/ShortStr.mod: New file.

2023-12-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112984
	* gm2-libs-coroutines/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs-iso/ClientSocket.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/IOChan.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/IOLink.mod: Remove redundant import of IOChan and SYSTEM.
	* gm2-libs-iso/IOResult.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/LongIO.mod: Remove redundant import of writeString.
	* gm2-libs-iso/LongWholeIO.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/M2RTS.mod: Remove redundant import of ADDRESS.
	* gm2-libs-iso/MemStream.mod: Remove redundant import of ADDRESS.
	* gm2-libs-iso/RTdata.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RTfio.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RTgen.mod: Remove redundant import of DeviceTablePtr.
	* gm2-libs-iso/RealIO.mod: Remove redundant import of writeString.
	* gm2-libs-iso/RndFile.mod: Remove redundant import of SYSTEM.
	* gm2-libs-iso/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs-iso/ShortWholeIO.mod: Remove redundant import of IOConsts.
	* gm2-libs-iso/TextIO.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/TextUtil.mod: Remove redundant import of IOChan.
	* gm2-libs-iso/WholeIO.mod: Remove redundant import of IOChan.
	* gm2-libs-log/BitByteOps.mod: Remove redundant import of BYTE.
	* gm2-libs-log/FileSystem.mod: Remove redundant import of BYTE and ADDRESS.
	* gm2-libs-log/InOut.mod: Remove redundant import of String.
	* gm2-libs-log/RealConversions.mod: Remove redundant import of StringToLongreal.
	* gm2-libs/FIO.mod: Remove redundant import of SIZE.
	* gm2-libs/FormatStrings.mod: Remove redundant import of String
	and ConCatChar.
	* gm2-libs/IO.mod: Remove redundant import of SIZE.
	* gm2-libs/Indexing.mod: Remove redundant import of ADDRESS.
	* gm2-libs/M2Dependent.mod: Remove redundant import of SIZE.
	* gm2-libs/M2RTS.mod: Remove redundant import of ADDRESS.
	* gm2-libs/OptLib.mod: Remove redundant import of DynamicStrings.
	* gm2-libs/SYSTEM.mod: Remove redundant import of memcpy.
	* gm2-libs/StringConvert.mod: Remove redundant import of String.

2023-12-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112893
	* gm2-compiler/M2Base.mod (Ass): Extend array to include proc row
	and column.  Allow PIM to assign cardinal variables to address
	variables.
	(Expr): Ditto.
	(Comp): Ditto.
	* gm2-compiler/M2Check.mod (getSType): New procedure function.
	Replace all occurances of GetSType with getSType.
	* gm2-compiler/M2GenGCC.mod (CodeParam): Rewrite format specifier
	error message.
	* gm2-compiler/M2Quads.mod (CheckProcTypeAndProcedure): Add tokno
	parameter.
	* gm2-compiler/M2Range.def (InitTypesParameterCheck): Add tokno
	parameter.
	(InitParameterRangeCheck): Add tokno parameter.
	Remove EXPORT QUALIFIED list.
	(InitParameterRangeCheck): Add tokno parameter.
	* gm2-compiler/M2Range.mod (InitTypesParameterCheck): Add tokno
	parameter and pass tokno to PutRangeParam.
	(InitParameterRangeCheck): Add tokno parameter and pass tokno to
	PutRangeParam.
	(PutRangeParam): Add tokno parameter and assign to tokenNo.
	(FoldTypeParam): Rewrite format string.

2023-12-06  Thomas Schwinge  <thomas@codesourcery.com>

	* lang.opt (-isysroot): New.

2023-12-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112865
	* gm2-compiler/M2Quads.mod (BuildReFunction): Use
	GetDType to retrieve the type of the operand when
	converting the complex type to its scalar equivalent.
	(BuildImFunction): Use GetDType to retrieve the type of the
	operand when converting the complex type to its scalar
	equivalent.

2023-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* mc/mc.flex [__GNUC__]: Define alloca as __builtin_alloca.
	(handleDate): Use strchr instead of index.

2023-12-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/112825
	* tools-src/makeSystem: Change all occurrences of -c to -S.

2023-11-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/102989
	* gm2-compiler/SymbolTable.mod (OverflowZType): Import from m2expr.
	(ConstantStringExceedsZType): Remove import.
	(GetConstLitType): Replace ConstantStringExceedsZType with OverflowZType.
	* gm2-gcc/m2decl.cc (m2decl_ConstantStringExceedsZType): Remove.
	(m2decl_BuildConstLiteralNumber): Re-write.
	* gm2-gcc/m2decl.def (ConstantStringExceedsZType): Remove.
	* gm2-gcc/m2decl.h (m2decl_ConstantStringExceedsZType): Remove.
	* gm2-gcc/m2expr.cc (m2expr_StrToWideInt): Rewrite to check overflow.
	(m2expr_OverflowZType): New function.
	(ToWideInt): New function.
	* gm2-gcc/m2expr.def (OverflowZType): New procedure function declaration.
	* gm2-gcc/m2expr.h (m2expr_OverflowZType): New prototype.

2023-10-27  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111530
	* gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Re-format.
	(cgetopt_cgetopt_long_only): Re-format.
	(cgetopt_SetOption):  Re-format and assign flag to NULL
	if name is also NULL.
	* gm2-libs/GetOpt.def (AddLongOption): Add index parameter
	and change flag to be a VAR parameter rather than a pointer.
	(GetOptLong): Re-format.
	(GetOpt): Correct comment.
	* gm2-libs/GetOpt.mod: Re-write to rely on cgetopt rather
	than implement long option creation in GetOpt.
	* gm2-libs/cgetopt.def (SetOption): has_arg type is INTEGER.

2023-10-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111955
	* gm2-gcc/m2builtins.cc (gm2_isnan_node): New tree.
	(DoBuiltinIsnan): New function.
	(m2builtins_BuiltInIsnan): New function.
	(m2builtins_init): Initialize gm2_isnan_node.
	(list_of_builtins): Add define for __builtin_isnan.
	* gm2-libs-ch/wrapc.c (wrapc_isnan): New function.
	(wrapc_isnanf): New function.
	(wrapc_isnanl): New function.
	* gm2-libs/Builtins.def (isnanf): New procedure function.
	(isnan): New procedure function.
	(isnanl): New procedure function.
	* gm2-libs/Builtins.mod:
	* gm2-libs/wrapc.def (isnan): New function.
	(isnanf): New function.
	(isnanl): New function.

2023-10-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/M2Dependent.mod (InitDependencyList): New
	procedure.
	(CreateModule): Call InitDependencyList to initialize
	all fields of DependencyList.

2023-10-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/M2Dependent.mod (CreateModule): Initialize all
	dependency fields for DependencyList.

2023-10-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111756
	* Make-lang.in (CM2DEP): New define conditionally set if
	($(CXXDEPMODE),depmode=gcc3).
	(GM2_1): Use $(CM2DEP).
	(m2/gm2-gcc/%.o): Ensure $(@D)/$(DEPDIR) is created.
	Add $(CM2DEP) to the $(COMPILER) command and use $(POSTCOMPILE).
	(m2/gm2-gcc/m2configure.o): Ditto.
	(m2/gm2-lang.o): Ditto.
	(m2/m2pp.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(mcflex.o): Ditto.
	(m2/gm2-libs-boot/M2RTS.o): Ditto.
	(m2/gm2-libs-boot/%.o): Ditto.
	(m2/gm2-libs-boot/%.o): Ditto.
	(m2/gm2-libs-boot/RTcodummy.o): Ditto.
	(m2/gm2-libs-boot/RTintdummy.o): Ditto.
	(m2/gm2-libs-boot/wrapc.o): Ditto.
	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
	(m2/gm2-libs-boot/choosetemp.o): Ditto.
	(m2/gm2-libs-boot/errno.o): Ditto.
	(m2/gm2-libs-boot/dtoa.o): Ditto.
	(m2/gm2-libs-boot/ldtoa.o): Ditto.
	(m2/gm2-libs-boot/termios.o): Ditto.
	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
	(m2/gm2-libs-boot/SysStorage.o): Ditto.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/m2flex.o): Ditto.
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-compiler/m2flex.o): Ditto.
	(m2/gm2-libs-iso/%.o): Ditto.
	(m2/gm2-libs/%.o): Ditto.
	(m2/gm2-libs/%.o): Ditto.
	(m2/gm2-libs/choosetemp.o): Ditto.
	(m2/boot-bin/mklink$(exeext)): Ditto.
	(m2/pge-boot/%.o): Ditto.
	(m2/pge-boot/%.o): Ditto.
	(m2/gm2-compiler/%.o): Ensure $(@D)/$(DEPDIR) is created and use
	$(POSTCOMPILE).
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-libs-iso/%.o): Ditto.
	(m2/gm2-libs/%.o): Ditto.
	* README: Purge out of date info.
	* gm2-compiler/M2Comp.mod (MakeSaveTempsFileNameExt): Import.
	(OnExitDelete): Import.
	(GetModuleDefImportStatementList): Import.
	(GetModuleModImportStatementList): Import.
	(GetImportModule): Import.
	(IsImportStatement): Import.
	(IsImport): Import.
	(GetImportStatementList): Import.
	(File): Import.
	(Close): Import.
	(EOF): Import.
	(IsNoError): Import.
	(WriteLine): Import.
	(WriteChar): Import.
	(FlushOutErr): Import.
	(WriteS): Import.
	(OpenToRead): Import.
	(OpenToWrite): Import.
	(ReadS): Import.
	(WriteS): Import.
	(GetM): Import.
	(GetMM): Import.
	(GetDepTarget): Import.
	(GetMF): Import.
	(GetMP): Import.
	(GetObj): Import.
	(GetMD): Import.
	(GetMMD): Import.
	(GenerateDefDependency): New procedure.
	(GenerateDependenciesFromImport): New procedure.
	(GenerateDependenciesFromList): New procedure.
	(GenerateDependencies): New procedure.
	(Compile): Re-write.
	(compile): Re-format.
	(CreateFileStem): New procedure function.
	(DoPass0): Re-write.
	(IsLibrary): New procedure function.
	(IsUnique): New procedure function.
	(Append): New procedure.
	(MergeDep): New procedure.
	(GetRuleTarget): New procedure function.
	(ReadDepContents): New procedure function.
	(WriteDep): New procedure.
	(WritePhonyDep): New procedure.
	(WriteDepContents): New procedure.
	(CreateDepFilename): New procedure function.
	(Pass0CheckDef): New procedure function.
	(Pass0CheckMod): New procedure function.
	(DoPass0): Re-write.
	(DepContent): New variable.
	(DepOutput): New variable.
	(BaseName): New procedure function.
	* gm2-compiler/M2GCCDeclare.mod (PrintTerse): Handle IsImport.
	Replace IsGnuAsmVolatile with IsGnuAsm.
	* gm2-compiler/M2Options.def (EXPORT QUALIFIED): Remove list.
	(SetM): New procedure.
	(GetM): New procedure function.
	(SetMM): New procedure.
	(GetMM): New procedure function.
	(SetMF): New procedure.
	(GetMF): New procedure function.
	(SetPPOnly): New procedure.
	(GetB): New procedure function.
	(SetMD): New procedure.
	(GetMD): New procedure function.
	(SetMMD): New procedure.
	(GetMMD): New procedure function.
	(SetMQ): New procedure.
	(SetMT): New procedure.
	(GetMT): New procedure function.
	(GetDepTarget): New procedure function.
	(SetMP): New procedure.
	(GetMP): New procedure function.
	(SetObj): New procedure.
	(SetSaveTempsDir): New procedure.
	* gm2-compiler/M2Options.mod (SetM): New procedure.
	(GetM): New procedure function.
	(SetMM): New procedure.
	(GetMM): New procedure function.
	(SetMF): New procedure.
	(GetMF): New procedure function.
	(SetPPOnly): New procedure.
	(GetB): New procedure function.
	(SetMD): New procedure.
	(GetMD): New procedure function.
	(SetMMD): New procedure.
	(GetMMD): New procedure function.
	(SetMQ): New procedure.
	(SetMT): New procedure.
	(GetMT): New procedure function.
	(GetDepTarget): New procedure function.
	(SetMP): New procedure.
	(GetMP): New procedure function.
	(SetObj): New procedure.
	(SetSaveTempsDir): New procedure.
	* gm2-compiler/M2Preprocess.def (PreprocessModule): New parameters
	topSource and outputDep.  Re-write.
	(MakeSaveTempsFileNameExt): New procedure function.
	(OnExitDelete): New procedure function.
	* gm2-compiler/M2Preprocess.mod (GetM): Import.
	(GetMM): Import.
	(OnExitDelete): Add debugging message.
	(RemoveFile): Add debugging message.
	(BaseName): Remove.
	(BuildCommandLineExecute): New procedure function.
	* gm2-compiler/M2Search.def (SetDefExtension): Remove unnecessary
	spacing.
	* gm2-compiler/SymbolTable.mod (GetSymName): Handle ImportSym and
	ImportStatementSym.
	* gm2-gcc/m2options.h (M2Options_SetMD): New function.
	(M2Options_GetMD): New function.
	(M2Options_SetMMD): New function.
	(M2Options_GetMMD): New function.
	(M2Options_SetM): New function.
	(M2Options_GetM): New function.
	(M2Options_SetMM): New function.
	(M2Options_GetMM): New function.
	(M2Options_GetMQ): New function.
	(M2Options_SetMF): New function.
	(M2Options_GetMF): New function.
	(M2Options_SetMT): New function.
	(M2Options_SetMP): New function.
	(M2Options_GetMP): New function.
	(M2Options_GetDepTarget): New function.
	* gm2-lang.cc (gm2_langhook_init): Correct comment case.
	(gm2_langhook_init_options): Add case OPT_M and
	OPT_MM.
	(gm2_langhook_post_options): Add case OPT_MF, OPT_MT,
	OPT_MD and OPT_MMD.
	* lang-specs.h (M2CPP): Pass though MF option.
	(MDMMD): New define.  Add MDMMD to "@modula-2".

2023-10-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2.tags): New rule.

2023-10-11  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GCCDeclare.mod (DeclareSubrange): Check
	the base type of the subrange against the ZTYPE and call
	DeclareSubrangeNarrow if necessary.
	(DeclareSubrangeNarrow): New procedure function.

2023-10-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111675
	* gm2-compiler/M2CaseList.mod (appendTree): Replace
	InitStringCharStar with InitString.
	* gm2-compiler/M2GCCDeclare.mod: Import AreConstantsEqual.
	(DeclareSubrange): Add zero alignment test and call
	BuildSmallestTypeRange if necessary.
	(WalkSubrangeDependants): Walk the align expression.
	(IsSubrangeDependants): Test the align expression.
	* gm2-compiler/M2Quads.mod (BuildStringAdrParam): Correct end name.
	* gm2-compiler/P2SymBuild.mod (BuildTypeAlignment): Allow subranges
	to be zero aligned (packed).
	* gm2-compiler/SymbolTable.mod (Subrange): Add Align field.
	(MakeSubrange): Set Align to NulSym.
	(PutAlignment): Assign Subrange.Align to align.
	(GetAlignment): Return Subrange.Align.
	* gm2-gcc/m2expr.cc (noBitsRequired): Rewrite.
	(calcNbits): Rename ...
	(m2expr_calcNbits): ... to this and test for negative values.
	(m2expr_BuildTBitSize): Replace calcNBits with m2expr_calcNbits.
	* gm2-gcc/m2expr.def (calcNbits): Export.
	* gm2-gcc/m2expr.h (m2expr_calcNbits): New prototype.
	* gm2-gcc/m2type.cc (noBitsRequired): Remove.
	(m2type_BuildSmallestTypeRange): Call m2expr_calcNbits.
	(m2type_BuildSubrangeType): Create range_type from
	build_range_type (type, lowval, highval).

2023-09-29  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (EndBuildFor): Improve
	block comments.
	* gm2-libs-iso/SysClock.mod (ExtractDate): Replace
	testDays with yearOfDays.  New local variable monthOfDays.

2023-09-26  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111510
	* gm2-compiler/M2GenGCC.mod (IsExportedGcc): Minor spacing changes.
	(BuildTrashTreeFromInterface): Minor spacing changes.
	* gm2-compiler/M2Options.mod (GetRuntimeModuleOverride): Call
	string to generate a nul terminated C style string.
	* gm2-compiler/M2Quads.mod (BuildStringAdrParam): New procedure.
	(BuildM2InitFunction): Replace inline parameter generation with
	calls to BuildStringAdrParam.

2023-09-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (host_mc_longreal): Detect hosting on powerpc64le
	and if so use __float128 for longreal in mc.
	(MC_ARGS): Append host_mc_longreal.
	* config-make.in (TEST_TARGET_CPU_DEFAULT): New variable.
	(TEST_HOST_CPU_DEFAULT): New variable.
	* configure: Regenerate.
	* configure.ac (M2C_LONGREAL_FLOAT128): New define set if target
	is powerpc64le.
	(M2C_LONGREAL_PPC64LE): New define set if target is powerpc64le.
	* gm2-compiler/M2GCCDeclare.mod: Correct comment case.
	* gm2-compiler/M2GenGCC.mod (MaybeDebugBuiltinAlloca): Call
	SetLastFunction for the builtin function call.
	(MaybeDebugBuiltinMemcpy): Call SetLastFunction for the builtin
	function call.
	(MaybeDebugBuiltinMemset): New procedure function.
	(MakeCopyUse): Use GNU formatting.
	(UseBuiltin): Rewrite to check BuiltinExists.
	(CodeDirectCall): Rewrite to check BuiltinExists and call
	SetLastFunction.
	(CodeMakeAdr): Re-format.
	* gm2-compiler/M2Options.def (SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Options.mod (SetUninitVariableChecking): Allow
	"cond" to switch UninitVariableConditionalChecking separately.
	(SetDebugBuiltins): New procedure.
	* gm2-compiler/M2Quads.def (BuildFunctionCall): Add parameter
	ConstExpr.
	* gm2-compiler/M2Quads.mod (BuildRealProcedureCall): Add parameter
	to BuildRealFuncProcCall.
	(BuildRealFuncProcCall): Add ConstExpr parameter.  Pass ConstExpr
	to BuildFunctionCall.
	(BuildFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFunctionCall.
	(BuildConstFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildFunctionCall.
	(BuildRealFunctionCall): Add parameter ConstExpr.  Pass ConstExpr to
	BuildRealFuncProcCall.
	* gm2-compiler/P3Build.bnf (SetOrDesignatorOrFunction): Pass FALSE
	to BuildFunctionCall.
	(AssignmentOrProcedureCall): Pass FALSE to BuildFunctionCall.
	* gm2-compiler/SymbolTable.def (IsProcedureBuiltinAvailable): New
	procedure function.
	* gm2-compiler/SymbolTable.mod (CanUseBuiltin): New procedure
	function.
	(IsProcedureBuiltinAvailable): New procedure function.
	* gm2-gcc/m2builtins.cc (DEBUGGING): Undef.
	(bf_category): New enum type.
	(struct builtin_function_entry): New field function_avail.
	(m2builtins_BuiltInMemCopy): Rename from ...
	(m2builtins_BuiltinMemCopy): ... this.
	(DoBuiltinMemSet): New function.
	(m2builtins_BuiltinMemSet): New function.
	(do_target_support_exists): New function.
	(target_support_exists): New function.
	(m2builtins_BuiltinExists): Return true or false.
	(m2builtins_BuildBuiltinTree): Rename local variables.
	Replace long_double_type_node with GetM2LongRealType.
	(m2builtins_init): Use GetM2LongRealType rather than
	long_double_type_node.
	* gm2-gcc/m2builtins.def (BuiltInMemCopy): Rename to ...
	(BuiltinMemCopy): ... this.
	(BuiltinMemSet): New procedure function.
	* gm2-gcc/m2builtins.h (m2builtins_BuiltInMemCopy): Rename to ...
	(m2builtins_BuiltinMemCopy): ... this.
	(m2builtins_BuiltinMemSet): New procedure function.
	* gm2-gcc/m2configure.cc (m2configure_M2CLongRealFloat128): New
	procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.def (M2CLongRealFloat128): New procedure function.
	(M2CLongRealIBM128): New procedure function.
	(M2CLongRealLongDouble): New procedure function.
	(M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2configure.h (m2configure_FullPathCPP): New procedure function.
	(m2configure_M2CLongRealFloat128): New procedure function.
	(m2configure_M2CLongRealIBM128): New procedure function.
	(m2configure_M2CLongRealLongDouble): New procedure function.
	(m2configure_M2CLongRealLongDoublePPC64LE): New procedure function.
	* gm2-gcc/m2convert.cc (m2convert_BuildConvert): Use convert_loc.
	* gm2-gcc/m2options.h (M2Options_SetDebugBuiltins): New function.
	* gm2-gcc/m2statement.cc (m2statement_BuildAssignmentTree): Set
	TREE_USED to true.
	(m2statement_BuildGoto):Set TREE_USED to true.
	(m2statement_BuildParam): Set TREE_USED to true.
	(m2statement_BuildBuiltinCallTree): New function.
	(m2statement_BuildFunctValue): Set TREE_USED to true.
	* gm2-gcc/m2statement.def (BuildBuiltinCallTree): New procedure function.
	* gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): New
	procedure function.
	* gm2-gcc/m2treelib.cc (m2treelib_DoCall0): Remove spacing.
	(m2treelib_DoCall1): Remove spacing.
	(m2treelib_DoCall2): Remove spacing.
	(m2treelib_DoCall3): Remove spacing.
	(add_stmt): Rename parameter.
	* gm2-gcc/m2type.cc (build_set_type): Remove spacing.
	(build_m2_specific_size_type): Remove spacing.
	(finish_build_pointer_type): Remove spacing.
	(m2type_BuildVariableArrayAndDeclare): Remove spacing.
	(build_m2_short_real_node): Remove spacing.
	(build_m2_real_node): Remove spacing.
	(build_m2_long_real_node): Use float128_type_node if
	M2CLongRealFloat128 is set.
	(build_m2_ztype_node): Remove spacing.
	(build_m2_long_int_node): Remove spacing.
	(build_m2_long_card_node): Remove spacing.
	(build_m2_short_int_node): Remove spacing.
	(build_m2_short_card_node): Remove spacing.
	(build_m2_iso_loc_node): Remove spacing.
	(m2type_SameRealType): New function.
	(m2type_InitBaseTypes): Create m2_c_type_node using
	m2_long_complex_type_node.
	(m2type_SetAlignment): Tidy up comment.
	* gm2-gcc/m2type.def (SameRealType):  New procedure function.
	* gm2-gcc/m2type.h (m2type_SameRealType): New procedure function.
	* gm2-lang.cc (gm2_langhook_type_for_mode): Build long complex
	node from m2 language specific long double node.
	* gm2-libs-log/RealConversions.mod (IsNan): New procedure
	function.
	(doPowerOfTen): Re-implement.
	* gm2-libs/Builtins.mod: Add newline.
	* gm2-libs/DynamicStrings.def (ReplaceChar): New procedure function.
	* gm2-libs/DynamicStrings.mod (ReplaceChar): New procedure function.
	* gm2config.aci.in (M2C_LONGREAL_FLOAT128): New config value.
	(M2C_LONGREAL_PPC64LE): New config value.
	* gm2spec.cc (lang_specific_driver): New local variable
	need_default_mabi set to default value depending upon
	M2C_LONGREAL_PPC64LE and M2C_LONGREAL_FLOAT128.
	* lang.opt (Wcase-enum): Moved to correct section.
	* m2pp.cc (m2pp_real_type): New function.
	(m2pp_type): Call m2pp_real_type.
	(m2pp_print_mode): New function.
	(m2pp_simple_type): Call m2pp_simple_type.
	(m2pp_float): New function.
	(m2pp_expression): Call m2pp_float.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFIO.h: Rebuild.
	* mc-boot/GIO.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/GmcOptions.cc: Rebuild.
	* mc-boot/GmcOptions.h: Rebuild.
	* mc/decl.mod: Rebuild.
	* mc/mcOptions.def (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.
	* mc/mcOptions.mod (getCRealType): New procedure function.
	(getCLongRealType): New procedure function.
	(getCShortRealType): New procedure function.

2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2CaseList.mod (NewRanges): Add block
	comment.
	(NewSet): Add block comment.
	(DisplayRanges): Add block comment.
	(IncludeElement): Add block comment.
	(IncludeElements): Add block comment.
	(appendString): Add block comment.
	(appendEnum): Add block comment.
	(appendTree): Add block comment.
	(SubrangeErrors): Add block comment.

2023-09-14  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2CaseList.mod (appendString): New procedure.
	(appendEnum): Re-implement.
	(NoOfSetElements): New procedure function.
	(isPrintableChar): New procedure function.
	(appendTree): New procedure.
	(SubrangeErrors): New procedure.
	(EmitMissingRangeErrors): Call SubrangeErrors if appropriate.
	* gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid
	using a temporary variable once.
	(IsLocalVar): Comment out.
	(RecordContainsVarient): Remove fieldtype.
	(GenerateNoteFlow): Remove lst parameter.
	(CheckDeferredRecordAccess): Remove lst parameter.
	(CheckUnary): Remove lst parameter.  Remove procSym.
	(CheckBinary): Remove lst parameter.  Remove procSym.
	(CheckIndrX): Remove lst parameter.  Remove procSym.
	(CheckXIndr): Remove bblst and procSym parameters.
	(CheckRecordField): Remove procSym, op1tok, op2tok and op2.
	(CheckBecomes): Remove procSym and bblst.
	(CheckComparison): Remove procSym and bblst.
	(CheckAddr): Remove procSym parameter.
	* gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function.
	(m2expr_CSTIntToChar): New function.
	* gm2-gcc/m2expr.def (CSTIntToString): New procedure function
	declaration.
	(CSTIntToChar): New procedure function declaration.
	* gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype.
	(m2expr_CSTIntToString): New prototype.

2023-09-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
	(GM2_ISO_FLAGS): Add -Wcase-enum.
	* gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
	singular or plural start text prior to the enum list.
	Remove unused parameter tokenno.
	(EmitMissingRangeErrors): New procedure.
	(MissingCaseBounds): Call EmitMissingRangeErrors.
	(MissingCaseStatementBounds): Call EmitMissingRangeErrors.
	* gm2-libs-iso/TextIO.mod: Fix spacing.

2023-09-12  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2CaseList.def (PushCase): Rename parameters
	r to rec and v to va.  Add expr parameter.
	(MissingCaseStatementBounds): New procedure function.
	* gm2-compiler/M2CaseList.mod (RangePair): Add expression.
	(PushCase): Rename parameters r to rec and v to va.  Add
	expr parameter.
	(RemoveRange): New procedure function.
	(SubBitRange): Detect the case when the range in the set matches
	lo..hi.
	(CheckLowHigh): New procedure.
	(ExcludeCaseRanges): Rename parameter c to cd.  Rename local
	variables q to cl and r to rp.
	(High): Remove.
	(Low): Remove.
	(DoEnumValues): Remove.
	(IncludeElement): New procedure.
	(IncludeElements): New procedure.
	(ErrorRangeEnum): New procedure.
	(ErrorRange): Remove.
	(ErrorRanges): Remove.
	(appendEnum): New procedure.
	(appendStr): New procedure.
	(EnumerateErrors): New procedure.
	(MissingCaseBounds): Re-implement.
	(InRangeList): Remove.
	(MissingCaseStatementBounds): New procedure function.
	(checkTypes): Re-format.
	(inRange): Re-format.
	(TypeCaseBounds): Re-format.
	* gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
	case label list.
	* gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
	with ForeachLocalSymDo.
	* gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
	(CaseEnumChecking): New variable.
	* gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
	(Module initialization): set CaseEnumChecking to FALSE.
	* gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
	* gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
	clause.
	(BuildCaseStart): Pass selector expression to InitCaseBounds.
	(CheckUninitializedVariablesAreUsed): Remove.
	(IsInlineWithinBlock): Remove.
	(AsmStatementsInBlock): Remove.
	(CheckVariablesInBlock): Remove commented code.
	(BeginVarient): Pass NulSym to InitCaseBounds.
	* gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
	errorGenerated.  Add call to MissingCaseStatementBounds.
	* gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
	* gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
	(InitFunction): Add else clause.
	(InitConvert): Add else clause.
	(InitLeaf): Add else clause.
	(InitBinary): Add else clause.
	(InitUnary): Add else clause.
	* gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
	(ForeachFieldEnumerationDo): Re-write comment stating alphabetical
	traversal.
	* gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
	Add case label for EnumerationSym and call GetItemFromList.
	(ForeachFieldEnumerationDo): Re-write comment stating alphabetical
	traversal.
	(SymEnumeration): Add ListOfFields used for declaration order.
	(MakeEnumeration): Initialize ListOfFields.
	(PutFieldEnumeration): Include Field in ListOfFields.
	* gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
	function.
	* gm2-lang.cc (gm2_langhook_handle_option): Add
	OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
	* lang.opt (Wcase-enum): Add.

2023-09-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111330
	* gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
	case labels LogicalDiffOp, DummyOp, OptParamOp and
	InitAddressOp.

2023-08-20  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/111085
	* gm2-libs/Builtins.def (nexttoward): Alter the second
	parameter to LONGREAL.
	(nexttowardf): Alter the second	parameter to LONGREAL.
	* gm2-libs/Builtins.mod (nexttoward): Alter the second
	parameter to LONGREAL.
	(nexttowardf): Alter the second	parameter to LONGREAL.
	* gm2-libs/cbuiltin.def (nexttoward): Alter the second
	parameter to LONGREAL.
	(nexttowardf): Alter the second	parameter to LONGREAL.

2023-08-13  Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in: Update suffix spellings to use 'soext'.
	Add libc to the plugin link.

2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (EpochTime): New procedure.
	(GetClock): Call EpochTime if the C time functions are
	unavailable.
	* gm2-libs-iso/wrapclock.def (istimezone): New function
	definition.

2023-08-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108119
	* Make-lang.in (M2RTE_PLUGIN_SO): Assigned to
	plugin/m2rte$(exeext).so if enable_plugin is yes.
	(m2.all.cross): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2.all.encap): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2.install-plugin): Add dummy rule when enable_plugin
	is not yes.
	(plugin/m2rte$(exeext).so): Add dummy rule when enable_plugin
	is not yes.
	(m2/stage2/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	(m2/stage1/cc1gm2$(exeext)): Replace plugin/m2rte$(soext) with
	$(M2RTE_PLUGIN_SO).
	* gm2spec.cc (lang_specific_driver): Set need_plugin to false
	by default.

2023-08-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod (GetClock): Test GetTimespec
	return value.
	(SetClock): Test SetTimespec return value.
	* gm2-libs-iso/wrapclock.def (GetTimespec): Add integer
	return type.
	(SetTimespec): Add integer return type.

2023-08-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110779
	* gm2-libs-iso/SysClock.mod: Re-implement using wrapclock.
	* gm2-libs-iso/wrapclock.def: New file.

2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110161
	* gm2-compiler/M2Check.mod (checkProcTypeEquivalence): New
	procedure function.
	(checkTypeKindEquivalence): Call checkProcTypeEquivalence
	if either left or right is a proc type.
	* gm2-compiler/M2Quads.mod (BuildRelOp): Create
	combinedTok prior to creating the range check quadruple.
	Use combinedTok when creating the range check quadruple.

2023-08-01  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110865
	* gm2-compiler/M2Quads.mod (BuildDesignatorArray):
	Rename t as type and d as dim.  New variable result.
	Allow constants of an array type to be indexed.

2023-07-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110174
	* gm2-compiler/M2GCCDeclare.def (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GCCDeclare.mod (PromoteToCString): New procedure
	function.
	* gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Call
	skip_const_decl before chaining the parameter value.
	Use PromoteToCString to ensure the string is nul terminated.
	(CodeInline): Remove all parameters and replace with quad.
	Use GetQuadOtok to get operand token numbers.
	Remove call to DeclareConstant and replace it with PromoteToCString.
	* gm2-compiler/M2Quads.def (BuildInline): Rename into ...
	(BuildAsm): ... this.
	* gm2-compiler/M2Quads.mod: (BuildInline): Rename into ...
	(BuildAsm): ... this.
	(BuildAsmElement): Add debugging.
	* gm2-compiler/P1Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P2Build.bnf: Remove import of BuildInline.
	* gm2-compiler/P3Build.bnf: Remove import of BuildInline and
	import BuildAsm.
	* gm2-compiler/PHBuild.bnf: Remove import of BuildInline.
	* gm2-libs-iso/SysClock.mod (foo): Remove.
	* gm2-libs/FIO.mod (BufferedRead): Rename parameter a to dest.
	Rename variable t to src.
	* m2pp.cc (pf): Correct block comment.
	(pe): Correct block comment.
	(m2pp_asm_expr): New function.
	(m2pp_statement): Call m2pp_asm_expr.

2023-07-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110631
	* gm2-libs/FIO.def (ReadAny): Correct comment as
	HIGH (a) + 1 is number of bytes.
	(WriteAny): Correct comment as HIGH (a) + 1 is number of
	bytes.
	* gm2-libs/FIO.mod (ReadAny): Correct comment as
	HIGH (a) + 1 is number of bytes.  Also pass HIGH (a) + 1
	to BufferedRead.
	(WriteAny): Correct comment as HIGH (a) + 1 is number of
	bytes.	Also pass HIGH (a) + 1 to BufferedWrite.
	(BufferedWrite): Rename parameter a to src, rename variable
	t to dest.  Correct parameter order to memcpy.

2023-07-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2SymInit.mod (IsExempt): Remove parameter exemption.
	(CheckIndrX): Call SetupLAlias between lhs and content.
	(trashParam): Re-write.
	(SetVarLRInitialized): Indicate shadow and heap are initialized.
	Call SetupIndr between shadow and heap.
	* gm2-compiler/P2SymBuild.mod: Import
	PutProcedureParameterHeapVars.
	(EndBuildProcedure): Call PutProcedureParameterHeapVars.
	* gm2-compiler/SymbolTable.def (GetParameterHeapVar): New
	procedure function.
	(PutProcedureParameterHeapVars): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeParameterHeapVar): New
	procedure function.
	(GetParameterHeapVar): New procedure function.
	(PuttParameterHeapVar): New procedure function.
	(PutProcedureParameterHeapVars): New procedure.
	(VarParam): HeapVar new record field.
	(PutVarParam): HeapVar assigned to NulSym.

2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110284
	* Make-lang.in (m2_OBJS): Add m2/gm2-gcc/rtegraph.o and
	m2/gm2-compiler-boot/m2flex.o.
	(c-family/m2pp.o): Remove.
	* Make-maintainer.in (c-family/m2pp.o): Add.

2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (BuildDifAdrFunction): Removed
	unnecessary in error message.  Use vartok for location.
	(BuildOddFunction): Use optok for location.
	(BuildAbsFunction): Use vartok for location.  Bugfix set vartok.
	(BuildCapFunction): Use optok for location.
	(BuildOrdFunction): Use optok for location and correct format
	specifier.
	(BuildShiftFunction): Use vartok for location.
	(BuildRotateFunction): Use vartok for location.
	(BuildTruncFunction): Use vartok for location.
	(BuildFloatFunction): Use vartok for location.
	(BuildReFunction): Use vartok for location.
	(BuildImFunction): Use vartok for location.
	* gm2-compiler/M2SymInit.mod (trashParam): Remove commented code.

2023-07-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (BuildRealFuncProcCall): Set the trash
	parameter value to NIL if DEALLOCATE is detected.
	* gm2-compiler/M2SymInit.mod (CheckDeferredRecordAccess): Pass
	tok to SetVarInitialized.  Pass tok to GetVarComponentInitialized.
	(ComponentFindVar): Add tok parameter.  Check aliased pointer
	against Nil and generate warning if necessary.
	(deRefComponent): Add tok and sym parameters and pass them to
	getContent.
	(SetVarComponentInitialized): Add tok parameter.  Pass tok to
	ComponentFindVar.  Pass tok and sym to deRefComponent.
	(GetVarComponentInitialized): Add tok parameter.  Pass tok to
	ComponentFindVar.  Pass tok to deRefComponent.
	(SetVarInitialized): Add tok parameter.  Pass tok to
	SetVarComponentInitialized.
	(doGetVarInitialized): Add tok parameter.  Pass tok to
	GetVarComponentInitialized.
	(CheckXIndr): Pass lhs and lhstok to getContent.
	(CheckIndrX): Pass rhs and rhstok to getContent.
	(CheckBecomes): Pass destok to ComponentFindVar.  Pass des and
	destok to deRefComponent.
	(CheckAddr): Pass contenttok to GetVarInitialized.  Pass ptrtok
	to SetVarInitialized.
	(CheckReadBeforeInitQuad): Pass op1tok to SetVarInitialized for
	op1 cases and op3tok for op3 cases.
	(trashParam): Get operand tokens.  Pass op3tok to
	SetVarInitialized.  Pass op3 and op3tok to getContent.
	Alias ptr to NIL if procedure is DEALLOCATE.  Pass op3tok to
	SetVarInitialized.
	(IsDeallocate): New procedure function.
	(DetectTrash): Use IsDeallocate.
	(SetupLAlias): Allow exp to be Nil.
	(getContent): Generate warning message if ptr is Nil.

2023-07-18  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in: Minor formatting change.
	* gm2-compiler/M2GCCDeclare.mod
	(DeclareUnboundedProcedureParameters): Rename local variables.
	(WalkUnboundedProcedureParameters): Rename local variables.
	(DoVariableDeclaration): Avoid declaration of a variable if
	it is on the heap (used by static analysis only).
	* gm2-compiler/M2GenGCC.mod: Formatting.
	* gm2-compiler/M2Quads.def (GetQuadTrash): New procedure function.
	* gm2-compiler/M2Quads.mod (GetQuadTrash): New procedure function.
	(QuadFrame): Add Trash field.
	(BuildRealFuncProcCall): Detect ALLOCATE and DEALLOCATE and create
	a heap variable for parameter 1 saving it as the trashed variable
	for static analysis.
	(GenQuadOTrash): New procedure.
	(DisplayQuadRange): Bugfix.  Write the scope number.
	* gm2-compiler/M2SymInit.mod: Rewritten to separate LValue
	equivalence from LValue to RValue pairings.  Comprehensive
	detection of variant record implemented.  Allow dereferencing
	of pointers through LValue/RValue chains.
	* gm2-compiler/SymbolTable.def (PutVarHeap): New procedure.
	(IsVarHeap): New procedure function.
	(ForeachParamSymDo): New procedure.
	* gm2-compiler/SymbolTable.mod (PutVarHeap): New procedure.
	(IsVarHeap): New procedure function.
	(ForeachParamSymDo): New procedure.
	(MakeVariableForParam): Reformatted.
	(CheckForUnknownInModule): Reformatted.
	(SymVar): Add field Heap.
	(MakeVar): Assign Heap to FALSE.

2023-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* Make-lang.in (m2/boot-bin/mklink$(exeext)): Add $(LDFLAGS).

2023-07-11  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2BasicBlock.def (InitBasicBlocksFromRange): New
	parameter ScopeSym.
	* gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): New
	parameter ScopeSym.
	(InitBasicBlocksFromRange): New	parameter ScopeSym.  Call
	ConvertQuads2BasicBlock with ScopeSym.
	(DisplayBasicBlocks): Uncomment.
	* gm2-compiler/M2Code.mod: Replace VariableAnalysis with
	ScopeBlockVariableAnalysis.
	(InitialDeclareAndOptiomize): Add parameter scope.
	(SecondDeclareAndOptimize): Add parameter scope.
	* gm2-compiler/M2GCCDeclare.mod (DeclareConstructor): Add scope
	parameter to DeclareTypesConstantsProceduresInRange.
	(DeclareTypesConstantsProceduresInRange): New parameter scope.
	Pass scope to DisplayQuadRange.  Reformatted.
	* gm2-compiler/M2GenGCC.def (ConvertQuadsToTree): New parameter
	scope.
	* gm2-compiler/M2GenGCC.mod (ConvertQuadsToTree): New parameter
	scope.
	* gm2-compiler/M2Optimize.mod (KnownReachable): New parameter
	scope.
	* gm2-compiler/M2Options.def (SetUninitVariableChecking): Add
	arg parameter.
	* gm2-compiler/M2Options.mod (SetUninitVariableChecking): Add
	arg parameter and set boolean UninitVariableChecking and
	UninitVariableConditionalChecking.
	(UninitVariableConditionalChecking): New boolean set to FALSE.
	* gm2-compiler/M2Quads.def (IsGoto): New procedure function.
	(DisplayQuadRange): Add scope parameter.
	(LoopAnalysis): Add scope parameter.
	* gm2-compiler/M2Quads.mod: Import PutVarArrayRef.
	(IsGoto): New procedure function.
	(LoopAnalysis): Add scope parameter and use MetaErrorT1 instead
	of WarnStringAt.
	(BuildStaticArray): Call PutVarArrayRef.
	(BuildDynamicArray): Call PutVarArrayRef.
	(DisplayQuadRange): Add scope parameter.
	(GetM2OperatorDesc): Add relational condition cases.
	* gm2-compiler/M2Scope.def (ScopeProcedure): Add parameter.
	* gm2-compiler/M2Scope.mod (DisplayScope): Pass scopeSym to
	DisplayQuadRange.
	(ForeachScopeBlockDo): Pass scopeSym to p.
	* gm2-compiler/M2SymInit.def (VariableAnalysis): Rename to ...
	(ScopeBlockVariableAnalysis): ... this.
	* gm2-compiler/M2SymInit.mod (ScopeBlockVariableAnalysis): Add
	scope parameter.
	(bbEntry): New pointer to record.
	(bbArray): New array.
	(bbFreeList): New variable.
	(errorList): New list.
	(IssueConditional): New procedure.
	(GenerateNoteFlow): New procedure.
	(IssueWarning): New procedure.
	(IsUniqueWarning): New procedure.
	(CheckDeferredRecordAccess): Re-implement.
	(CheckBinary): Add warning and lst parameters.
	(CheckUnary): Add warning and lst parameters.
	(CheckXIndr): Add warning and lst parameters.
	(CheckIndrX): Add warning and lst parameters.
	(CheckBecomes): Add warning and lst parameters.
	(CheckComparison): Add warning and lst parameters.
	(CheckReadBeforeInitQuad): Add warning and lst parameters to all
	Check procedures.  Add all case quadruple clauses.
	(FilterCheckReadBeforeInitQuad): Add warning and lst parameters.
	(CheckReadBeforeInitFirstBasicBlock): Add warning and lst parameters.
	(bbArrayKill): New procedure.
	(DumpBBEntry): New procedure.
	(DumpBBArray): New procedure.
	(DumpBBSequence): New procedure.
	(TestBBSequence): New procedure.
	(CreateBBPermultations): New procedure.
	(ScopeBlockVariableAnalysis): New procedure.
	(GetOp3): New procedure.
	(GenerateCFG): New procedure.
	(NewEntry): New procedure.
	(AppendEntry): New procedure.
	(init): Initialize bbFreeList and errorList.
	* gm2-compiler/SymbolTable.def (PutVarArrayRef): New procedure.
	(IsVarArrayRef): New procedure function.
	* gm2-compiler/SymbolTable.mod (SymVar): ArrayRef new field.
	(MakeVar): Set ArrayRef to FALSE.
	(PutVarArrayRef): New procedure.
	(IsVarArrayRef): New procedure function.
	* gm2-gcc/init.cc (_M2_M2SymInit_init): New prototype.
	(init_PerCompilationInit): Add call to _M2_M2SymInit_init.
	* gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
	New definition.
	* gm2-lang.cc (gm2_langhook_handle_option): Add new case
	OPT_Wuninit_variable_checking_.
	* lang.opt: Wuninit-variable-checking= new entry.

2023-07-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110125
	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2SymInit.def.
	(GM2-COMP-BOOT-MODS): Add M2SymInit.mod.
	* gm2-compiler/M2BasicBlock.mod: Formatting changes.
	* gm2-compiler/M2Code.mod: Remove import of VariableAnalysis from
	M2Quads.  Import VariableAnalysis from M2SymInit.mod.
	* gm2-compiler/M2GCCDeclare.mod (PrintVerboseFromList):
	Add debugging print for a component.
	(TypeConstFullyDeclared): Call RememberType for every type.
	* gm2-compiler/M2GenGCC.mod (CodeReturnValue): Add parameter to
	GetQuadOtok.
	(CodeBecomes): Add parameter to GetQuadOtok.
	(CodeXIndr): Add parameter to GetQuadOtok.
	* gm2-compiler/M2Optimize.mod (ReduceBranch): Reformat and
	preserve operand token positions when reducing the branch
	quadruples.
	(ReduceGoto): Reformat.
	(FoldMultipleGoto): Reformat.
	(KnownReachable): Reformat.
	* gm2-compiler/M2Options.def (UninitVariableChecking): New
	variable declared and exported.
	(SetUninitVariableChecking): New procedure.
	* gm2-compiler/M2Options.mod (SetWall): Set
	UninitVariableChecking.
	(SetUninitVariableChecking): New procedure.
	* gm2-compiler/M2Quads.def (PutQuadOtok): Exported and declared.
	(VariableAnalysis): Removed.
	* gm2-compiler/M2Quads.mod (PutQuadOtok): New procedure.
	(doVal): Reformatted.
	(MarkAsWrite): Reformatted.
	(MarkArrayAsWritten): Reformatted.
	(doIndrX): Use PutQuadOtok.
	(MakeRightValue): Use GenQuadOtok.
	(MakeLeftValue): Use GenQuadOtok.
	(CheckReadBeforeInitialized): Remove.
	(IsNeverAltered): Reformat.
	(DebugLocation): New procedure.
	(BuildDesignatorPointer): Use GenQuadO to preserve operand token
	position.
	(BuildRelOp): Use GenQuadOtok ditto.
	* gm2-compiler/SymbolTable.def (VarCheckReadInit): New procedure.
	(VarInitState): New procedure.
	(PutVarInitialized): New procedure.
	(PutVarFieldInitialized): New procedure function.
	(GetVarFieldInitialized): New procedure function.
	(PrintInitialized): New procedure.
	* gm2-compiler/SymbolTable.mod (VarCheckReadInit): New procedure.
	(VarInitState): New procedure.
	(PutVarInitialized): New procedure.
	(PutVarFieldInitialized): New procedure function.
	(GetVarFieldInitialized): New procedure function.
	(PrintInitialized): New procedure.
	(LRInitDesc): New type.
	(SymVar): InitState new field.
	(MakeVar): Initialize InitState.
	* gm2-gcc/m2options.h (M2Options_SetUninitVariableChecking):
	New function declaration.
	* gm2-lang.cc (gm2_langhook_handle_option): Detect
	OPT_Wuninit_variable_checking and call SetUninitVariableChecking.
	* lang.opt: Add Wuninit-variable-checking.
	* gm2-compiler/M2SymInit.def: New file.
	* gm2-compiler/M2SymInit.mod: New file.

2023-06-30  Iain Sandoe  <iain@sandoe.co.uk>

	PR testsuite/108835
	* gm2-libs/RTint.mod: Do not use NIL timeout setting on select,
	test failures sequentially, finishing on the first success.

2023-06-18  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110284
	* Make-lang.in (m2_OBJS): Assign $(GM2_C_OBJS).
	(GM2_C_OBJS): Remove m2/stor-layout.o.
	(m2/stor-layout.o): Remove rule.
	* gm2-gcc/gcc-consolidation.h (rtl.h): Remove include.
	(df.h): Remove include.
	(except.h): Remove include.

2023-06-15  Marek Polacek  <polacek@redhat.com>

	* Make-lang.in: New var, GM2_PICFLAGS.  Use it.

2023-06-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (check-format-error): New rule.
	* gm2-compiler/M2MetaError.mod (op): Add calls InternalError if
	digits are detected.
	* gm2-compiler/M2Quads.mod (BuildForToByDo): Bugfix to format
	specifier.
	(BuildLengthFunction): Bugfix to format	specifiers.
	(BuildOddFunction): Bugfix to format specifiers.
	(BuildAbsFunction): Bugfix to format specifiers.
	(BuildCapFunction): Bugfix to format specifiers.
	(BuildChrFunction): Bugfix to format specifiers.
	(BuildOrdFunction): Bugfix to format specifiers.
	(BuildMakeAdrFunction): Bugfix to format specifiers.
	(BuildSizeFunction): Bugfix to format specifiers.
	(BuildBitSizeFunction): Bugfix to format specifiers.
	* tools-src/checkmeta.py: New file.

2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110189
	* gm2-compiler/M2Quads.mod (BuildAbsFunction): Replace abort
	format specifier.
	(BuildValFunction): Replace abort format specifier.
	(BuildCastFunction): Replace abort format specifier.
	(BuildMinFunction): Replace abort format specifier.
	(BuildMaxFunction): Replace abort format specifier.
	(BuildTruncFunction): Replace abort format specifier.
	* gm2-compiler/P3Build.bnf (Pass1): Remove.
	(Pass2): Remove.
	(Pass3): Remove.
	(Expect): Add Pass1.
	(AsmStatement): Remove Pass3.
	(AsmOperands): Remove Pass3.
	(AsmOperandSpec): Remove Pass3.
	(AsmInputElement): Remove Pass3.
	(AsmOutputElement): Remove Pass3.
	(AsmTrashList): Remove Pass3.

2023-06-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110126
	* gm2-compiler/M2Quads.def (BuildAsmElement): Remove
	trash parameter.
	(BuildAsmTrash): New procedure.
	* gm2-compiler/M2Quads.mod (BuildAsmTrash): New procedure.
	(BuildAsmElement): Remove trash parameter.
	* gm2-compiler/P3Build.bnf (AsmTrashList): Rewrite.

2023-06-08  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110126
	* gm2-compiler/M2GenGCC.mod (BuildTreeFromInterface): Remove
	tokenno parameter.  Use object tok instead of tokenno.
	(BuildTrashTreeFromInterface): Use object tok instead of
	GetDeclaredMod.
	(CodeInline): Remove tokenno from parameter list to BuildTreeFromInterface.
	* gm2-compiler/M2Quads.def (BuildAsmElement): Exported and
	defined.
	* gm2-compiler/M2Quads.mod (BuildOptimizeOff): Reformatted.
	(BuildInline): Reformatted.
	(BuildLineNo): Reformatted.
	(UseLineNote): Reformatted.
	(BuildAsmElement): New procedure.
	* gm2-compiler/P0SyntaxCheck.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P1Build.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P2Build.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/P3Build.bnf (AsmOperands): Rewrite.
	(AsmOperandSpec): Rewrite.
	(AsmOutputList): New rule.
	(AsmInputList): New rule.
	(TrashList): Rewrite.
	* gm2-compiler/PCBuild.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/PHBuild.bnf (AsmOperands): Use
	ConstExpression instead of string.
	(AsmElement): Use ConstExpression instead of string.
	(TrashList): Use ConstExpression instead of string.
	* gm2-compiler/SymbolTable.def (PutRegInterface):
	Rewrite interface.
	(GetRegInterface): Rewrite interface.
	* gm2-compiler/SymbolTable.mod (SetFirstUsed): New procedure.
	(PutFirstUsed): New procedure.
	(PutRegInterface): Rewrite.
	(GetRegInterface): Rewrite.

2023-06-07  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in: Build $(generated_files) before building
	all $(GM2_C_OBJS).

2023-06-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110019
	* gm2-compiler/SymbolKey.mod (SearchAndDo): Reformatted.
	(ForeachNodeDo): Reformatted.
	* gm2-compiler/SymbolTable.mod (AddListify): Join list
	with "," or "and" if more than one word is in the list.
	* m2.flex: Remove -1 from atoi(yytext) line number.

2023-06-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/110003
	* gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import.
	(CheckFormalParameterSection): Call PutDeclared for the shadow
	variable associated with the parameter.

2023-05-24  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109952
	* Make-maintainer.in: Change header to include emacs file mode.
	* gm2-compiler/M2GenGCC.mod (BuildHighFromChar): Check whether
	operand is a constant string and is nul terminated then return one.
	* gm2-compiler/PCSymBuild.mod (WalkFunction): Add default return
	TRUE.  Static analysis missing return path fix.
	* gm2-libs/IO.mod (Init): Rewrite to help static analysis.
	* target-independent/m2/gm2-libs.texi: Rebuild.

2023-05-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109908
	* gm2-libs-iso/Strings.mod (Delete): Re-implement.

2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* gm2-gcc/m2builtins.cc (doradix): Use _P defines from tree.h.
	(doplaces): Ditto.
	(doexponentmin): Ditto.
	(doexponentmax): Ditto.
	(dolarge): Ditto.
	(dosmall): Ditto.
	(dogUnderflow): Ditto.
	* gm2-gcc/m2convert.cc (unsafe_conversion_p): Ditto.
	* gm2-gcc/m2expr.cc (m2expr_build_unary_op_check): Ditto.
	(m2expr_build_binary_op_check): Ditto.
	* gm2-gcc/m2tree.cc (m2tree_is_var): Ditto.
	* gm2-gcc/m2treelib.cc (build_modify_expr): Ditto.
	* gm2-gcc/m2type.cc (gm2_finish_decl): Ditto.
	* m2pp.cc (hextree): Ditto.
	(m2pp_call_expr): Ditto.

2023-05-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/LongWholeIO.mod (WriteInt): Only request a
	sign if the value is < 0.
	* gm2-libs-iso/ShortWholeIO.mod (WriteInt): Only request a
	sign if the value is < 0.
	* gm2-libs-iso/WholeIO.mod (WriteInt): Only request a sign
	if the value is < 0.
	* gm2-libs-iso/WholeStr.mod (WriteInt): Only request a sign
	if the value is < 0.

2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109879
	* gm2-libs-iso/LongIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/LongWholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/RealIO.mod (ReadReal): Call SkipSpaces.
	* gm2-libs-iso/ShortWholeIO.mod: (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextIO.mod: Import SkipSpaces.
	* gm2-libs-iso/WholeIO.mod (ReadInt): Call SkipSpaces.
	(ReadCard): Call SkipSpaces.
	* gm2-libs-iso/TextUtil.def: New file.
	* gm2-libs-iso/TextUtil.mod: New file.

2023-05-16  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108344
	* gm2-libs-coroutines/TimerHandler.mod (EnableLED): New constant.
	(Timer): Test EnableLED before switching on the scroll LED.

2023-05-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109830
	* gm2-libs-iso/SeqFile.mod (newCid): New parameter toAppend
	used to select FIO.OpenForRandom.
	(OpenRead): Pass extra parameter to newCid.
	(OpenWrite): Pass extra parameter to newCid.
	(OpenAppend): Pass extra parameter to newCid.

2023-05-11  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109810
	* gm2-compiler/M2ALU.mod (ConvertConstToType): Use
	PrepareCopyString in place of DoCopyString.
	* gm2-compiler/M2GenGCC.def (DoCopyString): Rename to ...
	(PrepareCopyString): ... this.
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Call CodeReturnValue
	with a single parameter.  Call CodeXIndr with a single parameter.
	(CodeReturnValue): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	(DoCopyString): Reimplement and rename to ...
	(PrepareCopyString): ... this.
	(CodeXIndr): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	(CodeBecomes): Remove parameters and replace with a single
	quadno.  Reimplement using PrepareCopyString.  Issue error
	if the string exceeds designator space.
	* gm2-compiler/M2Quads.def (BuildReturn): Rename parameter to
	tokreturn.
	* gm2-compiler/M2Quads.mod (BuildReturn): Rename parameter to
	tokreturn.  Rename tokno to tokcombined.

2023-05-09  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109779
	* gm2-libs-iso/RTgen.mod (doLook): Remove old.
	Remove re-assignment of result.
	* gm2-libs-iso/TextIO.mod (CanRead): Rename into ...
	(CharAvailable): ... this.
	(DumpState): New procedure.
	(SetResult): Rename as SetNul.
	(WasGoodChar): Rename into ...
	(EofOrEoln): ... this.
	(SkipLine): Skip over the newline.
	(ReadString): Flip THEN ELSE statements after testing for
	EofOrEoln.
	(ReadRestLine): Flip THEN ELSE statements after testing for
	EofOrEoln.

2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109729
	* gm2-compiler/M2GenGCC.mod (CodeStatement): Detect
	ArithAddOp and call CodeAddChecked.
	(ResolveConstantExpressions): Detect ArithAddOp and call
	FoldArithAdd.
	(FoldArithAdd): New procedure.
	(FoldAdd): Refactor to use FoldArithAdd.
	* gm2-compiler/M2Quads.def (QuadOperator): Add ArithAddOp.
	* gm2-compiler/M2Quads.mod: Remove commented imports.
	(QuadFrame): Changed comments to use GNU coding standards.
	(ArithPlusTok): New global variable.
	(BuildForToByDo): Use ArithPlusTok instead of PlusTok.
	(MakeOp): Detect ArithPlusTok and return ArithAddOp.
	(WriteQuad): Add ArithAddOp clause.
	(WriteOperator): Add ArithAddOp clause.
	(Init): Initialize ArithPlusTok.

2023-05-04  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109675
	* Make-lang.in (MC-LIB-DEFS): Remove M2LINK.def.
	(BUILD-PGE-O): Remove GM2LINK.o.
	* Make-maintainer.in (PPG-DEFS): New define.
	(PPG-LIB-DEFS): Remove M2LINK.def.
	(BUILD-BOOT-PPG-H): Add PPGDEF .h files.
	(m2/ppg$(exeext)): Remove M2LINK.o
	(PGE-DEPS): New define.
	(m2/pg$(exeext)): Remove M2LINK.o.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add -Im2/gm2-pge-boot.
	(m2/pge$(exeext)): Remove M2LINK.o.
	(pge-maintainer): Re-implement.
	(pge-libs-push): Re-implement.
	(m2/m2obj3/cc1gm2$(exeext)): Remove M2LINK.o.
	* gm2-libs/DynamicStrings.mod (writeAddress): Re-implement
	using snprintf.
	* gm2-libs/M2Dependent.mod: Remove commented out imports.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFormatStrings.cc: Rebuild.
	* mc-boot/GM2Dependent.cc: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GSFIO.cc: Rebuild.
	* mc-boot/GStringConvert.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* pge-boot/GASCII.cc: Rebuild.
	* pge-boot/GASCII.h: Rebuild.
	* pge-boot/GArgs.cc: Rebuild.
	* pge-boot/GArgs.h: Rebuild.
	* pge-boot/GAssertion.cc: Rebuild.
	* pge-boot/GAssertion.h: Rebuild.
	* pge-boot/GBreak.h: Rebuild.
	* pge-boot/GCmdArgs.h: Rebuild.
	* pge-boot/GDebug.cc: Rebuild.
	* pge-boot/GDebug.h: Rebuild.
	* pge-boot/GDynamicStrings.cc: Rebuild.
	* pge-boot/GDynamicStrings.h: Rebuild.
	* pge-boot/GEnvironment.h: Rebuild.
	* pge-boot/GFIO.cc: Rebuild.
	* pge-boot/GFIO.h: Rebuild.
	* pge-boot/GFormatStrings.h:: Rebuild.
	* pge-boot/GFpuIO.h:: Rebuild.
	* pge-boot/GIO.cc: Rebuild.
	* pge-boot/GIO.h: Rebuild.
	* pge-boot/GIndexing.cc: Rebuild.
	* pge-boot/GIndexing.h: Rebuild.
	* pge-boot/GLists.cc: Rebuild.
	* pge-boot/GLists.h: Rebuild.
	* pge-boot/GM2Dependent.cc: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.cc: Rebuild.
	* pge-boot/GM2EXCEPTION.h: Rebuild.
	* pge-boot/GM2RTS.cc: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.cc: Rebuild.
	* pge-boot/GNameKey.h: Rebuild.
	* pge-boot/GNumberIO.cc: Rebuild.
	* pge-boot/GNumberIO.h: Rebuild.
	* pge-boot/GOutput.cc: Rebuild.
	* pge-boot/GOutput.h: Rebuild.
	* pge-boot/GPushBackInput.cc: Rebuild.
	* pge-boot/GPushBackInput.h: Rebuild.
	* pge-boot/GRTExceptions.cc: Rebuild.
	* pge-boot/GRTExceptions.h: Rebuild.
	* pge-boot/GSArgs.h: Rebuild.
	* pge-boot/GSEnvironment.h: Rebuild.
	* pge-boot/GSFIO.cc: Rebuild.
	* pge-boot/GSFIO.h: Rebuild.
	* pge-boot/GSYSTEM.h: Rebuild.
	* pge-boot/GScan.h: Rebuild.
	* pge-boot/GStdIO.cc: Rebuild.
	* pge-boot/GStdIO.h: Rebuild.
	* pge-boot/GStorage.cc: Rebuild.
	* pge-boot/GStorage.h: Rebuild.
	* pge-boot/GStrCase.cc: Rebuild.
	* pge-boot/GStrCase.h: Rebuild.
	* pge-boot/GStrIO.cc: Rebuild.
	* pge-boot/GStrIO.h: Rebuild.
	* pge-boot/GStrLib.cc: Rebuild.
	* pge-boot/GStrLib.h: Rebuild.
	* pge-boot/GStringConvert.h: Rebuild.
	* pge-boot/GSymbolKey.cc: Rebuild.
	* pge-boot/GSymbolKey.h: Rebuild.
	* pge-boot/GSysExceptions.h: Rebuild.
	* pge-boot/GSysStorage.cc: Rebuild.
	* pge-boot/GSysStorage.h: Rebuild.
	* pge-boot/GTimeString.h: Rebuild.
	* pge-boot/GUnixArgs.h: Rebuild.
	* pge-boot/Gbnflex.cc: Rebuild.
	* pge-boot/Gbnflex.h: Rebuild.
	* pge-boot/Gdtoa.h: Rebuild.
	* pge-boot/Gerrno.h: Rebuild.
	* pge-boot/Gldtoa.h: Rebuild.
	* pge-boot/Glibc.h: Rebuild.
	* pge-boot/Glibm.h: Rebuild.
	* pge-boot/Gpge.cc: Rebuild.
	* pge-boot/Gtermios.h: Rebuild.
	* pge-boot/Gwrapc.h: Rebuild.
	* mc-boot/GM2LINK.h: Removed.
	* pge-boot/GM2LINK.cc: Removed.
	* pge-boot/GM2LINK.h: Removed.

2023-04-30  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/SymbolTable.mod (ConstLitPoolEntry): New
	pointer to record.
	(ConstLitSym): New field RangeError.
	(ConstLitPoolTree): New SymbolTree representing name to
	index.
	(ConstLitArray): New dynamic array containing pointers
	to a ConstLitPoolEntry.
	(CreateConstLit): New procedure function.
	(LookupConstLitPoolEntry): New procedure function.
	(AddConstLitPoolEntry): New procedure function.
	(MakeConstLit): Re-implemented to check the constant lit
	pool before calling CreateConstLit.
	* m2.flex: Add ability to decode binary constant literals.

2023-04-26  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108121
	* gm2-compiler/M2ALU.mod (Less): Reformatted.
	* gm2-compiler/SymbolTable.mod (DetermineSizeOfConstant): Remove
	from import.
	(ConstantStringExceedsZType): Import.
	(GetConstLitType): Re-implement using ConstantStringExceedsZType.
	* gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Remove.
	(m2decl_ConstantStringExceedsZType): New function.
	(m2decl_BuildConstLiteralNumber): Re-implement.
	* gm2-gcc/m2decl.def (DetermineSizeOfConstant): Remove.
	(ConstantStringExceedsZType): New function.
	* gm2-gcc/m2decl.h (m2decl_DetermineSizeOfConstant): Remove.
	(m2decl_ConstantStringExceedsZType): New function.
	* gm2-gcc/m2expr.cc (append_digit): Remove.
	(m2expr_interpret_integer): Remove.
	(append_m2_digit): Remove.
	(m2expr_StrToWideInt): New function.
	(m2expr_interpret_m2_integer): Remove.
	* gm2-gcc/m2expr.def (CheckConstStrZtypeRange): New function.
	* gm2-gcc/m2expr.h (m2expr_StrToWideInt): New function.
	* gm2-gcc/m2type.cc (build_m2_word64_type_node): New function.
	(build_m2_ztype_node): New function.
	(m2type_InitBaseTypes): Call build_m2_ztype_node.
	* gm2-lang.cc (gm2_type_for_size): Re-write using early returns.

2023-04-21  Arsen Arsenović  <arsen@aarsen.me>

	* Make-lang.in: Remove references to $(P).
	* Make-maintainer.in: Ditto.

2023-04-21  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109586
	* gm2-gcc/m2tree.cc (m2tree_IsAConstant): Add (TREE_CODE
	(t) == CONSTRUCTOR) to expression.

2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109488
	* lang.opt: Fix typo "maybe" to "may be".

2023-04-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2ALU.def (PopChar): New procedure function.
	* gm2-compiler/M2ALU.mod (PopChar): New procedure function.
	* gm2-compiler/M2GCCDeclare.mod (PromoteToString): Detect
	a single constant char and build a C string.
	* gm2-compiler/M2GenGCC.mod (IsConstStr): New procedure
	function.
	(GetStr): New procedure function.
	(FoldAdd): Use IsConstStr.
	* gm2-compiler/M2Quads.mod: Formatting changes.
	* gm2-gcc/m2expr.cc (m2expr_GetCstInteger): New function.
	* gm2-gcc/m2expr.def (GetCstInteger): New procedure function.
	* gm2-gcc/m2expr.h (m2expr_GetCstInteger): New prototype.

2023-04-05  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109423
	* gm2-compiler/M2Base.def (Unbounded): Remove.
	* gm2-compiler/M2Error.def (ErrorAbort0): Add noreturn
	attribute.
	* gm2-compiler/M2Quads.mod (BuildInclProcedure): Correct
	error format string.
	(BuildExceptProcedure): Correct error format string.
	(BuildAdrFunction): Call PutWriteQuad when taking the
	address of a variable.
	* gm2-libs-ch/SysExceptions.c (_M2_SysExceptions_init): Add
	parameters.
	* gm2-libs-ch/wrapc.c (_M2_wrapc_init): Add parameters.
	* gm2-libs/DynamicStrings.mod (DumpStringInfo): Remove t.
	(PopAllocationExemption): Remove f.
	* gm2-libs/FIO.mod (BufferedWrite): Remove result.
	* gm2-libs/FormatStrings.mod (Copy): Remove endpos and
	afterperc.
	(HandlePercent): Remove result.
	* gm2-libs/Indexing.mod (RemoveIndiceFromIndex): Remove k.
	* gm2-libs/M2Dependent.mod (CreateModule): Remove p0
	and p1.
	(DumpModuleData): Remove mptr.
	(ConstructModules): Remove nulp.
	* gm2-libs/RTExceptions.mod (PopHandler): Remove i.
	* gm2-libs/RTint.mod (Listen): Remove b4s, b4m, afs
	and afm.
	* gm2-libs/SFIO.mod (ReadS): Remove c.
	* gm2-libs/StringConvert.mod (doDecimalPlaces): Remove
	whole and fraction.

2023-04-03  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109388
	* gm2-compiler/M2GCCDeclare.mod (DoVariableDeclaration):
	Remove second parameter module.  Adjust all callers to
	remove the second parameter.
	* gm2-compiler/PHBuild.bnf (CheckAndInsert): Remove.
	(InStopSet): Remove.
	(PeepToken): Remove.
	(PushQualident): Remove.
	(SimpleDes): Remove.
	(ActualParameters): Remove.

2023-04-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109336
	* Make-lang.in (GM2_O): Set to -O0.
	(GM2_LIBS): Remove target libraries and replace with build libs.
	(BUILD-LIBS): New declaration.
	(m2/gm2-libs/libgm2.a): New rule.
	(m2/gm2-libs/%.o): New rule.
	(m2/gm2-libs/choosetemp.o): New rule.
	* gm2-compiler/M2ColorString.mod (append): Use ADR rather than
	implicit conversion.
	* gm2-compiler/M2Comp.mod (Compile): Add qprintf messages for when
	a source file is not found.  Improve comments and formatting.
	* gm2-libs-ch/cgetopt.c (cgetopt_cgetopt_long): Remove
	ansi-decl.h.  Add getopt.h.
	(cgetopt_cgetopt_long_only): Change cgetopt_ to getopt_.
	* gm2spec.cc (lang_specific_driver): Do not skip -fmod=.
	Remove comment.

2023-03-29  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109336
	PR modula2/109315
	* gm2-compiler/M2FileName.mod (CalculateFileName): Simplified by
	ensuring the extension contains the ".".
	(CalculateStemName): Re-formatted.
	(ExtractExtension): Re-formatted.
	(ExtractModule): Re-formatted.
	* gm2-compiler/M2Options.def (setdefextension): Add block comment.
	(setmodextension): Add block comment.  Re-formatted.
	* gm2-compiler/M2Options.mod (setdefextension): Add block comment.
	(setmodextension): Add block comment.  Re-formatted.
	* gm2-compiler/M2Search.mod (FindSourceDefFile): Use
	DefaultDefExt.
	(DefaultDefExt): New constant.
	(DefaultModExt): New constant.
	(FindSourceModFile): Use DefaultModExt.
	* gm2-gcc/m2decl.cc (m2decl_DeclareKnownVariable): Correct
	spelling.
	* gm2spec.cc (M2SOURCE): New constant.
	(LANGSPEC): New value.
	(MATHLIB): New value.
	(WITHLIBC): New value.
	(SKIPOPT): New value.
	(lang_specific_driver): Replace seen_module_extension bool with
	module_extension char *.  Detect -fmod= and remember extension.
	Use the extension to detect modula-2 source and mark it as such.

2023-03-23  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109264
	* gm2-compiler/M2Quads.mod (BuildConstFunctionCall): Comment
	out ErrorString in debugging block.
	(BuildConstructorStart): Replace Assert with a call to
	MetaErrorT3.  Import MetaErrorT3.
	* gm2-compiler/PCSymBuild.mod (buildConstFunction): Rename
	local variables.
	(WalkFunctionParam): Remove test for IsEnumeration when
	resolving MIN or MAX parameters.
	* gm2-compiler/PHBuild.bnf (BlockAssert): New procedure.
	(ErrorArrayat): New procedure.
	(Expect): Renamed parameter t to tok.
	(PushQualident): New rule.
	(ConstSetOrQualidentOrFunction): Force AutoOn.
	(TypeDeclaration): Add debugging assert.
	(SimpleType): Add debugging assert.
	(DefaultRecordAttributes): New rule (and bugfix).
	(FieldPragmaExpression): New rule (and bugfix).
	(PragmaConstExpression): New rule (and bugfix).
	(SetOrDesignatorOrFunction): Add debugging assert.
	(Block): Add debugging assert.
	* gm2-gcc/m2expr.cc (m2expr_ConstantExpressionWarning): int
	to bool.
	* gm2-gcc/m2expr.h (m2expr_TreeOverflow): int to bool.
	(m2expr_GetBooleanTrue): Remove.
	(m2expr_GetBooleanFalse): Remove.
	* gm2-gcc/m2options.h (M2Options_SetStatistics): Replace
	int with bool.

2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109248
	* Make-lang.in (m2/pge-boot/%.o): Add CFLAGS and CXXFLAGS for C
	and C++ compiles.
	* gm2spec.cc (add_m2_I_path): Indentation.
	(lang_specific_driver): New variable seen_pathname.
	Detect -fm2-pathname.  If not seen then push_back_Ipath (".").
	Change non iso library path to "m2cor,m2log,m2pim,m2iso".

2023-03-22  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/107630
	* Make-lang.in (m2/stage2/cc1gm2$(exeext)): Remove
	m2/gm2-libs-boot/M2LINK.o.
	(m2/stage1/cc1gm2$(exeext)): Ditto.
	(GM2-LIBS-BOOT-DEFS): Remove M2LINK.def.
	(GM2-LIBS-DEFS): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Replace CXX_FLAGS with CXXFLAGS.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(mcflex.o): Add $(CFLAGS).
	(m2/gm2-libs-boot/M2LINK.o): Remove rule.
	* gm2-compiler/M2GCCDeclare.def (DeclareM2linkGlobals): Remove.
	* gm2-compiler/M2GCCDeclare.mod: (M2LinkEntry): Remove.
	(M2LinkIndex): Remove.
	(DoVariableDeclaration): Remove initial and call to
	AddEntryM2Link.
	(AddEntryM2Link): Remove.
	(GetEntryM2Link): Remove.
	(DeclareM2linkGlobals): Remove.
	(DetectM2LinkInitial): Remove.
	(InitM2LinkModule): Remove.
	* gm2-compiler/M2GenGCC.mod (CodeFinallyEnd): Remove call to
	DeclareM2linkGlobals.
	* gm2-compiler/M2Quads.mod (BuildM2InitFunction): Add extra
	parameter containing runtime module override to ConstructModules.
	* gm2-compiler/M2Scaffold.mod: Update comment describing
	ConstructModules.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkForcedModuleInitOrder):
	Remove.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs-iso/M2RTS.mod: Add overrideliborder parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add overrideliborder parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add overrideliborder
	parameter.
	* gm2-libs/M2LINK.def: Removed.

2023-03-21  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add $(CXXFLAGS).
	(m2/mc-boot/main.o): Add $(CXXFLAGS).

2023-03-19  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-maintainer.in (gm2.maintainer-clean): Remove.
	(gm2.maintainer-help): Add gm2.maintainer-tools,
	gm2.maintainer-doc.  Remove gm2.maintainer-clean.
	Change target-independent directory to target-independent/m2.
	* gm2-compiler/ppg.mod: Correct __FILE_ typo to __FILE__.
	* gm2-compiler/M2Options.def (SetAutoInit): Update comment.
	* gm2-compiler/M2Options.mod (SetAutoInit): Update comment.
	* gm2-gcc/m2color.cc (m2color_colorize_start): Rename name_len
	to _name_high.
	* gm2-gcc/m2color.def (colorize_start): change ARRAY OF CHAR to
	ADDRESS and add _name_high.
	* gm2-gcc/m2decl.cc (m2decl_BuildStartFunctionDeclaration): Change
	int to bool.
	* gm2-gcc/m2decl.h (m2decl_BuildStartFunctionDeclaration): Change
	int to bool.
	* gm2-gcc/m2expr.cc (m2expr_BuildBinarySetDo): Change int to bool.
	(m2expr_BuildIfConstInVar): Change int to bool.
	(m2expr_BuildIfNotConstInVar): Change int to bool.
	(m2expr_BuildIfVarInVar): Change int to bool.
	(m2expr_BuildIfNotVarInVar): Change int to bool.
	(m2expr_BuildForeachWordInSetDoIfExpr): Change int to bool.
	* gm2-gcc/m2expr.h (m2expr_BuildIfNotVarInVar): Change int to bool.
	(m2expr_BuildIfVarInVar): Change int to bool.
	(m2expr_BuildIfNotConstInVar): Change int to bool.
	(m2expr_BuildIfConstInVar): Change int to bool.
	* gm2-gcc/m2options.h (M2Options_SetAutoInit): Change int to bool.
	(M2Options_SetNilCheck): Change int to bool.
	(M2Options_SetReturnCheck): Change int to bool.
	(M2Options_SetCaseCheck): Change int to bool.
	(M2Options_SetCheckAll): Change int to bool.
	(M2Options_SetVerboseUnbounded): Change int to bool.
	(M2Options_SetUnboundedByReference): Change int to bool.
	(M2Options_SetOptimizing): Change int to bool.
	(M2Options_SetQuiet): Change int to bool.
	(M2Options_SetCpp): Change int to bool.
	(M2Options_SetM2g): Change int to bool.
	(M2Options_SetLowerCaseKeywords): Change int to bool.
	(M2Options_SetVerbose): Change int to bool.
	* gm2-gcc/m2treelib.cc (m2treelib_get_rvalue): Change int to bool.
	(m2treelib_get_field_no): Change int to bool.
	(m2treelib_get_set_value): Change int to bool.
	(m2treelib_get_set_address): Change int to bool.
	(m2treelib_get_set_address_if_var): Change int to bool.
	* gm2-gcc/m2treelib.def (get_set_address_if_var): Change int to bool.
	(get_set_address): Change int to bool.
	(get_set_value): Change int to bool.
	(get_field_no): Change int to bool.
	(get_rvalue): Change int to bool.
	* gm2-gcc/m2treelib.h (m2treelib_get_field_no): Change int to bool.
	(m2treelib_get_set_value): Change int to bool.
	(m2treelib_get_set_address): Change int to bool.
	(m2treelib_get_set_address_if_var): Change int to bool.
	* gm2-gcc/m2type.cc (m2type_BuildEndFunctionType): Change int to bool.
	* gm2-gcc/m2type.h (m2type_BuildEndFunctionType): Change int to bool.
	* gm2-libs-ch/dtoa.cc (dtoa_calcsign): Change int to bool.
	* gm2-libs-ch/ldtoa.cc (dtoa_calcsign): Change int to bool.
	(ldtoa_ldtoa): Change int to bool.
	* m2.flex (functionInfo): Change int to bool.
	(pushFunction): Change parameter from int to bool.
	* mc-boot/GDebug.cc (Debug_Halt): Rebuild.
	* mc-boot/GDebug.h (Debug_Halt): Rebuild.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.cc: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GSysStorage.cc: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/GsymbolKey.cc: Rebuild.
	* mc/symbolKey.mod: Rebuild.
	* target-independent/m2/Builtins.texi: Rebuild.
	* target-independent/m2/SYSTEM-iso.texi: Rebuild.
	* target-independent/m2/SYSTEM-pim.texi: Rebuild.
	* target-independent/m2/gm2-libs.texi: Rebuild.
	* tools-src/def2doc.py (PIM_Log): Change gm2-libs-pim to
	gm2-lib-log.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109032
	* gm2-gcc/m2expr.cc: Correct ? : order in comments.
	(m2expr_BuildDivM2): Improve comment.
	* lang.opt: Improve option descriptions.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109102
	* gm2-gcc/m2builtins.cc (ASSERT): Change format specifier to
	use %qs rather than quotes.

2023-03-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2AsmUtil.mod (SymNeedsModulePrefix):
	Re-implemented.
	* gm2-libs/SysStorage.mod (enableTrace): Disable tracing.

2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/SymbolKey.mod (PutSymKey): Halt parameters
	reordered.
	(DelSymKey): Ditto.
	* gm2-compiler/ppg.mod (GetEpsilon): Ditto.
	(GetReachEnd): Ditto.
	(GetFollow): Ditto.
	(CodeCondition): Ditto.
	(CodeThenDo): Ditto.
	(CodeEnd): Ditto.
	(RecoverCondition): Ditto.
	(ConditionIndent): Ditto.
	* gm2-libs-ch/m2rts.h (M2RTS_Halt): Ditto.
	* gm2-libs-coroutines/Executive.mod (Assert): Ditto.
	(Resume): Remove redundant comments.
	(Wait): Remove redundant comments.
	* gm2-libs-coroutines/SYSTEM.mod (TRANSFER): Halt parameters
	reordered.
	(IOTransferHandler): Ditto.
	(Finished): Ditto.
	(localInit): Ditto.
	* gm2-libs-coroutines/TimerHandler.mod (WaitOn): Halt parameters
	reordered.
	(Cancel): Ditto.
	(ReArmEvent): Ditto.
	(OnActiveQueue): Ditto.
	* gm2-libs-iso/COROUTINES.mod (NEWCOROUTINE): Ditto.
	(Transfer): Ditto.
	(IOTRANSFER): Ditto.
	* gm2-libs-iso/EXCEPTIONS.mod (RAISE): Correct Halt parameters.
	* gm2-libs-iso/M2RTS.def (Halt): Halt parameters reordered.
	(HaltC): Ditto.
	* gm2-libs-iso/M2RTS.mod: Ditto.
	* gm2-libs-iso/RTentity.mod (PutKey): Ditto.
	(DelKey): Ditto.
	(findChildAndParent): Ditto.
	(assert): Ditto.
	* gm2-libs-iso/Storage.mod (ALLOCATE): Add DebugTrace.
	Add UseMallocFree test.
	(DEALLOCATE): Add DebugTrace.  Add UseMallocFree test.
	(assert): Halt parameters reordered.
	* gm2-libs-log/Termbase.mod (Read): Ditto.
	(KeyPressed): Ditto.
	(Write): Ditto.
	(Init): Ditto.
	* gm2-libs/Debug.def (Halt): Halt parameters reordered.
	* gm2-libs/Debug.mod (Halt): Ditto.
	* gm2-libs/DynamicStrings.def (PopAllocation): Improve comment.
	* gm2-libs/DynamicStrings.mod (PopAllocation): Improve comment.
	Halt parameters reordered.
	* gm2-libs/M2RTS.def (Halt): Ditto.
	(HaltC): Ditto.
	* gm2-libs/M2RTS.mod (Halt): Ditto.
	(HaltC): Ditto.
	* gm2-libs/PushBackInput.mod (PutStr): Ditto.
	(PutString): Ditto.
	(PutCh): Ditto.
	* gm2-libs/RTExceptions.mod (GetBaseExceptionBlock): Ditto.
	* gm2-libs/RTint.mod (ReArmTimeVector): Ditto.
	(GetTimeVector): Ditto.
	(AttachVector): Ditto.
	(IncludeVector): Ditto.
	(Listen): Ditto.
	* gm2-libs/SysStorage.mod (ALLOCATE): Ditto.
	(DEALLOCATE): Ditto.
	(REALLOCATE): Ditto.
	* gm2-libs-coroutines/Debug.def: Removed.
	* gm2-libs-coroutines/Debug.mod: Removed.

2023-03-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in: Rename target-independent to
	target-independent/m2.
	* target-independent/readme.txt: Update.
	* target-independent/m2/gm2-ebnf.texi: New file.
	* target-independent/m2/gpl_v3_without_node.texi: New file.
	* target-independent/Builtins.texi: Rename ...
	* target-independent/m2/Builtins.texi: ... to this.
	* target-independent/SYSTEM-iso.texi: Rename ...
	* target-independent/m2/SYSTEM-iso.texi: ... to this.
	* target-independent/SYSTEM-pim.texi: Rename ...
	* target-independent/m2/SYSTEM-pim.texi: ... to this.
	* target-independent/gm2-libs.texi: Rename ...
	* target-independent/m2/gm2-libs.texi: ... to this.

2023-03-15  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109125
	* gm2-libs-ch/dtoa.cc (dtoa_strtod): Replace int with bool.
	* gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Replace int with bool.

2023-03-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109125
	* gm2-libs-ch/cgetopt.c (cgetopt_SetOption): Replace int
	for bool.
	* gm2-libs-ch/termios.c (doSetUnset): Replace int for bool.
	* gm2-libs/Builtins.mod (isfinitef): Correct typo in return
	statement.

2023-03-13  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109103
	* gm2-compiler/M2ALU.def (PushString): New parameter issueError.
	* gm2-compiler/M2ALU.mod (PushString): New parameter issueError.
	* gm2-compiler/SymbolTable.mod (PushString): New parameter issueError.
	* gm2-gcc/m2decl.cc (m2decl_DetermineSizeOfConstant): Pass
	location to interpret_m2_integer.
	(m2decl_BuildConstLiteralNumber): New parameter issueError.
	* gm2-gcc/m2expr.cc (m2expr_IsTrue): Replace int with bool.
	(m2expr_IsFalse): Replace int with bool.
	(m2expr_AreConstantsEqual): Replace int with bool.
	(m2expr_BuildBinaryForeachWordDo): Call m2linemap_internal_error_at.
	(append_digit): Ditto.
	(m2expr_interpret_integer): Add location parameter.
	(append_m2_digit): Call m2linemap_internal_error_at.
	(m2expr_interpret_m2_integer): Add location parameter.
	(m2expr_GetSizeOf): Replace sizeof with SIZE in error message.
	* gm2-gcc/m2expr.h (m2expr_AreRealOrComplexConstantsEqual):
	Replace int with bool.
	(m2expr_AreConstantsEqual): Ditto.
	(m2expr_IsFalse): Ditto.
	(m2expr_IsTrue): Ditto.
	(m2expr_interpret_integer): Add location parameter.
	(m2expr_interpret_m2_integer): Add location parameter.
	* gm2-gcc/m2linemap.cc (mformat_value): New function.
	(expand_format): New function.
	(expand_message): New function.
	(gm2_internal_error_at): New function.
	(m2linemap_internal_error_at): New function.
	* gm2-gcc/m2linemap.h (m2linemap_internal_error_at): New function.
	* gm2-gcc/m2options.h (M2Options_SetISO): Replace int with bool.
	(M2Options_SetPIM): Ditto.
	(M2Options_SetPIM2): Ditto.
	(M2Options_SetPIM3): Ditto.
	(M2Options_SetPIM4): Ditto.
	(M2Options_SetFloatValueCheck): Ditto.
	(M2Options_SetWholeValueCheck): Ditto.
	(M2Options_GetISO): Ditto.
	(M2Options_GetPIM): Ditto.
	(M2Options_GetPIM2): Ditto.
	(M2Options_GetPIM3): Ditto.
	(M2Options_GetPIM4): Ditto.
	(M2Options_GetPositiveModFloor): Ditto.
	(M2Options_GetFloatValueCheck): Ditto.
	(M2Options_GetWholeValueCheck): Ditto.
	(M2Options_Setc): Ditto.
	(M2Options_Getc): Ditto.
	(M2Options_SetPPOnly): Ditto.
	(M2Options_GetPPOnly): Ditto.
	(M2Options_SetUselist): Ditto.
	(M2Options_SetAutoInit): Ditto.
	(M2Options_SetPositiveModFloor): Ditto.
	(M2Options_SetNilCheck): Ditto.
	(M2Options_SetWholeDiv): Ditto.
	(M2Options_SetIndex): Ditto.
	(M2Options_SetRange): Ditto.
	(M2Options_SetReturnCheck): Ditto.
	(M2Options_SetCaseCheck): Ditto.
	(M2Options_SetCheckAll): Ditto.
	(M2Options_SetExceptions): Ditto.
	(M2Options_SetStyle): Ditto.
	(M2Options_SetPedantic): Ditto.
	(M2Options_SetPedanticParamNames): Ditto.
	(M2Options_SetPedanticCast): Ditto.
	(M2Options_SetExtendedOpaque): Ditto.
	(M2Options_SetVerboseUnbounded): Ditto.
	(M2Options_SetXCode): Ditto.
	(M2Options_SetCompilerDebugging): Ditto.
	(M2Options_SetQuadDebugging): Ditto.
	(M2Options_SetDebugTraceQuad): Ditto.
	(M2Options_SetDebugTraceAPI): Ditto.
	(M2Options_SetSources): Ditto.
	(M2Options_SetUnboundedByReference): Ditto.
	(M2Options_SetDumpSystemExports): Ditto.
	(M2Options_SetOptimizing): Ditto.
	(M2Options_SetQuiet): Ditto.
	(M2Options_SetCC1Quiet): Ditto.
	(M2Options_SetCpp): Ditto.
	(M2Options_SetSwig): Ditto.
	(M2Options_SetWholeProgram): Ditto.
	(M2Options_SetDebugFunctionLineNumbers): Ditto.
	(M2Options_SetGenerateStatementNote): Ditto.
	(M2Options_GetCpp): Ditto.
	(M2Options_GetM2g): Ditto.
	(M2Options_SetM2g): Ditto.
	(M2Options_SetLowerCaseKeywords): Ditto.
	(M2Options_SetVerbose): Ditto.
	(M2Options_SetUnusedVariableChecking): Ditto.
	(M2Options_SetUnusedParameterChecking): Ditto.
	(M2Options_SetStrictTypeChecking): Ditto.
	(M2Options_SetWall): Ditto.
	(M2Options_SetSaveTemps): Ditto.
	(M2Options_GetSaveTemps): Ditto.
	(M2Options_SetScaffoldStatic): Ditto.
	(M2Options_SetScaffoldDynamic): Ditto.
	(M2Options_SetScaffoldMain): Ditto.
	(M2Options_SetGenModuleList): Ditto.
	(M2Options_SetShared): Ditto.
	* gm2-libs-ch/M2LINK.c: Ditto.
	* gm2-libs-ch/m2rts.h (M2RTS_RequestDependant): Replace
	const char * with const void *.
	(M2RTS_RegisterModule): Ditto.
	(M2RTS_ConstructModules): Ditto.
	* gm2-gcc/m2decl.def (DetermineSizeOfConstant): New parameter
	issueError.
	* gm2-gcc/m2decl.h (DetermineSizeOfConstant): New parameter
	issueError.

2023-03-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/109089
	* gm2-compiler/M2GCCDeclare.mod (DeclareKnownType): Import.
	* gm2-gcc/gcc-consolidation.h (stdbool.h): Include.
	* gm2-gcc/init.h (defined): Change block start.
	* gm2-gcc/m2block.cc: Change FALSE to false, change TRUE to true.
	* gm2-gcc/m2block.h: Change int to bool.
	* gm2-gcc/m2builtins.cc: Ditto.
	* gm2-gcc/m2builtins.h: Ditto.
	* gm2-gcc/m2convert.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2convert.h: Change int to bool.
	* gm2-gcc/m2decl.cc: Change int to bool.
	* gm2-gcc/m2decl.h: Change int to bool.
	* gm2-gcc/m2expr.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2expr.h: Change int to bool.
	* gm2-gcc/m2statement.cc: Change FALSE to false, TRUE to true and
	int to bool.
	* gm2-gcc/m2statement.h: Change int to bool.
	* gm2-gcc/m2top.cc: Change int to bool.
	* gm2-gcc/m2top.h: Change int to bool.
	* gm2-gcc/m2tree.cc: Change int to bool.
	* gm2-gcc/m2tree.h: Change int to bool.
	* gm2-gcc/m2type.cc: Change int to bool.
	* gm2-gcc/m2type.h: Change int to bool.
	* gm2-lang.cc (convert_loc): Call convert_to_integer for BOOLEAN_TYPE.
	* gm2-libs/Builtins.def (isfinitef): Change return value from
	BOOLEAN to INTEGER.
	(isfinite): Ditto.
	(isfinitel): Ditto.
	* gm2-libs/Builtins.mod (isfinitef): Change return value from
	BOOLEAN to INTEGER.
	(isfinite): Ditto.
	(isfinitel): Ditto.
	* mc-boot/GASCII.cc: Rebuild.
	* mc-boot/GASCII.h: Rebuild.
	* mc-boot/GArgs.cc: Rebuild.
	* mc-boot/GArgs.h: Rebuild.
	* mc-boot/GAssertion.cc: Rebuild.
	* mc-boot/GAssertion.h: Rebuild.
	* mc-boot/GBreak.cc: Rebuild.
	* mc-boot/GBreak.h: Rebuild.
	* mc-boot/GCOROUTINES.h: Rebuild.
	* mc-boot/GCmdArgs.cc: Rebuild.
	* mc-boot/GCmdArgs.h: Rebuild.
	* mc-boot/GDebug.cc: Rebuild.
	* mc-boot/GDebug.h: Rebuild.
	* mc-boot/GDynamicStrings.cc: Rebuild.
	* mc-boot/GDynamicStrings.h: Rebuild.
	* mc-boot/GEnvironment.cc: Rebuild.
	* mc-boot/GEnvironment.h: Rebuild.
	* mc-boot/GFIO.cc: Rebuild.
	* mc-boot/GFIO.h: Rebuild.
	* mc-boot/GFormatStrings.cc: Rebuild.
	* mc-boot/GFormatStrings.h: Rebuild.
	* mc-boot/GFpuIO.cc: Rebuild.
	* mc-boot/GFpuIO.h: Rebuild.
	* mc-boot/GIO.cc: Rebuild.
	* mc-boot/GIO.h: Rebuild.
	* mc-boot/GIndexing.cc: Rebuild.
	* mc-boot/GIndexing.h: Rebuild.
	* mc-boot/GM2Dependent.cc: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.cc: Rebuild.
	* mc-boot/GM2EXCEPTION.h: Rebuild.
	* mc-boot/GM2LINK.h: Rebuild.
	* mc-boot/GM2RTS.cc: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GMemUtils.cc: Rebuild.
	* mc-boot/GMemUtils.h: Rebuild.
	* mc-boot/GNumberIO.cc: Rebuild.
	* mc-boot/GNumberIO.h: Rebuild.
	* mc-boot/GPushBackInput.cc: Rebuild.
	* mc-boot/GPushBackInput.h: Rebuild.
	* mc-boot/GRTExceptions.cc: Rebuild.
	* mc-boot/GRTExceptions.h: Rebuild.
	* mc-boot/GRTco.h: Rebuild.
	* mc-boot/GRTentity.h: Rebuild.
	* mc-boot/GRTint.cc: Rebuild.
	* mc-boot/GRTint.h: Rebuild.
	* mc-boot/GSArgs.cc: Rebuild.
	* mc-boot/GSArgs.h: Rebuild.
	* mc-boot/GSFIO.cc: Rebuild.
	* mc-boot/GSFIO.h: Rebuild.
	* mc-boot/GSYSTEM.h: Rebuild.
	* mc-boot/GSelective.h: Rebuild.
	* mc-boot/GStdIO.cc: Rebuild.
	* mc-boot/GStdIO.h: Rebuild.
	* mc-boot/GStorage.cc: Rebuild.
	* mc-boot/GStorage.h: Rebuild.
	* mc-boot/GStrCase.cc: Rebuild.
	* mc-boot/GStrCase.h: Rebuild.
	* mc-boot/GStrIO.cc: Rebuild.
	* mc-boot/GStrIO.h: Rebuild.
	* mc-boot/GStrLib.cc: Rebuild.
	* mc-boot/GStrLib.h: Rebuild.
	* mc-boot/GStringConvert.cc: Rebuild.
	* mc-boot/GStringConvert.h: Rebuild.
	* mc-boot/GSysExceptions.h: Rebuild.
	* mc-boot/GSysStorage.cc: Rebuild.
	* mc-boot/GSysStorage.h: Rebuild.
	* mc-boot/GTimeString.cc: Rebuild.
	* mc-boot/GTimeString.h: Rebuild.
	* mc-boot/GUnixArgs.h: Rebuild.
	* mc-boot/Galists.cc: Rebuild.
	* mc-boot/Galists.h: Rebuild.
	* mc-boot/Gdecl.cc: Rebuild.
	* mc-boot/Gdecl.h: Rebuild.
	* mc-boot/Gdtoa.h: Rebuild.
	* mc-boot/Gerrno.h: Rebuild.
	* mc-boot/Gkeyc.cc: Rebuild.
	* mc-boot/Gkeyc.h: Rebuild.
	* mc-boot/Gldtoa.h: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/Glibm.h: Rebuild.
	* mc-boot/Glists.cc: Rebuild.
	* mc-boot/Glists.h: Rebuild.
	* mc-boot/GmcComment.cc: Rebuild.
	* mc-boot/GmcComment.h: Rebuild.
	* mc-boot/GmcComp.cc: Rebuild.
	* mc-boot/GmcComp.h: Rebuild.
	* mc-boot/GmcDebug.cc: Rebuild.
	* mc-boot/GmcDebug.h: Rebuild.
	* mc-boot/GmcError.cc: Rebuild.
	* mc-boot/GmcError.h: Rebuild.
	* mc-boot/GmcFileName.cc: Rebuild.
	* mc-boot/GmcFileName.h: Rebuild.
	* mc-boot/GmcLexBuf.cc: Rebuild.
	* mc-boot/GmcLexBuf.h: Rebuild.
	* mc-boot/GmcMetaError.cc: Rebuild.
	* mc-boot/GmcMetaError.h: Rebuild.
	* mc-boot/GmcOptions.cc: Rebuild.
	* mc-boot/GmcOptions.h: Rebuild.
	* mc-boot/GmcPreprocess.cc: Rebuild.
	* mc-boot/GmcPreprocess.h: Rebuild.
	* mc-boot/GmcPretty.cc: Rebuild.
	* mc-boot/GmcPretty.h: Rebuild.
	* mc-boot/GmcPrintf.cc: Rebuild.
	* mc-boot/GmcPrintf.h: Rebuild.
	* mc-boot/GmcQuiet.cc: Rebuild.
	* mc-boot/GmcQuiet.h: Rebuild.
	* mc-boot/GmcReserved.cc: Rebuild.
	* mc-boot/GmcReserved.h: Rebuild.
	* mc-boot/GmcSearch.cc: Rebuild.
	* mc-boot/GmcSearch.h: Rebuild.
	* mc-boot/GmcStack.cc: Rebuild.
	* mc-boot/GmcStack.h: Rebuild.
	* mc-boot/GmcStream.cc: Rebuild.
	* mc-boot/GmcStream.h: Rebuild.
	* mc-boot/Gmcflex.h: Rebuild.
	* mc-boot/Gmcp1.cc: Rebuild.
	* mc-boot/Gmcp1.h: Rebuild.
	* mc-boot/Gmcp2.cc: Rebuild.
	* mc-boot/Gmcp2.h: Rebuild.
	* mc-boot/Gmcp3.cc: Rebuild.
	* mc-boot/Gmcp3.h: Rebuild.
	* mc-boot/Gmcp4.cc: Rebuild.
	* mc-boot/Gmcp4.h: Rebuild.
	* mc-boot/Gmcp5.cc: Rebuild.
	* mc-boot/Gmcp5.h: Rebuild.
	* mc-boot/GnameKey.cc: Rebuild.
	* mc-boot/GnameKey.h: Rebuild.
	* mc-boot/GsymbolKey.cc: Rebuild.
	* mc-boot/GsymbolKey.h: Rebuild.
	* mc-boot/Gtermios.h: Rebuild.
	* mc-boot/Gtop.cc: Rebuild.
	* mc-boot/Gvarargs.cc: Rebuild.
	* mc-boot/Gvarargs.h: Rebuild.
	* mc-boot/Gwlists.cc: Rebuild.
	* mc-boot/Gwlists.h: Rebuild.
	* mc-boot/Gwrapc.h: Rebuild.
	* mc/decl.mod (doBoolC): New procedure.
	(doBaseC): Call doBoolC.
	* mc/keyc.mod: Import useBool.
	(genBool): New procedure.
	(genDefs): Call genBool.
	* mc/mcOptions.def (useBool): New procedure.
	* mc/mcOptions.mod (useBool): New procedure.
	(useBoolType): New variable.
	(optionIs): Assign useBoolType to TRUE.

2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/GBuiltins.cc: New file.
	* mc-boot-ch/Gdtoa.cc: New file.
	* mc-boot-ch/Gerrno.cc: New file.
	* mc-boot-ch/Gldtoa.cc: New file.
	* mc-boot-ch/Gm2rtsdummy.cc: New file.
	* mc-boot/GASCII.cc: New file.
	* mc-boot/GArgs.cc: New file.
	* mc-boot/GAssertion.cc: New file.
	* mc-boot/GBreak.cc: New file.
	* mc-boot/GCmdArgs.cc: New file.
	* mc-boot/GDebug.cc: New file.
	* mc-boot/GDynamicStrings.cc: New file.
	* mc-boot/GEnvironment.cc: New file.
	* mc-boot/GFIO.cc: New file.
	* mc-boot/GFormatStrings.cc: New file.
	* mc-boot/GFpuIO.cc: New file.
	* mc-boot/GIO.cc: New file.
	* mc-boot/GIndexing.cc: New file.
	* mc-boot/GM2Dependent.cc: New file.
	* mc-boot/GM2EXCEPTION.cc: New file.
	* mc-boot/GM2RTS.cc: New file.
	* mc-boot/GMemUtils.cc: New file.
	* mc-boot/GNumberIO.cc: New file.
	* mc-boot/GPushBackInput.cc: New file.
	* mc-boot/GRTExceptions.cc: New file.
	* mc-boot/GRTint.cc: New file.
	* mc-boot/GSArgs.cc: New file.
	* mc-boot/GSFIO.cc: New file.
	* mc-boot/GStdIO.cc: New file.
	* mc-boot/GStorage.cc: New file.
	* mc-boot/GStrCase.cc: New file.
	* mc-boot/GStrIO.cc: New file.
	* mc-boot/GStrLib.cc: New file.
	* mc-boot/GStringConvert.cc: New file.
	* mc-boot/GSysStorage.cc: New file.
	* mc-boot/GTimeString.cc: New file.
	* mc-boot/Galists.cc: New file.
	* mc-boot/Gdecl.cc: New file.
	* mc-boot/Gkeyc.cc: New file.
	* mc-boot/Glists.cc: New file.
	* mc-boot/GmcComment.cc: New file.
	* mc-boot/GmcComp.cc: New file.
	* mc-boot/GmcDebug.cc: New file.
	* mc-boot/GmcError.cc: New file.
	* mc-boot/GmcFileName.cc: New file.
	* mc-boot/GmcLexBuf.cc: New file.
	* mc-boot/GmcMetaError.cc: New file.
	* mc-boot/GmcOptions.cc: New file.
	* mc-boot/GmcPreprocess.cc: New file.
	* mc-boot/GmcPretty.cc: New file.
	* mc-boot/GmcPrintf.cc: New file.
	* mc-boot/GmcQuiet.cc: New file.
	* mc-boot/GmcReserved.cc: New file.
	* mc-boot/GmcSearch.cc: New file.
	* mc-boot/GmcStack.cc: New file.
	* mc-boot/GmcStream.cc: New file.
	* mc-boot/Gmcp1.cc: New file.
	* mc-boot/Gmcp2.cc: New file.
	* mc-boot/Gmcp3.cc: New file.
	* mc-boot/Gmcp4.cc: New file.
	* mc-boot/Gmcp5.cc: New file.
	* mc-boot/GnameKey.cc: New file.
	* mc-boot/GsymbolKey.cc: New file.
	* mc-boot/Gtop.cc: New file.
	* mc-boot/Gvarargs.cc: New file.
	* mc-boot/Gwlists.cc: New file.
	* pge-boot/GASCII.cc: New file.
	* pge-boot/GArgs.cc: New file.
	* pge-boot/GAssertion.cc: New file.
	* pge-boot/GBuiltins.cc: New file.
	* pge-boot/GDebug.cc: New file.
	* pge-boot/GDynamicStrings.cc: New file.
	* pge-boot/GFIO.cc: New file.
	* pge-boot/GIO.cc: New file.
	* pge-boot/GIndexing.cc: New file.
	* pge-boot/GLists.cc: New file.
	* pge-boot/GM2Dependent.cc: New file.
	* pge-boot/GM2EXCEPTION.cc: New file.
	* pge-boot/GM2LINK.cc: New file.
	* pge-boot/GM2RTS.cc: New file.
	* pge-boot/GNameKey.cc: New file.
	* pge-boot/GNumberIO.cc: New file.
	* pge-boot/GOutput.cc: New file.
	* pge-boot/GPushBackInput.cc: New file.
	* pge-boot/GRTExceptions.cc: New file.
	* pge-boot/GRTco.cc: New file.
	* pge-boot/GSFIO.cc: New file.
	* pge-boot/GSYSTEM.cc: New file.
	* pge-boot/GSelective.cc: New file.
	* pge-boot/GStdIO.cc: New file.
	* pge-boot/GStorage.cc: New file.
	* pge-boot/GStrCase.cc: New file.
	* pge-boot/GStrIO.cc: New file.
	* pge-boot/GStrLib.cc: New file.
	* pge-boot/GSymbolKey.cc: New file.
	* pge-boot/GSysExceptions.cc: New file.
	* pge-boot/GSysStorage.cc: New file.
	* pge-boot/Gabort.cc: New file.
	* pge-boot/Gbnflex.cc: New file.
	* pge-boot/Gcbuiltin.cc: New file.
	* pge-boot/Gdtoa.cc: New file.
	* pge-boot/Gerrno.cc: New file.
	* pge-boot/Gldtoa.cc: New file.
	* pge-boot/Glibc.cc: New file.
	* pge-boot/Glibm.cc: New file.
	* pge-boot/Gmcrts.cc: New file.
	* pge-boot/Gpge.cc: New file.
	* pge-boot/Gwrapc.cc: New file.
	* pge-boot/main.cc: New file.
	* pge-boot/network.cc: New file.

2023-03-04  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (MC-LIB-BOOT-C): Rename to MC-LIB-BOOT-CC.
	(MC-BOOT-C): Rename to MC-BOOT-CC.
	(BUILD-MC-BOOT-C): Rename to BUILD-MC-BOOT-CC.
	(BUILD-MC-BOOT-AUTO-C): Rename to BUILD-MC-BOOT-AUTO-CC.
	(m2/mc-boot/$(SRC_PREFIX)%.o): Change source file extension to .cc.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	* Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Change
	source file extension to .cc.
	(m2/gm2-ppg-boot/main.o): Ditto.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
	to .cc.
	(m2/gm2-pg-boot/main.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)dtoa.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)errno.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
	(m2/gm2-pge-boot/$(SRC_PREFIX)pge.o): Ditto.
	(m2/gm2-pge-boot/main.o): Ditto.
	(mc-push): Ditto.
	(mc-clean): Ditto.
	(mc-stage2): Ditto.
	((objdir)/m2/mc-boot-gen): Ditto.
	(m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Ditto.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.c): Ditto.
	* mc-boot-ch/GBuiltins.c: Correct comment and rename.
	* mc-boot-ch/Gdtoa.c: Correct comment and rename.
	* mc-boot-ch/Gldtoa.c: Correct comment and rename
	* mc-boot-ch/Gtermios.cc: Rename from Gtermios.c.
	* mc-boot-ch/Gerrno.c: Rename.
	* mc-boot-ch/GRTco.c: Removed.
	* mc-boot/GASCII.c: Rename to mc-boot/GASCII.cc.
	* mc-boot/GArgs.c: Rename to mc-boot/GArgs.cc.
	* mc-boot/GAssertion.c: Rename to mc-boot/GAssertion.cc.
	* mc-boot/GBreak.c: Rename to mc-boot/GBreak.cc.
	* mc-boot/GCmdArgs.c: Rename to mc-boot/GCmdArgs.cc.
	* mc-boot/GDebug.c: Rename to mc-boot/GDebug.cc.
	* mc-boot/GDynamicStrings.c: Rename to mc-boot/GDynamicStrings.cc.
	* mc-boot/GEnvironment.c: Rename to mc-boot/GEnvironment.cc.
	* mc-boot/GFIO.c: Rename to mc-boot/GFIO.cc.
	* mc-boot/GFormatStrings.c: Rename to mc-boot/GFormatStrings.cc.
	* mc-boot/GFpuIO.c: Rename to mc-boot/GFpuIO.cc.
	* mc-boot/GIO.c: Rename to mc-boot/GIO.cc.
	* mc-boot/GIndexing.c: Rename to mc-boot/GIndexing.cc.
	* mc-boot/GM2Dependent.c: Rename to mc-boot/GM2Dependent.cc.
	* mc-boot/GM2EXCEPTION.c: Rename to mc-boot/GM2EXCEPTION.cc.
	* mc-boot/GM2RTS.c: Rename to mc-boot/GM2RTS.cc.
	* mc-boot/GMemUtils.c: Rename to mc-boot/GMemUtils.cc.
	* mc-boot/GNumberIO.c: Rename to mc-boot/GNumberIO.cc.
	* mc-boot/GPushBackInput.c: Rename to mc-boot/GPushBackInput.cc.
	* mc-boot/GRTExceptions.c: Rename to mc-boot/GRTExceptions.cc.
	* mc-boot/GRTint.c: Rename to mc-boot/GRTint.cc.
	* mc-boot/GSArgs.c: Rename to mc-boot/GSArgs.cc.
	* mc-boot/GSFIO.c: Rename to mc-boot/GSFIO.cc.
	* mc-boot/GStdIO.c: Rename to mc-boot/GStdIO.cc.
	* mc-boot/GStorage.c: Rename to mc-boot/GStorage.cc.
	* mc-boot/GStrCase.c: Rename to mc-boot/GStrCase.cc.
	* mc-boot/GStrIO.c: Rename to mc-boot/GStrIO.cc.
	* mc-boot/GStrLib.c: Rename to mc-boot/GStrLib.cc.
	* mc-boot/GStringConvert.c: Rename to mc-boot/GStringConvert.cc.
	* mc-boot/GSysStorage.c: Rename to mc-boot/GSysStorage.cc.
	* mc-boot/GTimeString.c: Rename to mc-boot/GTimeString.cc.
	* mc-boot/Galists.c: Rename to mc-boot/Galists.cc.
	* mc-boot/Gdecl.c: Rename to mc-boot/Gdecl.cc.
	* mc-boot/Gkeyc.c: Rename to mc-boot/Gkeyc.cc.
	* mc-boot/Glists.c: Rename to mc-boot/Glists.cc.
	* mc-boot/GmcComment.c: Rename to mc-boot/GmcComment.cc.
	* mc-boot/GmcComp.c: Rename to mc-boot/GmcComp.cc.
	* mc-boot/GmcDebug.c: Rename to mc-boot/GmcDebug.cc.
	* mc-boot/GmcError.c: Rename to mc-boot/GmcError.cc.
	* mc-boot/GmcFileName.c: Rename to mc-boot/GmcFileName.cc.
	* mc-boot/GmcLexBuf.c: Rename to mc-boot/GmcLexBuf.cc.
	* mc-boot/GmcMetaError.c: Rename to mc-boot/GmcMetaError.cc.
	* mc-boot/GmcOptions.c: Rename to mc-boot/GmcOptions.cc.
	* mc-boot/GmcPreprocess.c: Rename to mc-boot/GmcPreprocess.cc.
	* mc-boot/GmcPretty.c: Rename to mc-boot/GmcPretty.cc.
	* mc-boot/GmcPrintf.c: Rename to mc-boot/GmcPrintf.cc.
	* mc-boot/GmcQuiet.c: Rename to mc-boot/GmcQuiet.cc.
	* mc-boot/GmcReserved.c: Rename to mc-boot/GmcReserved.cc.
	* mc-boot/GmcSearch.c: Rename to mc-boot/GmcSearch.cc.
	* mc-boot/GmcStack.c: Rename to mc-boot/GmcStack.cc.
	* mc-boot/GmcStream.c: Rename to mc-boot/GmcStream.cc.
	* mc-boot/Gmcp1.c: Rename to mc-boot/Gmcp1.cc.
	* mc-boot/Gmcp2.c: Rename to mc-boot/Gmcp2.cc.
	* mc-boot/Gmcp3.c: Rename to mc-boot/Gmcp3.cc.
	* mc-boot/Gmcp4.c: Rename to mc-boot/Gmcp4.cc.
	* mc-boot/Gmcp5.c: Rename to mc-boot/Gmcp5.cc.
	* mc-boot/GnameKey.c: Rename to mc-boot/GnameKey.cc.
	* mc-boot/GsymbolKey.c: Rename to mc-boot/GsymbolKey.cc.
	* mc-boot/Gtop.c: Rename to mc-boot/Gtop.cc.
	* mc-boot/Gvarargs.c: Rename to mc-boot/Gvarargs.cc.
	* mc-boot/Gwlists.c: Rename to mc-boot/Gwlists.cc.
	* pge-boot/GASCII.c: Rename to pge-boot/GASCII.cc.
	* pge-boot/GArgs.c: Rename to pge-boot/GArgs.cc.
	* pge-boot/GAssertion.c: Rename to pge-boot/GAssertion.cc.
	* pge-boot/GBuiltins.c: Rename to pge-boot/GBuiltins.cc.
	* pge-boot/GDebug.c: Rename to pge-boot/GDebug.cc.
	* pge-boot/GDynamicStrings.c: Rename to pge-boot/GDynamicStrings.cc.
	* pge-boot/GFIO.c: Rename to pge-boot/GFIO.cc.
	* pge-boot/GIO.c: Rename to pge-boot/GIO.cc.
	* pge-boot/GIndexing.c: Rename to pge-boot/GIndexing.cc.
	* pge-boot/GLists.c: Rename to pge-boot/GLists.cc.
	* pge-boot/GM2Dependent.c: Rename to pge-boot/GM2Dependent.cc.
	* pge-boot/GM2EXCEPTION.c: Rename to pge-boot/GM2EXCEPTION.cc.
	* pge-boot/GM2LINK.c: Rename to pge-boot/GM2LINK.cc.
	* pge-boot/GM2RTS.c: Rename to pge-boot/GM2RTS.cc.
	* pge-boot/GNameKey.c: Rename to pge-boot/GNameKey.cc.
	* pge-boot/GNumberIO.c: Rename to pge-boot/GNumberIO.cc.
	* pge-boot/GOutput.c: Rename to pge-boot/GOutput.cc.
	* pge-boot/GPushBackInput.c: Rename to pge-boot/GPushBackInput.cc.
	* pge-boot/GRTExceptions.c: Rename to pge-boot/GRTExceptions.cc.
	* pge-boot/GRTco.c: Rename to pge-boot/GRTco.cc.
	* pge-boot/GSFIO.c: Rename to pge-boot/GSFIO.cc.
	* pge-boot/GSYSTEM.c: Rename to pge-boot/GSYSTEM.cc.
	* pge-boot/GSelective.c: Rename to pge-boot/GSelective.cc.
	* pge-boot/GStdIO.c: Rename to pge-boot/GStdIO.cc.
	* pge-boot/GStorage.c: Rename to pge-boot/GStorage.cc.
	* pge-boot/GStrCase.c: Rename to pge-boot/GStrCase.cc.
	* pge-boot/GStrIO.c: Rename to pge-boot/GStrIO.cc.
	* pge-boot/GStrLib.c: Rename to pge-boot/GStrLib.cc.
	* pge-boot/GSymbolKey.c: Rename to pge-boot/GSymbolKey.cc.
	* pge-boot/GSysExceptions.c: Rename to pge-boot/GSysExceptions.cc.
	* pge-boot/GSysStorage.c: Rename to pge-boot/GSysStorage.cc.
	* pge-boot/Gabort.c: Rename to pge-boot/Gabort.cc.
	* pge-boot/Gbnflex.c: Rename to pge-boot/Gbnflex.cc.
	* pge-boot/Gcbuiltin.c: Rename to pge-boot/Gcbuiltin.cc.
	* pge-boot/Gdtoa.c: Rename to pge-boot/Gdtoa.cc.
	* pge-boot/Gerrno.c: Rename to pge-boot/Gerrno.cc.
	* pge-boot/Gldtoa.c: Rename to pge-boot/Gldtoa.cc.
	* pge-boot/Glibc.c: Rename to pge-boot/Glibc.cc.
	* pge-boot/Glibm.c: Rename to pge-boot/Glibm.cc.
	* pge-boot/Gmcrts.c: Rename to pge-boot/Gmcrts.cc.
	* pge-boot/Gpge.c: Rename to pge-boot/Gpge.cc.
	* pge-boot/Gwrapc.c: Rename to pge-boot/Gwrapc.cc.
	* pge-boot/README: Correct description.
	* pge-boot/main.c: Rename to pge-boot/main.cc.
	* pge-boot/network.c: Rename to pge-boot/network.cc.

2023-02-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108956
	* Make-lang.in (m2/gm2-libs-boot/M2RTS.o): New specific rule to
	add the --suppress-noreturn option.
	* Make-maintainer.in (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
	(m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o): New
	specific rule to add the --suppress-noreturn option.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Add missing $(srcdir).
	* gm2-libs-ch/UnixArgs.cc (LIBNAME): New define.
	(_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs-ch/dtoa.cc (LIBNAME): New define.
	(_M2_dtoa_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs-ch/ldtoa.cc (LIBNAME): New define.
	(_M2_ldtoa_ctor): Add LIBNAME parameter to RegisterModule.
	* pge-boot/m2rts.h (M2RTS_RegisterModule): Add libname
	parameter.
	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule): Add libname
	parameter.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_ctor): Remove.
	* pge-boot/GUnixArgs.cc (LIBNAME): New define.
	(_M2_UnixArgs_ctor): Add LIBNAME parameter to RegisterModule.
	* gm2-libs/RTint.def (AttachVector): Rename parameter.
	* mc-boot/GDynamicStrings.c: Rebuilt.
	* mc-boot/GFIO.c: Rebuilt.
	* mc-boot/GIndexing.c: Rebuilt.
	* mc-boot/GM2EXCEPTION.c: Rebuilt.
	* mc-boot/GPushBackInput.c: Rebuilt.
	* mc-boot/GRTExceptions.c: Rebuilt.
	* mc-boot/GRTint.c: Rebuilt.
	* mc-boot/GRTint.h: Rebuilt.
	* mc-boot/GStdIO.c: Rebuilt.
	* mc-boot/GStringConvert.c: Rebuilt.
	* mc-boot/GSysStorage.c: Rebuilt.
	* mc-boot/Gdecl.c: Rebuilt.
	* mc-boot/Gkeyc.c: Rebuilt.
	* mc-boot/GmcComment.c: Rebuilt.
	* mc-boot/GmcComp.c: Rebuilt.
	* mc-boot/GmcDebug.c: Rebuilt.
	* mc-boot/GmcMetaError.c: Rebuilt.
	* mc-boot/GmcOptions.c: Rebuilt.
	* mc-boot/GmcOptions.h: Rebuilt.
	* mc-boot/GmcStack.c: Rebuilt.
	* mc-boot/GnameKey.c: Rebuilt.
	* mc-boot/GsymbolKey.c: Rebuilt.
	* mc/decl.mod:: Rebuilt.
	* mc/mcOptions.def: Rebuilt.
	* mc/mcOptions.mod:: Rebuilt.
	* pge-boot/GDynamicStrings.c: Rebuilt.
	* pge-boot/GFIO.c: Rebuilt.
	* pge-boot/GIndexing.c: Rebuilt.
	* pge-boot/GM2EXCEPTION.c: Rebuilt.
	* pge-boot/GM2RTS.c: Rebuilt.
	* pge-boot/GNameKey.c: Rebuilt.
	* pge-boot/GPushBackInput.c: Rebuilt.
	* pge-boot/GRTExceptions.c: Rebuilt.
	* pge-boot/GStdIO.c: Rebuilt.
	* pge-boot/GSymbolKey.c: Rebuilt.
	* pge-boot/GSysStorage.c: Rebuilt.

2023-02-25  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108261
	* Make-lang.in (GM2-COMP-BOOT-DEFS): DynamicStringPath.def
	remove.  DynamicPath.def add.
	(GM2-COMP-BOOT-MODS): DynamicStringPath.mod remove.
	DynamicPath.mod add.
	* Make-maintainer.in (BUILD-BOOT-PPG-H): New dependency.
	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PPG-H) Add
	dependency.
	(PGE-DEF): New definition.
	(BUILD-BOOT-PG-H): New dependency.
	(m2/gm2-pg-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PG-H) Add
	dependency.
	(BUILD-BOOT-PGE-H): New dependency.
	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): $(BUILD-BOOT-PGE-H) Add
	dependency.
	(GM2PATH): Add pathname entries.
	(m2/boot-bin/mc-devel$(exeext)): Add m2/mc-boot-ch/Gm2rtsdummy.o
	dependency.
	(m2/boot-bin/mc-opt$(exeext)): Fix -I path.
	* gm2-compiler/DynamicStringPath.def: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): New procedure definition.
	* gm2-compiler/DynamicStringPath.mod: Renamed module to
	DynamicPath.
	(GetUserPath): Remove.
	(GetSystemPath): Remove.
	(SetUserPath): Remove.
	(SetSystemPath): Remove.
	(DumpPath): Remove Debugging conditional.
	* gm2-compiler/M2AsmUtil.mod: Import EqualArray, NulName and
	GetLibName.
	(Debugging): New declaration.
	(GetFullSymName): Re-implemented to prefix (mange) libname
	to any extern variable/procedure which is IsExportQualified.
	* gm2-compiler/M2Comp.mod (qprintLibName): New procedure.
	* gm2-compiler/M2Graph.mod (resolveImports): Add libname.
	* gm2-compiler/M2Options.def (SetM2Prefix): New procedure.
	(GetM2Prefix): New procedure function.
	(SetM2PathName): New procedure.
	(GetM2PathName): New procedure function.
	* gm2-compiler/M2Options.mod: (SetM2Prefix): New procedure implemented.
	(GetM2Prefix): New procedure function implemented.
	(SetM2PathName): New procedure implemented.
	(GetM2PathName): New procedure function implemented.
	(RuntimeModuleOverride): Set to DefaultRuntimeModuleOverride.
	* gm2-compiler/M2Quads.mod: Import GetLibName.
	(SafeRequestSym) Pass result of GetLibName to RequestDependant.
	(callRequestDependant): Add libname as a parameter.
	(BuildM2InitFunction): Add libname as a parameter.
	(BuildM2FiniFunction): Add libname as a parameter.
	(BuildM2CtorFunction): Add libname as a parameter.
	* gm2-compiler/M2Scaffold.mod (LookupModuleSym): Set LibName
	if a definition source was found.
	* gm2-compiler/M2Search.def (FindSourceFile): Add named library parameter.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/M2Search.mod (FindSourceFile): Reimplement.
	(FindSourceDefFile): Add named library parameter.
	(FindSourceModFile): Add named library parameter.
	* gm2-compiler/SymbolTable.def (MakeProcedureCtorExtern): Add
	libname parameter.
	(PutLibName): New procedure.
	(GetLibName): New procedure function.
	* gm2-compiler/SymbolTable.mod (MakeProcedureCtorExtern): Add
	libname parameter.
	(GenName): Add libname parameter.
	(InitCtorFields): Add moduleSym as a parameter.
	(PutCtorExtern): Add libname parameter to GenName.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init): Rename function...
	(_M2_DynamicPath_init): ...to this.
	(_M2_PathName_init): Added.
	* gm2-gcc/m2decl.cc (m2decl_DeclareM2linkStaticInitialization):
	Add m2pim as the manged component of the exported symbol.
	(m2decl_DeclareM2linkForcedModuleInitOrder): Add m2pim mangle prefix.
	* gm2-gcc/m2options.h (M2Options_SetM2Prefix): New function.
	(M2Options_GetM2Prefix): New function.
	(M2Options_SetM2PathName): New function.
	(M2Options_GetM2PathName): New function.
	* gm2-lang.cc (push_back_Ipath): New function.
	(add_one_import_path): New function.
	(gm2_langhook_handle_option): Record -I component.  Call
	SetM2PathName when -fm2-pathname= is seen.  Record -fm2-pathnameI
	component.  Call SetM2Prefix when -fm2-prefix= is seen.
	(gm2_langhook_post_options): Iterative over pathname entries
	and call SetM2PathName, SetSearchPath as appropriate.
	* gm2-libs-iso/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-iso/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs-min/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2Dependent.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.def (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/M2RTS.mod (ConstructModules): Add libname parameter.
	(DeconstructModules): Add libname parameter.
	(RegisterModule): Add libname parameter.
	(RequestDependant): Add libname parameter.
	* gm2-libs/RTint.mod (FindVector): Rename variables.
	(initInputVector): Rename variables.
	(initOutputVector): Rename variables.
	(InitTimeVector): Rename variables.
	(FindVectorNo): Rename variables.
	(FindPendingVector): Rename variables.
	(ReArmTimeVector): Rename variables.
	(GetTimeVector): Rename variables.
	(AttachVector): Rename variables.
	(AttachVector): Rename variables.
	(IncludeVector): Rename variables.
	(ExcludeVector): Rename variables.
	(AddFd): Rename variables.
	(AddFd): Rename variables.
	(DumpPendingQueue): Rename variables.
	(stop): Remove.
	(activatePending): Rename variables.
	(Listen): Rename variables.
	* gm2-libs/libc.def (snprintf): New function.
	* gm2-libs/sckt.def: Change all exported identifiers to be
	export qualified.
	* gm2spec.cc (push_back_Ipath): New function.
	(add_m2_I_path): New function.
	(lang_specific_driver): Skip -fm2-pathname= and remember pathname.
	Skip -I and record the path and current pathname.  Call add_m2_I_path.
	* lang-specs.h: Replace %{I*} with %{fm2-pathname*}.
	* lang.opt (-fm2-pathname=): New entry.
	(-fm2-pathname): New entry.
	(-fm2-prefix=): New entry.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_dep): New function.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): New method.
	* mc-boot-ch/Glibc.c (libc_snprintf): New function.
	* mc-boot-ch/m2rts.h (M2RTS_RequestDependant): Changed prototype.
	(M2RTS_RegisterModule): Changed prototype.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2Dependent.h: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glibc.h: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* pge-boot/GASCII.c: Rebuild.
	* pge-boot/GArgs.c: Rebuild.
	* pge-boot/GAssertion.c: Rebuild.
	* pge-boot/GDebug.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GLists.c: Rebuild.
	* pge-boot/GM2Dependent.c: Rebuild.
	* pge-boot/GM2Dependent.h: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GM2RTS.h: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GNumberIO.c: Rebuild.
	* pge-boot/GOutput.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GSFIO.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GStorage.c: Rebuild.
	* pge-boot/GStrCase.c: Rebuild.
	* pge-boot/GStrIO.c: Rebuild.
	* pge-boot/GStrLib.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysExceptions.c (_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	* pge-boot/GSysStorage.c: Rebuild.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/Gbnflex.c (_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	* pge-boot/Gerrno.c (_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	* pge-boot/Glibc.c (libc_snprintf): New function.
	* pge-boot/Glibc.h (libc_snprintf): New prototype.
	* pge-boot/Gpge.c (_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* pge-boot/Gtermios.cc (_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	* pge-boot/main.c (_M2_RTExceptions_finish): Rename this...
	(_M2_RTExceptions_fini): ... to this.
	(_M2_M2EXCEPTION_finish): Rename this...
	(_M2_M2EXCEPTION_fini): ... to this.
	(_M2_M2RTS_finish): Rename this...
	(_M2_M2RTS_fini): ... to this.
	(_M2_SysExceptions_finish): Rename this...
	(_M2_SysExceptions_fini): ... to this.
	(_M2_StrLib_finish): Rename this...
	(_M2_StrLib_fini): ... to this.
	(_M2_errno_finish): Rename this...
	(_M2_errno_fini): ... to this.
	(_M2_termios_finish): Rename this...
	(_M2_termios_fini): ... to this.
	(_M2_IO_finish): Rename this...
	(_M2_IO_fini): ... to this.
	(_M2_StdIO_finish): Rename this...
	(_M2_StdIO_fini): ... to this.
	(_M2_Debug_finish): Rename this...
	(_M2_Debug_fini): ... to this.
	(_M2_SysStorage_finish): Rename this...
	(_M2_SysStorage_fini): ... to this.
	(_M2_Storage_finish): Rename this...
	(_M2_Storage_fini): ... to this.
	(_M2_StrIO_finish): Rename this...
	(_M2_StrIO_fini): ... to this.
	(_M2_DynamicStrings_finish): Rename this...
	(_M2_DynamicStrings_fini): ... to this.
	(_M2_Assertion_finish): Rename this...
	(_M2_Assertion_fini): ... to this.
	(_M2_Indexing_finish): Rename this...
	(_M2_Indexing_fini): ... to this.
	(_M2_NameKey_finish): Rename this...
	(_M2_NameKey_fini): ... to this.
	(_M2_NumberIO_finish): Rename this...
	(_M2_NumberIO_fini): ... to this.
	(_M2_PushBackInput_finish): Rename this...
	(_M2_PushBackInput_fini): ... to this.
	(_M2_SymbolKey_finish): Rename this...
	(_M2_SymbolKey_fini): ... to this.
	(_M2_UnixArgs_finish): Rename this...
	(_M2_UnixArgs_fini): ... to this.
	(_M2_FIO_finish): Rename this...
	(_M2_FIO_fini): ... to this.
	(_M2_SFIO_finish): Rename this...
	(_M2_SFIO_fini): ... to this.
	(_M2_StrCase_finish): Rename this...
	(_M2_StrCase_fini): ... to this.
	(_M2_bnflex_finish): Rename this...
	(_M2_bnflex_fini): ... to this.
	(_M2_Lists_finish): Rename this...
	(_M2_Lists_fini): ... to this.
	(_M2_Args_finish): Rename this...
	(_M2_Args_fini): ... to this.
	(_M2_Output_finish): Rename this...
	(_M2_Output_fini): ... to this.
	(_M2_pge_finish): Rename this...
	(_M2_pge_fini): ... to this.
	* plugin/m2rte.cc (m2_runtime_error_calls): Change all runtime
	procedure names to their name mangled counterparts.
	* gm2-libs-iso/wrapsock.c: Removed.
	* gm2-libs-iso/wraptime.c: Removed.
	* mc-boot/Gpth.h: Removed.
	* gm2-compiler/PathName.def: New file.
	* gm2-compiler/PathName.mod: New file.
	* gm2-compiler/DynamicPath.def: New file.
	* gm2-compiler/DynamicPath.mod: New file.

2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108135
	* gm2-compiler/M2Search.mod (DSdbEnter): Comment out.
	(DSdbExit): Comment out.

2023-02-06  Co-Authored by: Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR modula2/107234
	* m2pp.cc (m2pp_integer_cst): Use
	HOST_WIDE_INT_PRINT_UNSIGNED as the format specifier.

2023-02-06  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Preprocess.mod (BaseName): Comment out.
	* gm2-lang.cc (opt): Remove.
	* gm2spec.cc (add_include): Remove.
	(full_libraries): Remove.
	(concat_option): Remove.

2023-02-03  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (TEXISRC): Remove m2/images/gnu.eps.
	(RSTSRC): Remove m2/images/gnu.eps.
	(doc/m2.dvi): Add $(objdir)/m2/images/gnu.eps.
	(doc/m2.pdf): Add $(objdir)/m2/images/gnu.eps.
	(M2_PDFFILES): New definition.
	(m2.install-pdf): New rule.
	(m2.pod): Add $(objdir)/m2/images/gnu.eps.
	(m2.info): Add $(objdir)/m2/images/gnu.eps.
	(m2.html): New rule.
	(m2/gpl_v3_without_node.texi): New rule.
	(plugin/m2rte$(soext)): Simplify mkinstalldirs.
	(cc1gm2$(exeext)): Ditto.
	(m2/stage1/cc1gm2$(exeext)): Ditto.
	(m2/gm2-gcc/%.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/mc-boot/$(SRC_PREFIX)%.o):Ditto.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
	(m2/mc-boot/main.o): Ditto.
	(m2/gm2-libs-boot/%.o):	Ditto.
	(m2/gm2-libs-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-libs-boot/RTcodummy.o): Ditto.
	(m2/gm2-libs-boot/wrapc.o): Ditto.
	(m2/gm2-libs-boot/M2LINK.o): Ditto.
	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
	(m2/gm2-libs-boot/choosetemp.o): Ditto.
	(m2/gm2-libs-boot/errno.o): Ditto.
	(m2/gm2-libs-boot/dtoa.o): Ditto.
	(m2/gm2-libs-boot/ldtoa.o): Ditto.
	(m2/gm2-libs-boot/termios.o): Ditto.
	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
	(m2/gm2-libs-boot/SysStorage.o): Ditto.
	(m2/gm2-compiler-boot/M2GCCDeclare.o): Ditto.
	(m2/gm2-compiler-boot/M2Error.o): Ditto.
	(m2/gm2-compiler-boot/%.o): Ditto.
	(m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler-boot/m2flex.o): Ditto.
	(m2/gm2-compiler/m2flex.c): Ditto.
	(m2/gm2-libiberty/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-compiler/m2flex.o): Ditto.
	(m2/gm2-compiler/%.o): Ditto.
	(m2/gm2-libs-iso/%.o): Ditto.
	(m2/gm2-libs/gm2-libs-host.h): Ditto.
	($(objdir)/m2/gm2-libs-min/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs-iso/SYSTEM.def):	Ditto.
	($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
	(m2/gm2-compiler/gm2.a): Ditto.
	(m2/gm2-libs-boot/libgm2.a): Ditto.
	(m2/gm2-compiler-boot/gm2.a): Ditto.
	(m2/boot-bin/mklink$(exeext)): Ditto.
	(m2/gm2-compiler-boot/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-compiler/%.mod): Ditto.
	(m2/gm2-compiler-boot/%.mod): Ditto.
	(m2/pge-boot/%.o): Ditto.

2023-02-01  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_FLAGS): Add -fno-return -Wreturn-type.
	(GM2_ISO_FLAGS): Add -fno-return -Wreturn-type.
	* Make-maintainer.in (GM2PATH): Split into separate -I components.
	(MC-LIB-DEFS): Add RTentity.def.
	(m2/boot-bin/mc-devel$(exeext)): Changed -I$(GM2PATH) to
	$(GM2PATH).
	(m2/boot-bin/mc-opt$(exeext)): Separate -I paths.
	(m2/mc/decl.o): Separate -I paths.
	(gm2-bootstrap): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.h): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)decl.c): Separate -I paths.
	(m2/mc-boot-gen/$(SRC_PREFIX)%.c): Separate -I paths.
	(gm2.verifyparanoid): Separate -I paths.
	(gm2.verifystage12): Separate -I paths.
	* gm2-compiler/M2ALU.mod (GetConstructorElement): Add default
	Return NulSym.  Remove return from the error case.
	* gm2-compiler/M2Base.mod (ComplexToScalar): Return RType
	from the error case.
	(MixMetaTypes):  Return MakeError as a default.
	* gm2-compiler/M2GCCDeclare.mod (GetTypeMin): Return NulSym
	from the error case.
	(GetTypeMax): Return NulSym from the error case.
	* gm2-compiler/M2GenGCC.mod (IsExportedGcc): Replace Assert
	by InternalError.
	* gm2-compiler/M2Quads.mod (GetItemPointedTo): Add InternalError.
	(GetTypeMin): Add InternalError.
	(GetTypeMax): Add InternalError.
	* gm2-compiler/M2System.mod (InitSystem): Call
	PutProcedureNoReturn on Throw.
	* gm2-gcc/m2except.cc (m2except_InitExceptions): fn_throw_tree
	declare as noreturn.  fn_rethrow_tree declare as noreturn.
	* gm2-libs-coroutines/Debug.def (Halt): Add noreturn attribute.
	* gm2-libs-coroutines/SYSTEM.def (THROW): Add noreturn attribute.
	* gm2-libs-iso/ClientSocket.mod (dorbytes): Add return FALSE.
	* gm2-libs-iso/EXCEPTIONS.def (RAISE): Add noreturn attribute.
	* gm2-libs-iso/IOLink.def (RAISEdevException): Add noreturn attribute.
	* gm2-libs-iso/M2RTS.def (HALT): Add noreturn attribute.
	(Halt): Ditto.
	(HaltC): Ditto.
	(ErrorMessage): Ditto.
	(AssignmentException): Ditto.
	(ReturnException): Ditto.
	(IncException): Ditto.
	(DecException): Ditto.
	(InclException): Ditto.
	(ExclException): Ditto.
	(ShiftException): Ditto.
	(RotateException): Ditto.
	(StaticArraySubscriptException): Ditto.
	(DynamicArraySubscriptException): Ditto.
	(ForLoopBeginException): Ditto.
	(ForLoopToException): Ditto.
	(ForLoopEndException): Ditto.
	(PointerNilException): Ditto.
	(NoReturnException): Ditto.
	(CaseException): Ditto.
	(WholeNonPosDivException): Ditto.
	(WholeNonPosModException): Ditto.
	(WholeZeroDivException): Ditto.
	(WholeZeroRemException): Ditto.
	(WholeValueException): Ditto.
	(RealValueException): Ditto.
	(ParameterException): Ditto.
	(NoException): Ditto.
	* gm2-libs-iso/SYSTEM.def (THROW): Ditto.
	* gm2-libs-iso/TermFile.mod (dorbytes): Add default return FALSE.
	* gm2-libs-min/M2RTS.def: Add noreturn attribute.
	* gm2-libs/FIO.mod (BufferedRead): Return -1.
	(getFileName): Return NIL.
	(getFileNameLength): Return 0.
	* gm2-libs/M2RTS.def (HaltC): Add noreturn attribute.
	(AssignmentException): Ditto.
	(ReturnException): Ditto.
	(IncException): Ditto.
	(DecException): Ditto.
	(InclException): Ditto.
	(ExclException): Ditto.
	(ShiftException): Ditto.
	(RotateException): Ditto.
	(StaticArraySubscriptException): Ditto.
	(DynamicArraySubscriptException): Ditto.
	(ForLoopBeginException): Ditto.
	(ForLoopToException): Ditto.
	(ForLoopEndException): Ditto.
	(PointerNilException): Ditto.
	(NoReturnException): Ditto.
	(CaseException): Ditto.
	(WholeNonPosDivException): Ditto.
	(WholeNonPosModException): Ditto.
	(WholeZeroDivException): Ditto.
	(WholeZeroRemException): Ditto.
	(WholeValueException): Ditto.
	(RealValueException): Ditto.
	(ParameterException): Ditto.
	(NoException): Ditto.
	* gm2-libs/RTExceptions.def (Raise): Ditto.
	* gm2-libs/RTExceptions.mod (InvokeHandler): Ditto.
	* gm2-libs/SYSTEM.def (THROW): Ditto.
	* m2.flex (_M2_m2flex_fini): Remamed to...
	(_M2_m2flex_finish): ...here.
	* mc-boot-ch/GBuiltins.c (_M2_Builtins_finish): Remamed to...
	(_M2_Builtins_fini): ...this.
	* mc-boot-ch/GRTco.c (_M2_RTco_finish): Remamed to...
	(_M2_RTco_fini): ...this.
	* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_finish): Remamed to...
	(_M2_SYSTEM_fini): ...this.
	* mc-boot-ch/GSelective.c (_M2_Selective_finish): Remamed to...
	(_M2_Selective_fini): ...this.
	* mc-boot-ch/GSysExceptions.c (_M2_SysExceptions_init): Add
	parameters.
	(_M2_SysExceptions_finish): Remamed to...
	(_M2_SysExceptions_fini): ...this.
	* mc-boot-ch/GUnixArgs.cc (_M2_UnixArgs_finish): Remamed to...
	(_M2_UnixArgs_fini): ...this.
	(_M2_UnixArgs_ctor::_M2_UnixArgs_ctor): Change parameter
	to _M2_UnixArgs_fini.
	* mc-boot-ch/Gdtoa.c (_M2_dtoa_finish): Remamed to...
	(_M2_dtoa_fini): ...this.
	* mc-boot-ch/Gerrno.c (_M2_errno_finish): Remamed to...
	(_M2_errno_fini): ...this.
	* mc-boot-ch/Gldtoa.c (_M2_ldtoa_finish): Remamed to...
	(_M2_ldtoa_fini): ...this.
	* mc-boot-ch/Gtermios.cc (_M2_termios_init): Add parameters.
	(_M2_termios_finish): Remamed to...
	(_M2_termios_fini): ...this.
	* mc-boot-ch/Gwrapc.c (_M2_wrapc_init): Add parameters.
	(_M2_wrapc_finish): Remamed to...
	(_M2_wrapc_fini): ...this.
	* mc-boot/GASCII.c: Rebuild.
	* mc-boot/GArgs.c: Rebuild.
	* mc-boot/GAssertion.c: Rebuild.
	* mc-boot/GBreak.c: Rebuild.
	* mc-boot/GCmdArgs.c: Rebuild.
	* mc-boot/GDebug.c: Rebuild.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* mc-boot/GEnvironment.c: Rebuild.
	* mc-boot/GFIO.c: Rebuild.
	* mc-boot/GFormatStrings.c: Rebuild.
	* mc-boot/GFpuIO.c: Rebuild.
	* mc-boot/GIO.c: Rebuild.
	* mc-boot/GIndexing.c: Rebuild.
	* mc-boot/GM2Dependent.c: Rebuild.
	* mc-boot/GM2EXCEPTION.c: Rebuild.
	* mc-boot/GM2RTS.c: Rebuild.
	* mc-boot/GM2RTS.h: Rebuild.
	* mc-boot/GMemUtils.c: Rebuild.
	* mc-boot/GNumberIO.c: Rebuild.
	* mc-boot/GPushBackInput.c: Rebuild.
	* mc-boot/GRTExceptions.c: Rebuild.
	* mc-boot/GRTExceptions.h: Rebuild.
	* mc-boot/GRTco.h: Rebuild.
	* mc-boot/GRTint.c: Rebuild.
	* mc-boot/GSArgs.c: Rebuild.
	* mc-boot/GSFIO.c: Rebuild.
	* mc-boot/GStdIO.c: Rebuild.
	* mc-boot/GStorage.c: Rebuild.
	* mc-boot/GStrCase.c: Rebuild.
	* mc-boot/GStrIO.c: Rebuild.
	* mc-boot/GStrLib.c: Rebuild.
	* mc-boot/GStringConvert.c: Rebuild.
	* mc-boot/GSysStorage.c: Rebuild.
	* mc-boot/GTimeString.c: Rebuild.
	* mc-boot/Galists.c: Rebuild.
	* mc-boot/Gdecl.c: Rebuild.
	* mc-boot/Gkeyc.c: Rebuild.
	* mc-boot/Glists.c: Rebuild.
	* mc-boot/GmcComment.c: Rebuild.
	* mc-boot/GmcComp.c: Rebuild.
	* mc-boot/GmcDebug.c: Rebuild.
	* mc-boot/GmcError.c: Rebuild.
	* mc-boot/GmcFileName.c: Rebuild.
	* mc-boot/GmcLexBuf.c: Rebuild.
	* mc-boot/GmcMetaError.c: Rebuild.
	* mc-boot/GmcOptions.c: Rebuild.
	* mc-boot/GmcPreprocess.c: Rebuild.
	* mc-boot/GmcPretty.c: Rebuild.
	* mc-boot/GmcPrintf.c: Rebuild.
	* mc-boot/GmcQuiet.c: Rebuild.
	* mc-boot/GmcReserved.c: Rebuild.
	* mc-boot/GmcSearch.c: Rebuild.
	* mc-boot/GmcStack.c: Rebuild.
	* mc-boot/GmcStream.c: Rebuild.
	* mc-boot/Gmcp1.c: Rebuild.
	* mc-boot/Gmcp2.c: Rebuild.
	* mc-boot/Gmcp3.c: Rebuild.
	* mc-boot/Gmcp4.c: Rebuild.
	* mc-boot/Gmcp5.c: Rebuild.
	* mc-boot/GnameKey.c: Rebuild.
	* mc-boot/GsymbolKey.c: Rebuild.
	* mc-boot/Gtop.c: Rebuild.
	* mc-boot/Gvarargs.c: Rebuild.
	* mc-boot/Gwlists.c: Rebuild.
	* mc-boot/GRTentity.h: New file.
	* mc/decl.mod (scaffoldStatic): Change _finish to _fini.
	* mc/mc.flex (_M2_mcflex_fini): New function.
	(_M2_mcflex_finish): Remove function.
	* tools-src/mklink.c (GenerateFinishCalls): Change
	_finish to _fini.
	(GeneratePrototypes): Change _finish to _fini.

2023-01-31  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (gm2-libs.texi-check): Rename
	m2/gm2-libs-pim	to m2/gm2-libs-log.
	* gm2-libs-pim/BitBlockOps.def: Moved to...
	* gm2-libs-log/BitBlockOps.def: ...here.
	* gm2-libs-pim/BitBlockOps.mod: Moved to...
	* gm2-libs-log/BitBlockOps.mod: ...here.
	* gm2-libs-pim/BitByteOps.def: Moved to...
	* gm2-libs-log/BitByteOps.def: ...here.
	* gm2-libs-pim/BitByteOps.mod: Moved to...
	* gm2-libs-log/BitByteOps.mod: ...here.
	* gm2-libs-pim/BitWordOps.def: Moved to...
	* gm2-libs-log/BitWordOps.def: ...here.
	* gm2-libs-pim/BitWordOps.mod: Moved to...
	* gm2-libs-log/BitWordOps.mod: ...here.
	* gm2-libs-pim/BlockOps.def: Moved to...
	* gm2-libs-log/BlockOps.def: ...here.
	* gm2-libs-pim/BlockOps.mod: Moved to...
	* gm2-libs-log/BlockOps.mod: ...here.
	* gm2-libs-pim/Break.c: Moved to...
	* gm2-libs-log/Break.c: ...here.
	* gm2-libs-pim/Break.def: Moved to...
	* gm2-libs-log/Break.def: ...here.
	* gm2-libs-pim/CardinalIO.def: Moved to...
	* gm2-libs-log/CardinalIO.def: ...here.
	* gm2-libs-pim/CardinalIO.mod: Moved to...
	* gm2-libs-log/CardinalIO.mod: ...here.
	* gm2-libs-pim/Conversions.def: Moved to...
	* gm2-libs-log/Conversions.def: ...here.
	* gm2-libs-pim/Conversions.mod: Moved to...
	* gm2-libs-log/Conversions.mod: ...here.
	* gm2-libs-pim/DebugPMD.def: Moved to...
	* gm2-libs-log/DebugPMD.def: ...here.
	* gm2-libs-pim/DebugPMD.mod: Moved to...
	* gm2-libs-log/DebugPMD.mod: ...here.
	* gm2-libs-pim/DebugTrace.def: Moved to...
	* gm2-libs-log/DebugTrace.def: ...here.
	* gm2-libs-pim/DebugTrace.mod: Moved to...
	* gm2-libs-log/DebugTrace.mod: ...here.
	* gm2-libs-pim/Delay.def: Moved to...
	* gm2-libs-log/Delay.def: ...here.
	* gm2-libs-pim/Delay.mod: Moved to...
	* gm2-libs-log/Delay.mod: ...here.
	* gm2-libs-pim/Display.def: Moved to...
	* gm2-libs-log/Display.def: ...here.
	* gm2-libs-pim/Display.mod: Moved to...
	* gm2-libs-log/Display.mod: ...here.
	* gm2-libs-pim/ErrorCode.def: Moved to...
	* gm2-libs-log/ErrorCode.def: ...here.
	* gm2-libs-pim/ErrorCode.mod: Moved to...
	* gm2-libs-log/ErrorCode.mod: ...here.
	* gm2-libs-pim/FileSystem.def: Moved to...
	* gm2-libs-log/FileSystem.def: ...here.
	* gm2-libs-pim/FileSystem.mod: Moved to...
	* gm2-libs-log/FileSystem.mod: ...here.
	* gm2-libs-pim/FloatingUtilities.def: Moved to...
	* gm2-libs-log/FloatingUtilities.def: ...here.
	* gm2-libs-pim/FloatingUtilities.mod: Moved to...
	* gm2-libs-log/FloatingUtilities.mod: ...here.
	* gm2-libs-pim/InOut.def: Moved to...
	* gm2-libs-log/InOut.def: ...here.
	* gm2-libs-pim/InOut.mod: Moved to...
	* gm2-libs-log/InOut.mod: ...here.
	* gm2-libs-pim/Keyboard.def: Moved to...
	* gm2-libs-log/Keyboard.def: ...here.
	* gm2-libs-pim/Keyboard.mod: Moved to...
	* gm2-libs-log/Keyboard.mod: ...here.
	* gm2-libs-pim/LongIO.def: Moved to...
	* gm2-libs-log/LongIO.def: ...here.
	* gm2-libs-pim/LongIO.mod: Moved to...
	* gm2-libs-log/LongIO.mod: ...here.
	* gm2-libs-pim/NumberConversion.def: Moved to...
	* gm2-libs-log/NumberConversion.def: ...here.
	* gm2-libs-pim/NumberConversion.mod: Moved to...
	* gm2-libs-log/NumberConversion.mod: ...here.
	* gm2-libs-pim/README.texi: Moved to...
	* gm2-libs-log/README.texi: ...here.
	* gm2-libs-pim/Random.def: Moved to...
	* gm2-libs-log/Random.def: ...here.
	* gm2-libs-pim/Random.mod: Moved to...
	* gm2-libs-log/Random.mod: ...here.
	* gm2-libs-pim/RealConversions.def: Moved to...
	* gm2-libs-log/RealConversions.def: ...here.
	* gm2-libs-pim/RealConversions.mod: Moved to...
	* gm2-libs-log/RealConversions.mod: ...here.
	* gm2-libs-pim/RealInOut.def: Moved to...
	* gm2-libs-log/RealInOut.def: ...here.
	* gm2-libs-pim/RealInOut.mod: Moved to...
	* gm2-libs-log/RealInOut.mod: ...here.
	* gm2-libs-pim/Strings.def: Moved to...
	* gm2-libs-log/Strings.def: ...here.
	* gm2-libs-pim/Strings.mod: Moved to...
	* gm2-libs-log/Strings.mod: ...here.
	* gm2-libs-pim/Termbase.def: Moved to...
	* gm2-libs-log/Termbase.def: ...here.
	* gm2-libs-pim/Termbase.mod: Moved to...
	* gm2-libs-log/Termbase.mod: ...here.
	* gm2-libs-pim/Terminal.def: Moved to...
	* gm2-libs-log/Terminal.def: ...here.
	* gm2-libs-pim/Terminal.mod: Moved to...
	* gm2-libs-log/Terminal.mod: ...here.
	* gm2-libs-pim/TimeDate.def: Moved to...
	* gm2-libs-log/TimeDate.def: ...here.
	* gm2-libs-pim/TimeDate.mod: Moved to...
	* gm2-libs-log/TimeDate.mod: ...here.

2023-01-28  Iain Sandoe  <iain@sandoe.co.uk>

	* lang.opt: Claim Wreturn-type.

2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Comp.mod:  Import MetaString0.
	(ExamineCompilationUnit): New variable Message.
	Create and format error string.
	* gm2-compiler/M2LexBuf.mod: New variable SeenEof.
	(GetNonEofToken): New procedure.
	(Init): Set SeenEof to FALSE.
	(GetToken): Use GetNonEofToken instead of calls to
	m2flex.GetToken and GetToken.
	(AddTok): Detect eoftok and set SeenEof.

2023-01-27  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Options.def: Export GetMQ, SetMQ.
	* gm2-compiler/M2Preprocess.mod: (MakeSaveTempsFileName):
	Test NewDir against NIL.  Test Dumpdir against NIL.
	Test GetMD () against NIL.  Test GetMMD () against NIL.
	Test GetMQ () against NIL.  Test GetObj () against NIL.
	Test tempfile against NIL.
	* gm2-compiler/P2SymBuild.def: Export
	BuildNoReturnAttribute.

2023-01-27  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108555
	PR modula2/108182
	PR modula2/102343
	* gm2-lang.cc (gm2_langhook_option_lang_mask): Do not claim CL_C
	or CL_DRIVER.
	(gm2_langhook_init_options): Handle options that we want to pass
	to the preprocessor.
	* lang-specs.h: Pass -B and -save-temps to regular compile lines.
	* lang.opt: Add C and Driver options that Modula-2 intercepts for
	internal use. Reorder options into two sections and to collate.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2GCCDeclare.mod: Import IsProcedureNoReturn.
	(DeclareProcedureToGccWholeProgram): New variable declared and set
	returnType.  Pass returnType to BuildEndFunctionDeclaration.
	Extra parameter IsProcedureNoReturn passed to
	BuildEndFunctionDeclaration.
	* gm2-compiler/M2Quads.mod (BuildM2MainFunction): Correct
	scaffold comment and add extra return 0.
	* gm2-compiler/P2Build.bnf: Import BuildNoReturnAttribute.
	(ProcedureHeading): Process EndBuildFormalParameters before
	parsing AttributeNoReturn.
	(DefProcedureHeading): Process EndBuildFormalParameters before
	parsing AttributeNoReturn.
	(AttributeNoReturn): Call BuildNoReturnAttribute.
	* gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): New
	procedure.
	* gm2-compiler/P2SymBuild.mod (BuildNoReturnAttribute): New
	procedure.
	* gm2-compiler/SymbolTable.def (PutProcedureInline): Corrected
	comment.
	(PutProcedureNoReturn): New procedure.
	(IsProcedureNoReturn): New procedure function.
	* gm2-compiler/SymbolTable.mod (SymProcedure): IsNoReturn
	new field.
	(MakeProcedure): Initialize IsNoReturn to FALSE.
	(PutProcedureNoReturn): New procedure.
	(IsProcedureNoReturn): New procedure function.
	* gm2-gcc/m2decl.cc (m2decl_BuildEndFunctionDeclaration):
	Add extra parameter isnoreturn.  Set TREE_THIS_VOLATILE
	to isnoreturn.
	* gm2-gcc/m2decl.def (BuildEndFunctionDeclaration): Add
	extra parameter isnoreturn.
	* gm2-gcc/m2decl.h (m2decl_BuildEndFunctionDeclaration): Add
	extra parameter isnoreturn.
	* gm2-gcc/m2except.cc (m2except_InitExceptions): Change all
	function decl to pass an extra parameter isnoreturn.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* m2.flex (splitSlashStar): Fix comment so that /* does not
	appear inside the comment.

2023-01-26  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108553
	* gm2-lang.cc (gm2_langhook_init_options): Remove debug code.

2023-01-26  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/gm2config.h): Rewrite rule to be
	dependent upon m2/gm2config.aci.
	(m2/gm2config.aci): Newrule.
	* configure.ac (AC_CONFIG_HEADERS): Change destination
	to gm2config.aci.
	* configure: Regenerate.
	* gm2-libs/config-host: Regenerate.
	* gm2-compiler/M2GCCDeclare.mod (AddSymToWatch): Comment
	out.
	* gm2-compiler/M2Quads.mod (BuildConstHighFromSym): Remove
	Dim.
	(StartBuildWith): Call BuildStmtNoteTok.
	(BuildStmtNoteTok): New procedure.
	(BuildStmtNote): Re-implement re-factor into two
	procedures and call BuildStmtNoteTok.
	* gm2config.h.in: Remove.
	* gm2config.aci.in: New file.

2023-01-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/102343
	PR modula2/108182
	* gm2-compiler/M2Comp.mod: Early exit for pre-processor-only jobs.
	* gm2-compiler/M2Options.def (SetPPOnly, GetPPOnly, SetMD, GetMD,
	SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
	GetDumpDir):New.
	* gm2-compiler/M2Options.mod:(SetPPOnly, GetPPOnly, SetMD, GetMD,
	SetMMD, GetMMD, SetMQ, GetMQ, SetObj, GetObj, SetDumpDir,
	GetDumpDir):New.
	* gm2-compiler/M2Preprocess.def (PreprocessModule): Add flag to
	indicate the main file.
	* gm2-compiler/M2Preprocess.mod: Handle Preprocess-only jobs,
	handle MD, MMD and MQ options.
	* gm2-gcc/m2options.h (M2Options_SetPPOnly, M2Options_GetPPOnly,
	M2Options_SetDumpDir, M2Options_SetMD, M2Options_GetMD,
	M2Options_SetMMD, M2Options_GetMMD, M2Options_SetMQ, M2Options_GetMQ,
	M2Options_SetObj, M2Options_GetObj): New.
	* gm2-gcc/m2type.cc (m2type_InitBaseTypes): Early exit for pre-
	processor-only jobs.
	* gm2-lang.cc (gm2_langhook_init): Handle preprocess-only commands.
	(gm2_langhook_option_lang_mask): Claim C and Driver options so that
	we can intercept them for building pre-processor commands.
	(gm2_langhook_init_options): Collect the preprocessor line here.
	Save options that have different actions for preprocessor and compile
	commands.
	(gm2_langhook_handle_option): Only handle the modula-2 options here.
	(gm2_langhook_post_options): Do not create a back-end for pre-
	processor-only jobs.
	* gm2spec.cc (lang_specific_driver): Ignore PCH options, append a
	scaffold-main for cases where we are building a main module with
	-c.
	* lang-specs.h: Revise to handle preprocessor-only jobs and to
	consume pre-processed files.
	* lang.opt: Remove Driver and C options copies (we claim these
	separately).

2023-01-24  Co-Authored by: Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add
	DynamicStringPath.def.
	(GM2-COMP-BOOT-MODS): Add DynamicStringPath.mod.
	(GM2-COMP-DEFS): Add DynamicStringPath.def.
	(GM2-COMP-MODS): Add DynamicStringPath.mod.
	($(objdir)/m2/gm2-libs-min/SYSTEM.def): Split path into
	multiple -I components.
	($(objdir)/m2/gm2-libs/SYSTEM.def): Ditto.
	($(objdir)/m2/gm2-libs-coroutines/SYSTEM.def): Ditto.
	* gm2-compiler/M2Options.mod: Import DynamicStringPath.
	(SetSearchPath): Reimplement using DynamicStringPath
	procedures.
	* gm2-compiler/M2Search.def (InitSearchPath): Remove.
	(PrependSearchPath): Remove.
	* gm2-compiler/M2Search.mod (SFIO): Remove import.
	(DynamicStringPath): Add import.
	(Directory): Remove.
	(UserPath): Remove.
	(InitialPath): Remove.
	(InitSearchPath): Remove.
	(PrependSearchPath): Remove.
	(FindSourceFile): Re-implement.
	(FindSourceDefFile): Re-implement.
	(FindSourceModFile): Re-implement.
	* gm2-gcc/init.cc (_M2_DynamicStringPath_init):
	New prototype.
	(init_FrontEndInit): Call _M2_DynamicStringPath_init.
	* tools-src/makeSystem: Allow multiple -I paths.
	* gm2-compiler/DynamicStringPath.def: New file.
	* gm2-compiler/DynamicStringPath.mod: New file.
	* gm2-gcc/m2options.h (M2Options_SetMakeIncludePath): Add
	prototype.

2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* m2.flex (cpreprocessor): Add temporary variable
	which is initialized to 0.
	(commentCLevel): New variable.
	(endOfCComment): New function.
	(splitSlashStar): New function to split /* into / and *
	tokens.
	(COMMENTC): New flex state.
	("/*"): New rule to test whether we should treat /*
	as a single token or as two tokens.
	(<COMMENTC>.): New rule to skip a character.
	(<COMMENTC>\n.*): New rule to consume the line.
	(<COMMENTC>"*/"): New rule to call endOfCComment.

2023-01-24  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/RTco.def: Import RTentity.
	Declare RTco as a definition for C module.

2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108182
	PR modula2/108480
	* Make-lang.in: Pass libsubdir to the language init
	build.
	* gm2-lang.cc (INCLUDE_VECTOR): Define.
	(add_one_import_path): New.
	(add_m2_import_paths): New.
	(gm2_langhook_post_options): Arrange to add the include
	paths (and add the system ones) in the same order as C
	uses.
	* gm2spec.cc (build_archive_path): Remove.
	(add_default_combination): Remove.
	(add_default_archives): Remove.
	(add_default_libs): We no longer need a '-L' option, just
	emit the -l and each library in use.
	(build_include_path): Remove.
	(add_include): Remove.
	(add_default_includes): Remove.
	(library_installed): Remove.
	(check_valid_library): Remove.
	(check_valid_list): Remove.
	(convert_abbreviation): Diagnose unhandled cases.
	(lang_specific_driver): Skip options where we will add back
	a validated version.
	* lang-specs.h (M2CPP): Reformat, append %I when -fcpp is not
	in use.  Revise the cc1gm2 spec to omit mentioning options that
	are handled in the c pre-processor line.
	* lang.opt: Allow preprocessing and path options as input to the
	cc1gm2 invocation, so that they can be passed to the preprocessor
	invocation.

2023-01-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108405
	* gm2-libs-iso/Preemptive.mod (initPreemptive): Use a value for
	extra space that is divisible by common OS pagesizes.

2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs/Args.mod (GetArg): Check index before
	accessing array.
	* gm2-libs/M2Dependent.mod (toCString): Check index
	before accessing array.
	* mc-boot/GArgs.c: Rebuilt.
	* mc-boot/GM2Dependent.c: Rebuilt.
	* mc-boot/Gkeyc.c: Rebuilt.
	* mc/keyc.mod (seenUIntMin): Initialize once.
	(seenUIntMax): Initialize once.
	(checkLimits): Only test seenUIntMin and seenUIntMax
	once.
	* pge-boot/GArgs.c:  Rebuilt.
	* pge-boot/GM2Dependent.c: Rebuilt.

2023-01-20  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-gcc/m2statement.cc (gm2_gimplify_function_node):
	Remove.
	* gm2-libs/DynamicStrings.mod (Equal): Remove dead code.
	* m2.flex (<COMMENT>"<*"): Add {} for else statement.
	* m2pp.cc (hextree): Add conditional #ifdef DEBUGGING.
	* mc-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GDynamicStrings.c: Rebuild.
	* pge-boot/GFIO.c: Rebuild.
	* pge-boot/GIndexing.c: Rebuild.
	* pge-boot/GM2EXCEPTION.c: Rebuild.
	* pge-boot/GM2RTS.c: Rebuild.
	* pge-boot/GNameKey.c: Rebuild.
	* pge-boot/GPushBackInput.c: Rebuild.
	* pge-boot/GRTExceptions.c: Rebuild.
	* pge-boot/GStdIO.c: Rebuild.
	* pge-boot/GSymbolKey.c: Rebuild.
	* pge-boot/GSysStorage.c: Rebuild.

2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot/GM2RTS.c: Rebuilt.
	* mc-boot/GM2RTS.h: Rebuilt.
	* mc-boot/Gdecl.c: Rebuilt.
	* mc-boot/GmcOptions.c: Rebuilt.
	* mc/mcOptions.mod (displayVersion):
	Split first printf into three components

2023-01-17  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-iso/M2RTS.def (Halt): Parameter file renamed to filename.
	(HaltC): New procedure declaration.
	(ErrorMessage): Parameter file renamed to filename.
	* gm2-libs-iso/M2RTS.mod (Halt): Parameter file renamed to
	filename.
	(HaltC): New procedure implementation.
	(ErrorStringC): New procedure implementation.
	(ErrorMessageC): New procedure implementation.
	* gm2-libs/M2RTS.def (Halt): Parameter file renamed to filename.
	(HaltC): New procedure declaration.
	(ErrorMessage): Parameter file renamed to filename.
	* gm2-libs/M2RTS.mod (Halt): Parameter file renamed to filename.
	(HaltC): New procedure implementation.
	(ErrorStringC): New procedure implementation.
	(ErrorMessageC): New procedure implementation.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/Glibc.c (libc_time): New function.
	(libc_localtime): New function.
	* mc-boot/GDynamicStrings.c: Regenerate.
	* mc-boot/GFIO.c: Regenerate.
	* mc-boot/GFormatStrings.c: Regenerate.
	* mc-boot/GIndexing.c: Regenerate.
	* mc-boot/GM2Dependent.c: Regenerate.
	* mc-boot/GM2EXCEPTION.c: Regenerate.
	* mc-boot/GPushBackInput.c: Regenerate.
	* mc-boot/GRTExceptions.c: Regenerate.
	* mc-boot/GRTint.c: Regenerate.
	* mc-boot/GStdIO.c: Regenerate.
	* mc-boot/GStringConvert.c: Regenerate.
	* mc-boot/GSysStorage.c: Regenerate.
	* mc-boot/Gdecl.c: Regenerate.
	* mc-boot/GmcComment.c: Regenerate.
	* mc-boot/GmcComp.c: Regenerate.
	* mc-boot/GmcDebug.c: Regenerate.
	* mc-boot/GmcMetaError.c: Regenerate.
	* mc-boot/GmcOptions.c: Regenerate.
	* mc-boot/GmcStack.c: Regenerate.
	* mc-boot/GnameKey.c: Regenerate.
	* mc-boot/GsymbolKey.c: Regenerate.
	* mc-boot/Gkeyc.c: Regenerate.
	* mc/decl.mod (putFieldRecord): Change NulName to NulKey
	and fix type comparision.
	* mc/mcOptions.mod (YEAR): Remove.
	(getYear): New procedure function.
	(displayVersion): Use result from getYear instead of YEAR.
	Emit boilerplate for GPL v3.
	(gplBody): Use result from getYear instead of YEAR.
	(glplBody): Use result from getYear instead of YEAR.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2Quads.mod (AssignUnboundedVar): Check Type
	against NulSym and call MetaErrorT1 if necessary.
	(AssignUnboundedNonVar): Check Type against NulSym and
	call MetaErrorT1 if necessary.
	(BuildDesignatorPointer): Check Type1 against NulSym and
	call MetaErrorT1 if necessary.

2023-01-16  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc/mcOptions.mod (displayVersion): Change GPLv2 to GPLv3.
	(YEAR) set to 2023.

2023-01-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-compiler/M2LexBuf.mod (isSrcToken): Add block comment.
	Remove dead code.
	* gm2-compiler/M2Quads.def (BuildNot): Add notTokPos parameter.
	* gm2-compiler/M2Quads.mod (BuildNot): Add notTokPos parameter.
	Create and push virtual token.
	(PopBooltok): New procedure.
	(PushBooltok): New procedure.
	(PushBool): Re-implement using PushBooltok.
	(PopBool): Re-implement using PopBooltok.
	* gm2-compiler/P3Build.bnf (ConstFactor): Record token
	position of NOT.
	(Factor): Record token position	of NOT.
	* gm2-compiler/PHBuild.bnf (ConstFactor): Record token
	position of NOT.
	(Relation): Push token position.
	(UnaryOrConstTerm): Push token position.
	(AddOperator): Push token position.
	(MulOperator): Push token position.

2023-01-13  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2-gcc/m2options.h (M2Options_SetVerbose): Export the
	function.
	* gm2-lang.cc: Handle OPT_v, passing it to the compiler.
	* lang-specs.h: Pass -v to cc1gm2.

2023-01-13  Gaius Mulley  <gaiusmod2@gmail.com>

	* mc-boot-ch/GRTco.c (RTco_select): Add return 0.
	* pge-boot/GRTco.c (RTco_select): Add return 0.

2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/mc-boot/$(SRC_PREFIX)%.o): Add
	m2/gm2-libs/gm2-libs-host.h dependency.
	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Add
	m2/gm2-libs/gm2-libs-host.h dependency.

2023-01-10  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (GM2_1): Change -B path to m2/stage1.
	($(objdir)/m2/images/gnu.eps): Check and create dest dir
	if necessary.
	(gm2-libs.texi-check): Check and create dir m2/gm2-libs-pim,
	m2/gm2-libs-iso and m2/gm2-libs if necessary.
	($(objdir)/m2/gm2-compiler-boot): Remove.
	($(objdir)/m2/gm2-libs-boot): Remove.
	($(objdir)/m2/gm2-libs-libiberty): Remove.
	($(objdir)/m2/gm2-libiberty): Remove.
	($(objdir)/m2/gm2-gcc): Remove.
	($(objdir)/m2/gm2-compiler): Remove.
	($(objdir)/m2/gm2-libs): Remove.
	($(objdir)/m2/gm2-libs-iso): Remove.
	($(objdir)/m2/gm2-libs-min): Remove.
	($(objdir)/m2/gm2-compiler-paranoid): Remove.
	($(objdir)/m2/gm2-libs-paranoid): Remove.
	($(objdir)/m2/gm2-compiler-verify): Remove.
	($(objdir)/m2/boot-bin): Remove.
	($(objdir)/m2/gm2-libs-pim): Remove.
	($(objdir)/m2/gm2-libs-coroutines): Remove.
	(stage1/m2): Remove.
	(stage2/m2): Remove.
	(stage3/m2): Remove.
	(m2.stageprofile): New rule.
	(m2.stagefeedback): New rule.
	(cc1gm2$(exeext)): Change dependent name.
	(m2/stage2/cc1gm2$(exeext)): Change dependent name.
	Check and create dest dir.
	(m2/stage1/cc1gm2$(exeext)): Check and create dest dir
	if necessary.
	(m2/gm2-gcc/%.o): Ditto.
	(m2/gm2-gcc/rtegraph.o): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/gm2-gcc/$(SRC_PREFIX)%.h): Ditto.
	(m2/mc-boot): Ditto.
	(m2/mc-boot-ch): Ditto.
	(m2/gm2-libs-boot): Ditto.
	(m2/gm2-compiler-boot): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libiberty): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libs-iso): Ditto.
	(m2/gm2-libs): Ditto.
	(m2/gm2-libs-min): Ditto.
	(m2/gm2-libs-coroutines): Ditto.
	(m2/boot-bin): Ditto.
	(m2/pge-boot): Ditto.
	(m2/pge-boot): Ditto.
	* Make-maintainer.in (m2/gm2-ppg-boot): Check and create
	dest dir if necessary.
	(m2): Ditto.
	(m2/gm2-ppg-boot): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-auto): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-pge-boot): Ditto.
	($(objdir)/plugin): Ditto.
	($(objdir)/m2/mc-boot-ch): Ditto.
	($(objdir)/m2/mc-boot-gen): Ditto.
	(m2/boot-bin): Ditto.
	(m2/mc): Ditto.
	(m2/mc-obj): Ditto.
	($(objdir)/m2/gm2-ppg-boot): Ditto.
	($(objdir)/m2/gm2-pg-boot): Ditto.
	($(objdir)/m2/gm2-pge-boot): Ditto.
	(m2/mc-boot-gen): Ditto.
	(m2/m2obj3): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	* config-lang.in (m2/gm2-compiler-boot): Remove mkdir.
	(m2/gm2-libs-boot): Ditto.
	(m2/gm2-ici-boot): Ditto.
	(m2/gm2-libiberty): Ditto.
	(m2/gm2-gcc): Ditto.
	(m2/gm2-compiler): Ditto.
	(m2/gm2-libs): Ditto.
	(m2/gm2-libs-iso): Ditto.
	(m2/gm2-compiler-paranoid): Ditto.
	(m2/gm2-libs-paranoid): Ditto.
	(m2/gm2-compiler-verify): Ditto.
	(m2/boot-bin): Ditto.
	(m2/gm2-libs-pim): Ditto.
	(m2/gm2-libs-coroutines): Ditto.
	(m2/gm2-libs-min): Ditto.
	(m2/pge-boot): Ditto.
	(plugin): Ditto.
	(stage1/m2): Ditto.
	(stage2/m2): Ditto.
	(stage3/m2): Ditto.
	(stage4/m2): Ditto.
	(m2/gm2-auto): Ditto.
	(m2/gm2-pg-boot): Ditto.
	(m2/gm2-pge-boot): Ditto.
	(m2/gm2-ppg-boot): Ditto.
	(m2/mc-boot): Ditto.
	(m2/mc-boot-ch): Ditto.
	(m2/mc-boot-gen): Ditto.

2023-01-09  Gaius Mulley  <gaiusmod2@gmail.com>

	* Make-lang.in (m2/pge-boot/%.o): Add m2/gm2config.h.
	* gm2-libs/config-host: Regenerate.

2023-01-07  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2-libs-min/libc.c (abort): Update declaration to match the
	expected form, add no-return attribute.
	(exit): Add no-return attribute.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/107631
	* gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl,
	significand, significandf, significandl.
	* gm2-libs/Builtins.def (significand): Likewise.
	* gm2-libs/Builtins.mod: Likewise.
	* target-independent/Builtins.texi: Likewise.
	* gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and
	ilogb*().
	* gm2-libs-iso/LowReal.mod: Likewise.
	* gm2-libs-iso/LowShort.mod: Likewise.

2023-01-05  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2-libs-min/M2RTS.def (ConstructModules): New procedure
	declaration.
	(DeconstructModules): New procedure declaration.
	* gm2-libs-min/M2RTS.mod (ConstructModules): New procedure
	dummy implementation.
	(DeconstructModules): New procedure dummy implementation.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2spec.cc (lang_specific_driver): Handle static-libgm2.
	* lang.opt: Add static-libgm2.

2023-01-05  Iain Sandoe  <iain@sandoe.co.uk>

	* gm2spec.cc (lang_specific_driver): Pass -static-libstdc++ on to
	the target driver if the linker does not support Bstatic/dynamic.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108183
	* gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Rework to use
	an extern "C" function with 'constructor' attribute.
	* gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Likewise.
	* gm2-libs-ch/ldtoa.cc (_M2_ldtoa_ctor): Likewise.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/108259
	* gm2-gcc/m2decl.cc (m2decl_DeclareModuleCtor): Make module
	registration constructors visible.

2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>

	* Make-lang.in (dvi, ps, pdf): Build in the gcc/doc directory, also
	use the configured tools for texi -> dvi and texi -> pdf.

2023-01-01  Iain Sandoe  <iain@sandoe.co.uk>
	    Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/108183
	* gm2-compiler/M2GCCDeclare.mod: Module registration constructors are
	externs to the builder of m2_link.

2022-12-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Iain Sandoe  <iain@sandoe.co.uk>

	PR modula2/107612
	* Make-lang.in (soext): Use .dylib for Darwin.
	(PLUGINLDFLAGS): Use dynmic lookup, set the plugin name, and append
	-nodefaultlibs to suppress the linking of libstdc++.
	Use INCINTL in compile lines for the plugin.

2022-12-21  Jakub Jelinek  <jakub@redhat.com>

	PR modula2/108153
	* gm2-gcc/m2linemap.def (location_t): Use CARDINAL instead of INTEGER.

2022-12-19  Jakub Jelinek  <jakub@redhat.com>

	* gm2-gcc/m2linemap.cc (m2linemap_ErrorAt, m2linemap_ErrorAtf,
	m2linemap_WarningAtf, m2linemap_NoteAtf, m2linemap_internal_error):
	Call functions with "%s", message rather than just message, so that
	% chars in message aren't treated as format specifiers.

2022-12-19  Jakub Jelinek  <jakub@redhat.com>

	PR modula2/108147
	* gm2-gcc/m2linemap.def (ErrorAtf, WarningAtf, NoteAtf):
	Comment out prototypes with varargs.
	* gm2-gcc/m2linemap.h (m2linemap_ErrorAtf, m2linemap_WarningAtf,
	m2linemap_NoteAtf): No longer varargs.
	* gm2-gcc/m2linemap.cc (m2linemap_ErrorAtf): Turned into a
	non-varargs wrapper around ...
	(m2linemap_ErrorAtf_1): ... this.  New static function.
	(m2linemap_WarningAtf): Turned into a non-varargs wrapper around ...
	(m2linemap_WarningAtf_1): ... this.  New static function.
	(m2linemap_NoteAtf): Turned into a non-varargs wrapper around ...
	(m2linemap_NoteAtf_1): ... this.  New static function.

2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* configure.ac: Stop probing for realpath.
	* tools-src/calcpath: Break dependency on realpath, cut
	and echo.
	* configure: Rebuilt.

2022-12-15  Gaius Mulley  <gaiusmod2@gmail.com>

	* gm2config.h.in: Rebuilt.

2022-12-14  Gaius Mulley  <gaiusmod2@gmail.com>

	* COPYING.FDL: New file.
	* COPYING.RUNTIME: New file.
	* COPYING3: New file.
	* COPYING3.LIB: New file.
	* Make-lang.in: New file.
	* Make-maintainer.in: New file.
	* NEWS: New file.
	* README: New file.
	* config-lang.in: New file.
	* config-make.in: New file.
	* configure.ac: New file.
	* gm2-compiler/CLexBuf.def: New file.
	* gm2-compiler/CLexBuf.mod: New file.
	* gm2-compiler/FifoQueue.def: New file.
	* gm2-compiler/FifoQueue.mod: New file.
	* gm2-compiler/Lists.def: New file.
	* gm2-compiler/Lists.mod: New file.
	* gm2-compiler/M2ALU.def: New file.
	* gm2-compiler/M2ALU.mod: New file.
	* gm2-compiler/M2AsmUtil.def: New file.
	* gm2-compiler/M2AsmUtil.mod: New file.
	* gm2-compiler/M2Base.def: New file.
	* gm2-compiler/M2Base.mod: New file.
	* gm2-compiler/M2BasicBlock.def: New file.
	* gm2-compiler/M2BasicBlock.mod: New file.
	* gm2-compiler/M2Batch.def: New file.
	* gm2-compiler/M2Batch.mod: New file.
	* gm2-compiler/M2Bitset.def: New file.
	* gm2-compiler/M2Bitset.mod: New file.
	* gm2-compiler/M2CaseList.def: New file.
	* gm2-compiler/M2CaseList.mod: New file.
	* gm2-compiler/M2Check.def: New file.
	* gm2-compiler/M2Check.mod: New file.
	* gm2-compiler/M2Code.def: New file.
	* gm2-compiler/M2Code.mod: New file.
	* gm2-compiler/M2ColorString.def: New file.
	* gm2-compiler/M2ColorString.mod: New file.
	* gm2-compiler/M2Comp.def: New file.
	* gm2-compiler/M2Comp.mod: New file.
	* gm2-compiler/M2Const.def: New file.
	* gm2-compiler/M2Const.mod: New file.
	* gm2-compiler/M2Debug.def: New file.
	* gm2-compiler/M2Debug.mod: New file.
	* gm2-compiler/M2DebugStack.def: New file.
	* gm2-compiler/M2DebugStack.mod: New file.
	* gm2-compiler/M2Defaults.def: New file.
	* gm2-compiler/M2Defaults.mod: New file.
	* gm2-compiler/M2DriverOptions.def: New file.
	* gm2-compiler/M2DriverOptions.mod: New file.
	* gm2-compiler/M2Emit.def: New file.
	* gm2-compiler/M2Emit.mod: New file.
	* gm2-compiler/M2Error.def: New file.
	* gm2-compiler/M2Error.mod: New file.
	* gm2-compiler/M2EvalSym.def: New file.
	* gm2-compiler/M2FileName.def: New file.
	* gm2-compiler/M2FileName.mod: New file.
	* gm2-compiler/M2GCCDeclare.def: New file.
	* gm2-compiler/M2GCCDeclare.mod: New file.
	* gm2-compiler/M2GenGCC.def: New file.
	* gm2-compiler/M2GenGCC.mod: New file.
	* gm2-compiler/M2Graph.def: New file.
	* gm2-compiler/M2Graph.mod: New file.
	* gm2-compiler/M2Lex.def: New file.
	* gm2-compiler/M2Lex.mod: New file.
	* gm2-compiler/M2LexBuf.def: New file.
	* gm2-compiler/M2LexBuf.mod: New file.
	* gm2-compiler/M2MetaError.def: New file.
	* gm2-compiler/M2MetaError.mod: New file.
	* gm2-compiler/M2Optimize.def: New file.
	* gm2-compiler/M2Optimize.mod: New file.
	* gm2-compiler/M2Options.def: New file.
	* gm2-compiler/M2Options.mod: New file.
	* gm2-compiler/M2Pass.def: New file.
	* gm2-compiler/M2Pass.mod: New file.
	* gm2-compiler/M2Preprocess.def: New file.
	* gm2-compiler/M2Preprocess.mod: New file.
	* gm2-compiler/M2Printf.def: New file.
	* gm2-compiler/M2Printf.mod: New file.
	* gm2-compiler/M2Quads.def: New file.
	* gm2-compiler/M2Quads.mod: New file.
	* gm2-compiler/M2Quiet.def: New file.
	* gm2-compiler/M2Quiet.mod: New file.
	* gm2-compiler/M2Range.def: New file.
	* gm2-compiler/M2Range.mod: New file.
	* gm2-compiler/M2Reserved.def: New file.
	* gm2-compiler/M2Reserved.mod: New file.
	* gm2-compiler/M2SSA.def: New file.
	* gm2-compiler/M2SSA.mod: New file.
	* gm2-compiler/M2Scaffold.def: New file.
	* gm2-compiler/M2Scaffold.mod: New file.
	* gm2-compiler/M2Scope.def: New file.
	* gm2-compiler/M2Scope.mod: New file.
	* gm2-compiler/M2Search.def: New file.
	* gm2-compiler/M2Search.mod: New file.
	* gm2-compiler/M2Size.def: New file.
	* gm2-compiler/M2Size.mod: New file.
	* gm2-compiler/M2StackAddress.def: New file.
	* gm2-compiler/M2StackAddress.mod: New file.
	* gm2-compiler/M2StackWord.def: New file.
	* gm2-compiler/M2StackWord.mod: New file.
	* gm2-compiler/M2Students.def: New file.
	* gm2-compiler/M2Students.mod: New file.
	* gm2-compiler/M2Swig.def: New file.
	* gm2-compiler/M2Swig.mod: New file.
	* gm2-compiler/M2System.def: New file.
	* gm2-compiler/M2System.mod: New file.
	* gm2-compiler/M2Version.def: New file.
	* gm2-compiler/NameKey.def: New file.
	* gm2-compiler/NameKey.mod: New file.
	* gm2-compiler/ObjectFiles.def: New file.
	* gm2-compiler/ObjectFiles.mod: New file.
	* gm2-compiler/Output.def: New file.
	* gm2-compiler/Output.mod: New file.
	* gm2-compiler/P0SymBuild.def: New file.
	* gm2-compiler/P0SymBuild.mod: New file.
	* gm2-compiler/P0SyntaxCheck.bnf: New file.
	* gm2-compiler/P0SyntaxCheck.def: New file.
	* gm2-compiler/P1Build.bnf: New file.
	* gm2-compiler/P1Build.def: New file.
	* gm2-compiler/P1SymBuild.def: New file.
	* gm2-compiler/P1SymBuild.mod: New file.
	* gm2-compiler/P2Build.bnf: New file.
	* gm2-compiler/P2Build.def: New file.
	* gm2-compiler/P2SymBuild.def: New file.
	* gm2-compiler/P2SymBuild.mod: New file.
	* gm2-compiler/P3Build.bnf: New file.
	* gm2-compiler/P3Build.def: New file.
	* gm2-compiler/P3SymBuild.def: New file.
	* gm2-compiler/P3SymBuild.mod: New file.
	* gm2-compiler/PCBuild.bnf: New file.
	* gm2-compiler/PCBuild.def: New file.
	* gm2-compiler/PCSymBuild.def: New file.
	* gm2-compiler/PCSymBuild.mod: New file.
	* gm2-compiler/PHBuild.bnf: New file.
	* gm2-compiler/PHBuild.def: New file.
	* gm2-compiler/README: New file.
	* gm2-compiler/Sets.def: New file.
	* gm2-compiler/Sets.mod: New file.
	* gm2-compiler/SymbolConversion.def: New file.
	* gm2-compiler/SymbolConversion.mod: New file.
	* gm2-compiler/SymbolKey.def: New file.
	* gm2-compiler/SymbolKey.mod: New file.
	* gm2-compiler/SymbolTable.def: New file.
	* gm2-compiler/SymbolTable.mod: New file.
	* gm2-compiler/bnflex.def: New file.
	* gm2-compiler/bnflex.mod: New file.
	* gm2-compiler/cflex.def: New file.
	* gm2-compiler/gm2.mod: New file.
	* gm2-compiler/gm2lcc.mod: New file.
	* gm2-compiler/gm2lgen.mod: New file.
	* gm2-compiler/gm2lorder.mod: New file.
	* gm2-compiler/m2flex.def: New file.
	* gm2-compiler/ppg.mod: New file.
	* gm2-gcc/README: New file.
	* gm2-gcc/dynamicstrings.h: New file.
	* gm2-gcc/gcc-consolidation.h: New file.
	* gm2-gcc/init.cc: New file.
	* gm2-gcc/init.def: New file.
	* gm2-gcc/init.h: New file.
	* gm2-gcc/m2assert.cc: New file.
	* gm2-gcc/m2assert.h: New file.
	* gm2-gcc/m2block.cc: New file.
	* gm2-gcc/m2block.def: New file.
	* gm2-gcc/m2block.h: New file.
	* gm2-gcc/m2builtins.cc: New file.
	* gm2-gcc/m2builtins.def: New file.
	* gm2-gcc/m2builtins.h: New file.
	* gm2-gcc/m2color.cc: New file.
	* gm2-gcc/m2color.def: New file.
	* gm2-gcc/m2color.h: New file.
	* gm2-gcc/m2configure.cc: New file.
	* gm2-gcc/m2configure.def: New file.
	* gm2-gcc/m2configure.h: New file.
	* gm2-gcc/m2convert.cc: New file.
	* gm2-gcc/m2convert.def: New file.
	* gm2-gcc/m2convert.h: New file.
	* gm2-gcc/m2decl.cc: New file.
	* gm2-gcc/m2decl.def: New file.
	* gm2-gcc/m2decl.h: New file.
	* gm2-gcc/m2except.cc: New file.
	* gm2-gcc/m2except.def: New file.
	* gm2-gcc/m2except.h: New file.
	* gm2-gcc/m2expr.cc: New file.
	* gm2-gcc/m2expr.def: New file.
	* gm2-gcc/m2expr.h: New file.
	* gm2-gcc/m2linemap.cc: New file.
	* gm2-gcc/m2linemap.def: New file.
	* gm2-gcc/m2linemap.h: New file.
	* gm2-gcc/m2misc.cc: New file.
	* gm2-gcc/m2misc.def: New file.
	* gm2-gcc/m2misc.h: New file.
	* gm2-gcc/m2options.h: New file.
	* gm2-gcc/m2range.h: New file.
	* gm2-gcc/m2search.h: New file.
	* gm2-gcc/m2statement.cc: New file.
	* gm2-gcc/m2statement.def: New file.
	* gm2-gcc/m2statement.h: New file.
	* gm2-gcc/m2top.cc: New file.
	* gm2-gcc/m2top.def: New file.
	* gm2-gcc/m2top.h: New file.
	* gm2-gcc/m2tree.cc: New file.
	* gm2-gcc/m2tree.def: New file.
	* gm2-gcc/m2tree.h: New file.
	* gm2-gcc/m2treelib.cc: New file.
	* gm2-gcc/m2treelib.def: New file.
	* gm2-gcc/m2treelib.h: New file.
	* gm2-gcc/m2type.cc: New file.
	* gm2-gcc/m2type.def: New file.
	* gm2-gcc/m2type.h: New file.
	* gm2-gcc/rtegraph.cc: New file.
	* gm2-gcc/rtegraph.h: New file.
	* gm2-ici/M2Emit.mod: New file.
	* gm2-ici/README: New file.
	* gm2-ici/m2linemap.c: New file.
	* gm2-internals.texi: New file.
	* gm2-lang.cc: New file.
	* gm2-lang.h: New file.
	* gm2-libiberty/README: New file.
	* gm2-libiberty/choosetemp.def: New file.
	* gm2-libiberty/pexecute.def: New file.
	* gm2-libs-ch/M2LINK.c: New file.
	* gm2-libs-ch/README: New file.
	* gm2-libs-ch/RTcodummy.c: New file.
	* gm2-libs-ch/RTintdummy.c: New file.
	* gm2-libs-ch/Selective.c: New file.
	* gm2-libs-ch/SysExceptions.c: New file.
	* gm2-libs-ch/UnixArgs.cc: New file.
	* gm2-libs-ch/cgetopt.c: New file.
	* gm2-libs-ch/choosetemp.c: New file.
	* gm2-libs-ch/dtoa.cc: New file.
	* gm2-libs-ch/errno.c: New file.
	* gm2-libs-ch/host.c: New file.
	* gm2-libs-ch/ldtoa.cc: New file.
	* gm2-libs-ch/m2rts.h: New file.
	* gm2-libs-ch/termios.c: New file.
	* gm2-libs-ch/tools.c: New file.
	* gm2-libs-ch/wrapc.c: New file.
	* gm2-libs-ch/xlibc.c: New file.
	* gm2-libs-coroutines/Debug.def: New file.
	* gm2-libs-coroutines/Debug.mod: New file.
	* gm2-libs-coroutines/Executive.def: New file.
	* gm2-libs-coroutines/Executive.mod: New file.
	* gm2-libs-coroutines/KeyBoardLEDs.def: New file.
	* gm2-libs-coroutines/README.texi: New file.
	* gm2-libs-coroutines/SYSTEM.def: New file.
	* gm2-libs-coroutines/SYSTEM.mod: New file.
	* gm2-libs-coroutines/TimerHandler.def: New file.
	* gm2-libs-coroutines/TimerHandler.mod: New file.
	* gm2-libs-iso/COROUTINES.def: New file.
	* gm2-libs-iso/COROUTINES.mod: New file.
	* gm2-libs-iso/ChanConsts.def: New file.
	* gm2-libs-iso/ChanConsts.h: New file.
	* gm2-libs-iso/ChanConsts.mod: New file.
	* gm2-libs-iso/CharClass.def: New file.
	* gm2-libs-iso/CharClass.mod: New file.
	* gm2-libs-iso/ClientSocket.def: New file.
	* gm2-libs-iso/ClientSocket.mod: New file.
	* gm2-libs-iso/ComplexMath.def: New file.
	* gm2-libs-iso/ComplexMath.mod: New file.
	* gm2-libs-iso/ConvStringLong.def: New file.
	* gm2-libs-iso/ConvStringLong.mod: New file.
	* gm2-libs-iso/ConvStringReal.def: New file.
	* gm2-libs-iso/ConvStringReal.mod: New file.
	* gm2-libs-iso/ConvTypes.def: New file.
	* gm2-libs-iso/ConvTypes.mod: New file.
	* gm2-libs-iso/EXCEPTIONS.def: New file.
	* gm2-libs-iso/EXCEPTIONS.mod: New file.
	* gm2-libs-iso/ErrnoCategory.def: New file.
	* gm2-libs-iso/GeneralUserExceptions.def: New file.
	* gm2-libs-iso/GeneralUserExceptions.mod: New file.
	* gm2-libs-iso/IOChan.def: New file.
	* gm2-libs-iso/IOChan.mod: New file.
	* gm2-libs-iso/IOConsts.def: New file.
	* gm2-libs-iso/IOConsts.mod: New file.
	* gm2-libs-iso/IOLink.def: New file.
	* gm2-libs-iso/IOLink.mod: New file.
	* gm2-libs-iso/IOResult.def: New file.
	* gm2-libs-iso/IOResult.mod: New file.
	* gm2-libs-iso/LongComplexMath.def: New file.
	* gm2-libs-iso/LongComplexMath.mod: New file.
	* gm2-libs-iso/LongConv.def: New file.
	* gm2-libs-iso/LongConv.mod: New file.
	* gm2-libs-iso/LongIO.def: New file.
	* gm2-libs-iso/LongIO.mod: New file.
	* gm2-libs-iso/LongMath.def: New file.
	* gm2-libs-iso/LongMath.mod: New file.
	* gm2-libs-iso/LongStr.def: New file.
	* gm2-libs-iso/LongStr.mod: New file.
	* gm2-libs-iso/LongWholeIO.def: New file.
	* gm2-libs-iso/LongWholeIO.mod: New file.
	* gm2-libs-iso/LowLong.def: New file.
	* gm2-libs-iso/LowLong.mod: New file.
	* gm2-libs-iso/LowReal.def: New file.
	* gm2-libs-iso/LowReal.mod: New file.
	* gm2-libs-iso/LowShort.def: New file.
	* gm2-libs-iso/LowShort.mod: New file.
	* gm2-libs-iso/M2EXCEPTION.def: New file.
	* gm2-libs-iso/M2EXCEPTION.mod: New file.
	* gm2-libs-iso/M2RTS.def: New file.
	* gm2-libs-iso/M2RTS.mod: New file.
	* gm2-libs-iso/MemStream.def: New file.
	* gm2-libs-iso/MemStream.mod: New file.
	* gm2-libs-iso/Preemptive.def: New file.
	* gm2-libs-iso/Preemptive.mod: New file.
	* gm2-libs-iso/Processes.def: New file.
	* gm2-libs-iso/Processes.mod: New file.
	* gm2-libs-iso/ProgramArgs.def: New file.
	* gm2-libs-iso/ProgramArgs.mod: New file.
	* gm2-libs-iso/README.texi: New file.
	* gm2-libs-iso/RTco.def: New file.
	* gm2-libs-iso/RTdata.def: New file.
	* gm2-libs-iso/RTdata.mod: New file.
	* gm2-libs-iso/RTentity.def: New file.
	* gm2-libs-iso/RTentity.mod: New file.
	* gm2-libs-iso/RTfio.def: New file.
	* gm2-libs-iso/RTfio.mod: New file.
	* gm2-libs-iso/RTgen.def: New file.
	* gm2-libs-iso/RTgen.mod: New file.
	* gm2-libs-iso/RTgenif.def: New file.
	* gm2-libs-iso/RTgenif.mod: New file.
	* gm2-libs-iso/RTio.def: New file.
	* gm2-libs-iso/RTio.mod: New file.
	* gm2-libs-iso/RandomNumber.def: New file.
	* gm2-libs-iso/RandomNumber.mod: New file.
	* gm2-libs-iso/RawIO.def: New file.
	* gm2-libs-iso/RawIO.mod: New file.
	* gm2-libs-iso/RealConv.def: New file.
	* gm2-libs-iso/RealConv.mod: New file.
	* gm2-libs-iso/RealIO.def: New file.
	* gm2-libs-iso/RealIO.mod: New file.
	* gm2-libs-iso/RealMath.def: New file.
	* gm2-libs-iso/RealMath.mod: New file.
	* gm2-libs-iso/RealStr.def: New file.
	* gm2-libs-iso/RealStr.mod: New file.
	* gm2-libs-iso/RndFile.def: New file.
	* gm2-libs-iso/RndFile.mod: New file.
	* gm2-libs-iso/SIOResult.def: New file.
	* gm2-libs-iso/SIOResult.mod: New file.
	* gm2-libs-iso/SLongIO.def: New file.
	* gm2-libs-iso/SLongIO.mod: New file.
	* gm2-libs-iso/SLongWholeIO.def: New file.
	* gm2-libs-iso/SLongWholeIO.mod: New file.
	* gm2-libs-iso/SRawIO.def: New file.
	* gm2-libs-iso/SRawIO.mod: New file.
	* gm2-libs-iso/SRealIO.def: New file.
	* gm2-libs-iso/SRealIO.mod: New file.
	* gm2-libs-iso/SShortIO.def: New file.
	* gm2-libs-iso/SShortIO.mod: New file.
	* gm2-libs-iso/SShortWholeIO.def: New file.
	* gm2-libs-iso/SShortWholeIO.mod: New file.
	* gm2-libs-iso/STextIO.def: New file.
	* gm2-libs-iso/STextIO.mod: New file.
	* gm2-libs-iso/SWholeIO.def: New file.
	* gm2-libs-iso/SWholeIO.mod: New file.
	* gm2-libs-iso/SYSTEM.def: New file.
	* gm2-libs-iso/SYSTEM.mod: New file.
	* gm2-libs-iso/Semaphores.def: New file.
	* gm2-libs-iso/Semaphores.mod: New file.
	* gm2-libs-iso/SeqFile.def: New file.
	* gm2-libs-iso/SeqFile.mod: New file.
	* gm2-libs-iso/ShortComplexMath.def: New file.
	* gm2-libs-iso/ShortComplexMath.mod: New file.
	* gm2-libs-iso/ShortIO.def: New file.
	* gm2-libs-iso/ShortIO.mod: New file.
	* gm2-libs-iso/ShortWholeIO.def: New file.
	* gm2-libs-iso/ShortWholeIO.mod: New file.
	* gm2-libs-iso/SimpleCipher.def: New file.
	* gm2-libs-iso/SimpleCipher.mod: New file.
	* gm2-libs-iso/StdChans.def: New file.
	* gm2-libs-iso/StdChans.mod: New file.
	* gm2-libs-iso/Storage.def: New file.
	* gm2-libs-iso/Storage.mod: New file.
	* gm2-libs-iso/StreamFile.def: New file.
	* gm2-libs-iso/StreamFile.mod: New file.
	* gm2-libs-iso/StringChan.def: New file.
	* gm2-libs-iso/StringChan.mod: New file.
	* gm2-libs-iso/Strings.def: New file.
	* gm2-libs-iso/Strings.mod: New file.
	* gm2-libs-iso/SysClock.def: New file.
	* gm2-libs-iso/SysClock.mod: New file.
	* gm2-libs-iso/TERMINATION.def: New file.
	* gm2-libs-iso/TERMINATION.mod: New file.
	* gm2-libs-iso/TermFile.def: New file.
	* gm2-libs-iso/TermFile.mod: New file.
	* gm2-libs-iso/TextIO.def: New file.
	* gm2-libs-iso/TextIO.mod: New file.
	* gm2-libs-iso/WholeConv.def: New file.
	* gm2-libs-iso/WholeConv.mod: New file.
	* gm2-libs-iso/WholeIO.def: New file.
	* gm2-libs-iso/WholeIO.mod: New file.
	* gm2-libs-iso/WholeStr.def: New file.
	* gm2-libs-iso/WholeStr.mod: New file.
	* gm2-libs-iso/wrapsock.c: New file.
	* gm2-libs-iso/wrapsock.def: New file.
	* gm2-libs-iso/wraptime.c: New file.
	* gm2-libs-iso/wraptime.def: New file.
	* gm2-libs-min/M2RTS.def: New file.
	* gm2-libs-min/M2RTS.mod: New file.
	* gm2-libs-min/SYSTEM.def: New file.
	* gm2-libs-min/SYSTEM.mod: New file.
	* gm2-libs-min/libc.c: New file.
	* gm2-libs-min/libc.def: New file.
	* gm2-libs-pim/BitBlockOps.def: New file.
	* gm2-libs-pim/BitBlockOps.mod: New file.
	* gm2-libs-pim/BitByteOps.def: New file.
	* gm2-libs-pim/BitByteOps.mod: New file.
	* gm2-libs-pim/BitWordOps.def: New file.
	* gm2-libs-pim/BitWordOps.mod: New file.
	* gm2-libs-pim/BlockOps.def: New file.
	* gm2-libs-pim/BlockOps.mod: New file.
	* gm2-libs-pim/Break.c: New file.
	* gm2-libs-pim/Break.def: New file.
	* gm2-libs-pim/CardinalIO.def: New file.
	* gm2-libs-pim/CardinalIO.mod: New file.
	* gm2-libs-pim/Conversions.def: New file.
	* gm2-libs-pim/Conversions.mod: New file.
	* gm2-libs-pim/DebugPMD.def: New file.
	* gm2-libs-pim/DebugPMD.mod: New file.
	* gm2-libs-pim/DebugTrace.def: New file.
	* gm2-libs-pim/DebugTrace.mod: New file.
	* gm2-libs-pim/Delay.def: New file.
	* gm2-libs-pim/Delay.mod: New file.
	* gm2-libs-pim/Display.def: New file.
	* gm2-libs-pim/Display.mod: New file.
	* gm2-libs-pim/ErrorCode.def: New file.
	* gm2-libs-pim/ErrorCode.mod: New file.
	* gm2-libs-pim/FileSystem.def: New file.
	* gm2-libs-pim/FileSystem.mod: New file.
	* gm2-libs-pim/FloatingUtilities.def: New file.
	* gm2-libs-pim/FloatingUtilities.mod: New file.
	* gm2-libs-pim/InOut.def: New file.
	* gm2-libs-pim/InOut.mod: New file.
	* gm2-libs-pim/Keyboard.def: New file.
	* gm2-libs-pim/Keyboard.mod: New file.
	* gm2-libs-pim/LongIO.def: New file.
	* gm2-libs-pim/LongIO.mod: New file.
	* gm2-libs-pim/NumberConversion.def: New file.
	* gm2-libs-pim/NumberConversion.mod: New file.
	* gm2-libs-pim/README.texi: New file.
	* gm2-libs-pim/Random.def: New file.
	* gm2-libs-pim/Random.mod: New file.
	* gm2-libs-pim/RealConversions.def: New file.
	* gm2-libs-pim/RealConversions.mod: New file.
	* gm2-libs-pim/RealInOut.def: New file.
	* gm2-libs-pim/RealInOut.mod: New file.
	* gm2-libs-pim/Strings.def: New file.
	* gm2-libs-pim/Strings.mod: New file.
	* gm2-libs-pim/Termbase.def: New file.
	* gm2-libs-pim/Termbase.mod: New file.
	* gm2-libs-pim/Terminal.def: New file.
	* gm2-libs-pim/Terminal.mod: New file.
	* gm2-libs-pim/TimeDate.def: New file.
	* gm2-libs-pim/TimeDate.mod: New file.
	* gm2-libs/ASCII.def: New file.
	* gm2-libs/ASCII.mod: New file.
	* gm2-libs/Args.def: New file.
	* gm2-libs/Args.mod: New file.
	* gm2-libs/Assertion.def: New file.
	* gm2-libs/Assertion.mod: New file.
	* gm2-libs/Break.def: New file.
	* gm2-libs/Break.mod: New file.
	* gm2-libs/Builtins.def: New file.
	* gm2-libs/Builtins.mod: New file.
	* gm2-libs/COROUTINES.def: New file.
	* gm2-libs/COROUTINES.mod: New file.
	* gm2-libs/CmdArgs.def: New file.
	* gm2-libs/CmdArgs.mod: New file.
	* gm2-libs/Debug.def: New file.
	* gm2-libs/Debug.mod: New file.
	* gm2-libs/DynamicStrings.def: New file.
	* gm2-libs/DynamicStrings.mod: New file.
	* gm2-libs/Environment.def: New file.
	* gm2-libs/Environment.mod: New file.
	* gm2-libs/FIO.def: New file.
	* gm2-libs/FIO.mod: New file.
	* gm2-libs/FormatStrings.def: New file.
	* gm2-libs/FormatStrings.mod: New file.
	* gm2-libs/FpuIO.def: New file.
	* gm2-libs/FpuIO.mod: New file.
	* gm2-libs/GetOpt.def: New file.
	* gm2-libs/GetOpt.mod: New file.
	* gm2-libs/IO.def: New file.
	* gm2-libs/IO.mod: New file.
	* gm2-libs/Indexing.def: New file.
	* gm2-libs/Indexing.mod: New file.
	* gm2-libs/LMathLib0.def: New file.
	* gm2-libs/LMathLib0.mod: New file.
	* gm2-libs/LegacyReal.def: New file.
	* gm2-libs/LegacyReal.mod: New file.
	* gm2-libs/M2Dependent.def: New file.
	* gm2-libs/M2Dependent.mod: New file.
	* gm2-libs/M2EXCEPTION.def: New file.
	* gm2-libs/M2EXCEPTION.mod: New file.
	* gm2-libs/M2LINK.def: New file.
	* gm2-libs/M2RTS.def: New file.
	* gm2-libs/M2RTS.mod: New file.
	* gm2-libs/MathLib0.def: New file.
	* gm2-libs/MathLib0.mod: New file.
	* gm2-libs/MemUtils.def: New file.
	* gm2-libs/MemUtils.mod: New file.
	* gm2-libs/NumberIO.def: New file.
	* gm2-libs/NumberIO.mod: New file.
	* gm2-libs/OptLib.def: New file.
	* gm2-libs/OptLib.mod: New file.
	* gm2-libs/PushBackInput.def: New file.
	* gm2-libs/PushBackInput.mod: New file.
	* gm2-libs/README.texi: New file.
	* gm2-libs/RTExceptions.def: New file.
	* gm2-libs/RTExceptions.mod: New file.
	* gm2-libs/RTint.def: New file.
	* gm2-libs/RTint.mod: New file.
	* gm2-libs/SArgs.def: New file.
	* gm2-libs/SArgs.mod: New file.
	* gm2-libs/SCmdArgs.def: New file.
	* gm2-libs/SCmdArgs.mod: New file.
	* gm2-libs/SEnvironment.def: New file.
	* gm2-libs/SEnvironment.mod: New file.
	* gm2-libs/SFIO.def: New file.
	* gm2-libs/SFIO.mod: New file.
	* gm2-libs/SMathLib0.def: New file.
	* gm2-libs/SMathLib0.mod: New file.
	* gm2-libs/SYSTEM.def: New file.
	* gm2-libs/SYSTEM.mod: New file.
	* gm2-libs/Scan.def: New file.
	* gm2-libs/Scan.mod: New file.
	* gm2-libs/Selective.def: New file.
	* gm2-libs/StdIO.def: New file.
	* gm2-libs/StdIO.mod: New file.
	* gm2-libs/Storage.def: New file.
	* gm2-libs/Storage.mod: New file.
	* gm2-libs/StrCase.def: New file.
	* gm2-libs/StrCase.mod: New file.
	* gm2-libs/StrIO.def: New file.
	* gm2-libs/StrIO.mod: New file.
	* gm2-libs/StrLib.def: New file.
	* gm2-libs/StrLib.mod: New file.
	* gm2-libs/StringConvert.def: New file.
	* gm2-libs/StringConvert.mod: New file.
	* gm2-libs/SysExceptions.def: New file.
	* gm2-libs/SysStorage.def: New file.
	* gm2-libs/SysStorage.mod: New file.
	* gm2-libs/TimeString.def: New file.
	* gm2-libs/TimeString.mod: New file.
	* gm2-libs/UnixArgs.def: New file.
	* gm2-libs/cbuiltin.def: New file.
	* gm2-libs/cgetopt.def: New file.
	* gm2-libs/config-host: New file.
	* gm2-libs/config-host.in: New file.
	* gm2-libs/cxxabi.def: New file.
	* gm2-libs/dtoa.def: New file.
	* gm2-libs/errno.def: New file.
	* gm2-libs/gdbif.def: New file.
	* gm2-libs/gdbif.mod: New file.
	* gm2-libs/gm2-libs-host.h.in: New file.
	* gm2-libs/ldtoa.def: New file.
	* gm2-libs/libc.def: New file.
	* gm2-libs/libm.def: New file.
	* gm2-libs/sckt.def: New file.
	* gm2-libs/termios.def: New file.
	* gm2-libs/wrapc.def: New file.
	* gm2config.h.in: New file.
	* gm2spec.cc: New file.
	* gm2version.h: New file.
	* init/README: New file.
	* init/mcinit: New file.
	* init/ppginit: New file.
	* lang-specs.h: New file.
	* lang.opt: New file.
	* m2-tree.def: New file.
	* m2-tree.h: New file.
	* m2.flex: New file.
	* m2pp.cc: New file.
	* m2pp.h: New file.
	* mc-boot-ch/GBuiltins.c: New file.
	* mc-boot-ch/GM2LINK.c: New file.
	* mc-boot-ch/GRTco.c: New file.
	* mc-boot-ch/GSYSTEM.c: New file.
	* mc-boot-ch/GSelective.c: New file.
	* mc-boot-ch/GSysExceptions.c: New file.
	* mc-boot-ch/GUnixArgs.cc: New file.
	* mc-boot-ch/Gabort.c: New file.
	* mc-boot-ch/Gcbuiltin.c: New file.
	* mc-boot-ch/Gdtoa.c: New file.
	* mc-boot-ch/Gerrno.c: New file.
	* mc-boot-ch/Gldtoa.c: New file.
	* mc-boot-ch/Glibc.c: New file.
	* mc-boot-ch/Glibm.c: New file.
	* mc-boot-ch/Gmcrts.c: New file.
	* mc-boot-ch/Gmcrts.h: New file.
	* mc-boot-ch/Gnetwork.h: New file.
	* mc-boot-ch/Gtermios.cc: New file.
	* mc-boot-ch/Gwrapc.c: New file.
	* mc-boot-ch/README: New file.
	* mc-boot-ch/m2rts.h: New file.
	* mc-boot-ch/network.c: New file.
	* mc-boot/GASCII.c: New file.
	* mc-boot/GASCII.h: New file.
	* mc-boot/GArgs.c: New file.
	* mc-boot/GArgs.h: New file.
	* mc-boot/GAssertion.c: New file.
	* mc-boot/GAssertion.h: New file.
	* mc-boot/GBreak.c: New file.
	* mc-boot/GBreak.h: New file.
	* mc-boot/GCOROUTINES.h: New file.
	* mc-boot/GCmdArgs.c: New file.
	* mc-boot/GCmdArgs.h: New file.
	* mc-boot/GDebug.c: New file.
	* mc-boot/GDebug.h: New file.
	* mc-boot/GDynamicStrings.c: New file.
	* mc-boot/GDynamicStrings.h: New file.
	* mc-boot/GEnvironment.c: New file.
	* mc-boot/GEnvironment.h: New file.
	* mc-boot/GFIO.c: New file.
	* mc-boot/GFIO.h: New file.
	* mc-boot/GFormatStrings.c: New file.
	* mc-boot/GFormatStrings.h: New file.
	* mc-boot/GFpuIO.c: New file.
	* mc-boot/GFpuIO.h: New file.
	* mc-boot/GIO.c: New file.
	* mc-boot/GIO.h: New file.
	* mc-boot/GIndexing.c: New file.
	* mc-boot/GIndexing.h: New file.
	* mc-boot/GM2Dependent.c: New file.
	* mc-boot/GM2Dependent.h: New file.
	* mc-boot/GM2EXCEPTION.c: New file.
	* mc-boot/GM2EXCEPTION.h: New file.
	* mc-boot/GM2LINK.h: New file.
	* mc-boot/GM2RTS.c: New file.
	* mc-boot/GM2RTS.h: New file.
	* mc-boot/GMemUtils.c: New file.
	* mc-boot/GMemUtils.h: New file.
	* mc-boot/GNumberIO.c: New file.
	* mc-boot/GNumberIO.h: New file.
	* mc-boot/GPushBackInput.c: New file.
	* mc-boot/GPushBackInput.h: New file.
	* mc-boot/GRTExceptions.c: New file.
	* mc-boot/GRTExceptions.h: New file.
	* mc-boot/GRTco.h: New file.
	* mc-boot/GRTint.c: New file.
	* mc-boot/GRTint.h: New file.
	* mc-boot/GSArgs.c: New file.
	* mc-boot/GSArgs.h: New file.
	* mc-boot/GSFIO.c: New file.
	* mc-boot/GSFIO.h: New file.
	* mc-boot/GSYSTEM.h: New file.
	* mc-boot/GSelective.h: New file.
	* mc-boot/GStdIO.c: New file.
	* mc-boot/GStdIO.h: New file.
	* mc-boot/GStorage.c: New file.
	* mc-boot/GStorage.h: New file.
	* mc-boot/GStrCase.c: New file.
	* mc-boot/GStrCase.h: New file.
	* mc-boot/GStrIO.c: New file.
	* mc-boot/GStrIO.h: New file.
	* mc-boot/GStrLib.c: New file.
	* mc-boot/GStrLib.h: New file.
	* mc-boot/GStringConvert.c: New file.
	* mc-boot/GStringConvert.h: New file.
	* mc-boot/GSysExceptions.h: New file.
	* mc-boot/GSysStorage.c: New file.
	* mc-boot/GSysStorage.h: New file.
	* mc-boot/GTimeString.c: New file.
	* mc-boot/GTimeString.h: New file.
	* mc-boot/GUnixArgs.h: New file.
	* mc-boot/Galists.c: New file.
	* mc-boot/Galists.h: New file.
	* mc-boot/Gdecl.c: New file.
	* mc-boot/Gdecl.h: New file.
	* mc-boot/Gdtoa.h: New file.
	* mc-boot/Gerrno.h: New file.
	* mc-boot/Gkeyc.c: New file.
	* mc-boot/Gkeyc.h: New file.
	* mc-boot/Gldtoa.h: New file.
	* mc-boot/Glibc.h: New file.
	* mc-boot/Glibm.h: New file.
	* mc-boot/Glists.c: New file.
	* mc-boot/Glists.h: New file.
	* mc-boot/GmcComment.c: New file.
	* mc-boot/GmcComment.h: New file.
	* mc-boot/GmcComp.c: New file.
	* mc-boot/GmcComp.h: New file.
	* mc-boot/GmcDebug.c: New file.
	* mc-boot/GmcDebug.h: New file.
	* mc-boot/GmcError.c: New file.
	* mc-boot/GmcError.h: New file.
	* mc-boot/GmcFileName.c: New file.
	* mc-boot/GmcFileName.h: New file.
	* mc-boot/GmcLexBuf.c: New file.
	* mc-boot/GmcLexBuf.h: New file.
	* mc-boot/GmcMetaError.c: New file.
	* mc-boot/GmcMetaError.h: New file.
	* mc-boot/GmcOptions.c: New file.
	* mc-boot/GmcOptions.h: New file.
	* mc-boot/GmcPreprocess.c: New file.
	* mc-boot/GmcPreprocess.h: New file.
	* mc-boot/GmcPretty.c: New file.
	* mc-boot/GmcPretty.h: New file.
	* mc-boot/GmcPrintf.c: New file.
	* mc-boot/GmcPrintf.h: New file.
	* mc-boot/GmcQuiet.c: New file.
	* mc-boot/GmcQuiet.h: New file.
	* mc-boot/GmcReserved.c: New file.
	* mc-boot/GmcReserved.h: New file.
	* mc-boot/GmcSearch.c: New file.
	* mc-boot/GmcSearch.h: New file.
	* mc-boot/GmcStack.c: New file.
	* mc-boot/GmcStack.h: New file.
	* mc-boot/GmcStream.c: New file.
	* mc-boot/GmcStream.h: New file.
	* mc-boot/Gmcflex.h: New file.
	* mc-boot/Gmcp1.c: New file.
	* mc-boot/Gmcp1.h: New file.
	* mc-boot/Gmcp2.c: New file.
	* mc-boot/Gmcp2.h: New file.
	* mc-boot/Gmcp3.c: New file.
	* mc-boot/Gmcp3.h: New file.
	* mc-boot/Gmcp4.c: New file.
	* mc-boot/Gmcp4.h: New file.
	* mc-boot/Gmcp5.c: New file.
	* mc-boot/Gmcp5.h: New file.
	* mc-boot/GnameKey.c: New file.
	* mc-boot/GnameKey.h: New file.
	* mc-boot/Gpth.h: New file.
	* mc-boot/GsymbolKey.c: New file.
	* mc-boot/GsymbolKey.h: New file.
	* mc-boot/Gtermios.h: New file.
	* mc-boot/Gtop.c: New file.
	* mc-boot/Gvarargs.c: New file.
	* mc-boot/Gvarargs.h: New file.
	* mc-boot/Gwlists.c: New file.
	* mc-boot/Gwlists.h: New file.
	* mc-boot/Gwrapc.h: New file.
	* mc-boot/README: New file.
	* mc/Indexing.def: New file.
	* mc/Indexing.mod: New file.
	* mc/README: New file.
	* mc/alists.def: New file.
	* mc/alists.mod: New file.
	* mc/decl.def: New file.
	* mc/decl.mod: New file.
	* mc/decl.mod-extra: New file.
	* mc/keyc.def: New file.
	* mc/keyc.mod: New file.
	* mc/lists.def: New file.
	* mc/lists.mod: New file.
	* mc/m2flex.def: New file.
	* mc/mc.flex: New file.
	* mc/mcComment.def: New file.
	* mc/mcComment.h: New file.
	* mc/mcComment.mod: New file.
	* mc/mcComp.def: New file.
	* mc/mcComp.mod: New file.
	* mc/mcDebug.def: New file.
	* mc/mcDebug.mod: New file.
	* mc/mcError.def: New file.
	* mc/mcError.mod: New file.
	* mc/mcFileName.def: New file.
	* mc/mcFileName.mod: New file.
	* mc/mcLexBuf.def: New file.
	* mc/mcLexBuf.h: New file.
	* mc/mcLexBuf.mod: New file.
	* mc/mcMetaError.def: New file.
	* mc/mcMetaError.mod: New file.
	* mc/mcOptions.def: New file.
	* mc/mcOptions.mod: New file.
	* mc/mcPreprocess.def: New file.
	* mc/mcPreprocess.mod: New file.
	* mc/mcPretty.def: New file.
	* mc/mcPretty.mod: New file.
	* mc/mcPrintf.def: New file.
	* mc/mcPrintf.mod: New file.
	* mc/mcQuiet.def: New file.
	* mc/mcQuiet.mod: New file.
	* mc/mcReserved.def: New file.
	* mc/mcReserved.h: New file.
	* mc/mcReserved.mod: New file.
	* mc/mcSearch.def: New file.
	* mc/mcSearch.mod: New file.
	* mc/mcStack.def: New file.
	* mc/mcStack.mod: New file.
	* mc/mcStream.def: New file.
	* mc/mcStream.mod: New file.
	* mc/mcflex.def: New file.
	* mc/mcp1.bnf: New file.
	* mc/mcp1.def: New file.
	* mc/mcp2.bnf: New file.
	* mc/mcp2.def: New file.
	* mc/mcp3.bnf: New file.
	* mc/mcp3.def: New file.
	* mc/mcp4.bnf: New file.
	* mc/mcp4.def: New file.
	* mc/mcp5.bnf: New file.
	* mc/mcp5.def: New file.
	* mc/nameKey.def: New file.
	* mc/nameKey.mod: New file.
	* mc/symbolKey.def: New file.
	* mc/symbolKey.mod: New file.
	* mc/top.mod: New file.
	* mc/varargs.def: New file.
	* mc/varargs.mod: New file.
	* mc/wlists.def: New file.
	* mc/wlists.mod: New file.
	* pge-boot/GASCII.c: New file.
	* pge-boot/GASCII.h: New file.
	* pge-boot/GArgs.c: New file.
	* pge-boot/GArgs.h: New file.
	* pge-boot/GAssertion.c: New file.
	* pge-boot/GAssertion.h: New file.
	* pge-boot/GBreak.h: New file.
	* pge-boot/GBuiltins.c: New file.
	* pge-boot/GCmdArgs.h: New file.
	* pge-boot/GDebug.c: New file.
	* pge-boot/GDebug.h: New file.
	* pge-boot/GDynamicStrings.c: New file.
	* pge-boot/GDynamicStrings.h: New file.
	* pge-boot/GEnvironment.h: New file.
	* pge-boot/GFIO.c: New file.
	* pge-boot/GFIO.h: New file.
	* pge-boot/GFormatStrings.h: New file.
	* pge-boot/GFpuIO.h: New file.
	* pge-boot/GIO.c: New file.
	* pge-boot/GIO.h: New file.
	* pge-boot/GIndexing.c: New file.
	* pge-boot/GIndexing.h: New file.
	* pge-boot/GLists.c: New file.
	* pge-boot/GLists.h: New file.
	* pge-boot/GM2Dependent.c: New file.
	* pge-boot/GM2Dependent.h: New file.
	* pge-boot/GM2EXCEPTION.c: New file.
	* pge-boot/GM2EXCEPTION.h: New file.
	* pge-boot/GM2LINK.c: New file.
	* pge-boot/GM2LINK.h: New file.
	* pge-boot/GM2RTS.c: New file.
	* pge-boot/GM2RTS.h: New file.
	* pge-boot/GNameKey.c: New file.
	* pge-boot/GNameKey.h: New file.
	* pge-boot/GNumberIO.c: New file.
	* pge-boot/GNumberIO.h: New file.
	* pge-boot/GOutput.c: New file.
	* pge-boot/GOutput.h: New file.
	* pge-boot/GPushBackInput.c: New file.
	* pge-boot/GPushBackInput.h: New file.
	* pge-boot/GRTExceptions.c: New file.
	* pge-boot/GRTExceptions.h: New file.
	* pge-boot/GRTco.c: New file.
	* pge-boot/GSArgs.h: New file.
	* pge-boot/GSEnvironment.h: New file.
	* pge-boot/GSFIO.c: New file.
	* pge-boot/GSFIO.h: New file.
	* pge-boot/GSYSTEM.c: New file.
	* pge-boot/GSYSTEM.h: New file.
	* pge-boot/GScan.h: New file.
	* pge-boot/GSelective.c: New file.
	* pge-boot/GStdIO.c: New file.
	* pge-boot/GStdIO.h: New file.
	* pge-boot/GStorage.c: New file.
	* pge-boot/GStorage.h: New file.
	* pge-boot/GStrCase.c: New file.
	* pge-boot/GStrCase.h: New file.
	* pge-boot/GStrIO.c: New file.
	* pge-boot/GStrIO.h: New file.
	* pge-boot/GStrLib.c: New file.
	* pge-boot/GStrLib.h: New file.
	* pge-boot/GStringConvert.h: New file.
	* pge-boot/GSymbolKey.c: New file.
	* pge-boot/GSymbolKey.h: New file.
	* pge-boot/GSysExceptions.c: New file.
	* pge-boot/GSysExceptions.h: New file.
	* pge-boot/GSysStorage.c: New file.
	* pge-boot/GSysStorage.h: New file.
	* pge-boot/GTimeString.h: New file.
	* pge-boot/GUnixArgs.cc: New file.
	* pge-boot/GUnixArgs.h: New file.
	* pge-boot/Gabort.c: New file.
	* pge-boot/Gbnflex.c: New file.
	* pge-boot/Gbnflex.h: New file.
	* pge-boot/Gcbuiltin.c: New file.
	* pge-boot/Gdtoa.c: New file.
	* pge-boot/Gdtoa.h: New file.
	* pge-boot/Gerrno.c: New file.
	* pge-boot/Gerrno.h: New file.
	* pge-boot/Gldtoa.c: New file.
	* pge-boot/Gldtoa.h: New file.
	* pge-boot/Glibc.c: New file.
	* pge-boot/Glibc.h: New file.
	* pge-boot/Glibm.c: New file.
	* pge-boot/Glibm.h: New file.
	* pge-boot/Gmcrts.c: New file.
	* pge-boot/Gmcrts.h: New file.
	* pge-boot/Gnetwork.h: New file.
	* pge-boot/Gpge.c: New file.
	* pge-boot/Gtermios.cc: New file.
	* pge-boot/Gtermios.h: New file.
	* pge-boot/Gwrapc.c: New file.
	* pge-boot/Gwrapc.h: New file.
	* pge-boot/README: New file.
	* pge-boot/m2rts.h: New file.
	* pge-boot/main.c: New file.
	* pge-boot/network.c: New file.
	* plugin/README: New file.
	* plugin/m2rte.cc: New file.
	* tools-src/README: New file.
	* tools-src/boilerplate.py: New file.
	* tools-src/buildpg: New file.
	* tools-src/calcpath: New file.
	* tools-src/def2doc.py: New file.
	* tools-src/makeSystem: New file.
	* tools-src/mklink.c: New file.
	* tools-src/tidydates.py: New file.
	* images/LICENSE.IMG: New file.
	* images/gnupng: New file.
	* images/gnu.eps: New file.
	* version.c: New file.
	* configure: Rebuilt.
	* target-independent/Builtins.texi: New file.
	* target-independent/SYSTEM-iso.texi: New file.
	* target-independent/SYSTEM-pim.texi: New file.
	* target-independent/gm2-libs.texi: New file.
	* target-independent/readme.txt: New file.
