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