[M3devel] Status of CM3
jay.krell at cornell.edu
Wed May 28 08:33:14 CEST 2014
sorry, a correction: because of the jmpbuf matter, there is far more "variety" in the output C than the six I listed.
It isn't quite that every platform is unique, but close enough.
Anyway, the C backend is in very good shape relative to its goals.
From: jay.krell at cornell.edu
To: hosking at cs.purdue.edu; adacore at marino.st
Date: Wed, 28 May 2014 06:20:10 +0000
CC: m3devel at elegosoft.com; bruce.axtens at gmail.com
Subject: Re: [M3devel] Status of CM3
Sorry, my life has really changed and I have hardly any time now..
I still hope to come back.
The C backend works quite well.
I was able to cross-to and self-world-build many platforms.
Including bring up new platform: AMD64_NT.
There is a jmpbuf alignment problem on AMD64_NT worked around by using libcmt.lib instead of msvcrt.dll.
jmpbuf remains a platform-specificity in the frontend.
I believe we had mostly good experience with Linux/arm and maybe Dragonfly?
Going through C source and C compiler is noticable slower.
The "levelness" of the output is near what I was aiming for, for the first go.
- records all have fields; you can view them in standard debuggers -- good!
This took me a while but I got there.
- but globals are not viewable -- all offsets into particular records
- all locals/parameters get numbers on the end to disambiguate
from "nearby" name clashes, though usually it isn't needed;
this is near the top of the things to fix
The "levelness" is still low in that the word size and posix vs. NT is baked in.
If you want "one source release", you really need to make about 6 currently:
posix 32bit little endian (many systems)
posix 32bit big endian (rare: sparc32_solaris, ppc_darwin)
posix 64bit little endian (many systems)
posix 64bit big endian (rare: sparc64_solaris, ppc64_darwin)
nt 32bit little endian
nt 64bit little endian
There is one recent outstanding bug report where the generated C is invalid.
Besides jmpbuf, I'd like to see endianness factored out.
There is approx one instance of endian specificity in the frontend
I'd like to see removed. And then htos/htol/stoh/ltoh moved to C.
I'd also like to see exception handling optionally implemented on top of C++ exception
handling or NT C exception handling (also maybe VMS/Tru64/Ultrix C exception handling...).
For a release though, most of this isn't needed.
Mainly: fix the one bug, decide if performance and debugability is adequate.
> From: hosking at cs.purdue.edu
> Date: Tue, 27 May 2014 12:49:12 -0400
> To: adacore at marino.st; jay.krell at cornell.edu
> CC: m3devel at elegosoft.com; bruce.axtens at gmail.com
> Subject: Re: [M3devel] Status of CM3
> Jay might comment on C backend status for those platforms.
> On May 27, 2014, at 11:40 AM, John Marino <adacore at marino.st> wrote:
> > On 5/27/2014 17:34, Dragiša Durić wrote:
> >> You can count on me for release engineering, Git migration. Maybe CI,
> >> if I have resources. Problem is - feedback is poor from core
> >> developers wrt Git migration. I am ready for long time now.
> > This might be a good time to remind that I've been waiting for a release
> > that feature C-backend support for both FreeBSD and DragonFly (new).
> > The version in FreeBSD ports is 4 years old, but there's not been a
> > release since then. The last time I was active on the list we discussed
> > the needs of FreeBSD and for porting M3 to DragonFly and something was
> > supposed to happen code-wise (and then release-wise) but I don't think
> > anything did in the end.
> > I was extremely busy with other projects but was planning on pinging on
> > this topic soon anyway.
> > John
> >> On 25 May 2014, at 18:36, Olaf Wagner <wagner at elegosoft.com> wrote:
> >>> On Sun, 25 May 2014 22:35:09 +0800 Bruce Axtens
> >>> <bruce.axtens at gmail.com> wrote:
> >>>> Dear Sir
> >>>> Should I assume that CM3 is alive, in palliative care or dead?
> >>>> The trac system is full of spam and the roadmap hasn't moved for
> >>>> 3 years.
> >>>> I had a long and fruitful relationship with Modula-2 years ago
> >>>> and thought that perhaps I could restart things with CM3.
> >>> There is certainly some activity in M3 development recently,
> >>> though the community is rather small. The trac system has never
> >>> been much used by the community members; and the WWW presentation
> >>> and regression testing system has lacked my support, as I couldn't
> >>> spent any time on these topics for almost 3 years.
> >>> You should check the m3devel mailing list for news though:
> >>> https://mail.elegosoft.com/pipermail/m3devel
> >>> There has been a lot of activity at the beginning of this year; it
> >>> has ceased again during recent weeks.
> >>> All CVS commits can be found here:
> >>> https://mail.elegosoft.com/pipermail/m3commit
> >>> A new release is long overdue; I'm afraid I cannot do the release
> >>> engineering this time.
> >>> There has been some effort on moving the CVS repositories to git;
> >>> I'm not sure what the status is there, too.
> >>> Any help wrt. documentation, presentation or software is greatly
> >>> appreciated ;-)
> >>> Regards,
> >>> Olaf Wagner -- Olaf Wagner -- elego Software Solutions GmbH --
> >>> http://www.elegosoft.com Gustav-Meyer-Allee 25 / Gebäude 12, 13355
> >>> Berlin, Germany phone: +49 30 23 45 86 96 mobile: +49 177 2345 869
> >>> fax: +49 30 23 45 86 95 Geschäftsführer: Michael Diers, Olaf Wagner
> >>> | Sitz: Berlin Handelregister: Amtsgericht Charlottenburg HRB 77719
> >>> | USt-IdNr: DE163214194
> Antony Hosking | Associate Professor | Computer Science | Purdue University
> 305 N. University Street | West Lafayette | IN 47907 | USA
> Mobile +1 765 427 5484
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the M3devel