== 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.