I don't imagine anyone wants to align to anything that's not a power of 2, or less than a word size. Still, unless the current generality results in extra complication or overheads I wouldn't change it.
On Mon, 22 Oct 2018 at 11:44, Ömer Sinan Ağacan <omeraga...@gmail.com> wrote: > Thanks for all the answers. Another surprising thing about the pinned > object > allocation primops is that the aligned allocator allows alignment to bytes, > rather than to words (the documentation doesn't say whether it's words or > bytes, > but it can be seen from the code that it's actually aligning to the given > byte). Is there a use case for this or people mostly use alignment on word > boundaries? > > Ömer > > Sven Panne <svenpa...@gmail.com>, 17 Eki 2018 Çar, 10:29 tarihinde şunu > yazdı: > > > > Am Di., 16. Okt. 2018 um 23:18 Uhr schrieb Simon Marlow < > marlo...@gmail.com>: > >> > >> I vaguely recall that this was because 16 byte alignment is the minimum > you need for certain foreign types, and it's what malloc() does. Perhaps > check the FFI spec and the guarantees that mallocForeignPtrBytes and > friends provide? > > > > > > mallocForeignPtrBytes is defined in terms of malloc ( > https://www.haskell.org/onlinereport/haskell2010/haskellch29.html#x37-28400029.1.3), > which in turn has the following guarantee ( > https://www.haskell.org/onlinereport/haskell2010/haskellch31.html#x39-28700031.1 > ): > > > > "... All storage allocated by functions that allocate based on a size > in bytes must be sufficiently aligned for any of the basic foreign types > that fits into the newly allocated storage. ..." > > > > The largest basic foreign types are Word64/Double and probably > Ptr/FunPtr/StablePtr ( > https://www.haskell.org/onlinereport/haskell2010/haskellch8.html#x15-1700008.7), > so per spec you need at least an 8-byte alignement. But in an SSE-world I > would be *very* reluctant to use an alignment less strict than 16 bytes, > otherwise people will probably hate you... :-] > > > > Cheers, > > S. >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs