Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Official crates.io release #155

Merged
merged 13 commits into from
Mar 14, 2023
Merged

Official crates.io release #155

merged 13 commits into from
Mar 14, 2023

Conversation

danielhenrymantilla
Copy link
Collaborator

@danielhenrymantilla danielhenrymantilla commented Mar 14, 2023

This makes the long-living master branch of safer-ffi finally releasable to crates.io again.

  • To become a 0.1.0-rc1 release; a proper release may follow later.

  • Despite the 0.1.0, future releases will probably be breaking anyways (0.2.0, etc.), since between the header generation (sensitive to name "mangling" schemes), the module naming, etc., it would be way too limiting for me to already try to aim for semver-compatible releases. I will, however, strive to make these breaking changes be soft / easy to tackle.

Notes

  • The js support is still deemed too experimental to be made public (most users should just stick to using #[wasm_bindgen] or #[napi] directly), so it is not part of the crates.io package (in practice this is achieved by shadowing it with a ::cratesio-placeholder-package).

  • C# "header" generation, on the other hand, is made public, even though it supports fewer features than C header generation (e.g., no pointers to a fn pointer), due to .NET being such a non-system programming language for certain things.

  • repr_c::Box<[T]> now magically stands for the less ergonomic c_slice::Box<T>, hopefully improving the readability of function signatures.

    • This breaks repr_c::Box::new() due to type inference and function resolution, since repr_c::Box is currently implemented as a mere type alias. I may use a dedicated newtype/tuple struct if this is deemed too unergonomic. Box::new(…).into() is to be used instead.
  • dyn Trait support! 🚀

  • And a bunch of other things I may be forgetting.

@danielhenrymantilla danielhenrymantilla self-assigned this Mar 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant