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.