Subject: CVS commit: pkgsrc/devel/ruby-ffi
From: Takahiro Kambe
Date: 2023-11-11 13:09:58
Message id: 20231111120958.B8BE5FA2F@cvs.NetBSD.org

Log Message:
devel/ruby-ffi: update to 1.16.3

1.16.0 (2023-09-23)

Fixed:

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

Added:

* Convert all C-based classes to TypedData and use write barriers. #994,
  #995, #996, #997, #998, #999, #1000, #1001, #1003, #1004, #1005, #1006,
  #1007, #1008, #1009, #1010, #1011, #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. #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.

  o 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
  o 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. #1023
* Make FFI classes GC.compact friendly. #1021
* Update libffi and disable custom trampoline when using libffi closure
  allocation. #1020 This is because libffi changed the way how closures are
  allocated to static trampolines.
* Add types.conf for loongarch64-linux. #943
* Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha). #1018
* Add support for aarch64-windows. #1035
* Windows: Update LoadLibrary error message to include error code. #1026
* Allow private release method for FFI::ManagedStruct and
  FFI::AutoPointer. #1029
* Add support for passing ABI version to FFI.map_library_name. #963 This
  adds the new class FFI::LibraryPath .
* Add support for ruby-3.2 to windows binary gem. #1047
* Enable debug symbols for rake compile builds to ease debugging. #1048

Removed:

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

1.16.1 (2023-09-24)

Fixed:

* Fix compiling the builtin libffi. #1049

1.16.2 (2023-09-25)

Fixed:

* Handle null pointer crash after fork. #1051

1.16.3 / 2023-10-04

Fixed:

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

Files:
RevisionActionfile
1.34modifypkgsrc/devel/ruby-ffi/Makefile
1.23modifypkgsrc/devel/ruby-ffi/PLIST
1.33modifypkgsrc/devel/ruby-ffi/distinfo