The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.58 - 2018-11-20

  • Add unstick method to FFI::Platypus::Closure

Changes for version 0.57_01 - 2018-11-04

  • Major refactor of the internals of the type system. The API is the same but some type meta-data (which was never guaranteed to stay the same) may have changed.
    • The internal representation of types is much smaller (4 bytes for simple types), which can save a lot of memory if you have lots of types.
    • Fixed width strings example: `string(32)` are now internally treated the same as a record with no class `record(32)`. Previously these were separate types but worked identically, this removes duplicate code.
    • Fixed width string arguments to a closure are now read-only, Usually you should be copying these arguments anyway.
    • Removed the internal type "exotic float" which includes `long double`, `complex float` and `complex double`. These are now grouped internally with other scalar types.
  • Merge FFI::Platypus::Type::StringArray into this distribution

Documentation

Defining types for FFI::Platypus

Modules

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
Slightly non-portable interface to libdl
Declarative interface to FFI::Platypus
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
Memory functions for FFI
FFI support for structured records data
Tied array interface for record array members
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

Provides

in lib/FFI/Platypus.pm
in lib/FFI/Platypus.pm
in lib/FFI/Platypus.pm
in lib/FFI/Platypus.pm