<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
A C/C++ backend is definitely easier than anything else.<br>It requires no learning of the target form!<br> I know C and C++ very well, very little of C++ is relevant, mainly exception handling (*),<br>  and surely there is far more familiarity in the world of C and C++ than LLVM or gcc trees.<br><br><br>* -- other parts of C++ might be interesting, such as putting module initializers<br>in statics with constructors. This feature of C++ doesn't work well, but this would<br>possibly help e.g. LoadLibrary/dlopen(mod3.dll) run the module initializers.<br>Though here again, there is a way to do in C for NT and probably C in general, with<br>platform-specific code.<br><br><br> - Jay<br><br><hr id="stopSpelling">From: dragisha@m3w.org<br>Date: Thu, 2 Dec 2010 10:29:24 +0100<br>To: jay.krell@cornell.edu<br>CC: m3devel@elegosoft.com<br>Subject: Re: [M3devel] Enumeration or subrange value out of range<br><br>
<meta http-equiv="Content-Type" content="text/html; charset=unicode">
<meta name="Generator" content="Microsoft SafeHTML"><br><div><div>On Dec 2, 2010, at 10:17 AM, Jay K wrote:</div><br class="ecxApple-interchange-newline"><blockquote><span class="ecxApple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; font-size: medium;"><span class="ecxApple-style-span" style="font-family: Tahoma; font-size: 13px;">The gcc intermediate form does support exception handling.<br>Efficient exception handling doesn't motivate gcc to llvm switch.<br>As well, generating C++ is a good option for this reason.<br>  At least on non-NT/Tru64/VMS systems.<br>As well, since this is multiple axes, an initial C backend could generate code<br>like we do today -- pthread_getspecific/setjmp.<br><br>Switching to LLVM is a big task.</span></span></blockquote></div><br><div>As big as making C++ backend?</div><div><br></div><div>I don't see it as a switch. Just as another backend.</div><div><br></div><div>And yes, I know it's easier from audience. It is your call, but anything C, C++, GCC is pain long term. We will probably all reap benefits of that C backend, as good intermediate solution if nothing else, but sooner we settle on LLVM, and forget GCC's wriggling backend, better.</div><div><br></div>                                       </body>
</html>