Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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/
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<url>https://github.com/tree-sitter/java-tree-sitter/issues</url>
</issueManagement>
<properties>
<maven.compiler.release>22</maven.compiler.release>
<maven.compiler.release>23</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.deploy.skip>true</maven.deploy.skip>
<gpg.skip>true</gpg.skip>
Expand Down
17 changes: 6 additions & 11 deletions scripts/TreeSitter_java.patch
Original file line number Diff line number Diff line change
@@ -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;
/**