Re: Question about ArrayArray#

2018-05-03 Thread Michal Terepeta
On Thu, May 3, 2018 at 2:40 PM Carter Schonwald 
wrote:

> I think Ed’s structs package explicitly makes use of this :)
>

Oh, interesting! Thanks for the pointer!

Looking at Ed's code, he's seems to be doing something similar to that I'm
also interested in: having a SmallArray# that at one index points to
another SmallArray# and at another one to a ByteArray#.  (my use case
involves multiple small arrays, so I'd rather use SmallArray# than
ArrayArray#):
https://github.com/ekmett/structs/blob/master/src/Data/Struct/Internal.hs#L146

So I guess my second question becomes: is anyone aware of some rts/GC
invariants/expectations that would be broken by doing this? (ignoring the
issue of getting every `unsafeCoerce#` right :)

Thanks!

- Michal
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Question about ArrayArray#

2018-05-03 Thread Carter Schonwald
I think Ed’s structs package explicitly makes use of this :)

On Wed, May 2, 2018 at 7:31 AM Michal Terepeta 
wrote:

> Hi all,
>
> I have a quick question about ArrayArray#. Is it safe to store *both* an
> ByteArray# and ArrayArray# within the *same* ArrayArray#? For instance:
> - at index 0 of an ArrayArray# I store a different ArrayArray#,
> - at index 1 of that same ArrayArray# I store a ByteArray#.
>
> It seems to me that this should be safe/supported from the point of view of
> the runtime system:
> - both ArrayArray# and ByteArray# have the same kind/runtime
> representation,
> - the arrays have a header that tells rts/GC what they are/how to handle
> them.
> (But I, as a user, would be responsible for using the right primop with the
> right index to read them back)
>
> Is this correct?
>
> Thanks a lot!
>
> - Michal
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs