[PATCH] 0/19 modula-2 front end patches overview

Gaius Mulley gaiusmod2@gmail.com
Mon Oct 10 15:31:18 GMT 2022


Here are the latest modula-2 front end patches for review.
The status of the patches and their contents are also contained at:

   https://splendidisolation.ddns.net/public/modula2/patchsummary.html

where they are also broken down into topic groups.

In summary the high level changes from the last posting are:

   * the driver code has been completely rewritten and it is now based
     on the fortran driver and the c++ driver.  The gm2 driver adds
     paths/libraries depending upon dialect chosen.
   * the linking mechanism has been completely redesigned
     (As per
     https://gcc.gnu.org/pipermail/gcc-patches/2022-May/595725.html).
     Objects can be linked via g++.  New linking options
     are available to allow linking with/without a scaffold.
   * gcc/m2/Make-lang.in (rewritten).
   * gm2tools/ removed and any required functionality with the
     new linking mechanism has been moved into cc1gm2.

The gm2 testsuite has been extended to test project linking
options.

Testing
=======

1. bootstrap on gcc-13 master --enable-languages=c,c++,fortran,d,lto

2. bootstrap on gcc-13 devel/modula-2 --enable-languages=c,c++,fortran,d,lto
   no extra failures seen between contrib/compare_diffs 1 2

3. bootstrap on gcc-13 devel/modula-2 --enable-languages=c,c++,fortran,d,lto,m2
   no extra no m2 failures seen between contrib/compare_diffs 2 3

Steps 1, 2, 3 were performed on amd64 and aarch64 systems.

The devel/modula-2 branch has been bootstrapped on:

   amd64 (debian bullseye/suse leap, suse tumbleweed),
   aarch64 (debian bullseye),
   armv7l (raspian),
   ppc64 (GNU/Linux),
   ppc64le (GNU/Linux),
   i586 (debian bullseye),
   sparc64 solaris
   sparc32 solaris

and built on

   NetBSD 9.2 sparc64
   OpenBSD amd64

Sources
=======

The patch set files follow in subsequent emails for review and copies
can be found in the tarball below.  For ease of testing the full front
end is also available via:

  git clone git://gcc.gnu.org/git/gcc.git gcc-git-devel-modula2
  cd gcc-git-devel-modula2
  git checkout devel/modula-2

The complete patch set is also available from:

  https://splendidisolation.ddns.net/public/modula2/gm2patchset.tar.gz

which can be applied to the gcc-13 master branch via:

  git clone git://gcc.gnu.org/git/gcc.git gcc-git
  wget --no-check-certificate \
  https://splendidisolation.ddns.net/public/modula2/gm2patchset.tar.gz
  tar zxf gm2patchset.tar.gz
  bash gm2patchset/apply-patch.bash gcc-git
  bash gm2patchset/pre-configure.bash gcc-git # regenerates configure and friends

when the script has completed the master branch should be identical
to git branch devel/modula-2 above modulo recent git master commits.

Review Patch Set
================

Here are all the source infrastructure files and all the c++/c sources
(minus the bootstrap tools as these are autogenerated from the
modula-2 sources).  I've not included the modula-2 sources (patch sets
18 and 19) in these emails as an attempt to reduce the email volume.
They are available in
https://splendidisolation.ddns.net/public/modula2/gm2patchset.tar.gz
and of course the git repro.

I'm happy to convert the documentation into sphynx and at a convenient
point would like to post the analyser patches for modula2.

Thank you for reviewing the patches and thank you to all the testers

regards,
Gaius


More information about the Gcc-patches mailing list