2016-12-31  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-gcc/m2builtins.c:  removed trailing spaces.  define_builtin
          (New procedure).  m2builtins_init use define_builtin to define
          internal (gimple) builtin BUILT_IN_TRAP.
	* gm2/gm2-gcc/m2except.c:  reformatted slightly.  Bugfix to do_throw
          to ensure that gm2_eh_int_type which is declared globally is
          unshared for each and every use.
	* gm2/gm2-gcc/m2expr.c:  corrected dates and removed trailing space.
	* gm2/gm2-gcc/m2statement.c:  Bugfix to allow nested functions to
          compile.  If a nested function is complete create a cgraph_node
	  (and it will be finalized later), else finalize_function now.
	* gm2/gm2builtins.c:  file changed (it is unused and will be purged).
	* gm2/gm2except.c:  file changed (it is unused and will be purged).

2016-12-29  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2Code.mod:  remove spaces and use StartGlobalContext
          and EndGlobalContext instead of InitGlobalContext.
	* gm2/gm2-gcc/m2top.c:  implement dummy procedures StartGlobalContext
          and EndGlobalContext.
	* gm2/gm2-gcc/m2top.def:  declare StartGlobalContext and
	  EndGlobalContext.
	* gm2/gm2-gcc/m2top.h:  declare StartGlobalContext and EndGlobalContext
          in the header.
	* gm2/gm2-lang.c:  (gm2_langhook_write_globals)  write all global
	  declarations and call finalize_compilation_unit.

2016-12-24  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.def:  GetHighFromUnbounded add location
          as the first parameter.
	* gm2/gm2-compiler/M2GenGCC.mod:  removed all forward declarations.
          Changed AddStatement to include a location first parameter.
          Change GetHighFromUnbounded to include a location first parameter.
          Change GetParamAddress to include a location first parameter.
          Change GetAddressOfUnbounded to include a location first parameter.
          Change BuildComponentRef to include a location first parameter.
          Removed commented code.
	* gm2/gm2-compiler/M2Range.mod:  changed all calls to the above
          to include the location parameter.
	* gm2-gcc/m2type.def:  changed AddStatement to include a location
	  first parameter.

2016-12-23  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-gcc/m2statement.c:  remove make_decl_rtl and use
          allocate_struct_function instead, assign DECL_SAVED_TREE (fndecl)
          to NULL_TREE.  Fixes to allow functions to be declared.
	* gm2/mc-boot/GStrIO.c:  rebuilt.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc/decl.mod:  noIfElseChained (New procedure).  hasIfAndNoElse
	  use noIfElseChained to detect another dangling else bug.

2016-12-19  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  build and link gm2l, gm2lcc using g++.
	* gm2/gm2-lang.c:  updated to reflect gcc-5.2.0 garbage collection
          of trees.
	* gm2/gm2-lang.h:  removed garbage collection info (moved into
          gm2-lang.c).
	* gm2/Make-lang.in:  add MC_LIBS to the library list when linking
          gm2l, gm2lcc, gm2lgen, gm2lorder and gm2m.
	* gm2/gm2-gcc/gcc-consolidation.h:  add conditional compilation
          to stop inclusion of gcc compiler internals if we are building
          a gm2tool program.
	* gm2/Make-lang.in:  remove h2def from being built.

2016-12-18  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  create MC_LIBS and use them during link of
          cc1gm2.
 	* gm2/gm2-gcc/m2linemap.c:  use C style link symbols and correct
          prototype for StartFile.  Cast to char *.
	* gm2/gm2-gcc/m2linemap.h:  use __cplusplus rather than __GNUG__.
          move #include before defining EXTERN.
	* gm2/gm2-lang.c:  whitespace removal.
	* gm2/gm2-libs-ch/ldtoa.c:  removed #if surrounding _M2_ldtoa_init
          and _M2_ldtoa_finish.
	* gm2/m2.flex:  fixed to ensure external symbols are using C style.
          Use %option nounput to remove compiler warning.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc/decl.mod:  bugfix, ensure that variables are declared as extern
	  when we are using getExtendedOpaque and if the variable is external.

2016-12-17  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc/decl.mod:  fixed bug regarding the expression type of an
          indirect funccall.  mc now builds all gm2 modules.

2016-12-16  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  M2GCCDeclare.o dedicated rule.  mc-clean,
	  mc-maintainer mc-continue rules improved.
	* gm2/bnf/h2def.bnf:  removed usused import.
	* gm2/gm2-compiler/M2Base.mod:  remove unused global variables
	  and fixed typo (FloatS not SFloat).
	* gm2/gm2-compiler/M2GCCDeclare.mod:  changed none to norule.
	* gm2/gm2-compiler/P3SymBuild.mod:  remove unused local variables.
	* gm2/gm2-compiler/bnflex.mod:  EatChar new procedure.  Remove many
	  unused variables by using EatChar rather than ch := GetChar ().
	* gm2/mc-boot/Gdecl.c:
	* gm2/mc-boot/Gkeyc.c:
	* gm2/mc/decl.def:
	* gm2/mc/decl.mod:  write out subrange type, detect type address
          when emitting casts.  Work out arrayref type when more than
	  one dimension is used.
	* gm2/mc/keyc.mod:  avoid C++ keywords operator and complex.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc/decl.mod:  detect an variable of an enumeration
          type in the INC/DEC.  Ensure that arrays can only be
	  complete if the type of the array has been emitted.

2016-12-14  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  build cflex.c using the same rules as the
          m2flex.c.
	* gm2/c.flex:  include gm2-gcc/gcc-consolidation.h and use
          %option nounput to get a clean compilation with no warnings.
	  Declare linelen as unsigned int to avoid warnings.

2016-12-14  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  changed flags when compiling cflex.c and
          M2Version.c
	* gm2/bnf/gm2l.bnf:  removed unused variable.  (SyntaxCheck)
          Removed unused variable.
	* gm2/gm2-compiler/M2DebugStack.mod:  (doNameLength) remove
          unused variable.  (doMaxInt) remove unused procedure function.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc/decl.mod:  detect bitset in MAX/MIN and return ztype.
	  Add bitnumN to the list of completed types.

2016-12-12  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  changed scaffold building rules
	  to use g++.
	* gm2/gm2-libs-ch/SysExceptions.c:  regenerated.
	* gm2/init/ppginit:  regenerated.
	* gm2/mc-boot-ch/Gmcrts.c:  regenerated.
	* gm2/mc-boot-ch/Gmcrts.h:  regenerated.
	* gm2/mc-boot/GASCII.h:  regenerated.
	* gm2/mc-boot/GArgs.h:  regenerated.
	* gm2/mc-boot/GAssertion.h:  regenerated.
	* gm2/mc-boot/GBreak.h:  regenerated.
	* gm2/mc-boot/GCOROUTINES.h:  regenerated.
	* gm2/mc-boot/GCmdArgs.h:  regenerated.
	* gm2/mc-boot/GDebug.h:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.h:  regenerated.
	* gm2/mc-boot/GEnvironment.h:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GFIO.h:  regenerated.
	* gm2/mc-boot/GFormatStrings.c:  regenerated.
	* gm2/mc-boot/GFormatStrings.h:  regenerated.
	* gm2/mc-boot/GFpuIO.h:  regenerated.
	* gm2/mc-boot/GIO.h:  regenerated.
	* gm2/mc-boot/GIndexing.h:  regenerated.
	* gm2/mc-boot/GM2EXCEPTION.c:  regenerated.
	* gm2/mc-boot/GM2EXCEPTION.h:  regenerated.
	* gm2/mc-boot/GM2RTS.c:  regenerated.
	* gm2/mc-boot/GM2RTS.h:  regenerated.
	* gm2/mc-boot/GMemUtils.h:  regenerated.
	* gm2/mc-boot/GNumberIO.h:  regenerated.
	* gm2/mc-boot/GPushBackInput.h:  regenerated.
	* gm2/mc-boot/GRTExceptions.c:  regenerated.
	* gm2/mc-boot/GRTExceptions.h:  regenerated.
	* gm2/mc-boot/GRTint.c:  regenerated.
	* gm2/mc-boot/GRTint.h:  regenerated.
	* gm2/mc-boot/GSArgs.h:  regenerated.
	* gm2/mc-boot/GSFIO.h:  regenerated.
	* gm2/mc-boot/GSYSTEM.h:  regenerated.
	* gm2/mc-boot/GSelective.h:  regenerated.
	* gm2/mc-boot/GStdIO.h:  regenerated.
	* gm2/mc-boot/GStorage.h:  regenerated.
	* gm2/mc-boot/GStrCase.h:  regenerated.
	* gm2/mc-boot/GStrIO.h:  regenerated.
	* gm2/mc-boot/GStrLib.h:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/GStringConvert.h:  regenerated.
	* gm2/mc-boot/GSysExceptions.h:  regenerated.
	* gm2/mc-boot/GSysStorage.h:  regenerated.
	* gm2/mc-boot/GTimeString.h:  regenerated.
	* gm2/mc-boot/GUnixArgs.h:  regenerated.
	* gm2/mc-boot/Galists.h:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/Gdecl.h:  regenerated.
	* gm2/mc-boot/Gdtoa.h:  regenerated.
	* gm2/mc-boot/Gerrno.h:  regenerated.
	* gm2/mc-boot/Gkeyc.c:  regenerated.
	* gm2/mc-boot/Gkeyc.h:  regenerated.
	* gm2/mc-boot/Gldtoa.h:  regenerated.
	* gm2/mc-boot/Glibc.h:  regenerated.
	* gm2/mc-boot/Glibm.h:  regenerated.
	* gm2/mc-boot/Glists.h:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcComp.h:  regenerated.
	* gm2/mc-boot/GmcDebug.h:  regenerated.
	* gm2/mc-boot/GmcError.h:  regenerated.
	* gm2/mc-boot/GmcFileName.c:  regenerated.
	* gm2/mc-boot/GmcFileName.h:  regenerated.
	* gm2/mc-boot/GmcLexBuf.h:  regenerated.
	* gm2/mc-boot/GmcMetaError.c:  regenerated.
	* gm2/mc-boot/GmcMetaError.h:  regenerated.
	* gm2/mc-boot/GmcOptions.c:  regenerated.
	* gm2/mc-boot/GmcOptions.h:  regenerated.
	* gm2/mc-boot/GmcPreprocess.h:  regenerated.
	* gm2/mc-boot/GmcPretty.c:  regenerated.
	* gm2/mc-boot/GmcPretty.h:  regenerated.
	* gm2/mc-boot/GmcPrintf.h:  regenerated.
	* gm2/mc-boot/GmcQuiet.h:  regenerated.
	* gm2/mc-boot/GmcReserved.h:  regenerated.
	* gm2/mc-boot/GmcSearch.h:  regenerated.
	* gm2/mc-boot/GmcStack.h:  regenerated.
	* gm2/mc-boot/GmcStream.h:  regenerated.
	* gm2/mc-boot/Gmcflex.h:  regenerated.
	* gm2/mc-boot/Gmcp1.h:  regenerated.
	* gm2/mc-boot/Gmcp2.h:  regenerated.
	* gm2/mc-boot/Gmcp3.h:  regenerated.
	* gm2/mc-boot/Gmcp4.h:  regenerated.
	* gm2/mc-boot/Gmcp5.h:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc-boot/GnameKey.h:  regenerated.
	* gm2/mc-boot/Gpth.h:  regenerated.
	* gm2/mc-boot/GsymbolKey.h:  regenerated.
	* gm2/mc-boot/Gtermios.h:  regenerated.
	* gm2/mc-boot/Gvarargs.c:  regenerated.
	* gm2/mc-boot/Gvarargs.h:  regenerated.
	* gm2/mc-boot/Gwlists.h:  regenerated.
	* gm2/mc-boot/Gwrapc.h:  regenerated.
	* gm2/mc/decl.mod:  change all external declarations as being
	  C declarations to provide linkage compatibility with C/M2.
	* gm2/tools-src/mklink.c:  allow the scaffold to be compiled
          with g++.
	* gm2/Make-lang.in:  MC_ARGS no longer include gm2/mc.  Use
          COMPILER rather than CC to compile gm2 related sources.
	  m2link uses --g++ on compiler related scaffolds.
	* gm2/c.flex:  remove reference to p2c.
	* gm2/gm2-compiler/ppg.mod:  increase MaxCodeHunkLength.
	* gm2/mc-boot-ch/GSYSTEM.c:  implement _finish function.
	* gm2/mc-boot-ch/Gerrno.c:  implement _finish function.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc-boot/Gkeyc.c:  rebuilt.
	* gm2/mc/decl.mod:  detect and handle dangling else in an ELSIF.
	* gm2/mc/keyc.mod:  add try, catch and operator to the list of
	  unusable keywords.
	* gm2/tools-src/mklink.c:  New procedure (GenerateInitCalls),
          new procedure (GenerateFinishCalls) and new procedure
	  (GeneratePrototypes).

2016-12-06  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  regenerated.
	* gm2/mc-boot/GCmdArgs.c:  regenerated.
	* gm2/mc-boot/GDebug.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GFormatStrings.c:  regenerated.
	* gm2/mc-boot/GIO.c:  regenerated.
	* gm2/mc-boot/GIndexing.c:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/Gkeyc.c:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcOptions.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc/decl.mod:  fix bug in dangling else.
	* gm2/tools-src/mklink.c:  allow the link to occur with g++ and gcc.

2016-12-06  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  improved verify rule.
	* gm2/bnf/mc-2.bnf:  fixed bug declaring variables of an enumerated type.
	* gm2/mc-boot/GArgs.c:  regenerated.
	* gm2/mc-boot/GCmdArgs.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GEnvironment.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GFormatStrings.c:  regenerated.
	* gm2/mc-boot/GIO.c:  regenerated.
	* gm2/mc-boot/GIndexing.c:  regenerated.
	* gm2/mc-boot/GM2EXCEPTION.c:  regenerated.
	* gm2/mc-boot/GM2RTS.c:  regenerated.
	* gm2/mc-boot/GPushBackInput.c:  regenerated.
	* gm2/mc-boot/GRTExceptions.c:  regenerated.
	* gm2/mc-boot/GRTint.c:  regenerated.
	* gm2/mc-boot/GSArgs.c:  regenerated.
	* gm2/mc-boot/GSFIO.c:  regenerated.
	* gm2/mc-boot/GStdIO.c:  regenerated.
	* gm2/mc-boot/GStorage.c:  regenerated.
	* gm2/mc-boot/GStrCase.c:  regenerated.
	* gm2/mc-boot/GStrIO.c:  regenerated.
	* gm2/mc-boot/GStrLib.c:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/GSysStorage.c:  regenerated.
	* gm2/mc-boot/Galists.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/Gkeyc.c:  regenerated.
	* gm2/mc-boot/Glists.c:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcError.c:  regenerated.
	* gm2/mc-boot/GmcFileName.c:  regenerated.
	* gm2/mc-boot/GmcLexBuf.c:  regenerated.
	* gm2/mc-boot/GmcMetaError.c:  regenerated.
	* gm2/mc-boot/GmcOptions.c:  regenerated.
	* gm2/mc-boot/GmcPreprocess.c:  regenerated.
	* gm2/mc-boot/GmcPretty.c:  regenerated.
	* gm2/mc-boot/GmcPrintf.c:  regenerated.
	* gm2/mc-boot/GmcSearch.c:  regenerated.
	* gm2/mc-boot/GmcStack.c:  regenerated.
	* gm2/mc-boot/GmcStream.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc-boot/GsymbolKey.c:  regenerated.
	* gm2/mc-boot/Gvarargs.c:  regenerated.
	* gm2/mc-boot/Gwlists.c:  regenerated.
	* gm2/mc/decl.mod:  fixed bugs in variables of enumerated type,
          multi-dimensional arrays and introduced runtime case
	  and return checking.

2016-12-02  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  changed rules to include mc-boot-ch.
	* gm2/mc-boot-ch/Gmcrts.c:  regenerated.
	* gm2/mc-boot/GArgs.c:  regenerated.
	* gm2/mc-boot/GCmdArgs.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GEnvironment.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GFormatStrings.c:  regenerated.
	* gm2/mc-boot/GIO.c:  regenerated.
	* gm2/mc-boot/GIndexing.c:  regenerated.
	* gm2/mc-boot/GM2EXCEPTION.c:  regenerated.
	* gm2/mc-boot/GM2RTS.c:  regenerated.
	* gm2/mc-boot/GPushBackInput.c:  regenerated.
	* gm2/mc-boot/GRTExceptions.c:  regenerated.
	* gm2/mc-boot/GRTint.c:  regenerated.
	* gm2/mc-boot/GSArgs.c:  regenerated.
	* gm2/mc-boot/GSFIO.c:  regenerated.
	* gm2/mc-boot/GStdIO.c:  regenerated.
	* gm2/mc-boot/GStorage.c:  regenerated.
	* gm2/mc-boot/GStrCase.c:  regenerated.
	* gm2/mc-boot/GStrIO.c:  regenerated.
	* gm2/mc-boot/GStrLib.c:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/GSysStorage.c:  regenerated.
	* gm2/mc-boot/Galists.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/Gkeyc.c:  regenerated.
	* gm2/mc-boot/Gkeyc.h:  regenerated.
	* gm2/mc-boot/Glists.c:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcError.c:  regenerated.
	* gm2/mc-boot/GmcFileName.c:  regenerated.
	* gm2/mc-boot/GmcLexBuf.c:  regenerated.
	* gm2/mc-boot/GmcMetaError.c:  regenerated.
	* gm2/mc-boot/GmcOptions.c:  regenerated.
	* gm2/mc-boot/GmcPreprocess.c:  regenerated.
	* gm2/mc-boot/GmcPretty.c:  regenerated.
	* gm2/mc-boot/GmcPrintf.c:  regenerated.
	* gm2/mc-boot/GmcSearch.c:  regenerated.
	* gm2/mc-boot/GmcStack.c:  regenerated.
	* gm2/mc-boot/GmcStream.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc-boot/GsymbolKey.c:  regenerated.
	* gm2/mc-boot/Gvarargs.c:  regenerated.
	* gm2/mc-boot/Gwlists.c:  regenerated.
	* gm2/mc/decl.mod:  introduced runtime checking
	  for missing RETURN statements.
	* gm2/mc/keyc.def:  allow "Gmcrts.h" to be included.
	* gm2/mc/keyc.mod:  include "Gmcrts.h" if required.

2016-11-30  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GIO.c:  regenerated.
	* gm2/mc-boot/GSFIO.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/GmcError.c:  regenerated.
	* gm2/mc-boot/GmcLexBuf.c:  regenerated.
	* gm2/mc-boot/GmcPreprocess.c:  regenerated.
	* gm2/mc-boot/GmcPrintf.c:  regenerated.
	* gm2/mc-boot/GmcStream.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc/decl.mod:  change empty statements from
	; to {} to avoid gcc compiler warning.  Fix parameter
	type cast for C++ parameter passing to type ADDRESS
	and other system types.

2016-11-29  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc-boot/GCmdArgs.c:  regenerated.
	* gm2/mc-boot/GDebug.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GDynamicStrings.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/GFormatStrings.c:  regenerated.
	* gm2/mc-boot/GIndexing.c:  regenerated.
	* gm2/mc-boot/GStringConvert.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc-boot/GmcComp.c:  regenerated.
	* gm2/mc-boot/GmcOptions.c:  regenerated.
	* gm2/mc-boot/Gmcp1.c:  regenerated.
	* gm2/mc-boot/Gmcp2.c:  regenerated.
	* gm2/mc-boot/Gmcp3.c:  regenerated.
	* gm2/mc-boot/Gmcp4.c:  regenerated.
	* gm2/mc-boot/Gmcp5.c:  regenerated.
	* gm2/mc-boot/GnameKey.c:  regenerated.
	* gm2/mc/decl.mod:  (noIfElse)  New procedure function.  (hasIfElse)
          New procedure function.  (doIfC)  changed to issue braces to avoid
          a gcc warning.
	* gm2/mc-boot-ch:  New directory and files containing handbuilt
	  C and header files.

2016-11-24  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  updated rules to build handbuilt modules to use
	  new path.  Attempt to build compiler using mc.
	* gm2/bnf/mc-3.bnf:  use putOptReturn rather than
	  putProcTypeOptReturn.
	* gm2/bnf/mc-4.bnf:  use putOptReturn rather than
	  putProcTypeOptReturn.
	* gm2/bnf/mc-5.bnf:  use putOptReturn rather than
	  putProcTypeOptReturn.
	* gm2/gm2-libs-ch/SysExceptions.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs-ch/dtoa.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs-ch/errno.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs-ch/ldtoa.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs-ch/termios.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs-ch/wrapc.c:  use header file gm2-libs-host.h.
	* gm2/gm2-libs/libc.def:  removed white space.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc-boot/Gdecl.h:  rebuilt.
	* gm2/mc-boot/Gkeyc.c:  rebuilt.
	* gm2/mc-boot/Gkeyc.h:  rebuilt.
	* gm2/mc-boot/Gmcp3.c:  rebuilt.
	* gm2/mc-boot/GsymbolKey.c:  rebuilt.
	* gm2/mc-boot/Gwlists.c:  rebuilt.
	* gm2/mc-boot/Gwlists.h:  rebuilt.
	* gm2/mc/decl.def:  replace putProcTypeOptReturn with putReturnType.
	  New procedure putOptReturn.
	* gm2/mc/decl.mod:  implement putReturnType and putOptReturn.
          Fix bug in parameter declaration to use safe C names.
	  Also ensure that all variables are also safe from C names.
	* gm2/mc/keyc.def:  cnamen (New procedure function).  cp
	  (New procedure).
	* gm2/mc/keyc.mod:  implement cnamen (New procedure function).  cp
	  (New procedure).
	* gm2/mc/symbolKey.mod:  getSymKey returns NulKey if the tree is NIL.
	* gm2/mc/wlists.def:  replaceItemInList (New procedure).
	* gm2/mc/wlists.mod:  implement replaceItemInList.

2016-11-16  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  New rules (mc-clean-libs) (mc-test)
          and (mc-help).
	* gm2/mc/decl.mod:  doInc, doDec, doIncDecCP (New procedures)
          which fix the pointer arithmetic in INC/DEC for C++.
	* gm2/mc-boot:  regenerated.

2016-11-15  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  changes to mc rules so we use less
	  aggresive warning options for g++.
	* gm2/mc/decl.mod:  changes to the cpp backend to
	  implement casts.
	* gm2/mc-boot/GArgs.c:  regenerated.
	* gm2/mc-boot/GFIO.c:  regenerated.
	* gm2/mc-boot/Gdecl.c:  regenerated.

2016-11-11  Gaius Mulley  <gaius@gnu.org>

	* updates for the shared library example pge.
	* gm2/examples/pge/Fractions.mod:  removed unnecessary spaces.
	* gm2/examples/pge/history.def:  major changes to history of collision.
	* gm2/examples/pge/history.mod:  major changes to history of collision.
	* gm2/examples/pge/roots.def:  new procedure function nearCoord.
	* gm2/examples/pge/roots.mod:  new procedure function nearCoord.
	* gm2/examples/pge/twoDsim.mod:  huge changes to include interpenetration
          testing.

2016-11-02  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc-boot/Gdecl.c:  regenerated.
	* gm2/mc/decl.mod:  generate a static_cast.  This fixes a
	  bug in the translation of Args.mod.

2016-11-01  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-gcc/m2linemap.h:  changed prototype of StartFile to
          use void * rather than char *.
	* gm2/m2.flex:  do not include p2c/p2c.h and m2linemap.h.

2016-10-20  Gaius Mulley  <gaius@gnu.org>

	* gm2/examples/pge/MemStream.mod:  many changes and bug fixes to
	  shared library example.
	* gm2/examples/pge/MemStream.mod:  ditto.
	* gm2/examples/pge/NetworkOrder.mod:  ditto.
	* gm2/examples/pge/deviceIf.mod:  ditto.
	* gm2/examples/pge/examples/triangle.py:  ditto.
	* gm2/examples/pge/history.def:  ditto.
	* gm2/examples/pge/history.mod:  ditto.
	* gm2/examples/pge/pgeif.def:  ditto.
	* gm2/examples/pge/pgeif.mod:  ditto.
	* gm2/examples/pge/roots.def:  ditto.
	* gm2/examples/pge/roots.mod:  ditto.
	* gm2/examples/pge/twoDsim.def:  ditto.
	* gm2/examples/pge/twoDsim.mod:  ditto.
	* gm2/examples/pge/buffers.c:  ditto.
	* gm2/examples/pge/max2code.py:  fixed options.
	* gm2/examples/pge/mxmmaxima.py:  removed debugging trace.
	* gm2/examples/pge/mxmparser.py:  removed debugging trace.
	* gm2/examples/pge/mxmtree.py:  removed debugging trace.
	* gm2/examples/pge/pge.py:  huge number of changes.
	* gm2/examples/pge/pgeif.i:  changes to the python interface.
	* gm2/examples/pge/pgeplayback.py:  many bug fixes to allow
          single stepping.
	* gm2/examples/pge/pgepygame.py:  minor changes and removal
	  of spacing.

2016-10-03  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  instruct mc to generate g++ compilient C code.
	* gm2/gm2-gcc/m2treelib.def:  remove multiple definition of
          get_set_field_rhs and import ADDRESS.
	* gm2/gm2.texi:  trimmed spaces.
	* gm2/m2.flex:  use __attribute__((unused)) in init/finish
	functions.
	* gm2/mc-boot:  rebuilt.
	* gm2/mc/decl.mod:  handle C char.  Strings of 1 character
          are encoded as C strings and also C chars.  (checkPtr)
          New procedure function.  (doExprCastC)  New procedure
          function.  init/finish functions all use __attribute__((unused)).
          (outCP) removed.
	* gm2/mc/mcOptions.mod:  fixed bug by rearranging order of option
	  processing.

2016-09-20  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  removed all references to p2c.
          Use mc to build gm2 rather than p2c and replaced
          rules.  Also modified the list of the library modules
          required during bootstrapping gm2.  Many changes
	to all bootstrap rules.
	* gm2/gm2-libs-boot/SYSTEM.def:  removed file.
	* gm2/mc-boot/GAssertion.c:  rebuilt.
	* gm2/mc-boot/GDebug.c:  rebuilt.
	* gm2/mc-boot/GDynamicStrings.c:  rebuilt.
	* gm2/mc-boot/GDynamicStrings.c:  rebuilt.
	* gm2/mc-boot/GFIO.c:  rebuilt.
	* gm2/mc-boot/GFormatStrings.c:  rebuilt.
	* gm2/mc-boot/GIndexing.c:  rebuilt.
	* gm2/mc-boot/GNumberIO.c:  rebuilt.
	* gm2/mc-boot/GStdIO.c:  rebuilt.
	* gm2/mc-boot/Gdecl.c:  rebuilt.
	* gm2/mc-boot/Gkeyc.c:  rebuilt.
	* gm2/mc-boot/GmcComp.c:  rebuilt.
	* gm2/mc-boot/GmcError.c:  rebuilt.
	* gm2/mc-boot/GmcLexBuf.c:  rebuilt.
	* gm2/mc-boot/GmcMetaError.c:  rebuilt.
	* gm2/mc-boot/GmcPreprocess.c:  rebuilt.
	* gm2/mc-boot/GmcPrintf.c:  rebuilt.
	* gm2/mc-boot/GmcStack.c:  rebuilt.
	* gm2/mc-boot/GmcStream.c:  rebuilt.
	* gm2/mc-boot/Gmcp1.c:  rebuilt.
	* gm2/mc-boot/Gmcp2.c:  rebuilt.
	* gm2/mc-boot/Gmcp3.c:  rebuilt.
	* gm2/mc-boot/Gmcp4.c:  rebuilt.
	* gm2/mc-boot/Gmcp5.c:  rebuilt.
	* gm2/mc-boot/GnameKey.c:  rebuilt.
	* gm2/mc-boot/Gvarargs.c:  rebuilt.
	* gm2/mc/Indexing.mod:  added assert.
	* gm2/mc/decl.mod:  fixed bug to allow comparison
	  of proctypes.
	* gm2/mc/mcMetaError.mod:  fixed bug to allow nameless
	  symbols to unalter the error string.

2016-09-19  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  many new rules to deal with the
          bootstrapping of mc.
	* gm2/bnf/mc-3.bnf:  removed unnecessary imports.
	* gm2/bnf/mc-4.bnf:  implement NOT.
	* gm2/bnf/mc-5.bnf:  implement NOT and final body.

2016-09-05  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  removal of Indexing.mod from
          the list of library files as it is included in the
          project files.  Many new rules to build the bootstrap
          version of mc.
	* gm2/gm2-libs-ch/Selective.c:  tidied up spacing.
	* gm2/gm2-libs-ch/UnixArgs.c:  tidied up spacing.
	* gm2/gm2-libs-ch/wrapc.c:  tidied up spacing.
	* gm2/mc-boot/libc.c:  deleted file.
	* gm2/mc-boot/Glibc.c:  new file.
	* gm2/mc-boot/GSelective.c:  new file.
	* gm2/mc-boot/Gmcrts.c:  new file.

2016-09-03  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  tidied up spacing.
	* gm2/bnf/mc-1.bnf:  handle DEFINITION FOR "C".
	* gm2/mc/decl.def:  (putDefForC)  New procedure.
	* gm2/mc/decl.mod:  (putDefForC)  New procedure
          implemented.  (isDefForC)  New procedure function.
          (doIncludeC)  include mc-<module>.h for DEFINITION
          FOR "C".  Do not qualify names if they were defined
          in DEFINITION FOR "C" modules.  Also disable high
          parameter.  Disabled handling of DEFINITION FOR "C".
	* gm2/mc/keyc.mod:  added write, read, exit, abs,
	  optarg, div to the list of names to avoid.

2016-09-02  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc/decl.mod:  (out1) use safe type conversion
          from pointer into cardinal.  (gen) use safe type
          conversion from pointer into cardinal.
          (topologicallyOut) use populateTodo to ensure that
          all enumeration and constants are declared prior to
          the datatypes which depend upon them.  (dbgSubrange)
	  New procedure.

2016-08-31  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  extra space introduced.
	* gm2/mc/decl.mod:  detect cyclic dependancy problem and
          issue appropriate error message and abort translation.
	* gm2/Make-lang.in:  specific rule to build
          gm2/mc-boot/$(SRC_PREFIX)decl.c
	* gm2/mc/decl.mod:  (doEnumerationField) use doFQDNameC
          instead of doFQNameC.  (doRecordNameC) New procedure.
          (doTypeNameC) use doRecordNameC.  (doPrototypeC) only
	  generate the prototype if the	procedure is not exported.
          (runIncludeDefConstType)  New procedure.
          (foreachModuleDo)  New procedure.  (walkArray) also walk
          the subr field.  (runSimplifyTypes)  New procedure.
          (runPrototypeExported)  New procedure.  (runPrototypeDefC)
          New procedure.  (outImpC) rewritten to fix bugs if
	  getExtendedOpaque was used.

2016-08-27  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc/decl.mod:  add cname field to enumerationfield.
          (makeEnumerationField)  Initialise cname field.
          (getFQDstring)  New procedure function.
          (doEnumC) use doFQDNameC.  (doFQDNameC)  New procedure
          function.  (topologicallyOut)  add debugging information.
	  57 out of 58 mc modules translate.

