Skip to content

Clarify Some Restrictions on Compact Regions

I've been reading over the docs for using compact regions here: https://phabricator-files.haskell.org/file/data/uqmgx4accjldseyd34xj/PHID-FILE-3sihhhdhl4gaeszvphzb/Compact.hs. I'm pretty excited about this feature, but there's one thing that the docs don't make totally clear. Can MutableByteArray# be placed in a compact region? Near the top, the docs specifically say that "object[s] with mutable pointer fields" cannot be compacted, but that doesn't rule out MutableByteArray#. Later down, in the docs for compact, this restriction is broadened to any mutable data.

I would like to see the docs clarify this better. The existence of resizeMutableByteArray# makes me think that it should not possible, but I'd like to be sure. Thanks.

Trac metadata
Trac field Value
Version 8.1
Type Bug
TypeOfFailure OtherFailure
Priority lowest
Resolution Unresolved
Component libraries/compact
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information