Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: swiftlang/swift-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.3.0
Choose a base ref
...
head repository: swiftlang/swift-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.4.0
Choose a head ref
  • 19 commits
  • 90 files changed
  • 4 contributors

Commits on May 14, 2026

  1. Configuration menu
    Copy the full SHA
    57061be View commit details
    Browse the repository at this point in the history

Commits on May 15, 2026

  1. Configuration menu
    Copy the full SHA
    bd02506 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dd03b67 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2026

  1. jextract/jni: Support non-JavaBoxable types in Dictionary (#754)

    * initial implementation
    
    * Add support generic types
    
    * Skip to print method cache for Core classes
    
    * Remove JavaBoxable extension generations for collection types
    
    * Update examples
    
    * Fix optional boxing
    
    * Skip optional supporting
    
    * Nested array support
    
    * Remove array support
    
    * slim test code
    
    * Add javaBoxClass support
    
    * Use default arena explicitly
    
    * print JavaBoxable extension for all types
    
    * Use bridge type strategy
    
    * Simplified Implementation
    
    * Restore removal of JavaValue from JavaBoxable
    
    * rename bridge types
    
    * Fix tests
    
    * Add Array and Optional support
    
    * Add intArrayDictionary test
    
    * formatting
    
    * Add documentation comment and error details
    
    * Fix build error in LinkageTest
    
    * Fix generic clause join operation
    
    * Pickup generic where clause
    sidepelican authored May 18, 2026
    Configuration menu
    Copy the full SHA
    815c611 View commit details
    Browse the repository at this point in the history
  2. Experiment with targets to enable static linking in consumers (#756)

    * Experiment with targets to enable static linking in consumers
    
    * Add some docs about linking
    ktoso authored May 18, 2026
    Configuration menu
    Copy the full SHA
    11eaa0b View commit details
    Browse the repository at this point in the history
  3. jextract/jni: Support static function calls for specialized types (#757)

    * Import static method in generic type
    
    * Remove skipping static member in opener
    
    * swift format
    
    * Use more simplified expression
    
    * Add call static function test
    sidepelican authored May 18, 2026
    Configuration menu
    Copy the full SHA
    0dd48ec View commit details
    Browse the repository at this point in the history

Commits on May 19, 2026

  1. jextract/jni: Fix enums with unconvertible cases (#755)

    * Avoid compile error for generic enum with its generic associated value
    
    * Fix to throw an error instead of hiding whole getCase method.
    
    * Print warning on generate
    sidepelican authored May 19, 2026
    Configuration menu
    Copy the full SHA
    06556a5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    673d8c9 View commit details
    Browse the repository at this point in the history
  3. jextract/jni: initial support for variadic type (#758)

    * Add example and simple fix for variadic types
    
    * Fix packed parameter name in swift type
    
    * add unit test
    
    * Update document
    sidepelican authored May 19, 2026
    Configuration menu
    Copy the full SHA
    8568971 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2026

  1. Detect double destruction and generalize $createDestroyFunction (#760)

    * Add generic createDestroyFunction impl and add double free check
    
    * Fix tests
    sidepelican authored May 20, 2026
    Configuration menu
    Copy the full SHA
    899c7b4 View commit details
    Browse the repository at this point in the history
  2. Rework the cleanup a little bit so that we avoid the atomic boolean (#…

    …761)
    
    The atomic boolean was one extra heap allocation which we now avoid --
    we just create one cleanup and inside it have an int, rather than
    creating the Bool separately and passing it to the cleanup. AFAICS this
    will avoid one alloc, which isn't much, but can add up since we do it
    for every wrapped swift object.
    
    This keeps semantics added by @sidepelican in
    #760 just avoids the one
    heap alloc per SwiftInstance
    ktoso authored May 20, 2026
    Configuration menu
    Copy the full SHA
    58fbf19 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2026

  1. Configuration menu
    Copy the full SHA
    7efb861 View commit details
    Browse the repository at this point in the history
  2. add JNI_OnLoad (#763)

    madsodgaard authored May 21, 2026
    Configuration menu
    Copy the full SHA
    9337b1e View commit details
    Browse the repository at this point in the history

Commits on May 22, 2026

  1. Configuration menu
    Copy the full SHA
    f7c1005 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2026

  1. jextract: resolve cross-module types via --depends-on (#766)

    * jextract: resolve cross-module types via --depends-on
    
    Previously --depends-on was used only to map Java packages and look up
    wrapped Java classes; When using swift-java jextract on modules which
    extended or used types from another module, we'd not be able to map them
    unless we manually write stubs for them in the swift-java config.
    
    This was annoying, we can do better than that -- emit --depends-on for
    jextract such that it is aware of the other modules and can attempt to
    scan them.
    
    - `SourceDependenciesResolver` owns dependent-module source parsing
      and per-module input registration.
    - `SwiftSymbolTable.setup` gains a `dependencies:` parameter and
      builds real symbol tables for each dependent module before
      falling back to `importedModuleStubs`
    - Failed-import diagnostics upgraded debug -> warning and hint about
      --depends-on
    
    * cleanup a lot of the dependency/dependent wording
    
    * Downgrade logging about empty file emitting
    
    * minor cleanups
    
    * more cleanups; makeDependsOnArgument
    
    * Include depends-on stub types when considering if we can import a type
    ktoso authored May 26, 2026
    Configuration menu
    Copy the full SHA
    060b647 View commit details
    Browse the repository at this point in the history
  2. Adjust for source-break in argument-parser 1.8 (#767)

    * Update baseline argument-parser because its source break in 1.8
    ktoso authored May 26, 2026
    Configuration menu
    Copy the full SHA
    edee635 View commit details
    Browse the repository at this point in the history
  3. CI: Optimize builds and cancel in flight builds (#768)

    * Actions: change cancel-in-progress
    
    We want to cancel in progress jobs since we dont really need them; just
    always run on the latest pushed code immediately, freeing up resources
    more eagerly
    
    * Actions: reduce build matrix to save CI resources
    
    Drop Swift 6.2 from Linux jobs and reduce macOS jobs to Swift 6.3 only.
    verify-samples is now 6.3 only on both platforms since the 7-sample
    fan-out was the largest contributor (was 28 Linux + 14 macOS = 42 jobs;
    now 7 + 7 = 14). Linux still covers 6.1.3 and nightly via test-swift.
    
    Saves ~32 jobs per PR.
    
    * Actions: cache per-sample .build to skip duplicated swift-java compiles
    
    Each Samples/<name>/Package.swift declares swift-java as a path: "../../"
    dependency, so every sample's `swift build` recompiles the entire
    swift-java tree (including swift-syntax) into its own .build dir. With
    seven samples this is ~7x duplicated work and dominates CI time.
    
    Add an actions/cache step to verify-samples and verify-samples-macos
    that caches Samples/<sample>/.build keyed on swift-java sources +
    sample sources + Swift toolchain version, with restore-keys so partial
    reuse kicks in even when swift-java sources change. SwiftPM's
    incremental build then rebuilds only what actually changed.
    
    The bigger structural win (re-enabling --experimental-prebuilts to skip
    swift-syntax entirely) is still blocked on #418 and tracked separately.
    
    * Actions: use hashFiles() with literal patterns for sample cache key
    ktoso authored May 26, 2026
    Configuration menu
    Copy the full SHA
    b600c61 View commit details
    Browse the repository at this point in the history
  4. jextract/jni: Propagate generic parameters to Case types of generic e…

    …nums (#765)
    
    * Propagate enum generic parameters to case type
    
    * Translate owner generic parameter type
    
    * erase raw owner type argument
    
    * resume test name
    sidepelican authored May 26, 2026
    Configuration menu
    Copy the full SHA
    d2cb92e View commit details
    Browse the repository at this point in the history
  5. Preparing release 0.4.0 (#769)

    ktoso authored May 26, 2026
    Configuration menu
    Copy the full SHA
    bb53878 View commit details
    Browse the repository at this point in the history
Loading