<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>I'd be happy with:<BR>  - cooperative GC, for portability, it'd remove a lot of our #ifdefs, fix PPC_DARWIN under Rosetta, and address a nagging concern I have for even NT/x86 on AMD64 wrt SuspendThread near-in-time to syscalls.<BR>  - no-stop-the-world, for scaling <BR> <BR>Aren't they fairly standalone?<BR>I could do without LLVM at this point. C/C++ backend is more portable.<BR>I'd like to hope/depend that underlying pthreads/win32 does a good job with locking.<BR> <BR> - Jay<br><br> <BR><div><hr id="stopSpelling">From: hosking@cs.purdue.edu<br>Date: Wed, 28 May 2014 15:32:40 -0400<br>To: mika@async.caltech.edu<br>CC: m3devel@elegosoft.com; jay.krell@cornell.edu<br>Subject: Re: [M3devel] Status of CM3<br><br>What is really needed is some time and attention put in to bring the CM3 runtime up to date with respect to advances in the field of runtime systems (as witnessed by Java, Go, etc.): lightweight locking ("biased" locking), cooperative GC safepoints, integration with a modern code generator (LLVM!), on-the-fly GC (avoiding the need for stopping the world).<br><br>It would be wonderful to attack these, but they are also somewhat interrelated (on-the-fly depends on per-thread safepoint handshakes, biased locking requires compiler work, etc.).  So they cannot be simply carved off independently.<br><br>On May 28, 2014, at 2:25 PM, <a href="mailto:mika@async.caltech.edu">mika@async.caltech.edu</a> wrote:<br><br><blockquote>Jay K writes:<br><blockquote>--_af0f88f0-4e39-4643-873b-5267a8c2a602_<br></blockquote>...<br><blockquote><blockquote>B) We want to convert FreeBSD to c-backend<br></blockquote><br><br>I believe I tested FreeBSD/x86 and/or FreeBSD/amd64 with the C backend.<br>=20<br>=20<br>Specifically=2C I no longer have shelves full of a myriad of computers=2C b=<br>ut I have x86 and AMD64 VMs on a Mac readily accessible (i.e. Linux=2C Open=<br>BSD=2C FreeBSD=2C NetBSD)=2C I have the Solaris opencsw sparc32/sparc64/x86=<br>/amd64 machines=2C I have the Mac=2C I have Windows=2C I have the Elego Deb=<br>ian/amd64 maybe Debian/x86 machine and I tested many/all of these successfu=<br>lly. PPC/Mac can't entirely be tested on x86/Mac because Rosetta doesn't of=<br>fer the thread/suspend/getcontext stuff -- something cooperative suspend wi=<br>ll fix eventually.<br></blockquote>...<br><br>I don't think the C backend is perfect.  If you want to switch<br>unconditionally, I'll have to make time to help debug it.  My fuzzy <br>memory, as I mentioned, is that there's some unexplained segfault.<br>Ah it was with Juno, I think.  Trestle?  Overflow in window resizing?<br>Something like that?  Ring a bell for anyone?<br><br>I quite like the native backends.  The code is more compact than<br>the C backend's.  I haven't done a performance comparison... I know<br>performance of Modula-3 code has in general been sliding backwards<br>through the versions.  Things just get slower and slower and slower<br>with time.  I think it's a shame because Modula-3's niche (well the one<br>I am interested in) is to be "almost the performance and simplicity of<br>C with the safety of Java (and some cool software engineering stuff)".<br>CM3 definitely compromised this, and while they added some cool new<br>features, most of them (e.g., dynamic relinking of running programs) as<br>far as I know are not being used.  The work on cleaning up TEXTs has <br>gone a ways to remedying the situation but I think there's much else.<br>Ok now I'm off on a tangent...<br><br>   Mika<br></blockquote><br><div>
<span class="ecxApple-style-span" style="color: rgb(0, 0, 0); text-transform: none; line-height: normal; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><div style="-ms-word-wrap: break-word;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><div style="-ms-word-wrap: break-word;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><span class="ecxApple-style-span" style="font: 12px/normal Helvetica; color: rgb(0, 0, 0); text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; white-space: normal; border-collapse: separate; orphans: 2; widows: 2; font-size-adjust: none; font-stretch: normal;"><div><font class="ecxApple-style-span" color="#0000ff"><font class="ecxApple-style-span" face="Gill Sans"><span class="ecxApple-style-span" style='color: rgb(0, 0, 255); font-family: "Gill Sans";'><span class="ecxApple-style-span" style='color: rgb(0, 0, 255); font-family: "Gill Sans";'>Antony Hosking</span></span></font></font><font class="ecxApple-style-span" face="Gill Sans"><span class="ecxApple-style-span" style='font-family: "Gill Sans";'><span class="ecxApple-style-span" style='font-family: "Gill Sans";'><span class="ecxApple-converted-space"> </span>|<span class="ecxApple-converted-space"> </span></span></span><span class="ecxApple-style-span" style='font-family: "Gill Sans";'><span class="ecxApple-style-span" style='font-family: "Gill Sans";'>Associate Professor</span></span><span class="ecxApple-style-span" style='font-family: "Gill Sans";'><span class="ecxApple-style-span" style='font-family: "Gill Sans";'> | Computer Science | Purdue University</span></span></font></div><div><font class="ecxApple-style-span" face="GillSans-Light"><span class="ecxApple-style-span" style="font-family: GillSans-Light;">305 N. University Street | West Lafayette | IN 47907 | USA</span></font></div><div><font class="ecxApple-style-span" color="#0000ff" face="Gill Sans"><span class="ecxApple-style-span" style='color: rgb(0, 0, 255); font-family: "Gill Sans";'><span class="ecxApple-style-span" style='color: rgb(0, 0, 255); font-family: "Gill Sans";'>Mobile</span></span></font><font class="ecxApple-style-span" face="GillSans-Light"><span class="ecxApple-style-span" style="font-family: GillSans-Light;"><span class="ecxApple-style-span" style="font-family: GillSans-Light;"><span class="ecxApple-converted-space"> </span>+1 765 427 5484</span></span></font></div><div><font class="ecxApple-style-span" face="GillSans-Light"><br class="ecxkhtml-block-placeholder"></font></div></span></span></span></span></span></span></span><br class="ecxApple-interchange-newline"></span></div></span></div></span><br class="ecxApple-interchange-newline"></span><br class="ecxApple-interchange-newline">
</div>
<br></div>                                    </div></body>
</html>