Do we have to export _srt labels?
Max Bolingbroke
batterseapower at hotmail.com
Wed Jul 6 17:28:03 CEST 2011
On 6 July 2011 15:44, Simon Marlow <marlowsd at gmail.com> wrote:
> Ah, sorry I didn't read your message carefully enough.
>
> Now I'm not sure whether this will work as is. As seen from another module,
> this Id will look like a constructor, so we might pointer-tag it when
> referring to it.
> I'm not sure whether we actually do this or not, and it's
> hard to tell from looking at the code. Pointer-tagging it would be wrong if
> it were an indirection rather than an actual constructor.
Oh, you can't pointer tag indirections? That would explain why it
crashes then, since references to this static indirection *are*
getting pointer tagged. Damn. It's not clear to me if there is an easy
way to repair this solution, then.
> The other thing to be careful of is that your IND_STATIC should have a
> static link field with a non-zero value, so it will be ignored by the GC (I
> think you're doing this, but I'd check the assembly output just to be sure).
I think this part is right. (Though I'm not really sure what the
static link business is for, I slavishly copied this from the code
that allocates other kinds of static closures).
> Now, although GHC hasn't saturated the constructor, it still doesn't refer
> to the _info symbol, it refers to the _closure.
Sorry, yes in case I didn't make it clear: I don't propose to
eliminate the _closure exports. GHC certainly can refer to the
_closure (as you have shown) but I think the _info really is never
used.
Cheers,
Max
More information about the Cvs-ghc
mailing list