### Home Classes Methods

### Files

- History.txt
- README.rdoc

### Class Index

Quicksearch

- FFI
- FFI::AutoPointer
- FFI::AutoPointer::CallableReleaser
- FFI::AutoPointer::DefaultReleaser
- FFI::AutoPointer::Releaser
- FFI::ConstGenerator
- FFI::ConstGenerator::Constant
- FFI::Enum
- FFI::Enums
- FFI::Generator
- FFI::Generator::Task
- FFI::IO
- FFI::Library
- FFI::ManagedStruct
- FFI::NotFoundError
- FFI::Platform
- FFI::PlatformError
- FFI::Pointer
- FFI::StrPtrConverter
- FFI::Struct
- FFI::Struct::ManagedStructConverter
- FFI::StructGenerator
- FFI::StructGenerator::Field
- FFI::StructLayout
- FFI::StructLayout::Enum
- FFI::StructLayout::InnerStruct
- FFI::StructLayout::Mapped
- FFI::StructLayoutBuilder
- FFI::TypesGenerator
- FFI::Union
- FFI::VariadicInvoker

No matching classes.

## 1.0.3 / 2010-12-28

- Re-add support for ruby 1.8.x

## 1.0.0 / 2010-11-30

- Major improvements

  - Better handling of non-ruby thread callbacks

  - Support for releasing the GIL during C function calls

- Minor improvements

  - code cleanups

## 0.5.0 / 2009-10-06

- Major improvements

  - New Function class

  - Structs can be passed and returned by value

  - Implement a custom trampoline for x86_64, resulting in roughly 30% speedup

  - Improve dispatch of functions which take (0..6) char/short/int/long/pointer arguments by between 50% and 200% on x86_64

  - Callbacks are now approximately 100% faster on x86_64

- Minor improvements

  - Add support for MacOSX Snow Leopard

  - Improve support for Windows releasing fat binaries on rubyforge

  - Better introspection in structs:

    - Add StructLayout::Field#type, size, offset, alignment and name methods

    - Add StructLayout#fields which returns an array of StructLayout::Field objects

  - Add automagic deducing of library name from module name. Idea and prototype implementation from Matt Hulse

  - Callback fields in structs can now be both read and written

  - Add a bunch of new benchmarks

  - Lots of refactoring

- Experimental features

  - blocking functions (i.e. native code that blocks the thread) support

- Bug fixes

  - Fix RUBY-FFI_43 (rake gem dependency)

## 0.4.0 / 2009-08-05

- Major improvements

  - Add support for boolean types

  - Add support for methods as callbacks

  - Add FFI::IO.read as described in JRUBY-3636

- Minor improvements

  - Add Pointer::NULL constant

  - Add AbstractMemory#get_array_of_string()

  - Implement Pointer.new(address) and Pointer.new(:type, address)

- Bug fixes

  - Fix RUBY_FFI-38

  - Fix issues related to 1.9.1 build

  - Fix issues related to OSX build

  - Fix issues related to FreeBSD build

  - Fix issues related to OpenSolaris build

## 0.3.5 / 2009-05-08

- Bug fixes

  - Fix RUBY_FFI-17

  - Fix RUBY_FFI-21

## 0.3.4 / 2009-05-01

- Minor improvements

  - Add return statements to functions that call rb_raise(), in case rb_raise is not declared noreturn, to avoid gcc warnings.

## 0.3.3 / 2009-04-27

- Minor improvements

  - Implement RUBY_FFI-16 - Add support for anonymous callbacks

  - Add support for callback parameters in callbacks

  - Add support for function pointer return values

  - Callbacks can now coerce proc objects into function pointers for return values.

  - Implement FFI::Type and FFI::Type::Builtin

  - Add support for enumerations

- Bug fixes

  - Fix RUBY_FFI-19

  - Fix RUBY_FFI-15

## 0.3.2 / 2009-05-01

- Bug fixes

  - Fix JRUBY-3527 by passing RTLD_GLOBAL instead of RTLD_LOCAL

## 0.3.1 / 2009-03-23

- Bug fixes

  - Correctly save errno/GetLastError after each call.

## 0.3.0 / 2009-03-19

- Switch compilation to rake-compiler

  - Makes cross-compilation from linux -> win32 super easy

  - win32 support is available now, but highly experimental

- Performance improvements

  - struct field access approx 3x faster than 0.2.0

  - function invocation approx 20% faster than 0.2.0

- A bunch of minor improvements

  - Struct instances can now be passed as :pointer parameters without calling Struct#pointer

  - Support for array struct members

  - Structs are now padded correctly to the alignment of the struct's largest field

  - Global library variables

  - Callbacks in global library variables

  - Strings passed in as :string arguments are scrubbed to avoid poison-null-byte attacks.

  - Union support

  - nil can be passed as a :string argument (passed as NULL)

  - Structs can now be fields inside another struct

  - Lots of internal cleanups and refactorings.

[Validate]

Generated with the Darkfish Rdoc Generator 2.