Expand description

Release 0.3.0 (2016-07-27)

  • Greatly improved documentation, especially around platform-specific behaviours;
  • Improved test suite by building our own library to test against;
  • All Library-ies now implement Send.
  • Added impl From<os::platform::Library> for Library and impl From<Library> for os::platform::Library allowing wrapping and extracting the platform-specific library handle;
  • Added methods to wrap (Symbol::from_raw) and unwrap (Symbol::into_raw) the safe Symbol wrapper into unsafe os::platform::Symbol.

The last two additions focus on not restricting potential usecases of this library, allowing users of the library to circumvent safety checks if need be.

Breaking Changes

Library::new defaults to RTLD_NOW instead of RTLD_LAZY on UNIX for more consistent cross-platform behaviour. If a library loaded with Library::new had any linking errors, but unresolved references weren’t forced to be resolved, the library would’ve “just worked”, whereas now the call to Library::new will return an error signifying presence of such error.

os::platform

  • Added os::unix::Library::open which allows specifying arbitrary flags (e.g. RTLD_LAZY);
  • Added os::windows::Library::get_ordinal which allows finding a function or variable by its ordinal number;