Commit graph

5 commits

Author SHA1 Message Date
John Marino
d6c6953ea5 lang/modula3: Add custom DEC/CM3 license
It doesn't appear possible to have two custom licenses combined, so I
had to get creative and concatenate them into one combined document.
Also, the auto-generated plist had to be modified to add the three new
entries.  There may be a better way to do this (e.g. use >> ${TMPPLIST}
instead of > ${TMPPLIST} on first line) but at least the awk method
works durably.
2014-02-16 08:42:53 +00:00
John Marino
fcde6a6ca1 lang/modula3: Not for FreeBSD 8.x
The Modula-3 bootstrap compiler was built on FreeBSD 9.
It will not run on FreeBSD 8 due to missing symbols, e.g.
_ThreadRuneLocale.  As with i386, I don't feel it is worth my time
to create a separate bootstrap for FreeBSD 8.x AMD64, so let's just
IGNORE this to save the user a 100Mb download.
2014-01-15 13:41:26 +00:00
John Marino
eb19ea733d lang/modula3: Support FreeBSD 10+
It appears that modula3 will segfault if debug information is not
generated in stabs format.  Clang doesn't recognize -gstabs+ options,
but removing it results in lots of segfaults early during the build.

By setting USE_GCC=any, FreeBSD 9 and below will use the base gcc 4.2.1
and FreeBSD10 and later will need lang/gcc.  Verified on Redports.

While here, make sure .bak files do not get installed into stage by
using 'sed -i ""' rather than ${REINPLACE_CMD} which equals 'sed -i.bak'.
2014-01-07 12:01:16 +00:00
John Marino
20de4e486d lang/modula3: Fix MASTER_SITES typo (mirror, bootstrap) 2014-01-02 02:43:23 +00:00
John Marino
c169024680 Add lang/modula3: Critical Mass implementation of Modula-3
This is a huge port.  It probably should be split into several separate
ports, but Modula-3's lack of popularity doesn't justify the large
effort that would require yet.

This port will download a "bootstrap" compiler which builds a fresh
compiler and small set of core components.  The fresh compiler will
then build everything else.  This includes, among other things:

* CM3 Integrated Development Environment (IDE)
* CM3 Code Generator based on gcc 4.3
* CM3 Middle- and back- ends
* CVSup (CM3 is too new to build the CVSUP already in ports)
* M3 GDB (GNU Debugger)
* M3 GUI and networking support
* M3 Quake
* some demos
* many examples
* many CM3 tools
* Oblique
* Caltech Parser toolset
* Full M3 library
* Lots of documentation and man pages

Intentionally left out for now: six (6) games, three (3) webdev progs,
kate (gui), sgml+deepcopy (devlib), pp (m3devtool)

This is the latest release of the Critical Mass Modula-3 (CM3) collection,
version 5.8.6, and it was released in July 2010.  Days were spent
developing this port, but not so much time was developed to quality
assurance.  I added a "recent" patch from upstream for network concurrency
and also modified the getaddrbyname implementation as the original one
raised IPError exceptions due to my VM not having a fully qualified
hostname and external IP address.  My modification makes the exception
look up hostent with 127.0.0.1 first, then raise a new exception on error.
It seems to work, but like I said, it was not heavily tested.

Most of the programs require a running X (Trestle), which I don't have
at the moment, so they stop with an appropriate raised exception.  I only
assume they work, I'll have to check later.

Right now only FreeBSD AMD64 is supported.  I do not expect to attempt
to support FreeBSD i386.  I will probably make an attempt to cross-compile
this on DragonFly x86-64 after appropriate patches are added.  A few
months ago I nearly succeeded in porting CM3 to DragonFly and I expect to
succeed on the next attempt.  If other platforms are desired, somebody
else will have to create bootstraps and any necessary patches.

This was built and poudriere-tested on FreeBSD 9.2.  Only libc, libm, and
libpthread are dynamically loaded so it should build fine on FreeBSD 8.4.
I don't have access to my Redports repository ATM so I can't test FreeBSD
10+, but I will attempt to fix should it fail to build on those platforms.

Hopefully someone will find this port useful.  I was surprised that
apparently the full Modula-3 compiler set has never been ported to
FreeBSD, only the ezm3 version needed to build cvsup.  Modula-3 is a nice
language that probably deserved to be widely used outside of academia.
2014-01-02 02:34:47 +00:00