Changelog of @hackage/llvm-extra 0.12.1

Change log for the llvm-extra package

0.12.1

  • Multi.Value -> Nice.Value

    The Multi.Value name was misleading. Multi.Value retained for compatibility for now.

0.11

  • Memory: turn methods load and store into top-level functions based on decompose and compose. Deriving decompose and compose from load and store, respectively, requires alloca which will blast your stack when used in a loop.

0.10

  • Storable: We do not support storing tuple types directly anymore. This would require the storable-tuple package. That package ships orphan Storable instances with a memory layout that does not match your system's ABI. Instead, we support the Tuple wrapper from storable-record.

  • Memory: Attention! Memory layout is no longer compatible with Foreign.Storable. E.g. Bool now takes 1 byte space like LLVM does, but no longer 4 byte like Foreign.Storable. A Foreign.Storable-compliant layout is provided by LLVM.Extra.Storable now.

  • Marshal: Now based on Memory.load and Memory.store. Does not need Proxy anymore.

  • Class -> Tuple, Tuple.Vector class added. Pro: valueOf vector is no longer restricted to IsPrimitive elements. Cons: type inference works less well than before

0.9

  • Extension: Move to new package llvm-extension. We now implement advanced instructions using generic LLVM intrinsics.

0.8.1

  • FastMath: support for simplified arithmetic primitives under the assumption of the absence of corner cases.