Hi Ivo,<br><br><div class="gmail_quote">On 21 July 2011 23:56, Ivo Smits <span dir="ltr">&lt;<a href="mailto:Ivo@ufo-net.nl">Ivo@ufo-net.nl</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
That doesn&#39;t give the full power of Mixed Mode assemblies, but I think<br>
it&#39;s definitely an interesting approach with many potential uses.<br>
Especially, I think, when replacing existing libraries or building<br>
plugins or extensions for existing software.</blockquote><div><br></div><div>Absolutely - something, as I&#39;ve mentioned, I think needs to be done at the compiler level. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I would rather skip the rewriting, and just start with a simple &#39;if<br>
(!initialized) initialize();&#39; and leave the code unpatched. Doesn&#39;t cost<br>
much (especially considering the rest of the code) and works independent<br>
of the compiler/platform.<br></blockquote><div><br></div><div>I just /hate/ unnecessary tests, and the test will ONLY be valid once, then it&#39;s just extra overhead.  I&#39;ve implemented a form of runtime code patching, in the current source - but since it&#39;s very much x86-32 specific, it could be turned off for other architectures, and a simple test with hard-coded branch predictions built in could be used instead.  Bear in mind, this code is platform specific anyway - it&#39;s native!</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">What happens if either the namespace or class name contains dots? Are<br>
they converted to underscores? Also, I think it might be interesting to<br>
be able to override these generated names, perhaps using (custom) code<br>
attributes, to help in replacing or implementing existing libraries,<br>
plugins, ... Attributes might also be useful to specify how variables<br>
should be marshaled.<br></blockquote><div><br></div><div>Well, currently, there is no generator - so that&#39;s completely open for discussion!  I love the idea of attributes to assist the generator, and marshalling hints would definitely be helpful.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Also, I think that eventually the &#39;reverse interop code&#39; could be<br>
generated from an assembly file by using the Reflection framework. You<br>
could make the code generator a managed application.<br></blockquote><div><br></div><div>Oh without a doubt!  It would too much of a duplication of effort to go around parsing the metadata tables.  I wrote a simple PE/CLI parser as an exercise (to keep me occupied one Friday night!) and parsing those tables is just rotten!</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888">Ivo</font></blockquote></div><br>
<div>-- Tom</div>