On 10 April 2012 00:06, deadalnix <deadalnix@gmail.com> wrote:
Le 09/04/2012 20:33, Manu a écrit :

Eh?
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.
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.

If you have reference to objects, you can't avoid a function call. If you have something you know at compile time, the generated function can directly call the other function that mark the pointed data (or even can do it itself, if you don't fear code bloat) without going back to the GC and its indirect call.

So it make no difference in the number of indirect calls you have, but the struct proposal is a stronger constraint on the GC that the function one.

BTW, starting you answer by « Not sure what you mean. » should have been a red flag.

It is, and I still don't follow. I can't imagine there are any indirect function calls, except for the ones introduced by this proposal, where you may register a function to mark the pointers in complex structs.
You seem to be suggesting that another one already exists anyway? Where is it? Why is it there?