Changelog for llvm-hs-6.1.0
6.1.0 (2018-05-05)
- Remove the
MetadataNodeReferenceconstructor. References to metadata nodes are now encoded using the polymorphicMDReftype. - Add support for encoding and decoding debug metadata. Thanks to @xldenis who started that effort!
- Drop support for GHC 7.10.
- Support decoding/encoding of metadata in
GlobalVariableandFunction. - Fix check that the type of
GlobalReferenceis correct in the presence of automatic renamings due to name collisions. - Extract LinkingLayer into a separate module.
6.0.0 (2018-03-06)
- Support for LLVM 6.0, take a look at the changelog of llvm-hs-pure for details.
- Add
AggregateZerofor zero-initializing structs, arrays and vectors. PreviouslyNullwas used for null pointers as well as zero-inializing aggregates. The new behavior reflects LLVM’s internal representation and the C++-API. - Enforce that
Nullis only used on pointer types. Existing uses ofNullon arrays, structs and vector must be changed to the newly introducedAggregateZero.
5.1.3 (2018-01-06)
- Add bindings to
loadLibraryPermamentlyandgetSymbolAddressInProcess.
5.1.2 (2017-12-19)
- Reupload of 5.1.1 since Hackage broke during the original upload.
5.1.1 (2017-12-16)
- Fix argument order in
LLVM_Hs_CreateTargetMachine. This affectswithTargetMachineandwithHostTargetMachine. - Add support for
MCTargetOptions.
5.1.0 (2017-10-12)
Bugfixes
- Set target options in
withTargetMachine. Previously the options passed there were simply ignored. - Fix decoding of constant vectors.
- Fix decoding of function attributes in calls.
Enhancements
- Support for more target options.
- Suport string attributes as parameter attributes.
- Support more calling conventions.
- Support
NoTailTailCallKind.
5.0.0 (2017-09-07)
-
Support for LLVM 5.0
We only give a summary of the changes affecting the public API of
llvm-hshere. Please refer to the official release notes for LLVM 5.0 for an overview of all changes in LLVM 5.0.- The
X86_64_Win64calling convention is now calledWin64. - There is a new
Speculatablefunction attribute. - The
CrossThreadsynchronization scope has been removed. There is now a newSystemsynchronization scope. - The
OrcJIT-API now operates on individual modules instead of sets of modules. - The
lessPreciseFloatingPointMultiplyAddOptionfield has been removed from the target options. - The
compressDebugSectionsoption field is now of typeDebugCompressionTypeinstead ofBool. - The
BasicBlockVectorizepass has been removed. You should useSuperwordLevelParallelismVectorizeinstead.
- The
-
Throw 'EncodeException' when the type supplied in a 'GlobalReference' does not match the type of the expression.
-
Throw 'EncodeException' when the result of instructions returning void is named using ':='.
4.2.0 (2017-06-20)
- Revamp OrcJIT API
- The user facing API is now exposed using
LLVM.OrcJIT. - All user facing functions have been documented.
- In addition the bracket-style API, there are now
new*anddispose*functions making it easier to ingegrate OrcJIT in custom monad transformer stacks. - There is a new
CompileLayertypeclass which abstracts over the various compile layers inOrcJIT.
- The user facing API is now exposed using
- Support QuickCheck 2.10
4.1.0 (2017-05-17)
- Switch most of the API from
StringtoByteString. - Switch from ExceptT to using exceptions.
See
LLVM.Exceptionfor an overview of the exceptions potentially thrown.
4.0.1
- Fix linking of system libraries
4.0.0 (initial release, changes in comparison to llvm-general)
- Move modules from
LLVM.General*toLLVM.* - Support for LLVM 4.0
- Improved support for LLVM’s exception handling instructions
-fshared-llvmis now supported on windows (thanks to @RyanGLScott)- Default to
-fshared-llvm - Expose
LLVM.Internal.*modules.