./devel/ruby-ffi, Loading dynamic libraries, binding functions within them

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.16.3, Package name: ruby31-ffi-1.16.3, Maintainer: pkgsrc-users

== DESCRIPTION:

Ruby-FFI is a ruby extension for programmatically loading dynamic
libraries, binding functions within them, and calling those functions
from Ruby code. Moreover, a Ruby-FFI extension works without changes
on Ruby and JRuby.

Discover why should you write your next extension using Ruby-FFI
here[http://wiki.github.com/ffi/ffi/why-use-ffi].

== FEATURES/PROBLEMS:

* It has a very intuitive DSL
* It supports all C native types
* It supports C structs (also nested), enums and global variables
* It supports callbacks
* It has smart methods to handle memory management of pointers and structs


Required to run:
[devel/libffi] [lang/ruby26-base]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 976.5 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-11 13:09:58 by Takahiro Kambe | Files touched by this commit (3) | Package updated
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
   2022-02-12 13:30:40 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-ffi: update to 1.15.5

1.15.5 (2022-01-10)

Fixed:

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

Added:

* Add Windows fat binary gem for Ruby-3.1

Removed:

* Remove Windows fat binary gem for Ruby < 2.4
   2021-12-08 17:07:18 by Adam Ciarcinski | Files touched by this commit (3063)
Log message:
revbump for icu and libffi
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2021-09-18 17:18:46 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-ffi: update to 1.15.4

1.15.4 / 2021-09-01
Fixed:

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

Changed:

* Use ruby code of the ffi gem in JRuby-9.2.20+. #915
   2021-08-12 17:05:44 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-ffi: update to 1.15.3

1.15.3 / 2021-06-16

Fixed:

* Fix temporary packaging issue with libffi. #904

1.15.2 / 2021-06-16

Added:

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

Changed:

* Regenerate types.conf for FreeBSD12 aarch64. #902
   2021-05-29 10:32:13 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-ffi: update to 1.15.1

1.15.1 (2021-05-22)

Fixed:

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