<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Fyi I finally looked at the 2.x implementation and the outputing of<br>C was implemented fairly directly at the m3front layer.<br>There wasn't the "M3CG" stuff.<br><br><br>Thus, the "easiest" way to get back such functionality would<br>probably be to "interleave" the old code and the new code within m3front.<br><br><br>The "cleaner" way is probably to implement a new M3CG though and<br>leave m3front unchanged.<br><br><br>I still think generating portable C a great way to achieve portability.<br>Better yet maybe, generate C++ and use its exception handling feature.<br>(ok, maybe generate both, in case some systems lack C++ support)<br><br><br>I realize there are several ways to view this though.<br><br>  gcc backend provides enough portability <br>     imagine IA64_NT though. or Plan9. or even OpenBSD <br>      or Darwin where there are long standing forks <br>      (The OpenBSD patches are small and we carry/apply them.<br>      The Apple changes I think are mainly in the frontends<br>      which I think is how we get by.) <br><br>     For efficient exception handling we should be able to use libunwind on most targets. <br><br>  llvm would provide good portability and maybe other benefits like perf <br>     less reach than gcc but hits the major platforms <br>     difficult for me to get started with sorry <br><br>  integrated backend could/should be ported around and is fast <br>     a lot of work <br>     I think the first steps here are to learn about mach-o and elf file formats<br>       as part of ports for other x86 targets. I've started a macho-dumper. <br><br>  burg or others <br><br> - Jay<br><br>                                          </body>
</html>