diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index afd981972c..a9356f39a1 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -8,7 +8,7 @@ body: description: Please select the LWJGL version(s) on which the bug is reproducible. multiple: true options: - - 3.3.5 (snapshot) + - 3.3.5 - 3.3.4 - 3.3.3 - 3.3.2 @@ -50,7 +50,7 @@ body: attributes: label: JDK description: Please type the name and version of the Java Runtime(s) on which the bug is reproducible. - placeholder: e.g. Zulu OpenJDK 21.0.4 + placeholder: e.g. Zulu OpenJDK 21.0.5 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/new-binding-request.yml b/.github/ISSUE_TEMPLATE/new-binding-request.yml index 79bb6c7ea1..e5e8f81a28 100644 --- a/.github/ISSUE_TEMPLATE/new-binding-request.yml +++ b/.github/ISSUE_TEMPLATE/new-binding-request.yml @@ -31,6 +31,8 @@ body: - Linux x64 - Linux arm64 - Linux arm32 + - Linux ppc64le + - Linux riscv64 - macOS x64 - macOS arm64 - Windows x64 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 152f4b8020..0b0066f06d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ env: JAVA_HOME: jdk8 ANT_OPTS: -Xmx1G LWJGL_BUILD_TYPE: nightly - ZULU_BUILD: 80.0.17-ca-jdk8.0.422 + ZULU_BUILD: 82.0.21-ca-jdk8.0.432 jobs: cache-kotlinc: @@ -206,7 +206,7 @@ jobs: - name: Build Java run: ant -emacs compile - name: Build & Test - uses: cross-platform-actions/action@v0.25.0 + uses: cross-platform-actions/action@v0.26.0 with: operating_system: freebsd architecture: x86-64 diff --git a/doc/notes/3.3.5.md b/doc/notes/3.3.5.md index 43a917d17d..6780a76aad 100644 --- a/doc/notes/3.3.5.md +++ b/doc/notes/3.3.5.md @@ -1,6 +1,6 @@ ### 3.3.5 -_Not Released Yet_ +_Release 2024 Dec 15_ This build includes the following changes: diff --git a/doc/notes/README.md b/doc/notes/README.md index dc5661698e..c28abf98b2 100644 --- a/doc/notes/README.md +++ b/doc/notes/README.md @@ -4,8 +4,8 @@ ### Version History -* YYYY-MM-DD [3.3.5](3.3.5.md) (work in progress) -* 2024-07-17 [3.3.4](3.3.4.md) (latest) +* 2024-12-15 [3.3.5](3.3.5.md) (latest) +* 2024-07-17 [3.3.4](3.3.4.md) * 2023-09-16 [3.3.3](3.3.3.md) * 2023-04-01 [3.3.2](3.3.2.md) * 2022-02-21 [3.3.1](3.3.1.md) diff --git a/doc/notes/full.md b/doc/notes/full.md index bccfe5e3e5..e62ddc2574 100644 --- a/doc/notes/full.md +++ b/doc/notes/full.md @@ -1,3 +1,66 @@ +### 3.3.5 + +_Release 2024 Dec 15_ + +This build includes the following changes: + +#### Bindings + +- Assimp: Updated to 5.4.3 (up from 5.4.2) +- bgfx: Updated to API version 129 (up from 128) +- FMOD: Updated to 2.03.04 (up from 2.02.21) +- freetype: Updated to 2.13.3 (up from 2.13.2) +- harfbuzz: Updated to 10.1.0 (up from 9.0.0) +- hwloc: Updated to 2.11.2 (up from 2.11.1) +- libdivide: Updated to 5.1 (up from 5.0) + * Added `MathUtil` multi-release support for `Long.divideUnsigned`/`Long.remainderUnsigned` and `Math.unsignedMultiplyHigh`. +- liburing: Updated to 2.8 (up from 2.6) +- LLVM/Clang: Updated to 19.1.0 (up from 18.1.7) +- lmdb: Updated to 0.9.33 (up from 0.9.32) +- lz4: Updated to 1.10.0 (up from 1.9.4) +- meshoptimizer: Updated to 0.22 (up from 0.21) +- NativeFileDialog: Update to 1.2.1 (up from 1.2.0) +- Nuklear: Updated to 4.12.3 (up from 4.12.1) +- OpenAL Soft: Updated to 1.24.1 (up from 1.23.1) + * Added `ALC_SOFT_system_events` extension. + * Added `AL_EXT_debug` extension. + * Added `AL_EXT_direct_context` extension. + * macOS: 10.15+ is now required (up from 10.11). +- OpenXR: Updated to 1.1.43 (up from 1.1.38) +- Shaderc: Updated to 2024.4 (up from 2024.2) +- SPIRV-Cross: Updated to 0.64.0 (up from 0.61.0) +- stb + * Updated `stb_image_resize` to 2.12 (up from 2.09) +- Vulkan: Updated to 1.4.303 (up from 1.3.289) + * Includes MoltenVK 1.2.11 (up from 1.2.10) +- Yoga: Updated to 3.2.0 (up from 3.1.0) + +#### Improvements + +- Core: Migrated jsr305 nullability annotations to JSpecify (https://jspecify.dev). (#1008) + * The `org.jspecify:jspecify` dependency remains optional. +- Core: Added `Configuration.DISABLE_HASH_CHECKS`, a dynamic option that disables shared library hash checks. (#1007) +- FreeBSD: LWJGL now requires FreeBSD 13.3 or later. (up from 13.2) +- OpenGL: Added `Configuration.OPENGL_CONTEXT_API` option to control the default OpenGL context management API. +- OpenGL: The `Configuration.OPENGL(ES)_CONTEXT_API` options now support `"OSMesa"` as a value. + * Similar to `GLFW_OSMESA_CONTEXT_API`, LWJGL will try to load libOSMesa when enabled, without having to change `Configuration.OPENGL_LIBRARY_NAME`. +- OpenGL: The default context management API is now EGL when Wayland is detected. +- msdfgen: Added support for glyph index based msdfgen-ext APIs. (#1002) + +#### Fixes + +- Core: Fixed support for `va_list` parameters. + +#### Breaking Changes + +- Core: Replaced thread-local storage of `errno/GetLastError()` with virtual output parameters. (#1003) + * The `LibCErrno.getErrno()` and `WinBase.getLastError()` methods have been removed. + * System calls in `org.lwjgl.system.linux.*`, `org.lwjgl.system.windows.*` and `org.lwjgl.opengl.WGL` now take an optional output parameter for the error code. + * This approach is similar to `Linker.Option.CaptureCallState` in Project Panama's FFM API. +- Core: Dropped support for non-LTS JDK versions earlier than the latest LTS version. + * Supported JDK versions: 8, 11, 17, 21+ + * The `module-info` class and the first batch of multi-release overrides now live under `META-INF/versions/11` instead of `META-INF/versions/9`. + ### 3.3.4 _Release 2024 Jul 17_ diff --git a/doc/notes/latest.md b/doc/notes/latest.md index 19496a652a..6780a76aad 100644 --- a/doc/notes/latest.md +++ b/doc/notes/latest.md @@ -1,80 +1,62 @@ -### 3.3.4 +### 3.3.5 -_Release 2024 Jul 17_ +_Release 2024 Dec 15_ This build includes the following changes: #### Bindings -- Added [msdfgen](https://github.com/Chlumsky/msdfgen) bindings. -- Assimp: Updated to 5.4.2 (up from 5.2.5) -- bgfx: Updated to API version 128 (up from 122) - * Windows: support for the Direct3D 9 backend has been dropped. -- CUDA: Updated to 12.5.1 (up from 12.1.0) -- FMOD: Updated to 2.02.21 (up from 2.02.16) -- glfw: Updated to 3.4 (up from 3.3.8) - * Added `GLFW_UNLIMITED_MOUSE_BUTTONS`, `GLFW_SCALE_FRAMEBUFFER`, `GLFW_WIN32_SHOWDEFAULT`. - * Added `glfwGetWindowTitle`, `glfwGetCocoaView`. -- glfw: Added experimental support for IME. (#946) - * Added `GLFW_SOFT_FULLSCREEN`, `GLFW_IME`, `GLFW_MANAGE_PREEDIT_CANDIDATE` and `GLFW_X11_ONTHESPOT`. - * Added `glfwGetPreeditCursorRectangle`, `glfwSetPreeditCursorRectangle`, `glfwResetPreeditText`, `glfwGetPreeditCandidate`. - * Added `glfwSetPreeditCallback`, `glfwSetIMEStatusCallback`, `glfwSetPreeditCandidateCallback`. -- harfbuzz: Updated to 9.0.0 (up from 8.2.0) -- hwloc: Updated to 2.11.1 (up from 2.9.3) -- KTX: Updated to 4.3.2 (up from 4.3.0-alpha3) -- libffi: Updated to 3.4.6 (up from 3.4.4) -- liburing: Updated to 2.6 (up from 2.4) -- lmdb: Updated to 0.9.32 (up from 0.9.31) -- LLVM/Clang: Updated to 18.1.7 (up from 16.0.0) -- meshoptimizer: Updated to 0.21 (up from 0.19) -- NativeFileDialog: Update to 1.2.0 (up from 1.1.0) -- Nuklear: Updated to 4.12.1 (up from 4.10.6) -- OpenVR: Updated to 2.5.1 (up from 1.26.7) - * Added support for Linux ARM64 -- OpenXR: Updated to 1.1.38 (up from 1.0.29) -- Opus: Updated to 1.5.2 (up from 1.4.0) -- rpmalloc: Updated to 1.4.5 (up from 1.4.4) -- Shaderc: Updated to 2024.2 (up from 2023.6) -- SPIRV-Cross: Updated to 0.61.0 (up from 0.57.0) +- Assimp: Updated to 5.4.3 (up from 5.4.2) +- bgfx: Updated to API version 129 (up from 128) +- FMOD: Updated to 2.03.04 (up from 2.02.21) +- freetype: Updated to 2.13.3 (up from 2.13.2) +- harfbuzz: Updated to 10.1.0 (up from 9.0.0) +- hwloc: Updated to 2.11.2 (up from 2.11.1) +- libdivide: Updated to 5.1 (up from 5.0) + * Added `MathUtil` multi-release support for `Long.divideUnsigned`/`Long.remainderUnsigned` and `Math.unsignedMultiplyHigh`. +- liburing: Updated to 2.8 (up from 2.6) +- LLVM/Clang: Updated to 19.1.0 (up from 18.1.7) +- lmdb: Updated to 0.9.33 (up from 0.9.32) +- lz4: Updated to 1.10.0 (up from 1.9.4) +- meshoptimizer: Updated to 0.22 (up from 0.21) +- NativeFileDialog: Update to 1.2.1 (up from 1.2.0) +- Nuklear: Updated to 4.12.3 (up from 4.12.1) +- OpenAL Soft: Updated to 1.24.1 (up from 1.23.1) + * Added `ALC_SOFT_system_events` extension. + * Added `AL_EXT_debug` extension. + * Added `AL_EXT_direct_context` extension. + * macOS: 10.15+ is now required (up from 10.11). +- OpenXR: Updated to 1.1.43 (up from 1.1.38) +- Shaderc: Updated to 2024.4 (up from 2024.2) +- SPIRV-Cross: Updated to 0.64.0 (up from 0.61.0) - stb - * Updated `stb_image` to 2.30 (up from 2.28) - * Updated `stb_image_resize` to 2.09 (up from 0.97) -- tinyexr: Updated to 1.0.8 (up from 1.0.7) -- tinyfiledialogs: Updated to 3.18.1 (up from 3.13.3) -- vma: Updated to 3.1.0 (up from 3.0.1) -- Vulkan: Updated to 1.3.289 (up from 1.3.264) - * Includes MoltenVK 1.2.10 (up from 1.2.5) -- Yoga: Updated to 3.1.0 (up from 2.0.0) -- Zstd: Updated to 1.5.6 (up from 1.5.5) + * Updated `stb_image_resize` to 2.12 (up from 2.09) +- Vulkan: Updated to 1.4.303 (up from 1.3.289) + * Includes MoltenVK 1.2.11 (up from 1.2.10) +- Yoga: Updated to 3.2.0 (up from 3.1.0) #### Improvements -- FreeBSD: Added support for the FreeBSD operating system, x64 architecture. (#421) - * Maven classifier: `freebsd` -- Linux: Added support for the PowerPC 64 LE architecture. (#495) - * Maven classifier: `linux-ppc64le` -- Linux: Added support for the RISC-V 64 architecture. (#890) - * Maven classifier: `linux-riscv64` -- Linux: ARM/PowerPC/RISC-V shared libraries are now built with GCC 11 (up from GCC 7). -- Windows: Shared libraries are now built with Clang/LLVM (clang-cl toolset) when possible. -- Vulkan: Made `VkMemoryRequirements` mutable for the `vmaAllocateMemory(Pages)` functions. (#937) +- Core: Migrated jsr305 nullability annotations to JSpecify (https://jspecify.dev). (#1008) + * The `org.jspecify:jspecify` dependency remains optional. +- Core: Added `Configuration.DISABLE_HASH_CHECKS`, a dynamic option that disables shared library hash checks. (#1007) +- FreeBSD: LWJGL now requires FreeBSD 13.3 or later. (up from 13.2) +- OpenGL: Added `Configuration.OPENGL_CONTEXT_API` option to control the default OpenGL context management API. +- OpenGL: The `Configuration.OPENGL(ES)_CONTEXT_API` options now support `"OSMesa"` as a value. + * Similar to `GLFW_OSMESA_CONTEXT_API`, LWJGL will try to load libOSMesa when enabled, without having to change `Configuration.OPENGL_LIBRARY_NAME`. +- OpenGL: The default context management API is now EGL when Wayland is detected. +- msdfgen: Added support for glyph index based msdfgen-ext APIs. (#1002) #### Fixes -- Core: Fixed callback wrapper memory leak with the CHM closure registry. (#927) -- Core: The `SharedLibraryLoader` will now always test if `System::load` works before choosing the extract path. (#987) -- bgfx: Fixed `bgfx_is_frame_buffer_valid` to accept `BGFXAttachment.Buffer`. (#993) -- JAWT: Fixed `JAWT_MACOSX_USE_CALAYER` value. -- LLVM: Fixed `LLVMGetBufferStart` to return `ByteBuffer` instead of `String`. (#934) -- LLVM: Fixed `LookupIntrinsicID` to return `unsigned` instead of `void`. (#950) -- Nuklear: Fixed auto-sizing of `nk_stroke_polyline`, `nk_stroke_polygon`, `nk_fill_polygon` buffers. (#978) -- tinyfd: The `aDefaultPath` parameter of `tinyfd_selectFolderDialog` is now nullable. (#922) +- Core: Fixed support for `va_list` parameters. #### Breaking Changes -- Linux: ARM/PowerPC/RISC-V shared libraries now require GLIBC version 2.35 (up from 2.27) -- macOS: LWJGL now requires macOS 10.11/El Capitan or later (up from 10.9/Mavericks) -- meshoptimizer: Fixed autosizing issues. (#981) - * For consistency across the API, auto-sizing of some parameters was removed and the corresponding count parameters were made explicit. - * Auto-sizing is now always based on input parameters, the destination buffers are only checked for enough capacity. -- stb: `stb_image_resize2.h` replaced `stb_image_resize.h` with a new API. \ No newline at end of file +- Core: Replaced thread-local storage of `errno/GetLastError()` with virtual output parameters. (#1003) + * The `LibCErrno.getErrno()` and `WinBase.getLastError()` methods have been removed. + * System calls in `org.lwjgl.system.linux.*`, `org.lwjgl.system.windows.*` and `org.lwjgl.opengl.WGL` now take an optional output parameter for the error code. + * This approach is similar to `Linker.Option.CaptureCallState` in Project Panama's FFM API. +- Core: Dropped support for non-LTS JDK versions earlier than the latest LTS version. + * Supported JDK versions: 8, 11, 17, 21+ + * The `module-info` class and the first batch of multi-release overrides now live under `META-INF/versions/11` instead of `META-INF/versions/9`. \ No newline at end of file