Skip to content

Multiple implementations #44

@plicease

Description

@plicease

There could be some advantages to supporting multiple implementations down the road. Examples:

  • Win32::API may provide better performance or features on Windows platforms
  • GNU ffcall may support some platforms that libffi does not (skeptical)
  • Alternate implementations of Perl, such as p2, gperl or moe or even Perl 6

I had this in mind when I was designing the interface, but I haven't been implementing it in a particularly pluggable way unfortunately. Tasks include:

  • Moving the libffi specific Perl code into FFI::Platypus::Impl::Libffi
  • FFI::Platypus becomes a subclass of FFI::Platypus::Impl::...
  • split the XS and C code into libffi specific stuff and non-libffi specific stuff. For example ffi_platypus_call.h is decidedly libffi specific. The record code should not be.
  • Remove the libffi objects from the structs in ffi_platypus.h. Right now we are using the size and type fields for logic. This is probably the most significant task.

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐣EnhancementThings that make it work better

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions