<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'>I believe we really only need 4 modes.<div>Internal or External</div><div>produces object or assembly</div><div><br></div><div>All the other modes are unnecessary.</div><div>I will do my part and eliminate the one I added.</div><div>Hopefully leading the way to eliminating all the LLVM modes.</div><div><br></div><div><br></div><div>C backend certainly supported, I just didn't expose it in the ideal way.</div><div><br></div><div><br></div><div> - Jay<br><br><br><br><div><hr id="stopSpelling">Subject: Re: [M3devel] elimining builder.C mode (instead IntegratedObject and another boolean)<br>From: hosking@purdue.edu<br>Date: Mon, 21 Sep 2015 12:49:19 +1000<br>CC: m3devel@elegosoft.com<br>To: jay.krell@cornell.edu<br><br><div>What is the benefit of doing this?  It would seem to me to be nicer to retain the existing modes. <br><br>Sent from my iPhone</div><div><br>On Sep 21, 2015, at 12:22 PM, Jay K <<a href="mailto:jay.krell@cornell.edu">jay.krell@cornell.edu</a>> wrote:<br><br></div><blockquote><div>

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>
<div dir="ltr"><div>I want remove the C mode from the builder and just use IntegratedObject.</div><div>The goal is to expose Builder.RunCC to M3C.</div><div>  </div><div>  </div><div>Something like:</div><div>   </div><div>  </div><div>add some data to MC3CG_Op.T</div><div>I wouldn't bother with "set" functions.</div><div> </div><div> <span style="font-size:12pt;">I'm also not making them module global -- this could be globals in M3C.</span></div><div><span style="font-size:12pt;">But I want to preserve the illusion that things can be easily made multi-threaded (m3front structuring very much to the contrary...)</span></div><div><span style="font-size:12pt;"> </span></div><div><br></div><div>The data will be:</div><div> declare Builder.State <: REFANY in Builder.i3</div><div> </div><div> </div><div> M3CG_Ops should get </div><div>   RunCCState: Builder.State;  </div><div>  OR </div><div>  BuilderState: Builder.State; </div><div><br></div><div>  keep_files: BOOLEAN;</div><div>  </div><div>  PROCEDURE RunCC (s: State;  source, object: TEXT;  debug, optimize: BOOLEAN;</div><div>                  include_path: Arg.List): BOOLEAN (* Success. *);</div><div>  or possibly: </div><div>  PROCEDURE RunCC (s: State;  source, object: TEXT): BOOLEAN (* Success. *);  </div><div>  or possibly: </div><div>  PROCEDURE RunCC (s: State;  source: TEXT; u: M3Unit.T): BOOLEAN (* Success. *) </div><div>  </div><div> </div><div> include_path isn't really needed here.</div><div><br></div><div>also:</div><div>  M3Backend.PROCEDURE Open (target: Wr.T;  target_name: TEXT;  backend_mode: M3BackendMode_t): M3CG.T;</div><div><br></div><div>should be changed to:</div><div>  PROCEDURE Open (m3file: TEXT; target: Wr.T;  target_name: TEXT;  backend_mode: M3BackendMode_t): M3CG.T;</div><div><br></div><div><br></div><div>ok?</div><div><br></div><div>   - Jay</div><div><br></div>                                       </div>
</div></blockquote><blockquote><div><span>_______________________________________________</span><br><span>M3devel mailing list</span><br><span><a href="mailto:M3devel@elegosoft.com">M3devel@elegosoft.com</a></span><br><span><a href="https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel" target="_blank">https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel</a></span><br></div></blockquote></div></div>                                     </div></body>
</html>