packages feed

llvm-tf-9.2: Changes.md

# Change log for the `llvm-tf` package

## 9.2

* custom `Ptr` type:
  We leave the original `Ptr` type for data in `Storable` compatible format,
  and use `LLVM.Ptr` for data in LLVM layout.

* `instance Storable Vector`:
  Allows non-primitive elements and interleaves them.

* `instance Marshal Vector`:
  Should now be really compatible with LLVM.
  Formerly, it was wrong on big-endian systems
  and vectors of Bool, WordN, IntN.
  The correct implementation required a new class for storing vectors.

* `Ret` class: turned from multi-parameter type class
  to single parameter type class with type function `Result`.
  You may replace `Ret a r` by `Ret a, Result a ~ r` in your code,
  which may enable further simplifications.

* `CallArgs f g r` -> `CallArgs r f g`,
  `CallerFunction f r` -> `CallerFunction r f`

* `ArithFunction`, `ToArithFunction`:
  Replaced functional dependencies by type functions.

* `ArithFunction`: split off `Return`

## 9.0

* `Instructions.bitcastElements`:
  Use `Guided.bitcast Guided.vector` instead.

* `Core.Guided`: new module for instructions on both scalars and vectors

* fixed bug: `cmp` on `IntN` did an unsigned comparison

* `Vector`: instance `QuickCheck.Arbitrary`

## 3.1.2

* `Instructions`: setters for FastMath flags

## 3.1.0.1

* `addFunctionMapping` checks for functions
  that are eliminated by optimization passes.
  This fixes a crash when working with optimizations and call-back functions.

## 3.1

* `ExecutionEngine` is now managed by a `ForeignPtr` with a finalizer.
  That is, you must keep the `ExecutionEngine` alive
  as long as you call compiled functions.

  `FreePointers` and `getFreePointers` are gone.

## 3.0.3

* `constVector`, `constArray`, `vector` do no longer cycle the vector
  Instead they check for the appropriate static length.

* `FFI.constVector`, `FFI.constArray` must be in IO
  in order to proper sequence actions in `Core.Util.constVector`, `Core.Util.constArray`.
  Currently, in `Util.constVector` it is possible that `FFI.constArray`
  is called too late and thus operates on a released pointer.