diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d1e560..e504775 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,7 @@ jobs: fail-fast: false matrix: target: [ubuntu-latest, windows-latest, macos-latest] + java-version: [23, 24, 25] runs-on: ${{matrix.target}} steps: - name: Checkout repository @@ -47,7 +48,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 25 + java-version: ${{matrix.java-version}} cache: maven - name: Get tree-sitter commit shell: sh @@ -82,10 +83,10 @@ jobs: JEXTRACT_URL+=_windows-x64_bin.tar.gz fi curl -LSs "$JEXTRACT_URL" | tar xzf - -C "$RUNNER_TOOL_CACHE" - printf '%s/jextract-22/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" + printf '%s/jextract-25/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" env: # NOTE: keep this in sync with deploy, docs - JEXTRACT_URL: https://download.java.net/java/early_access/jextract/22/6/openjdk-22-jextract+6-47 + JEXTRACT_URL: https://download.java.net/java/early_access/jextract/25/1/openjdk-25-jextract+1-1 - name: Run tests run: mvn --no-transfer-progress test - name: Patch SpotBugs SARIF report diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8c31693..50c605a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -46,10 +46,10 @@ jobs: - name: Set up jextract run: |- curl -LSs '${{env.JEXTRACT_URL}}' | tar xzf - -C "$RUNNER_TOOL_CACHE" - printf '%s/jextract-22/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" + printf '%s/jextract-25/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" env: # NOTE: keep this in sync with ci, docs - JEXTRACT_URL: https://download.java.net/java/early_access/jextract/22/6/openjdk-22-jextract+6-47_linux-x64_bin.tar.gz + JEXTRACT_URL: https://download.java.net/java/early_access/jextract/25/1/openjdk-25-jextract+1-1 - name: Deploy to Maven Central run: mvn --no-transfer-progress deploy -Dspotbugs.skip=true env: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0ca5791..4fdd5e7 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -48,10 +48,10 @@ jobs: - name: Set up jextract run: |- curl -LSs '${{env.JEXTRACT_URL}}' | tar xzf - -C "$RUNNER_TOOL_CACHE" - printf '%s/jextract-22/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" + printf '%s/jextract-25/bin\n' "$RUNNER_TOOL_CACHE" >> "$GITHUB_PATH" env: # NOTE: keep this in sync with ci, deploy - JEXTRACT_URL: https://download.java.net/java/early_access/jextract/22/6/openjdk-22-jextract+6-47_linux-x64_bin.tar.gz + JEXTRACT_URL: https://download.java.net/java/early_access/jextract/25/1/openjdk-25-jextract+1-1 - name: Build javadoc run: mvn --no-transfer-progress javadoc:javadoc antrun:run@fix-javadoc - name: Upload pages artifact diff --git a/README.md b/README.md index edfacda..ad02b5e 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Java bindings to the [tree-sitter] parsing library. ## Building -- Install JDK 22 and set `JAVA_HOME` to it +- Install JDK 23+ and set `JAVA_HOME` to it - Download [jextract] and add it to your `PATH` - Install the `tree-sitter` & `tree-sitter-java` libraries @@ -31,5 +31,5 @@ These alternatives support older JDK versions or Android: [ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter/java-tree-sitter/ci.yml?logo=github&label=CI [central]: https://img.shields.io/maven-central/v/io.github.tree-sitter/jtreesitter?logo=sonatype&label=Maven%20Central [docs]: https://img.shields.io/github/deployments/tree-sitter/java-tree-sitter/github-pages?logo=githubpages&label=API%20Docs -[FFM]: https://docs.oracle.com/en/java/javase/22/core/foreign-function-and-memory-api.html +[FFM]: https://docs.oracle.com/en/java/javase/23/core/foreign-function-and-memory-api.html [jextract]: https://jdk.java.net/jextract/ diff --git a/pom.xml b/pom.xml index 5f86edc..1ec74a4 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ https://github.com/tree-sitter/java-tree-sitter/issues - 22 + 23 UTF-8 true true diff --git a/scripts/TreeSitter_java.patch b/scripts/TreeSitter_java.patch index ffe070c..25e7b2c 100644 --- a/scripts/TreeSitter_java.patch +++ b/scripts/TreeSitter_java.patch @@ -1,22 +1,17 @@ --- a/generated-sources/jextract/io/github/treesitter/jtreesitter/internal/TreeSitter.java +++ b/generated-sources/jextract/io/github/treesitter/jtreesitter/internal/TreeSitter.java -@@ -55,9 +55,7 @@ - }; - } +@@ -20,9 +20,11 @@ public class TreeSitter extends TreeSitter$shared { + + static final Arena LIBRARY_ARENA = Arena.ofAuto(); - static final SymbolLookup SYMBOL_LOOKUP = SymbolLookup.libraryLookup(System.mapLibraryName("tree-sitter"), LIBRARY_ARENA) - .or(SymbolLookup.loaderLookup()) - .or(Linker.nativeLinker().defaultLookup()); + static final SymbolLookup SYMBOL_LOOKUP = ChainedLibraryLookup.INSTANCE.get(LIBRARY_ARENA); - - public static final ValueLayout.OfBoolean C_BOOL = ValueLayout.JAVA_BOOLEAN; - public static final ValueLayout.OfByte C_CHAR = ValueLayout.JAVA_BYTE; -@@ -8599,4 +8606,8 @@ public class TreeSitter { - throw new AssertionError("should not reach here", ex$); - } - } + + static { + ts_set_allocator(malloc$address(), calloc$address(), realloc$address(), free$address()); + } - } + + private static final int TREE_SITTER_LANGUAGE_VERSION = (int)15L; + /**