4.8 KiB
4.8 KiB
Change Log
All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
Unreleased
0.5.357 - 2022-07-07
Removed
:coffi.mem/long-longprimitive typecoffi.mem/slice-into; the function no longer has an equivalent in panama, but see 2-arity ofcoffi.mem/as-segmentfor an alternative
Changed
coffi.mem/as-segmentno longer has a close action arity- JDK version from 17 to 18
0.4.341 - 2022-01-23
Added
- Constants for size and alignment of primitive types
- Support for non-native byte orders of primitive types
- Functions for reading and writing primitive types (e.g.
coffi.mem/read-float,coffi.mem/write-long, etc.) - Layout objects may now be passed to
coffi.mem/size-ofandcoffi.mem/align-of - Constants for native-order primitive layouts
- Constants for byte orders
Changed
- The
coffi.mem/primitive?predicate is now actually a function instead of a set
0.3.298 - 2022-01-10
Added
- New
coffi.layoutnamespace with support for forcing C layout rules on structs
Fixed
- C-characters were being read as UTF-16 rather than ASCII code points
0.2.277 - 2021-10-25
Fixed
- Non-primitive arguments on upcalls would generate invalid bytecode with
nilinstructions
0.2.259 - 2021-10-16
Fixed
- Long and double arguments to upcalls failed to compile in some cases
- Void return types on upcalls would crash on serialization
0.1.251 - 2021-10-14
Fixed
- Bug with the inline expansion of
make-serde-wrapper, make it more maintainable
0.1.246 - 2021-10-14
Fixed
- Incorrect inline expansion of
make-serde-wrapperin cases where a function has no arguments
0.1.241 - 2021-10-14
Performance
- Added an
:inlinefunction tomake-serde-wrapperto remove serialization overhead on primitives - Added multimethod implementations for primitives in (de)serialization functions, rather than using the default
Fixed
cfndidn't add serializers with non-primitive types in some cases
0.1.220 - 2021-10-09
Fixed
- All-primitive method types still used serialization when called from
cfn - Arrays deserialized to non-vector sequences
- Non-primitive argument types fail to link
0.1.205 - 2021-10-06
Added
- An
address?predicate
Fixed
- Compound types caused problems in arglists meta on expansion of
defcfn - Compound types were not allowed as return types in
defcfn nilwas not considered a null pointer- Primitive-serializing types fail to compile as arguments to downcall handles
- Primitive-serializing types fail to load as arguments to upcall functions
- Void return types on upcalls crash the JVM
- Invalid implementation of serialize-into for primitive types
0.1.192 - 2021-09-30
Added
- An
::ffi/addresskey to wrapper functions' metadata
Fixed
- Usage of a method no longer in Panama that breaks
with-acquired
0.1.184 - 2021-09-30
Fixed
- Deserializing nullpointers as functions threw an exception
- Upcall stubs with non-primitive arguments failed to compile
- Upcall stubs had incorrect types
0.1.176 - 2021-09-29
Fixed
- Usage of
defcfnwithout a docstring produced an invaliddefform
0.1.169 - 2021-09-28
Added
- Macro for easily wrapping native functions with arbitrary logic
- Functions for creating wrapper fns for native functions
- Macro for easily aliasing types
- Functions to create scopes for deterministic deallocation
- Functions to load libraries by name or path
- Support for serializing and deserializing arbitrary Clojure functions
- Support for serializing and deserializing arbitrary Clojure data structures