On 6 July 2011 15:44, Simon Marlow <[email protected]> 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

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to