Thanks! I'm still going to feel free to pretend I get arrays for free :-). I'm guessing I'll get some reused ones from the Haskell allocator, and the OS is of course free to do clearing work on another core. It'd be awfully nice to have a way to get "incrementally-cleared" arrays of pointers, but that would require a new heap object type, which would be a lot to ask for.

On Wed, Aug 26, 2020, 8:56 PM Bertram Felgenhauer via Glasgow-haskell-users <glasgow-haskell-users@haskell.org> wrote:
David Feuer wrote:
> I'm looking to play around with an array-based structure with
> sub-linear worst-case bounds. Array is pretty awkward in that context
> because creating a new one takes O(n) time to initialize it. Is that
> all true of newByteArray, or can I get one with arbitrary garbage in it
> for cheap?

newByteArray# does not actively clear memory.

However, for large arrays, I think the memory is likely to be freshly
allocated from the OS, and the OS will have cleared it for security
reasons.

Cheers,

Bertram
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users