1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-11 02:50:24 +00:00
freebsd-ports/lang/modula3/pkg-descr
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

13 lines
498 B
Plaintext

Modula-3 is a systems programming language that descends from Mesa,
Modula-2, Cedar, and Modula-2+. It also resembles its cousins Oberon,
Object Pascal, and Euclid.
Modula-3 retains one of Modula-2's most successful features, the provision
of explicit interfaces between modules. It adds objects and classes,
exception handling, garbage collection, lightweight processes (or threads),
and the isolation of unsafe features.
This is the Critical Mass implementation.
WWW: http://www.modula3.org