This is a really great release, thank you for all the work to all contributors.
Highlights
- Improvements in generic handling, especially around Tuples #657 and even labelled tuples #670
- Specialization support -- you can now "specialize" types in swift-java.config or using a
typealias SomethingCool = Something<Cool>in code #664 - support for
#if ...blocks! #678 - returning strings and throwing funcs in jextract/FFM #651
- Better support for Dead Code Elimination, especially important for Android #652
And a number of performance and correctness fixes all around jextract and wrap-java.
The complete changelist follows next:
What's Changed
- update the releasing script with some nuances by @ktoso in #641
- No dots in messages by @ktoso in #643
- Add more JNI local frames to method calls by @madsodgaard in #645
- jextract plugin: prefer gradlew over global gradle by @ktoso in #644
- Prepare next development cycle after 0.1.2 release by @ktoso in #642
- Fix compiler warnings by @sidepelican in #646
- Better
@JavaClassdetection for JExtract by @madsodgaard in #647 - jextract-jni: Add type parameters to generated java types by @sidepelican in #648
- jextract/ffm: Support returning Strings by @ktoso in #651
- [Android] Add support for emitting symbol list for better DCE, also add docs about binary sizes by @madsodgaard in #652
- Fix JNI symbols not exposed in release mode by @gmondada in #650
- Lower minimum macOS version to v13 by @llsc12 in #654
- jextract: [SwiftType]
optional,array,dictionary, andsetintonominaltype by @sidepelican in #649 - jextract/wrap-java(!): add filter-include/exclude same as wrap-java has by @ktoso in #655
- jextract: introduce importedModuleStubs config by @ktoso in #656
- jextract/ffm: Support throwing funcs in FFM mode by @ktoso in #658
- jextract: Add single-type mode for jextract by @ktoso in #659
- Remove from the doc the use of unsafeFlags by @gmondada in #660
- remove swift-format multiline trailing comma by @ktoso in #662
- jextract/jni: Support generic types within Optional and Tuple by @sidepelican in #657
- jextract/jni: Specialization and constrained extension support by @ktoso in #664
- Fix linker version script output by @madsodgaard in #665
- Small cleanups by @ktoso in #666
- jextract/jni: handle UnsafeRawBufferPointer params by @ktoso in #668
- jextract/jni: support generic params : DataProtocol by @ktoso in #669
- jextract: LabeledTuple support! by @ktoso in #670
- Add type name to macro-generated function names by @sidepelican in #674
- Add Swift 6.3 CI by @ktoso in #672
- Narrow down
java.library.pathto prevent loading stale dylibs by @sidepelican in #673 - jextract: Evaluate IfConfigDecl and add --static-build-config option by @sidepelican in #671
- Revert "jextract: Evaluate IfConfigDecl and add --static-build-config option" by @ktoso in #677
- make the jni throwing runtime test actually throw by @ktoso in #675
- jextract: Evaluate IfConfigDecl and add --static-build-config option 2 by @sidepelican in #678
- Disable nightly-main for now, until things are more stable by @ktoso in #680
- Allow configuring the library name to be loaded in swift-java.config by @ktoso in #682
- jextract: handle nested arrays, e.g. [[UInt8]] by @ktoso in #679
- jextract/jni: handle tuples with array elements by @ktoso in #685
- jextract/jni: Make single-type mode available by @sidepelican in #686
- Preparing release 0.2.0 by @ktoso in #688
New Contributors
Full Changelog: 0.1.2...0.2.0