Releases: indoorvivants/sn-bindgen
v0.1.2
v0.1.1
This release celebrates the recently released Scala Native 0.5.0-RC1 and starts preparing the ground for making it the default
version for generated bindings.
At the moment the changes are quite minimal, and are controlled by the new --flavour
parameter.
The flavour parameter is auto-detected from the build configuration as part of SBT plugin, users shouldn't need to do anything.
Later releases might introduce syntactic changes aimed at taking advantage of SN's new pointer size types, to make cross-compiling for 32bit platforms easier.
What's Changed
Full Changelog: v0.1.0...v0.1.1
v0.1.0
The minor bump in this release indicates two things:
- LLVM was updated to 17 (from 14). This was forced by the new CI process, but it's a good change nonetheless.
- The JVM interface for invoking the binary (used in SBT plugin and the future Mill plugin) is entering a maturing phase, where I would like to enable MiMa for those artifacts and keep them binary and source stable.
The LLVM 17 change forces me to bump some of the other important improvements to future releases.
Additionally, we're now publishing Apple Silicon binaries straight from CI, thanks to Github Actions adding the runners.
Other PRs
Full Changelog: v0.0.24...v0.1.0
v0.0.24
Main and breaking changes
- Don't render
all
package and exports in multi-file mode by @keynmol in #258 - Sort out the interface bincompat surface by @keynmol in #269
Other
- Add nix flake by @coreyoconnor in #244
- Nix: specify main program in
packages.default
, add source filter by @kubukoz in #245 - Add Nix overlay to flake by @kubukoz in #246
- Interactive driver and various refactorings by @keynmol in #248
- Update sbt to 1.9.8 by @indoorvivants-steward in #251
- Update sbt-welcome to 0.4.0 by @indoorvivants-steward in #249
- Correctly render package private defs when package has parts by @keynmol in #257
- Allow excluding system paths by @keynmol in #260
- Update junit-plugin, junit-runtime, ... to 0.4.17 by @indoorvivants-steward in #265
New Contributors
- @coreyoconnor made their first contribution in #244
- @kubukoz made their first contribution in #245
Full Changelog: v0.0.23...v0.0.24
v0.0.23
This release removes a spurious print introduced in 0.0.22 that would've messed up the CLI results.
SBT plugin is not affected as it writes to files directly.
Full Changelog: v0.0.22...v0.0.23
v0.0.22
v0.0.21
Highlights:
- Scala 3.3 LTS
- Scala Native 0.4.16
- Helper methods to make it easier to work with opaque C function pointer aliases
What's Changed
- Round of upgrades by @keynmol in #238
- fromPtr/toPtr helper methods for C function pointer aliases by @keynmol in #240
Full Changelog: v0.0.20...v0.0.21
v0.0.20
What's Changed
- More dumber system header detection by @keynmol in #208
- Fix #210: recursive struct via array of pointers indirection by @keynmol in #211
- Update scalafmt-core to 3.7.5 by @indoorvivants-steward in #216
- Fix FAM rendering by removing FAM field early by @keynmol in #224
Full Changelog: v0.0.19...v0.0.20
v0.0.19 - copy of 0.0.18
This release is equivalent to 0.0.18, but should correctly release to Maven Central.
0.0.18 is still perfectly functional because SBT plugin can bootstrap from Github Releases.
v0.0.18 - Exports
We added the ability to render functions from a header file as exported methods - allowing you to expose these functions in a shared/static library, and to provide the implementation separately, by just implementing a trait.
This allows you to use a header file as a definition of a binary interface, implement it in Scala, and pass the header along to a system that understands headers natively. One example is Swift: you can implement a lot of your logic in Scala, use it from Swift via the library interface, and use Swift for the rest of your project (if it's a desktop application, for example).
What's Changed
- Arm64 build via QEMU and Earthly by @keynmol in #185
- Add export mode by @keynmol in #202
- Export tests by @keynmol in #203
Full Changelog: v0.0.17...v0.0.18