... | ... | @@ -213,7 +213,7 @@ A new kind-polymorphic `Compare` type family was added in the `Data.Type.Ord` mo |
|
|
|
|
|
#### Sized Word/Int use sized Word#/Int# primitives
|
|
|
|
|
|
Before 9.2, `Int{8,16,32}#`/`Word{8,16,32}#` were all wrappers for `Int#/Word#`, e.g. `data Int8 = I8 Int#`. Now they are wrappers for the appropriate sized primitive types, e.g. `data Int8 = I8 Int8#`. This change was made to properly handle FFI calling conventions on Darwin/ARM64 (see be5d74caab64abf9d986fc7290f62731db7e73e7).
|
|
|
Before 9.2, `Int{8,16,32}`/`Word{8,16,32}` were all wrappers for `Int#/Word#`, e.g. `data Int8 = I8 Int#`. Now they are wrappers for the appropriate sized primitive types, e.g. `data Int8 = I8 Int8#`. This change was made to properly handle FFI calling conventions on Darwin/ARM64 (see be5d74caab64abf9d986fc7290f62731db7e73e7).
|
|
|
|
|
|
Users of the wrapped unboxed value must use sized primops that come with each primitive type (e.g. `plusInt8# :: Int8# -> Int8# -> Int8#`). In particular each primitive type comes with primops to convert from/to full machine word primitives (e.g. `intToInt8#` and `int8ToInt#`).
|
|
|
|
... | ... | |