2016-08-25  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-3.bnf:  process enumeration types and fields
          (as per pass 2).
	* gm2/mc/decl.mod:  (getNextEnum) assert enumerationField
          or enumeration type is returned.  (doLiteralC) detect
          and handle octal integer literals.
          (isStatementSequenceEmpty)  New procedure function.
          (isSingleStatement) rewritten and bug fixed.
          (containsStatement)  New procedure function.
          (noElse)  handle dangling else.  Also ignore empty
          else statements.  (doNewC)  use ALLOCATE rather than
          malloc.  (doFreeC)  use DEALLOCATE rather than free.
          (needsCast)  returns FALSE if C base types are the same.
	* gm2/mc/keyc.def:  (useStorage)  New procedure function.
	* gm2/mc/keyc.mod:  (useStorage)  Implement new procedure
          function.  (checkStorage) New procedure.  (genDefs)
	  call checkStorage.

2016-08-23  Gaius Mulley  <gaius@gnu.org>

	* gm2/el/g-mode.el:  updated dates and also introduced
          dialect comment after the module name.  Currently
          hard wired to (*!m2pim*).
	* gm2/mc/decl.def:  added dialect comment.
	* gm2/mc/decl.mod:  added dialect comment.  Fixed bug in
          case statements which use ranges.
          Self translation of 54 of the 58 modules occur.
	* gm2/mc/decl.mod:  introduce cnameT for declarations
          which might conflict with C keywords.  Currently only
	  record fields use cnames.  55 of the 58 module translate.

2016-08-19  Gaius Mulley  <gaius@gnu.org>

	* gcc/gm2/Make-lang.in:  included mcStream.def and
          mcStream.mod to be compiled and linked to produce mc.
	* gm2/init/mcinit:  updated link and init list to include
          mcStream.
	* gm2/mc/decl.mod:  many, many bug fixes which now allow
	  self translation of 53 of the 58 modules.

2016-08-16  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added mcStream.def and mcStream.mod
	  to the build list for mc.

2016-08-16  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added wrapc.def pth.def COROUTINES.def
          Selective.def termios.def to be translated by mc as part
          of mc-autogen.  Added rules to translate iso libraries
	  from M2 to C using mc.
	* gm2/mc/decl.mod:  added halt node.  (doEscape) New procedure
          function.  (doStringC) add escape to the escape character if
          inside a string literal.  (addExported) corrected test prior
          to addToDo.  (includeDefVarProcedure)  include variables and
          types symbols if they are defined in definition modules.
          (doFuncUnbounded) include cast for parameter and use
          doFQNameC for the parameter name rather than call doExprC
          since doExprC will dereference a VAR paramater and we must
          pass it as declared.  (doAdrExprC)  New procedure function
          which is used to catch & (*p) and simply it to (p).  (doHalt)
	  New procedure.

2016-08-05  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  translate autogenerated modules without
	  the --extended-opaque option.
	* gm2/mc/decl.mod:  many changes which include the ability to
          visit all nodes and their dependents calling a call back
	  procedure.

2016-08-01  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  introduce rules to build new module keyc.
          New rules to attempt to build the C generated version of mc.
	* gm2/init/mcinit:  added keyc to the list of modules to be
          linked.
	* gm2/mc/decl.mod:  changed skipType to detect an opaque type
          and not skip to NIL if this is the case.  outNull, outTrue,
          outFalse, (New procedures).  doArrayC fixed bug in declaring
          static arrays.  doFuncUnbounded changed parameter names and
          fixed a static array being passed to an unbounded parameter.
          getNthParam (New procedure function).
	* gm2/mc/keyc.def:  New file.
	* gm2/mc/keyc.mod:  New file.

2016-07-25  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  removed SYSTEM.mod from the list of
	  modules to be converted by mc.
	* gm2/bnf/mc-3.bnf:  ConstExpression pushes a makeConstExp.
	* gm2/bnf/mc-4.bnf:  ConstExpression gets a constexp.
	  Reset constexp index for every new file.
          ConstSetOrQualidentOrFunction
          many asserts added and production statement order bug fixed.
          ConstActualParameters added assert.
	* gm2/bnf/mc-5.bnf:  implement LOOP END.  Fix bugs in the
	  construction of set values.
	* gm2/mc/decl.def:  makeExit, isExit, makeLoop, isLoop
	  (New procedure functions).
	* gm2/mc/decl.mod:  generate accurate error messages based
          on node declaration position.  Implement FLOAT and TRUNC.
          Fix MAX (enum) and MIN (enum).  Allow + to join two strings.
          Bugfix for pointer ref, deref combinations.  Fix type
          in makeArrayRef.  THROW implemented.  Fix string escape
          sequences.  Fix MAX/MIN (LONGINT/LONGCARD).  Fix ADR
          to spot & * cancel each other.  doExceptionC generate
	  line/file/column location from the node declaration.

2016-07-18  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-5.bnf:  duplicate the with expression before
          calling makeCompenentRef.  SubPointer (New production).
          CaseStatement (New production).  Case (New production).
          CaseLabelList (New production).  CaseLabels
	  (New production).
	* gm2/mc/decl.def:  makePointerRef (New procedure
          function).  isPointerRef (New procedure function).
          getLastOp (New procedure function).
          makeCase (New procedure function).
          isCase (New procedure function).
          putCaseExpression (New procedure function).
          makeCaseLabelList (New procedure function).
          isCaseLabelList (New procedure function).
          makeCaseList (New procedure function).
          isCaseList (New procedure function).
          putCaseRange (New procedure function).
          makeRange (New procedure function).
          isRange (New procedure function).
          dupExpr (New procedure function).
	* gm2/mc/decl.mod:  implement above.
          Case statements implemented.  With statements bug fixed
          by duplicating the with expression.  pointerref
          introduced and componentref is replaced by pointerref
          if it is preceeded by a deref.  Polymorphic + - / * binary
	  operators are implemented.
	* gm2/mc/mcOptions.mod:  added case, array, return
	  option variables.

2016-07-13  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-3.bnf:  ConstExpressionNop (New production).
          ConstFactor (use ConstSetOrQualidentOrFunction).
          ComponentElement (use ConstExpressionNop).
          ConstActualParameters (use ConstExpList).
          ConstExpList (use ConstExpressionNop).
          AlignmentExpression (use ConstExpressionNop).
          PragmaConstExpression (use ConstExpressionNop).
          AttributeExpression (use ConstExpressionNop).
          CaseLabels (use ConstExpressionNop).
          ForStatement (use ConstExpressionNop).
          Priority (use ConstExpressionNop).
	* gm2/bnf/mc-4.bnf:  ConstComponentValue (New production).
          ConstComponentElement (New production).
          ConstComponentValue (New production).
          ConstArraySetRecordValue (New production).
          ConstConstructor (New production).
          ConstActualParameters (New production).
          ConstExpList (New production).
          Constructor, ArraySetRecordValue, ComponentValue,
          ComponentElement (Productions now do nothing).
	* gm2/bnf/mc-5.bnf:  ConstExpressionNop (New production).
          ConstantDeclaration (use ConstExpressionNop).
          ConstExpression (use ConstExpressionNop).
          ConstComponentElement (new production).
          ConstArraySetRecordValue (new production).
          ConstConstructor (new production).
          ConstActualParameters (new production).
          ConstExpList (new production).
          AlignmentExpression (use ConstExpressionNop).
          SubrangeType (use ConstExpressionNop).
          AttributeExpression (use ConstExpressionNop).
          VarientCaseLabels (use ConstExpressionNop).
          VarIdent (use ConstExpressionNop).
          ComponentElement (new production).
          ComponentValue (new production).
          ArraySetRecordValue (new production).
          Constructor (new production).
          OptArg (new production).
          DefOptArg (new production).
          Priority (new production).
	* gm2/mc/decl.def:  makeSetValue (New procedure function).
          isSetValue (new procedure function).
          putSetValue (new procedure function).
          includeSetValue (new procedure function).
	* gm2/mc/decl.mod:  in (New node kind).
          setvalue (New node kind).
          makeSetValue (Implement procedure function).
          isSetValue (Implement procedure function).
          putSetValue (Implement procedure function).
          includeSetValue (Implement procedure function).
          isAnyType (New procedure function).
          makeCast (New procedure function).
          isUnary (New procedure function).
          isDeref (New procedure function).
          doSetExprType (New procedure function).
          getMaxMinType (New procedure function).
          doGetFuncType (New procedure function).
          getExprType (New procedure function).
          doGetLastOp (New procedure function).
          getLastOp (New procedure function).
          doComponentRefC (New procedure).
          doSetValueC (New procedure).
          doInC (New procedure).
          doNewC (completed).
          doDisposeC (completed).
          doAbsC (New procedure).
          doValC (New procedure).
          doMinC (New procedure).
          doMaxC (New procedure).

2016-07-06  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-5.bnf:  ConstExpList introduce more asserts.
          ArrayExpList introduce more asserts.  ExpList introduce more asserts.
          Term, Factor generate an expression.  ExitStatement introduce
          an assert.  Statement allow empty statements to be produced.
	  StatementSequence introduce assert.
	* gm2/mc/decl.mod:  introduce ABS intrinsic.  isVarDecl,
          identListLen, isArrayRef, isZero, doArrayRef, doProcedure,
          doStringC, outCard, doSubtractC, checkDeclareUnboundedParamCopyC,
          checkUnboundedParamCopyC, doUnboundedParamCopyC,
          addVariablesTodo, addTypesTodo, simplifyVar, doWhileC, doFuncHighC,
          doMultiplyBySize, doTotype, doFuncUnbounded, doFuncParamC,
          getNthParamType, doAdrC, doIncDecC, doInclC, doExclC, doNewC,
          doDisposeC, isIntrinsic, doIntrinsicC, getFuncFromExpr,
          doFuncExprC, doLocalVarC, addParamDone, includeParameters
	  (New procedure).
	* gm2/mc/mcPretty.def:  getseekpos, getcurline (New procedure functions).
	* gm2/mc/mcPretty.mod:  getseekpos, getcurline (implemented).

2016-06-22  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-3.bnf:  merged definition and module variable declaration
	  rules.  Always pop the return result from ConstExpression.
	* gm2/bnf/mc-4.bnf:  no longer declare variables in pass 4.
	* gm2/bnf/mc-5.bnf:  major changes which include generation of if/then/else/elsif
          for loops, while loops, repeat loops.  With statements handled.  Expressions are
          built and constant expressions retieved from a previous pass.  Debugging
	  aids also built.  Function/procedure call handled.  Return statement handled.
	* gm2/mc/decl.def:  New procedures: addOptParameter, isOptarg, makeComponentRef, makeDeRef,
          makeArrayRef, resetConstExpPos, makeStatementSequence, isStatementSequence,
          addStatement, makeReturn, isReturn, putReturn, makeWhile, putWhile,
          isWhile, makeAssignment, putBegin, makeExit, makeComment, makeIf,
          isIf, makeElsif, isElsif, putElse, makeFor, isFor, putFor, makeRepeat,
          isRepeat, putRepeat declared and exported.
	* gm2/mc/decl.mod:  new node types, exit, return, stmtseq, comment, new
          dispose, inc, dec, incl, excl, optarg, throw, deref added.
          New procedures:  isLocal, addProcedureToScope, addParameter, isOptarg,
          makeOptParameter, addOptParameter, makeFuncCall, isFuncCall, makeComponentRef,
          makeArrayRef, makeDeRef, makeBinaryTok, getFQstring, needsParen, doUnary,
          doUnary, doBinary, doBinary, doPreBinary, doPreBinary, doExprM2, doVar,
          doOptargC, doPrototypeC, doProcedureHeadingC, doPrototypeC,
          outDeclsDefC, outDeclsDefC, includeVar, joinProcedures, doStatementSequenceC,
          isSingleStatement, doCommentC, doExitC, doReturnC, doAssignmentC,
          doCompoundStmt, doElsifC, noElse, doIfC, doForC, doRepeatC,
          doFuncArgsC, doFuncCallC, doStatementsC, doLocalDeclsC, doProcedureC,
          outProceduresC, walkOptarg, outImpInitC, outModuleC, outModuleInitC,
          outModuleC, outC, dbgVar, dbgArray, makeStatementSequence,
          addStatement, isStatementSequence, makeReturn,
          isReturn, putReturn, makeWhile, putWhile,
          isWhile, makeAssignment, isAssignment, putBegin, makeExit,
          isExit, makeComment, isComment, makeIf, isIf, makeElsif,
          isElsif, putElse, makeFor, isFor, putFor, makeRepeat, isRepeat,
          putRepeat and makeM2rts added.
	* gm2/mc/mcComp.mod:  reintroduce pass 5.
	* gm2/mc/mcStack.def:  new procedure access declared.
	* gm2/mc/mcStack.mod:  new procedure access implemented.

2016-05-24  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-3.bnf:  integer, real no longer push a value to the stack.
          call setConstExpComplete at the end of the pass.  Remove result of the
	  constexpression.   Add many asserts to aid debugging.
	* gm2/bnf/mc-4.bnf:  remove calls to setEnumsComplete.  Call fixupConstExp
	  in ConstExpression.  Call makeFuncCall in ConstSetOrQualident.
          Remove all type generation building.  Remove import handling.
	* gm2/bnf/mc-5.bnf:  remove all references to resetFuncFixup.
	  Remove call to applyFuncFixup.
	* gm2/gm2-libs/DynamicStrings.mod:  trip whitespace.
	* gm2/mc/alists.mod:  correct indentation.
	* gm2/mc/decl.def:  remove resetFuncFixup, replace it with makeExpList.
          remove makeFuncFixup and replace with isExpList.  Remove isFuncFixup
          and replace with putExpList.  Remove makeExpList and replace with
          makeConstExp.  Remove isExpList and replace it with getNextConstExp.
	  Remove putExpList and replace with setConstExpComplete.
          fixupConstExp (new procedure function).  Remove applyFuncFixup
	  and replace with makeFuncCall.
	* gm2/mc/decl.mod:  added funccall, constexp and chr to nodeK.
          Also modified all associated procedure functions.  Replaced
          funcFixup with constFixup.  Added constsComplete to definition,
          implementation and program modules.  Only generate #include
          if the getExtendedOpaque switch is not set.  Initialise ord, chr
	  and val as base procedure functions.
	* gm2/mc/mcComp.mod:  always invoke pass4, temporarily short circuit
	  pass 5.

2016-05-23  Gaius Mulley  <gaius@gnu.org>

	* interim checkin:

2016-05-21  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-2.bnf:  create enums for .mod files as well as .def files.
	* gm2/bnf/mc-3.bnf:  fixed bug, make empty varient leave the stack alone.
	* gm2/bnf/mc-4.bnf:  likewise applied to pass 4.  Create enums
          for .mod files.  DefQualident, DefTypeEquiv, DefEnumIdentList,
          DefEnumeration, DefSimpleType, new rules introduced and used.
	* gm2/examples/pge/twoDsim.mod:  right hand white space removed.
	* gm2/mc/decl.mod:  loc introduced.  Parameter building and
	variable shadowing introduced.
	* gm2/mc/mcComp.mod:  commented out p5.
	* gm2/mc/wlists.mod:  renamed maxNoOfElements and noOfElements.

2016-05-17  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-5.bnf:  introduce func fixups.  Removed all
          constant expression procedures.  Removed all type
          generation procedures.  Removed all import processing
          as this should be done in previous passes.
	* gm2/mc/decl.def:  (resetFuncFixup) new procedure.
          (makeExpList) new procedure function.  (putExpList) new
          procedure.  (applyFuncFixup) new procedure.
	* gm2/mc/decl.mod:  (explist) new kind.  (resetFuncFixup)
	  implemented new procedure.
          (makeExpList) implemented new procedure function.
          (putExpList) implemented new procedure.
          (applyFuncFixup) implemented new procedure.

2016-05-16  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added mcp5.mod to be built and linked into mc.
          Removed SysExceptions from being built as part of the bootstrap
          for mc.  mc does not need it as SysExceptions is a gm2 runtime
          library.  Removed reference to m2flex.def in MC-DEFS.  Removed
          mcflex.mod from MC-MODS.
	* gm2/init/mcinit:  added mcp5 to be linked and initialised.
	* gm2/mc/README:  corrected the pass description, now that pass 3
          is used by .def and .mod files.  Thus there is no need for pass 6.
          Pass 5 functionality now contains the old pass 6 description.
	* gm2/mc/decl.mod:  new kind funcfixup to allow fixups to be applied
          between constant functions and their parameters (possibly types).
          (eg. MAX(typename)).  Created a fixupInfo record which is used by
          enum fixups and constant function fixups.
	* gm2/mc/mcComp.mod:  enable pass 5.
	* At this point mc should handle constants, all data types and
          generate a tree of nodes representing them.  All procedure prototypes
          are known.  All that is left to do is build a tree of nodes
          representing the code and then walk the tree generating
	  C11 or C++ code.

