<div class="gmail_quote">On 9 April 2012 21:20, deadalnix <span dir="ltr"><<a href="mailto:deadalnix@gmail.com">deadalnix@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Le 08/04/2012 14:02, Alex Rønne Petersen a écrit :<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 08-04-2012 11:42, Manu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 8 April 2012 11:56, Timon Gehr <<a href="mailto:timon.gehr@gmx.ch" target="_blank">timon.gehr@gmx.ch</a><br>
<mailto:<a href="mailto:timon.gehr@gmx.ch" target="_blank">timon.gehr@gmx.ch</a>>> wrote:<br>
<br>
On 04/08/2012 10:45 AM, Timon Gehr wrote:<br>
<br>
That actually sounds like a pretty awesome idea.<br>
<br>
<br>
Make sure that the compiler does not actually rely on the fact that<br>
the template generates a function. The design should include the<br>
possibility of just generating tables. It all should be completely<br>
transparent to the compiler, if that is possible.<br>
<br>
<br>
This sounds important to me. If it is also possible to do the work with<br>
generated tables, and not calling thousands of indirect functions in<br>
someone's implementation, it would be nice to reserve that possibility.<br>
Indirect function calls in hot loops make me very nervous for non-x86<br>
machines.<br>
</blockquote>
<br>
Yes, I agree here. The last thing we need is a huge amount of<br>
kinda-sorta-virtual function calls on ARM, MIPS, etc. It may work fine<br>
on x86, but anywhere else, it's really not what you want in a GC.<br>
<br>
</blockquote>
<br></div></div>
Nothing prevent the generated function to itself call other generated functions, when things are predictable. It avoid many indirect calls, and purely by lib, which is good (can be tuned for application/plateform).<br>
</blockquote></div><br><div>Eh?</div><div>Not sure what you mean. The idea is the template would produce a struct/table of data instead of being a pointer to a function, this way the GC could work without calling anything. If the GC was written to assume GC info in a particular format/structure, it could be written without any calls.</div>
<div>I'm just saying to leave that as a possibility, and not REQUIRE an indirect function call for every single allocation in the system. Some GC might be able to make better use of that sort of setup.</div>