Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: prodogs/ffi

Tags

v1.16.3

Toggle v1.16.3's commit message
1.16.3 / 2023-10-04

-------------------

Fixed:
* Fix gcc error when building on CentOS 7. ffi#1052
* Avoid trying to store new DataConverter type in frozen TypeDefs hash. ffi#1057

v1.16.2

Toggle v1.16.2's commit message
1.16.2 / 2023-09-25

-------------------

Fixed:
* Handle null pointer crash after fork. ffi#1051

v1.16.1

Toggle v1.16.1's commit message
1.16.1 / 2023-09-24

-------------------

Fixed:
* Fix compiling the builtin libffi. ffi#1049

v1.16.0

Toggle v1.16.0's commit message
1.16.0 / 2023-09-23

-------------------

Fixed:
* Fix an issue with signed bitmasks when using flags on the most significant bit. ffi#949
* Fix FFI::Pointer#initialize using NUM2LL instead of NUM2ULL.
* Fix FFI::Type#inspect to properly display the constant name. ffi#1002
* Use libffi closure allocations on hppa-Linux. ffi#1017
  Previously they would segfault.
* Fix class name of Symbol#inspect.
* Fix MSVC support of libtest. ffi#1028
* Fix attach_function of functions ending in ? or ! ffi#971

Added:
* Convert all C-based classes to TypedData and use write barriers. ffi#994, ffi#995, ffi#996, ffi#997, ffi#998, ffi#999, ffi#1000, ffi#1001, ffi#1003, ffi#1004, ffi#1005, ffi#1006, ffi#1007, ffi#1008, ffi#1009, ffi#1010, ffi#1011, ffi#1012
  This results in less pressure on the garbage collector, since the objects can be promoted to the old generation, which means they only get marked on major GC.
* Implement `ObjectSpace.memsize_of()` of all C-based classes.
* Make FFI Ractor compatible. ffi#1023
  Modules extended per `extend FFI::Library` need to be frozen in order to be used by non-main Ractors.
  This can be done by calling `freeze` below of all C interface definitions.
  * In a Ractor it's possible to:
    * load DLLs and call its functions, access its global variables
    * use builtin typedefs
    * use and modify ractor local typedefs
    * define callbacks
    * receive async callbacks from non-ruby threads
    * use frozen FFI::Library based modules with all attributes (enums, structs, typedefs, functions, callbacks)
    * invoke frozen functions and callbacks defined in the main Ractor
    * use FFI::Struct definitions from the main Ractor
  * In a Ractor it's impossible to:
    * create new FFI::Library based modules
    * create new FFI::Struct definitions
    * use custom global typedefs
    * use non-frozen FFI::Library based modules
* Allow type retrieval of attached functions+variables. ffi#1023
* Make FFI classes `GC.compact` friendly. ffi#1021
* Update libffi and disable custom trampoline when using libffi closure allocation. ffi#1020
  This is because libffi changed the way how closures are allocated to static trampolines.
* Add types.conf for loongarch64-linux. ffi#943
* Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha).  ffi#1018
* Add support for aarch64-windows. ffi#1035
* Windows: Update LoadLibrary error message to include error code. ffi#1026
* Allow private release method for FFI::ManagedStruct and FFI::AutoPointer. ffi#1029
* Add support for passing ABI version to FFI.map_library_name. ffi#963
  This adds the new class FFI::LibraryPath .
* Add support for ruby-3.2 to windows binary gem. ffi#1047
* Enable debug symbols for `rake compile` builds to ease debugging. ffi#1048

Removed:
* Remove allocator of AbstractMemory. ffi#1013
  This disables AbstractMemory.new, which has no practical use.
* Remove unused FFI::SizeTypes. ffi#1022

v1.15.5

Toggle v1.15.5's commit message
1.15.5 / 2022-01-10

-------------------

Fixed:
* Fix long double argument or return values on 32bit i686. ffi#849
* FFI::ConstGenerator: avoid usage of the same binary file simultaneously. ffi#929

Added:
* Add Windows fat binary gem for Ruby-3.1

Removed:
* Remove Windows fat binary gem for Ruby < 2.4

v1.15.4

Toggle v1.15.4's commit message
1.15.4 / 2021-09-01

-------------------

Fixed:
* Fix build for uClibc. ffi#913
* Correct module lookup when including `ffi-module` gem. ffi#912

Changed:
* Use ruby code of the ffi gem in JRuby-9.2.20+. ffi#915

v1.15.3

Toggle v1.15.3's commit message
1.15.3 / 2021-06-16

-------------------

Fixed:
* Fix temporary packaging issue with libffi. ffi#904

v1.15.2

Toggle v1.15.2's commit message
1.15.2 / 2021-06-16

-------------------

Added:
* Add support for Windows MINGW-UCRT build. ffi#903
* Add `/opt/homebrew/lib/` to fallback search paths to improve homebrew support. ffi#880 ffi#882

Changed:
* Regenerate `types.conf` for FreeBSD12 aarch64. ffi#902

v1.15.1

Toggle v1.15.1's commit message
1.15.1 / 2021-05-22

-------------------

Fixed:
* Append -pthread to linker options. ffi#893
* Use arm or aarch64 to identify Apple ARM CPU arch. ffi#899
* Allow overriding `gcc` with the `CC` env var in `const_generator.rb` and `struct_generator.rb`. ffi#897

v1.15.0

Toggle v1.15.0's commit message
1.15.0 / 2021-03-05

-------------------

Fixed:
* Fix MSVC build
* Fix async callbacks in conjunction with fork(). ffi#884

Added:
* Allow to pass callbacks in varargs. ffi#885
* Name the threads for FFI callback dispatcher and async thread calls for easier debugging. ffi#883
  The name can be retrieved by Thread.name and is shown by Thread.list.inspect etc.
  Even gdb shows the thread name on supported operating systems.
* Add types.conf for powerpc64le-linux
* Add types.conf for riscv64-linux
* More release automation of ffi gems

Changed:
* Switch from rubygems-tasks to bundler/gem_helper

Removed:
* Remove unused VariadicInvoker#init