2016-05-11  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added rules to bootstrap mc mod files.
	* gm2/bnf/mc-3.bnf:  use Expression rather than ConstExpression in
          ComponentElement.
	* gm2/mc/decl.mod:  added mult, throw nodes.  Fixed ord to be a unary
          operator.  doSetC (New procedure).  includeSyms renamed includeConstType.
          includeVarProcedure (New procedure).  includeDefConstType (New procedure).
          Export size from SYSTEM.  Attempt to declare const/types before
          var/procedures.

2016-05-10  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc/decl.mod:  write and writeln call FlushBuffer
	  as a debugging aid.  tempName returns a String.
          makeIntermediateType new procedure function.
          simplifyType call tempName and makeIntermediateType.
          doSimplifyNode also simplifies pointer types.
          outDeclsDefC outputs constants, types and then variables.
          walkPointer returns completed if the type is partial or done.
          walkVarientField returns partial if field type is on the partialQ.
          tryPartial moves pointer types.
          outputPartial moves over pointer types and issues '*' accordingly.

2016-05-09  Gaius Mulley  <gaius@gnu.org>

	* gm2/mc/decl.mod:  many changes and bug fixes.  Modula-2 output
	  of data structures implemented and pretty printing of M2, C
          data structures implemented.
	* gm2/mc/mcOptions.mod:  corrected --olang= processing.
	* gm2/mc/mcPretty.def:  pushPretty and popPretty
          (New procedure functions) defined.
	* gm2/mc/mcPretty.mod:  pushPretty and popPretty
          (New procedure functions) implemented.

2016-04-27  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  force the mc-boot rule.
	* gm2/bnf/mc-3.bnf:  many bug fixes and finished implementing
          record/varient record handling.
	* gm2/mc/decl.def:  add second parameter to
          buildVarientFieldRecord.
	* gm2/mc/decl.mod:  min, max new nodes.  makeArray skip type.
          buildVarientFieldRecord add second parameter and use it.
          Many features added and code added.
	* gm2/mc/mcOptions.mod:  new option --ignore-fq.
	* gm2/mc/mcStack.def:  depth (New procedure function).
	* gm2/mc/mcStack.mod:  implemented depth.

2016-04-23  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  rewrite of mc-autogen which currently tests
	  the translation of the library modules required by mc.
	* gm2/bnf/mc-1.bnf:  bug fix to allow procedures to be declared
	  in both definition and implementation modules.
	* gm2/bnf/mc-3.bnf:  interim change prior to fixing a bug in
          the varient record handling.

2016-04-21  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-1.bnf:  distinguish between from module import and
          import module.  Call putTypeHidden for a hidden type.
	* gm2/bnf/mc-2.bnf:  distinguish between from module import and
          import module.  Follow scopes during procedures.  No longer
	  call registerImport.
	* gm2/bnf/mc-3.bnf:  remove registerImport.  Ensure that the
          definition module scope is visible below the implementation
          module.  Use Qualident rather than PushQualident for non
	  data structure based rules.
	* gm2/mc/decl.def:  hasHidden, foreachModModuleDo, paramEnter,
          paramLeave (new procedures).  addImportedModule changed to include
          and extra parameter.
	* gm2/mc/decl.mod:  added tsize node.  Many changes implementing
	  the above and bug fixing topological sort algorithm.
        * gm2/mc/mcComp.mod:  changes to allow --extended-opaque to take
          effect.  The implementation module for each definition module which
	  defines an opaque type will be parsed.
        * gm2/mc/mcOptions.def:  introduce --extended-opaque option.
	* gm2/mc/mcOptions.mod:  record --extended-opaque option.
	* gm2/Make-lang.in:  alter MCOPTIONS to include runtime checking.
	* gm2/gm2-libs/FormatStrings.mod:  implement %x as a format
          specifier.
	* gm2/gm2-libs/SFIO.mod:  WriteS check that s is not NIL.
	* gm2/mc/decl.mod:  topological sort bugfix.  Implemented
          data structure debugging which can be turned on via
          --debug-top.  Many bug fixes and tidying up.
	* gm2/mc/mcOptions.mod:  record --debug-top option.
	* gm2/mc/mcOptions.def:  getDebugTopological (new
          procedure function).
	* gm2/mc/decl.mod:  bug fix to allow proctypes and
	  parameters to be generated from partial declarations.a

2016-04-18  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  new rule mc-autogen.
	* gm2/bnf/mc-1.bnf:  fixed scope tracking for implementation module.
	  Use makeTypeImp during type declaration in implementation module.
	* gm2/bnf/mc-2.bnf:  fixed scope tracking for implementation module.
	* gm2/bnf/mc-3.bnf:  corrected grammar during type declaration.
	* gm2/mc/decl.def:   isVisited (new procedure function).  unsetVisited,
	  setVisited (new procedure).  makeTypeImp (new procedure function).
	* gm2/mc/decl.mod:  implement isVisited, unsetVisited, setVisited,
	  makeTypeImp.  Many bug fixes to topological output of declarations.
          All type declarations including recursive declarations are now
          implemented.
	* gm2/mc/mcComp.mod:  parse implementation module during pass 1
	  and pass 2.

2016-04-14  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  changed gm2-bootstrap test.
	* gm2/bnf/mc-1.bnf:  changed variable creation so that both
	def and mod declare variables.  Added epsilon instead of [].
	Added scope handling to procedures.  Allowed implementation and
	program modules to be passed.
	* gm2/bnf/mc-2.bnf:  Added epsilon instead of [].  Tidied up.
	* gm2/mc/decl.mod:  continued development and debugging.

2016-04-12  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  added mc-4.bnf to be built.
	* gm2/bnf/mc-3.bnf:  bug fixes so that return results are recorded from procedure functions.
	* gm2/init/mcinit:  added mcp4.
	* gm2/mc/decl.mod:  more development.
	* gm2/mc/mcComp.mod:  include pass 4.

2016-04-11  Gaius Mulley  <gaius@gnu.org>

	* gm2/Make-lang.in:  new very simple rules for mc-devel and
          initial attempt at gm2-bootstrap using mc.
	* gm2/mc/decl.def:  implement variable declarations.
	* gm2/mc/decl.mod:  many changes to implement pass 3 and
	  the output of recursive data structures.
	* gm2/mc/mcError.def:  fixed parameter declarations so that they
	  match their implementation counterparts.
	* gm2/mc/mcError.mod:  consistant parameter declarations.
	* gm2/mc/mcLexBuf.def:  fixed parameter declarations so that they
	  match their implementation counterparts.
	* gm2/mc/mcMetaError.def:  fixed parameter declarations so that
          they match their implementation counterparts.
	* gm2/mc/mcPreprocess.mod:  use alists rather than lists.
	* gm2/mc/mcSearch.def:  consistant parameter declarations.
	* gm2/mc/mcSearch.mod:  consistant parameter declarations.
	* gm2/mc/nameKey.def:  consistant parameter declarations.
	* gm2/bnf/mc-3.bnf:  fix variable declarations in definition modules.
	* gm2/mc/mc.flex:  correct prototype.

