Changes for version 2.14_01 - 2026-10-21

  • Added FAQ entry about crashes when loading more than one C++ library that statically links libstdc++ (gh#393)
  • Fixed test suite failures under a hardened-runtime Perl (such as Apple's system Perl on macOS) where dlopen refuses a relative path, by resolving the test library path to an absolute path (gh#409)
  • Closures called from a thread that was not created by Perl (for example a thread created by the C library) now abort with a diagnostic pointing to the FAQ instead of crashing or silently using the interpreter from two threads at once. Added a FAQ entry describing this limitation and the usual workaround (gh#399, gh#416)
  • Fixed double free during global destruction when a Perl thread is created while a closure exists, since the closure's C data was being cloned into the child thread (gh#416)

Modules

Build shared libraries for use with FFI
Base class for File::Build files
Class to track C source file in FFI::Build
Class to track C source file in FFI::Build
Class to track object file in FFI::Build
Class to track object file in FFI::Build
FFI::Build installer code for ExtUtils::MakeMaker
Platform specific configuration.
Platform and local customizations of FFI::Build
Platform and local customizations of FFI::Build
Write Perl bindings to non-Perl libraries with FFI. No XS required.
Platypus arguments and return value API for custom types
Convert scalars to C buffers
Bundle foreign code with your Perl module
Platypus closure object
Define constants in C space for Perl
Slightly non-portable interface to libdl
An FFI function object
For internal use only
Language specific customizations
Documentation and tools for using Platypus with the Assembly
Documentation and tools for using Platypus with the C programming language
Documentation and tools for using Platypus with the Windows API
Legacy Platypus interfaces
Memory functions for FFI
FFI support for structured records data
FFI support for structured records data
Tied array interface for record array members
Defining types for FFI::Platypus
Convert string scalar to a buffer as a pointer / size_t combination
Platypus custom type for arrays of strings
Convert a pointer to a string and back
Platypus custom type for Unicode "wide" strings
FFI Type Parser
FFI Type Parser Version Zero
FFI Type Parser Version One
FFI Type Parser Version Two
System detection and probing for FFI extensions.
Probe runner for FFI
Probe runner builder for FFI
The results from a probe run.
Temp Dir support for FFI::Platypus

Provides

in lib/FFI/Build/MM.pm
in corpus/ffi_build_plugin/lib2/FFI/Build/Plugin/Foo1.pm
in corpus/ffi_build_plugin/lib2/FFI/Build/Plugin/Foo2.pm
in lib/FFI/Platypus/Bundle.pm
in lib/FFI/Platypus/Legacy.pm
in lib/FFI/Platypus/Closure.pm
in lib/FFI/Platypus/Function.pm
in lib/FFI/Platypus/Function.pm

Examples