Java bindings: evaluate replacing hand-written JNI with the Foreign Function & Memory API
Maintainer thường phản hồi trong vòng 1 ngày
@hlinsen đang làm issue này rồi.
Từ ngày 25/8/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
The Java bindings added in #1524 are hand-written JNI. Java 22 and later ship the Foreign Function & Memory API (JEP 454), which calls the C API directly and would remove cuopt_jni.cpp and its build entirely.
Why it was not done now: the bindings target Java 17, which is still a common default. An earlier revision of #1524 did use FFM and required Java 22 or higher.
Trade-off to settle:
- Hand-written JNI keeps the Java 17 floor, but every
static nativedeclaration and its entry point must be kept in sync by hand. #1524 addsscripts/check_jni_symbols.shto catch drift, since JNI resolves lazily and a mismatch otherwise surfaces only when something calls the method. - FFM removes the native shim and the drift class of bug, at the cost of requiring Java 22+.
cuVS uses FFM (via jextract) for its Java interface, so there is in-house precedent for the tooling.
Raised by @mlubin in review: https://github.com/NVIDIA/cuopt/pull/1524#discussion_r3839538078
Part of #1535.
- Ngôn ngữ chính
- Cuda
- Star
- 1.1k
- Fork
- 255
- Merge trung bình
- 1 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 102
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của NVIDIA/cuopt
-
[BUG] Constraint validation reports CSR offset count as the number of rowsCó thể đã có người làm @0z5a đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errorsCó thể đã có người làm @0z5a đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug mip
Độ khó 4/5 1-2 ngày Mức phù hợp với người mới 53/100
NVIDIA/cuopt#2290 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Dataset downloader reports success and replaces data after a failed downloadCó thể đã có người làm @0z5a đã nhận 3 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày