packages feed

llvm-extra-0.11: Changes.md

# Change log for the `llvm-extra` package

## 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.