<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'>Tony, this should demonstrate the direction I'm taking.<div>See esp. "GetStructSizes_t" in M3C.m3.</div><div>I'm able to insert additional passes over a straightforward in-memory form of M3CG.</div><div><span style="font-size: 12pt; ">I'll be adding more. Just in M3C.m3.</span></div><div>I think it will provide for a nice factoring of the code.</div><div><br></div><div> - Jay<br><br><br><div><div id="SkyDrivePlaceholder"></div>> Date: Fri, 28 Sep 2012 12:50:15 +0000<br>> To: m3commit@elegosoft.com<br>> From: jkrell@elego.de<br>> Subject: [M3commit] CVS Update: cm3<br>> <br>> CVSROOT:    /usr/cvs<br>> Changes by:      jkrell@birch.   12/09/28 12:50:15<br>> <br>> Modified files:<br>>    cm3/m3-sys/m3back/src/: M3C.m3 <br>>   ./: M3C.m3 <br>>       cm3/m3-sys/m3middle/src/: M3CG_DoNothing.i3 M3CG_DoNothing.m3 <br>>                              M3CG_MultiPass.i3 M3CG_MultiPass.m3 <br>>                              m3makefile <br>> <br>> Log message:<br>>   first use of multipass:<br>>   make an extra pass to discover all struct sizes,<br>>  so all structs can be predeclared, and no extra<br>>   (eventually to be replaced by better typing, but this<br>>     is useful in the current context)<br>>         <br>>  Also, to ensure M3C.T implements all METHODS of M3CG_Ops.Public,<br>>  derive it from M3CG_AssertFalse.T instead of the bogus M3CG.T.<br>>    <br>>  M3CG_MultiPass:<br>>   in end_unit, flatten into plain public array instead of slower sequence<br>>   separate out per-op also, since sometims that provides for optimization<br>> <br></div></div>                                          </div></body>
</html>