<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>