On Saturday, 18 June 2016 at 17:50:51 UTC, cy wrote:
On Saturday, 18 June 2016 at 08:41:30 UTC, Johan Engelen wrote:
Without going in too much detail, the problem is that I am not linking to opaque .o files.

The problem is the compiler has to assume you *might* be linking to opaque .o files, so it can't provide any introspection capabilities. There's no way to tell which "hidden type" that the getObject function is returning, since that's decided in the (possibly opaque) function body.

The function body is not opaque. In my compilation unit, the compiler knows it, and that's exactly why I run into troubles. For ease of discussion, just pretend the function that returns the Voldemort type is in the same file as the user code: let's say it's all in one source file. Just like there is a way to get private types out of structs (using .tupleof or the Fields!Strukt[*] thing I pasted above), I was hoping there was a way to get a Voldemort type out of a function.

This is of course all a big hack. The pragma(mangle,..) thing works well, but unfortunately conflicts with the LDC inlining improvement I'm working on. Like you say, I could copy the whole function definition, but it would mean copying quite a lot and some more types etc...

- Johan

Reply via email to