All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
- Bug with the inline expansion of
make-serde-wrapper
, make it more maintainable
- Incorrect inline expansion of
make-serde-wrapper
in cases where a function has no arguments
- Added an
:inline
function to make-serde-wrapper
to remove serialization overhead on primitives - Added multimethod implementations for primitives in (de)serialization functions, rather than using the default
cfn
didn't add serializers with non-primitive types in some cases
- All-primitive method types still used serialization when called from
cfn
- Arrays deserialized to non-vector sequences
- Non-primitive argument types fail to link
- Compound types caused problems in arglists meta on expansion of
defcfn
- Compound types were not allowed as return types in
defcfn
nil
was 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
- An
::ffi/address
key to wrapper functions' metadata
- Usage of a method no longer in Panama that breaks
with-acquired
- Deserializing nullpointers as functions threw an exception
- Upcall stubs with non-primitive arguments failed to compile
- Upcall stubs had incorrect types
- Usage of
defcfn
without a docstring produced an invalid def
form
- 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