[M3devel] Status of CM3

Jay K jay.krell at cornell.edu
Wed May 28 19:31:43 CEST 2014


 > A) There has been no release

 
There has been no release.
 
 
> B) We want to convert FreeBSD to c-backend


I believe I tested FreeBSD/x86 and/or FreeBSD/amd64 with the C backend.
 
 
Specifically, I no longer have shelves full of a myriad of computers, but I have x86 and AMD64 VMs on a Mac readily accessible (i.e. Linux, OpenBSD, FreeBSD, NetBSD), I have the Solaris opencsw sparc32/sparc64/x86/amd64 machines, I have the Mac, I have Windows, I have the Elego Debian/amd64 maybe Debian/x86 machine and I tested many/all of these successfully. PPC/Mac can't entirely be tested on x86/Mac because Rosetta doesn't offer the thread/suspend/getcontext stuff -- something cooperative suspend will fix eventually.
 
 
Adding new platforms is fairly straightforward. Far more than it used to be.
You just make few scattered easy edits.
My pseudo goal is to drive that down to be easier and easier.
Several platforms have been relatively recently brought back or brought up or at least shown to work completely or almost to me.
 
What remains unclear to me is the consensus decision on exactly what the switch looks like.
  1) unconditionally switch all targets  
  2) leave it as some sort of user option  
  3) have new targets only supported using the C backend 
 
 
There are downsides to the C backend. Specifically:
  1) On systems that support m3gdb, debugging is not as good as with m3gdb 
   m3gdb is an old fork of gdb, doesn't work on all platforms (e.g. Darwin, HP-UX, NT), but does work on many. 
  2) Compilation is noticeably slower. 
  3) The output is not necessarily ABI compatible with the non-C backend. 
 
 
My inclination is unconditional switch to C backend for all targets that use m3cc, leave m3cc to bit-rot.
Think more about the integrated backend. In reality, given more time, I'd like to extend the integrated backend to support more targets. But that so far seems beyond most of our scopes.
 
The safe thing is user-option. But it is also confusing.
Given the ABI variation, do we double all the platforms?
I386_LINUX and I386_LINUX_C?
 
 
 And then later POSIX_32BIT_LITTLEENDIAN_C? 
 And then later GENERIC_C? 
 
Do we switch the existing ones, and introduce I386_LINUX_M3CC?
 
 
 > C) There is no support for DragonFly, we want to add that
 
This is easy.

> D) We want to do B+C before the next release
 
C is easy. B requires a decision/consensus.
 
Thanks,
 - Jay


 
> Date: Wed, 28 May 2014 10:41:06 +0200
> From: adacore at marino.st
> To: jay.krell at cornell.edu; hosking at cs.purdue.edu
> CC: m3devel at elegosoft.com; bruce.axtens at gmail.com
> Subject: Re: [M3devel] Status of CM3
> 
> On 5/28/2014 08:20, Jay K wrote:
> >  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?
> >  Not sure.
> 
> 
> Hi Jay,
> The assumptions I was working on was this:
> A) There has been no release
> B) We want to convert FreeBSD to c-backend
> C) There is no support for DragonFly, we want to add that
> D) We want to do B+C before the next release
> 
> So I thought there was some build-framework stuff that needed to happen
> for FreeBSD and DragonFly prior to the release, otherwise we'd just have
> to patch it all up and we were trying to avoid needing those patches.
> 
> I am not even at the point of evaluating the C-Backend.
> Maybe if there was a release candidate then I could figure out what's
> missing a provide patches.
> 
> At the very, very least we could have CM3 on github and build from a
> specific tag.  I am not wild about that, but it's better than what's
> available now.  (FreeBSD ports can build straight from github although
> it's not really encouraged)
> 
> So if for no other reason, I'd like to see CM3 migrate to github ASAP.
> 
> Regards,
> John
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20140528/21fbcbf9/attachment-0002.html>


More information about the M3devel mailing list