Releases: JupiterRider/ffi
Releases · JupiterRider/ffi
v0.6.0
v0.5.1
Fixed
DefaultAbihad a wrong value on Windows ARM64.- Missing extra field attached to
Cif(Windows/macOS ARM64). - Embedded libffi binaries have been updated to 3.5.1.
v0.5.0
Added
- The libffi shared libraries for Windows AMD64 and macOS AMD64/ARM64 are now embedded into this library (#12).
The build tagffi_no_embedor the environment variableFFI_NO_EMBED=1can disable this feature. - You can now retrieve the used libffi version (requires libffi 3.5.0 or newer):
func GetVersion() stringfunc GetVersionNumber() uint64
- Function
func GetStructOffsets(abi Abi, structType *Type, offsets *uint64) Statusimplemented.
Changed
- Dependency
github.com/ebitengine/puregoupdated.
v0.4.1
v0.4.0
Changed
Fun.Callpanics now, if the number of arguments doesn't match the prepared Cif.
v0.3.0
Added
- libffi's closure API has been implemented, which allows you to create C functions at runtime:
func ClosureAlloc(size uintptr, code *unsafe.Pointer) *Closurefunc ClosureFree(writable *Closure)func PrepClosureLoc(closure *Closure, cif *Cif, fun uintptr, userData, codeLoc unsafe.Pointer) Status
- The new types
FunandLibcan reduce boilerplate and eliminate platform-dependent code:func (f Fun) Call(ret any, args ...any)func Load(name string) (l Lib, err error)func (l Lib) Close() errorfunc (l Lib) Get(name string) (addr uintptr, err error)func (l Lib) Prep(name string, ret *Type, args ...*Type) (f Fun, err error)func (l Lib) PrepVar(name string, nFixedArgs int, ret *Type, args ...*Type) (f Fun, err error)
- New method
func (a Arg) Bool() booladded. - Changelog file added.
Changed
- On Linux, libffi.so.7 was loaded when libffi.so.8 could not be found. This is no longer the case.