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