2016-03-14  Gaius Mulley  <gaius@gnu.org>

	* gm2/bnf/mc-1.bnf:  new file.
	* gm2/bnf/mc-2.bnf:  new file.
	* gm2/bnf/mc-3.bnf:  new file.
	* gm2/gm2-gcc/gcc-consolidation.h:  new file.
	* gm2/mc/Indexing.def:  new file.
	* gm2/mc/Indexing.mod:  new file.
	* gm2/mc/README:  new file.
	* gm2/mc/alists.def:  new file.
	* gm2/mc/alists.mod:  new file.
	* gm2/mc/decl.def:  new file.
	* gm2/mc/decl.mod:  new file.
	* gm2/mc/decl.mod-extra:  new file.
	* gm2/mc/lists.def:  new file.
	* gm2/mc/lists.mod:  new file.
	* gm2/mc/m2flex.def:  new file.
	* gm2/mc/mc.flex:  new file.
	* gm2/mc/mcComp.def:  new file.
	* gm2/mc/mcComp.mod:  new file.
	* gm2/mc/mcDebug.def:  new file.
	* gm2/mc/mcDebug.mod:  new file.
	* gm2/mc/mcError.def:  new file.
	* gm2/mc/mcError.mod:  new file.
	* gm2/mc/mcFileName.def:  new file.
	* gm2/mc/mcFileName.mod:  new file.
	* gm2/mc/mcLexBuf.def:  new file.
	* gm2/mc/mcLexBuf.h:  new file.
	* gm2/mc/mcLexBuf.mod:  new file.
	* gm2/mc/mcMetaError.def:  new file.
	* gm2/mc/mcMetaError.mod:  new file.
	* gm2/mc/mcOptions.def:  new file.
	* gm2/mc/mcOptions.mod:  new file.
	* gm2/mc/mcPreprocess.def:  new file.
	* gm2/mc/mcPreprocess.mod:  new file.
	* gm2/mc/mcPrintf.def:  new file.
	* gm2/mc/mcPrintf.mod:  new file.
	* gm2/mc/mcQuiet.def:  new file.
	* gm2/mc/mcQuiet.mod:  new file.
	* gm2/mc/mcReserved.def:  new file.
	* gm2/mc/mcReserved.h:  new file.
	* gm2/mc/mcReserved.mod:  new file.
	* gm2/mc/mcSearch.def:  new file.
	* gm2/mc/mcSearch.mod:  new file.
	* gm2/mc/mcStack.def:  new file.
	* gm2/mc/mcStack.mod:  new file.
	* gm2/mc/mcflex.def:  new file.
	* gm2/mc/mcp1.def:  new file.
	* gm2/mc/mcp2.def:  new file.
	* gm2/mc/mcp3.def:  new file.
	* gm2/mc/nameKey.def:  new file.
	* gm2/mc/nameKey.mod:  new file.
	* gm2/mc/symbolKey.def:  new file.
	* gm2/mc/symbolKey.mod:  new file.
	* gm2/mc/top.mod:  new file.
	* gm2/mc/varargs.def:  new file.
	* gm2/mc/varargs.mod:  new file.
	* gm2/mc/wlists.def:  new file.
	* gm2/mc/wlists.mod:  new file.
	* gm2/Make-lang.in:  generate cpp version stub.  Use $(COMPILER)
          rather than $(CC).  Removed all trailing whitespace.  Added
          rules for building mc.
	* gm2/configure.in:  corrected test (=) rather than (==).
	* gm2/configure:  rebuilt.
	* gm2/gm2-compiler/M2Comp.mod:  updated dates and removed trailing
          white space.
	* gm2/gm2-compiler/M2Error.mod:  updated dates and removed trailing
          white space.
	* gm2/gm2-compiler/M2LexBuf.mod:  corrected spacing at the end of
          a comment.
	* gm2/gm2-compiler/NameKey.mod:  corrected spacing at the end of
          a comment.
	* gm2/gm2-gcc/m2assert.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2block.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Change binding level code
          from C to C++.
	* gm2/gm2-gcc/m2builtins.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2convert.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Many changes to bring it
          up to gcc-5.2.0.
	* gm2/gm2-gcc/m2decl.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2except.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Minor changes to bring it into
	  line with gcc-5.2.0.
        * gm2/gm2-gcc/m2expr.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Minor changes to bring it into
          line with gcc-5.2.0.
	* gm2/gm2-gcc/m2linemap.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2misc.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2statement.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  C++ changes in gimplifiation
          of nested procedure functions.
	* gm2/gm2-gcc/m2top.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2tree.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.
	* gm2/gm2-gcc/m2treelib.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Many changes to convert C to C++
          and statement related data structure and methods have changed.
	* gm2/gm2-gcc/m2type.c:  use #include "gcc-consolidation.h" to
          hold all gcc related header files.  Many changes to convert C to C++
          and statement related data structure and methods have changed.
	* gm2/gm2-lang.c:  Many changes to convert C to C++
          and statement related data structure and methods have changed.
          Many changes to bring code into gcc-5.2.0.
	* gm2/gm2-lang.h:  changes to bring code into gcc-5.2.0.
	* gm2/gm2-libs/DynamicStrings.def:  additional dates.
	* gm2/gm2-libs/DynamicStrings.mod:  define desState and use it in
          descriptor.
	* gm2/gm2-libs/Indexing.def:  new procedure (DeleteIndice).
	* gm2/gm2-libs/Indexing.mod:  new field Used.  New procedure
          (DeleteIndice).
	* gm2/gm2-libs/SYSTEM.def:  additional dates.
	* gm2/gm2-libs/TimeString.def:  removed trailing white space.
	* gm2/gm2spec.c:  extra parameter to fe_save_switch  (used).
	* gm2/gm2version.h:  simplified conditional compilation.
	* gm2/lang.opt:  made options complient with gcc-5.2.0.
	* gm2/m2.flex:  use gm2-gcc/gcc-consolidation.h.  Fix int/unsigned int
          and cast of strings so that g++ will compile flex
	  generated output file.
	* gm2/m2pp.c:  use gm2-gcc/gcc-consolidation.h rather than
	  a list of include files.  Changed to make it gcc-5.2.0 complient.
	* gm2/tools-src/makeversion:  generate C++ gm2_version function if
	  the new option, -p, is used.  -p new option implemented.
	* gm2/tools-src/mklink.c:  fix typo.
	* testsuite/gm2/pim/pass/enum.mod:  new test code.

2016-03-03  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.mod:  checkRecordTypes new procedure
	function.  checkBecomes new procedure function.  CodeBecomes
	use checkBecomes.  This fixes a bug reported by
        <Georg.Lokowandt@t-online.de> (bug6.mod).

2016-02-25  Gaius Mulley  <gaius@gnu.org>

	* gm2/examples/gravity/Makefile.in:  fixed linewrap in
	  libtwoDsim.la.

2016-02-22  Gaius Mulley  <gaius@gnu.org>

	* gm2/configure:  rebuilt.
	* gm2/configure.in:  version number change to 1.1.6.
	* gm2/gm2-libs/config-host.in:  version number change to 1.1.6.
	* gm2/gm2-libs/config-target.in:  version number change to 1.1.6.
	* gm2/version.c:  version number change to 1.1.6.

2016-02-19  Gaius Mulley  <gaius@gnu.org>

	* gm2/gm2-compiler/M2GenGCC.mod:  CheckConvertCoerceParameter
          checks to see if an actual parameter is a constant string
          and if so calls BuildConvert.  This fixes a bug reported by
	  <Georg.Lokowandt@t-online.de> (bug5.mod).

2016-01-26  Gaius Mulley  <gaius@gnu.org>

	* gm2/examples/gravity/Makefile.in:  introduced LIBDIR which is
	  set dynamically to reflect the host architecture.

2016-01-19  Gaius Mulley  <gaius@gnu.org>

	* gm2/examples/gravity/Makefile.in:  rewritten to use libtool
	  when generating the shared library.

2016-01-14  Gaius Mulley  <gaius@gnu.org>

	* gm2/examples/gravity/Makefile.in:  converting Makefile.in
	to use libtool.
	* gm2/examples/gravity/twoDsim.mod:  removed tabs.
	* gm2/gm2-compiler/M2GCCDeclare.mod:  removed tabs.
	* gm2/gm2-gcc/m2decl.c:  set DECL_ARTIFICIAL and
          DECL_IGNORED_P for temporary variables.  (do_min_tree)
          (do_max_tree) new functions which are called by GetMinFrom
          and GetMaxFrom respectively.  This fixes a bug reported by
	  Michael Riedl.
