From jfumero at openjdk.org Mon Nov 3 13:10:36 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 3 Nov 2025 13:10:36 GMT Subject: [code-reflection] RFR: Deprecated APIs for accessing GPU global thread information removed. Message-ID: <9PMkgGwDH2PQdioPVJmkS5RyLXFEg5xVG5MM0FOpois=.7b73cca5-3282-4b26-a97f-5a27a8f7067a@github.com> This PR refactors the `KernelContext` to remove the old accessor `kernelContext.x` and `kernelContext.maxX` to a `gix` for thread builtins and `gsx` (as in global size or x) for specifying the total number of threads. ------------- Commit messages: - minor change - [hat] Native CUDA thread dispatch fixed - [hat] OpenCL native dispatch refined - [hat][wip] towards thread-id unification Changes: https://git.openjdk.org/babylon/pull/656/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=656&range=00 Stats: 290 lines in 38 files changed: 26 ins; 65 del; 199 mod Patch: https://git.openjdk.org/babylon/pull/656.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/656/head:pull/656 PR: https://git.openjdk.org/babylon/pull/656 From jfumero at openjdk.org Mon Nov 3 13:31:48 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 3 Nov 2025 13:31:48 GMT Subject: [code-reflection] Integrated: Deprecated APIs for accessing GPU global thread information removed. In-Reply-To: <9PMkgGwDH2PQdioPVJmkS5RyLXFEg5xVG5MM0FOpois=.7b73cca5-3282-4b26-a97f-5a27a8f7067a@github.com> References: <9PMkgGwDH2PQdioPVJmkS5RyLXFEg5xVG5MM0FOpois=.7b73cca5-3282-4b26-a97f-5a27a8f7067a@github.com> Message-ID: On Mon, 3 Nov 2025 12:46:16 GMT, Juan Fumero wrote: > This PR refactors the `KernelContext` to remove the old accessor `kernelContext.x` and `kernelContext.maxX` to a `gix` for thread builtins and `gsx` (as in global size or x) for specifying the total number of threads. This pull request has now been integrated. Changeset: 29f14199 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/29f14199d5c1840a4f14cf36da289f3148db2d2e Stats: 290 lines in 38 files changed: 26 ins; 65 del; 199 mod Deprecated APIs for accessing GPU global thread information removed. ------------- PR: https://git.openjdk.org/babylon/pull/656 From jfumero at openjdk.org Mon Nov 3 13:32:59 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 3 Nov 2025 13:32:59 GMT Subject: git: openjdk/babylon: code-reflection: Deprecated APIs for accessing GPU global thread information removed. Message-ID: <807fa4d1-3071-47c4-b423-491c6ea5fd6a@openjdk.org> Changeset: 29f14199 Branch: code-reflection Author: Juan Fumero Date: 2025-11-03 13:28:42 +0000 URL: https://git.openjdk.org/babylon/commit/29f14199d5c1840a4f14cf36da289f3148db2d2e Deprecated APIs for accessing GPU global thread information removed. ! hat/backends/ffi/cuda/src/main/native/cpp/cuda_backend_queue.cpp ! hat/backends/ffi/mock/src/main/native/cpp/mock_backend.cpp ! hat/backends/ffi/opencl/src/main/native/cpp/opencl_backend_queue.cpp ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java ! hat/backends/ffi/shared/src/main/native/cpp/shared.cpp ! hat/backends/ffi/shared/src/main/native/include/shared.h ! hat/backends/java/seq/src/main/java/hat/backend/java/JavaSequentialBackend.java ! hat/backends/jextracted/shared/src/main/java/hat/backend/jextracted/C99JExtractedBackend.java ! hat/core/src/main/java/hat/KernelContext.java ! hat/core/src/main/java/hat/backend/BackendAdaptor.java ! hat/core/src/main/java/hat/backend/DebugBackend.java ! hat/core/src/main/java/hat/backend/java/WorkStealer.java ! hat/core/src/main/java/hat/buffer/KernelBufferContext.java ! hat/examples/blackscholes/src/main/java/blackscholes/Main.java ! hat/examples/experiments/src/main/java/experiments/ForTests.java ! hat/examples/experiments/src/main/java/experiments/Mesh.java ! hat/examples/experiments/src/main/java/experiments/MinBufferTest.java ! hat/examples/experiments/src/main/java/experiments/QuotedArrayArg.java ! hat/examples/experiments/src/main/java/experiments/QuotedConstantArgs.java ! hat/examples/experiments/src/main/java/experiments/spirv/GetBackend.java ! hat/examples/experiments/src/main/java/experiments/spirv/MatrixMultiply.java ! hat/examples/heal/src/main/java/heal/Compute.java ! hat/examples/life/src/main/java/life/Main.java ! hat/examples/mandel/src/main/java/mandel/Main.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java ! hat/examples/squares/src/main/java/squares/Main.java ! hat/examples/violajones/src/main/java/violajones/ViolaJonesCoreCompute.java ! hat/examples/violajones/src/main/java/violajones/attic/ViolaJones.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tools/src/main/java/hat/tools/text/TestJavaHATCodeBuilder.java ! hat/tools/src/main/java/hat/tools/textmodel/ui/TestFuncOpViewer.java From asotona at openjdk.org Mon Nov 3 20:08:42 2025 From: asotona at openjdk.org (Adam Sotona) Date: Mon, 3 Nov 2025 20:08:42 GMT Subject: [code-reflection] RFR: New model store implementation Message-ID: This PR adds an alternative code model storage implementation. With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime. The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`. Please review. Thanks, Adam ------------- Commit messages: - added javadoc - switched default CodeModelStorageOption back to CODE_BUILDER - added javadoc - caching vs. non-caching callsite construction - synth method body refactored to use indy call - reducing API surface - reducing API surface - annotations refactored to the synthetic methods - class file footprint optimizations - CodeModelSymbols & OpParser work in progress - ... and 5 more: https://git.openjdk.org/babylon/compare/b6b09e85...b2be1ee3 Changes: https://git.openjdk.org/babylon/pull/654/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=00 Stats: 839 lines in 6 files changed: 744 ins; 84 del; 11 mod Patch: https://git.openjdk.org/babylon/pull/654.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/654/head:pull/654 PR: https://git.openjdk.org/babylon/pull/654 From asotona at openjdk.org Mon Nov 3 20:24:11 2025 From: asotona at openjdk.org (Adam Sotona) Date: Mon, 3 Nov 2025 20:24:11 GMT Subject: [code-reflection] RFR: New model store implementation [v2] In-Reply-To: References: Message-ID: > This PR adds an alternative code model storage implementation. > > With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime. > > The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`. > > Please review. > > Thanks, > Adam Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision: - Merge branch 'code-reflection' into new-model-store - added javadoc - switched default CodeModelStorageOption back to CODE_BUILDER - added javadoc - caching vs. non-caching callsite construction - synth method body refactored to use indy call - reducing API surface - reducing API surface - annotations refactored to the synthetic methods - class file footprint optimizations - ... and 6 more: https://git.openjdk.org/babylon/compare/dc5f36d8...8ab47cd0 ------------- Changes: - all: https://git.openjdk.org/babylon/pull/654/files - new: https://git.openjdk.org/babylon/pull/654/files/b2be1ee3..8ab47cd0 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=00-01 Stats: 437927 lines in 6687 files changed: 292416 ins; 100588 del; 44923 mod Patch: https://git.openjdk.org/babylon/pull/654.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/654/head:pull/654 PR: https://git.openjdk.org/babylon/pull/654 From gfrost at openjdk.org Tue Nov 4 11:15:50 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 11:15:50 GMT Subject: git: openjdk/babylon: code-reflection: Hat fix vj parsing Message-ID: Changeset: 58ae25b9 Branch: code-reflection Author: Gary Frost Date: 2025-11-04 11:14:00 +0000 URL: https://git.openjdk.org/babylon/commit/58ae25b94e3cbfeadc96a2d5036ac5d4a19ff970 Hat fix vj parsing ! hat/examples/view/src/main/java/view/EliteMeshReader.java ! hat/examples/view/src/main/java/view/F32.java + hat/examples/view/src/main/java/view/Graphics2DRenderer.java ! hat/examples/view/src/main/java/view/Main.java - hat/examples/view/src/main/java/view/ModelHighWaterMark.java - hat/examples/view/src/main/java/view/Rasterizer.java + hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/Renderer.java - hat/examples/view/src/main/java/view/View.java ! hat/examples/view/src/main/java/view/ViewFrame.java - hat/examples/view/src/main/java/view/ViewFrameNew.java - hat/examples/view/src/main/java/view/ViewFrameOld.java - hat/examples/view/src/main/java/view/ZPos.java - hat/examples/view/src/main/java/view/f32/F32Line3D.java ! hat/examples/view/src/main/java/view/f32/F32Matrix4x4.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java ! hat/examples/view/src/main/java/view/f32/F32Triangle2D.java ! hat/examples/view/src/main/java/view/f32/F32Triangle3D.java ! hat/examples/view/src/main/java/view/f32/F32Vec2.java ! hat/examples/view/src/main/java/view/f32/F32Vec3.java ! hat/examples/view/src/main/java/view/f32/FloatPool.java - hat/examples/view/src/main/java/view/f32/IndexPool.java + hat/examples/view/src/main/java/view/f32/ModelHighWaterMark.java ! hat/examples/view/src/main/java/view/f32/Pool.java + hat/examples/view/src/main/java/view/f32/ZPos.java ! hat/examples/violajones/src/main/java/violajones/Main.java ! hat/examples/violajones/src/main/java/violajones/XMLHaarCascadeModel.java + hat/examples/violajones/src/main/resources/cascades/haarcascade_smile.xml From gfrost at openjdk.org Tue Nov 4 11:19:52 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 11:19:52 GMT Subject: [code-reflection] Integrated: Hat fix vj parsing Message-ID: Fixes to example-violajones. Bug was reported that XML parser failed if cascade did not have size element, but instead had explicit width and height. Also added the ability to select the image and cascade via properties. java @hat/run ffi-opencl -Dimage=highett -Dcascade=haarcascade_frontalface_default violajones ------------- Commit messages: - Fix cascade parsing, and allow image/cascade to be selected via properties - Converging on new float4x4 - Converging on new float4x4 - Zpos using floats - Triangle2d using floats - collapse new/old elite mesh reader - collapse new/old elite mesh reader - collapse new/old elite mesh reader - collapse new/old elite mesh reader - collapse new/old elite mesh reader - ... and 5 more: https://git.openjdk.org/babylon/compare/3db08a3e...39eb2f05 Changes: https://git.openjdk.org/babylon/pull/658/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=658&range=00 Stats: 10710 lines in 28 files changed: 9434 ins; 897 del; 379 mod Patch: https://git.openjdk.org/babylon/pull/658.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/658/head:pull/658 PR: https://git.openjdk.org/babylon/pull/658 From gfrost at openjdk.org Tue Nov 4 11:19:54 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 11:19:54 GMT Subject: [code-reflection] Integrated: Hat fix vj parsing In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 11:09:52 GMT, Gary Frost wrote: > Fixes to example-violajones. Bug was reported that XML parser failed if cascade did not have size element, but instead had explicit width and height. > > Also added the ability to select the image and cascade via properties. > > > java @hat/run ffi-opencl -Dimage=highett -Dcascade=haarcascade_frontalface_default violajones This pull request has now been integrated. Changeset: 58ae25b9 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/58ae25b94e3cbfeadc96a2d5036ac5d4a19ff970 Stats: 10710 lines in 28 files changed: 9434 ins; 897 del; 379 mod Hat fix vj parsing ------------- PR: https://git.openjdk.org/babylon/pull/658 From gfrost at openjdk.org Tue Nov 4 13:39:20 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 13:39:20 GMT Subject: git: openjdk/babylon: code-reflection: allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties Message-ID: <9bff244e-dfa3-4be0-b01c-f3aac736a124@openjdk.org> Changeset: fc0db21d Branch: code-reflection Author: Gary Frost Date: 2025-11-04 13:36:15 +0000 URL: https://git.openjdk.org/babylon/commit/fc0db21d3e33aa2f4433c6ea78b7c5f0f5976ed1 allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties ! hat/examples/violajones/src/main/java/violajones/ifaces/ScaleTable.java From gfrost at openjdk.org Tue Nov 4 13:41:48 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 13:41:48 GMT Subject: [code-reflection] Integrated: allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties Message-ID: Allow user to select cascade scale constraints via properties java @hat/run ffi-opencl -Dconstraint.scale.start=1 -Dconstraint.scale.multiplier=2 -Dconstraint.inc=.06 violajones ------------- Commit messages: - allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties Changes: https://git.openjdk.org/babylon/pull/659/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=659&range=00 Stats: 8 lines in 1 file changed: 2 ins; 0 del; 6 mod Patch: https://git.openjdk.org/babylon/pull/659.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/659/head:pull/659 PR: https://git.openjdk.org/babylon/pull/659 From gfrost at openjdk.org Tue Nov 4 13:41:50 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 13:41:50 GMT Subject: [code-reflection] Integrated: allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 13:32:15 GMT, Gary Frost wrote: > Allow user to select cascade scale constraints via properties > > > java @hat/run ffi-opencl -Dconstraint.scale.start=1 -Dconstraint.scale.multiplier=2 -Dconstraint.inc=.06 violajones This pull request has now been integrated. Changeset: fc0db21d Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/fc0db21d3e33aa2f4433c6ea78b7c5f0f5976ed1 Stats: 8 lines in 1 file changed: 2 ins; 0 del; 6 mod allow -Dconstraint.scale.[start|stop] and -Dconstraint.inc properties ------------- PR: https://git.openjdk.org/babylon/pull/659 From asotona at openjdk.org Tue Nov 4 14:37:43 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 4 Nov 2025 14:37:43 GMT Subject: [code-reflection] RFR: New model store implementation [v3] In-Reply-To: References: Message-ID: > This PR adds an alternative code model storage implementation. > > With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime. > > The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`. > > Please review. > > Thanks, > Adam Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: storing TypeElement as tree ------------- Changes: - all: https://git.openjdk.org/babylon/pull/654/files - new: https://git.openjdk.org/babylon/pull/654/files/8ab47cd0..62ec88d9 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=01-02 Stats: 121 lines in 3 files changed: 87 ins; 5 del; 29 mod Patch: https://git.openjdk.org/babylon/pull/654.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/654/head:pull/654 PR: https://git.openjdk.org/babylon/pull/654 From jfumero at openjdk.org Tue Nov 4 14:40:22 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 4 Nov 2025 14:40:22 GMT Subject: [code-reflection] RFR: [hat][API] ComputeRange moved to NDRange Message-ID: This PR refactors the `NDRange` and the `ComputeRange`. NDRange removes the need for the accelerator object, and the internal kernelContext. Instead the `ComputeRange` has been moved to an `NDRange`. Thus, from this change, this is how we will dispatch kernels: NDRange ndRange = NDRange.of(new Global2D(globalSize, globalSize), new Local2D(BLOCK_SIZE, BLOCK_SIZE)); cc.dispatchKernel(ndRange, kc -> matrixMultiplyKernel2DLI(kc, matrixA, matrixB, matrixC, globalSize) ); We add also a set of factory methods to facilitate composing NDRanges when 1D is required : For instance: cc.dispatchKernel( NDRange.of(call.length()), kc -> blackScholesKernel(kc, call, put, S, X, T, r, v) ); ------------- Commit messages: - [hat] Using factory methods of to create NDRanges - [hat] Restore the NDRange - [hat][wip] NDRange completely removed - [hat][wip] NDRange removed - [hat] NDRange setup simplified - [hat] NDRange.of to specify 1D programs Changes: https://git.openjdk.org/babylon/pull/657/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=657&range=00 Stats: 943 lines in 64 files changed: 256 ins; 387 del; 300 mod Patch: https://git.openjdk.org/babylon/pull/657.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/657/head:pull/657 PR: https://git.openjdk.org/babylon/pull/657 From jfumero at openjdk.org Tue Nov 4 14:43:04 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 4 Nov 2025 14:43:04 GMT Subject: [code-reflection] RFR: [hat][API] ComputeRange moved to NDRange In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 10:28:32 GMT, Juan Fumero wrote: > This PR refactors the `NDRange` and the `ComputeRange`. > > NDRange removes the need for the accelerator object, and the internal kernelContext. > > Instead the `ComputeRange` has been moved to an `NDRange`. Thus, from this change, this is how we will dispatch kernels: > > > NDRange ndRange = NDRange.of(new Global2D(globalSize, globalSize), new Local2D(BLOCK_SIZE, BLOCK_SIZE)); > cc.dispatchKernel(ndRange, > kc -> matrixMultiplyKernel2DLI(kc, matrixA, matrixB, matrixC, globalSize) > ); > > > We add also a set of factory methods to facilitate composing NDRanges when 1D is required : > > For instance: > > > cc.dispatchKernel( NDRange.of(call.length()), > kc -> blackScholesKernel(kc, call, put, S, X, T, r, v) > ); To provide the (e.g., `Global1D.of(x)` we need code-reflection to support the `RECORD` type. So we can merge this one, and once the code-reflection integrates this change, we can refine this part in the HAT API. ------------- PR Comment: https://git.openjdk.org/babylon/pull/657#issuecomment-3486331466 From jfumero at openjdk.org Tue Nov 4 14:44:03 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 4 Nov 2025 14:44:03 GMT Subject: git: openjdk/babylon: code-reflection: [hat][API] ComputeRange moved to NDRange Message-ID: <47287b0c-12c9-4b2d-b08d-49ffa485a0c2@openjdk.org> Changeset: 5332a2e3 Branch: code-reflection Author: Juan Fumero Date: 2025-11-04 14:43:23 +0000 URL: https://git.openjdk.org/babylon/commit/5332a2e37c02e790c3023847e0191dba3616b22c [hat][API] ComputeRange moved to NDRange ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaBackend.java ! hat/backends/ffi/hip/src/main/java/hat/backend/HIPBackend.java ! hat/backends/ffi/mock/src/main/java/hat/backend/ffi/MockBackend.java ! hat/backends/ffi/opencl/src/main/java/hat/backend/ffi/OpenCLBackend.java ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java ! hat/backends/ffi/spirv/src/main/java/hat/backend/SpirvBackend.java ! hat/backends/ffi/spirv/src/main/java/intel/code/spirv/LevelZero.java ! hat/backends/java/mt/src/main/java/hat/backend/java/JavaMultiThreadedBackend.java ! hat/backends/java/seq/src/main/java/hat/backend/java/JavaSequentialBackend.java ! hat/backends/jextracted/opencl/src/main/java/hat/backend/jextracted/OpenCLBackend.java ! hat/backends/jextracted/shared/src/main/java/hat/backend/jextracted/C99JExtractedBackend.java ! hat/core/src/main/java/hat/Accelerator.java ! hat/core/src/main/java/hat/ComputeContext.java - hat/core/src/main/java/hat/ComputeRange.java = hat/core/src/main/java/hat/Global1D.java = hat/core/src/main/java/hat/Global2D.java + hat/core/src/main/java/hat/Global3D.java - hat/core/src/main/java/hat/GlobalMesh3D.java ! hat/core/src/main/java/hat/KernelContext.java = hat/core/src/main/java/hat/Local1D.java = hat/core/src/main/java/hat/Local2D.java + hat/core/src/main/java/hat/Local3D.java - hat/core/src/main/java/hat/LocalMesh3D.java ! hat/core/src/main/java/hat/NDRange.java = hat/core/src/main/java/hat/Range.java ! hat/core/src/main/java/hat/backend/Backend.java ! hat/core/src/main/java/hat/backend/BackendAdaptor.java ! hat/core/src/main/java/hat/backend/DebugBackend.java ! hat/core/src/main/java/hat/backend/java/WorkStealer.java ! hat/examples/blackscholes/src/main/java/blackscholes/Main.java ! hat/examples/experiments/src/main/java/experiments/ForTests.java ! hat/examples/experiments/src/main/java/experiments/LocalArray.java ! hat/examples/experiments/src/main/java/experiments/LocalIds.java ! hat/examples/experiments/src/main/java/experiments/Mesh.java ! hat/examples/experiments/src/main/java/experiments/MinBufferTest.java ! hat/examples/experiments/src/main/java/experiments/PrefixSum.java ! hat/examples/experiments/src/main/java/experiments/QuotedArrayArg.java ! hat/examples/experiments/src/main/java/experiments/QuotedConstantArgs.java ! hat/examples/experiments/src/main/java/experiments/Reduction.java ! hat/examples/experiments/src/main/java/experiments/spirv/GetBackend.java ! hat/examples/experiments/src/main/java/experiments/spirv/MatrixMultiply.java ! hat/examples/heal/src/main/java/heal/Compute.java ! hat/examples/life/src/main/java/life/Main.java ! hat/examples/mandel/src/main/java/mandel/Main.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java ! hat/examples/squares/src/main/java/squares/Main.java ! hat/examples/violajones/src/main/java/violajones/ViolaJonesCoreCompute.java ! hat/examples/violajones/src/main/java/violajones/attic/ViolaJones.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java ! hat/tools/src/main/java/hat/tools/text/TestJavaHATCodeBuilder.java ! hat/tools/src/main/java/hat/tools/textmodel/ui/TestFuncOpViewer.java From jfumero at openjdk.org Tue Nov 4 14:46:28 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 4 Nov 2025 14:46:28 GMT Subject: [code-reflection] Integrated: [hat][API] ComputeRange moved to NDRange In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 10:28:32 GMT, Juan Fumero wrote: > This PR refactors the `NDRange` and the `ComputeRange`. > > NDRange removes the need for the accelerator object, and the internal kernelContext. > > Instead the `ComputeRange` has been moved to an `NDRange`. Thus, from this change, this is how we will dispatch kernels: > > > NDRange ndRange = NDRange.of(new Global2D(globalSize, globalSize), new Local2D(BLOCK_SIZE, BLOCK_SIZE)); > cc.dispatchKernel(ndRange, > kc -> matrixMultiplyKernel2DLI(kc, matrixA, matrixB, matrixC, globalSize) > ); > > > We add also a set of factory methods to facilitate composing NDRanges when 1D is required : > > For instance: > > > cc.dispatchKernel( NDRange.of(call.length()), > kc -> blackScholesKernel(kc, call, put, S, X, T, r, v) > ); This pull request has now been integrated. Changeset: 5332a2e3 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/5332a2e37c02e790c3023847e0191dba3616b22c Stats: 943 lines in 64 files changed: 256 ins; 387 del; 300 mod [hat][API] ComputeRange moved to NDRange ------------- PR: https://git.openjdk.org/babylon/pull/657 From asotona at openjdk.org Tue Nov 4 15:09:24 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 4 Nov 2025 15:09:24 GMT Subject: [code-reflection] RFR: New model store implementation [v4] In-Reply-To: References: Message-ID: <5QydHKgDkAWZD-IKpR0oNKo4vYU08gIP7Uk5_MKs6og=.ea404120-c141-47a4-8eca-e7e8b873a366@github.com> > This PR adds an alternative code model storage implementation. > > With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime. > > The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`. > > Please review. > > Thanks, > Adam Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: types indexing fix ------------- Changes: - all: https://git.openjdk.org/babylon/pull/654/files - new: https://git.openjdk.org/babylon/pull/654/files/62ec88d9..cc3bac7e Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=03 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=654&range=02-03 Stats: 6 lines in 1 file changed: 2 ins; 0 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/654.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/654/head:pull/654 PR: https://git.openjdk.org/babylon/pull/654 From gfrost at openjdk.org Tue Nov 4 16:22:22 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 16:22:22 GMT Subject: [code-reflection] Integrated: Retired some config bits and added some new ones. Message-ID: We were getting close to our 32 bit image for ffi config bits. So I rationalized some, retired some and clarified the use of SHOW_DEVICE_INFO (bit formerly known as INFO) INFO and WARN now reserved for log levels in FFI backends I synced config.h and all tests pass. I hope the cuda code changes work out. ------------- Commit messages: - cleaned up some config bits Changes: https://git.openjdk.org/babylon/pull/660/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=660&range=00 Stats: 104 lines in 24 files changed: 27 ins; 10 del; 67 mod Patch: https://git.openjdk.org/babylon/pull/660.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/660/head:pull/660 PR: https://git.openjdk.org/babylon/pull/660 From gfrost at openjdk.org Tue Nov 4 16:22:23 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 16:22:23 GMT Subject: [code-reflection] Integrated: Retired some config bits and added some new ones. In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 16:17:05 GMT, Gary Frost wrote: > We were getting close to our 32 bit image for ffi config bits. > > So I rationalized some, retired some and clarified the use of SHOW_DEVICE_INFO (bit formerly known as INFO) > > INFO and WARN now reserved for log levels in FFI backends > > I synced config.h and all tests pass. I hope the cuda code changes work out. This pull request has now been integrated. Changeset: 5b5db174 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/5b5db174360434dab09ef7267359b5bac71962f4 Stats: 104 lines in 24 files changed: 27 ins; 10 del; 67 mod Retired some config bits and added some new ones. ------------- PR: https://git.openjdk.org/babylon/pull/660 From gfrost at openjdk.org Tue Nov 4 16:22:58 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 4 Nov 2025 16:22:58 GMT Subject: git: openjdk/babylon: code-reflection: Retired some config bits and added some new ones. Message-ID: <3aae9734-9a4c-4e70-910a-e41abd2c622e@openjdk.org> Changeset: 5b5db174 Branch: code-reflection Author: Gary Frost Date: 2025-11-04 16:19:17 +0000 URL: https://git.openjdk.org/babylon/commit/5b5db174360434dab09ef7267359b5bac71962f4 Retired some config bits and added some new ones. ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaBackend.java ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaDeviceInfo.java ! hat/backends/ffi/cuda/src/main/native/cpp/cuda_backend.cpp ! hat/backends/ffi/cuda/src/main/native/cpp/info.cpp ! hat/backends/ffi/cuda/src/main/native/include/cuda_backend.h ! hat/backends/ffi/hip/src/main/native/cpp/hip_backend.cpp ! hat/backends/ffi/hip/src/main/native/cpp/info.cpp ! hat/backends/ffi/hip/src/main/native/include/hip_backend.h ! hat/backends/ffi/mock/src/main/java/hat/backend/ffi/MockDeviceInfo.java ! hat/backends/ffi/mock/src/main/native/cpp/mock_backend.cpp ! hat/backends/ffi/opencl/src/main/java/hat/backend/ffi/OpenCLDeviceInfo.java ! hat/backends/ffi/opencl/src/main/native/cpp/info.cpp ! hat/backends/ffi/opencl/src/main/native/cpp/opencl_backend_info.cpp ! hat/backends/ffi/opencl/src/main/native/include/opencl_backend.h ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/FFIBackend.java ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/FFIBackendDriver.java ! hat/backends/ffi/shared/src/main/native/cpp/shared.cpp ! hat/backends/ffi/shared/src/main/native/include/config.h ! hat/backends/ffi/shared/src/main/native/include/shared.h ! hat/backends/ffi/spirv/src/main/native/cpp/spirv_backend.cpp ! hat/core/src/main/java/hat/Config.java ! hat/core/src/main/java/hat/FFIConfigCreator.java ! hat/examples/violajones/src/main/java/violajones/Main.java From psandoz at openjdk.org Tue Nov 4 19:12:34 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 4 Nov 2025 19:12:34 GMT Subject: [code-reflection] RFR: Fix modeling of expressions with record symbols Message-ID: Fix modeling of expressions with record symbols. ------------- Commit messages: - Fix modeling of expressions with record symbols. Changes: https://git.openjdk.org/babylon/pull/661/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=661&range=00 Stats: 68 lines in 2 files changed: 66 ins; 0 del; 2 mod Patch: https://git.openjdk.org/babylon/pull/661.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/661/head:pull/661 PR: https://git.openjdk.org/babylon/pull/661 From psandoz at openjdk.org Tue Nov 4 19:38:39 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 4 Nov 2025 19:38:39 GMT Subject: git: openjdk/babylon: code-reflection: Fix modeling of expressions with record symbols Message-ID: <15550ac1-6ab4-4bec-9fb1-27cf5b72cb46@openjdk.org> Changeset: f4c7e327 Branch: code-reflection Author: Paul Sandoz Date: 2025-11-04 19:36:48 +0000 URL: https://git.openjdk.org/babylon/commit/f4c7e327c32ed938256c644891552ce4964feb94 Fix modeling of expressions with record symbols ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java + test/langtools/tools/javac/reflect/RecordAccessTest.java From psandoz at openjdk.org Tue Nov 4 19:39:56 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 4 Nov 2025 19:39:56 GMT Subject: [code-reflection] Integrated: Fix modeling of expressions with record symbols In-Reply-To: References: Message-ID: On Tue, 4 Nov 2025 19:02:11 GMT, Paul Sandoz wrote: > Fix modeling of expressions with record symbols. This pull request has now been integrated. Changeset: f4c7e327 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/f4c7e327c32ed938256c644891552ce4964feb94 Stats: 68 lines in 2 files changed: 66 ins; 0 del; 2 mod Fix modeling of expressions with record symbols ------------- PR: https://git.openjdk.org/babylon/pull/661 From jfumero at openjdk.org Wed Nov 5 08:53:27 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 08:53:27 GMT Subject: [code-reflection] RFR: [hat] NDRange API using marking interfaces Message-ID: This PR refines the NDRange interface with marking interfaces for 1D, 2D and 3D ranges. The end-user API remains the same, except that the records and classes have been moved to the `NDRange` interface. ------------- Commit messages: - [hat] NDRange using marking interfaces Changes: https://git.openjdk.org/babylon/pull/662/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=662&range=00 Stats: 676 lines in 27 files changed: 90 ins; 448 del; 138 mod Patch: https://git.openjdk.org/babylon/pull/662.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/662/head:pull/662 PR: https://git.openjdk.org/babylon/pull/662 From jfumero at openjdk.org Wed Nov 5 12:18:31 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 12:18:31 GMT Subject: [code-reflection] RFR: [hat] Extensions of F16 (API and codegen) Message-ID: - New dialect nodes to do `OpConvert` from `float` to `half` and `half` to `float`: note that conversions differ between CUDA and OpenCL - Add Fluent API for F16 operations (similar to `Float4`) - Add mixed float-precision operations (`F16` -> `float`) - Refactor of `F16` interface to a new file - Fix parenthesis in the codegen - Initialization of `F16` values using the `float2F16` builtin and `Float16Tofloat` also allowed on the GPU ------------- Commit messages: - [hat] minor change - [hat] F16 with mixed float types supported for CUDA backend - [hat] F16 ops with mixed f32 operations - [hat][f16] Concatenation of F16 operations supported - Merge branch 'code-reflection' into hat/fp16/extension - [hat][f16] WIP for local memory - minor recformating - patch for matmul in fp16 - [hat] refine F16Phase - [hat] matmul express with F16: wip - ... and 6 more: https://git.openjdk.org/babylon/compare/f4c7e327...a6673799 Changes: https://git.openjdk.org/babylon/pull/663/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=663&range=00 Stats: 1158 lines in 21 files changed: 1006 ins; 73 del; 79 mod Patch: https://git.openjdk.org/babylon/pull/663.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/663/head:pull/663 PR: https://git.openjdk.org/babylon/pull/663 From jfumero at openjdk.org Wed Nov 5 13:09:29 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 13:09:29 GMT Subject: [code-reflection] RFR: [hat] NDRange API using marking interfaces [v2] In-Reply-To: References: Message-ID: > This PR refines the NDRange interface with marking interfaces for 1D, 2D and 3D ranges. > > The end-user API remains the same, except that the records and classes have been moved to the `NDRange` interface. Juan Fumero has updated the pull request incrementally with one additional commit since the last revision: [hat] Avoid NULL in LocalIds for non-specified thread-blocks ------------- Changes: - all: https://git.openjdk.org/babylon/pull/662/files - new: https://git.openjdk.org/babylon/pull/662/files/b43913e4..36cadd37 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=662&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=662&range=00-01 Stats: 17 lines in 3 files changed: 10 ins; 1 del; 6 mod Patch: https://git.openjdk.org/babylon/pull/662.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/662/head:pull/662 PR: https://git.openjdk.org/babylon/pull/662 From jfumero at openjdk.org Wed Nov 5 13:24:47 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 13:24:47 GMT Subject: [code-reflection] Integrated: [hat] NDRange API using marking interfaces In-Reply-To: References: Message-ID: On Wed, 5 Nov 2025 08:46:49 GMT, Juan Fumero wrote: > This PR refines the NDRange interface with marking interfaces for 1D, 2D and 3D ranges. > > The end-user API remains the same, except that the records and classes have been moved to the `NDRange` interface. This pull request has now been integrated. Changeset: 6be4588e Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/6be4588edb846b777a9dff41fccfc243f0d00a03 Stats: 682 lines in 27 files changed: 96 ins; 445 del; 141 mod [hat] NDRange API using marking interfaces ------------- PR: https://git.openjdk.org/babylon/pull/662 From jfumero at openjdk.org Wed Nov 5 13:26:26 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 13:26:26 GMT Subject: git: openjdk/babylon: code-reflection: [hat] NDRange API using marking interfaces Message-ID: <8e23801b-18c6-4652-9a8c-833ccc09a4df@openjdk.org> Changeset: 6be4588e Branch: code-reflection Author: Juan Fumero Date: 2025-11-05 13:22:20 +0000 URL: https://git.openjdk.org/babylon/commit/6be4588edb846b777a9dff41fccfc243f0d00a03 [hat] NDRange API using marking interfaces ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java - hat/core/src/main/java/hat/Global1D.java - hat/core/src/main/java/hat/Global2D.java - hat/core/src/main/java/hat/Global3D.java ! hat/core/src/main/java/hat/KernelContext.java - hat/core/src/main/java/hat/Local1D.java - hat/core/src/main/java/hat/Local2D.java - hat/core/src/main/java/hat/Local3D.java ! hat/core/src/main/java/hat/NDRange.java - hat/core/src/main/java/hat/Range.java ! hat/examples/experiments/src/main/java/experiments/LocalArray.java ! hat/examples/experiments/src/main/java/experiments/LocalIds.java ! hat/examples/experiments/src/main/java/experiments/Reduction.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/squares/src/main/java/squares/Main.java ! hat/examples/violajones/src/main/java/violajones/attic/ViolaJones.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java From jfumero at openjdk.org Wed Nov 5 14:29:30 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 5 Nov 2025 14:29:30 GMT Subject: [code-reflection] RFR: [hat] Extensions of F16 (API and codegen) [v2] In-Reply-To: References: Message-ID: > - New dialect nodes to do `OpConvert` from `float` to `half` and `half` to `float`: note that conversions differ between CUDA and OpenCL > - Add Fluent API for F16 operations (similar to `Float4`) > - Add mixed float-precision operations (`F16` -> `float`) > - Refactor of `F16` interface to a new file > - Fix parenthesis in the codegen > - Initialization of `F16` values using the `float2F16` builtin and `Float16Tofloat` also allowed on the GPU Juan Fumero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 17 commits: - Merge branch 'code-reflection' into hat/fp16/extension - [hat] minor change - [hat] F16 with mixed float types supported for CUDA backend - [hat] F16 ops with mixed f32 operations - [hat][f16] Concatenation of F16 operations supported - Merge branch 'code-reflection' into hat/fp16/extension - [hat][f16] WIP for local memory - minor recformating - patch for matmul in fp16 - [hat] refine F16Phase - ... and 7 more: https://git.openjdk.org/babylon/compare/6be4588e...84e6de6e ------------- Changes: https://git.openjdk.org/babylon/pull/663/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=663&range=01 Stats: 1155 lines in 21 files changed: 1004 ins; 72 del; 79 mod Patch: https://git.openjdk.org/babylon/pull/663.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/663/head:pull/663 PR: https://git.openjdk.org/babylon/pull/663 From gfrost at openjdk.org Wed Nov 5 17:49:21 2025 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 5 Nov 2025 17:49:21 GMT Subject: git: openjdk/babylon: code-reflection: Hat view example even more tinkering Message-ID: <092dc11a-5510-4daa-9d95-cef04a00e8e7@openjdk.org> Changeset: f54db4fd Branch: code-reflection Author: Gary Frost Date: 2025-11-05 17:48:09 +0000 URL: https://git.openjdk.org/babylon/commit/f54db4fd57cfb2e7147c71d3b3d317938e65aa8f Hat view example even more tinkering ! hat/examples/view/src/main/java/view/EliteMeshReader.java - hat/examples/view/src/main/java/view/F32.java ! hat/examples/view/src/main/java/view/Graphics2DRenderer.java ! hat/examples/view/src/main/java/view/Main.java ! hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/Renderer.java ! hat/examples/view/src/main/java/view/ViewFrame.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java ! hat/examples/view/src/main/java/view/f32/F32Triangle3D.java ! hat/examples/view/src/main/java/view/f32/F32Vec3.java ! hat/examples/view/src/main/java/view/f32/ZPos.java From gfrost at openjdk.org Wed Nov 5 17:51:08 2025 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 5 Nov 2025 17:51:08 GMT Subject: [code-reflection] Integrated: Hat view example even more tinkering Message-ID: You can safely ignore this. I hit a merge issue and had to slowly back out and merge some code. Sadly lots of commits which I hope get squashed ------------- Commit messages: - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - towards common pools - ... and 5 more: https://git.openjdk.org/babylon/compare/5b5db174...2f31a90c Changes: https://git.openjdk.org/babylon/pull/665/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=665&range=00 Stats: 1907 lines in 11 files changed: 121 ins; 1496 del; 290 mod Patch: https://git.openjdk.org/babylon/pull/665.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/665/head:pull/665 PR: https://git.openjdk.org/babylon/pull/665 From gfrost at openjdk.org Wed Nov 5 17:51:09 2025 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 5 Nov 2025 17:51:09 GMT Subject: [code-reflection] Integrated: Hat view example even more tinkering In-Reply-To: References: Message-ID: On Wed, 5 Nov 2025 17:46:07 GMT, Gary Frost wrote: > You can safely ignore this. > > I hit a merge issue and had to slowly back out and merge some code. Sadly lots of commits which I hope get squashed This pull request has now been integrated. Changeset: f54db4fd Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/f54db4fd57cfb2e7147c71d3b3d317938e65aa8f Stats: 1907 lines in 11 files changed: 121 ins; 1496 del; 290 mod Hat view example even more tinkering ------------- PR: https://git.openjdk.org/babylon/pull/665 From duke at openjdk.org Wed Nov 5 18:14:57 2025 From: duke at openjdk.org (Ana Maria Mihalceanu) Date: Wed, 5 Nov 2025 18:14:57 GMT Subject: [code-reflection] RFR: Improve runtime invocation Message-ID: This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: * Take arena invocation out of the loop, together with provider configuration. * Separate session preparation from the actual inference and remove progressbar. ------------- Commit messages: - Fix empty spaces - Update full name - Improve runtime invocation (#2) Changes: https://git.openjdk.org/babylon/pull/664/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=664&range=00 Stats: 82 lines in 2 files changed: 29 ins; 18 del; 35 mod Patch: https://git.openjdk.org/babylon/pull/664.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/664/head:pull/664 PR: https://git.openjdk.org/babylon/pull/664 From duke at openjdk.org Thu Nov 6 06:58:10 2025 From: duke at openjdk.org (Ana Maria Mihalceanu) Date: Thu, 6 Nov 2025 06:58:10 GMT Subject: [code-reflection] RFR: Improve runtime invocation [v2] In-Reply-To: References: Message-ID: > This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: > * Take arena invocation out of the loop, together with provider configuration. > * Separate session preparation from the actual inference and remove progressbar. Ana Maria Mihalceanu has updated the pull request incrementally with one additional commit since the last revision: Update full name ------------- Changes: - all: https://git.openjdk.org/babylon/pull/664/files - new: https://git.openjdk.org/babylon/pull/664/files/701393b5..23f0bb9c Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=664&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=664&range=00-01 Stats: 0 lines in 0 files changed: 0 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/664.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/664/head:pull/664 PR: https://git.openjdk.org/babylon/pull/664 From jfumero at openjdk.org Thu Nov 6 11:29:23 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 6 Nov 2025 11:29:23 GMT Subject: [code-reflection] RFR: [hat] Float2 supported Message-ID: This PR adds `float2` in the API to generate 2 float instructions for OpenCL and CUDA backends. How to test? HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestFloat2 HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-cuda hat.test.TestFloat2 ------------- Commit messages: - [hat] Add tests for float2 similar to float4 - [hat] Adding float2 work Changes: https://git.openjdk.org/babylon/pull/666/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=666&range=00 Stats: 840 lines in 9 files changed: 829 ins; 6 del; 5 mod Patch: https://git.openjdk.org/babylon/pull/666.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/666/head:pull/666 PR: https://git.openjdk.org/babylon/pull/666 From mcimadamore at openjdk.org Thu Nov 6 15:08:03 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 15:08:03 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas Message-ID: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: Quoted q = () -> {} Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: Runnable r = (Runnable & Quotable)() -> {} Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. ------------- Commit messages: - Fix JDK tests to use Quotable - Initial push Changes: https://git.openjdk.org/babylon/pull/667/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=00 Stats: 2055 lines in 36 files changed: 59 ins; 1892 del; 104 mod Patch: https://git.openjdk.org/babylon/pull/667.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/667/head:pull/667 PR: https://git.openjdk.org/babylon/pull/667 From mcimadamore at openjdk.org Thu Nov 6 15:29:20 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 15:29:20 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: > The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: > > > Quoted q = () -> {} > > > Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. > > This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Re-add accidentally deleted test ------------- Changes: - all: https://git.openjdk.org/babylon/pull/667/files - new: https://git.openjdk.org/babylon/pull/667/files/e81dd7f2..bd6ddc10 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=00-01 Stats: 204 lines in 1 file changed: 204 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/667.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/667/head:pull/667 PR: https://git.openjdk.org/babylon/pull/667 From psandoz at openjdk.org Thu Nov 6 15:51:39 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 15:51:39 GMT Subject: [code-reflection] RFR: Improve runtime invocation [v2] In-Reply-To: References: Message-ID: <48tLr3ApAcONWP3BngepZpmupi2IABcjFqRswrIszhU=.718b2500-da90-4abb-85fb-912b66e2673a@github.com> On Thu, 6 Nov 2025 06:58:10 GMT, Ana Maria Mihalceanu wrote: >> This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: >> * Take arena invocation out of the loop, together with provider configuration. >> * Separate session preparation from the actual inference and remove progressbar. > > Ana Maria Mihalceanu has updated the pull request incrementally with one additional commit since the last revision: > > Update full name This change looks fine, I think it's ok for you to `/integrate` changes like these without waiting for a review (if you were doing that), and one of us can quickly sponsor. Skara is reporting an issue with your name not matching for some reason. Do you know why? ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/664#pullrequestreview-3428966420 From duke at openjdk.org Thu Nov 6 16:42:00 2025 From: duke at openjdk.org (Ana Maria Mihalceanu) Date: Thu, 6 Nov 2025 16:42:00 GMT Subject: [code-reflection] RFR: Improve runtime invocation [v2] In-Reply-To: References: Message-ID: On Thu, 6 Nov 2025 06:58:10 GMT, Ana Maria Mihalceanu wrote: >> This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: >> * Take arena invocation out of the loop, together with provider configuration. >> * Separate session preparation from the actual inference and remove progressbar. > > Ana Maria Mihalceanu has updated the pull request incrementally with one additional commit since the last revision: > > Update full name I think I fixed the name part. I ran `git show -s --format='%ae HASH` and all show "Author: Ana-Maria Mihalceanu ". Thank you for review. ? ------------- PR Comment: https://git.openjdk.org/babylon/pull/664#issuecomment-3498251698 From duke at openjdk.org Thu Nov 6 16:42:00 2025 From: duke at openjdk.org (duke) Date: Thu, 6 Nov 2025 16:42:00 GMT Subject: [code-reflection] RFR: Improve runtime invocation [v2] In-Reply-To: References: Message-ID: On Thu, 6 Nov 2025 06:58:10 GMT, Ana Maria Mihalceanu wrote: >> This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: >> * Take arena invocation out of the loop, together with provider configuration. >> * Separate session preparation from the actual inference and remove progressbar. > > Ana Maria Mihalceanu has updated the pull request incrementally with one additional commit since the last revision: > > Update full name @ammbra Your change (at version 23f0bb9c08205b49e7819d19297c0eb1560ab73e) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/babylon/pull/664#issuecomment-3498259370 From psandoz at openjdk.org Thu Nov 6 17:14:14 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 17:14:14 GMT Subject: git: openjdk/babylon: code-reflection: Improve runtime invocation Message-ID: <455659d0-0c48-480f-bf8c-59adec9c1121@openjdk.org> Changeset: 5782567a Branch: code-reflection Author: Ana-Maria Mihalceanu Committer: Paul Sandoz Date: 2025-11-06 17:11:44 +0000 URL: https://git.openjdk.org/babylon/commit/5782567a4fb0a65fa3905a1e73b1aec5c3430a2b Improve runtime invocation Reviewed-by: psandoz ! cr-examples/onnx/src/test/java/oracle/code/onnx/fer/FERCoreMLDemo.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/fer/FERInference.java From duke at openjdk.org Thu Nov 6 17:14:17 2025 From: duke at openjdk.org (Ana Maria Mihalceanu) Date: Thu, 6 Nov 2025 17:14:17 GMT Subject: [code-reflection] Integrated: Improve runtime invocation In-Reply-To: References: Message-ID: On Wed, 5 Nov 2025 17:42:04 GMT, Ana Maria Mihalceanu wrote: > This PR, co-authored with @LizeRaes, enhances the way FER demo iterates over the input received: > * Take arena invocation out of the loop, together with provider configuration. > * Separate session preparation from the actual inference and remove progressbar. This pull request has now been integrated. Changeset: 5782567a Author: Ana-Maria Mihalceanu Committer: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/5782567a4fb0a65fa3905a1e73b1aec5c3430a2b Stats: 82 lines in 2 files changed: 29 ins; 18 del; 35 mod Improve runtime invocation Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/664 From psandoz at openjdk.org Thu Nov 6 18:04:32 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 18:04:32 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 15:29:20 GMT, Maurizio Cimadamore wrote: >> The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: >> >> >> Quoted q = () -> {} >> >> >> Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. >> >> This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Re-add accidentally deleted test Very good! Really simplifies things. The examples and HAT do not target lambda expressions to `Quoted`, so no updates required. To support targeting to `Quoted` we had to add `ClosureOp` and `ClosureCallOp`. We could also remove these too, and their use in the interpreter (the byte code generator never used them). test/jdk/java/lang/reflect/code/bytecode/TestQuoted.java line 49: > 47: @Test > 48: public void testQuoted() throws Throwable { > 49: Quotable q = (IntBinaryOperator & Quotable)(int i, int j) -> { We can delete this test, as there are others testing lambda expressions. ------------- PR Review: https://git.openjdk.org/babylon/pull/667#pullrequestreview-3429706209 PR Review Comment: https://git.openjdk.org/babylon/pull/667#discussion_r2500178383 From mcimadamore at openjdk.org Thu Nov 6 19:08:45 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 19:08:45 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: <3Moqtnib5iXVQBUcyhmO0B-WNpEzq36jn9pXw_YJ278=.f4b4faa5-7382-4113-af2a-e0c5e8f1989f@github.com> On Thu, 6 Nov 2025 18:02:09 GMT, Paul Sandoz wrote: > To support targeting to `Quoted` we had to add `ClosureOp` and `ClosureCallOp`. We could also remove these too, and their use in the interpreter (the byte code generator never used them). Is that ok to do in another PR? > test/jdk/java/lang/reflect/code/bytecode/TestQuoted.java line 49: > >> 47: @Test >> 48: public void testQuoted() throws Throwable { >> 49: Quotable q = (IntBinaryOperator & Quotable)(int i, int j) -> { > > We can delete this test, as there are others testing lambda expressions. Wait... do you mean deleting the full test? ------------- PR Comment: https://git.openjdk.org/babylon/pull/667#issuecomment-3498972588 PR Review Comment: https://git.openjdk.org/babylon/pull/667#discussion_r2500447854 From mcimadamore at openjdk.org Thu Nov 6 19:24:33 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 19:24:33 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 15:29:20 GMT, Maurizio Cimadamore wrote: >> The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: >> >> >> Quoted q = () -> {} >> >> >> Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. >> >> This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Re-add accidentally deleted test Now that I look at it more -- it seems TestClosureOps is also mostly a dup of TestLambdaOps? Should I delete that one too? ------------- PR Comment: https://git.openjdk.org/babylon/pull/667#issuecomment-3499027773 From mcimadamore at openjdk.org Thu Nov 6 19:24:34 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 19:24:34 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 19:20:20 GMT, Maurizio Cimadamore wrote: > Now that I look at it more -- it seems TestClosureOps is also mostly a dup of TestLambdaOps? Should I delete that one too? Uhm... maybe we can wait until we GC ClosureOp... ------------- PR Comment: https://git.openjdk.org/babylon/pull/667#issuecomment-3499031284 From psandoz at openjdk.org Thu Nov 6 19:30:40 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 19:30:40 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 19:21:28 GMT, Maurizio Cimadamore wrote: > > Now that I look at it more -- it seems TestClosureOps is also mostly a dup of TestLambdaOps? Should I delete that one too? > > Uhm... maybe we can wait until we GC ClosureOp... Yes, we can follow up in a separate PR. ------------- PR Comment: https://git.openjdk.org/babylon/pull/667#issuecomment-3499052603 From psandoz at openjdk.org Thu Nov 6 19:30:41 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 19:30:41 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: <3Moqtnib5iXVQBUcyhmO0B-WNpEzq36jn9pXw_YJ278=.f4b4faa5-7382-4113-af2a-e0c5e8f1989f@github.com> References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> <3Moqtnib5iXVQBUcyhmO0B-WNpEzq36jn9pXw_YJ278=.f4b4faa5-7382-4113-af2a-e0c5e8f1989f@github.com> Message-ID: On Thu, 6 Nov 2025 19:06:10 GMT, Maurizio Cimadamore wrote: >> test/jdk/java/lang/reflect/code/bytecode/TestQuoted.java line 49: >> >>> 47: @Test >>> 48: public void testQuoted() throws Throwable { >>> 49: Quotable q = (IntBinaryOperator & Quotable)(int i, int j) -> { >> >> We can delete this test, as there are others testing lambda expressions. > > Wait... do you mean deleting the full test? Yes, i think its redundant. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/667#discussion_r2500524230 From psandoz at openjdk.org Thu Nov 6 20:23:40 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 6 Nov 2025 20:23:40 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v2] In-Reply-To: References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 15:29:20 GMT, Maurizio Cimadamore wrote: >> The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: >> >> >> Quoted q = () -> {} >> >> >> Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. >> >> This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Re-add accidentally deleted test Marked as reviewed by psandoz (Lead). ------------- PR Review: https://git.openjdk.org/babylon/pull/667#pullrequestreview-3430367202 From mcimadamore at openjdk.org Thu Nov 6 22:17:05 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 22:17:05 GMT Subject: git: openjdk/babylon: code-reflection: Drop support for quoted structural lambdas Message-ID: <3a86aad1-08f0-4a43-866a-56321f4be0fc@openjdk.org> Changeset: df4acf29 Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-06 22:14:10 +0000 URL: https://git.openjdk.org/babylon/commit/df4acf29669e71de292c9c552a4ed45d69123bed Drop support for quoted structural lambdas Reviewed-by: psandoz ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/BasicJavacTask.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ArgumentAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/jdk/java/lang/reflect/code/TestClosureOps.java ! test/jdk/java/lang/reflect/code/TestInline.java - test/jdk/java/lang/reflect/code/TestLinqUsingQuoted.java ! test/jdk/java/lang/reflect/code/TestSealOp.java - test/jdk/java/lang/reflect/code/bytecode/TestQuoted.java ! test/jdk/java/lang/reflect/code/expression/TestExpressionElimination.java ! test/jdk/java/lang/reflect/code/stream/StreamFuser.java - test/jdk/java/lang/reflect/code/stream/StreamFuserUsingQuotable.java ! test/jdk/java/lang/reflect/code/stream/TestStream.java - test/jdk/java/lang/reflect/code/stream/TestStreamUsingQuotable.java ! test/langtools/tools/javac/diags/examples.not-yet.txt - test/langtools/tools/javac/reflect/QuotedTest.java = test/langtools/tools/javac/reflect/TestCaptureQuotable.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.out ! test/langtools/tools/javac/reflect/UnreachableTest.java - test/langtools/tools/javac/reflect/quoted/TestAssignment.java - test/langtools/tools/javac/reflect/quoted/TestAssignment.out - test/langtools/tools/javac/reflect/quoted/TestCaptureQuoted.java - test/langtools/tools/javac/reflect/quoted/TestGenericMethodCall.java - test/langtools/tools/javac/reflect/quoted/TestGenericMethodCall.out - test/langtools/tools/javac/reflect/quoted/TestMethodCall.java - test/langtools/tools/javac/reflect/quoted/TestMethodCall.out - test/langtools/tools/javac/reflect/quoted/TestRecovery.java - test/langtools/tools/javac/reflect/quoted/TestRecovery.out From mcimadamore at openjdk.org Thu Nov 6 22:17:09 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 22:17:09 GMT Subject: [code-reflection] RFR: Drop support for quoted structural lambdas [v3] In-Reply-To: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: > The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: > > > Quoted q = () -> {} > > > Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. > > This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Drop QuotesTest ------------- Changes: - all: https://git.openjdk.org/babylon/pull/667/files - new: https://git.openjdk.org/babylon/pull/667/files/bd6ddc10..80d86cc6 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=01-02 Stats: 69 lines in 1 file changed: 0 ins; 69 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/667.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/667/head:pull/667 PR: https://git.openjdk.org/babylon/pull/667 From mcimadamore at openjdk.org Thu Nov 6 22:17:10 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 6 Nov 2025 22:17:10 GMT Subject: [code-reflection] Integrated: Drop support for quoted structural lambdas In-Reply-To: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> References: <3v9IIaPleSIT7l8uUFHq0NOcgEjLGV1iyxCg65Ob5fg=.f28516d6-de13-4c41-bbe2-61d62ce475ae@github.com> Message-ID: On Thu, 6 Nov 2025 15:02:04 GMT, Maurizio Cimadamore wrote: > The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up: > > > Quoted q = () -> {} > > > Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation. > > This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`. This pull request has now been integrated. Changeset: df4acf29 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/df4acf29669e71de292c9c552a4ed45d69123bed Stats: 1912 lines in 36 files changed: 56 ins; 1754 del; 102 mod Drop support for quoted structural lambdas Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/667 From jfumero at openjdk.org Fri Nov 7 07:44:05 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 07:44:05 GMT Subject: [code-reflection] RFR: [hat] Float2 supported [v2] In-Reply-To: References: Message-ID: > This PR adds `float2` in the API to generate 2 float instructions for OpenCL and CUDA backends. > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestFloat2 > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-cuda hat.test.TestFloat2 Juan Fumero has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Merge branch 'code-reflection' into hat/vector/types - [hat] Add tests for float2 similar to float4 - [hat] Adding float2 work ------------- Changes: - all: https://git.openjdk.org/babylon/pull/666/files - new: https://git.openjdk.org/babylon/pull/666/files/c35619b7..88da10cb Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=666&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=666&range=00-01 Stats: 3901 lines in 49 files changed: 206 ins; 3268 del; 427 mod Patch: https://git.openjdk.org/babylon/pull/666.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/666/head:pull/666 PR: https://git.openjdk.org/babylon/pull/666 From jfumero at openjdk.org Fri Nov 7 08:24:47 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 08:24:47 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Float2 supported Message-ID: <7e7cf5f9-981d-4af9-9b91-bcd641fda6b4@openjdk.org> Changeset: 97f6480d Branch: code-reflection Author: Juan Fumero Date: 2025-11-07 08:22:20 +0000 URL: https://git.openjdk.org/babylon/commit/97f6480dec6aa0a8b27b887237635fd55db79da7 [hat] Float2 supported ! hat/core/src/main/java/hat/buffer/F32ArrayPadded.java + hat/core/src/main/java/hat/buffer/Float2.java ! hat/core/src/main/java/hat/phases/HATDialectifyTier.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorOpPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorStorePhase.java = hat/core/src/main/java/hat/types/_V2.java ! hat/hat/test.java + hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/engine/HatAsserts.java From jfumero at openjdk.org Fri Nov 7 08:25:35 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 08:25:35 GMT Subject: [code-reflection] Integrated: [hat] Float2 supported In-Reply-To: References: Message-ID: On Thu, 6 Nov 2025 11:22:37 GMT, Juan Fumero wrote: > This PR adds `float2` in the API to generate 2 float instructions for OpenCL and CUDA backends. > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestFloat2 > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-cuda hat.test.TestFloat2 This pull request has now been integrated. Changeset: 97f6480d Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/97f6480dec6aa0a8b27b887237635fd55db79da7 Stats: 840 lines in 9 files changed: 829 ins; 6 del; 5 mod [hat] Float2 supported ------------- PR: https://git.openjdk.org/babylon/pull/666 From jfumero at openjdk.org Fri Nov 7 08:30:06 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 08:30:06 GMT Subject: [code-reflection] RFR: [hat] Extensions of F16 (API and codegen) [v3] In-Reply-To: References: Message-ID: > - New dialect nodes to do `OpConvert` from `float` to `half` and `half` to `float`: note that conversions differ between CUDA and OpenCL > - Add Fluent API for F16 operations (similar to `Float4`) > - Add mixed float-precision operations (`F16` -> `float`) > - Refactor of `F16` interface to a new file > - Fix parenthesis in the codegen > - Initialization of `F16` values using the `float2F16` builtin and `Float16Tofloat` also allowed on the GPU Juan Fumero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 18 commits: - Merge branch 'code-reflection' into hat/fp16/extension - Merge branch 'code-reflection' into hat/fp16/extension - [hat] minor change - [hat] F16 with mixed float types supported for CUDA backend - [hat] F16 ops with mixed f32 operations - [hat][f16] Concatenation of F16 operations supported - Merge branch 'code-reflection' into hat/fp16/extension - [hat][f16] WIP for local memory - minor recformating - patch for matmul in fp16 - ... and 8 more: https://git.openjdk.org/babylon/compare/97f6480d...d01b480d ------------- Changes: https://git.openjdk.org/babylon/pull/663/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=663&range=02 Stats: 1155 lines in 21 files changed: 1004 ins; 72 del; 79 mod Patch: https://git.openjdk.org/babylon/pull/663.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/663/head:pull/663 PR: https://git.openjdk.org/babylon/pull/663 From jfumero at openjdk.org Fri Nov 7 08:37:36 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 08:37:36 GMT Subject: [code-reflection] Integrated: [hat] Extensions of F16 (API and codegen) In-Reply-To: References: Message-ID: <09qFhpbXVX3jnRd_57yrHp6qTWsCAPOCl4q1OX6Nqu8=.620a3bb9-3067-4fac-93ac-34a624bc0e0f@github.com> On Wed, 5 Nov 2025 12:08:58 GMT, Juan Fumero wrote: > - New dialect nodes to do `OpConvert` from `float` to `half` and `half` to `float`: note that conversions differ between CUDA and OpenCL > - Add Fluent API for F16 operations (similar to `Float4`) > - Add mixed float-precision operations (`F16` -> `float`) > - Refactor of `F16` interface to a new file > - Fix parenthesis in the codegen > - Initialization of `F16` values using the `float2F16` builtin and `Float16Tofloat` also allowed on the GPU This pull request has now been integrated. Changeset: 9fe9c757 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/9fe9c75726bb673221bc87f1de1abb208caaf0a5 Stats: 1155 lines in 21 files changed: 1004 ins; 72 del; 79 mod [hat] Extensions of F16 (API and codegen) ------------- PR: https://git.openjdk.org/babylon/pull/663 From jfumero at openjdk.org Fri Nov 7 08:37:55 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 08:37:55 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Extensions of F16 (API and codegen) Message-ID: <51f80d47-08da-48a9-a58e-d2298598120c@openjdk.org> Changeset: 9fe9c757 Branch: code-reflection Author: Juan Fumero Date: 2025-11-07 08:35:10 +0000 URL: https://git.openjdk.org/babylon/commit/9fe9c75726bb673221bc87f1de1abb208caaf0a5 [hat] Extensions of F16 (API and codegen) ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaHATKernelBuilder.java ! hat/backends/ffi/opencl/src/main/java/hat/backend/ffi/OpenCLHATKernelBuilder.java ! hat/backends/jextracted/opencl/src/main/java/hat/backend/jextracted/OpenCLHatKernelBuilder.java + hat/core/src/main/java/hat/buffer/F16.java ! hat/core/src/main/java/hat/buffer/F16Array.java ! hat/core/src/main/java/hat/codebuilders/BabylonOpBuilder.java ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilderWithContext.java ! hat/core/src/main/java/hat/dialect/HATF16AddOp.java ! hat/core/src/main/java/hat/dialect/HATF16BinaryOp.java ! hat/core/src/main/java/hat/dialect/HATF16DivOp.java ! hat/core/src/main/java/hat/dialect/HATF16MulOp.java ! hat/core/src/main/java/hat/dialect/HATF16SubOp.java + hat/core/src/main/java/hat/dialect/HATF16ToFloatConvOp.java ! hat/core/src/main/java/hat/dialect/HATPhaseUtils.java ! hat/core/src/main/java/hat/optools/OpTk.java ! hat/core/src/main/java/hat/phases/HATDialectifyFP16Phase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorSelectPhase.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tools/src/main/java/hat/tools/text/JavaHATCodeBuilder.java From mcimadamore at openjdk.org Fri Nov 7 10:40:05 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 7 Nov 2025 10:40:05 GMT Subject: [code-reflection] RFR: Drop ClosureOp and ClosureOpCall Message-ID: As we have dropped support for quoted structured lambdas, the corresponding code model `ClosureOp` is no longer used and can be removed as well. That also drags `ClosureOpCall`, as that op is only used to call closure ops. And the related `TestClosureOps` test. I didn't find any occurence of the removed class in examples/HAT. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/668/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=668&range=00 Stats: 315 lines in 4 files changed: 0 ins; 315 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/668.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/668/head:pull/668 PR: https://git.openjdk.org/babylon/pull/668 From mcimadamore at openjdk.org Fri Nov 7 10:43:30 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 7 Nov 2025 10:43:30 GMT Subject: [code-reflection] RFR: Drop ClosureOp and ClosureOpCall In-Reply-To: References: Message-ID: On Fri, 7 Nov 2025 10:33:18 GMT, Maurizio Cimadamore wrote: > As we have dropped support for quoted structured lambdas, the corresponding code model `ClosureOp` is no longer used and can be removed as well. That also drags `ClosureOpCall`, as that op is only used to call closure ops. And the related `TestClosureOps` test. > > I didn't find any occurence of the removed class in examples/HAT. When looking at this, I was a bit surprised to see that some core ops implement interfaces defined by `JavaOp`. This happens in the following cases: * VarOp <: JavaStatement * VarAccessOp <: JavaAccessOp * VarLoadOp <: JavaExpression * VarStoreOp <: JavaStatement * ReturnOp <: JavaStatement * ConstantOp <: JavaExpression It all makes sense of course (unless we want to create duplication in the IR) -- I just found it a bit odd conceptually that some "core" operations are subtypes of "derived" operations. Mixing dialects is hard :-) ------------- PR Comment: https://git.openjdk.org/babylon/pull/668#issuecomment-3501797383 From jfumero at openjdk.org Fri Nov 7 11:51:04 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 11:51:04 GMT Subject: [code-reflection] RFR: [hat] Fix C99 codegen parenthesis when having inner iface interfaces Message-ID: [hat] Fix C99 codegen parenthesis when having inner iface interfaces. All supported test passing + violanes example. ------------- Commit messages: - [hat] Fix C99 codegen parenthesis when having inner iface interfaces Changes: https://git.openjdk.org/babylon/pull/669/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=669&range=00 Stats: 37 lines in 2 files changed: 29 ins; 4 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/669.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/669/head:pull/669 PR: https://git.openjdk.org/babylon/pull/669 From jfumero at openjdk.org Fri Nov 7 12:02:16 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 12:02:16 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Fix C99 codegen parenthesis when having inner iface interfaces Message-ID: <7f8fda5e-5e51-48f8-a77b-6c583e13fcfe@openjdk.org> Changeset: 0775c8cd Branch: code-reflection Author: Juan Fumero Date: 2025-11-07 12:00:29 +0000 URL: https://git.openjdk.org/babylon/commit/0775c8cd045ebfd2887e410026a5d9e15e375716 [hat] Fix C99 codegen parenthesis when having inner iface interfaces ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilderWithContext.java ! hat/core/src/main/java/hat/optools/OpTk.java From jfumero at openjdk.org Fri Nov 7 12:03:39 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 12:03:39 GMT Subject: [code-reflection] Integrated: [hat] Fix C99 codegen parenthesis when having inner iface interfaces In-Reply-To: References: Message-ID: On Fri, 7 Nov 2025 11:45:08 GMT, Juan Fumero wrote: > [hat] Fix C99 codegen parenthesis when having inner iface interfaces. > > All supported test passing + violanes example. This pull request has now been integrated. Changeset: 0775c8cd Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/0775c8cd045ebfd2887e410026a5d9e15e375716 Stats: 37 lines in 2 files changed: 29 ins; 4 del; 4 mod [hat] Fix C99 codegen parenthesis when having inner iface interfaces ------------- PR: https://git.openjdk.org/babylon/pull/669 From jfumero at openjdk.org Fri Nov 7 12:22:20 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 12:22:20 GMT Subject: [code-reflection] RFR: [HAT] Test Engine Improved Message-ID: <6jnrR3xgqL8MRlrBe_RgcXEBrSdJD4GbDK6d2E_T_BQ=.1e9de012-5d3f-4050-b41d-668e540f8ec6@github.com> This patch improves the test format and it ands a new exception to control when a test is meant to fail (unsupported). How to run? java -cp hat/job.jar hat.java test-suite ffi-opencl ------------- Commit messages: - Merge branch 'code-reflection' into hat/exceptions/tests - Hat tests format improved - [hat] Test report improved with unsuported and expected to fail tests - [hat] Rename Hat -> HAT in the test module Changes: https://git.openjdk.org/babylon/pull/670/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=670&range=00 Stats: 920 lines in 25 files changed: 454 ins; 331 del; 135 mod Patch: https://git.openjdk.org/babylon/pull/670.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/670/head:pull/670 PR: https://git.openjdk.org/babylon/pull/670 From jfumero at openjdk.org Fri Nov 7 13:26:40 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 13:26:40 GMT Subject: git: openjdk/babylon: code-reflection: [HAT] Test Engine Improved Message-ID: Changeset: 8160b63a Branch: code-reflection Author: Juan Fumero Date: 2025-11-07 13:25:09 +0000 URL: https://git.openjdk.org/babylon/commit/8160b63a9e9f677ea803773f1343225bf9b4ad1e [HAT] Test Engine Improved ! hat/hat.java ! hat/hat/test.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java + hat/tests/src/main/java/hat/test/engine/HATAssertionError.java + hat/tests/src/main/java/hat/test/engine/HATAsserts.java + hat/tests/src/main/java/hat/test/engine/HATExpectedFailureException.java + hat/tests/src/main/java/hat/test/engine/HATTestEngine.java = hat/tests/src/main/java/hat/test/engine/HATTestException.java + hat/tests/src/main/java/hat/test/engine/HATTestFormatter.java - hat/tests/src/main/java/hat/test/engine/HatAsserts.java - hat/tests/src/main/java/hat/test/engine/HatTestEngine.java - hat/tests/src/main/java/hat/test/engine/HatTestFormatter.java From jfumero at openjdk.org Fri Nov 7 13:28:38 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 7 Nov 2025 13:28:38 GMT Subject: [code-reflection] Integrated: [HAT] Test Engine Improved In-Reply-To: <6jnrR3xgqL8MRlrBe_RgcXEBrSdJD4GbDK6d2E_T_BQ=.1e9de012-5d3f-4050-b41d-668e540f8ec6@github.com> References: <6jnrR3xgqL8MRlrBe_RgcXEBrSdJD4GbDK6d2E_T_BQ=.1e9de012-5d3f-4050-b41d-668e540f8ec6@github.com> Message-ID: On Fri, 7 Nov 2025 12:14:38 GMT, Juan Fumero wrote: > This patch improves the test format and it ands a new exception to control when a test is meant to fail (unsupported). > > How to run? > > > java -cp hat/job.jar hat.java test-suite ffi-opencl This pull request has now been integrated. Changeset: 8160b63a Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/8160b63a9e9f677ea803773f1343225bf9b4ad1e Stats: 920 lines in 25 files changed: 454 ins; 331 del; 135 mod [HAT] Test Engine Improved ------------- PR: https://git.openjdk.org/babylon/pull/670 From psandoz at openjdk.org Fri Nov 7 15:20:42 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 7 Nov 2025 15:20:42 GMT Subject: [code-reflection] RFR: Drop ClosureOp and ClosureOpCall In-Reply-To: References: Message-ID: On Fri, 7 Nov 2025 10:33:18 GMT, Maurizio Cimadamore wrote: > As we have dropped support for quoted structured lambdas, the corresponding code model `ClosureOp` is no longer used and can be removed as well. That also drags `ClosureOpCall`, as that op is only used to call closure ops. And the related `TestClosureOps` test. > > I didn't find any occurence of the removed class in examples/HAT. Looks good! ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/668#pullrequestreview-3434609047 From psandoz at openjdk.org Fri Nov 7 15:34:05 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 7 Nov 2025 15:34:05 GMT Subject: [code-reflection] RFR: Drop ClosureOp and ClosureOpCall In-Reply-To: References: Message-ID: On Fri, 7 Nov 2025 10:40:29 GMT, Maurizio Cimadamore wrote: > When looking at this, I was a bit surprised to see that some core ops implement interfaces defined by `JavaOp`. The intent by implementing those marker interfaces was to signal how these operations can model java expressions or java statements, but they can also be used in other contexts. `ReturnOp` connects with `FuncOp`, `YeildOp` connects with bodies, the branch ops connect with blocks etc. It's a bit blurry sometimes. ------------- PR Comment: https://git.openjdk.org/babylon/pull/668#issuecomment-3503212342 From mcimadamore at openjdk.org Fri Nov 7 15:47:08 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 7 Nov 2025 15:47:08 GMT Subject: git: openjdk/babylon: code-reflection: Drop ClosureOp and ClosureOpCall Message-ID: Changeset: 1cf6beff Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-07 15:46:19 +0000 URL: https://git.openjdk.org/babylon/commit/1cf6beff745507302fafd4b4c2155f03374193cc Drop ClosureOp and ClosureOpCall Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java - test/jdk/java/lang/reflect/code/TestClosureOps.java From mcimadamore at openjdk.org Fri Nov 7 15:49:33 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 7 Nov 2025 15:49:33 GMT Subject: [code-reflection] Integrated: Drop ClosureOp and ClosureOpCall In-Reply-To: References: Message-ID: <8yCunVCraYcaXlR7PA1Np-zwFar_-eitERaYjrELOCY=.b935a11b-85ea-4727-ad2f-af4f34e2eddc@github.com> On Fri, 7 Nov 2025 10:33:18 GMT, Maurizio Cimadamore wrote: > As we have dropped support for quoted structured lambdas, the corresponding code model `ClosureOp` is no longer used and can be removed as well. That also drags `ClosureOpCall`, as that op is only used to call closure ops. And the related `TestClosureOps` test. > > I didn't find any occurence of the removed class in examples/HAT. This pull request has now been integrated. Changeset: 1cf6beff Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/1cf6beff745507302fafd4b4c2155f03374193cc Stats: 315 lines in 4 files changed: 0 ins; 315 del; 0 mod Drop ClosureOp and ClosureOpCall Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/668 From duke at openjdk.org Fri Nov 7 18:49:49 2025 From: duke at openjdk.org (Ruby Chen) Date: Fri, 7 Nov 2025 18:49:49 GMT Subject: [code-reflection] RFR: Float4 arrayView support [v2] In-Reply-To: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> References: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> Message-ID: <7B4gKC7gWh_pACJj9HNKlBChHQvrPjNuWp9RWMvd53E=.427dc948-e25e-46bc-9e1e-5d4c303b4cbf@github.com> > Preliminary `Float4` support for arrayViews. Currently only supported for `F32ArrayPadded` buffers, which can be accessed like a `Float4[]` as shown below: > > Float4[] arr = buffer.float4ArrayView(); // for a F32ArrayPadded buffer > > At the moment, to use an element in the array, the `Float4` must be loaded into a separate variable first, i.e. > > Float4 a = arr[index * 4]; > > A value can be stored into the array through the following syntax: > > arr[index * 4] = ... Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits: - Merge branch 'code-reflection' into array-view - Cleaning up vector arrayView - Merge branch 'code-reflection' into array-view - Float4 arrayView support ------------- Changes: https://git.openjdk.org/babylon/pull/646/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=646&range=01 Stats: 1645 lines in 13 files changed: 1222 ins; 400 del; 23 mod Patch: https://git.openjdk.org/babylon/pull/646.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/646/head:pull/646 PR: https://git.openjdk.org/babylon/pull/646 From duke at openjdk.org Fri Nov 7 19:03:31 2025 From: duke at openjdk.org (duke) Date: Fri, 7 Nov 2025 19:03:31 GMT Subject: [code-reflection] RFR: Float4 arrayView support [v2] In-Reply-To: <7B4gKC7gWh_pACJj9HNKlBChHQvrPjNuWp9RWMvd53E=.427dc948-e25e-46bc-9e1e-5d4c303b4cbf@github.com> References: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> <7B4gKC7gWh_pACJj9HNKlBChHQvrPjNuWp9RWMvd53E=.427dc948-e25e-46bc-9e1e-5d4c303b4cbf@github.com> Message-ID: On Fri, 7 Nov 2025 18:49:49 GMT, Ruby Chen wrote: >> Preliminary `Float4` support for arrayViews. Currently only supported for `F32ArrayPadded` buffers, which can be accessed like a `Float4[]` as shown below: >> >> Float4[] arr = buffer.float4ArrayView(); // for a F32ArrayPadded buffer >> >> At the moment, to use an element in the array, the `Float4` must be loaded into a separate variable first, i.e. >> >> Float4 a = arr[index * 4]; >> >> A value can be stored into the array through the following syntax: >> >> arr[index * 4] = ... > > Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits: > > - Merge branch 'code-reflection' into array-view > - Cleaning up vector arrayView > - Merge branch 'code-reflection' into array-view > - Float4 arrayView support @rbrchen Your change (at version 1ab7a3a260f8ec23c9abfc800cf9a50774aff414) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/babylon/pull/646#issuecomment-3504320631 From duke at openjdk.org Fri Nov 7 19:03:29 2025 From: duke at openjdk.org (Ruby Chen) Date: Fri, 7 Nov 2025 19:03:29 GMT Subject: [code-reflection] RFR: Float4 arrayView support [v3] In-Reply-To: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> References: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> Message-ID: > Preliminary `Float4` support for arrayViews. Currently only supported for `F32ArrayPadded` buffers, which can be accessed like a `Float4[]` as shown below: > > Float4[] arr = buffer.float4ArrayView(); // for a F32ArrayPadded buffer > > At the moment, to use an element in the array, the `Float4` must be loaded into a separate variable first, i.e. > > Float4 a = arr[index * 4]; > > A value can be stored into the array through the following syntax: > > arr[index * 4] = ... Ruby Chen has updated the pull request incrementally with one additional commit since the last revision: Taking out vector arrayview tests for now ------------- Changes: - all: https://git.openjdk.org/babylon/pull/646/files - new: https://git.openjdk.org/babylon/pull/646/files/a1d4fdca..1ab7a3a2 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=646&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=646&range=01-02 Stats: 702 lines in 1 file changed: 0 ins; 0 del; 702 mod Patch: https://git.openjdk.org/babylon/pull/646.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/646/head:pull/646 PR: https://git.openjdk.org/babylon/pull/646 From gfrost at openjdk.org Sat Nov 8 12:05:19 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 8 Nov 2025 12:05:19 GMT Subject: git: openjdk/babylon: code-reflection: Float4 arrayView support Message-ID: <542517ff-4914-4b98-a9a5-849dab06a541@openjdk.org> Changeset: 0b587086 Branch: code-reflection Author: Ruby Chen Committer: Gary Frost Date: 2025-11-08 12:04:17 +0000 URL: https://git.openjdk.org/babylon/commit/0b58708658078ac1e7b4c46ea171d22d30e039d4 Float4 arrayView support ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaHATKernelBuilder.java ! hat/backends/ffi/opencl/src/main/java/hat/backend/ffi/OpenCLHATKernelBuilder.java ! hat/core/src/main/java/hat/buffer/F32ArrayPadded.java ! hat/core/src/main/java/hat/callgraph/KernelCallGraph.java ! hat/core/src/main/java/hat/optools/OpTk.java + hat/core/src/main/java/hat/phases/HATDialectifyArrayViewPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyTier.java - hat/examples/arrayview/.gitignore - hat/examples/arrayview/pom.xml - hat/examples/arrayview/src/main/java/arrayview/Main.java ! hat/hat/bld.java ! hat/tests/src/main/java/hat/test/TestArrayView.java + hat/tests/src/main/java/hat/test/TestVectorArrayView.java From duke at openjdk.org Sat Nov 8 12:07:39 2025 From: duke at openjdk.org (Ruby Chen) Date: Sat, 8 Nov 2025 12:07:39 GMT Subject: [code-reflection] Integrated: Float4 arrayView support In-Reply-To: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> References: <973wTu2S2Qa4ZxbuDfy4LmdBrG74Zr5GIrLTldYRma8=.64c976d7-a59e-4c6f-a163-711f7bf022e4@github.com> Message-ID: On Mon, 27 Oct 2025 23:56:01 GMT, Ruby Chen wrote: > Preliminary `Float4` support for arrayViews. Currently only supported for `F32ArrayPadded` buffers, which can be accessed like a `Float4[]` as shown below: > > Float4[] arr = buffer.float4ArrayView(); // for a F32ArrayPadded buffer > > At the moment, to use an element in the array, the `Float4` must be loaded into a separate variable first, i.e. > > Float4 a = arr[index * 4]; > > A value can be stored into the array through the following syntax: > > arr[index * 4] = ... This pull request has now been integrated. Changeset: 0b587086 Author: Ruby Chen Committer: Gary Frost URL: https://git.openjdk.org/babylon/commit/0b58708658078ac1e7b4c46ea171d22d30e039d4 Stats: 1645 lines in 13 files changed: 1222 ins; 400 del; 23 mod Float4 arrayView support ------------- PR: https://git.openjdk.org/babylon/pull/646 From gfrost at openjdk.org Sun Nov 9 11:28:10 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 11:28:10 GMT Subject: [code-reflection] Integrated: Hat view simplification of types In-Reply-To: References: Message-ID: <2PhpsakrF5mVKsE6rsTtQX_Hn3ShYeXSEJM5qPGpa4U=.360cdac2-1418-4de6-98c0-62a91c3957d3@github.com> On Sun, 9 Nov 2025 11:22:00 GMT, Gary Frost wrote: > More experiments using ifaces for vector/virtex/matrices This pull request has now been integrated. Changeset: 6cbee30c Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/6cbee30ccff18673486047c41be841cac4420f8f Stats: 582 lines in 12 files changed: 114 ins; 321 del; 147 mod Hat view simplification of types ------------- PR: https://git.openjdk.org/babylon/pull/671 From gfrost at openjdk.org Sun Nov 9 11:28:09 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 11:28:09 GMT Subject: [code-reflection] Integrated: Hat view simplification of types Message-ID: More experiments using ifaces for vector/virtex/matrices ------------- Commit messages: - common pool processing - towards common pools - towards common pools - don't use idx() - replace indices with instances Changes: https://git.openjdk.org/babylon/pull/671/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=671&range=00 Stats: 582 lines in 12 files changed: 114 ins; 321 del; 147 mod Patch: https://git.openjdk.org/babylon/pull/671.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/671/head:pull/671 PR: https://git.openjdk.org/babylon/pull/671 From gfrost at openjdk.org Sun Nov 9 11:28:45 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 11:28:45 GMT Subject: git: openjdk/babylon: code-reflection: Hat view simplification of types Message-ID: <7df9a7ee-947a-4f85-800e-ae592cb1985a@openjdk.org> Changeset: 6cbee30c Branch: code-reflection Author: Gary Frost Date: 2025-11-09 11:25:20 +0000 URL: https://git.openjdk.org/babylon/commit/6cbee30ccff18673486047c41be841cac4420f8f Hat view simplification of types ! hat/examples/view/src/main/java/view/EliteMeshReader.java - hat/examples/view/src/main/java/view/Graphics2DRenderer.java ! hat/examples/view/src/main/java/view/Main.java ! hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/ViewFrame.java ! hat/examples/view/src/main/java/view/f32/F32Matrix4x4.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java ! hat/examples/view/src/main/java/view/f32/F32Triangle2D.java ! hat/examples/view/src/main/java/view/f32/F32Triangle3D.java ! hat/examples/view/src/main/java/view/f32/F32Vec2.java ! hat/examples/view/src/main/java/view/f32/F32Vec3.java ! hat/examples/view/src/main/java/view/f32/ZPos.java From gfrost at openjdk.org Sun Nov 9 12:23:57 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 12:23:57 GMT Subject: git: openjdk/babylon: code-reflection: Fix array view tests and force factory creation of ranges Message-ID: <1dd16bdc-d74c-4350-a824-17d442c77519@openjdk.org> Changeset: 9983b707 Branch: code-reflection Author: Gary Frost Date: 2025-11-09 12:22:56 +0000 URL: https://git.openjdk.org/babylon/commit/9983b707837e6243b6300709bbbcda93cc3fe20a Fix array view tests and force factory creation of ranges ! hat/core/src/main/java/hat/NDRange.java ! hat/examples/experiments/src/main/java/experiments/LocalArray.java ! hat/examples/experiments/src/main/java/experiments/LocalIds.java ! hat/examples/experiments/src/main/java/experiments/Reduction.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/violajones/src/main/java/violajones/attic/ViolaJones.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java From gfrost at openjdk.org Sun Nov 9 12:26:04 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 12:26:04 GMT Subject: [code-reflection] Integrated: Fix array view tests and force factory creation of ranges Message-ID: We missed use of new ranges in recent array view tests merge. I also refactored all uses of new ranges to use factory methods So Global1D.of(1) Instead of new Global1D(1) I assumed I could override the default public record constructor with a private one, and only expose the public factory. But this is not allowed with records (why?) Instead (put your hack sensitive sunglasses on!) I added a fake boolean field to these records to catch all allocations with new .. Clumsey but effective Hence this temporary nonsense using forceUseOfOf until we cach our mental muscle memory for using new record Global1D(int x, boolean forceUseOfOf) implements _1DX, Global{ public static Global1D of(int x) { return new Global1D(x, true); } } ------------- Commit messages: - Fix array view tests and force factory creation of ranges Changes: https://git.openjdk.org/babylon/pull/672/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=672&range=00 Stats: 98 lines in 19 files changed: 1 ins; 0 del; 97 mod Patch: https://git.openjdk.org/babylon/pull/672.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/672/head:pull/672 PR: https://git.openjdk.org/babylon/pull/672 From gfrost at openjdk.org Sun Nov 9 12:26:04 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 12:26:04 GMT Subject: [code-reflection] Integrated: Fix array view tests and force factory creation of ranges In-Reply-To: References: Message-ID: On Sun, 9 Nov 2025 12:19:11 GMT, Gary Frost wrote: > We missed use of new ranges in recent array view tests merge. > > I also refactored all uses of new ranges to use factory methods > > So > > Global1D.of(1) > > Instead of > > new Global1D(1) > > > I assumed I could override the default public record constructor with a private one, and only expose the public factory. But this is not allowed with records (why?) > > Instead (put your hack sensitive sunglasses on!) I added a fake boolean field to these records to catch all allocations with new .. Clumsey but effective > > Hence this temporary nonsense using forceUseOfOf until we cach our mental muscle memory for using new > > > record Global1D(int x, boolean forceUseOfOf) implements _1DX, Global{ > public static Global1D of(int x) { > return new Global1D(x, true); > } > } This pull request has now been integrated. Changeset: 9983b707 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/9983b707837e6243b6300709bbbcda93cc3fe20a Stats: 98 lines in 19 files changed: 1 ins; 0 del; 97 mod Fix array view tests and force factory creation of ranges ------------- PR: https://git.openjdk.org/babylon/pull/672 From gfrost at openjdk.org Sun Nov 9 13:02:49 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 13:02:49 GMT Subject: git: openjdk/babylon: code-reflection: A less clumsey way of forcing range factories Message-ID: <07359569-e6ab-4768-9811-3179ac69ebbd@openjdk.org> Changeset: 7c0350a7 Branch: code-reflection Author: Gary Frost Date: 2025-11-09 13:00:18 +0000 URL: https://git.openjdk.org/babylon/commit/7c0350a7eebf776ce997ab918c03426dda7c669e A less clumsey way of forcing range factories ! hat/core/src/main/java/hat/NDRange.java From gfrost at openjdk.org Sun Nov 9 13:03:35 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 13:03:35 GMT Subject: [code-reflection] Integrated: A less clumsey way of forcing range factories Message-ID: <9ZQLtxw0Dmv5ur8w-_1AsCvgXD-s5utF54pZh9MxIxo=.50de0acd-1c0a-4ad7-a1f1-2105c295bc86@github.com> The previoust had a hack for enforcing factories. This is slightly cleaner. We add the factory method to an interface and offer a record implementation as an inner record. interface Global1D extends _1DX, Global{ record Impl(int x) implements Global1D{}; static Global1D of(int x) { return new Impl(x); } } ``` ------------- Commit messages: - A less clumsey way of forcing range factories Changes: https://git.openjdk.org/babylon/pull/673/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=673&range=00 Stats: 27 lines in 1 file changed: 8 ins; 0 del; 19 mod Patch: https://git.openjdk.org/babylon/pull/673.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/673/head:pull/673 PR: https://git.openjdk.org/babylon/pull/673 From gfrost at openjdk.org Sun Nov 9 13:03:35 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 9 Nov 2025 13:03:35 GMT Subject: [code-reflection] Integrated: A less clumsey way of forcing range factories In-Reply-To: <9ZQLtxw0Dmv5ur8w-_1AsCvgXD-s5utF54pZh9MxIxo=.50de0acd-1c0a-4ad7-a1f1-2105c295bc86@github.com> References: <9ZQLtxw0Dmv5ur8w-_1AsCvgXD-s5utF54pZh9MxIxo=.50de0acd-1c0a-4ad7-a1f1-2105c295bc86@github.com> Message-ID: <-8BPxauX3j28lUJNWxIC--HEENBFSMSVf4_mIk_0wcU=.d6aa5b36-1ad9-4e14-b736-2d461e7da83a@github.com> On Sun, 9 Nov 2025 12:58:27 GMT, Gary Frost wrote: > The previoust had a hack for enforcing factories. > > This is slightly cleaner. We add the factory method to an interface and offer a record implementation as an inner record. > > interface Global1D extends _1DX, Global{ > record Impl(int x) implements Global1D{}; > static Global1D of(int x) { > return new Impl(x); > } > } > ``` This pull request has now been integrated. Changeset: 7c0350a7 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/7c0350a7eebf776ce997ab918c03426dda7c669e Stats: 27 lines in 1 file changed: 8 ins; 0 del; 19 mod A less clumsey way of forcing range factories ------------- PR: https://git.openjdk.org/babylon/pull/673 From jfumero at openjdk.org Mon Nov 10 11:39:08 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 10 Nov 2025 11:39:08 GMT Subject: [code-reflection] RFR: [hat] F16 decoupled from Buffer type Message-ID: F16 decoupled from Buffer type. ------------- Commit messages: - [hat] Clarify the special type in the codegen - [hat] F16 decoupled from Buffer type Changes: https://git.openjdk.org/babylon/pull/674/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=674&range=00 Stats: 63 lines in 10 files changed: 31 ins; 20 del; 12 mod Patch: https://git.openjdk.org/babylon/pull/674.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/674/head:pull/674 PR: https://git.openjdk.org/babylon/pull/674 From jfumero at openjdk.org Mon Nov 10 11:45:57 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 10 Nov 2025 11:45:57 GMT Subject: git: openjdk/babylon: code-reflection: [hat] F16 decoupled from Buffer type Message-ID: Changeset: 13f6ad66 Branch: code-reflection Author: Juan Fumero Date: 2025-11-10 11:45:22 +0000 URL: https://git.openjdk.org/babylon/commit/13f6ad669c71f1caf559437c13674e71e7678f22 [hat] F16 decoupled from Buffer type ! hat/core/src/main/java/hat/buffer/F16.java ! hat/core/src/main/java/hat/buffer/F16Array.java ! hat/core/src/main/java/hat/codebuilders/C99HATKernelBuilder.java ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilderWithContext.java ! hat/core/src/main/java/hat/optools/OpTk.java ! hat/core/src/main/java/hat/phases/HATDialect.java ! hat/core/src/main/java/hat/phases/HATDialectifyFP16Phase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorSelectPhase.java ! hat/core/src/main/java/hat/phases/HATFinalDetectionPhase.java ! hat/tests/src/main/java/hat/test/TestF16Type.java From jfumero at openjdk.org Mon Nov 10 11:48:35 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 10 Nov 2025 11:48:35 GMT Subject: [code-reflection] Integrated: [hat] F16 decoupled from Buffer type In-Reply-To: References: Message-ID: <6oLm-nnGDBmzKzB4tfHg2MwDENGSkrWNAl3OCOL8fGw=.93f5d989-97d6-4266-ac07-89125f86d54d@github.com> On Mon, 10 Nov 2025 11:32:37 GMT, Juan Fumero wrote: > F16 decoupled from Buffer type. This pull request has now been integrated. Changeset: 13f6ad66 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/13f6ad669c71f1caf559437c13674e71e7678f22 Stats: 63 lines in 10 files changed: 31 ins; 20 del; 12 mod [hat] F16 decoupled from Buffer type ------------- PR: https://git.openjdk.org/babylon/pull/674 From gfrost at openjdk.org Tue Nov 11 14:05:09 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 11 Nov 2025 14:05:09 GMT Subject: git: openjdk/babylon: code-reflection: Experimenting factories from pools Message-ID: Changeset: fb108552 Branch: code-reflection Author: Gary Frost Date: 2025-11-11 14:02:26 +0000 URL: https://git.openjdk.org/babylon/commit/fb1085520ef9f9db032d0eff82699811435ac3f4 Experimenting factories from pools ! hat/examples/view/src/main/java/view/Main.java ! hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/ViewFrame.java + hat/examples/view/src/main/java/view/f32/F32.java - hat/examples/view/src/main/java/view/f32/F32Matrix4x4.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java - hat/examples/view/src/main/java/view/f32/F32Triangle2D.java - hat/examples/view/src/main/java/view/f32/F32Triangle3D.java - hat/examples/view/src/main/java/view/f32/F32Vec2.java - hat/examples/view/src/main/java/view/f32/F32Vec3.java + hat/examples/view/src/main/java/view/f32/F32x2.java + hat/examples/view/src/main/java/view/f32/F32x2Triangle.java + hat/examples/view/src/main/java/view/f32/F32x3.java + hat/examples/view/src/main/java/view/f32/F32x3Triangle.java + hat/examples/view/src/main/java/view/f32/F32x4x4.java - hat/examples/view/src/main/java/view/f32/FloatPool.java ! hat/examples/view/src/main/java/view/f32/ModelHighWaterMark.java - hat/examples/view/src/main/java/view/f32/Pool.java ! hat/examples/view/src/main/java/view/f32/ZPos.java + hat/examples/view/src/main/java/view/f32/factories/Factory16.java + hat/examples/view/src/main/java/view/f32/factories/Factory2.java + hat/examples/view/src/main/java/view/f32/factories/Factory3.java + hat/examples/view/src/main/java/view/f32/factories/Factory4.java + hat/examples/view/src/main/java/view/f32/pool/F32Pool.java + hat/examples/view/src/main/java/view/f32/pool/F32x2Pool.java + hat/examples/view/src/main/java/view/f32/pool/F32x2TrianglePool.java + hat/examples/view/src/main/java/view/f32/pool/F32x3Pool.java + hat/examples/view/src/main/java/view/f32/pool/F32x3TrianglePool.java + hat/examples/view/src/main/java/view/f32/pool/F32x4x4Pool.java + hat/examples/view/src/main/java/view/f32/pool/Pool.java From gfrost at openjdk.org Tue Nov 11 14:06:36 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 11 Nov 2025 14:06:36 GMT Subject: [code-reflection] Integrated: Experimenting factories from pools Message-ID: Just some experiments separating types from 'collections' pools and factories. ------------- Commit messages: - Experimenting factories from pools Changes: https://git.openjdk.org/babylon/pull/675/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=675&range=00 Stats: 2720 lines in 30 files changed: 1471 ins; 1194 del; 55 mod Patch: https://git.openjdk.org/babylon/pull/675.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/675/head:pull/675 PR: https://git.openjdk.org/babylon/pull/675 From gfrost at openjdk.org Tue Nov 11 14:06:37 2025 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 11 Nov 2025 14:06:37 GMT Subject: [code-reflection] Integrated: Experimenting factories from pools In-Reply-To: References: Message-ID: On Tue, 11 Nov 2025 13:58:44 GMT, Gary Frost wrote: > Just some experiments separating types from 'collections' pools and factories. This pull request has now been integrated. Changeset: fb108552 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/fb1085520ef9f9db032d0eff82699811435ac3f4 Stats: 2720 lines in 30 files changed: 1471 ins; 1194 del; 55 mod Experimenting factories from pools ------------- PR: https://git.openjdk.org/babylon/pull/675 From duke at openjdk.org Tue Nov 11 20:17:13 2025 From: duke at openjdk.org (duke) Date: Tue, 11 Nov 2025 20:17:13 GMT Subject: [code-reflection] RFR: Fix arrayview tests In-Reply-To: References: Message-ID: On Tue, 11 Nov 2025 20:09:10 GMT, Ruby Chen wrote: > Fix arrayview tests and also enabled vector arrayview tests. @rbrchen Your change (at version 2d9ab0dc359defc777b0a536598eeb74d7001208) is now ready to be sponsored by a Committer. ------------- PR Comment: https://git.openjdk.org/babylon/pull/676#issuecomment-3518588757 From duke at openjdk.org Tue Nov 11 20:17:13 2025 From: duke at openjdk.org (Ruby Chen) Date: Tue, 11 Nov 2025 20:17:13 GMT Subject: [code-reflection] RFR: Fix arrayview tests Message-ID: Fix arrayview tests and also enabled vector arrayview tests. ------------- Commit messages: - Fix arrayview tests Changes: https://git.openjdk.org/babylon/pull/676/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=676&range=00 Stats: 782 lines in 4 files changed: 42 ins; 18 del; 722 mod Patch: https://git.openjdk.org/babylon/pull/676.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/676/head:pull/676 PR: https://git.openjdk.org/babylon/pull/676 From duke at openjdk.org Wed Nov 12 09:02:03 2025 From: duke at openjdk.org (Ruby Chen) Date: Wed, 12 Nov 2025 09:02:03 GMT Subject: [code-reflection] Integrated: Fix arrayview tests In-Reply-To: References: Message-ID: On Tue, 11 Nov 2025 20:09:10 GMT, Ruby Chen wrote: > Fix arrayview tests and also enabled vector arrayview tests. This pull request has now been integrated. Changeset: a1b01376 Author: Ruby Chen Committer: Gary Frost URL: https://git.openjdk.org/babylon/commit/a1b013768457ea1918fcfbca1eb540d62a478874 Stats: 782 lines in 4 files changed: 42 ins; 18 del; 722 mod Fix arrayview tests ------------- PR: https://git.openjdk.org/babylon/pull/676 From gfrost at openjdk.org Wed Nov 12 09:03:19 2025 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 12 Nov 2025 09:03:19 GMT Subject: git: openjdk/babylon: code-reflection: Fix arrayview tests Message-ID: <0bdb5efb-883f-4e7a-9767-5f11b8bd6ebf@openjdk.org> Changeset: a1b01376 Branch: code-reflection Author: Ruby Chen Committer: Gary Frost Date: 2025-11-12 08:58:31 +0000 URL: https://git.openjdk.org/babylon/commit/a1b013768457ea1918fcfbca1eb540d62a478874 Fix arrayview tests ! hat/core/src/main/java/hat/phases/HATDialectifyArrayViewPhase.java ! hat/examples/blackscholes/src/main/java/blackscholes/Main.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestVectorArrayView.java From mcimadamore at openjdk.org Wed Nov 12 14:29:50 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 14:29:50 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference Message-ID: This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: 1. `resolveToDirectMethod`, `resolveToDirectHandle` 2. `resolveToMethod`, `resolveToHandle` The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. Similary, `resolveToMethod` was never used -- because, when looking for a declaration, it's likely one doesn't want to appeal to inheritance. For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` 2. `resolveToHandle` To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). ------------- Commit messages: - Revert spurious test changes - Fix trivial issue in validation - Add javadoc - Cleanup resolution method names - Simplify resolution of MethodRef - Initial push Changes: https://git.openjdk.org/babylon/pull/677/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=00 Stats: 606 lines in 24 files changed: 278 ins; 233 del; 95 mod Patch: https://git.openjdk.org/babylon/pull/677.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/677/head:pull/677 PR: https://git.openjdk.org/babylon/pull/677 From mcimadamore at openjdk.org Wed Nov 12 15:31:44 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 15:31:44 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:18:03 GMT, Maurizio Cimadamore wrote: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). I'm not too sure if having the `declared` variant makes sense... the uses in HAT seems to reflect this pattern: var method = invokeOp.invokeDescriptor().resolveToMethod(lookup, invokeOp.invokeKind()); CoreOp.FuncOp f = Op.ofMethod(method).orElse(null); It seems sensible for this code to work _regardless_ of whether the resolved method is declared in `refType` or not. Perhaps, the right thing to do would be to always use `MH::lookup`-like resolution semantics (for both `MethodRef` and `FieldRef`, and regardless of what the resolution output is a reflective class or not). ------------- PR Comment: https://git.openjdk.org/babylon/pull/677#issuecomment-3522527676 From jfumero at openjdk.org Wed Nov 12 15:49:04 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 12 Nov 2025 15:49:04 GMT Subject: [code-reflection] RFR: [hat] DeviceType interface definition for private/local data structures Message-ID: This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. Example: interface DevicePrivateArray2 extends DeviceType { F16 array(int index); // F16 is a predefine HAT type void array(int index, F16 value); DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns .withDeps(F16.class, half -> half.withField("value"))); // compose of this type // compatible with the prev. IFace version static DevicePrivateArray2 create(Accelerator accelerator) { return null; } // marker to create this object in private memory static DevicePrivateArray2 createPrivate() { return null; } } How to test? HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type ------------- Commit messages: - [hat] Fast mxm in F16 added as unittest - [hat] refactoring F16 name - [hat] refactor devicetype codegen - [hat] debug message cleanup - [hat] Test unsupported removed due to errors in CUDA - Merge branch 'code-reflection' into hat/device/types - test class reorganized - [hat] CUDA Backend using the new F16 builtin - [hat] F16 built-in type for HAT - [hat] DeviceType load phase refined - ... and 9 more: https://git.openjdk.org/babylon/compare/a1b01376...37b8417a Changes: https://git.openjdk.org/babylon/pull/678/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=678&range=00 Stats: 1696 lines in 38 files changed: 1320 ins; 166 del; 210 mod Patch: https://git.openjdk.org/babylon/pull/678.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/678/head:pull/678 PR: https://git.openjdk.org/babylon/pull/678 From asotona at openjdk.org Wed Nov 12 17:36:30 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 17:36:30 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. Message-ID: This PR include following changes: - op-building methods isolated from the original code and moved to a synthetic inner class - fixed boxing in `OpBuilder` - op-building methods are generated by `BytecodeGenerator` and support wide range of ops - `CodeModelTranslator` is deleted - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) Remaining tasks: - implement part 2. type-building helper method(s) to reduce the overhead even more - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) - cleanup `BytecodeGenerator` API ------------- Commit messages: - nit fixes - Merge branch 'code-reflection' into opbuilder-optimizations - synthetic helper class generation - work in progress - synthetic helper class generation - work in progress - synthetic helper class generation - work in progress - synthetic helper class generation - work in progress Changes: https://git.openjdk.org/babylon/pull/679/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=00 Stats: 544 lines in 5 files changed: 265 ins; 216 del; 63 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Wed Nov 12 17:42:02 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 17:42:02 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods isolated from the original code and moved to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > > Remaining tasks: > > - implement part 2. type-building helper method(s) to reduce the overhead even more > - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) > - cleanup `BytecodeGenerator` API Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: nit fixes ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/4b7a1eca..50e01fdf Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=00-01 Stats: 2 lines in 1 file changed: 0 ins; 1 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Wed Nov 12 17:42:50 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 17:42:50 GMT Subject: [code-reflection] Withdrawn: New model store implementation In-Reply-To: References: Message-ID: On Fri, 31 Oct 2025 13:57:13 GMT, Adam Sotona wrote: > This PR adds an alternative code model storage implementation. > > With the new implementation compiler attaches a code-model attribute to the synthesized helper method. The method then returns the model by `invokedynamic` of a bootstrap method that reads and materializes the attribute at runtime. > > The new implementation can be selected by setting the compiler option `codeModelStorageOption` to `"CODE_MODEL_ATTRIBUTE"`. > > Please review. > > Thanks, > Adam This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/babylon/pull/654 From psandoz at openjdk.org Wed Nov 12 18:05:38 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 18:05:38 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference In-Reply-To: References: Message-ID: <44IEiix9EG3qXjp0XuxzA6VKyJu7Ou-YNtMEba-Vkr0=.58228a78-ee8f-4001-b8d9-90182deea8af@github.com> On Wed, 12 Nov 2025 15:29:11 GMT, Maurizio Cimadamore wrote: > Perhaps, the right thing to do would be to always use `MH::lookup`-like resolution semantics (for both `MethodRef` and `FieldRef`, and regardless of what the resolution output is a reflective class or not). Agreed. The use cases in HAT and ONNX and in the test `TestTransitiveInvokeModule` are intended to work with method refs that are use site descriptors (or where the receiver/owner is not always the declaring class) e.g., when building a call graph. I am not sure why we added the declared variants, perhaps i was getting confused trying to support method resolution and method handle resolution in a consistent way. We need the former to trampoline from a method declaration to its code model, if present, when building a call graph of reflected methods. We should be able to compose method resolution from method handle resolution, and for method resolution maybe it is possible to avoid passing in the invoke kind if we first try method handle resolution to a instance method and then try to a static method? ------------- PR Comment: https://git.openjdk.org/babylon/pull/677#issuecomment-3523220109 From psandoz at openjdk.org Wed Nov 12 18:23:20 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 18:23:20 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:18:03 GMT, Maurizio Cimadamore wrote: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). The lumping of `ConstructorRef` into `MethodRef` looks good, that's the easy part :-) This PR does change some resolution behavior in HAT but appears not to break anything, but may limit what it can do in the future. I do think as you say we should consistently resolve method/fields refs as use site descriptors regardless of what they resolve to. We could do that in a follow on PR. ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/677#pullrequestreview-3454852224 From mcimadamore at openjdk.org Wed Nov 12 18:49:58 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 18:49:58 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference [v2] In-Reply-To: References: Message-ID: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Update resolution logic to be use-site ------------- Changes: - all: https://git.openjdk.org/babylon/pull/677/files - new: https://git.openjdk.org/babylon/pull/677/files/7177c4e4..acb6f256 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=00-01 Stats: 92 lines in 11 files changed: 41 ins; 13 del; 38 mod Patch: https://git.openjdk.org/babylon/pull/677.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/677/head:pull/677 PR: https://git.openjdk.org/babylon/pull/677 From mcimadamore at openjdk.org Wed Nov 12 18:50:00 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 18:50:00 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:18:03 GMT, Maurizio Cimadamore wrote: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). I've updated the PR so that the all resolution methods now use use-site resolution logic as well. The primitive for resolution is the method handle/var handle resolution. For methods, we try static then instance InvokeKind, so that users don't have to pass in an extra parameter. After thinking some more, I don't think the code in `TypeVariableType` requires more tweaks... at the end of the day, we attempt resolution, and see if the target method/constructor has the declared type variable, which is ok. We can make the logic tighter at a later point if we think it's preferrable. ------------- PR Comment: https://git.openjdk.org/babylon/pull/677#issuecomment-3523418225 From psandoz at openjdk.org Wed Nov 12 19:02:15 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 19:02:15 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:42:02 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > nit fixes This looks promising, and we get to leverage more of what we have built, so we can further test and improve it. We need to get reflectable lambdas working and it passing all tests before its ready. src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java line 560: > 558: try { > 559: // @@@ Use method handle with full power mode > 560: var cls = Stream.of(method.getDeclaringClass().getDeclaredClasses()).filter(c -> c.getName().endsWith("$$CM")).findFirst(); I realize you are trying to avoid generating any code using the tree API but i think it still may be best to keep generating the synthetic method that produces the code model. That synthetic method hides the details without having to change the runtime code allowing us to experiment with various encodings e.g., we could decide to generate one nested class per reflectable. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java line 216: > 214: } > 215: > 216: public static List createSupportFunctions(JavaType currentClass) { Ideally we could declare a reflectable methods and let the compiler build the models for us, not sure that is possible at this stage. Placing the corresponding Java code in a comment would be the next best thing. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 388: > 386: } > 387: > 388: private Type synthClassDecl(String className, List funcs) { Interesting, you cleverly side-step the restriction we could not work out how to overcome, by generating a "synthetic" nested static class. test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java line 47: > 45: * @modules jdk.incubator.code/jdk.incubator.code.internal > 46: * @run junit TestCodeBuilder > 47: * @ignore Is this a temporary restriction? Until you get to part 2. ------------- PR Review: https://git.openjdk.org/babylon/pull/679#pullrequestreview-3454892581 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519449414 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519374640 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519392950 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519396253 From mcimadamore at openjdk.org Wed Nov 12 19:11:52 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 19:11:52 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 18:38:37 GMT, Paul Sandoz wrote: >> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: >> >> nit fixes > > src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 388: > >> 386: } >> 387: >> 388: private Type synthClassDecl(String className, List funcs) { > > Interesting, you cleverly side-step the restriction we could not work out how to overcome, by generating a "synthetic" nested static class. Unfortunately, generating the .class file here is not great. Basically, javac compilation happens in stages, and the classfile generation is the last stage. Typically if there's errors, or if the user has selected specific compilation policies, we might stop at a certain phase w/o generating bytecode -- but since here we're generating bytecode in the middle of a "lowering" step, we end up violating these constraints. The right way to do things here would be to generate a class AST in ReflectMethods (e.g. like `Lower` does in some cases -- e.g. for private constructors). I suspect that, to do that, you might need to resurrect the logic that goes from the func ops down to an AST (which this PR deletes). ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519480308 From psandoz at openjdk.org Wed Nov 12 19:13:46 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 19:13:46 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 18:49:58 GMT, Maurizio Cimadamore wrote: >> This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. >> >> When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: >> >> 1. `resolveToDirectMethod`, `resolveToDirectHandle` >> 2. `resolveToMethod`, `resolveToHandle` >> >> The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. >> >> The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. >> >> In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. >> >> Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). >> >> For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: >> >> 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` >> 2. `resolveToHandle` >> >> To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. >> >> I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). >> >> I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. >> >> All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Update resolution logic to be use-site src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/FieldRef.java line 74: > 72: * @throws ReflectiveOperationException if a resolution error occurs > 73: * @throws UnsupportedOperationException if this reference is not a constructor reference > 74: * @throws IllegalArgumentException if the provided {@code kind} is unsupported for this method reference Not relevant for fields. src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/MethodRefImpl.java line 108: > 106: if (mh == null) { > 107: try { > 108: mh = resolveToHandle(l, InvokeKind.STATIC); Suggestion: mh = resolveToHandle(l, InvokeKind.INSTANCE); ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/677#discussion_r2519484052 PR Review Comment: https://git.openjdk.org/babylon/pull/677#discussion_r2519480745 From mcimadamore at openjdk.org Wed Nov 12 19:26:13 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 19:26:13 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference [v3] In-Reply-To: References: Message-ID: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Address review comments ------------- Changes: - all: https://git.openjdk.org/babylon/pull/677/files - new: https://git.openjdk.org/babylon/pull/677/files/acb6f256..0360ecdd Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=01-02 Stats: 2 lines in 2 files changed: 0 ins; 1 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/677.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/677/head:pull/677 PR: https://git.openjdk.org/babylon/pull/677 From psandoz at openjdk.org Wed Nov 12 19:26:57 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 19:26:57 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 19:09:20 GMT, Maurizio Cimadamore wrote: >> src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 388: >> >>> 386: } >>> 387: >>> 388: private Type synthClassDecl(String className, List funcs) { >> >> Interesting, you cleverly side-step the restriction we could not work out how to overcome, by generating a "synthetic" nested static class. > > Unfortunately, generating the .class file here is not great. Basically, javac compilation happens in stages, and the classfile generation is the last stage. Typically if there's errors, or if the user has selected specific compilation policies, we might stop at a certain phase w/o generating bytecode -- but since here we're generating bytecode in the middle of a "lowering" step, we end up violating these constraints. > > The right way to do things here would be to generate a class AST in ReflectMethods (e.g. like `Lower` does in some cases -- e.g. for private constructors). I suspect that, to do that, you might need to resurrect the logic that goes from the func ops down to an AST (which this PR deletes). Good point, too clever perhaps :-) I suspect it is easy to enhance `CodeModelTranslator` to support the generation of multiple AST methods from func ops, and on a case by case basis enhanced to support the translation of additional ops we need to use (e.g., conditional expression op to the ? : operator node). ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519519807 From psandoz at openjdk.org Wed Nov 12 19:28:57 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 19:28:57 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference [v3] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 19:26:13 GMT, Maurizio Cimadamore wrote: >> This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. >> >> When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: >> >> 1. `resolveToDirectMethod`, `resolveToDirectHandle` >> 2. `resolveToMethod`, `resolveToHandle` >> >> The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. >> >> The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. >> >> In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. >> >> Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). >> >> For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: >> >> 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` >> 2. `resolveToHandle` >> >> To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. >> >> I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). >> >> I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. >> >> All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Address review comments Marked as reviewed by psandoz (Lead). src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/FieldRef.java line 73: > 71: * @param l the lookup used for resolving this field reference > 72: * @throws ReflectiveOperationException if a resolution error occurs > 73: * @throws UnsupportedOperationException if this reference is not a constructor reference Suggestion: ------------- PR Review: https://git.openjdk.org/babylon/pull/677#pullrequestreview-3455086153 PR Review Comment: https://git.openjdk.org/babylon/pull/677#discussion_r2519524968 From asotona at openjdk.org Wed Nov 12 20:32:14 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 20:32:14 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: <_B9zii7MWe0SUYp1oXo9gcEzX8nQuoOf3x6POiOmZHU=.63a4e694-dcc5-4aac-8ae0-db06967389b8@github.com> On Wed, 12 Nov 2025 18:58:31 GMT, Paul Sandoz wrote: >> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: >> >> nit fixes > > src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java line 560: > >> 558: try { >> 559: // @@@ Use method handle with full power mode >> 560: var cls = Stream.of(method.getDeclaringClass().getDeclaredClasses()).filter(c -> c.getName().endsWith("$$CM")).findFirst(); > > I realize you are trying to avoid generating any code using the tree API but i think it still may be best to keep generating the synthetic method that produces the code model. That synthetic method hides the details without having to change the runtime code allowing us to experiment with various encodings e.g., we could decide to generate one nested class per reflectable. This generates the synthetic methods, just into an internal class. BytecodeGenerator produces full class (with constant pool) and it does not mix match with ASTs. I've tried also an experiment to inject Code attribute into the synth method, however complexity of interoperation between existing bytecode and ASTs is horrible. > test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java line 47: > >> 45: * @modules jdk.incubator.code/jdk.incubator.code.internal >> 46: * @run junit TestCodeBuilder >> 47: * @ignore > > Is this a temporary restriction? Until you get to part 2. It is because I didn't pack all the FuncOps into a ModuleOp, so they could call each other. Yes, it is expected as a part 2. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519722428 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519715392 From asotona at openjdk.org Wed Nov 12 20:32:16 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 20:32:16 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 19:24:22 GMT, Paul Sandoz wrote: >> Unfortunately, generating the .class file here is not great. Basically, javac compilation happens in stages, and the classfile generation is the last stage. Typically if there's errors, or if the user has selected specific compilation policies, we might stop at a certain phase w/o generating bytecode -- but since here we're generating bytecode in the middle of a "lowering" step, we end up violating these constraints. >> >> The right way to do things here would be to generate a class AST in ReflectMethods (e.g. like `Lower` does in some cases -- e.g. for private constructors). I suspect that, to do that, you might need to resurrect the logic that goes from the func ops down to an AST (which this PR deletes). > > Good point, too clever perhaps :-) I suspect it is easy to enhance `CodeModelTranslator` to support the generation of multiple AST methods from func ops, and on a case by case basis enhanced to support the translation of additional ops we need to use (e.g., conditional expression op to the ? : operator node). Unfortunately I found `CodeModelTranslator` only supports very limited set of ops, no nested bodies and no more than a single entry block per method. I expect getting it at least to the shape of `BytecodeGenerator` would require non-trivial amount of work. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519712478 From psandoz at openjdk.org Wed Nov 12 20:42:49 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 20:42:49 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: <_B9zii7MWe0SUYp1oXo9gcEzX8nQuoOf3x6POiOmZHU=.63a4e694-dcc5-4aac-8ae0-db06967389b8@github.com> References: <_B9zii7MWe0SUYp1oXo9gcEzX8nQuoOf3x6POiOmZHU=.63a4e694-dcc5-4aac-8ae0-db06967389b8@github.com> Message-ID: On Wed, 12 Nov 2025 20:29:21 GMT, Adam Sotona wrote: >> src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java line 560: >> >>> 558: try { >>> 559: // @@@ Use method handle with full power mode >>> 560: var cls = Stream.of(method.getDeclaringClass().getDeclaredClasses()).filter(c -> c.getName().endsWith("$$CM")).findFirst(); >> >> I realize you are trying to avoid generating any code using the tree API but i think it still may be best to keep generating the synthetic method that produces the code model. That synthetic method hides the details without having to change the runtime code allowing us to experiment with various encodings e.g., we could decide to generate one nested class per reflectable. > > This generates the synthetic methods, just into an internal class. > BytecodeGenerator produces full class (with constant pool) and it does not mix match with ASTs. > I've tried also an experiment to inject Code attribute into the synth method, however complexity of interoperation between existing bytecode and ASTs is horrible. All i am saying here is the details about the nested class can be embedded in the synthetic method that invokes the static method of the same name on the nested class. Thereby we hide those details from the runtime. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519753124 From psandoz at openjdk.org Wed Nov 12 20:58:28 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 20:58:28 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 20:25:48 GMT, Adam Sotona wrote: >> Good point, too clever perhaps :-) I suspect it is easy to enhance `CodeModelTranslator` to support the generation of multiple AST methods from func ops, and on a case by case basis enhanced to support the translation of additional ops we need to use (e.g., conditional expression op to the ? : operator node). > > Unfortunately I found `CodeModelTranslator` only supports very limited set of ops, no nested bodies and no more than a single entry block per method. I expect getting it at least to the shape of `BytecodeGenerator` would require non-trivial amount of work. If that were the goal then I agree it would certainly be a non-trivial amount of work. We have a more modest goal - ensuring that a code model for a reasonably large reflectable method/lambda can be encoded using our current mechanism without breaking class file limits. We need to be good enough, and this unlikely to be the final solution as to how we store the code model. Looking at the `OpBuilder` changes in `createSupportFunctions` I suspect that the enhancements required to `CodeModelTranslator` are manageable e.g., support for multiple methods, and the ? : operator. @mabbay wrote `CodeModelTranslator` and he may have a sense of how easy it would be to enhance with support for additional ops. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519793316 From asotona at openjdk.org Wed Nov 12 21:11:30 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 12 Nov 2025 21:11:30 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 20:54:32 GMT, Paul Sandoz wrote: >> Unfortunately I found `CodeModelTranslator` only supports very limited set of ops, no nested bodies and no more than a single entry block per method. I expect getting it at least to the shape of `BytecodeGenerator` would require non-trivial amount of work. > > If that were the goal then I agree it would certainly be a non-trivial amount of work. We have a more modest goal - ensuring that a code model for a reasonably large reflectable method/lambda can be encoded using our current mechanism without breaking class file limits. We need to be good enough, and this unlikely to be the final solution as to how we store the code model. > > Looking at the `OpBuilder` changes in `createSupportFunctions` I suspect that the enhancements required to `CodeModelTranslator` are manageable e.g., support for multiple methods, and the ? : operator. @mabbay wrote `CodeModelTranslator` and he may have a sense of how easy it would be to enhance with support for additional ops. It is an option. I just don't see much of added value when we manually hard-code proprietary code models and then translate them with proprietary translator to ASTs. BytecodeGenerator here revealed bugs in the models, and on the other side it revealed blind spots in the BytecodeGenerator itself. It would make more sense to hard-code it in the ASTs then. For example the `tableswitch` instruction I would like to look at it in the BytecodeGenerator have the same problem in the CodeModelTranslator. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2519828301 From mcimadamore at openjdk.org Wed Nov 12 22:30:11 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 22:30:11 GMT Subject: git: openjdk/babylon: code-reflection: Lump constructor reference with method reference Message-ID: <06008941-562e-46a5-9792-8ad5694a431f@openjdk.org> Changeset: 92b4cb8e Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-12 22:27:25 +0000 URL: https://git.openjdk.org/babylon/commit/92b4cb8eaca7e7f66e05edc1fe7d62d785f28d1e Lump constructor reference with method reference Reviewed-by: psandoz ! cr-examples/onnx/src/main/java/oracle/code/onnx/OnnxRuntime.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/compiler/OnnxTransformer.java ! cr-examples/triton/pom.xml ! cr-examples/triton/src/main/java/oracle/code/triton/TritonTransformer.java ! hat/core/src/main/java/hat/BufferTagger.java ! hat/core/src/main/java/hat/optools/OpTk.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/StringConcatTransformer.java - src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/ConstructorRef.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/FieldRef.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaRef.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaType.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/MethodRef.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/TypeVariableType.java - src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/ConstructorRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/FieldRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/JavaTypeUtils.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/MethodRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java ! test/jdk/java/lang/reflect/code/TestTransitiveInvokeModule.java ! test/jdk/java/lang/reflect/code/bytecode/lift/BytecodeLift.java ! test/jdk/java/lang/reflect/code/type/TestReferences.java From mcimadamore at openjdk.org Wed Nov 12 22:30:51 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 22:30:51 GMT Subject: [code-reflection] RFR: Lump constructor reference with method reference [v4] In-Reply-To: References: Message-ID: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Update src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/FieldRef.java Co-authored-by: Paul Sandoz ------------- Changes: - all: https://git.openjdk.org/babylon/pull/677/files - new: https://git.openjdk.org/babylon/pull/677/files/0360ecdd..27c6d9d8 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=03 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=677&range=02-03 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/677.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/677/head:pull/677 PR: https://git.openjdk.org/babylon/pull/677 From mcimadamore at openjdk.org Wed Nov 12 22:30:54 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 22:30:54 GMT Subject: [code-reflection] Integrated: Lump constructor reference with method reference In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:18:03 GMT, Maurizio Cimadamore wrote: > This PR merges constructor and method references together. The two share several commonalities -- they both have an owner type a name and a function type. The only distinction is that a constructor reference always has the special name `` but that can be easily accommodated. > > When merging, most of the effort went into the resolution routines. `MethodRef` provided two families of resolution methods: > > 1. `resolveToDirectMethod`, `resolveToDirectHandle` > 2. `resolveToMethod`, `resolveToHandle` > > The methods in (1) seemed to look for a _declared_ method in the reference's owner type. E.g. for a reference like `A::m()`, the methods in (1) threw an exception if the resolved method/handle pointed to a method that was not in `A`. > > The methods in (2) looked for any (accessible) matching method. So, in the above case, if the result of resolution was some `B::m()` that would be returned instead. > > In other words, (1) is used when treating the method reference as a _declaration_, whereas (2) is used when treating the method reference as a use site, or call site. > > Perhaps unsurprisingly, some of these combinations were never used: `resolveToDirectHandle` doesn't make much sense -- typically a method handle is needed to perform an invocation, in which case you probably want same semantics as a bytecode `invokeXYZ` instruction. On the other hand, `resolveToMethod` seemed to be used inside HAT (I'm in the process of investigating if this use was deliberate). > > For these reasons I decided to only include the resolution methods that were actually used, and refine the naming scheme a little: > > 1, `resolveToDeclaredMethod`, `resolveToDeclaredConstructor` > 2. `resolveToHandle` > > To keep the naming consistent, I also updated `FieldRef::resolveToMember` to `FieldRef::resolveToField`. Notably, `FieldRef` didn't provide "redundant" resolution methods. > > I also tightened the impl of the methods in (1) so that they no longer require an `InvokeKind` parameter -- since these methods just look at declarations using core reflection, we don't need an invocation kind (which is needed when resolving to a method handle). > > I also added javadoc to both `MethodRef` and `FieldRef`, to capture the indend semantics. > > All copiler and JDK tests pass. All examples in `cr-examples` build and pass tests (I had to tweak the pom file for the triton example, as that seemed broken). This pull request has now been integrated. Changeset: 92b4cb8e Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/92b4cb8eaca7e7f66e05edc1fe7d62d785f28d1e Stats: 627 lines in 24 files changed: 299 ins; 228 del; 100 mod Lump constructor reference with method reference Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/677 From mcimadamore at openjdk.org Wed Nov 12 22:34:32 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 12 Nov 2025 22:34:32 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: <2GqRRdecpVmVtdn6tLDqFnqf17NWdUjMG9_b3bmOtXs=.d6f82339-7af1-4c00-bfca-cf3597df6914@github.com> On Wed, 12 Nov 2025 21:09:02 GMT, Adam Sotona wrote: >> If that were the goal then I agree it would certainly be a non-trivial amount of work. We have a more modest goal - ensuring that a code model for a reasonably large reflectable method/lambda can be encoded using our current mechanism without breaking class file limits. We need to be good enough, and this unlikely to be the final solution as to how we store the code model. >> >> Looking at the `OpBuilder` changes in `createSupportFunctions` I suspect that the enhancements required to `CodeModelTranslator` are manageable e.g., support for multiple methods, and the ? : operator. @mabbay wrote `CodeModelTranslator` and he may have a sense of how easy it would be to enhance with support for additional ops. > > It is an option. > I just don't see much of added value when we manually hard-code proprietary code models and then translate them with proprietary translator to ASTs. BytecodeGenerator here revealed bugs in the models, and on the other side it revealed blind spots in the BytecodeGenerator itself. > It would make more sense to hard-code it in the ASTs then. > For example the `tableswitch` instruction I would like to look at it in the BytecodeGenerator have the same problem in the CodeModelTranslator. Another option we discussed offline, in case we want to keep things more fluid, would be to make this trick more official. That is, during `ReflectMethods`, we generate some ops, we save them on the AST, then, when the time comes to generate bytecode (`JavaCompiler::generate`) we pick these up again, and we run them through the `BytecodeGenerator`. This will at least respect the order in which things should occur. One thing that is related is what is the role of `OpBuilder` going forward, because it's looking now like a very specialized piece of code that probably belongs more near to `ReflectMethods` than as a standalone API? And, if that's true, perhaps once the op method format settles, we can do a pass on the code and just generate the AST we want directly, w/o going through code models... ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2520013783 From psandoz at openjdk.org Wed Nov 12 23:18:35 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 12 Nov 2025 23:18:35 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: <2GqRRdecpVmVtdn6tLDqFnqf17NWdUjMG9_b3bmOtXs=.d6f82339-7af1-4c00-bfca-cf3597df6914@github.com> References: <2GqRRdecpVmVtdn6tLDqFnqf17NWdUjMG9_b3bmOtXs=.d6f82339-7af1-4c00-bfca-cf3597df6914@github.com> Message-ID: On Wed, 12 Nov 2025 22:31:26 GMT, Maurizio Cimadamore wrote: >> It is an option. >> I just don't see much of added value when we manually hard-code proprietary code models and then translate them with proprietary translator to ASTs. BytecodeGenerator here revealed bugs in the models, and on the other side it revealed blind spots in the BytecodeGenerator itself. >> It would make more sense to hard-code it in the ASTs then. >> For example the `tableswitch` instruction I would like to look at it in the BytecodeGenerator have the same problem in the CodeModelTranslator. > > Another option we discussed offline, in case we want to keep things more fluid, would be to make this trick more official. That is, during `ReflectMethods`, we generate some ops, we save them on the AST, then, when the time comes to generate bytecode (`JavaCompiler::generate`) we pick these up again, and we run them through the `BytecodeGenerator`. This will at least respect the order in which things should occur. > > One thing that is related is what is the role of `OpBuilder` going forward, because it's looking now like a very specialized piece of code that probably belongs more near to `ReflectMethods` than as a standalone API? > > And, if that's true, perhaps once the op method format settles, we can do a pass on the code and just generate the AST we want directly, w/o going through code models... If we can represent the building of the model purely as a model it gives us flexibility to translate and test e.g., testing using the interpreter *or* bytecode generator. The modest set of models we build by hand, and fit into the larger model, could in theory eventually be built by the compiler itself. Let's try not to short circuit this and keep pushing. The key abstraction is the translation of a body with one block in some context, we already support it for one func op in the context of a `JCMethodDecl` that has one block node , we can extend for more than one func op in a module op, and then extend to support `ConditionalExpressionOp` that has three bodies, in the context of `JCConditional` that has three expression nodes. I am glad as we have explored this area we have found limitations, that's valuable and we should find solutions for those regardless. So even if cannot use `BytecodeGenerator` in this case it will almost certain be used in other cases. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2520105015 From psandoz at openjdk.org Thu Nov 13 03:03:37 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 13 Nov 2025 03:03:37 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: <2GqRRdecpVmVtdn6tLDqFnqf17NWdUjMG9_b3bmOtXs=.d6f82339-7af1-4c00-bfca-cf3597df6914@github.com> Message-ID: On Wed, 12 Nov 2025 23:15:53 GMT, Paul Sandoz wrote: >> Another option we discussed offline, in case we want to keep things more fluid, would be to make this trick more official. That is, during `ReflectMethods`, we generate some ops, we save them on the AST, then, when the time comes to generate bytecode (`JavaCompiler::generate`) we pick these up again, and we run them through the `BytecodeGenerator`. This will at least respect the order in which things should occur. >> >> One thing that is related is what is the role of `OpBuilder` going forward, because it's looking now like a very specialized piece of code that probably belongs more near to `ReflectMethods` than as a standalone API? >> >> And, if that's true, perhaps once the op method format settles, we can do a pass on the code and just generate the AST we want directly, w/o going through code models... > > If we can represent the building of the model purely as a model it gives us flexibility to translate and test e.g., testing using the interpreter *or* bytecode generator. > > The modest set of models we build by hand, and fit into the larger model, could in theory eventually be built by the compiler itself. Let's try not to short circuit this and keep pushing. The key abstraction is the translation of a body with one block in some context, we already support it for one func op in the context of a `JCMethodDecl` that has one block node , we can extend for more than one func op in a module op, and then extend to support `ConditionalExpressionOp` that has three bodies, in the context of `JCConditional` that has three expression nodes. > > I am glad as we have explored this area we have found limitations, that's valuable and we should find solutions for those regardless. So even if cannot use `BytecodeGenerator` in this case it will almost certain be used in other cases. > Another option we discussed offline, in case we want to keep things more fluid, would be to make this trick more official. That is, during `ReflectMethods`, we generate some ops, we save them on the AST, then, when the time comes to generate bytecode (`JavaCompiler::generate`) we pick these up again, and we run them through the `BytecodeGenerator`. This will at least respect the order in which things should occur. > I would prefer this approach if feasible. That would allow us cleanly to exercise all the layers. > One thing that is related is what is the role of `OpBuilder` going forward, because it's looking now like a very specialized piece of code that probably belongs more near to `ReflectMethods` than as a standalone API? > It's in the same package as ReflectMethods (at one point it might have been external, don't recall exactly). > And, if that's true, perhaps once the op method format settles, we can do a pass on the code and just generate the AST we want directly, w/o going through code models... Yes, that's a possibility to collapse the layers, although maybe a little harder to test independently. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2521058661 From jfumero at openjdk.org Thu Nov 13 09:29:07 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 09:29:07 GMT Subject: [code-reflection] RFR: [hat] DeviceType interface definition for private/local data structures In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:40:13 GMT, Juan Fumero wrote: > This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. > > As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. > > Example: > > > interface DevicePrivateArray2 extends DeviceType { > F16 array(int index); // F16 is a predefine HAT type > void array(int index, F16 value); > > DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, > builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns > .withDeps(F16.class, half -> half.withField("value"))); // compose of this type > > // compatible with the prev. IFace version > static DevicePrivateArray2 create(Accelerator accelerator) { return null; } > > // marker to create this object in private memory > static DevicePrivateArray2 createPrivate() { return null; } > } > > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type Holding the merge until we recover HAT from the master branch. So I will convert this PR to a draft PR ------------- PR Comment: https://git.openjdk.org/babylon/pull/678#issuecomment-3526714871 From mcimadamore at openjdk.org Thu Nov 13 10:02:51 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 10:02:51 GMT Subject: git: openjdk/babylon: code-reflection: Regression: HAT tests broken after pull/677 Message-ID: <695c1e1f-e867-4674-b8a5-28f0f3cf7d21@openjdk.org> Changeset: f2a353c5 Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-13 09:57:59 +0000 URL: https://git.openjdk.org/babylon/commit/f2a353c566964cebebed460907cc61c6eb859799 Regression: HAT tests broken after pull/677 ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/FieldRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/MethodRefImpl.java From mcimadamore at openjdk.org Thu Nov 13 10:02:17 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 10:02:17 GMT Subject: [code-reflection] Integrated: Regression: HAT tests broken after pull/677 Message-ID: The revised `MethodRef::resolveToMethod` fails to resolve non-static method due to a subtle bug in the combo lookup. We should add more tests here, and possibly consolidate the lookup code, but for now I'll just fix the regression and come back later (as this is impacting HAT work). ------------- Commit messages: - Fix issue in method resolution Changes: https://git.openjdk.org/babylon/pull/680/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=680&range=00 Stats: 7 lines in 2 files changed: 3 ins; 2 del; 2 mod Patch: https://git.openjdk.org/babylon/pull/680.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/680/head:pull/680 PR: https://git.openjdk.org/babylon/pull/680 From mcimadamore at openjdk.org Thu Nov 13 10:02:18 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 10:02:18 GMT Subject: [code-reflection] Integrated: Regression: HAT tests broken after pull/677 In-Reply-To: References: Message-ID: On Thu, 13 Nov 2025 09:54:30 GMT, Maurizio Cimadamore wrote: > The revised `MethodRef::resolveToMethod` fails to resolve non-static method due to a subtle bug in the combo lookup. > > We should add more tests here, and possibly consolidate the lookup code, > but for now I'll just fix the regression and come back later (as this is impacting HAT work). This pull request has now been integrated. Changeset: f2a353c5 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/f2a353c566964cebebed460907cc61c6eb859799 Stats: 7 lines in 2 files changed: 3 ins; 2 del; 2 mod Regression: HAT tests broken after pull/677 ------------- PR: https://git.openjdk.org/babylon/pull/680 From jfumero at openjdk.org Thu Nov 13 10:42:57 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 10:42:57 GMT Subject: [code-reflection] RFR: [hat] DeviceType interface definition for private/local data structures [v2] In-Reply-To: References: Message-ID: <7Zzm5MdCycvCKLmRDZfQBjYMflP8ULoW-GV3_madvfM=.91f03b60-4d07-4687-8c03-a45ec5c1dfa7@github.com> > This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. > > As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. > > Example: > > > interface DevicePrivateArray2 extends DeviceType { > F16 array(int index); // F16 is a predefine HAT type > void array(int index, F16 value); > > DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, > builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns > .withDeps(F16.class, half -> half.withField("value"))); // compose of this type > > // compatible with the prev. IFace version > static DevicePrivateArray2 create(Accelerator accelerator) { return null; } > > // marker to create this object in private memory > static DevicePrivateArray2 createPrivate() { return null; } > } > > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type Juan Fumero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: - Merge branch 'code-reflection' into hat/device/types - [hat] Fast mxm in F16 added as unittest - [hat] refactoring F16 name - [hat] refactor devicetype codegen - [hat] debug message cleanup - [hat] Test unsupported removed due to errors in CUDA - Merge branch 'code-reflection' into hat/device/types - test class reorganized - [hat] CUDA Backend using the new F16 builtin - [hat] F16 built-in type for HAT - ... and 10 more: https://git.openjdk.org/babylon/compare/f2a353c5...bdb3444a ------------- Changes: https://git.openjdk.org/babylon/pull/678/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=678&range=01 Stats: 1696 lines in 38 files changed: 1320 ins; 166 del; 210 mod Patch: https://git.openjdk.org/babylon/pull/678.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/678/head:pull/678 PR: https://git.openjdk.org/babylon/pull/678 From jfumero at openjdk.org Thu Nov 13 11:50:41 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 11:50:41 GMT Subject: [code-reflection] RFR: [hat] DeviceType interface definition for private/local data structures [v3] In-Reply-To: References: Message-ID: > This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. > > As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. > > Example: > > > interface DevicePrivateArray2 extends DeviceType { > F16 array(int index); // F16 is a predefine HAT type > void array(int index, F16 value); > > DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, > builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns > .withDeps(F16.class, half -> half.withField("value"))); // compose of this type > > // compatible with the prev. IFace version > static DevicePrivateArray2 create(Accelerator accelerator) { return null; } > > // marker to create this object in private memory > static DevicePrivateArray2 createPrivate() { return null; } > } > > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type Juan Fumero has updated the pull request incrementally with two additional commits since the last revision: - [hat] minor change - [HAT] mxm example using F16 fixed ------------- Changes: - all: https://git.openjdk.org/babylon/pull/678/files - new: https://git.openjdk.org/babylon/pull/678/files/bdb3444a..4a650501 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=678&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=678&range=01-02 Stats: 27 lines in 2 files changed: 11 ins; 3 del; 13 mod Patch: https://git.openjdk.org/babylon/pull/678.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/678/head:pull/678 PR: https://git.openjdk.org/babylon/pull/678 From gfrost at openjdk.org Thu Nov 13 13:39:57 2025 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 13 Nov 2025 13:39:57 GMT Subject: git: openjdk/babylon: code-reflection: Hat view more experiments Message-ID: <2eda8590-be7d-4e1a-9af7-c1d31aa562e1@openjdk.org> Changeset: ff924aa5 Branch: code-reflection Author: Gary Frost Date: 2025-11-13 13:39:06 +0000 URL: https://git.openjdk.org/babylon/commit/ff924aa516f5800f4a9ec5d5ebca393da6267b0e Hat view more experiments ! hat/core/src/main/java/hat/util/Regex.java + hat/examples/view/src/main/java/view/EliteMeshParser.java - hat/examples/view/src/main/java/view/EliteMeshReader.java ! hat/examples/view/src/main/java/view/Main.java ! hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/ViewFrame.java ! hat/examples/view/src/main/java/view/f32/F32.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java ! hat/examples/view/src/main/java/view/f32/F32x2.java ! hat/examples/view/src/main/java/view/f32/F32x2Triangle.java ! hat/examples/view/src/main/java/view/f32/F32x3.java ! hat/examples/view/src/main/java/view/f32/F32x3Triangle.java ! hat/examples/view/src/main/java/view/f32/F32x4x4.java ! hat/examples/view/src/main/java/view/f32/ModelHighWaterMark.java ! hat/examples/view/src/main/java/view/f32/ZPos.java ! hat/examples/view/src/main/java/view/f32/pool/F32Pool.java + hat/examples/view/src/main/java/view/f32/pool/F32PoolBased.java ! hat/examples/view/src/main/java/view/f32/pool/F32x2Pool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x2TrianglePool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x3Pool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x3TrianglePool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x4x4Pool.java ! hat/examples/view/src/main/java/view/f32/pool/Pool.java From gfrost at openjdk.org Thu Nov 13 13:42:25 2025 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 13 Nov 2025 13:42:25 GMT Subject: [code-reflection] Integrated: Hat view more experiments Message-ID: <_GoyLxu-sY9EWJNluXLMOsTtnPwYsy7PSxQ4Ybgg_Gc=.01b6a1ad-b59a-407e-a4ed-12ece459ad0c@github.com> More experiments representing vectors as ifaces and having javaside collections in pools/lists ------------- Commit messages: - add copyright - Simplify pool access - Simplify pool access - cleanup Changes: https://git.openjdk.org/babylon/pull/681/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=681&range=00 Stats: 991 lines in 23 files changed: 363 ins; 432 del; 196 mod Patch: https://git.openjdk.org/babylon/pull/681.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/681/head:pull/681 PR: https://git.openjdk.org/babylon/pull/681 From gfrost at openjdk.org Thu Nov 13 13:42:26 2025 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 13 Nov 2025 13:42:26 GMT Subject: [code-reflection] Integrated: Hat view more experiments In-Reply-To: <_GoyLxu-sY9EWJNluXLMOsTtnPwYsy7PSxQ4Ybgg_Gc=.01b6a1ad-b59a-407e-a4ed-12ece459ad0c@github.com> References: <_GoyLxu-sY9EWJNluXLMOsTtnPwYsy7PSxQ4Ybgg_Gc=.01b6a1ad-b59a-407e-a4ed-12ece459ad0c@github.com> Message-ID: On Thu, 13 Nov 2025 13:35:36 GMT, Gary Frost wrote: > More experiments representing vectors as ifaces and having javaside collections in pools/lists This pull request has now been integrated. Changeset: ff924aa5 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/ff924aa516f5800f4a9ec5d5ebca393da6267b0e Stats: 991 lines in 23 files changed: 363 ins; 432 del; 196 mod Hat view more experiments ------------- PR: https://git.openjdk.org/babylon/pull/681 From jfumero at openjdk.org Thu Nov 13 15:32:15 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 15:32:15 GMT Subject: [code-reflection] RFR: [hat] DeviceType interface definition for private/local data structures [v4] In-Reply-To: References: Message-ID: > This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. > > As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. > > Example: > > > interface DevicePrivateArray2 extends DeviceType { > F16 array(int index); // F16 is a predefine HAT type > void array(int index, F16 value); > > DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, > builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns > .withDeps(F16.class, half -> half.withField("value"))); // compose of this type > > // compatible with the prev. IFace version > static DevicePrivateArray2 create(Accelerator accelerator) { return null; } > > // marker to create this object in private memory > static DevicePrivateArray2 createPrivate() { return null; } > } > > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type Juan Fumero has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 23 commits: - Merge branch 'code-reflection' into hat/device/types - [hat] minor change - [HAT] mxm example using F16 fixed - Merge branch 'code-reflection' into hat/device/types - [hat] Fast mxm in F16 added as unittest - [hat] refactoring F16 name - [hat] refactor devicetype codegen - [hat] debug message cleanup - [hat] Test unsupported removed due to errors in CUDA - Merge branch 'code-reflection' into hat/device/types - ... and 13 more: https://git.openjdk.org/babylon/compare/ff924aa5...a83940f8 ------------- Changes: https://git.openjdk.org/babylon/pull/678/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=678&range=03 Stats: 1719 lines in 38 files changed: 1330 ins; 168 del; 221 mod Patch: https://git.openjdk.org/babylon/pull/678.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/678/head:pull/678 PR: https://git.openjdk.org/babylon/pull/678 From mcimadamore at openjdk.org Thu Nov 13 17:20:15 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 17:20:15 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test Message-ID: This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. We will probably need more tests to cover the entire spectrum, but this should be at least a start. I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. ------------- Commit messages: - Add resolution tests Changes: https://git.openjdk.org/babylon/pull/682/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=682&range=00 Stats: 676 lines in 6 files changed: 471 ins; 195 del; 10 mod Patch: https://git.openjdk.org/babylon/pull/682.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/682/head:pull/682 PR: https://git.openjdk.org/babylon/pull/682 From psandoz at openjdk.org Thu Nov 13 17:52:14 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 13 Nov 2025 17:52:14 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test In-Reply-To: References: Message-ID: On Thu, 13 Nov 2025 17:13:31 GMT, Maurizio Cimadamore wrote: > This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). > > I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. > > We will probably need more tests to cover the entire spectrum, but this should be at least a start. > > I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. Nice clean up. If you feel like it you could also convert `RecordTypeRefImpl` to a record as well, or i can do that in a separate PR. The tests looks good enough for now, and should help is catch errors. We could more clearly separate out failure from success and the resolving type, but we could do that later if need be. Just one small comment related to a redundant `instanceof` check. src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/ResolutionHelper.java line 31: > 29: HandleResolver> FIND_GETTER = MethodHandles.Lookup::findGetter; > 30: HandleResolver> FIND_STATIC_VARHANDLE = MethodHandles.Lookup::findStaticVarHandle; > 31: HandleResolver> FIND_VARHANDLE = MethodHandles.Lookup::findVarHandle; I think these would work just as well as static methods, without the memory/initialization footprint. Up to you. src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/ResolutionHelper.java line 72: > 70: if (t instanceof FunctionType ft) { > 71: return MethodRef.toNominalDescriptor(ft) > 72: .resolveConstantDesc(l); `t` is already an instance of `FunctionType` ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/682#pullrequestreview-3460903052 PR Review Comment: https://git.openjdk.org/babylon/pull/682#discussion_r2524392102 PR Review Comment: https://git.openjdk.org/babylon/pull/682#discussion_r2524337020 From jfumero at openjdk.org Thu Nov 13 17:52:21 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 17:52:21 GMT Subject: [code-reflection] Integrated: [hat] DeviceType interface definition for private/local data structures In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 14:40:13 GMT, Juan Fumero wrote: > This PR introduces the `DeviceType` to be able to represent user data types in Local and Private memory of the GPU for both CUDA and OpenCL. > > As a PoC, it extends the support for FP16 (`half`) to be able to operate, load and store F16 types, even in data structures defined by the user using F16. > > Example: > > > interface DevicePrivateArray2 extends DeviceType { > F16 array(int index); // F16 is a predefine HAT type > void array(int index, F16 value); > > DeviceSchema schema = DeviceSchema.of(DevicePrivateArray2.class, > builder -> builder.withArray("array", 1024). // build an array of this type for 1024 elemtns > .withDeps(F16.class, half -> half.withField("value"))); // compose of this type > > // compatible with the prev. IFace version > static DevicePrivateArray2 create(Accelerator accelerator) { return null; } > > // marker to create this object in private memory > static DevicePrivateArray2 createPrivate() { return null; } > } > > > How to test? > > > HAT=SHOW_CODE java -cp hat/job.jar hat.java test ffi-opencl hat.test.TestF16Type This pull request has now been integrated. Changeset: 1a27f624 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/1a27f62407b96421071a9a7e43cffb4f9c7dd217 Stats: 1719 lines in 38 files changed: 1330 ins; 168 del; 221 mod [hat] DeviceType interface definition for private/local data structures ------------- PR: https://git.openjdk.org/babylon/pull/678 From jfumero at openjdk.org Thu Nov 13 17:54:53 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Thu, 13 Nov 2025 17:54:53 GMT Subject: git: openjdk/babylon: code-reflection: [hat] DeviceType interface definition for private/local data structures Message-ID: Changeset: 1a27f624 Branch: code-reflection Author: Juan Fumero Date: 2025-11-13 17:48:32 +0000 URL: https://git.openjdk.org/babylon/commit/1a27f62407b96421071a9a7e43cffb4f9c7dd217 [hat] DeviceType interface definition for private/local data structures ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaHATKernelBuilder.java ! hat/backends/ffi/opencl/src/main/java/hat/backend/ffi/OpenCLHATKernelBuilder.java ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java ! hat/core/src/main/java/hat/buffer/F16.java ! hat/core/src/main/java/hat/buffer/F16Array.java ! hat/core/src/main/java/hat/codebuilders/BabylonOpBuilder.java ! hat/core/src/main/java/hat/codebuilders/C99HATKernelBuilder.java ! hat/core/src/main/java/hat/codebuilders/CodeBuilder.java ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilder.java ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilderWithContext.java + hat/core/src/main/java/hat/device/DeviceSchema.java = hat/core/src/main/java/hat/device/DeviceType.java ! hat/core/src/main/java/hat/dialect/HATF16ToFloatConvOp.java + hat/core/src/main/java/hat/dialect/HATMemoryDefOp.java + hat/core/src/main/java/hat/dialect/HATMemoryLoadOp.java ! hat/core/src/main/java/hat/dialect/HATPhaseUtils.java + hat/core/src/main/java/hat/dialect/HATPrivateVarInitOp.java ! hat/core/src/main/java/hat/optools/OpTk.java ! hat/core/src/main/java/hat/phases/HATDialect.java ! hat/core/src/main/java/hat/phases/HATDialectifyFP16Phase.java ! hat/core/src/main/java/hat/phases/HATDialectifyMemoryPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyTier.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorOpPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorSelectPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorStorePhase.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java + hat/tests/src/main/java/hat/test/TestDeviceType.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java ! hat/tests/src/main/java/hat/test/engine/HATAsserts.java ! hat/tools/src/main/java/hat/tools/text/JavaHATCodeBuilder.java From mcimadamore at openjdk.org Thu Nov 13 18:20:20 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 18:20:20 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test In-Reply-To: References: Message-ID: On Thu, 13 Nov 2025 17:49:03 GMT, Paul Sandoz wrote: >> This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). >> >> I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. >> >> We will probably need more tests to cover the entire spectrum, but this should be at least a start. >> >> I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. > > src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/ResolutionHelper.java line 31: > >> 29: HandleResolver> FIND_GETTER = MethodHandles.Lookup::findGetter; >> 30: HandleResolver> FIND_STATIC_VARHANDLE = MethodHandles.Lookup::findStaticVarHandle; >> 31: HandleResolver> FIND_VARHANDLE = MethodHandles.Lookup::findVarHandle; > > I think these would work just as well as static methods, without the memory/initialization footprint. Up to you. If you mean e.g. turn `FIND_STATIC` into: HandleResolver findStatic() { return MethodHandles.Lookup::findStatic; } I think I'd prefer to keep the code this way. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/682#discussion_r2524467149 From mcimadamore at openjdk.org Thu Nov 13 18:36:19 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 18:36:19 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test [v2] In-Reply-To: References: Message-ID: > This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). > > I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. > > We will probably need more tests to cover the entire spectrum, but this should be at least a start. > > I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: recordify RecordTypeRef drop redundant instanceof ------------- Changes: - all: https://git.openjdk.org/babylon/pull/682/files - new: https://git.openjdk.org/babylon/pull/682/files/d2875683..d38a687a Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=682&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=682&range=00-01 Stats: 33 lines in 2 files changed: 0 ins; 29 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/682.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/682/head:pull/682 PR: https://git.openjdk.org/babylon/pull/682 From mcimadamore at openjdk.org Thu Nov 13 18:36:20 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 13 Nov 2025 18:36:20 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test In-Reply-To: References: Message-ID: On Thu, 13 Nov 2025 17:13:31 GMT, Maurizio Cimadamore wrote: > This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). > > I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. > > We will probably need more tests to cover the entire spectrum, but this should be at least a start. > > I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. Btw, now that I worked on this some more... perhaps I see the appeal for dropping support for array constructors, and encode the "shape" of the array factory as a _type_ in the new array op. The reason is that, while field/constructor/methods can indeed be _resolved_ to their corresponding declarations, an array constructor can't really... sure, we can create a MH that creates a new instance of the array, but there's no underlying Constructor we can really resolve back to. ------------- PR Comment: https://git.openjdk.org/babylon/pull/682#issuecomment-3529156144 From psandoz at openjdk.org Thu Nov 13 19:28:42 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 13 Nov 2025 19:28:42 GMT Subject: [code-reflection] RFR: Beef up reference resolution code and test [v2] In-Reply-To: References: Message-ID: <0zz4yT5OHaE1QGiHL-ohQ45drTTpqf6xXknuaNZWcqA=.618023b2-4648-4861-988b-7bb98c5e22cb@github.com> On Thu, 13 Nov 2025 18:36:19 GMT, Maurizio Cimadamore wrote: >> This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). >> >> I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. >> >> We will probably need more tests to cover the entire spectrum, but this should be at least a start. >> >> I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > recordify RecordTypeRef > drop redundant instanceof Marked as reviewed by psandoz (Lead). ------------- PR Review: https://git.openjdk.org/babylon/pull/682#pullrequestreview-3461336765 From jfumero at openjdk.org Fri Nov 14 08:13:17 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 14 Nov 2025 08:13:17 GMT Subject: [code-reflection] Integrated: [hat] javadoc for TestDeviceType In-Reply-To: References: Message-ID: On Fri, 14 Nov 2025 08:03:33 GMT, Juan Fumero wrote: > Javadoc for `TestDeviceType` explaining how to use `DeviceType` and `DeviceSchema`. This pull request has now been integrated. Changeset: 9b1ef462 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/9b1ef462b0ac73f24eed78ab35f7f093f788ca9d Stats: 40 lines in 1 file changed: 35 ins; 1 del; 4 mod [hat] javadoc for TestDeviceType ------------- PR: https://git.openjdk.org/babylon/pull/683 From jfumero at openjdk.org Fri Nov 14 08:13:16 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 14 Nov 2025 08:13:16 GMT Subject: [code-reflection] Integrated: [hat] javadoc for TestDeviceType Message-ID: Javadoc for `TestDeviceType` explaining how to use `DeviceType` and `DeviceSchema`. ------------- Commit messages: - [hat] javadoc for TestDeviceType Changes: https://git.openjdk.org/babylon/pull/683/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=683&range=00 Stats: 40 lines in 1 file changed: 35 ins; 1 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/683.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/683/head:pull/683 PR: https://git.openjdk.org/babylon/pull/683 From jfumero at openjdk.org Fri Nov 14 08:14:29 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 14 Nov 2025 08:14:29 GMT Subject: git: openjdk/babylon: code-reflection: [hat] javadoc for TestDeviceType Message-ID: <85c0ab3a-c007-4efd-8b8f-438973cf470e@openjdk.org> Changeset: 9b1ef462 Branch: code-reflection Author: Juan Fumero Date: 2025-11-14 08:09:35 +0000 URL: https://git.openjdk.org/babylon/commit/9b1ef462b0ac73f24eed78ab35f7f093f788ca9d [hat] javadoc for TestDeviceType ! hat/tests/src/main/java/hat/test/TestDeviceType.java From mcimadamore at openjdk.org Fri Nov 14 10:02:56 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 10:02:56 GMT Subject: git: openjdk/babylon: code-reflection: Beef up reference resolution code and test Message-ID: <99361d92-194b-44b3-81e9-aecbe6a8cb66@openjdk.org> Changeset: f4a0eb3e Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-14 09:58:31 +0000 URL: https://git.openjdk.org/babylon/commit/f4a0eb3e05d84c22c99aa2ecb7bdd3485717c44e Beef up reference resolution code and test Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/FieldRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/MethodRefImpl.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/RecordTypeRefImpl.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/ResolutionHelper.java + test/jdk/java/lang/reflect/code/refs/TestConstructorResolution.java + test/jdk/java/lang/reflect/code/refs/TestFieldResolution.java + test/jdk/java/lang/reflect/code/refs/TestMethodResolution.java From mcimadamore at openjdk.org Fri Nov 14 10:02:14 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 10:02:14 GMT Subject: [code-reflection] Integrated: Beef up reference resolution code and test In-Reply-To: References: Message-ID: On Thu, 13 Nov 2025 17:13:31 GMT, Maurizio Cimadamore wrote: > This PR improves the code for method/field/constructor resolution. To resolve fields and methods we have to perform two MH lookups, and find if any of them succeds. Since to code to do this is a bit convoluted, I have reimplemented the resolution support to use a more functional style (inspired by `Either` type). > > I have also added several tests to make sure we test several lookup combinations, for instance/static method/fields, and also for super method resolution. > > We will probably need more tests to cover the entire spectrum, but this should be at least a start. > > I found 2 (!!) JDK issues when writing these tests, so some of the new tests contain workarounds. This pull request has now been integrated. Changeset: f4a0eb3e Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/f4a0eb3e05d84c22c99aa2ecb7bdd3485717c44e Stats: 698 lines in 7 files changed: 467 ins; 220 del; 11 mod Beef up reference resolution code and test Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/682 From mcimadamore at openjdk.org Fri Nov 14 10:31:36 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 10:31:36 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:42:02 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > nit fixes The overall approach seems solid. You generate a separate class that contains some helper methods to build lists/maps and ops. Presumably, these methods have a very high chance to be reused across different synthetic op methods. I wonder if these "helper" functions could be turned into bootstrap methods. That way, we can implement them once and for all in the incubator module. And we could even add more, such as the ability to turn a Java type string into a type element w/o building the tree structurally. Re. helper method names, perhaps would be better to start with `$` instead of `::`, as that is a more common symbol to indicate "synthetic method" in javac-land. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3532061437 From asotona at openjdk.org Fri Nov 14 13:29:27 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 14 Nov 2025 13:29:27 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:42:02 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > nit fixes Providing fixed public set of bootstrap methods forms an API, which (as I understand) we are trying to avoid. Beside that the planned second phase (an index-based types builder) must be specific per-use case (technically per class holding one or more code models). ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3532779132 From asotona at openjdk.org Fri Nov 14 13:48:08 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 14 Nov 2025 13:48:08 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:42:02 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > nit fixes Based on the discussions above (and offline) I propose to refactor this solution a bit: - Model-building `FuncOp`s + helpers `FuncOp`s will be organized under self-contained `ModuleOp` (forming the full content of the synthetic class). Helper methods will be called as `FuncCallOp`, instead of `InvokeOp`. This configuration allows interpretation of the of model-building `FuncOp`s and so better testability (re-enabling of the `TestCodeBuilder`). It also eliminates some issues with lookup of the actual class. - Model-building methods will return to the parent class, however they will just delegate to the same-named methods in the synthetic class. Related to the `BytecodeGenerator` postpone to the rigth `javac` phase - I'm open to the implementation proposals. Maybe we can solve it in a follow-up PR. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3532871868 PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3532880453 From mcimadamore at openjdk.org Fri Nov 14 14:11:48 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 14:11:48 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> On Fri, 14 Nov 2025 13:44:52 GMT, Adam Sotona wrote: > Related to the `BytecodeGenerator` postpone to the rigth `javac` phase - I'm open to the implementation proposals. Maybe we can solve it in a follow-up PR. I think it's better to defer to a different PR. We need to find the correct way to communicate the ops to the compiler pipeline. Probably the best way to do this would be the creation of "shim" AST ClassDef nodes, which have nested shim MethodDef, as needed. These method defs will not have a body, but will have an "op" instead. Then Gen will recognize these, and skip the visit. And ClassWriter can probably use BytecodeGenerator to emit the bytecode for these methods in the context of the enclosing class that it will generate. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3532978405 From psandoz at openjdk.org Fri Nov 14 17:19:37 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 14 Nov 2025 17:19:37 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:42:02 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > nit fixes Don't forget lambda expressions. IMO if you can address that and Model-building methods in this PR i think it will be good enough and we can follow up in subsequent PRs for the other tasks. > Based on the discussions above (and offline) I propose to refactor this solution a bit: > > * Model-building `FuncOp`s + helpers `FuncOp`s will be organized under self-contained `ModuleOp` (forming the full content of the synthetic class). Helper methods will be called as `FuncCallOp`, instead of `InvokeOp`. This configuration allows interpretation of the of model-building `FuncOp`s and so better testability (re-enabling of the `TestCodeBuilder`). It also eliminates some issues with lookup of the actual class. > > * Model-building methods will return to the parent class, however they will just delegate to the same-named methods in the synthetic class. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3533769161 From psandoz at openjdk.org Fri Nov 14 17:56:10 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 14 Nov 2025 17:56:10 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> References: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> Message-ID: <_nm_lS8q7EKtbJGbY5mbaF31vCupop6pn85u9Wz4OgE=.55f5704e-f2a7-4c72-a98b-3663d7e0cbba@github.com> On Fri, 14 Nov 2025 14:08:35 GMT, Maurizio Cimadamore wrote: > Probably the best way to do this would be the creation of "shim" AST ClassDef nodes, which have nested shim MethodDef, as needed. That's a neat i idea. Maybe we only need one specialized JCTree node holding the module op and assuming we can limit the interaction with the other parts of tree processing. Perhaps an instance of a type extending from JCSkip? ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3533904733 From mcimadamore at openjdk.org Fri Nov 14 18:27:40 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 18:27:40 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: <_nm_lS8q7EKtbJGbY5mbaF31vCupop6pn85u9Wz4OgE=.55f5704e-f2a7-4c72-a98b-3663d7e0cbba@github.com> References: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> <_nm_lS8q7EKtbJGbY5mbaF31vCupop6pn85u9Wz4OgE=.55f5704e-f2a7-4c72-a98b-3663d7e0cbba@github.com> Message-ID: On Fri, 14 Nov 2025 17:52:50 GMT, Paul Sandoz wrote: > > Probably the best way to do this would be the creation of "shim" AST ClassDef nodes, which have nested shim MethodDef, as needed. > > That's a neat idea. Maybe we only need one specialized JCTree node holding the module op and assuming we can limit the interaction with the other parts of tree processing. Perhaps an instance of a type extending from JCSkip? Something like that -- but it's intricate because of the way the pipeline is put together. E.g. the main entry point for code generation in `JavaCompiler` is: JavaFileObject genCode(Env env, JCClassDecl cdef) throws IOException { .. } So, I think it will be hard if we don't _at least_ create a `JCClassDecl`. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3534011004 From psandoz at openjdk.org Fri Nov 14 18:49:41 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 14 Nov 2025 18:49:41 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> <_nm_lS8q7EKtbJGbY5mbaF31vCupop6pn85u9Wz4OgE=.55f5704e-f2a7-4c72-a98b-3663d7e0cbba@github.com> Message-ID: On Fri, 14 Nov 2025 18:24:34 GMT, Maurizio Cimadamore wrote: > Something like that -- but it's intricate because of the way the pipeline is put together. E.g. the main entry point for code generation in `JavaCompiler` is: > > ``` > JavaFileObject genCode(Env env, JCClassDecl cdef) throws IOException { .. } > ``` > > So, I think it will be hard if we don't _at least_ create a `JCClassDecl`. Ok. I see that all the classes (nested or otherwise) are independently placed on some queue to be processed, after AFAICT the nested ones are extracted from their parent. So adding a synthetic clas decl node to that queue holding a module op should work. Naively, i managed to get a JCSkip node, appended to JCClassDecl.defs for the class where there are reflectable methods/lambdas, flowing though to gen, which can then be removed in a pre-processing step before normalization. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3534113299 From mcimadamore at openjdk.org Fri Nov 14 19:06:42 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 14 Nov 2025 19:06:42 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v2] In-Reply-To: References: <5spcLR8n9RF7LSYRfUzNS-XcGjugKz3aTuK7i4GUR4s=.a645de74-5d3f-4a57-9995-eb94dec4ae60@github.com> <_nm_lS8q7EKtbJGbY5mbaF31vCupop6pn85u9Wz4OgE=.55f5704e-f2a7-4c72-a98b-3663d7e0cbba@github.com> Message-ID: On Fri, 14 Nov 2025 18:46:21 GMT, Paul Sandoz wrote: > Naively, i managed to get a JCSkip node, appended to JCClassDecl.defs for the class where there are reflectable methods/lambdas, flowing though to gen, which can then be removed in a pre-processing step before normalization. There's also other things to take into account: `Lower`, which is a step that can also generate extra classes, has an entry point that can return `List` -- but the steps before it (including `ReflectMethods`) are typically one tree in, one tree out. So, `ReflectMethods` can, in principle, just append a synthetic node to `defs` of the translated class. But at some point Lower will need to turn that into a proper class def, so that it can be returned to JavaCompiler, and codegen can happen. So, I think that the easiest way is for `ReflectMethods` to create the inner class AST node, save the op there somehow. Then teach Lower to mostly ignore these nested classes (but still return them to `JavaCompiler`). Then code generation can take it from there... ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3534166746 From asotona at openjdk.org Tue Nov 18 08:56:05 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 08:56:05 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v3] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods isolated from the original code and moved to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > > Remaining tasks: > > - implement part 2. type-building helper method(s) to reduce the overhead even more > - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) > - cleanup `BytecodeGenerator` API Adam Sotona has updated the pull request incrementally with three additional commits since the last revision: - ReflectMethods::synthClassDecl generates from module - OpBuilder forms ModuleOp and support functions renamed - ModuleOp and FuncCallOp support in BytecodeGenerator ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/50e01fdf..4a12aa77 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=01-02 Stats: 168 lines in 3 files changed: 57 ins; 45 del; 66 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Tue Nov 18 09:48:25 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 09:48:25 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v4] In-Reply-To: References: Message-ID: <3Sib8lat_IW6khvxScL0KfcSaenUezymGkLExzrFCjM=.1126fe96-ded1-483c-a495-320344ff13c5@github.com> > This PR include following changes: > > - op-building methods isolated from the original code and moved to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > > Remaining tasks: > > - implement part 2. type-building helper method(s) to reduce the overhead even more > - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) > - cleanup `BytecodeGenerator` API Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: - re-enabled TestCodeBuilder - renamed OpBuilder::createBuilderFunction to createBuilderFunctions ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/4a12aa77..e0499280 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=03 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=02-03 Stats: 11 lines in 3 files changed: 4 ins; 2 del; 5 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Tue Nov 18 10:09:23 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 10:09:23 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v5] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods isolated from the original code and moved to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > > Remaining tasks: > > - implement part 2. type-building helper method(s) to reduce the overhead even more > - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) > - cleanup `BytecodeGenerator` API Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: - Op reverted to the original - builder methods delegating to the synth. inner class ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/e0499280..768c6028 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=04 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=03-04 Stats: 25 lines in 2 files changed: 21 ins; 3 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From mcimadamore at openjdk.org Tue Nov 18 10:09:24 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Tue, 18 Nov 2025 10:09:24 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v4] In-Reply-To: <3Sib8lat_IW6khvxScL0KfcSaenUezymGkLExzrFCjM=.1126fe96-ded1-483c-a495-320344ff13c5@github.com> References: <3Sib8lat_IW6khvxScL0KfcSaenUezymGkLExzrFCjM=.1126fe96-ded1-483c-a495-320344ff13c5@github.com> Message-ID: On Tue, 18 Nov 2025 09:48:25 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods isolated from the original code and moved to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> >> Remaining tasks: >> >> - implement part 2. type-building helper method(s) to reduce the overhead even more >> - refactor `OpBuilder` to build `ModuleOp` instead of individual `FuncOp`s (and re-enable `TestCodeBuilder`) >> - cleanup `BytecodeGenerator` API > > Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: > > - re-enabled TestCodeBuilder > > - renamed OpBuilder::createBuilderFunction to createBuilderFunctions To summarize the strategy that I think would be the path of least resistance to integrate with javac more properly (doesn't have to be done in this PR): * ReflectMethods should create "shim" *inner* JCClassDef nodes for the synthetic classes and append them to the `defs` field of the toplevel class being visited; * Those classes should contain no nested "defs" AST nodes, but should instead have a moduleOp field (this is a new field we can add to JCClassDef); * We need to teach Lower to leave these synthetic inner classes alone -- e.g. Lower will (correctly) translate them as toplevel classes (which we want), but we don't want any other treatment -- perhaps this already is the case if the class is nested static and has no members, but we should make sure; * Then, when in JavaCompiler we generate code, we can look at the JCClassDef: if it has no moduleOp, we send it through Gen/ClassWriter. If it does have a moduleOp, we use BytecodeGenerator instead. This should allow us to retain flexibility to update the definitions of the synthetic classes w/o touching javac, while at the same time making sure that bytecode is generated in the right javac phase. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3546631346 From asotona at openjdk.org Tue Nov 18 10:26:13 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 10:26:13 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v6] In-Reply-To: References: Message-ID: <114BG-MaVqy3niWN0uXFxhjHaAtXIw1zjwJW5u2l0Cc=.7208df50-5a22-4d68-8584-71164d52d83b@github.com> > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits: - Merge branch 'code-reflection' into opbuilder-optimizations - Op reverted to the original - builder methods delegating to the synth. inner class - re-enabled TestCodeBuilder - renamed OpBuilder::createBuilderFunction to createBuilderFunctions - ReflectMethods::synthClassDecl generates from module - OpBuilder forms ModuleOp and support functions renamed - ModuleOp and FuncCallOp support in BytecodeGenerator - nit fixes - nit fixes - ... and 5 more: https://git.openjdk.org/babylon/compare/f4a0eb3e...1f507969 ------------- Changes: https://git.openjdk.org/babylon/pull/679/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=05 Stats: 572 lines in 4 files changed: 294 ins; 214 del; 64 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Tue Nov 18 10:26:14 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 10:26:14 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v5] In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 10:09:23 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: > > - Op reverted to the original > > - builder methods delegating to the synth. inner class I suggest to merge current PR, so @mabbay can follow up with part 2. of the optimization and I can independently follow up with the strategy proposed by @mcimadamore in the comment above. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3546728292 From asotona at openjdk.org Tue Nov 18 10:30:51 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 10:30:51 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v7] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: fix of ReflectMethods ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/1f507969..ff698243 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=06 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=05-06 Stats: 14 lines in 1 file changed: 2 ins; 8 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Tue Nov 18 12:25:55 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 12:25:55 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v8] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: added comments to OpBuilder ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/ff698243..bb97a9da Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=07 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=06-07 Stats: 60 lines in 1 file changed: 60 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Tue Nov 18 12:44:45 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 12:44:45 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v9] In-Reply-To: References: Message-ID: <70HvO_InZ9nZoBHVRolq535HlrK77M1su5DGH8mHDwg=.22927d6f-dc33-4be7-a9ce-14a46df79a5e@github.com> > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: - fixed imports - fixed javadoc wording ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/bb97a9da..285a1911 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=08 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=07-08 Stats: 4 lines in 2 files changed: 1 ins; 1 del; 2 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From psandoz at openjdk.org Tue Nov 18 16:36:16 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 18 Nov 2025 16:36:16 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v9] In-Reply-To: <70HvO_InZ9nZoBHVRolq535HlrK77M1su5DGH8mHDwg=.22927d6f-dc33-4be7-a9ce-14a46df79a5e@github.com> References: <70HvO_InZ9nZoBHVRolq535HlrK77M1su5DGH8mHDwg=.22927d6f-dc33-4be7-a9ce-14a46df79a5e@github.com> Message-ID: On Tue, 18 Nov 2025 12:44:45 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with two additional commits since the last revision: > > - fixed imports > > - fixed javadoc wording src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 158: > 156: private ListBuffer classOps; > 157: private SequencedMap ops; > 158: private Symbol.ClassSymbol currentClassSym, synthClassSym; Suggest finding a better name and declaring on a separate line. e.g., rename to `codeModelsClassSym`. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2538896262 From asotona at openjdk.org Tue Nov 18 17:01:54 2025 From: asotona at openjdk.org (Adam Sotona) Date: Tue, 18 Nov 2025 17:01:54 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v10] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: synthClassSym to codeModelsClassSym rename ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/285a1911..39516b9a Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=09 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=08-09 Stats: 8 lines in 1 file changed: 1 ins; 0 del; 7 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From psandoz at openjdk.org Tue Nov 18 18:57:47 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 18 Nov 2025 18:57:47 GMT Subject: [code-reflection] RFR: Ensure HAT executes with Babylon JDK images build Message-ID: HAT only executes correctly with a Babylon JDK exploded build, and fails with an images build. We need to declare the runtime argument `--add-modules jdk.incubator.code`. Also removed an `--add-exports` argument which no longer seems to be required. ------------- Commit messages: - Ensure HAT executes with Babylon JDK images build Changes: https://git.openjdk.org/babylon/pull/684/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=684&range=00 Stats: 5 lines in 4 files changed: 3 ins; 1 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/684.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/684/head:pull/684 PR: https://git.openjdk.org/babylon/pull/684 From mabbay at openjdk.org Wed Nov 19 03:01:35 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 03:01:35 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v10] In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 17:01:54 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > synthClassSym to codeModelsClassSym rename I suggest a better name for `ReflectMethods.classOps`. Maybe `opMethodDecls` or `codeModelsMethodDecls` ? ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3550442539 From asotona at openjdk.org Wed Nov 19 07:17:09 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 07:17:09 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v11] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: suggested renaming ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/39516b9a..5e24df68 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=10 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=09-10 Stats: 11 lines in 1 file changed: 0 ins; 0 del; 11 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From mabbay at openjdk.org Wed Nov 19 09:33:52 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 09:33:52 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v11] In-Reply-To: References: Message-ID: <6sAEZmfookVwmMeWJ-vZ5bHvnhJwClJ_j9mSSb5UT4k=.0317d839-8a4c-453e-8301-cb33e1a5a672@github.com> On Wed, 19 Nov 2025 07:17:09 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > suggested renaming src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java line 199: > 197: * > 198: * @param ops the named code models. > 199: * @param functionNameF a function that defines method names of the code models functionNameF is not a param ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541231801 From asotona at openjdk.org Wed Nov 19 09:57:34 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 09:57:34 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v12] In-Reply-To: References: Message-ID: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: fixed javadoc ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/5e24df68..1741e2b8 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=11 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=10-11 Stats: 1 line in 1 file changed: 0 ins; 1 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Wed Nov 19 09:57:37 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 09:57:37 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v11] In-Reply-To: <6sAEZmfookVwmMeWJ-vZ5bHvnhJwClJ_j9mSSb5UT4k=.0317d839-8a4c-453e-8301-cb33e1a5a672@github.com> References: <6sAEZmfookVwmMeWJ-vZ5bHvnhJwClJ_j9mSSb5UT4k=.0317d839-8a4c-453e-8301-cb33e1a5a672@github.com> Message-ID: On Wed, 19 Nov 2025 09:31:25 GMT, Mourad Abbay wrote: >> Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: >> >> suggested renaming > > src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java line 199: > >> 197: * >> 198: * @param ops the named code models. >> 199: * @param functionNameF a function that defines method names of the code models > > functionNameF is not a param good catch :) ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541302348 From mcimadamore at openjdk.org Wed Nov 19 10:43:44 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 10:43:44 GMT Subject: [code-reflection] RFR: Ensure HAT executes with Babylon JDK images build In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 18:51:35 GMT, Paul Sandoz wrote: > HAT only executes correctly with a Babylon JDK exploded build, and fails with an images build. > > We need to declare the runtime argument `--add-modules jdk.incubator.code`. > > Also removed an `--add-exports` argument which no longer seems to be required. Marked as reviewed by mcimadamore (Reviewer). ------------- PR Review: https://git.openjdk.org/babylon/pull/684#pullrequestreview-3481999248 From mabbay at openjdk.org Wed Nov 19 12:08:09 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 12:08:09 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v12] In-Reply-To: References: Message-ID: On Wed, 19 Nov 2025 09:57:34 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > fixed javadoc src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 214: > 212: @Override > 213: public void visitClassDef(JCClassDecl tree) { > 214: ListBuffer prevClassOps = opMethodDecls; Can you rename the variable `prevClassOps` to `prevOpMethodDecls` ? src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 217: > 215: SequencedMap prevOps = ops; > 216: Symbol.ClassSymbol prevClassSym = currentClassSym; > 217: Symbol.ClassSymbol prevSynthClassSym = codeModelsClassSym; `prevSynthClassSym` to `prevCodeModelsClassSym` ? ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541719299 PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541725970 From mabbay at openjdk.org Wed Nov 19 12:13:20 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 12:13:20 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v12] In-Reply-To: References: Message-ID: On Wed, 19 Nov 2025 09:57:34 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > fixed javadoc src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 393: > 391: // Create the method body > 392: // Code model is stored as code that builds the code model > 393: // using the builder API and public APIs Can we remove these comments, they're outdated ? ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541739432 From mabbay at openjdk.org Wed Nov 19 12:18:39 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 12:18:39 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v12] In-Reply-To: References: Message-ID: On Wed, 19 Nov 2025 09:57:34 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > fixed javadoc src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 378: > 376: > 377: private JCMethodDecl opMethodDecl(Name methodName) { > 378: // Create the method that constructs the code model stored in the class file Is this comment outdated ? can we remove it ? ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/679#discussion_r2541758589 From asotona at openjdk.org Wed Nov 19 12:33:27 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 12:33:27 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v13] In-Reply-To: References: Message-ID: <61yR_dnpy9BkVOnkYb7IhdVhVqKjg6er1hQe4dCJJt0=.858d9b7d-9bfc-4508-b995-999a942b341b@github.com> > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: a few more renames and comment cleanups ------------- Changes: - all: https://git.openjdk.org/babylon/pull/679/files - new: https://git.openjdk.org/babylon/pull/679/files/1741e2b8..ae937f35 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=12 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=679&range=11-12 Stats: 8 lines in 1 file changed: 0 ins; 4 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/679.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/679/head:pull/679 PR: https://git.openjdk.org/babylon/pull/679 From mcimadamore at openjdk.org Wed Nov 19 13:15:31 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 13:15:31 GMT Subject: [code-reflection] RFR: Drop Quotable type Message-ID: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: Runnable r = (Runnable & Quotable)() -> {} Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: Runnable r = (@CodeReflection Runnable)() -> {} Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: void m(@CodeReflection Runnable r) { ... } m(() -> { .. }); we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. There's also other cases like: @CodeReflection Runnable m() { return () -> { .. }; } If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. This implementation tactic guarantees that type annotations will only be consulted when needed. ------------- Commit messages: - Simplify code - Fix JDK tests - Initial push Changes: https://git.openjdk.org/babylon/pull/685/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=00 Stats: 314 lines in 31 files changed: 80 ins; 111 del; 123 mod Patch: https://git.openjdk.org/babylon/pull/685.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/685/head:pull/685 PR: https://git.openjdk.org/babylon/pull/685 From mcimadamore at openjdk.org Wed Nov 19 13:15:35 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 13:15:35 GMT Subject: [code-reflection] RFR: Drop Quotable type In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: On Wed, 19 Nov 2025 13:00:51 GMT, Maurizio Cimadamore wrote: > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. There's some future work in this area, not addressed in this PR: * (cosmetic) we plan to rename the `@CodeReflection` annotation to just `@Reflect` * we want to tweak the logic for detecting quotable lambdas and make it stricter, so that _both_ an annotation at the use site, and one at the declaration side is needed. E.g. @Reflect interface QuotableRunnable extends Runnable { } QuotableRunnable r = (@Reflect QuotableRunnable) () -> { ... } This is a fussier model, but one that makes sure that reflectability of a lambda expression is always controlled by the client. src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java line 451: > 449: JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile); > 450: try { > 451: annotate.queueScanTreeAndTypeAnnotate(tree.body, env, tree.sym); Some adjustments were needed to make sure the type annotations were initialized correctly up to this point. I verified with our annotation processor in `crExamples` and everything still works. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 118: > 116: * reflection API (see jdk.internal.java.lang.reflect.code). > 117: */ > 118: public class ReflectMethods extends TreeScannerPrev { I've dropped the `TreeTranslator` supertype here, as it seems to me `ReflectMethods` doesn't need it; the only thing `ReflectMethod` does is generating models for quotable methods and lambdas. The models are stored in appropriate AST nodes, but we don't need to alter the structure of the AST (at least for now). src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 278: > 276: > 277: // @@@: Only used for quoted lambda, not quotable ones. Remove? > 278: ListBuffer quotedCapturedArgs(DiagnosticPosition pos, BodyScanner bodyScanner) { This was dead code src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 305: > 303: * code for capturing the bound method reference receiver twice. > 304: */ > 305: JCExpression copyReferenceWithReceiverVar(JCMemberReference ref, JCVariableDecl recvDecl) { This was used, but I think it was added long ago, before we cleaned up the compiler pipeline as part of flexible constructor bodies. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 371: > 369: } > 370: > 371: class BodyScanner extends TreeScannerPrev { Note: `BodyScanner` also defines a `currentNode` field to keep track of the node being visited. Unfortunately, this field is also used _outside_ the scanning process -- e.g. before (at construction) and after (to finish up things). This means it is currently very hard to merge this field with `TreeScannerPrev.currentNode`. Maybe this is something we can look again in a separate PR. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 2402: > 2400: > 2401: CoreOp.FuncOp scanMethod() { > 2402: scan(body, currentNode); These `scan` methods are tricky. When scanning a quotable method, `currentNode` points to the method decl (a `JCMethodDecl` node)., and `body` points at the method body (a `JCBlock` node). But when scanning quotable lambdas, both `currentNode` and `body` point at a `JCLambda`. Hence the different "previous node" forced on the `TreeScannerPrev::scan`. ------------- PR Comment: https://git.openjdk.org/babylon/pull/685#issuecomment-3552588276 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541923094 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541942829 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541944715 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541947678 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541934943 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2541956820 From mcimadamore at openjdk.org Wed Nov 19 13:34:27 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 13:34:27 GMT Subject: [code-reflection] RFR: Drop Quotable type [v2] In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Further simplify code ------------- Changes: - all: https://git.openjdk.org/babylon/pull/685/files - new: https://git.openjdk.org/babylon/pull/685/files/2cb39a5c..87c65f24 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=00-01 Stats: 47 lines in 2 files changed: 14 ins; 18 del; 15 mod Patch: https://git.openjdk.org/babylon/pull/685.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/685/head:pull/685 PR: https://git.openjdk.org/babylon/pull/685 From mcimadamore at openjdk.org Wed Nov 19 13:34:28 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 13:34:28 GMT Subject: [code-reflection] RFR: Drop Quotable type [v2] In-Reply-To: References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: <9kaSyar2rrh5lmnVm_E5Sn7K32zdRZPRN4g-IVeN_oE=.d3d9df8c-36bb-4b0e-b29d-cbc03323d79d@github.com> On Wed, 19 Nov 2025 13:06:37 GMT, Maurizio Cimadamore wrote: >> Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: >> >> Further simplify code > > src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 371: > >> 369: } >> 370: >> 371: class BodyScanner extends TreeScannerPrev { > > Note: `BodyScanner` also defines a `currentNode` field to keep track of the node being visited. Unfortunately, this field is also used _outside_ the scanning process -- e.g. before (at construction) and after (to finish up things). This means it is currently very hard to merge this field with `TreeScannerPrev.currentNode`. Maybe this is something we can look again in a separate PR. Ok, NVM, I think I found a good way to consolidate the code and get rid of that field. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2542022231 From mabbay at openjdk.org Wed Nov 19 14:24:11 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 14:24:11 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v13] In-Reply-To: <61yR_dnpy9BkVOnkYb7IhdVhVqKjg6er1hQe4dCJJt0=.858d9b7d-9bfc-4508-b995-999a942b341b@github.com> References: <61yR_dnpy9BkVOnkYb7IhdVhVqKjg6er1hQe4dCJJt0=.858d9b7d-9bfc-4508-b995-999a942b341b@github.com> Message-ID: On Wed, 19 Nov 2025 12:33:27 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > a few more renames and comment cleanups Marked as reviewed by mabbay (Reviewer). ------------- PR Review: https://git.openjdk.org/babylon/pull/679#pullrequestreview-3483004835 From mcimadamore at openjdk.org Wed Nov 19 14:26:05 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 14:26:05 GMT Subject: [code-reflection] RFR: Drop Quotable type [v3] In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Remove more dead code Fix all samples Fix HAT code ------------- Changes: - all: https://git.openjdk.org/babylon/pull/685/files - new: https://git.openjdk.org/babylon/pull/685/files/87c65f24..b0b3fe35 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=01-02 Stats: 60 lines in 13 files changed: 15 ins; 31 del; 14 mod Patch: https://git.openjdk.org/babylon/pull/685.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/685/head:pull/685 PR: https://git.openjdk.org/babylon/pull/685 From mcimadamore at openjdk.org Wed Nov 19 14:26:06 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 14:26:06 GMT Subject: [code-reflection] RFR: Drop Quotable type [v3] In-Reply-To: <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> Message-ID: <3wEZOQqTcIqDtOJGKYDBH4pt_pxH1H3HwzmSvCuxHz8=.c6cfa534-4cc2-4a6e-83b9-057a5e8a143e@github.com> On Wed, 19 Nov 2025 14:22:54 GMT, Maurizio Cimadamore wrote: >> The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: >> >> >> Runnable r = (@CodeReflection Runnable)() -> {} >> >> >> Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: >> >> >> void m(@CodeReflection Runnable r) { ... } >> m(() -> { .. }); >> >> >> we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. >> >> There's also other cases like: >> >> >> @CodeReflection >> Runnable m() { >> return () -> { .. }; >> } >> >> >> If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. >> >> To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. >> >> Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. >> >> This implementation tactic guarantees that type annotations will only be consulted when needed. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Remove more dead code > Fix all samples > Fix HAT code Note: while I have updated HAT code, I have not tested that it builds/works correctly. ------------- PR Comment: https://git.openjdk.org/babylon/pull/685#issuecomment-3552977975 From asotona at openjdk.org Wed Nov 19 16:07:32 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 16:07:32 GMT Subject: git: openjdk/babylon: code-reflection: OpBuilder optimizations - part 1. Message-ID: <02255dfb-000f-492d-9f12-84454828c477@openjdk.org> Changeset: 590b29e0 Branch: code-reflection Author: Adam Sotona Date: 2025-11-19 16:00:57 +0000 URL: https://git.openjdk.org/babylon/commit/590b29e0a1891b3f0fa0eab5110296a6e517763f OpBuilder optimizations - part 1. Reviewed-by: mabbay ! src/jdk.incubator.code/share/classes/jdk/incubator/code/bytecode/BytecodeGenerator.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java From mcimadamore at openjdk.org Wed Nov 19 16:03:00 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 16:03:00 GMT Subject: [code-reflection] RFR: Drop Quotable type [v2] In-Reply-To: <3wEZOQqTcIqDtOJGKYDBH4pt_pxH1H3HwzmSvCuxHz8=.c6cfa534-4cc2-4a6e-83b9-057a5e8a143e@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> <3wEZOQqTcIqDtOJGKYDBH4pt_pxH1H3HwzmSvCuxHz8=.c6cfa534-4cc2-4a6e-83b9-057a5e8a143e@github.com> Message-ID: On Wed, 19 Nov 2025 14:23:32 GMT, Maurizio Cimadamore wrote: > Note: while I have updated HAT code, I have not tested that it builds/works correctly. Actually, I was able to build -- but not to test as I do not have opencl setup here. ------------- PR Comment: https://git.openjdk.org/babylon/pull/685#issuecomment-3553428331 From asotona at openjdk.org Wed Nov 19 16:14:38 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 16:14:38 GMT Subject: [code-reflection] RFR: OpBuilder optimizations - part 1. [v13] In-Reply-To: <61yR_dnpy9BkVOnkYb7IhdVhVqKjg6er1hQe4dCJJt0=.858d9b7d-9bfc-4508-b995-999a942b341b@github.com> References: <61yR_dnpy9BkVOnkYb7IhdVhVqKjg6er1hQe4dCJJt0=.858d9b7d-9bfc-4508-b995-999a942b341b@github.com> Message-ID: On Wed, 19 Nov 2025 12:33:27 GMT, Adam Sotona wrote: >> This PR include following changes: >> >> - op-building methods delegate to a synthetic inner class >> - fixed boxing in `OpBuilder` >> - op-building methods are generated by `BytecodeGenerator` and support wide range of ops >> - `CodeModelTranslator` is deleted >> - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) >> - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s >> - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` > > Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: > > a few more renames and comment cleanups Thank you for the reviews. ------------- PR Comment: https://git.openjdk.org/babylon/pull/679#issuecomment-3553492073 From asotona at openjdk.org Wed Nov 19 16:14:39 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 16:14:39 GMT Subject: [code-reflection] Integrated: OpBuilder optimizations - part 1. In-Reply-To: References: Message-ID: On Wed, 12 Nov 2025 17:29:52 GMT, Adam Sotona wrote: > This PR include following changes: > > - op-building methods delegate to a synthetic inner class > - fixed boxing in `OpBuilder` > - op-building methods are generated by `BytecodeGenerator` and support wide range of ops > - `CodeModelTranslator` is deleted > - synthetic op-building method overrides significantly reduce overhead (by 60% on `TestBytecode`) > - refactored `OpBuilder` to build `ModuleOp` instead of individual `FuncCallOp`s > - fixed `BytecodeGenerator` to support `ModuleOp` and `FuncCallOp` This pull request has now been integrated. Changeset: 590b29e0 Author: Adam Sotona URL: https://git.openjdk.org/babylon/commit/590b29e0a1891b3f0fa0eab5110296a6e517763f Stats: 629 lines in 4 files changed: 345 ins; 215 del; 69 mod OpBuilder optimizations - part 1. Reviewed-by: mabbay ------------- PR: https://git.openjdk.org/babylon/pull/679 From asotona at openjdk.org Wed Nov 19 16:15:39 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 16:15:39 GMT Subject: [code-reflection] RFR: Ensure HAT executes with Babylon JDK images build In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 18:51:35 GMT, Paul Sandoz wrote: > HAT only executes correctly with a Babylon JDK exploded build, and fails with an images build. > > We need to declare the runtime argument `--add-modules jdk.incubator.code`. > > Also removed an `--add-exports` argument which no longer seems to be required. Works nicely now. ------------- Marked as reviewed by asotona (Reviewer). PR Review: https://git.openjdk.org/babylon/pull/684#pullrequestreview-3483555409 From jfumero at openjdk.org Wed Nov 19 16:15:40 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 19 Nov 2025 16:15:40 GMT Subject: [code-reflection] RFR: Ensure HAT executes with Babylon JDK images build In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 18:51:35 GMT, Paul Sandoz wrote: > HAT only executes correctly with a Babylon JDK exploded build, and fails with an images build. > > We need to declare the runtime argument `--add-modules jdk.incubator.code`. > > Also removed an `--add-exports` argument which no longer seems to be required. LGTM, build and unit-tests passing. ------------- Marked as reviewed by jfumero (Reviewer). PR Review: https://git.openjdk.org/babylon/pull/684#pullrequestreview-3483590417 From psandoz at openjdk.org Wed Nov 19 16:36:48 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 19 Nov 2025 16:36:48 GMT Subject: git: openjdk/babylon: code-reflection: Ensure HAT executes with Babylon JDK images build Message-ID: <1c3425d6-9df3-4d59-8cc5-3ad80da7df97@openjdk.org> Changeset: 1fd09172 Branch: code-reflection Author: Paul Sandoz Date: 2025-11-19 16:33:04 +0000 URL: https://git.openjdk.org/babylon/commit/1fd09172961d7d3658db629333be3adf5001efb6 Ensure HAT executes with Babylon JDK images build Reviewed-by: mcimadamore, asotona, jfumero ! hat/hat/job.jar ! hat/hat/job/src/main/java/job/Jar.java ! hat/hat/run.java ! hat/hat/test.java From psandoz at openjdk.org Wed Nov 19 16:37:12 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 19 Nov 2025 16:37:12 GMT Subject: [code-reflection] Integrated: Ensure HAT executes with Babylon JDK images build In-Reply-To: References: Message-ID: On Tue, 18 Nov 2025 18:51:35 GMT, Paul Sandoz wrote: > HAT only executes correctly with a Babylon JDK exploded build, and fails with an images build. > > We need to declare the runtime argument `--add-modules jdk.incubator.code`. > > Also removed an `--add-exports` argument which no longer seems to be required. This pull request has now been integrated. Changeset: 1fd09172 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/1fd09172961d7d3658db629333be3adf5001efb6 Stats: 5 lines in 4 files changed: 3 ins; 1 del; 1 mod Ensure HAT executes with Babylon JDK images build Reviewed-by: mcimadamore, asotona, jfumero ------------- PR: https://git.openjdk.org/babylon/pull/684 From psandoz at openjdk.org Wed Nov 19 18:08:05 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 19 Nov 2025 18:08:05 GMT Subject: [code-reflection] RFR: Drop Quotable type [v3] In-Reply-To: <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> Message-ID: <4sRaJBEyCcF-tdctvOy2cU8kzBKnmE6ARpnxSRFh1yQ=.b181d836-9e6c-41ee-a3e6-639425fb216d@github.com> On Wed, 19 Nov 2025 14:26:05 GMT, Maurizio Cimadamore wrote: >> The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: >> >> >> Runnable r = (@CodeReflection Runnable)() -> {} >> >> >> Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: >> >> >> void m(@CodeReflection Runnable r) { ... } >> m(() -> { .. }); >> >> >> we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. >> >> There's also other cases like: >> >> >> @CodeReflection >> Runnable m() { >> return () -> { .. }; >> } >> >> >> If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. >> >> To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. >> >> Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. >> >> This implementation tactic guarantees that type annotations will only be consulted when needed. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Remove more dead code > Fix all samples > Fix HAT code This looks good (one minor comment about possibly redundant code check in the code reflection tester). In a subsequent PR we can rename `@CodeReflection` to `@Reflect` and replace use of the term Quotable with Reflectable (we need to keep Quoted, its a more general concept and i cannot think of a better name right now.) test/langtools/tools/javac/reflect/CodeReflectionTester.java line 114: > 112: String found = canonicalizeModel(field, getModelOfQuotedOp(quoted)); > 113: checkModel(field, found, ir); > 114: } else { Do we need the above check `if (field.getType().equals(Quoted.class)) ...`? ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/685#pullrequestreview-3484061999 PR Review Comment: https://git.openjdk.org/babylon/pull/685#discussion_r2543040564 From mabbay at openjdk.org Wed Nov 19 18:14:58 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 19 Nov 2025 18:14:58 GMT Subject: [code-reflection] RFR: Optimize type construction in OpBuilder Message-ID: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Further optimize OpBuilder by reducing the overhead of type construction. ------------- Commit messages: - Integrate the changes into OpBuilder - Merge branch 'code-reflection' into optimize-type-construction - Optimize type construction in OpBuilder Changes: https://git.openjdk.org/babylon/pull/687/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=687&range=00 Stats: 120 lines in 1 file changed: 85 ins; 30 del; 5 mod Patch: https://git.openjdk.org/babylon/pull/687.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/687/head:pull/687 PR: https://git.openjdk.org/babylon/pull/687 From psandoz at openjdk.org Wed Nov 19 18:26:16 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 19 Nov 2025 18:26:16 GMT Subject: [code-reflection] RFR: Drop Quotable type [v3] In-Reply-To: <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> <8-LZzjlJBkQsbp6iM4dit-ONf2oRUINN5kBEHkqaHqE=.a47f7d91-5e25-4962-b13d-be20761fd9a2@github.com> Message-ID: On Wed, 19 Nov 2025 14:26:05 GMT, Maurizio Cimadamore wrote: >> The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: >> >> >> Runnable r = (Runnable & Quotable)() -> {} >> >> >> Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: >> >> >> Runnable r = (@CodeReflection Runnable)() -> {} >> >> >> Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: >> >> >> void m(@CodeReflection Runnable r) { ... } >> m(() -> { .. }); >> >> >> we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. >> >> There's also other cases like: >> >> >> @CodeReflection >> Runnable m() { >> return () -> { .. }; >> } >> >> >> If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. >> >> To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. >> >> Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. >> >> This implementation tactic guarantees that type annotations will only be consulted when needed. > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Remove more dead code > Fix all samples > Fix HAT code I am balking on following up and requiring use-site and declaration-site alignment: @FunctionalInterface @Reflect ReflectableRunnable extends Runnable {} void m(ReflectableRunnable r) { } // Fail, use site and declaration site are not aligned m(() -> {}) // Pass m((@Reflect ReflectableRunnable) () -> {}) I worry the current verbosity is so unpalatable it will reduce folks willingness to experiment. We will somehow need to get there eventually with some new concise language feature(s). ------------- PR Comment: https://git.openjdk.org/babylon/pull/685#issuecomment-3554077866 From asotona at openjdk.org Wed Nov 19 19:18:46 2025 From: asotona at openjdk.org (Adam Sotona) Date: Wed, 19 Nov 2025 19:18:46 GMT Subject: [code-reflection] RFR: Optimize type construction in OpBuilder In-Reply-To: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> References: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Message-ID: On Wed, 19 Nov 2025 17:34:30 GMT, Mourad Abbay wrote: > Further optimize OpBuilder by reducing the overhead of type construction. Initial construction of the typeElementFactory seems to me obsolete. var dialectFactory = dialectFactoryF.apply(builder); this.typeElementFactory = builder.op(invoke(DIALECT_FACTORY_TYPE_ELEMENT_FACTORY, dialectFactory)); src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java line 345: > 343: var i = b.parameter(INT); > 344: > 345: var dialectFactory = b.op(fieldLoad(FieldRef.field(JavaOp.class, "JAVA_DIALECT_FACTORY", DialectFactory.class))); Here we may need to pass the actual type factory, instead of the hard-coded `JavaOp.JAVA_DIALECT_FACTORY`. ------------- PR Comment: https://git.openjdk.org/babylon/pull/687#issuecomment-3554244591 PR Review Comment: https://git.openjdk.org/babylon/pull/687#discussion_r2543253941 From mcimadamore at openjdk.org Wed Nov 19 20:19:33 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 19 Nov 2025 20:19:33 GMT Subject: [code-reflection] RFR: Drop Quotable type [v4] In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Drop redundant test in CodeReflectionTester ------------- Changes: - all: https://git.openjdk.org/babylon/pull/685/files - new: https://git.openjdk.org/babylon/pull/685/files/b0b3fe35..b8da5394 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=03 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=02-03 Stats: 12 lines in 1 file changed: 0 ins; 7 del; 5 mod Patch: https://git.openjdk.org/babylon/pull/685.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/685/head:pull/685 PR: https://git.openjdk.org/babylon/pull/685 From mabbay at openjdk.org Thu Nov 20 09:40:25 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Thu, 20 Nov 2025 09:40:25 GMT Subject: [code-reflection] RFR: Optimize type construction in OpBuilder [v2] In-Reply-To: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> References: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Message-ID: > Further optimize OpBuilder by reducing the overhead of type construction. Mourad Abbay has updated the pull request incrementally with one additional commit since the last revision: Address review comments ------------- Changes: - all: https://git.openjdk.org/babylon/pull/687/files - new: https://git.openjdk.org/babylon/pull/687/files/22c273a8..ea08c5ff Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=687&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=687&range=00-01 Stats: 9 lines in 1 file changed: 0 ins; 6 del; 3 mod Patch: https://git.openjdk.org/babylon/pull/687.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/687/head:pull/687 PR: https://git.openjdk.org/babylon/pull/687 From mabbay at openjdk.org Thu Nov 20 13:00:59 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Thu, 20 Nov 2025 13:00:59 GMT Subject: [code-reflection] RFR: Optimize type construction in OpBuilder [v3] In-Reply-To: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> References: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Message-ID: > Further optimize OpBuilder by reducing the overhead of type construction. Mourad Abbay has updated the pull request incrementally with one additional commit since the last revision: Encapsulate result type construction inside $op1 ------------- Changes: - all: https://git.openjdk.org/babylon/pull/687/files - new: https://git.openjdk.org/babylon/pull/687/files/ea08c5ff..0c995bf8 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=687&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=687&range=01-02 Stats: 14 lines in 1 file changed: 2 ins; 0 del; 12 mod Patch: https://git.openjdk.org/babylon/pull/687.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/687/head:pull/687 PR: https://git.openjdk.org/babylon/pull/687 From asotona at openjdk.org Thu Nov 20 13:25:06 2025 From: asotona at openjdk.org (Adam Sotona) Date: Thu, 20 Nov 2025 13:25:06 GMT Subject: [code-reflection] RFR: Optimize type construction in OpBuilder [v3] In-Reply-To: References: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Message-ID: On Thu, 20 Nov 2025 13:00:59 GMT, Mourad Abbay wrote: >> Further optimize OpBuilder by reducing the overhead of type construction. > > Mourad Abbay has updated the pull request incrementally with one additional commit since the last revision: > > Encapsulate result type construction inside $op1 Very nice compaction of the generated code. We can go even further in future PR(s). ------------- Marked as reviewed by asotona (Reviewer). PR Review: https://git.openjdk.org/babylon/pull/687#pullrequestreview-3487841677 From mcimadamore at openjdk.org Thu Nov 20 14:34:27 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 14:34:27 GMT Subject: [code-reflection] RFR: Drop Quotable type [v5] In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. Maurizio Cimadamore has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits: - Merge branch 'code-reflection' into quotable_anno - Drop redundant test in CodeReflectionTester - Remove more dead code Fix all samples Fix HAT code - Further simplify code - Simplify code - Fix JDK tests - Initial push ------------- Changes: https://git.openjdk.org/babylon/pull/685/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=685&range=04 Stats: 424 lines in 41 files changed: 107 ins; 164 del; 153 mod Patch: https://git.openjdk.org/babylon/pull/685.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/685/head:pull/685 PR: https://git.openjdk.org/babylon/pull/685 From mcimadamore at openjdk.org Thu Nov 20 14:40:31 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 14:40:31 GMT Subject: git: openjdk/babylon: code-reflection: Drop Quotable type Message-ID: <025bd4fa-b8d1-465a-84c2-788692372282@openjdk.org> Changeset: 577c89e9 Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-20 14:38:57 +0000 URL: https://git.openjdk.org/babylon/commit/577c89e9e1d2a4cf86c5c6ac8b798e9ba40e0788 Drop Quotable type Reviewed-by: psandoz ! cr-examples/onnx/src/main/java/oracle/code/onnx/ExplicitOnnxOperators.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/OnnxRuntime.java ! hat/core/src/main/java/hat/Accelerator.java ! hat/core/src/main/java/hat/ComputeContext.java ! hat/examples/experiments/src/main/java/experiments/TestQuoted.java ! hat/examples/experiments/src/main/java/experiments/spirv/Bad.java ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/LambdaMetafactory.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/CodeReflectionTransformer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeReflection.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java - src/jdk.incubator.code/share/classes/jdk/incubator/code/Quotable.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/CodeReflectionSymbols.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/TreeScannerPrev.java ! test/jdk/java/lang/reflect/code/TestBuild.java ! test/jdk/java/lang/reflect/code/TestInline.java ! test/jdk/java/lang/reflect/code/TestLambdaOps.java ! test/jdk/java/lang/reflect/code/TestMethodRefLambda.java ! test/jdk/java/lang/reflect/code/TestQuoteOp.java ! test/jdk/java/lang/reflect/code/TestSealOp.java ! test/jdk/java/lang/reflect/code/bytecode/TestBytecode.java ! test/jdk/java/lang/reflect/code/bytecode/TestNestedCapturingLambda.java ! test/jdk/java/lang/reflect/code/bytecode/lift/TestBytecodeLift.java ! test/jdk/java/lang/reflect/code/expression/TestExpressionElimination.java ! test/jdk/java/lang/reflect/code/linq/QuotableFunction.java ! test/jdk/java/lang/reflect/code/linq/QuotablePredicate.java ! test/jdk/java/lang/reflect/code/stream/StreamFuser.java ! test/langtools/tools/javac/reflect/CodeReflectionTester.java ! test/langtools/tools/javac/reflect/LambdaModelUniquenessTest.java ! test/langtools/tools/javac/reflect/QuotableIntersectionTest.java ! test/langtools/tools/javac/reflect/QuotableSubtypeTest.java ! test/langtools/tools/javac/reflect/QuotedSameInstanceTest.java ! test/langtools/tools/javac/reflect/TestCaptureQuotable.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.out ! test/langtools/tools/javac/reflect/UnreachableTest.java From mcimadamore at openjdk.org Thu Nov 20 14:42:59 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 14:42:59 GMT Subject: [code-reflection] Integrated: Drop Quotable type In-Reply-To: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> References: <7kpksP3qLT4NAMAsT6jGI3m-7rJeX-1sJMgPMwvS-_o=.609e1d87-4e87-452f-9565-9d1b88cad975@github.com> Message-ID: On Wed, 19 Nov 2025 13:00:51 GMT, Maurizio Cimadamore wrote: > The `Quotable` type is a marker interface that is used to mark lambda expressions and method reference for which javac should produce a code model (we call them quotable lambdas), as in: > > > Runnable r = (Runnable & Quotable)() -> {} > > > Since the lambda metafactory, nor `Op::opQuotable` only rely on this type in a superficial way, this PR simplifies the programming model by removing `Quotable` and use the `@CodeReflection` annotation (now turned into a type annotation) to mark quotable lambdas, as in: > > > Runnable r = (@CodeReflection Runnable)() -> {} > > > Supporting this is relatively straightforward. The most complex part is, perhaps, to make sure that (a) the type annotation we care about is visible in the AST (javac is very lazy when it comes to fill in information on type annotations) and (b) make sure we don't end up using type annotations that appear in positions other than a cast. The latter point is important; if we have this: > > > void m(@CodeReflection Runnable r) { ... } > m(() -> { .. }); > > > we don't want the lambda to magically become quotable simply because the target method parameter has been annotated. > > There's also other cases like: > > > @CodeReflection > Runnable m() { > return () -> { .. }; > } > > > If `@CodeReflection` is a type annotation, the above lambda has a target `@CodeReflection Runnable` and is also treated as a quotable lambda. What we want here instead is for `@CodeReflection` to just act as a regular declaration annotation on the method. > > To address these issues, I've augmented both `ReflectMethods` and its associated `BodyScanner` to keep track of the prviously visited node. This is done by having both classes extend a new simple scanner `TreeScannerPrev`, which "remembers" the node visited before the current one. > > Thanks to this, when we see a lambda we can see if the previous node was a cast, and if such a cast contained any type-annotated type. If so, we will treat the lambda as a quotable lambda. > > This implementation tactic guarantees that type annotations will only be consulted when needed. This pull request has now been integrated. Changeset: 577c89e9 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/577c89e9e1d2a4cf86c5c6ac8b798e9ba40e0788 Stats: 424 lines in 41 files changed: 107 ins; 164 del; 153 mod Drop Quotable type Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/685 From mabbay at openjdk.org Thu Nov 20 17:08:19 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Thu, 20 Nov 2025 17:08:19 GMT Subject: [code-reflection] Integrated: Optimize type construction in OpBuilder In-Reply-To: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> References: <1YkOY7JgJVyOjWFps538BKJSC9DttQ5Gjbh8fetIVyY=.29e8593c-4598-46df-a3c9-9ff18de5ae94@github.com> Message-ID: On Wed, 19 Nov 2025 17:34:30 GMT, Mourad Abbay wrote: > Further optimize OpBuilder by reducing the overhead of type construction. This pull request has now been integrated. Changeset: 83c930a1 Author: Mourad Abbay URL: https://git.openjdk.org/babylon/commit/83c930a198d9c0333d44806417b26d0688f184bb Stats: 133 lines in 1 file changed: 85 ins; 34 del; 14 mod Optimize type construction in OpBuilder Reviewed-by: asotona ------------- PR: https://git.openjdk.org/babylon/pull/687 From mabbay at openjdk.org Thu Nov 20 17:09:15 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Thu, 20 Nov 2025 17:09:15 GMT Subject: git: openjdk/babylon: code-reflection: Optimize type construction in OpBuilder Message-ID: <7a84979d-c668-45c8-a7ed-75a9e706230b@openjdk.org> Changeset: 83c930a1 Branch: code-reflection Author: Mourad Abbay Date: 2025-11-20 17:05:59 +0000 URL: https://git.openjdk.org/babylon/commit/83c930a198d9c0333d44806417b26d0688f184bb Optimize type construction in OpBuilder Reviewed-by: asotona ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java From mcimadamore at openjdk.org Thu Nov 20 19:06:51 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 19:06:51 GMT Subject: [code-reflection] RFR: Split support for reflectable lambdas from lambda metafactory Message-ID: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> This PR introduces a new class, called `ReflectableLambdaMetafactory`, which lives in the incubating code reflection module. All capture requests for reflectable lambdas are now re-routed by javac to the new bootstrap methods defined in this class. This allows us to evolve the bootstrap protocol for reflectable lambda without negatively affecting other, non-reflectable lambdas (esp. at startup). Some magic was required to wire up the pieces: javac cannot refer to symbols in the incubating module, so I decided to let `ReflectMethods` leave a trail of crumbs for `LambdaToMethod` to go on (as `LambdaToMethod` needs to know the name of the class in which the bootstrap method lives). Some restructuring to `LambdaMetafactory` was also necessary, so that we could access the implementation internals from the new class. The new `xyzInternal` methods are exposed through `SharedSecrects` and are invoked by the reflectable metafactory, which also passes up extra information that the metafactory implementation needs to generate the additional code for reflectable lambdas. This also allowed me to get rid of the `CodeReflectionSupport` class in `InnerClassLambdaMetafactory` and the related module layer dance. ------------- Commit messages: - Cleanup InnerClassLambdaMetafactory - Fix JDK tests - Split metafactories - Use special encoding in lambda name to smuggle quotable lambdas - Fix bootstrapping issues - Initial push Changes: https://git.openjdk.org/babylon/pull/688/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=688&range=00 Stats: 517 lines in 14 files changed: 357 ins; 102 del; 58 mod Patch: https://git.openjdk.org/babylon/pull/688.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/688/head:pull/688 PR: https://git.openjdk.org/babylon/pull/688 From mcimadamore at openjdk.org Thu Nov 20 19:06:53 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 19:06:53 GMT Subject: [code-reflection] RFR: Split support for reflectable lambdas from lambda metafactory In-Reply-To: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> References: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> Message-ID: On Thu, 20 Nov 2025 18:59:06 GMT, Maurizio Cimadamore wrote: > This PR introduces a new class, called `ReflectableLambdaMetafactory`, which lives in the incubating code reflection module. > > All capture requests for reflectable lambdas are now re-routed by javac to the new bootstrap methods defined in this class. This allows us to evolve the bootstrap protocol for reflectable lambda without negatively affecting other, non-reflectable lambdas (esp. at startup). > > Some magic was required to wire up the pieces: javac cannot refer to symbols in the incubating module, so I decided to let `ReflectMethods` leave a trail of crumbs for `LambdaToMethod` to go on (as `LambdaToMethod` needs to know the name of the class in which the bootstrap method lives). > > Some restructuring to `LambdaMetafactory` was also necessary, so that we could access the implementation internals from the new class. The new `xyzInternal` methods are exposed through `SharedSecrects` and are invoked by the reflectable metafactory, which also passes up extra information that the metafactory implementation needs to generate the additional code for reflectable lambdas. > > This also allowed me to get rid of the `CodeReflectionSupport` class in `InnerClassLambdaMetafactory` and the related module layer dance. src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/ReflectableLambdaMetafactory.java line 27: > 25: > 26: /** > 27: * Facilitates the creation of simple "function objects" that implement one For now I've just copied the javadoc of the original metafactory. If you want to go a different way, please shout. Perhaps a better way could be to say more succinctly that this works in the same way as the lambda metafactory but XYZ... (e.g. focus on the differences, rather than on the similarities) ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/688#discussion_r2547301564 From psandoz at openjdk.org Thu Nov 20 19:29:20 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 20 Nov 2025 19:29:20 GMT Subject: [code-reflection] RFR: Split support for reflectable lambdas from lambda metafactory In-Reply-To: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> References: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> Message-ID: On Thu, 20 Nov 2025 18:59:06 GMT, Maurizio Cimadamore wrote: > This PR introduces a new class, called `ReflectableLambdaMetafactory`, which lives in the incubating code reflection module. > > All capture requests for reflectable lambdas are now re-routed by javac to the new bootstrap methods defined in this class. This allows us to evolve the bootstrap protocol for reflectable lambda without negatively affecting other, non-reflectable lambdas (esp. at startup). > > Some magic was required to wire up the pieces: javac cannot refer to symbols in the incubating module, so I decided to let `ReflectMethods` leave a trail of crumbs for `LambdaToMethod` to go on (as `LambdaToMethod` needs to know the name of the class in which the bootstrap method lives). > > Some restructuring to `LambdaMetafactory` was also necessary, so that we could access the implementation internals from the new class. The new `xyzInternal` methods are exposed through `SharedSecrects` and are invoked by the reflectable metafactory, which also passes up extra information that the metafactory implementation needs to generate the additional code for reflectable lambdas. > > This also allowed me to get rid of the `CodeReflectionSupport` class in `InnerClassLambdaMetafactory` and the related module layer dance. Nice update. When the incubating module is not part of the module graph we should now get a direct linkage error, which should be clearer than than some indirect linkage error from within LMF. src/jdk.incubator.code/share/classes/jdk/incubator/code/bytecode/BytecodeGenerator.java line 937: > 935: .map(Value::type).map(BytecodeGenerator::toClassDesc).toArray(ClassDesc[]::new); > 936: int lambdaIndex = lambdaSink.size(); > 937: DirectMethodHandleDesc lambdaMetafactory = DMHD_LAMBDA_METAFACTORY; Memo for later consideration (separate to this PR). To support serializable lambdas we will need more state on `LambdaOp` like we already have for reflectable lambdas, so we can reliably use the alt factory with the `Serializable` interface. ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/688#pullrequestreview-3489522272 PR Review Comment: https://git.openjdk.org/babylon/pull/688#discussion_r2547361699 From psandoz at openjdk.org Thu Nov 20 19:29:23 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 20 Nov 2025 19:29:23 GMT Subject: [code-reflection] RFR: Split support for reflectable lambdas from lambda metafactory In-Reply-To: References: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> Message-ID: On Thu, 20 Nov 2025 19:00:30 GMT, Maurizio Cimadamore wrote: >> This PR introduces a new class, called `ReflectableLambdaMetafactory`, which lives in the incubating code reflection module. >> >> All capture requests for reflectable lambdas are now re-routed by javac to the new bootstrap methods defined in this class. This allows us to evolve the bootstrap protocol for reflectable lambda without negatively affecting other, non-reflectable lambdas (esp. at startup). >> >> Some magic was required to wire up the pieces: javac cannot refer to symbols in the incubating module, so I decided to let `ReflectMethods` leave a trail of crumbs for `LambdaToMethod` to go on (as `LambdaToMethod` needs to know the name of the class in which the bootstrap method lives). >> >> Some restructuring to `LambdaMetafactory` was also necessary, so that we could access the implementation internals from the new class. The new `xyzInternal` methods are exposed through `SharedSecrects` and are invoked by the reflectable metafactory, which also passes up extra information that the metafactory implementation needs to generate the additional code for reflectable lambdas. >> >> This also allowed me to get rid of the `CodeReflectionSupport` class in `InnerClassLambdaMetafactory` and the related module layer dance. > > src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/ReflectableLambdaMetafactory.java line 27: > >> 25: >> 26: /** >> 27: * Facilitates the creation of simple "function objects" that implement one > > For now I've just copied the javadoc of the original metafactory. If you want to go a different way, please shout. Perhaps a better way could be to say more succinctly that this works in the same way as the lambda metafactory but XYZ... (e.g. focus on the differences, rather than on the similarities) Yes, that would be more succinct. We can revisit after integration of this PR. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/688#discussion_r2547372750 From mcimadamore at openjdk.org Thu Nov 20 21:55:56 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 21:55:56 GMT Subject: [code-reflection] RFR: Split support for reflectable lambdas from lambda metafactory In-Reply-To: References: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> Message-ID: On Thu, 20 Nov 2025 19:17:27 GMT, Paul Sandoz wrote: > Memo for later consideration (separate to this PR). To support serializable lambdas we will need more state on `LambdaOp` like we already have for reflectable lambdas, so we can reliably use the alt factory with the `Serializable` interface. Yep - there's also other stuff for which we need alt metafactory (like extra bridges) ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/688#discussion_r2547788938 From mcimadamore at openjdk.org Thu Nov 20 22:06:10 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 22:06:10 GMT Subject: git: openjdk/babylon: code-reflection: Split support for reflectable lambdas from lambda metafactory Message-ID: <23fdc5d7-44da-49ed-ba32-760a42cb0cb3@openjdk.org> Changeset: b4c737c2 Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-20 22:03:59 +0000 URL: https://git.openjdk.org/babylon/commit/b4c737c231f542fae345489168bb8d7f896e75b3 Split support for reflectable lambdas from lambda metafactory Reviewed-by: psandoz ! src/java.base/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/LambdaMetafactory.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/java.base/share/classes/jdk/internal/access/JavaLangInvokeAccess.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/bytecode/BytecodeGenerator.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/CodeReflectionSymbols.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/ReflectableLambdaMetafactory.java ! src/jdk.incubator.code/share/classes/module-info.java ! test/jdk/java/lang/reflect/code/bytecode/lift/BytecodeLift.java From mcimadamore at openjdk.org Thu Nov 20 22:07:39 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 20 Nov 2025 22:07:39 GMT Subject: [code-reflection] Integrated: Split support for reflectable lambdas from lambda metafactory In-Reply-To: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> References: <9fU395779RyU_cHpfhb9VlVV9W1x3kTotMNiD0wTPFs=.57818a26-5c23-4639-9587-8827d33ec1d6@github.com> Message-ID: On Thu, 20 Nov 2025 18:59:06 GMT, Maurizio Cimadamore wrote: > This PR introduces a new class, called `ReflectableLambdaMetafactory`, which lives in the incubating code reflection module. > > All capture requests for reflectable lambdas are now re-routed by javac to the new bootstrap methods defined in this class. This allows us to evolve the bootstrap protocol for reflectable lambda without negatively affecting other, non-reflectable lambdas (esp. at startup). > > Some magic was required to wire up the pieces: javac cannot refer to symbols in the incubating module, so I decided to let `ReflectMethods` leave a trail of crumbs for `LambdaToMethod` to go on (as `LambdaToMethod` needs to know the name of the class in which the bootstrap method lives). > > Some restructuring to `LambdaMetafactory` was also necessary, so that we could access the implementation internals from the new class. The new `xyzInternal` methods are exposed through `SharedSecrects` and are invoked by the reflectable metafactory, which also passes up extra information that the metafactory implementation needs to generate the additional code for reflectable lambdas. > > This also allowed me to get rid of the `CodeReflectionSupport` class in `InnerClassLambdaMetafactory` and the related module layer dance. This pull request has now been integrated. Changeset: b4c737c2 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/b4c737c231f542fae345489168bb8d7f896e75b3 Stats: 517 lines in 14 files changed: 357 ins; 102 del; 58 mod Split support for reflectable lambdas from lambda metafactory Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/688 From psandoz at openjdk.org Thu Nov 20 23:59:16 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 20 Nov 2025 23:59:16 GMT Subject: [code-reflection] RFR: Code transformer Message-ID: Rename `OpTransformer` to `CodeTransformer`, and `CopyContext` to `CodeContext`. Add a simplified operation transformer which is composed into a code transformer, for cases where operations are mostly replaced with one or more other operations (replacing with zero other operations is also possible). In such cases it is not necessary to deal with the code context and value mappings, nor return the block builder, as is required with a code transformer. ------------- Commit messages: - Merge remote-tracking branch 'upstream/code-reflection' into code-transformer - Rename OpTransformer to CodeTransformer. Changes: https://git.openjdk.org/babylon/pull/690/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=690&range=00 Stats: 2019 lines in 148 files changed: 461 ins; 220 del; 1338 mod Patch: https://git.openjdk.org/babylon/pull/690.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/690/head:pull/690 PR: https://git.openjdk.org/babylon/pull/690 From duke at openjdk.org Fri Nov 21 00:26:27 2025 From: duke at openjdk.org (Ruby Chen) Date: Fri, 21 Nov 2025 00:26:27 GMT Subject: [code-reflection] RFR: ModuleOp generation from LambdaOp and FuncOp Message-ID: Add support for generating a ModuleOp from either a LambdaOp or a FuncOp. The given LambdaOp will be converted into the root FuncOp, and the given FuncOp will be assigned as the root FuncOp. For `CoreOp.ModuleOp.ofLambdaOp()`, a unique name for the new root FuncOp must be passed as a parameter. ------------- Commit messages: - ModuleOp generation from LambdaOp and FuncOp Changes: https://git.openjdk.org/babylon/pull/691/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=00 Stats: 83 lines in 1 file changed: 83 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/691.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/691/head:pull/691 PR: https://git.openjdk.org/babylon/pull/691 From asotona at openjdk.org Fri Nov 21 03:15:32 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 03:15:32 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode Message-ID: Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` - new `genCode` method is added to `CodeReflectionTransformer` interface - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class ------------- Commit messages: - removing JCClassDecl.crContext field - code reflection synthetic class generation moved to JavaCompiler::genCode Changes: https://git.openjdk.org/babylon/pull/689/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=689&range=00 Stats: 98 lines in 3 files changed: 59 ins; 38 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/689.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/689/head:pull/689 PR: https://git.openjdk.org/babylon/pull/689 From psandoz at openjdk.org Fri Nov 21 03:15:32 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 03:15:32 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode In-Reply-To: References: Message-ID: On Thu, 20 Nov 2025 20:23:50 GMT, Adam Sotona wrote: > Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. > > - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` > - new `genCode` method is added to `CodeReflectionTransformer` interface > - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method > - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 2695: > 2693: } > 2694: > 2695: private static class OpMap extends LinkedHashMap { Make it a record holding a `SequencedMap`, with a constructor that creates a linked hash map instance. You can also include methods that defer to the map if needed. Then you don't need the serialVersionUID, and if the compiler allows it you can pattern match on the record's map component to directly operate on the map in `genCode`. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/689#discussion_r2548203931 From asotona at openjdk.org Fri Nov 21 03:15:33 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 03:15:33 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 01:11:01 GMT, Paul Sandoz wrote: >> Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. >> >> - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` >> - new `genCode` method is added to `CodeReflectionTransformer` interface >> - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method >> - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class > > src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java line 2695: > >> 2693: } >> 2694: >> 2695: private static class OpMap extends LinkedHashMap { > > Make it a record holding a `SequencedMap`, with a constructor that creates a linked hash map instance. You can also include methods that defer to the map if needed. Then you don't need the serialVersionUID, and if the compiler allows it you can pattern match on the record's map component to directly operate on the map in `genCode`. I found a way avoiding modification of the `JCTree.JCClassDecl` API. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/689#discussion_r2548395321 From duke at openjdk.org Fri Nov 21 04:07:21 2025 From: duke at openjdk.org (duke) Date: Fri, 21 Nov 2025 04:07:21 GMT Subject: git: openjdk/babylon: created branch local-class-model based on the branch code-reflection containing 0 unique commits Message-ID: <00f18442-290b-450f-acd1-6e41762072fd@openjdk.org> The new branch local-class-model is currently identical to the code-reflection branch. From duke at openjdk.org Fri Nov 21 04:43:19 2025 From: duke at openjdk.org (duke) Date: Fri, 21 Nov 2025 04:43:19 GMT Subject: git: openjdk/babylon: local-class-model: 5 new changesets Message-ID: Changeset: 99103550 Branch: local-class-model Author: Mourad Abbay Date: 2025-11-11 15:59:38 +0000 URL: https://git.openjdk.org/babylon/commit/99103550355d4a039e489747233fa7a4d43fb5d4 Model local class (Iteration 1) ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java ! test/langtools/tools/javac/reflect/LocalClassTest.java Changeset: 805da889 Branch: local-class-model Author: Mourad Abbay Date: 2025-11-19 15:18:08 +0000 URL: https://git.openjdk.org/babylon/commit/805da889faf3bad5481f96dcf846afef4f6ec2bb Merge branch 'code-reflection' into local-class # Conflicts: # src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java Changeset: 50162011 Branch: local-class-model Author: Mourad Abbay Date: 2025-11-19 17:10:52 +0000 URL: https://git.openjdk.org/babylon/commit/5016201198cc5f4c502350352c7cd1df07ecd13c Adopt the merge of MethodRef and ConstructorRef ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/langtools/tools/javac/reflect/LocalClassTest.java Changeset: 504cbc7a Branch: local-class-model Author: Mourad Abbay Date: 2025-11-20 12:03:12 +0000 URL: https://git.openjdk.org/babylon/commit/504cbc7af67d21229f11b228abb7a060dc5c6280 Add class type attribute to ClassDecOp ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/langtools/tools/javac/reflect/LocalClassTest.java Changeset: 98fd78ea Branch: local-class-model Author: Mourad Abbay Date: 2025-11-21 05:23:51 +0000 URL: https://git.openjdk.org/babylon/commit/98fd78eab66374ebb2dad0e17730b91ab65183ff Merge branch 'local-class' into local-class-model # Conflicts: # src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java From asotona at openjdk.org Fri Nov 21 04:49:58 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 04:49:58 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode [v2] In-Reply-To: References: Message-ID: > Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. > > - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` > - new `genCode` method is added to `CodeReflectionTransformer` interface > - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method > - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: - TreeTranslatorPrev implementation and ReflectMethods fix - Merge branch 'code-reflection' into javac-gen-cm - removing JCClassDecl.crContext field - code reflection synthetic class generation moved to JavaCompiler::genCode ------------- Changes: - all: https://git.openjdk.org/babylon/pull/689/files - new: https://git.openjdk.org/babylon/pull/689/files/e4ea6be5..7ece448f Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=689&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=689&range=00-01 Stats: 1107 lines in 52 files changed: 585 ins; 299 del; 223 mod Patch: https://git.openjdk.org/babylon/pull/689.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/689/head:pull/689 PR: https://git.openjdk.org/babylon/pull/689 From mabbay at openjdk.org Fri Nov 21 04:50:43 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Fri, 21 Nov 2025 04:50:43 GMT Subject: [code-reflection] RFR: Local class model Message-ID: An attempt to model local classes. ------------- Commit messages: - Merge branch 'local-class' into local-class-model - Add class type attribute to ClassDecOp - Adopt the merge of MethodRef and ConstructorRef - Merge branch 'code-reflection' into local-class - Model local class (Iteration 1) Changes: https://git.openjdk.org/babylon/pull/692/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=692&range=00 Stats: 407 lines in 4 files changed: 353 ins; 0 del; 54 mod Patch: https://git.openjdk.org/babylon/pull/692.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/692/head:pull/692 PR: https://git.openjdk.org/babylon/pull/692 From mcimadamore at openjdk.org Fri Nov 21 13:07:24 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 13:07:24 GMT Subject: [code-reflection] RFR: Code transformer In-Reply-To: References: Message-ID: <9L-e94g9dJyBmCBs3Q9wajfNMQZpj6ovpZ2kU92lW9E=.6363d117-d978-4910-b2b1-232ba6d02bea@github.com> On Thu, 20 Nov 2025 23:50:52 GMT, Paul Sandoz wrote: > Rename `OpTransformer` to `CodeTransformer`, and `CopyContext` to `CodeContext`. > > Add a simplified operation transformer which is composed into a code transformer, for cases where operations are mostly replaced with one or more other operations (replacing with zero other operations is also possible). In such cases it is not necessary to deal with the code context and value mappings, nor return the block builder, as is required with a code transformer. Marked as reviewed by mcimadamore (Reviewer). src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeTransformer.java line 54: > 52: * that map to the input operation > 53: */ > 54: void acceptOp(Function builder, Op in, List outOperands); I found the use of `in` and `out` confusing. In the tests I see you just use `op` and `operands` and in my mind that's a bit clearer. Also, the name `OpTransformerRename` feels a bit odd -- isn't this an `OpMapper`? (and the resulting `opTranformer` method a `mapOps` ? test/jdk/java/lang/reflect/code/transform/TestTransform.java line 22: > 20: * @run junit TestTransform > 21: */ > 22: public class TestTransform { This is great functionality -- most of the time I wanted to transform, I really just wanted something like this :-) ------------- PR Review: https://git.openjdk.org/babylon/pull/690#pullrequestreview-3492681395 PR Review Comment: https://git.openjdk.org/babylon/pull/690#discussion_r2549696516 PR Review Comment: https://git.openjdk.org/babylon/pull/690#discussion_r2549699968 From asotona at openjdk.org Fri Nov 21 13:59:42 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 13:59:42 GMT Subject: [code-reflection] RFR: Code transformer In-Reply-To: References: Message-ID: On Thu, 20 Nov 2025 23:50:52 GMT, Paul Sandoz wrote: > Rename `OpTransformer` to `CodeTransformer`, and `CopyContext` to `CodeContext`. > > Add a simplified operation transformer which is composed into a code transformer, for cases where operations are mostly replaced with one or more other operations (replacing with zero other operations is also possible). In such cases it is not necessary to deal with the code context and value mappings, nor return the block builder, as is required with a code transformer. Marked as reviewed by asotona (Reviewer). ------------- PR Review: https://git.openjdk.org/babylon/pull/690#pullrequestreview-3492867873 From mcimadamore at openjdk.org Fri Nov 21 14:23:29 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 14:23:29 GMT Subject: [code-reflection] RFR: Rename @CodeReflection to @Reflect Message-ID: This PR changes `@CodeReflection` into `@Reflect`. There are lots of changes, but all of them are shallow. ------------- Commit messages: - Rename @CodeReflection to @Reflect Changes: https://git.openjdk.org/babylon/pull/693/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=693&range=00 Stats: 1564 lines in 223 files changed: 16 ins; 14 del; 1534 mod Patch: https://git.openjdk.org/babylon/pull/693.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/693/head:pull/693 PR: https://git.openjdk.org/babylon/pull/693 From mcimadamore at openjdk.org Fri Nov 21 14:23:32 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 14:23:32 GMT Subject: [code-reflection] RFR: Rename @CodeReflection to @Reflect In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 13:42:35 GMT, Maurizio Cimadamore wrote: > This PR changes `@CodeReflection` into `@Reflect`. > > There are lots of changes, but all of them are shallow. src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/CodeReflectionSymbols.java line 58: > 56: Names names = Names.instance(context); > 57: ModuleSymbol jdk_incubator_code = syms.enterModule(names.jdk_incubator_code); > 58: codeReflectionType = syms.enterClass(jdk_incubator_code, "jdk.incubator.code.Reflect"); This is the only case of a rename affecting a string ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/693#discussion_r2549905550 From mcimadamore at openjdk.org Fri Nov 21 14:26:19 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 14:26:19 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode [v2] In-Reply-To: References: Message-ID: <2Ke57j_JYSQ1wruTCelaB5UufZOoiQfAARZy2Cgqi5s=.8279e5af-97e3-4759-9c6e-77ba05f93892@github.com> On Fri, 21 Nov 2025 04:49:58 GMT, Adam Sotona wrote: >> Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. >> >> - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` >> - new `genCode` method is added to `CodeReflectionTransformer` interface >> - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method >> - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class > > Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: > > - TreeTranslatorPrev implementation and ReflectMethods fix > > - Merge branch 'code-reflection' into javac-gen-cm > - removing JCClassDecl.crContext field > > - code reflection synthetic class generation moved to JavaCompiler::genCode Marked as reviewed by mcimadamore (Reviewer). src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/TreeTranslatorPrev.java line 24: > 22: } > 23: > 24: public void scan(JCTree tree, JCTree prevNode) { This is probably not needeed ------------- PR Review: https://git.openjdk.org/babylon/pull/689#pullrequestreview-3492968937 PR Review Comment: https://git.openjdk.org/babylon/pull/689#discussion_r2549918483 From jfumero at openjdk.org Fri Nov 21 14:30:35 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 21 Nov 2025 14:30:35 GMT Subject: [code-reflection] RFR: [hat] Reduces the number of threads in thread-block for small kernels Message-ID: Reduces the number of threads in thread-block for small kernels. This should be trigger only when debugging small kernels with the CUDA backend. ------------- Commit messages: - [hat] Reduces the number of threads in thread-block for small kernels Changes: https://git.openjdk.org/babylon/pull/694/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=694&range=00 Stats: 69 lines in 3 files changed: 46 ins; 18 del; 5 mod Patch: https://git.openjdk.org/babylon/pull/694.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/694/head:pull/694 PR: https://git.openjdk.org/babylon/pull/694 From jfumero at openjdk.org Fri Nov 21 14:32:31 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 21 Nov 2025 14:32:31 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Reduces the number of threads in thread-block for small kernels Message-ID: Changeset: 75c9e8a0 Branch: code-reflection Author: Juan Fumero Date: 2025-11-21 14:31:32 +0000 URL: https://git.openjdk.org/babylon/commit/75c9e8a07799d921886b8a2212297fbd123125cd [hat] Reduces the number of threads in thread-block for small kernels ! hat/backends/ffi/cuda/src/main/native/cpp/cuda_backend_queue.cpp ! hat/backends/ffi/cuda/src/main/native/include/cuda_backend.h ! hat/tests/src/main/java/hat/test/TestArrays.java From jfumero at openjdk.org Fri Nov 21 14:34:23 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 21 Nov 2025 14:34:23 GMT Subject: [code-reflection] Integrated: [hat] Reduces the number of threads in thread-block for small kernels In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 14:23:03 GMT, Juan Fumero wrote: > Reduces the number of threads in thread-block for small kernels. > This should be trigger only when debugging small kernels with the CUDA backend. This pull request has now been integrated. Changeset: 75c9e8a0 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/75c9e8a07799d921886b8a2212297fbd123125cd Stats: 69 lines in 3 files changed: 46 ins; 18 del; 5 mod [hat] Reduces the number of threads in thread-block for small kernels ------------- PR: https://git.openjdk.org/babylon/pull/694 From psandoz at openjdk.org Fri Nov 21 15:51:15 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 15:51:15 GMT Subject: [code-reflection] RFR: Code transformer [v2] In-Reply-To: References: Message-ID: > Rename `OpTransformer` to `CodeTransformer`, and `CopyContext` to `CodeContext`. > > Add a simplified operation transformer which is composed into a code transformer, for cases where operations are mostly replaced with one or more other operations (replacing with zero other operations is also possible). In such cases it is not necessary to deal with the code context and value mappings, nor return the block builder, as is required with a code transformer. Paul Sandoz has updated the pull request incrementally with one additional commit since the last revision: Rename OpTransformerRename to OpTransformer. Update docs. ------------- Changes: - all: https://git.openjdk.org/babylon/pull/690/files - new: https://git.openjdk.org/babylon/pull/690/files/eb3d7b39..6315fe52 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=690&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=690&range=00-01 Stats: 20 lines in 1 file changed: 4 ins; 2 del; 14 mod Patch: https://git.openjdk.org/babylon/pull/690.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/690/head:pull/690 PR: https://git.openjdk.org/babylon/pull/690 From psandoz at openjdk.org Fri Nov 21 15:53:58 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 15:53:58 GMT Subject: [code-reflection] RFR: Code transformer [v2] In-Reply-To: <9L-e94g9dJyBmCBs3Q9wajfNMQZpj6ovpZ2kU92lW9E=.6363d117-d978-4910-b2b1-232ba6d02bea@github.com> References: <9L-e94g9dJyBmCBs3Q9wajfNMQZpj6ovpZ2kU92lW9E=.6363d117-d978-4910-b2b1-232ba6d02bea@github.com> Message-ID: On Fri, 21 Nov 2025 13:01:56 GMT, Maurizio Cimadamore wrote: >> Paul Sandoz has updated the pull request incrementally with one additional commit since the last revision: >> >> Rename OpTransformerRename to OpTransformer. >> >> Update docs. > > src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeTransformer.java line 54: > >> 52: * that map to the input operation >> 53: */ >> 54: void acceptOp(Function builder, Op in, List outOperands); > > I found the use of `in` and `out` confusing. In the tests I see you just use `op` and `operands` and in my mind that's a bit clearer. Also, the name `OpTransformerRename` feels a bit odd -- isn't this an `OpMapper`? (and the resulting `opTranformer` method a `mapOps` ? Ooops `OpTransformerRename` was a temporary name to avoid conflicts until renaming to `OpTransformer`, and i wanted to align the naming with `CodeTransformer`. I tweaked the docs, but overall more work is required to properly specify. ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/690#discussion_r2550211760 From psandoz at openjdk.org Fri Nov 21 15:56:04 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 15:56:04 GMT Subject: git: openjdk/babylon: code-reflection: Code transformer Message-ID: <9ec8aee2-35a4-43f8-9708-55fd72297f46@openjdk.org> Changeset: 5ab24f54 Branch: code-reflection Author: Paul Sandoz Date: 2025-11-21 15:53:29 +0000 URL: https://git.openjdk.org/babylon/commit/5ab24f54fcdea1aee8b7af1eb14ca3913b628b3a Code transformer Reviewed-by: mcimadamore, asotona ! cr-examples/onnx/opgen/src/main/java/oracle/code/onnx/opgen/OpGen.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/compiler/OnnxTransformer.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/compiler/PartialEvaluator.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/ir/ExplicitOnnxOps.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/ir/OnnxOp.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/ir/OnnxOps.java ! cr-examples/spirv/src/main/java/intel/code/spirv/SpirvOp.java ! cr-examples/spirv/src/main/java/intel/code/spirv/SpirvOps.java ! cr-examples/spirv/src/main/java/intel/code/spirv/TranslateToSpirvModel.java ! cr-examples/triton/src/main/java/oracle/code/triton/ArithMathOps.java ! cr-examples/triton/src/main/java/oracle/code/triton/SCFOps.java ! cr-examples/triton/src/main/java/oracle/code/triton/TritonOps.java ! cr-examples/triton/src/main/java/oracle/code/triton/TritonTestOps.java ! cr-examples/triton/src/main/java/oracle/code/triton/TritonTransformer.java ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/CudaBackend.java ! hat/backends/ffi/cuda/src/main/java/hat/backend/ffi/PTXHATKernelBuilder.java ! hat/backends/ffi/spirv/src/main/java/intel/code/spirv/SpirvOp.java ! hat/backends/ffi/spirv/src/main/java/intel/code/spirv/TranslateToSpirvModel.java ! hat/core/src/main/java/hat/dialect/HATBarrierOp.java ! hat/core/src/main/java/hat/dialect/HATBlockThreadIdOp.java ! hat/core/src/main/java/hat/dialect/HATF16AddOp.java ! hat/core/src/main/java/hat/dialect/HATF16BinaryOp.java ! hat/core/src/main/java/hat/dialect/HATF16ConvOp.java ! hat/core/src/main/java/hat/dialect/HATF16DivOp.java ! hat/core/src/main/java/hat/dialect/HATF16MulOp.java ! hat/core/src/main/java/hat/dialect/HATF16Op.java ! hat/core/src/main/java/hat/dialect/HATF16SubOp.java ! hat/core/src/main/java/hat/dialect/HATF16ToFloatConvOp.java ! hat/core/src/main/java/hat/dialect/HATF16VarLoadOp.java ! hat/core/src/main/java/hat/dialect/HATF16VarOp.java ! hat/core/src/main/java/hat/dialect/HATGlobalSizeOp.java ! hat/core/src/main/java/hat/dialect/HATGlobalThreadIdOp.java ! hat/core/src/main/java/hat/dialect/HATLocalSizeOp.java ! hat/core/src/main/java/hat/dialect/HATLocalThreadIdOp.java ! hat/core/src/main/java/hat/dialect/HATLocalVarOp.java ! hat/core/src/main/java/hat/dialect/HATMemoryDefOp.java ! hat/core/src/main/java/hat/dialect/HATMemoryLoadOp.java ! hat/core/src/main/java/hat/dialect/HATMemoryOp.java ! hat/core/src/main/java/hat/dialect/HATOp.java ! hat/core/src/main/java/hat/dialect/HATPrivateVarInitOp.java ! hat/core/src/main/java/hat/dialect/HATPrivateVarOp.java ! hat/core/src/main/java/hat/dialect/HATThreadOp.java ! hat/core/src/main/java/hat/dialect/HATVectorAddOp.java ! hat/core/src/main/java/hat/dialect/HATVectorBinaryOp.java ! hat/core/src/main/java/hat/dialect/HATVectorDivOp.java ! hat/core/src/main/java/hat/dialect/HATVectorLoadOp.java ! hat/core/src/main/java/hat/dialect/HATVectorMakeOfOp.java ! hat/core/src/main/java/hat/dialect/HATVectorMulOp.java ! hat/core/src/main/java/hat/dialect/HATVectorOfOp.java ! hat/core/src/main/java/hat/dialect/HATVectorOp.java ! hat/core/src/main/java/hat/dialect/HATVectorSelectLoadOp.java ! hat/core/src/main/java/hat/dialect/HATVectorSelectStoreOp.java ! hat/core/src/main/java/hat/dialect/HATVectorStoreView.java ! hat/core/src/main/java/hat/dialect/HATVectorSubOp.java ! hat/core/src/main/java/hat/dialect/HATVectorVarLoadOp.java ! hat/core/src/main/java/hat/dialect/HATVectorVarOp.java ! hat/core/src/main/java/hat/optools/OpTk.java ! hat/core/src/main/java/hat/phases/HATDialectifyBarrierPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyThreadsPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorOpPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorSelectPhase.java ! hat/core/src/main/java/hat/phases/HATDialectifyVectorStorePhase.java ! hat/examples/experiments/src/main/java/experiments/DNA.java ! hat/examples/experiments/src/main/java/experiments/LayoutExample.java ! hat/examples/experiments/src/main/java/experiments/RawLayout.java ! hat/examples/experiments/src/main/java/experiments/Transform.java ! hat/examples/experiments/src/main/java/experiments/TransformState.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Block.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Body.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeContext.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeContextImpl.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java - src/jdk.incubator.code/share/classes/jdk/incubator/code/OpTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/Inliner.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/NormalizeBlocksTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/SSABraun.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/SSACytron.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/StringConcatTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/extern/ExternalizedOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java ! test/jdk/java/lang/reflect/code/CoreBinaryOpsTest.java ! test/jdk/java/lang/reflect/code/TestBlockIndexes.java ! test/jdk/java/lang/reflect/code/TestBlockOp.java ! test/jdk/java/lang/reflect/code/TestBreakContinue.java ! test/jdk/java/lang/reflect/code/TestConditionalExpression.java ! test/jdk/java/lang/reflect/code/TestConditionalOp.java ! test/jdk/java/lang/reflect/code/TestConstants.java ! test/jdk/java/lang/reflect/code/TestCopy.java ! test/jdk/java/lang/reflect/code/TestEnhancedForOp.java ! test/jdk/java/lang/reflect/code/TestExpressionGraphs.java ! test/jdk/java/lang/reflect/code/TestForOp.java ! test/jdk/java/lang/reflect/code/TestIfOp.java ! test/jdk/java/lang/reflect/code/TestInline.java ! test/jdk/java/lang/reflect/code/TestInvokeSuper.java ! test/jdk/java/lang/reflect/code/TestLocalTransformationsAdaption.java ! test/jdk/java/lang/reflect/code/TestPatterns.java ! test/jdk/java/lang/reflect/code/TestPatterns2.java ! test/jdk/java/lang/reflect/code/TestPrimitiveTypePatterns.java ! test/jdk/java/lang/reflect/code/TestRemoveFinalVars.java ! test/jdk/java/lang/reflect/code/TestSSA.java ! test/jdk/java/lang/reflect/code/TestStringConcatTransform.java ! test/jdk/java/lang/reflect/code/TestSwitchExpressionOp.java ! test/jdk/java/lang/reflect/code/TestSwitchStatementOp.java ! test/jdk/java/lang/reflect/code/TestTransitiveInvokeModule.java ! test/jdk/java/lang/reflect/code/TestTraverse.java ! test/jdk/java/lang/reflect/code/TestTry.java ! test/jdk/java/lang/reflect/code/TestTryFinally.java ! test/jdk/java/lang/reflect/code/TestTryNested.java ! test/jdk/java/lang/reflect/code/TestUninitializedVariable.java ! test/jdk/java/lang/reflect/code/TestVarArgsInvoke.java ! test/jdk/java/lang/reflect/code/TestVarOp.java ! test/jdk/java/lang/reflect/code/TestWhileOp.java ! test/jdk/java/lang/reflect/code/ad/ExpressionElimination.java ! test/jdk/java/lang/reflect/code/ad/ForwardDifferentiation.java ! test/jdk/java/lang/reflect/code/ad/TestForwardAutoDiff.java ! test/jdk/java/lang/reflect/code/anf/AnfDialect.java ! test/jdk/java/lang/reflect/code/anf/AnfTransformer.java ! test/jdk/java/lang/reflect/code/anf/TestAnfBasicFuns.java ! test/jdk/java/lang/reflect/code/anf/TestAnfTransform.java ! test/jdk/java/lang/reflect/code/bytecode/TestArrayCreation.java ! test/jdk/java/lang/reflect/code/bytecode/TestBytecode.java ! test/jdk/java/lang/reflect/code/bytecode/TestInvokeSuper.java ! test/jdk/java/lang/reflect/code/bytecode/TestNestedCapturingLambda.java ! test/jdk/java/lang/reflect/code/bytecode/TestSlots.java ! test/jdk/java/lang/reflect/code/bytecode/TestSynchronizedOp.java ! test/jdk/java/lang/reflect/code/bytecode/TestTry.java ! test/jdk/java/lang/reflect/code/bytecode/TestTryFinally.java ! test/jdk/java/lang/reflect/code/bytecode/TestTryFinallyNested.java ! test/jdk/java/lang/reflect/code/bytecode/TestVarArg.java ! test/jdk/java/lang/reflect/code/bytecode/lift/SlotOp.java ! test/jdk/java/lang/reflect/code/bytecode/lift/SlotToVarTransformer.java ! test/jdk/java/lang/reflect/code/bytecode/lift/UnresolvedTypesTransformer.java ! test/jdk/java/lang/reflect/code/expression/ExpressionElimination.java ! test/jdk/java/lang/reflect/code/expression/TestExpressionElimination.java ! test/jdk/java/lang/reflect/code/interpreter/TestAssert.java ! test/jdk/java/lang/reflect/code/location/TestLocation.java ! test/jdk/java/lang/reflect/code/lower/CodeReflectionTester.java ! test/jdk/java/lang/reflect/code/pe/CodeReflectionTester.java ! test/jdk/java/lang/reflect/code/pe/PartialEvaluator.java ! test/jdk/java/lang/reflect/code/stream/TestStream.java + test/jdk/java/lang/reflect/code/transform/TestTransform.java ! test/jdk/java/lang/reflect/code/writer/TestAttributeSerialization.java ! test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java ! test/jdk/java/lang/reflect/code/writer/TestNaming.java ! test/langtools/tools/javac/reflect/CodeReflectionTester.java From psandoz at openjdk.org Fri Nov 21 15:57:39 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 15:57:39 GMT Subject: [code-reflection] Integrated: Code transformer In-Reply-To: References: Message-ID: On Thu, 20 Nov 2025 23:50:52 GMT, Paul Sandoz wrote: > Rename `OpTransformer` to `CodeTransformer`, and `CopyContext` to `CodeContext`. > > Add a simplified operation transformer which is composed into a code transformer, for cases where operations are mostly replaced with one or more other operations (replacing with zero other operations is also possible). In such cases it is not necessary to deal with the code context and value mappings, nor return the block builder, as is required with a code transformer. This pull request has now been integrated. Changeset: 5ab24f54 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/5ab24f54fcdea1aee8b7af1eb14ca3913b628b3a Stats: 2021 lines in 148 files changed: 463 ins; 220 del; 1338 mod Code transformer Reviewed-by: mcimadamore, asotona ------------- PR: https://git.openjdk.org/babylon/pull/690 From asotona at openjdk.org Fri Nov 21 16:36:51 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 16:36:51 GMT Subject: git: openjdk/babylon: code-reflection: Code reflection synthetic class generation moved to JavaCompiler::genCode Message-ID: <46e8661f-8a88-46f5-bd78-fe67b249a9f4@openjdk.org> Changeset: 03cd0a18 Branch: code-reflection Author: Adam Sotona Date: 2025-11-21 16:35:58 +0000 URL: https://git.openjdk.org/babylon/commit/03cd0a18a0dec6cca7cfe88bed95e4ac990ab9de Code reflection synthetic class generation moved to JavaCompiler::genCode Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/CodeReflectionTransformer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/TreeScannerPrev.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/TreeTranslatorPrev.java From asotona at openjdk.org Fri Nov 21 16:39:54 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 16:39:54 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode [v3] In-Reply-To: References: Message-ID: > Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. > > - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` > - new `genCode` method is added to `CodeReflectionTransformer` interface > - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method > - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class Adam Sotona has updated the pull request incrementally with one additional commit since the last revision: removed obsolete method ------------- Changes: - all: https://git.openjdk.org/babylon/pull/689/files - new: https://git.openjdk.org/babylon/pull/689/files/7ece448f..47dd7ee7 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=689&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=689&range=01-02 Stats: 6 lines in 1 file changed: 0 ins; 6 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/689.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/689/head:pull/689 PR: https://git.openjdk.org/babylon/pull/689 From asotona at openjdk.org Fri Nov 21 16:39:56 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 16:39:56 GMT Subject: [code-reflection] RFR: Code reflection synthetic class generation moved to JavaCompiler::genCode [v2] In-Reply-To: References: Message-ID: <6zPhOSTF-3WoqYZc37cyLg-7HUsyxG56ZcNWJCQR73o=.f257536a-eeb6-45b2-a2b6-1a7ebe9157f5@github.com> On Fri, 21 Nov 2025 04:49:58 GMT, Adam Sotona wrote: >> Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. >> >> - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` >> - new `genCode` method is added to `CodeReflectionTransformer` interface >> - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method >> - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class > > Adam Sotona has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: > > - TreeTranslatorPrev implementation and ReflectMethods fix > > - Merge branch 'code-reflection' into javac-gen-cm > - removing JCClassDecl.crContext field > > - code reflection synthetic class generation moved to JavaCompiler::genCode Thank you for the reviews. ------------- PR Comment: https://git.openjdk.org/babylon/pull/689#issuecomment-3563798609 From asotona at openjdk.org Fri Nov 21 16:39:57 2025 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 21 Nov 2025 16:39:57 GMT Subject: [code-reflection] Integrated: Code reflection synthetic class generation moved to JavaCompiler::genCode In-Reply-To: References: Message-ID: On Thu, 20 Nov 2025 20:23:50 GMT, Adam Sotona wrote: > Prototype of code reflection synthetic class generation move to `JavaCompiler::genCode`. > > - collected ops are attached to the `ReflectMethods.JCReflectMethodsClassDecl`, an internal extension of `JCTree.JCClassDecl` > - new `genCode` method is added to `CodeReflectionTransformer` interface > - `JavaCompiler` calls `CodeReflectionTransformer::genCode` inside its `genCode` method > - implementation in `ReflectMethods.Provider` calls `OpBuilder` and `BytecodeGenerator` and generates the synthetic inner class This pull request has now been integrated. Changeset: 03cd0a18 Author: Adam Sotona URL: https://git.openjdk.org/babylon/commit/03cd0a18a0dec6cca7cfe88bed95e4ac990ab9de Stats: 134 lines in 5 files changed: 91 ins; 39 del; 4 mod Code reflection synthetic class generation moved to JavaCompiler::genCode Reviewed-by: mcimadamore ------------- PR: https://git.openjdk.org/babylon/pull/689 From gfrost at openjdk.org Fri Nov 21 17:35:08 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 17:35:08 GMT Subject: [code-reflection] Integrated: jextract 25 import fix Message-ID: jextract seems to now make symbols from `foo_h_1` private. Probably to force import through `foo_h` This was breaking opengl extract. ------------- Commit messages: - jextract 25 import fix Changes: https://git.openjdk.org/babylon/pull/695/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=695&range=00 Stats: 10 lines in 2 files changed: 0 ins; 0 del; 10 mod Patch: https://git.openjdk.org/babylon/pull/695.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/695/head:pull/695 PR: https://git.openjdk.org/babylon/pull/695 From gfrost at openjdk.org Fri Nov 21 17:35:09 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 17:35:09 GMT Subject: [code-reflection] Integrated: jextract 25 import fix In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 17:28:57 GMT, Gary Frost wrote: > jextract seems to now make symbols from `foo_h_1` private. Probably to force import through `foo_h` > > This was breaking opengl extract. This pull request has now been integrated. Changeset: dc79f4af Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/dc79f4af09010ae57c673ed6134e6ec712986f17 Stats: 10 lines in 2 files changed: 0 ins; 0 del; 10 mod jextract 25 import fix ------------- PR: https://git.openjdk.org/babylon/pull/695 From gfrost at openjdk.org Fri Nov 21 17:36:30 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 17:36:30 GMT Subject: git: openjdk/babylon: code-reflection: jextract 25 import fix Message-ID: Changeset: dc79f4af Branch: code-reflection Author: Gary Frost Date: 2025-11-21 17:31:34 +0000 URL: https://git.openjdk.org/babylon/commit/dc79f4af09010ae57c673ed6134e6ec712986f17 jextract 25 import fix ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java ! hat/hat/job.jar From psandoz at openjdk.org Fri Nov 21 17:40:09 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 17:40:09 GMT Subject: [code-reflection] RFR: Rename @CodeReflection to @Reflect In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 13:42:35 GMT, Maurizio Cimadamore wrote: > This PR changes `@CodeReflection` into `@Reflect`. > > There are lots of changes, but all of them are shallow. Marked as reviewed by psandoz (Lead). ------------- PR Review: https://git.openjdk.org/babylon/pull/693#pullrequestreview-3493756435 From gfrost at openjdk.org Fri Nov 21 17:59:31 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 17:59:31 GMT Subject: [code-reflection] RFR: Hat view face culling Message-ID: Small example-view changes. ------------- Commit messages: - Remove ZPos and use zordered - Remove ZPos and use zordered - add zplane to 3x2 triangle - add zplane to 3x2 triangle Changes: https://git.openjdk.org/babylon/pull/696/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=696&range=00 Stats: 604 lines in 29 files changed: 228 ins; 176 del; 200 mod Patch: https://git.openjdk.org/babylon/pull/696.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/696/head:pull/696 PR: https://git.openjdk.org/babylon/pull/696 From gfrost at openjdk.org Fri Nov 21 18:00:56 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 18:00:56 GMT Subject: git: openjdk/babylon: code-reflection: Hat view face culling Message-ID: <49721de1-a26a-46a8-9fb9-a8ad29892d6b@openjdk.org> Changeset: 278b654e Branch: code-reflection Author: Gary Frost Date: 2025-11-21 17:56:29 +0000 URL: https://git.openjdk.org/babylon/commit/278b654ef2030bb37a92a019966798e838364618 Hat view face culling ! hat/examples/view/pom.xml ! hat/examples/view/src/main/java/view/EliteMeshParser.java ! hat/examples/view/src/main/java/view/Main.java ! hat/examples/view/src/main/java/view/RasterizingRenderer.java ! hat/examples/view/src/main/java/view/Renderer.java ! hat/examples/view/src/main/java/view/ViewFrame.java + hat/examples/view/src/main/java/view/arity/Arity16.java = hat/examples/view/src/main/java/view/arity/Arity2.java = hat/examples/view/src/main/java/view/arity/Arity3.java = hat/examples/view/src/main/java/view/arity/Arity4.java = hat/examples/view/src/main/java/view/arity/Arity5.java = hat/examples/view/src/main/java/view/arity/Arity6.java ! hat/examples/view/src/main/java/view/f32/F32.java ! hat/examples/view/src/main/java/view/f32/F32Mesh3D.java ! hat/examples/view/src/main/java/view/f32/F32x2.java ! hat/examples/view/src/main/java/view/f32/F32x2Triangle.java ! hat/examples/view/src/main/java/view/f32/F32x3.java ! hat/examples/view/src/main/java/view/f32/F32x3Triangle.java ! hat/examples/view/src/main/java/view/f32/F32x4x4.java ! hat/examples/view/src/main/java/view/f32/ModelHighWaterMark.java - hat/examples/view/src/main/java/view/f32/ZPos.java - hat/examples/view/src/main/java/view/f32/factories/Factory16.java ! hat/examples/view/src/main/java/view/f32/pool/F32Pool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x2Pool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x2TrianglePool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x3Pool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x3TrianglePool.java ! hat/examples/view/src/main/java/view/f32/pool/F32x4x4Pool.java ! hat/examples/view/src/main/java/view/f32/pool/Pool.java From gfrost at openjdk.org Fri Nov 21 18:02:33 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 21 Nov 2025 18:02:33 GMT Subject: [code-reflection] Integrated: Hat view face culling In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 17:52:52 GMT, Gary Frost wrote: > Small example-view changes. This pull request has now been integrated. Changeset: 278b654e Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/278b654ef2030bb37a92a019966798e838364618 Stats: 604 lines in 29 files changed: 228 ins; 176 del; 200 mod Hat view face culling ------------- PR: https://git.openjdk.org/babylon/pull/696 From mcimadamore at openjdk.org Fri Nov 21 18:41:07 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 18:41:07 GMT Subject: [code-reflection] RFR: Rename @CodeReflection to @Reflect [v2] In-Reply-To: References: Message-ID: <4Tnc8SxwmPg7Ifp43Zxeqvb3BdlAKZ9Kaj4U45pTzDo=.1d2c7089-41bc-43ae-baff-01451df44e17@github.com> > This PR changes `@CodeReflection` into `@Reflect`. > > There are lots of changes, but all of them are shallow. Maurizio Cimadamore has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains two commits: - Merge branch 'code-reflection' into anno_rename - Rename @CodeReflection to @Reflect ------------- Changes: https://git.openjdk.org/babylon/pull/693/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=693&range=01 Stats: 1572 lines in 224 files changed: 15 ins; 12 del; 1545 mod Patch: https://git.openjdk.org/babylon/pull/693.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/693/head:pull/693 PR: https://git.openjdk.org/babylon/pull/693 From mcimadamore at openjdk.org Fri Nov 21 18:44:52 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 18:44:52 GMT Subject: git: openjdk/babylon: code-reflection: Rename @CodeReflection to @Reflect Message-ID: <7e2602c9-4ca8-4329-907b-54440955e96d@openjdk.org> Changeset: d30e7e19 Branch: code-reflection Author: Maurizio Cimadamore Date: 2025-11-21 18:43:33 +0000 URL: https://git.openjdk.org/babylon/commit/d30e7e19a3c1dc2b60048ff52600b69a81eb9173 Rename @CodeReflection to @Reflect Reviewed-by: psandoz ! cr-examples/onnx/src/main/java/oracle/code/onnx/ExplicitOnnxOperators.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/OnnxRuntime.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/genai/OnnxGenRuntimeSession.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/lift/JavaTemplate.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/CNNTest.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/SimpleTest.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/WalkTheMazeTest.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/fer/FERModel.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/llm/LlamaModel.java ! cr-examples/onnx/src/test/java/oracle/code/onnx/mnist/MNISTModel.java ! cr-examples/samples/src/main/java/oracle/code/samples/CodeReflectionProcessor.java ! cr-examples/samples/src/main/java/oracle/code/samples/DialectFMAOp.java ! cr-examples/samples/src/main/java/oracle/code/samples/DialectWithInvoke.java ! cr-examples/samples/src/main/java/oracle/code/samples/HelloCodeReflection.java ! cr-examples/samples/src/main/java/oracle/code/samples/InlineExample.java ! cr-examples/samples/src/main/java/oracle/code/samples/MathOptimizer.java ! cr-examples/samples/src/main/java/oracle/code/samples/MathOptimizerWithInlining.java ! cr-examples/spirv/src/test/java/intel/code/spirv/ExampleUseTest.java ! cr-examples/triton/src/main/java/oracle/code/triton/Functions.java ! cr-examples/triton/src/main/java/oracle/code/triton/Triton.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestAddKernel.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestBroadcast.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestCdiv.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestCountedLoop.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestMatrix.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestMatrixFp16.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestSoftMax.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestVariables.java ! cr-examples/triton/src/test/java/oracle/code/triton/TestZeros.java ! cr-examples/triton/src/test/java/oracle/code/triton/TritonTestExtension.java ! hat/backends/ffi/mock/src/main/java/hat/backend/ffi/TestIt.java ! hat/backends/ffi/spirv/src/main/java/hat/backend/TestIt.java ! hat/core/src/main/java/hat/Accelerator.java ! hat/core/src/main/java/hat/ComputeContext.java ! hat/core/src/main/java/hat/KernelContext.java ! hat/core/src/main/java/hat/buffer/Float2.java ! hat/core/src/main/java/hat/buffer/Float4.java ! hat/core/src/main/java/hat/buffer/S32Array2D.java ! hat/core/src/main/java/hat/callgraph/ComputeCallGraph.java ! hat/core/src/main/java/hat/types/_V2.java ! hat/core/src/main/java/hat/types/_V4.java ! hat/core/src/main/test/hat/CustomOpTest.java ! hat/core/src/main/test/hat/SquaresTest.java ! hat/docs/hat-03-programming-model.md ! hat/docs/hat-04-01-interface-mapping.md ! hat/docs/hat-05-accelerator-compute.md ! hat/docs/hat-06-kernel-analysis.md ! hat/docs/hat-array-and-vector-views.md ! hat/docs/hat-minimizing-buffer-transfers.md ! hat/examples/blackscholes/src/main/java/blackscholes/Main.java ! hat/examples/experiments/src/main/java/experiments/DNA.java ! hat/examples/experiments/src/main/java/experiments/ForTests.java ! hat/examples/experiments/src/main/java/experiments/LayoutExample.java ! hat/examples/experiments/src/main/java/experiments/LocalArray.java ! hat/examples/experiments/src/main/java/experiments/LocalIds.java ! hat/examples/experiments/src/main/java/experiments/Mesh.java ! hat/examples/experiments/src/main/java/experiments/MinBufferTest.java ! hat/examples/experiments/src/main/java/experiments/PrefixSum.java ! hat/examples/experiments/src/main/java/experiments/QuotedArrayArg.java ! hat/examples/experiments/src/main/java/experiments/QuotedConstantArgs.java ! hat/examples/experiments/src/main/java/experiments/RawLayout.java ! hat/examples/experiments/src/main/java/experiments/Reduction.java ! hat/examples/experiments/src/main/java/experiments/TestQuoted.java ! hat/examples/experiments/src/main/java/experiments/Transform.java ! hat/examples/experiments/src/main/java/experiments/TransformState.java ! hat/examples/experiments/src/main/java/experiments/spirv/Bad.java ! hat/examples/experiments/src/main/java/experiments/spirv/GetBackend.java ! hat/examples/experiments/src/main/java/experiments/spirv/MatrixMultiply.java ! hat/examples/heal/src/main/java/heal/Compute.java ! hat/examples/life/src/main/java/life/Main.java ! hat/examples/mandel/src/main/java/mandel/Main.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java ! hat/examples/squares/src/main/java/squares/Main.java ! hat/examples/violajones/src/main/java/violajones/ViolaJonesCoreCompute.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorArrayView.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java ! hat/tools/src/main/java/hat/tools/text/TestJavaHATCodeBuilder.java ! hat/tools/src/main/java/hat/tools/textmodel/ui/TestFuncOpViewer.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/Reflect.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/CodeReflectionSymbols.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/jdk/java/lang/reflect/code/CoreBinaryOpsTest.java ! test/jdk/java/lang/reflect/code/TestAncestors.java ! test/jdk/java/lang/reflect/code/TestArrayCreation.java ! test/jdk/java/lang/reflect/code/TestArrayTypes.java ! test/jdk/java/lang/reflect/code/TestBinops.java ! test/jdk/java/lang/reflect/code/TestBlockIndexes.java ! test/jdk/java/lang/reflect/code/TestBlockOp.java ! test/jdk/java/lang/reflect/code/TestBreakContinue.java ! test/jdk/java/lang/reflect/code/TestBuild.java ! test/jdk/java/lang/reflect/code/TestConcat.java ! test/jdk/java/lang/reflect/code/TestConditionalExpression.java ! test/jdk/java/lang/reflect/code/TestConditionalOp.java ! test/jdk/java/lang/reflect/code/TestConstants.java ! test/jdk/java/lang/reflect/code/TestCopy.java ! test/jdk/java/lang/reflect/code/TestEnhancedForOp.java ! test/jdk/java/lang/reflect/code/TestExpressionGraphs.java ! test/jdk/java/lang/reflect/code/TestForOp.java ! test/jdk/java/lang/reflect/code/TestIfOp.java ! test/jdk/java/lang/reflect/code/TestInline.java ! test/jdk/java/lang/reflect/code/TestInvokeOp.java ! test/jdk/java/lang/reflect/code/TestInvokeSuper.java ! test/jdk/java/lang/reflect/code/TestLambdaOps.java ! test/jdk/java/lang/reflect/code/TestLocalTransformationsAdaption.java ! test/jdk/java/lang/reflect/code/TestMethodRefLambda.java ! test/jdk/java/lang/reflect/code/TestOverloads.java ! test/jdk/java/lang/reflect/code/TestPatterns.java ! test/jdk/java/lang/reflect/code/TestPatterns2.java ! test/jdk/java/lang/reflect/code/TestPrimitiveCast.java ! test/jdk/java/lang/reflect/code/TestPrimitiveTypePatterns.java ! test/jdk/java/lang/reflect/code/TestQuoteOp.java ! test/jdk/java/lang/reflect/code/TestRemoveFinalVars.java ! test/jdk/java/lang/reflect/code/TestSSA.java ! test/jdk/java/lang/reflect/code/TestSealOp.java ! test/jdk/java/lang/reflect/code/TestStringConcatTransform.java ! test/jdk/java/lang/reflect/code/TestSwitchExpressionOp.java ! test/jdk/java/lang/reflect/code/TestSwitchStatementOp.java ! test/jdk/java/lang/reflect/code/TestTransitiveInvokeModule.java ! test/jdk/java/lang/reflect/code/TestTraverse.java ! test/jdk/java/lang/reflect/code/TestTry.java ! test/jdk/java/lang/reflect/code/TestTryFinally.java ! test/jdk/java/lang/reflect/code/TestTryNested.java ! test/jdk/java/lang/reflect/code/TestUninitializedVariable.java ! test/jdk/java/lang/reflect/code/TestVarArgsInvoke.java ! test/jdk/java/lang/reflect/code/TestVarOp.java ! test/jdk/java/lang/reflect/code/TestWhileOp.java ! test/jdk/java/lang/reflect/code/ad/TestForwardAutoDiff.java ! test/jdk/java/lang/reflect/code/anf/TestAnfBasicFuns.java ! test/jdk/java/lang/reflect/code/anf/TestAnfTransform.java ! test/jdk/java/lang/reflect/code/bytecode/TestArrayCreation.java ! test/jdk/java/lang/reflect/code/bytecode/TestBytecode.java ! test/jdk/java/lang/reflect/code/bytecode/TestInvokeSuper.java ! test/jdk/java/lang/reflect/code/bytecode/TestNestedCapturingLambda.java ! test/jdk/java/lang/reflect/code/bytecode/TestSlots.java ! test/jdk/java/lang/reflect/code/bytecode/TestSynchronizedOp.java ! test/jdk/java/lang/reflect/code/bytecode/TestTry.java ! test/jdk/java/lang/reflect/code/bytecode/TestTryFinally.java ! test/jdk/java/lang/reflect/code/bytecode/TestTryFinallyNested.java ! test/jdk/java/lang/reflect/code/bytecode/TestVarArg.java ! test/jdk/java/lang/reflect/code/bytecode/lift/TestBytecodeLift.java ! test/jdk/java/lang/reflect/code/expression/TestExpressionElimination.java ! test/jdk/java/lang/reflect/code/interpreter/TestArgsTypesValidationWhenInterpreting.java ! test/jdk/java/lang/reflect/code/interpreter/TestAssert.java ! test/jdk/java/lang/reflect/code/interpreter/TestThrowing.java ! test/jdk/java/lang/reflect/code/linq/QuotableFunction.java ! test/jdk/java/lang/reflect/code/linq/QuotablePredicate.java ! test/jdk/java/lang/reflect/code/location/ClassWithReflectedMethod.java ! test/jdk/java/lang/reflect/code/location/TestLocation.java ! test/jdk/java/lang/reflect/code/lower/CodeReflectionTester.java ! test/jdk/java/lang/reflect/code/lower/TestLoop.java ! test/jdk/java/lang/reflect/code/lower/TestSynchronized.java ! test/jdk/java/lang/reflect/code/pe/CodeReflectionTester.java ! test/jdk/java/lang/reflect/code/pe/TestPE.java ! test/jdk/java/lang/reflect/code/stream/StreamFuser.java ! test/jdk/java/lang/reflect/code/transform/TestTransform.java ! test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java ! test/jdk/java/lang/reflect/code/writer/TestNaming.java ! test/jdk/java/lang/reflect/code/writer/TestOptions.java ! test/langtools/tools/javac/reflect/ArrayAccessTest.java ! test/langtools/tools/javac/reflect/AssertTest.java ! test/langtools/tools/javac/reflect/BinopTest.java ! test/langtools/tools/javac/reflect/BlockTest.java ! test/langtools/tools/javac/reflect/BoxingConversionTest.java ! test/langtools/tools/javac/reflect/BreakContinueTest.java ! test/langtools/tools/javac/reflect/CastInstanceOfTest.java ! test/langtools/tools/javac/reflect/CodeModelSameInstanceTest.java ! test/langtools/tools/javac/reflect/CodeReflectionTester.java ! test/langtools/tools/javac/reflect/ConditionalAndOrTest.java ! test/langtools/tools/javac/reflect/ConditionalExpressionTest.java ! test/langtools/tools/javac/reflect/ConstantsTest.java ! test/langtools/tools/javac/reflect/DenotableTypesTest.java ! test/langtools/tools/javac/reflect/EnumAccessTest.java ! test/langtools/tools/javac/reflect/FieldAccessTest.java ! test/langtools/tools/javac/reflect/ForLoopTest.java ! test/langtools/tools/javac/reflect/IfTest.java ! test/langtools/tools/javac/reflect/ImplicitConversionTest.java ! test/langtools/tools/javac/reflect/IntersectionTypeTest.java ! test/langtools/tools/javac/reflect/LambdaModelUniquenessTest.java ! test/langtools/tools/javac/reflect/LambdaTest.java ! test/langtools/tools/javac/reflect/LocalClassTest.java ! test/langtools/tools/javac/reflect/LocalVarTest.java ! test/langtools/tools/javac/reflect/MethodCallTest.java ! test/langtools/tools/javac/reflect/MethodModelUniquenessTest.java ! test/langtools/tools/javac/reflect/MethodReferenceTest.java ! test/langtools/tools/javac/reflect/NewArrayTest.java ! test/langtools/tools/javac/reflect/NewTest.java ! test/langtools/tools/javac/reflect/NullTest.java ! test/langtools/tools/javac/reflect/PatternTest2.java ! test/langtools/tools/javac/reflect/PatternsTest.java ! test/langtools/tools/javac/reflect/PrimitiveCastTest.java ! test/langtools/tools/javac/reflect/QuotableIntersectionTest.java ! test/langtools/tools/javac/reflect/QuotableSubtypeTest.java ! test/langtools/tools/javac/reflect/QuotedSameInstanceTest.java ! test/langtools/tools/javac/reflect/RecordAccessTest.java ! test/langtools/tools/javac/reflect/StringConcatTest.java ! test/langtools/tools/javac/reflect/SuperTest.java ! test/langtools/tools/javac/reflect/SwitchExpressionTest.java ! test/langtools/tools/javac/reflect/SwitchExpressionTest2.java ! test/langtools/tools/javac/reflect/SwitchStatementTest.java ! test/langtools/tools/javac/reflect/SynchronizedTest.java ! test/langtools/tools/javac/reflect/TestCaptureQuotable.java ! test/langtools/tools/javac/reflect/TestCodeModelProcessors.java ! test/langtools/tools/javac/reflect/TestLocalCapture.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.java ! test/langtools/tools/javac/reflect/TestNoCodeReflectionInInnerClasses.out ! test/langtools/tools/javac/reflect/ThrowTest.java ! test/langtools/tools/javac/reflect/TryTest.java ! test/langtools/tools/javac/reflect/UnaryopTest.java ! test/langtools/tools/javac/reflect/UnreachableTest.java ! test/langtools/tools/javac/reflect/WhileLoopTest.java From mcimadamore at openjdk.org Fri Nov 21 18:46:02 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 21 Nov 2025 18:46:02 GMT Subject: [code-reflection] Integrated: Rename @CodeReflection to @Reflect In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 13:42:35 GMT, Maurizio Cimadamore wrote: > This PR changes `@CodeReflection` into `@Reflect`. > > There are lots of changes, but all of them are shallow. This pull request has now been integrated. Changeset: d30e7e19 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/d30e7e19a3c1dc2b60048ff52600b69a81eb9173 Stats: 1572 lines in 224 files changed: 15 ins; 12 del; 1545 mod Rename @CodeReflection to @Reflect Reviewed-by: psandoz ------------- PR: https://git.openjdk.org/babylon/pull/693 From psandoz at openjdk.org Fri Nov 21 20:44:28 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 20:44:28 GMT Subject: [code-reflection] RFR: ModuleOp generation from LambdaOp and FuncOp In-Reply-To: References: Message-ID: <_TR6Ge2YK53_yQaNFh5m9nTAK8w-yLSI26PhMkT8sNE=.95c61285-d5ee-4d5a-93fe-384181e537c8@github.com> On Fri, 21 Nov 2025 00:20:24 GMT, Ruby Chen wrote: > Add support for generating a ModuleOp from either a LambdaOp or a FuncOp. The given LambdaOp will be converted into the root FuncOp, and the given FuncOp will be assigned as the root FuncOp. > > For `CoreOp.ModuleOp.ofLambdaOp()`, a unique name for the new root FuncOp must be passed as a parameter. src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java line 383: > 381: cur.elements().filter(e -> e instanceof JavaOp.InvokeOp).forEach(e -> { > 382: if (invokeToFuncOp((JavaOp.InvokeOp) e, l) != null) { > 383: temp.addFirst(invokeToFuncOp((JavaOp.InvokeOp) e, l)); Suggestion: if (invokeToFuncOp((JavaOp.InvokeOp) e, l) instanceof CoreOp.FuncOp resolvedFuncOp) { temp.addFirst(resolvedFuncOp); ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/691#discussion_r2550910569 From psandoz at openjdk.org Fri Nov 21 21:16:37 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 21:16:37 GMT Subject: [code-reflection] RFR: Merge master Message-ID: Merge master Take GenerateJLIClassesHelper.java from master (which somehow got messed up during a prior merge) ------------- Commit messages: - Sync up GenerateJLIClassesHelper.java - Merge remote-tracking branch 'upstream/master' into merge-master - 8349535: Refactor ./pkcs11/Provider/MultipleLogins.sh to java test - 8282441: [LOOM] The debug agent should attempt to free vthread ThreadNodes - 8369129: Raster createPackedRaster methods specification clean up - 8372360: Exclude jdk.jsobject from micros-javac input source packages - 8372294: Fix Malformed problem list entry in ProblemList-jvmti-stress-agent.txt - 8372319: com/sun/crypto/provider/Cipher/HPKE/KAT9180 test has external dependencies - 8367049: URLPermission. throws StringIndexOutOfBoundsException in avm mode - 8367585: Prevent creation of unrepresentable Utf8Entry - ... and 356 more: https://git.openjdk.org/babylon/compare/d30e7e19...dc47115c The webrevs contain the adjustments done while merging with regards to each parent branch: - code-reflection: https://webrevs.openjdk.org/?repo=babylon&pr=697&range=00.0 - master: https://webrevs.openjdk.org/?repo=babylon&pr=697&range=00.1 Changes: https://git.openjdk.org/babylon/pull/697/files Stats: 260075 lines in 2300 files changed: 175219 ins; 47134 del; 37722 mod Patch: https://git.openjdk.org/babylon/pull/697.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/697/head:pull/697 PR: https://git.openjdk.org/babylon/pull/697 From psandoz at openjdk.org Fri Nov 21 21:21:42 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 21:21:42 GMT Subject: git: openjdk/babylon: code-reflection: 365 new changesets Message-ID: <5c8b185c-38a7-4e4a-94d4-90a2da5e7298@openjdk.org> Changeset: a2196e20 Branch: code-reflection Author: Chen Liang Date: 2025-10-30 16:51:36 +0000 URL: https://git.openjdk.org/babylon/commit/a2196e20608a1acd12c84ecfb8522bf1666545f4 4397513: Misleading "interface method" in InvocationHandler specification Reviewed-by: alanb, jpai ! src/java.base/share/classes/java/lang/reflect/InvocationHandler.java Changeset: d18e815b Branch: code-reflection Author: Koushik Thirupattur Committer: Sean Mullan Date: 2025-10-30 17:24:11 +0000 URL: https://git.openjdk.org/babylon/commit/d18e815b94854406113344547f36358b5b5f6bb7 8368301: sun/security/util/math/intpoly compiler warnings Reviewed-by: mullan ! make/jdk/src/classes/build/tools/intpoly/FieldGen.java Changeset: 4b315111 Branch: code-reflection Author: Phil Race Date: 2025-10-30 18:03:21 +0000 URL: https://git.openjdk.org/babylon/commit/4b315111493ac65511890bc2127489ceee693915 8370160: NumericShaper allows illegal ranges Reviewed-by: serb, psadhukhan, kizune ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! test/jdk/java/awt/font/NumericShaper/NSEqualsTest.java Changeset: 414e7286 Branch: code-reflection Author: Phil Race Date: 2025-10-30 19:09:06 +0000 URL: https://git.openjdk.org/babylon/commit/414e72869895562adcea5c21ff3e7252cef5b13f 8370141: [macOS] Crash after PrinterJob ends when Graphics.create() is used. Reviewed-by: serb, psadhukhan ! src/java.desktop/macosx/classes/sun/java2d/OSXOffScreenSurfaceData.java ! src/java.desktop/macosx/classes/sun/java2d/OSXSurfaceData.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java + test/jdk/java/awt/PrintJob/PrintJobAfterEndTest.java + test/jdk/java/awt/print/PrinterJob/PrintAfterEndTest.java Changeset: c49a94bf Branch: code-reflection Author: Aleksey Shipilev Date: 2025-10-30 19:09:34 +0000 URL: https://git.openjdk.org/babylon/commit/c49a94bf89876c4d6c777a9452618afa564c5c23 8370572: Cgroups hierarchical memory limit is not honored after JDK-8322420 Reviewed-by: simonis, sgehwolf ! src/hotspot/os/linux/cgroupSubsystem_linux.hpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp Changeset: 566aa126 Branch: code-reflection Author: Chen Liang Date: 2025-10-30 20:38:30 +0000 URL: https://git.openjdk.org/babylon/commit/566aa1267c7c9b0d1eb49dd9014461274c51280d 8370971: Problemlist jdkDoctypeBadcharsCheck.java and jdkCheckHtml.java Reviewed-by: dholmes ! test/docs/ProblemList.txt Changeset: c69e0eb2 Branch: code-reflection Author: William Kemper Date: 2025-10-30 20:40:29 +0000 URL: https://git.openjdk.org/babylon/commit/c69e0eb2f98dc80eaefdb399dcfe86cdab32dbd5 8370726: GenShen: Misplaced assertion that old referent is marked during young collection Reviewed-by: xpeng, ysr ! src/hotspot/share/gc/shenandoah/shenandoahGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.hpp Changeset: c6eea8ac Branch: code-reflection Author: William Kemper Date: 2025-10-30 21:10:01 +0000 URL: https://git.openjdk.org/babylon/commit/c6eea8acf6eea7314a1615e5923ac7bf73e6da02 8370667: GenShen: Only make assertions about region pinning for collected generation Reviewed-by: xpeng, ysr ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahGenerationalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp Changeset: e293166e Branch: code-reflection Author: Alexey Semenyuk Date: 2025-10-30 21:14:09 +0000 URL: https://git.openjdk.org/babylon/commit/e293166e440df75f650ee280c300c085cd141d30 8370963: Errors in jpackage jtreg test descriptions Reviewed-by: almatvee ! test/jdk/tools/jpackage/TEST.properties ! test/jdk/tools/jpackage/macosx/CustomInfoPListTest.java ! test/jdk/tools/jpackage/macosx/DmgContentTest.java ! test/jdk/tools/jpackage/macosx/HostArchPkgTest.java ! test/jdk/tools/jpackage/macosx/SigningPackageTwoStepTest.java ! test/jdk/tools/jpackage/macosx/SigningRuntimeImagePackageTest.java ! test/jdk/tools/jpackage/share/RuntimeImageSymbolicLinksTest.java ! test/jdk/tools/jpackage/share/RuntimeImageTest.java ! test/jdk/tools/jpackage/windows/WinInstallerResourceTest.java ! test/jdk/tools/jpackage/windows/WinLongPathTest.java ! test/jdk/tools/jpackage/windows/WinLongVersionTest.java ! test/jdk/tools/jpackage/windows/WinOSConditionTest.java ! test/jdk/tools/jpackage/windows/WinRenameTest.java Changeset: a5f3a6f2 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-10-30 21:14:31 +0000 URL: https://git.openjdk.org/babylon/commit/a5f3a6f21b68fe9b97cb1aa22f54173b192fbd10 8370956: ShortcutHintTest test fails when executed locally on Linux Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java Changeset: 0e054667 Branch: code-reflection Author: Kevin Walls Date: 2025-10-30 21:42:43 +0000 URL: https://git.openjdk.org/babylon/commit/0e054667302614eaa8f969003bb89c93c2b4aef0 8370955: Remove test javax/management/remote/mandatory/connection/ConnectionTest.java from ProblemList-Virtual Reviewed-by: sspitsyn ! test/jdk/ProblemList-Virtual.txt Changeset: a926c216 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-10-30 22:45:49 +0000 URL: https://git.openjdk.org/babylon/commit/a926c216e0f56dfc4d129260f8bf028ade615756 8370965: Remove SigningPackageFromTwoStepAppImageTest test Reviewed-by: almatvee - test/jdk/tools/jpackage/macosx/SigningPackageFromTwoStepAppImageTest.java Changeset: dfa04f4a Branch: code-reflection Author: Kelvin Nilsen Date: 2025-10-31 00:04:11 +0000 URL: https://git.openjdk.org/babylon/commit/dfa04f4aa5463de7812877553ea779da6467d373 8370653: Fix race in CompressedClassSpaceSizeInJmapHeap.java Reviewed-by: phh, wkemper, ysr ! test/hotspot/jtreg/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Changeset: 3c1010b5 Branch: code-reflection Author: Kelvin Nilsen Date: 2025-10-31 00:05:59 +0000 URL: https://git.openjdk.org/babylon/commit/3c1010b57f2f8258a2ccf59b9f86fc8debd71918 8370646: TestLargeUTF8Length.java needs lots of memory Reviewed-by: phh, wkemper, ysr ! test/hotspot/jtreg/runtime/jni/checked/TestLargeUTF8Length.java Changeset: 6347f10b Branch: code-reflection Author: William Kemper Date: 2025-10-31 00:07:47 +0000 URL: https://git.openjdk.org/babylon/commit/6347f10bf1dd3959cc1f2aba32e72ca8d9d56e82 8370521: GenShen: Various code cleanup related to promotion Reviewed-by: fandreuzzi, kdnilsen, ysr ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCollectionSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGeneration.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTrace.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 4f9f0868 Branch: code-reflection Author: Leonid Mesnik Date: 2025-10-31 01:40:06 +0000 URL: https://git.openjdk.org/babylon/commit/4f9f086847f531ab1791727d74955cfd8ec56811 8224852: JVM crash on watched field access from native code Reviewed-by: amenkov, sspitsyn ! src/hotspot/share/prims/jvmtiExport.cpp + test/hotspot/jtreg/serviceability/jvmti/events/FieldAccess/FieldEventsFromJNI/FieldEventsFromJNI.java + test/hotspot/jtreg/serviceability/jvmti/events/FieldAccess/FieldEventsFromJNI/libFieldEventsFromJNI.cpp ! test/lib/jdk/test/lib/jvmti/jvmti_common.hpp Changeset: fc5df4ac Branch: code-reflection Author: Prasanta Sadhukhan Date: 2025-10-31 03:33:45 +0000 URL: https://git.openjdk.org/babylon/commit/fc5df4ac8f11f25611bd4def5b655578af27c882 8370465: Right to Left Orientation Issues with MenuItem Component Reviewed-by: kizune, honkar ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java ! test/jdk/javax/swing/JMenuItem/RightLeftOrientation.java Changeset: c6cc7a7b Branch: code-reflection Author: Tagir F. Valeev Date: 2025-10-31 05:33:59 +0000 URL: https://git.openjdk.org/babylon/commit/c6cc7a7b2a45a892c4a5a7a24e1fdbc5f9325f4a 8368178: Add specialization of SequencedCollection methods to standard list factories Reviewed-by: smarks ! src/java.base/share/classes/java/util/Collections.java ! src/java.base/share/classes/java/util/ImmutableCollections.java ! test/jdk/java/util/Collection/MOAT.java ! test/jdk/java/util/Collections/NCopies.java ! test/jdk/java/util/List/ListFactories.java Changeset: c47ea121 Branch: code-reflection Author: Thomas Schatzl Date: 2025-10-31 06:38:42 +0000 URL: https://git.openjdk.org/babylon/commit/c47ea1211189d67a0b9ef1a893dacabbc606dae5 8370889: G1: Inline G1PrepareEvacuationTask::sample_card_set_size() Reviewed-by: fandreuzzi, ayang, iwalulya ! src/hotspot/share/gc/g1/g1YoungCollector.cpp Changeset: 4913b548 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-10-31 08:46:59 +0000 URL: https://git.openjdk.org/babylon/commit/4913b548a79a981816718def38d059b5175f6f59 8370950: Inline CollectedHeap::fill_args_check Reviewed-by: fandreuzzi, tschatzl ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp Changeset: 4ca88aa2 Branch: code-reflection Author: Mikhail Yankelevich Date: 2025-10-31 09:51:45 +0000 URL: https://git.openjdk.org/babylon/commit/4ca88aa2e8f486ffa7c6f4050ca3462e5e6f3418 8370852: Test sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java fails after JDK-8369995 Reviewed-by: coffeys, wetmore ! test/jdk/ProblemList.txt ! test/jdk/sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java Changeset: 8e3620a3 Branch: code-reflection Author: Liam Miller-Cushon Date: 2025-10-31 09:52:02 +0000 URL: https://git.openjdk.org/babylon/commit/8e3620a344f83a21191bb70cf2af24e9ae1952ce 8370237: AssertionError in Annotate.fromAnnotations with -Xdoclint and type annotations Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/ReferenceParser.java ! test/langtools/tools/doclint/CrashInAnnotateTest.out + test/langtools/tools/doclint/CrashInTypeAnnotateTest.java + test/langtools/tools/doclint/CrashInTypeAnnotateTest.out Changeset: 02f8874c Branch: code-reflection Author: Marc Chevalier Date: 2025-10-31 11:00:06 +0000 URL: https://git.openjdk.org/babylon/commit/02f8874c2d105a86cbfd3b84b591fefb4e509806 8361608: C2: assert(opaq->outcnt() == 1 && opaq->in(1) == limit) failed Co-authored-by: Christian Hagedorn Reviewed-by: chagedorn, rcastanedalo ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp + test/hotspot/jtreg/compiler/loopopts/TooStrictAssertForUnrollAfterPeeling.java Changeset: 8ca485cf Branch: code-reflection Author: Marc Chevalier Date: 2025-10-31 11:02:29 +0000 URL: https://git.openjdk.org/babylon/commit/8ca485cf98889d1757170a4ec883c93c888a7140 8370077: C2: make Compile::_major_progress a boolean Reviewed-by: chagedorn, kvn, dlong, epeter ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/loopnode.cpp Changeset: 67a81c47 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-10-31 13:33:11 +0000 URL: https://git.openjdk.org/babylon/commit/67a81c476f1e3c0d6aeca0d0aa2148efcb70a180 8370943: Support heap expansion during startup in Serial and Parallel Reviewed-by: fandreuzzi, eosterlund, tschatzl ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psYoungGen.cpp ! src/hotspot/share/gc/serial/defNewGeneration.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp Changeset: 2158719a Branch: code-reflection Author: Sergey Kuksenko Date: 2025-10-31 14:00:55 +0000 URL: https://git.openjdk.org/babylon/commit/2158719aab5f3ab652225113b5205070e9241995 8370150: Add StrictMath microbenchmarks to cover FDLIBM algorithms Reviewed-by: rgiulietti + test/micro/org/openjdk/bench/java/lang/StrictMathExtraBench.java Changeset: 16dafc00 Branch: code-reflection Author: Matthias Baesken Date: 2025-10-31 14:10:52 +0000 URL: https://git.openjdk.org/babylon/commit/16dafc00eca8acb0fdabf2f373bb5f84bd293086 8370393: Cleanup handling of ancient Windows versions from GetJavaProperties java_props_md Reviewed-by: clanger, rriggs ! src/java.base/windows/native/libjava/java_props_md.c Changeset: 8236800d Branch: code-reflection Author: Chad Rakoczy Committer: Vladimir Kozlov Date: 2025-10-31 14:11:13 +0000 URL: https://git.openjdk.org/babylon/commit/8236800deb5b99a027b0944f6c512c0f31d030df 8370527: Memory leak after 8316694: Implement relocation of nmethod within CodeCache Reviewed-by: shade, eastigeevich, kvn ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java Changeset: 1781b186 Branch: code-reflection Author: Mark Powers Date: 2025-10-31 17:52:48 +0000 URL: https://git.openjdk.org/babylon/commit/1781b186b51900b758dd55cc356eaaf12b28481b 8343232: PKCS#12 KeyStore support for RFC 9879: Use of Password-Based Message Authentication Code 1 (PBMAC1) Reviewed-by: weijun, mullan ! src/java.base/share/classes/com/sun/crypto/provider/PBES2Parameters.java ! src/java.base/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java ! src/java.base/share/classes/sun/security/pkcs12/MacData.java + src/java.base/share/classes/sun/security/pkcs12/PBMAC1Parameters.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/util/KeyUtil.java ! src/java.base/share/classes/sun/security/util/KnownOIDs.java + src/java.base/share/classes/sun/security/util/PBKDF2Parameters.java ! src/java.base/share/conf/security/java.security + test/jdk/sun/security/pkcs12/PBMAC1Test.java ! test/jdk/sun/security/pkcs12/ParamsPreferences.java Changeset: ec059c0e Branch: code-reflection Author: Kelvin Nilsen Date: 2025-10-31 21:02:28 +0000 URL: https://git.openjdk.org/babylon/commit/ec059c0e85bc612f430269d9e110dc7ecbdce342 8365880: Shenandoah: Unify memory usage accounting in ShenandoahFreeSet Reviewed-by: wkemper ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahGlobalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFullGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGeneration.hpp - src/hotspot/share/gc/shenandoah/shenandoahGenerationSizer.cpp - src/hotspot/share/gc/shenandoah/shenandoahGenerationSizer.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalEvacuationTask.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalFullGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalFullGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGlobalGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGlobalGeneration.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMemoryPool.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp ! src/hotspot/share/gc/shenandoah/shenandoahYoungGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahYoungGeneration.hpp ! src/hotspot/share/gc/shenandoah/vmStructs_shenandoah.hpp + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahFreeSet.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahGeneration.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/gc/shenandoah/ShenandoahHeap.java ! test/hotspot/gtest/gc/shenandoah/test_shenandoahOldGeneration.cpp ! test/hotspot/gtest/gc/shenandoah/test_shenandoahOldHeuristic.cpp ! test/hotspot/jtreg/gc/shenandoah/TestSieveObjects.java ! test/hotspot/jtreg/gc/shenandoah/mxbeans/TestChurnNotifications.java Changeset: 2fc4cbe4 Branch: code-reflection Author: Leonid Mesnik Date: 2025-10-31 23:33:49 +0000 URL: https://git.openjdk.org/babylon/commit/2fc4cbe426c814c49c03c794c7a7fff2a23f22c4 8370663: Incorrect synchronization in nsk/jvmti/RedefineClasses when expected events are not received Reviewed-by: sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass028/redefclass028.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass029/redefclass029.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses/redefclass030/redefclass030.cpp Changeset: 54fe5021 Branch: code-reflection Author: SendaoYan Date: 2025-11-01 02:04:43 +0000 URL: https://git.openjdk.org/babylon/commit/54fe50210efe9ae6fad225b815cfdeb16c868115 8370732: Use WhiteBox.getWhiteBox().fullGC() to provoking gc for nsk/jvmti tests Reviewed-by: cjplummer, lmesnik, sspitsyn - test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Target.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Target.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Target.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006.java - test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TEST.properties ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java Changeset: d2260236 Branch: code-reflection Author: Yasumasa Suenaga Date: 2025-11-01 02:33:16 +0000 URL: https://git.openjdk.org/babylon/commit/d226023643f90027a8980d161ec6d423887ae3ce 8369994: Mixed mode jhsdb jstack cannot resolve symbol in function ending in call Reviewed-by: kevinw, cjplummer ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java Changeset: 13b3d2fc Branch: code-reflection Author: Mikhail Yankelevich Date: 2025-11-01 10:06:14 +0000 URL: https://git.openjdk.org/babylon/commit/13b3d2fca1af71d0aa9908e19630c2e965dd7134 8368625: com/sun/net/httpserver/ServerStopTerminationTest.java fails intermittently Reviewed-by: dfuchs ! test/jdk/com/sun/net/httpserver/ServerStopTerminationTest.java Changeset: f7f4f903 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-01 23:29:48 +0000 URL: https://git.openjdk.org/babylon/commit/f7f4f903cfdafecf69ff47d5d37e254adaf63141 8370969: --launcher-as-service option is ignored when used with --app-image option Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CfgFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/ConfigFilesStasher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacSignVerify.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PropertyFinder.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/TKit.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/WinShortcutVerifier.java ! test/jdk/tools/jpackage/share/ServiceTest.java Changeset: 7c900da1 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-02 02:19:11 +0000 URL: https://git.openjdk.org/babylon/commit/7c900da1985c9508198ea7805e4955da4a7cac42 8371076: jpackage will wrongly overwrite the plist file in the embedded runtime when executed with the "--app-image" option Reviewed-by: almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/AppImageSigner.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPackagingPipeline.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackagingPipeline.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/PListReader.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/Slot.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/XmlUtils.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixLauncherAsService.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java ! test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/util/PListReaderTest.java ! test/jdk/tools/jpackage/macosx/CustomInfoPListTest.java ! test/jdk/tools/jpackage/macosx/SigningRuntimeImagePackageTest.java ! test/jdk/tools/jpackage/share/RuntimePackageTest.java Changeset: e8a1a870 Branch: code-reflection Author: Kim Barrett Date: 2025-11-02 07:02:06 +0000 URL: https://git.openjdk.org/babylon/commit/e8a1a8707ee6192c85ac62a2a51c815e07613c38 8369186: HotSpot Style Guide should permit some uses of the C++ Standard Library Reviewed-by: jrose, lkorinth, iwalulya, kvn, stefank ! doc/hotspot-style.html ! doc/hotspot-style.md ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/riscv/assembler_riscv.hpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/relocInfo.cpp + src/hotspot/share/cppstdlib/cstddef.hpp + src/hotspot/share/cppstdlib/limits.hpp + src/hotspot/share/cppstdlib/type_traits.hpp ! src/hotspot/share/gc/shared/bufferNode.hpp ! src/hotspot/share/gc/shared/oopStorage.inline.hpp ! src/hotspot/share/gc/shared/oopStorageParState.hpp ! src/hotspot/share/gc/shared/oopStorageParState.inline.hpp ! src/hotspot/share/gc/shared/workerUtils.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSimpleBitMap.hpp ! src/hotspot/share/gc/z/zAddress.inline.hpp ! src/hotspot/share/gc/z/zArray.hpp ! src/hotspot/share/gc/z/zDeferredConstructed.inline.hpp ! src/hotspot/share/gc/z/zDirector.cpp ! src/hotspot/share/gc/z/zForwardingEntry.hpp ! src/hotspot/share/gc/z/zInitialize.hpp ! src/hotspot/share/gc/z/zPageAge.inline.hpp ! src/hotspot/share/gc/z/zPageTable.inline.hpp ! src/hotspot/share/gc/z/zSafeDelete.hpp ! src/hotspot/share/gc/z/zSafeDelete.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/memory/metadataFactory.hpp ! src/hotspot/share/memory/metaspace/counters.hpp ! src/hotspot/share/memory/metaspaceClosure.hpp ! src/hotspot/share/metaprogramming/enableIf.hpp ! src/hotspot/share/metaprogramming/primitiveConversions.hpp ! src/hotspot/share/nmt/arrayWithFreeList.hpp ! src/hotspot/share/nmt/nmtNativeCallStackStorage.hpp ! src/hotspot/share/oops/accessBackend.hpp ! src/hotspot/share/oops/accessBackend.inline.hpp ! src/hotspot/share/oops/accessDecorators.hpp ! src/hotspot/share/oops/compressedOops.hpp ! src/hotspot/share/oops/instanceOop.hpp ! src/hotspot/share/oops/markWord.hpp ! src/hotspot/share/oops/objArrayOop.hpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oopHandle.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp ! src/hotspot/share/oops/typeArrayOop.hpp ! src/hotspot/share/opto/rangeinference.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/atomicAccess.hpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/flags/jvmFlag.hpp ! src/hotspot/share/runtime/lockStack.cpp ! src/hotspot/share/runtime/sharedRuntimeTrans.cpp ! src/hotspot/share/services/diagnosticFramework.hpp ! src/hotspot/share/utilities/align.hpp ! src/hotspot/share/utilities/byteswap.hpp ! src/hotspot/share/utilities/concurrentHashTable.inline.hpp ! src/hotspot/share/utilities/deferredStatic.hpp ! src/hotspot/share/utilities/devirtualizer.inline.hpp ! src/hotspot/share/utilities/enumIterator.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/hashTable.hpp ! src/hotspot/share/utilities/intn_t.hpp ! src/hotspot/share/utilities/intpow.hpp ! src/hotspot/share/utilities/parseInteger.hpp ! src/hotspot/share/utilities/population_count.hpp ! src/hotspot/share/utilities/powerOfTwo.hpp ! src/hotspot/share/utilities/rbTree.hpp ! src/hotspot/share/utilities/reverse_bits.hpp ! src/hotspot/share/utilities/tuple.hpp Changeset: 05efc1fa Branch: code-reflection Author: Simon Tooke Committer: SendaoYan Date: 2025-11-03 02:20:17 +0000 URL: https://git.openjdk.org/babylon/commit/05efc1fa991c3fd895bf2f7c7d9e7916692b98e6 8370578: SystemMapTest.java#normal fails intermittendly on macOS aarch64 Reviewed-by: cjplummer, sspitsyn, stuefe ! test/hotspot/jtreg/serviceability/dcmd/vm/SystemMapTestBase.java Changeset: 4cfabd60 Branch: code-reflection Author: Saint Wesonga Committer: SendaoYan Date: 2025-11-03 02:21:54 +0000 URL: https://git.openjdk.org/babylon/commit/4cfabd605c42494db4ca4078344d32abc951a9ae 8370974: Command-line Hotspot debugger tests fail on Windows AArch64 Reviewed-by: dholmes, cjplummer ! src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp Changeset: 0ca0852d Branch: code-reflection Author: Emanuel Peter Date: 2025-11-03 06:45:48 +0000 URL: https://git.openjdk.org/babylon/commit/0ca0852d78d643c211d36b753a734dac0cd2800a 8370459: C2: CompressBitsNode::Value produces wrong result on Windows (1UL vs 1ULL), found by ExpressionFuzzer Reviewed-by: dlong, jbhateja, thartmann ! src/hotspot/share/opto/intrinsicnode.cpp ! test/hotspot/jtreg/compiler/c2/gvn/TestBitCompressValueTransform.java Changeset: 09a047f0 Branch: code-reflection Author: Emanuel Peter Date: 2025-11-03 06:55:32 +0000 URL: https://git.openjdk.org/babylon/commit/09a047f00c88d14505c42a966dedbc87b9be5bdf 8370405: C2: mismatched store from MergeStores wrongly scalarized in allocation elimination Co-authored-by: Olivier Mattmann Co-authored-by: Quan Anh Mai Reviewed-by: kvn, qamai ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/runtime/deoptimization.cpp + test/hotspot/jtreg/compiler/c2/TestMergeStoresAndAllocationElimination.java + test/hotspot/jtreg/compiler/escapeAnalysis/TestRematerializeObjects.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 4e63c041 Branch: code-reflection Author: Afshin Zafari Date: 2025-11-03 09:28:35 +0000 URL: https://git.openjdk.org/babylon/commit/4e63c0412e3a05af1ff783d0587e03a6817b8e0d 8366062: [ubsan] add non-zero offset to nullptr in cds/archiveBuilder.cpp Reviewed-by: iklam, dholmes ! src/hotspot/share/cds/archiveBuilder.cpp Changeset: 10ea585b Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-03 09:30:55 +0000 URL: https://git.openjdk.org/babylon/commit/10ea585b5ca01dc0136fe76a11109d0f17828772 8370345: Parallel: Rework TLAB accounting in MutableNUMASpace Reviewed-by: ayang, iwalulya ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp ! src/hotspot/share/gc/parallel/mutableNUMASpace.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: 89b492f4 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-03 09:38:53 +0000 URL: https://git.openjdk.org/babylon/commit/89b492f41bae6f3b9935093b07c9b4f78a97641e 8371018: Remove unused CollectedHeap::fill_with_object Reviewed-by: iwalulya, fandreuzzi, tschatzl ! src/hotspot/share/gc/shared/collectedHeap.hpp Changeset: 400f51f7 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-03 09:39:11 +0000 URL: https://git.openjdk.org/babylon/commit/400f51f7ab19c2dc6a4195f78f9f815d03dd4434 8369913: Parallel: Refactor PSAdjustTask Reviewed-by: fandreuzzi, jsikstro ! src/hotspot/share/gc/parallel/psParallelCompact.cpp Changeset: deb7edb1 Branch: code-reflection Author: Raffaello Giulietti Date: 2025-11-03 09:48:55 +0000 URL: https://git.openjdk.org/babylon/commit/deb7edb151fd5940fdf9fdb2a6356080ee94e222 8366017: Extend the set of inputs handled by fast paths in FloatingDecimal Reviewed-by: darcy ! src/java.base/share/classes/java/text/DigitList.java ! src/java.base/share/classes/jdk/internal/math/FDBigInteger.java ! src/java.base/share/classes/jdk/internal/math/FloatingDecimal.java ! src/java.base/share/classes/jdk/internal/math/MathUtils.java ! test/jdk/java/lang/Double/ParseDouble.java ! test/jdk/java/lang/Float/ParseFloat.java ! test/jdk/jdk/internal/math/FloatingDecimal/TestFDBigInteger.java + test/jdk/jdk/internal/math/FloatingDecimal/java.base/jdk/internal/math/FDBigIntegerChecker.java + test/micro/org/openjdk/bench/java/lang/FloatingPointParse.java Changeset: 667744c3 Branch: code-reflection Author: Hamlin Li Date: 2025-11-03 10:36:24 +0000 URL: https://git.openjdk.org/babylon/commit/667744c353e4d6abbe5cbf85746e5e0e44dafaf8 8370794: C2 SuperWord: Long/Integer.compareUnsigned return wrong value for EQ/NE in SLP Reviewed-by: epeter, luhenry ! src/hotspot/share/opto/subnode.cpp ! src/hotspot/share/opto/subnode.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestVectorConditionalMove.java Changeset: 15fd5292 Branch: code-reflection Author: Jan Lahoda Date: 2025-11-03 11:41:30 +0000 URL: https://git.openjdk.org/babylon/commit/15fd52925ab64a6a9e33691eed9e952a7b75da4b 8366196: Crash in AbstractMethodCheck.getMethodCheckFailure Reviewed-by: liach, mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrRecover.java ! test/langtools/tools/javac/recovery/AttrRecovery.java Changeset: abf4f3da Branch: code-reflection Author: Jan Lahoda Date: 2025-11-03 12:02:54 +0000 URL: https://git.openjdk.org/babylon/commit/abf4f3da76f413406de2860e4fbfacccfa15c221 8370865: Incorrect parser error for compact source files and multi-variable declarations Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java + test/langtools/tools/javac/ImplicitClass/MultipleFields.java ! test/langtools/tools/javac/parser/JavacParserTest.java Changeset: 6f452ac4 Branch: code-reflection Author: Coleen Phillimore Date: 2025-11-03 12:37:00 +0000 URL: https://git.openjdk.org/babylon/commit/6f452ac46f17b89f8a9f661ffc8fadc663ae124e 8364360: Defining hidden class with no room in constant pool crashes the VM Reviewed-by: matsaave, liach, dholmes ! src/hotspot/share/classfile/classFileParser.cpp + test/hotspot/jtreg/runtime/ClassFile/HiddenClassesTest.java Changeset: 4520983e Branch: code-reflection Author: Sergey Nazarkin Committer: Dmitry Cherepanov Date: 2025-11-03 12:56:42 +0000 URL: https://git.openjdk.org/babylon/commit/4520983e8e5fcfb22e04508d50676df6831fa636 8368882: NPE during text drawing on machine with JP locale Reviewed-by: serb, prr, psadhukhan ! src/java.desktop/share/classes/sun/font/CompositeFont.java Changeset: ef464d69 Branch: code-reflection Author: Afshin Zafari Date: 2025-11-03 12:57:19 +0000 URL: https://git.openjdk.org/babylon/commit/ef464d69399e50aee126a4756fe9a9a19e44d3c4 8371142: [BACKOUT] [ubsan] add non-zero offset to nullptr in cds/archiveBuilder.cpp Reviewed-by: coleenp ! src/hotspot/share/cds/archiveBuilder.cpp Changeset: 8dbefc53 Branch: code-reflection Author: Igor Rudenko Committer: Per Minborg Date: 2025-11-03 14:17:56 +0000 URL: https://git.openjdk.org/babylon/commit/8dbefc53a95c6e3f722082316157c6372737c162 8370822: Improve performance for MemorySegment::fill Reviewed-by: pminborg ! src/java.base/share/classes/jdk/internal/foreign/SegmentBulkOperations.java Changeset: 045018d5 Branch: code-reflection Author: Yasumasa Suenaga Date: 2025-11-03 14:25:45 +0000 URL: https://git.openjdk.org/babylon/commit/045018d5f39751af9f673974ff876c47596cdbd0 8370176: Mixed mode jhsdb jstack cannot unwind call stack with -Xcomp Co-authored-by: Fei Yang Reviewed-by: cjplummer, kevinw ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/cdbg/CFrame.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/aarch64/LinuxAARCH64CFrame.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/riscv64/LinuxRISCV64CFrame.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java + test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackMixedWithXComp.java Changeset: 20ff33cb Branch: code-reflection Author: Yasumasa Suenaga Date: 2025-11-03 14:26:07 +0000 URL: https://git.openjdk.org/babylon/commit/20ff33cbdf393818b63bb8989e1def0b2d470c4b 8370260: Test jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java timed out Reviewed-by: syan, egahlin ! test/jdk/jdk/jfr/event/oldobject/TestEmergencyDumpAtOOM.java Changeset: 18e8873c Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-03 14:44:15 +0000 URL: https://git.openjdk.org/babylon/commit/18e8873cadf3900139a6555d4a228148a10d2009 8369111: G1: Determining concurrent start uses inconsistent predicates Reviewed-by: iwalulya, ayang ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1PeriodicGCTask.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1VMOperations.cpp ! src/hotspot/share/gc/g1/g1VMOperations.hpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp Changeset: 02a72174 Branch: code-reflection Author: Artur Barashev Date: 2025-11-03 15:05:16 +0000 URL: https://git.openjdk.org/babylon/commit/02a7217491755e25f3ae7ff3924f85e26698720d 8366364: Return enabled signature schemes with SSLConfiguration#getSSLParameters() call Reviewed-by: mullan ! src/java.base/share/classes/sun/launcher/SecuritySettings.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLServerSocketImpl.java ! src/java.base/share/classes/sun/security/ssl/SignatureScheme.java ! src/java.base/share/classes/sun/security/ssl/TransportContext.java + test/jdk/sun/security/ssl/SignatureScheme/DefaultSSLConfigSignatureSchemes.java ! test/jdk/tools/launcher/Settings.java Changeset: 1922c4fd Branch: code-reflection Author: Matias Saavedra Silva Date: 2025-11-03 16:34:41 +0000 URL: https://git.openjdk.org/babylon/commit/1922c4fd6f10e6eac121462d509d6990ae4f9acd 8365940: Misleading macro in jvm_md.h:57 Reviewed-by: dholmes, kbarrett ! src/hotspot/os/posix/include/jvm_md.h Changeset: 9f972008 Branch: code-reflection Author: Vicente Romero Date: 2025-11-03 18:32:06 +0000 URL: https://git.openjdk.org/babylon/commit/9f972008ff2beb4b69855f4c42b8a664a6b8bc95 8369654: javac OutOfMemoryError for complex intersection type Reviewed-by: liach, mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Code.java + test/langtools/tools/javac/switchexpr/ExpressionSwitchComplexIntersectionTest.java Changeset: dadbad0b Branch: code-reflection Author: Mohamed Issa Committer: SendaoYan Date: 2025-11-04 01:58:34 +0000 URL: https://git.openjdk.org/babylon/commit/dadbad0bef84f671c8194c84080c760453ecc423 8371088: Build fails when trying hsdis option Reviewed-by: erikj ! make/autoconf/lib-hsdis.m4 Changeset: 576f9694 Branch: code-reflection Author: Serhiy Sachkov Committer: SendaoYan Date: 2025-11-04 01:58:54 +0000 URL: https://git.openjdk.org/babylon/commit/576f9694b092f2a11a6a4e5a82c2b0e12203bd9c 8361106: [TEST] com/sun/net/httpserver/Test9.java fails with java.nio.file.FileSystemException Reviewed-by: dfuchs ! test/jdk/com/sun/net/httpserver/Test9.java Changeset: 50bb92a3 Branch: code-reflection Author: Amit Kumar Date: 2025-11-04 04:59:32 +0000 URL: https://git.openjdk.org/babylon/commit/50bb92a33b32778a96b1823ff995889892bef890 8370871: [s390x] consistently update top_frame_sp Reviewed-by: rrich, lucy ! src/hotspot/cpu/s390/interp_masm_s390.cpp ! src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp Changeset: 75e37b06 Branch: code-reflection Author: Emanuel Peter Date: 2025-11-04 07:39:11 +0000 URL: https://git.openjdk.org/babylon/commit/75e37b06c3e37ee49719a0c0d6b4ab2c4ff76098 8370332: C2 SuperWord: SIGSEGV because PhaseIdealLoop::split_thru_phi left dead nodes in loop _body Reviewed-by: chagedorn, roland ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp + test/hotspot/jtreg/compiler/loopopts/TestSplitThruPhiRemoveDeadNodesFromLoopBody.java Changeset: c1476fca Branch: code-reflection Author: Volkan Yazici Date: 2025-11-04 08:03:30 +0000 URL: https://git.openjdk.org/babylon/commit/c1476fca9d7a679d32b7b43956638b845d1027cc 8366575: Remove SDP support Reviewed-by: alanb, erikj, jpai, michaelm ! make/modules/java.base/Copy.gmk - src/java.base/share/classes/sun/net/sdp/SdpSupport.java ! src/java.base/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/NioSocketImpl.java ! src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java - src/java.base/unix/classes/sun/net/NetHooks.java - src/java.base/unix/classes/sun/net/sdp/SdpProvider.java ! src/java.base/unix/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java - src/java.base/unix/conf/sdp/sdp.conf.template - src/java.base/unix/native/libnet/SdpSupport.c - src/java.base/windows/classes/sun/net/NetHooks.java Changeset: e4aed95c Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-04 08:48:48 +0000 URL: https://git.openjdk.org/babylon/commit/e4aed95cac343f1339b9bc87721561bdc4c2f5ad 8370682: G1: Survivor regions not in young gen cset group Reviewed-by: iwalulya, ayang ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1FullGCResetMetadataTask.cpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp Changeset: 21f41c5f Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-04 09:22:47 +0000 URL: https://git.openjdk.org/babylon/commit/21f41c5f49cd3c5e6e4f29ed38701a4d92c16098 8370774: Merge ModRefBarrierSet into CardTableBarrierSet Reviewed-by: tschatzl, iwalulya ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.hpp - src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.cpp - src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.hpp ! src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.hpp - src/hotspot/cpu/arm/gc/shared/modRefBarrierSetAssembler_arm.cpp - src/hotspot/cpu/arm/gc/shared/modRefBarrierSetAssembler_arm.hpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/ppc/gc/shared/cardTableBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/cardTableBarrierSetAssembler_ppc.hpp - src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.cpp - src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.hpp - src/hotspot/cpu/riscv/gc/shared/modRefBarrierSetAssembler_riscv.cpp - src/hotspot/cpu/riscv/gc/shared/modRefBarrierSetAssembler_riscv.hpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.hpp ! src/hotspot/cpu/s390/gc/shared/cardTableBarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/cardTableBarrierSetAssembler_s390.hpp - src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.cpp - src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.hpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.hpp - src/hotspot/cpu/x86/gc/shared/modRefBarrierSetAssembler_x86.cpp - src/hotspot/cpu/x86/gc/shared/modRefBarrierSetAssembler_x86.hpp - src/hotspot/cpu/zero/gc/shared/modRefBarrierSetAssembler_zero.hpp ! src/hotspot/share/gc/g1/c1/g1BarrierSetC1.hpp ! src/hotspot/share/gc/g1/g1BarrierSet.hpp ! src/hotspot/share/gc/g1/g1BarrierSet.inline.hpp ! src/hotspot/share/gc/serial/serialFullGC.cpp ! src/hotspot/share/gc/shared/barrierSetConfig.hpp ! src/hotspot/share/gc/shared/barrierSetConfig.inline.hpp ! src/hotspot/share/gc/shared/c1/cardTableBarrierSetC1.cpp ! src/hotspot/share/gc/shared/c1/cardTableBarrierSetC1.hpp - src/hotspot/share/gc/shared/c1/modRefBarrierSetC1.cpp - src/hotspot/share/gc/shared/c1/modRefBarrierSetC1.hpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.hpp - src/hotspot/share/gc/shared/c2/modRefBarrierSetC2.cpp - src/hotspot/share/gc/shared/c2/modRefBarrierSetC2.hpp ! src/hotspot/share/gc/shared/cardTableBarrierSet.cpp ! src/hotspot/share/gc/shared/cardTableBarrierSet.hpp ! src/hotspot/share/gc/shared/cardTableBarrierSet.inline.hpp - src/hotspot/share/gc/shared/modRefBarrierSet.hpp - src/hotspot/share/gc/shared/modRefBarrierSet.inline.hpp - src/hotspot/share/gc/shared/modRefBarrierSetAssembler.hpp ! src/hotspot/share/gc/shared/vmStructs_gc.hpp ! src/hotspot/share/oops/access.inline.hpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp Changeset: 19cca0a2 Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-04 09:35:46 +0000 URL: https://git.openjdk.org/babylon/commit/19cca0a2a829396291fa4140b2082ef518425518 8371131: Cleanup Thread parameter in CollectedHeap TLAB methods Reviewed-by: ayang, tschatzl ! src/hotspot/share/gc/epsilon/epsilonHeap.cpp ! src/hotspot/share/gc/epsilon/epsilonHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/parallel/mutableNUMASpace.cpp ! src/hotspot/share/gc/parallel/mutableNUMASpace.hpp ! src/hotspot/share/gc/parallel/mutableSpace.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp Changeset: a98b9e7c Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-04 09:42:18 +0000 URL: https://git.openjdk.org/babylon/commit/a98b9e7cfa433d4bf2acbf59a1c9d3714c3c065d 8362832: compiler/macronodes/TestTopInMacroElimination.java hits assert(false) failed: unexpected node Reviewed-by: dlunden, epeter, kvn ! src/hotspot/share/opto/macro.cpp ! test/hotspot/jtreg/ProblemList-jvmti-stress-agent.txt ! test/hotspot/jtreg/compiler/macronodes/TestTopInMacroElimination.java Changeset: a840dc22 Branch: code-reflection Author: Matthias Baesken Date: 2025-11-04 09:54:50 +0000 URL: https://git.openjdk.org/babylon/commit/a840dc22c575b5d2b5b6017a536a6541fc1f0a44 8364741: [asan] runtime/ErrorHandling/PrintVMInfoAtExitTest.java fails because output differs slightly Reviewed-by: syan, phubner, jsikstro ! test/hotspot/jtreg/runtime/ErrorHandling/PrintVMInfoAtExitTest.java Changeset: e6546683 Branch: code-reflection Author: Roland Westrelin Date: 2025-11-04 11:17:56 +0000 URL: https://git.openjdk.org/babylon/commit/e6546683a8dd9a64255ce4c5606089068ec92e5d 8327963: C2: fix construction of memory graph around Initialize node to prevent incorrect execution if allocation is removed Co-authored-by: Emanuel Peter Co-authored-by: Roberto Casta?eda Lozano Reviewed-by: epeter, rcastanedalo ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/multnode.cpp ! src/hotspot/share/opto/multnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/stringopts.cpp ! src/utils/IdealGraphVisualizer/ServerCompiler/src/main/java/com/sun/hotspot/igv/servercompiler/ServerCompilerScheduler.java ! src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/condenseGraph.filter ! test/hotspot/jtreg/compiler/escapeAnalysis/TestIterativeEA.java + test/hotspot/jtreg/compiler/macronodes/TestEarlyEliminationOfAllocationWithoutUse.java + test/hotspot/jtreg/compiler/macronodes/TestEliminationOfAllocationWithoutUse.java + test/hotspot/jtreg/compiler/macronodes/TestInitializingStoreCapturing.java Changeset: 642ba4cf Branch: code-reflection Author: Kieran Farrell Committer: Roger Riggs Date: 2025-11-04 14:02:24 +0000 URL: https://git.openjdk.org/babylon/commit/642ba4cfd18b7e17ff7f0ac3b2ce557bcaa93784 8334015: Add Support for UUID Version 7 (UUIDv7) defined in RFC 9562 Reviewed-by: rriggs, jpai, alanb ! src/java.base/share/classes/java/util/UUID.java ! test/jdk/java/util/UUID/UUIDTest.java Changeset: d4622b2c Branch: code-reflection Author: Jonas Norlinder Committer: Claes Redestad Date: 2025-11-04 14:27:14 +0000 URL: https://git.openjdk.org/babylon/commit/d4622b2ceac6b6aef2717bf427878df1290c4a38 8371130: Remove String template leftovers Reviewed-by: redestad, rriggs ! src/java.base/share/classes/java/lang/AbstractStringBuilder.java Changeset: c0c76703 Branch: code-reflection Author: Fernando Guallini Date: 2025-11-04 15:20:22 +0000 URL: https://git.openjdk.org/babylon/commit/c0c76703bc10d5caa1cda7e2820d0702df5b8008 8366817: test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcServer.java and JdkProcClient.java should not delete logs Reviewed-by: syan, rhalade ! test/jdk/javax/net/ssl/TLSCommon/interop/AbstractPeer.java ! test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcClient.java ! test/jdk/javax/net/ssl/TLSCommon/interop/JdkProcServer.java Changeset: a51a0bf5 Branch: code-reflection Author: Jorn Vernee Date: 2025-11-04 15:40:40 +0000 URL: https://git.openjdk.org/babylon/commit/a51a0bf57feaae0862fd7f3dbf305883d49781a0 8370344: Arbitrary Java frames on stack during scoped access Reviewed-by: pchilanomate, dholmes, liach ! src/hotspot/share/prims/scopedMemoryAccess.cpp ! src/hotspot/share/runtime/handshake.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp + test/jdk/java/foreign/sharedclosejfr/TestSharedCloseJFR.java + test/jdk/java/foreign/sharedclosejfr/sharedCloseJfr.jfc + test/jdk/java/foreign/sharedclosejvmti/TestSharedCloseJvmti.java + test/jdk/java/foreign/sharedclosejvmti/libSharedCloseAgent.cpp + test/micro/org/openjdk/bench/java/lang/foreign/SharedCloseStackWalk.java Changeset: 7d3c66f3 Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-04 15:58:19 +0000 URL: https://git.openjdk.org/babylon/commit/7d3c66f379fcb24d4505c2c12e20b24dce313e56 8371114: Problemlist vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java Reviewed-by: amenkov, syan, sspitsyn ! test/hotspot/jtreg/ProblemList.txt Changeset: 2f455ed1 Branch: code-reflection Author: Peyang Committer: Daniel Fuchs Date: 2025-11-04 16:08:15 +0000 URL: https://git.openjdk.org/babylon/commit/2f455ed146ff2e56da4532e9430e4c85ca9497ad 8371092: NullPointerException in AltServiceUsageTest.afterClass() test Reviewed-by: dfuchs ! test/jdk/java/net/httpclient/AltServiceUsageTest.java Changeset: 4c6af03f Branch: code-reflection Author: Vicente Romero Date: 2025-11-04 16:47:33 +0000 URL: https://git.openjdk.org/babylon/commit/4c6af03f81e068a98b8f4628b96682a54f3946da 8337142: StackOverflowError in Types.containsTypeRecursive with deeply nested type hierarchy Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java + test/langtools/tools/javac/types/SOEForDeeplyNestedTypeTest.java Changeset: 8224292b Branch: code-reflection Author: Koushik Thirupattur Committer: Anthony Scarpino Date: 2025-11-04 18:42:52 +0000 URL: https://git.openjdk.org/babylon/commit/8224292ba57f3d6f79c1a3515348824d92ef45fe 8365069: Refactor tests to use PEM API (Phase 1) Reviewed-by: ascarpino ! test/jdk/java/security/KeyStore/PKCS12/WriteP12Test.java ! test/jdk/java/security/KeyStore/TestKeyStoreBasic.java ! test/jdk/java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java ! test/jdk/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java ! test/jdk/java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java ! test/jdk/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevel.java ! test/jdk/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java ! test/jdk/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithRID.java ! test/jdk/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithUnexpectedRID.java ! test/jdk/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithoutRID.java ! test/jdk/java/security/cert/CertPathValidator/trustAnchor/ValWithAnchorByName.java ! test/jdk/javax/net/ssl/TLSCommon/TLSTest.java ! test/jdk/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java ! test/jdk/sun/security/provider/certpath/DisabledAlgorithms/CPBuilderWithMD5.java ! test/jdk/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java ! test/jdk/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/PKIXExtendedTM.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/SunX509ExtendedTM.java Changeset: 0555f622 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-04 19:44:04 +0000 URL: https://git.openjdk.org/babylon/commit/0555f6228c59c6739b8b824d64eb6c1545a5520a 8371094: --mac-signing-key-user-name no longer works Reviewed-by: almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/SigningIdentityBuilder.java ! test/jdk/tools/jpackage/macosx/MacSignTest.java ! test/jdk/tools/jpackage/macosx/base/SigningBase.java Changeset: 32508230 Branch: code-reflection Author: Roger Riggs Date: 2025-11-04 20:40:38 +0000 URL: https://git.openjdk.org/babylon/commit/325082302266f25d4fac33d0d4a9492c72de3ffc 8364361: [process] java.lang.Process should implement Closeable Reviewed-by: lancea, darcy, naoto, jpai, alanb, prappo ! src/java.base/share/classes/java/lang/Process.java + src/java.base/share/classes/java/lang/snippet-files/ProcessExamples.java + test/jdk/java/lang/Process/ProcessCloseTest.java Changeset: 8585b46c Branch: code-reflection Author: Phil Race Date: 2025-11-04 21:40:50 +0000 URL: https://git.openjdk.org/babylon/commit/8585b46c1221f6894f4f1cda34714e7b49a8cccb 8364583: ColorConvertOp fails for CMYK ? RGB conversion Reviewed-by: serb, psadhukhan, honkar ! src/java.desktop/share/classes/java/awt/image/ColorConvertOp.java + test/jdk/java/awt/image/ColorConvertOp/ColorConvertOpCMYK.java = test/jdk/java/awt/image/ColorConvertOp/black_cmyk.jpg Changeset: 245eeb41 Branch: code-reflection Author: Phil Race Date: 2025-11-04 21:47:40 +0000 URL: https://git.openjdk.org/babylon/commit/245eeb41bc749cba4e44bf3998cf07e7a1b784ed 8357252: sun/awt/font/TestArabicHebrew.java fails in OEL 9 and 10 x64 Reviewed-by: serb, psadhukhan, kizune ! src/java.desktop/unix/native/common/awt/fontpath.c ! test/jdk/sun/awt/font/TestArabicHebrew.java Changeset: 984c87cf Branch: code-reflection Author: Phil Race Date: 2025-11-04 21:47:58 +0000 URL: https://git.openjdk.org/babylon/commit/984c87cf767a46a2c1000a4030dfd91a62b03b4d 8370719: [Linux] Use /etc/os-release values for font configuration file names Reviewed-by: kizune, psadhukhan ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java Changeset: 146f8a83 Branch: code-reflection Author: Phil Race Date: 2025-11-04 21:49:41 +0000 URL: https://git.openjdk.org/babylon/commit/146f8a83f9195ff246e2c3803c79171509df7d24 4954405: Data buffers created with an offset are unusable Reviewed-by: avu, psadhukhan, jdv ! src/java.desktop/share/classes/sun/awt/image/ByteInterleavedRaster.java + test/jdk/java/awt/image/ByteInterleavedRasterOffsetsTest.java Changeset: 463f5dc1 Branch: code-reflection Author: Koushik Thirupattur Committer: Anthony Scarpino Date: 2025-11-04 22:08:33 +0000 URL: https://git.openjdk.org/babylon/commit/463f5dc112386802b9ce0cc985a961ecfd3fbc55 8371296: Refactor tests to use PEM API (Phase 1) - Fix WriteP12Test failure Reviewed-by: ascarpino ! test/jdk/java/security/KeyStore/PKCS12/WriteP12Test.java Changeset: c8f5fd6f Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-04 22:41:17 +0000 URL: https://git.openjdk.org/babylon/commit/c8f5fd6ff3808804eda03c9754698a00dd06449c 8371184: Improve jpackage test coverage for "--app-image" option Reviewed-by: almatvee ! test/jdk/tools/jpackage/helpers-test/jdk/jpackage/test/PackageTestTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/ConfigFilesStasher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageTest.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PropertyFinder.java ! test/jdk/tools/jpackage/macosx/SigningPackageTwoStepTest.java ! test/jdk/tools/jpackage/share/AddLShortcutTest.java ! test/jdk/tools/jpackage/share/AddLauncherTest.java ! test/jdk/tools/jpackage/share/AppContentTest.java ! test/jdk/tools/jpackage/share/AppImagePackageTest.java ! test/jdk/tools/jpackage/share/InstallDirTest.java ! test/jdk/tools/jpackage/share/MultiLauncherTwoPhaseTest.java ! test/jdk/tools/jpackage/share/MultiNameTwoPhaseTest.java ! test/jdk/tools/jpackage/share/PostImageScriptTest.java ! test/jdk/tools/jpackage/share/ServiceTest.java ! test/jdk/tools/jpackage/windows/Win8282351Test.java Changeset: c6a88155 Branch: code-reflection Author: Patricio Chilano Mateo Date: 2025-11-04 23:32:41 +0000 URL: https://git.openjdk.org/babylon/commit/c6a88155b519a5d0b22f6009e75a0e6388601756 8369238: Allow virtual thread preemption on some common class initialization paths Co-authored-by: Alan Bateman Co-authored-by: Fei Yang Co-authored-by: Richard Reingruber Reviewed-by: sspitsyn, dholmes, coleenp, fbredberg ! src/hotspot/cpu/aarch64/continuationFreezeThaw_aarch64.inline.hpp ! src/hotspot/cpu/aarch64/continuationHelper_aarch64.inline.hpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/smallRegisterMap_aarch64.inline.hpp ! src/hotspot/cpu/aarch64/stackChunkFrameStream_aarch64.inline.hpp ! src/hotspot/cpu/aarch64/templateTable_aarch64.cpp ! src/hotspot/cpu/arm/continuationFreezeThaw_arm.inline.hpp ! src/hotspot/cpu/arm/smallRegisterMap_arm.inline.hpp ! src/hotspot/cpu/arm/stackChunkFrameStream_arm.inline.hpp ! src/hotspot/cpu/ppc/continuationFreezeThaw_ppc.inline.hpp ! src/hotspot/cpu/ppc/continuationHelper_ppc.inline.hpp ! src/hotspot/cpu/ppc/frame_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.inline.hpp ! src/hotspot/cpu/ppc/smallRegisterMap_ppc.inline.hpp ! src/hotspot/cpu/ppc/stackChunkFrameStream_ppc.inline.hpp ! src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/riscv/continuationFreezeThaw_riscv.inline.hpp ! src/hotspot/cpu/riscv/continuationHelper_riscv.inline.hpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/interp_masm_riscv.hpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/smallRegisterMap_riscv.inline.hpp ! src/hotspot/cpu/riscv/stackChunkFrameStream_riscv.inline.hpp ! src/hotspot/cpu/riscv/templateTable_riscv.cpp ! src/hotspot/cpu/s390/continuationFreezeThaw_s390.inline.hpp ! src/hotspot/cpu/s390/smallRegisterMap_s390.inline.hpp ! src/hotspot/cpu/s390/stackChunkFrameStream_s390.inline.hpp ! src/hotspot/cpu/x86/continuationFreezeThaw_x86.inline.hpp ! src/hotspot/cpu/x86/continuationHelper_x86.inline.hpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.hpp ! src/hotspot/cpu/x86/smallRegisterMap_x86.inline.hpp ! src/hotspot/cpu/x86/stackChunkFrameStream_x86.inline.hpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/zero/continuationFreezeThaw_zero.inline.hpp ! src/hotspot/cpu/zero/smallRegisterMap_zero.inline.hpp ! src/hotspot/cpu/zero/stackChunkFrameStream_zero.inline.hpp ! src/hotspot/share/cds/aotConstantPoolResolver.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/ci/ciField.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/vmClassMacros.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.hpp ! src/hotspot/share/interpreter/linkResolver.cpp ! src/hotspot/share/interpreter/linkResolver.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceStackChunkKlass.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/stackChunkOop.cpp ! src/hotspot/share/oops/stackChunkOop.hpp ! src/hotspot/share/oops/stackChunkOop.inline.hpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiExport.hpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/runtime/continuation.hpp ! src/hotspot/share/runtime/continuationFreezeThaw.cpp ! src/hotspot/share/runtime/continuationJavaClasses.cpp ! src/hotspot/share/runtime/continuationJavaClasses.hpp ! src/hotspot/share/runtime/continuationJavaClasses.inline.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/javaThread.hpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/smallRegisterMap.inline.hpp ! src/hotspot/share/runtime/stackChunkFrameStream.hpp ! src/hotspot/share/runtime/stackChunkFrameStream.inline.hpp ! src/hotspot/share/runtime/stackValue.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/synchronizer.inline.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/exceptions.cpp ! src/hotspot/share/utilities/exceptions.hpp ! src/java.base/share/classes/java/lang/VirtualThread.java + src/java.base/share/classes/jdk/internal/vm/PreemptedException.java ! test/hotspot/gtest/oops/test_markWord.cpp + test/hotspot/jtreg/serviceability/jvmti/vthread/SingleStepKlassInit/SingleStepKlassInit.java + test/hotspot/jtreg/serviceability/jvmti/vthread/SingleStepKlassInit/libSingleStepKlassInit.cpp ! test/jdk/java/lang/Thread/virtual/JfrEvents.java + test/jdk/java/lang/Thread/virtual/KlassInit.java ! test/jdk/java/lang/Thread/virtual/YieldQueuing.java ! test/jdk/java/lang/Thread/virtual/stress/LotsOfContendedMonitorEnter.java Changeset: 87c2091c Branch: code-reflection Author: Kelvin Nilsen Date: 2025-11-05 00:25:16 +0000 URL: https://git.openjdk.org/babylon/commit/87c2091cd08e58304d0909ffaf9402ca2f0c3b7f 8371141: Shenandoah: Many test timeouts with -XX:-UseTLAB Reviewed-by: xpeng, ysr, wkemper ! test/hotspot/jtreg/ProblemList.txt Changeset: 4e6cadf4 Branch: code-reflection Author: erifan Committer: Hao Sun Date: 2025-11-05 02:19:29 +0000 URL: https://git.openjdk.org/babylon/commit/4e6cadf4550c58b3ff97dfa0cead4b5b1399324c 8369456: [TESTBUG] Fix the test failure of TestSelectFromTwoVectorOp.java on sve2 platforms Reviewed-by: epeter, bkilambi, xgong, haosun ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/vectorapi/TestSelectFromTwoVectorOp.java Changeset: d89c6a77 Branch: code-reflection Author: Phil Race Date: 2025-11-05 03:25:40 +0000 URL: https://git.openjdk.org/babylon/commit/d89c6a77f2bf3e0f820f8f631d82d5bec1b02399 8371304: mismatch in file name and class name for ByteInterleavedRasterOffsetsTest.java Reviewed-by: psadhukhan ! test/jdk/java/awt/image/ByteInterleavedRasterOffsetsTest.java Changeset: 8b536b54 Branch: code-reflection Author: Jan Lahoda Date: 2025-11-05 05:44:09 +0000 URL: https://git.openjdk.org/babylon/commit/8b536b5428d5bf087dc71f3559c3978b13acad16 8369489: Marker annotation on inner class access crashes javac compiler Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java + test/langtools/tools/javac/annotations/typeAnnotations/TypeAnnosOnMemberReferenceTest.java ! test/langtools/tools/javac/parser/JavacParserTest.java Changeset: a0e70c4e Branch: code-reflection Author: Christian Stein Date: 2025-11-05 06:23:26 +0000 URL: https://git.openjdk.org/babylon/commit/a0e70c4e9489fc3d8f35c3aec9423fe0839ed0bd 8370175: State engine terminates when throwing self-caused exception Reviewed-by: jlahoda, fandreuzzi ! src/jdk.jshell/share/classes/jdk/jshell/execution/DirectExecutionControl.java ! test/langtools/jdk/jshell/ExceptionsTest.java Changeset: dddfcd03 Branch: code-reflection Author: Kerem Kat Committer: Aleksey Shipilev Date: 2025-11-05 08:33:14 +0000 URL: https://git.openjdk.org/babylon/commit/dddfcd03aa30514d63eceff707d48bff35e93c56 8334866: Improve Speed of ElfDecoder source search Reviewed-by: shade, chagedorn ! src/hotspot/share/utilities/elfFile.cpp ! src/hotspot/share/utilities/elfFile.hpp Changeset: f5d8bd0d Branch: code-reflection Author: Afshin Zafari Date: 2025-11-05 08:57:02 +0000 URL: https://git.openjdk.org/babylon/commit/f5d8bd0dd50bcd963b4062997aecb4e15249e30d 8370874: [asan] ASAN build fails after JDK-8368365 Reviewed-by: haosun, dholmes, syan, stuefe ! src/hotspot/share/sanitizers/address.cpp Changeset: 0737a562 Branch: code-reflection Author: Robbin Ehn Date: 2025-11-05 09:21:57 +0000 URL: https://git.openjdk.org/babylon/commit/0737a5625269773dcf70b95f8b8ac90b3b6cc444 8370708: RISC-V: Add VerifyStackAtCalls Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/share/opto/chaitin.cpp Changeset: 6a51b51b Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-05 10:12:47 +0000 URL: https://git.openjdk.org/babylon/commit/6a51b51ba13167a15a637507a7fa5d6f988a39e7 8371197: G1: Use void for return type of G1RegionsOnNodes::add Reviewed-by: tschatzl, iwalulya, fandreuzzi ! src/hotspot/share/gc/g1/g1EdenRegions.hpp ! src/hotspot/share/gc/g1/g1RegionsOnNodes.cpp ! src/hotspot/share/gc/g1/g1RegionsOnNodes.hpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.cpp ! src/hotspot/share/gc/g1/g1SurvivorRegions.hpp Changeset: 3e3822ad Branch: code-reflection Author: Ruben Ayrapetyan Committer: Evgeny Astigeevich Date: 2025-11-05 11:55:02 +0000 URL: https://git.openjdk.org/babylon/commit/3e3822ad7eadbb3d86a3b94a6bd858f8c8ef9364 8365047: Remove exception handler stub code in C2 Co-authored-by: Martin Doerr Reviewed-by: mdoerr, dlong, dfenacci, adinn, fyang, aph ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp ! src/hotspot/cpu/aarch64/runtime_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.hpp ! src/hotspot/cpu/arm/runtime_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/runtime_ppc.cpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/runtime_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/runtime_s390.cpp ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.hpp ! src/hotspot/cpu/x86/runtime_x86_64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/os/posix/signals_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/code/nmethod.inline.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Frame.java + test/hotspot/jtreg/runtime/vthread/Deoptimization.java Changeset: f6f87bb6 Branch: code-reflection Author: Volkan Yazici Date: 2025-11-05 13:01:51 +0000 URL: https://git.openjdk.org/babylon/commit/f6f87bb6759c86d941453a1776e8abfdffc48183 8371133: Clarify the purpose of "src/jdk.compiler/share/classes/com/sun/tools/javac/resources/ct.properties" Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/ct.properties Changeset: c9a98169 Branch: code-reflection Author: Samuel Chee Committer: Fei Gao Date: 2025-11-05 13:56:26 +0000 URL: https://git.openjdk.org/babylon/commit/c9a98169cb79df235316cb38a804d539044ea57e 8371205: AArch64: Remove unused cmpxchg* methods Co-authored-by: Samuel Chee Reviewed-by: aph, kbarrett, haosun ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp Changeset: 2dd15cf5 Branch: code-reflection Author: Magnus Ihse Bursie Date: 2025-11-05 13:57:18 +0000 URL: https://git.openjdk.org/babylon/commit/2dd15cf5bf1614e4b74ad9675723562e14ced8ab 8346719: Add relaunchers to the static JDK image for missing executables Reviewed-by: alanb, erikj ! make/Main.gmk ! make/StaticLibs.gmk ! make/common/modules/LauncherCommon.gmk ! make/modules/java.base/Launcher.gmk ! make/modules/jdk.jpackage/Lib.gmk - src/java.base/share/native/launcher/defines.h ! src/java.base/share/native/launcher/main.c + src/java.base/unix/native/launcher/relauncher.c ! src/java.base/unix/native/libjli/java_md.c + src/java.base/windows/native/launcher/relauncher.c ! test/hotspot/jtreg/ProblemList-StaticJdk.txt ! test/jdk/ProblemList-StaticJdk.txt ! test/langtools/ProblemList-StaticJdk.txt ! test/lib-test/ProblemList-StaticJdk.txt Changeset: 973dc3fc Branch: code-reflection Author: EunHyunsu Committer: Daniel Fuchs Date: 2025-11-05 14:57:05 +0000 URL: https://git.openjdk.org/babylon/commit/973dc3fc47b249bb392d277880dcac0940f62771 8371009: HttpClient javadoc synchronous example missing HttpRequest variable declaration Reviewed-by: dfuchs, michaelm ! src/java.net.http/share/classes/java/net/http/HttpClient.java Changeset: b0536f9c Branch: code-reflection Author: Chris Plummer Date: 2025-11-05 15:56:08 +0000 URL: https://git.openjdk.org/babylon/commit/b0536f9c2a6ddfa27be8fad8f53783c6b28d22c9 8370201: Test serviceability/sa/TestJhsdbJstackWithVirtualThread.java fails due to VM warnings Reviewed-by: kevinw, amenkov, sspitsyn ! test/hotspot/jtreg/serviceability/attach/RemovingUnixDomainSocketTest.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbJstackXcompStress.java ! test/hotspot/jtreg/serviceability/sa/JhsdbThreadInfoTest.java ! test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackLock.java ! test/hotspot/jtreg/serviceability/sa/TestJhsdbJstackWithVirtualThread.java Changeset: cf45e09c Branch: code-reflection Author: Chris Plummer Date: 2025-11-05 18:03:22 +0000 URL: https://git.openjdk.org/babylon/commit/cf45e09c388e95b5f11ad08ebdf7f277e968f90b 8371354: Problem list serviceability/sa/TestJhsdbJstackMixedWithXComp.java due to JDK-8371194 Reviewed-by: kevinw ! test/hotspot/jtreg/ProblemList.txt Changeset: 7d93cb73 Branch: code-reflection Author: Phil Race Date: 2025-11-05 18:52:26 +0000 URL: https://git.openjdk.org/babylon/commit/7d93cb73c45d393705504f0637b12512124923a1 8370637: [Windows] Crash if use Graphics after PrintJob.end Reviewed-by: azvegint, psadhukhan, aivanov ! src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java ! src/java.desktop/windows/native/libawt/windows/awt_PrintJob.cpp ! test/jdk/java/awt/PrintJob/PrintJobAfterEndTest.java ! test/jdk/java/awt/print/PrinterJob/PrintAfterEndTest.java Changeset: 2872f815 Branch: code-reflection Author: Dmitry Kulikov Committer: Phil Race Date: 2025-11-05 18:54:34 +0000 URL: https://git.openjdk.org/babylon/commit/2872f815fdbe4a84bbec1cd910e81e2e21fffbdf 8360120: Bundled macOS applications not receiving OpenURL events when launched as subprocess Reviewed-by: kizune, prr ! src/java.desktop/macosx/classes/com/apple/eawt/Application.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/ApplicationDelegate.h ! src/java.desktop/macosx/native/libawt_lwawt/awt/ApplicationDelegate.m Changeset: 5a37374d Branch: code-reflection Author: Phil Race Date: 2025-11-05 18:55:07 +0000 URL: https://git.openjdk.org/babylon/commit/5a37374dcaae0d3939570b33418f772a901df21a 8368576: PrintJob.getGraphics() does not specify behavior after PrintJob.end() Reviewed-by: psadhukhan, tr, serb ! src/java.desktop/share/classes/java/awt/PrintJob.java Changeset: acc8a76d Branch: code-reflection Author: Jeremy Wood Committer: Phil Race Date: 2025-11-05 18:57:03 +0000 URL: https://git.openjdk.org/babylon/commit/acc8a76db2314211dd29a5b84c5bbe73d9055c76 8357034: GifImageDecoder can produce wrong transparent pixels Reviewed-by: jdv, prr ! src/java.desktop/share/classes/sun/awt/image/GifImageDecoder.java ! test/jdk/sun/awt/image/gif/GifBuilder.java ! test/jdk/sun/awt/image/gif/GifComparison.java ! test/jdk/sun/awt/image/gif/GifEmptyBackgroundTest.java + test/jdk/sun/awt/image/gif/GifSavedImageTransparentTest.java Changeset: 1357be98 Branch: code-reflection Author: Ashutosh Mehra Date: 2025-11-05 21:38:34 +0000 URL: https://git.openjdk.org/babylon/commit/1357be98fc7aeb73655ed1a31d0b6fa7a7213c3e 8371178: Preserve fast version of getfield and putfield in AOTCache Reviewed-by: adinn, iklam ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/archiveBuilder.cpp Changeset: d5831ed8 Branch: code-reflection Author: Peyang Committer: Weijun Wang Date: 2025-11-05 22:26:03 +0000 URL: https://git.openjdk.org/babylon/commit/d5831ed866cb3d1cf2c77d7a3e535afc9e2b688b 8357880: Code formatting typo in Cipher.getMaxAllowedParameterSpec Reviewed-by: fandreuzzi, mullan ! src/java.base/share/classes/javax/crypto/Cipher.java Changeset: 188da51f Branch: code-reflection Author: Jaikiran Pai Date: 2025-11-06 04:42:20 +0000 URL: https://git.openjdk.org/babylon/commit/188da51f30e5ca3945fee91fe2e94f0466151c06 8365699: Remove jdk.internal.javac.PreviewFeature.Feature enum values for features finalized in Java 25 or earlier Reviewed-by: vromero, liach ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java Changeset: 3f40f4c3 Branch: code-reflection Author: Ioi Lam Date: 2025-11-06 04:48:29 +0000 URL: https://git.openjdk.org/babylon/commit/3f40f4c362f6ff4d1ec7d513b4690ed5fade3e2a 8370975: OutputAnalyzer.matches() should use Matcher with Pattern.MULTILINE Reviewed-by: stefank ! test/lib-test/jdk/test/lib/process/OutputAnalyzerTest.java ! test/lib/jdk/test/lib/process/OutputAnalyzer.java Changeset: c754e3e0 Branch: code-reflection Author: Volkan Yazici Date: 2025-11-06 06:22:32 +0000 URL: https://git.openjdk.org/babylon/commit/c754e3e095cd367de9d3f69a4afb0c4be53a9342 8368528: HttpClient.Builder.connectTimeout should accept arbitrarily large values Reviewed-by: dfuchs ! src/java.net.http/share/classes/jdk/internal/net/http/HttpQuicConnection.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/Deadline.java + test/jdk/java/net/httpclient/DurationOverflowTest.java + test/jdk/java/net/httpclient/whitebox/DeadlineOverflowTestDriver.java + test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/common/DeadlineOverflowTest.java Changeset: ac9cf5d5 Branch: code-reflection Author: Zihao Lin Committer: Christian Hagedorn Date: 2025-11-06 07:19:14 +0000 URL: https://git.openjdk.org/babylon/commit/ac9cf5d572f7504507117aa15e56c903e1400cf5 8370878: C1: Clean up unnecessary ConversionStub constructor Reviewed-by: chagedorn ! src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp ! src/hotspot/share/c1/c1_CodeStubs.hpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LIR.hpp Changeset: db76479a Branch: code-reflection Author: Matthias Baesken Date: 2025-11-06 08:06:34 +0000 URL: https://git.openjdk.org/babylon/commit/db76479a105cda383f38f5f9857a8642ccf50cfd 8371316: Adjust assertion (GC pause time cannot be smaller than the sum of each phase) in G1GCPhaseTimes::print Reviewed-by: ayang, tschatzl ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp Changeset: 1b3889a4 Branch: code-reflection Author: Matthias Baesken Date: 2025-11-06 08:27:32 +0000 URL: https://git.openjdk.org/babylon/commit/1b3889a47092e018ab9ecb6aaa922046d8d0e916 8354937: Cleanup some sparc related coding in os_linux Reviewed-by: ayang, mdoerr, lucy ! src/hotspot/os/linux/os_linux.cpp Changeset: 913c973c Branch: code-reflection Author: Kim Barrett Date: 2025-11-06 10:14:21 +0000 URL: https://git.openjdk.org/babylon/commit/913c973ca0ffdc19171a56550e8a8f03ac7f4771 8371104: gtests should use wrappers for and Reviewed-by: jrose, tschatzl ! test/hotspot/gtest/metaprogramming/test_enableIf.cpp ! test/hotspot/gtest/riscv/test_assembler_riscv.cpp ! test/hotspot/gtest/utilities/test_align.cpp ! test/hotspot/gtest/utilities/test_count_leading_zeros.cpp ! test/hotspot/gtest/utilities/test_deferredStatic.cpp ! test/hotspot/gtest/utilities/test_enumIterator.cpp ! test/hotspot/gtest/utilities/test_globalDefinitions.cpp ! test/hotspot/gtest/utilities/test_population_count.cpp ! test/hotspot/gtest/utilities/test_powerOfTwo.cpp Changeset: 093e1287 Branch: code-reflection Author: Qizheng Xing Committer: SendaoYan Date: 2025-11-06 10:56:48 +0000 URL: https://git.openjdk.org/babylon/commit/093e128771f3dc01f64a8572de068e9776e38b97 8347499: C2: Make `PhaseIdealLoop` eliminate more redundant safepoints in loops Reviewed-by: epeter, roland ! src/hotspot/share/opto/loopnode.cpp + test/hotspot/jtreg/compiler/loopopts/TestRedundantSafepointElimination.java + test/micro/org/openjdk/bench/vm/compiler/LoopSafepoint.java Changeset: 3930b1d4 Branch: code-reflection Author: Fredrik Bredberg Date: 2025-11-06 12:16:19 +0000 URL: https://git.openjdk.org/babylon/commit/3930b1d4ddda9d56d0fb3626421283c72f4ad7f9 8367982: Unify ObjectSynchronizer and LightweightSynchronizer Reviewed-by: pchilanomate, coleenp ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/arm/c2_MacroAssembler_arm.cpp ! src/hotspot/cpu/arm/interp_masm_arm.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.cpp ! src/hotspot/cpu/arm/macroAssembler_arm.hpp ! src/hotspot/cpu/arm/sharedRuntime_arm.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/interp_masm_ppc_64.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp ! src/hotspot/cpu/riscv/c1_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c2_MacroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/interp_masm_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.cpp ! src/hotspot/cpu/riscv/macroAssembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/sharedRuntime_riscv.cpp ! src/hotspot/cpu/riscv/vm_version_riscv.hpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp ! src/hotspot/cpu/s390/c2_MacroAssembler_s390.cpp ! src/hotspot/cpu/s390/c2_MacroAssembler_s390.hpp ! src/hotspot/cpu/s390/interp_masm_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.cpp ! src/hotspot/cpu/s390/macroAssembler_s390.hpp ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/s390/vm_version_s390.hpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_CodeStubs_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/oops/markWord.hpp ! src/hotspot/share/opto/c2_CodeStubs.hpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/javaThread.cpp - src/hotspot/share/runtime/lightweightSynchronizer.cpp - src/hotspot/share/runtime/lightweightSynchronizer.hpp ! src/hotspot/share/runtime/lockStack.cpp ! src/hotspot/share/runtime/lockStack.inline.hpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/objectMonitor.inline.hpp ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp - src/hotspot/share/runtime/synchronizer.inline.hpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/services/threadService.cpp ! test/hotspot/gtest/runtime/test_lockStack.cpp ! test/hotspot/jtreg/runtime/Monitor/TestRecursiveLocking.java ! test/hotspot/jtreg/runtime/lockStack/TestLockStackCapacity.java ! test/jdk/com/sun/jdi/EATests.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: c173d416 Branch: code-reflection Author: Boris Ulasevich Date: 2025-11-06 12:56:37 +0000 URL: https://git.openjdk.org/babylon/commit/c173d416f749348bee42e1a9436a999700d0f0e8 8359256: AArch64: Use SHA3 GPR intrinsic where it's faster Reviewed-by: eastigeevich, phh ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp Changeset: df414e0d Branch: code-reflection Author: Erik Gahlin Date: 2025-11-06 13:39:57 +0000 URL: https://git.openjdk.org/babylon/commit/df414e0d19c1ed68f151d84dbb481a9dd6c65539 8370884: JFR: Overflow in aggregators Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/query/Function.java Changeset: 2d924ad3 Branch: code-reflection Author: Kerem Kat Committer: Aleksey Shipilev Date: 2025-11-06 15:00:37 +0000 URL: https://git.openjdk.org/babylon/commit/2d924ad3584a0ea8682f47c742dcdfd3be14937d 8351194: Clean up Hotspot SA after 32-bit x86 removal Reviewed-by: cjplummer, shade, ayang, dholmes ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/doc/hsdb.html ! src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.cpp ! src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c ! src/jdk.hotspot.agent/macosx/native/libsaproc/ps_core.c ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HSDB.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/HotSpotAgent.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/Debugger.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86CFrame.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/x86/BsdX86ThreadContext.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/cdbg/CFrame.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxCDebugger.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThreadContextFactory.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86CFrame.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/x86/LinuxX86ThreadContext.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86Thread.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86ThreadContext.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/remote/x86/RemoteX86ThreadFactory.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/win32/coff/DebugVC50X86RegisterEnums.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/x86/X86ThreadContext.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/StackValueCollection.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64CurrentFrameGuess.java + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64Frame.java + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/amd64/AMD64RegisterMap.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdSignals.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/bsd_x86/BsdX86JavaThreadPDAccess.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/linux_amd64/LinuxAMD64JavaThreadPDAccess.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/linux_x86/LinuxSignals.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/linux_x86/LinuxX86JavaThreadPDAccess.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/x86/X86CurrentFrameGuess.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/x86/X86Frame.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/x86/X86JavaCallWrapper.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/x86/X86RegisterMap.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java Changeset: a5864582 Branch: code-reflection Author: Archie Cobbs Date: 2025-11-06 15:28:01 +0000 URL: https://git.openjdk.org/babylon/commit/a5864582da7e19b941bf55c294a414bc1a0c7a84 8155591: Misleading warning when not overriding close method in interface extending AutoCloseable Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/TryWithResources/InterruptedExceptionTest.java + test/langtools/tools/javac/TryWithResources/InterruptedExceptionTest2.java + test/langtools/tools/javac/TryWithResources/InterruptedExceptionTest2.out ! test/langtools/tools/javac/diags/examples/TryResourceThrowsInterruptedExc.java Changeset: 13211865 Branch: code-reflection Author: Brian Burkhalter Date: 2025-11-06 16:01:10 +0000 URL: https://git.openjdk.org/babylon/commit/1321186547bddd3f8615cf5d110489ec383f47ab 8367943: PipedOutputStream write(0, 0) successful after close() Reviewed-by: rriggs, jpai ! src/java.base/share/classes/java/io/PipedOutputStream.java ! test/jdk/java/io/PipedOutputStream/WriteAfterClose.java Changeset: 1f08a3ed Branch: code-reflection Author: Brian Burkhalter Date: 2025-11-06 16:01:37 +0000 URL: https://git.openjdk.org/babylon/commit/1f08a3ede2445fb05d9700a1293d681ca89cbf5b 8355342: File.getCanonicalPath on Java 24 resolves paths on network drives to UNC format Reviewed-by: alanb ! src/java.base/windows/classes/java/io/WinNTFileSystem.java ! src/java.base/windows/native/libjava/WinNTFileSystem_md.c ! src/java.base/windows/native/libjava/canonicalize_md.c ! test/jdk/java/io/File/GetCanonicalPath.java Changeset: c272aca8 Branch: code-reflection Author: EunHyunsu Committer: Daniel Fuchs Date: 2025-11-06 16:13:34 +0000 URL: https://git.openjdk.org/babylon/commit/c272aca8a0a2720365159684bed35c0c31e8778f 8371091: Improve the exception message of NullPointerException thrown by the methods in the default implementation of HttpRequest.Builder Reviewed-by: dfuchs ! src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestBuilderImpl.java ! test/jdk/java/net/httpclient/RequestBuilderTest.java Changeset: 0026967e Branch: code-reflection Author: Justin Lu Date: 2025-11-06 17:12:49 +0000 URL: https://git.openjdk.org/babylon/commit/0026967e030fd4557b5365870d55f863fe2a4512 8370420: HostLocaleProviderAdapter_md.c from libjava can use GetLocaleInfoEx, GetCalendarInfoEx, EnumCalendarInfoExEx directly Reviewed-by: naoto, mbaesken, bpb ! src/java.base/windows/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java ! src/java.base/windows/native/libjava/HostLocaleProviderAdapter_md.c Changeset: 4445a8e3 Branch: code-reflection Author: Nityanand Rai Committer: Paul Hohensee Date: 2025-11-06 17:25:59 +0000 URL: https://git.openjdk.org/babylon/commit/4445a8e3f5cac6738b7984716c867dcf9780fe0a 8369323: Fix typos in vmTestbase/.../Concurrent.java Reviewed-by: wkemper, phh, lmesnik, shade, syan ! test/hotspot/jtreg/vmTestbase/vm/gc/concurrent/Concurrent.java Changeset: 9cc542eb Branch: code-reflection Author: Xiaolong Peng Date: 2025-11-06 18:57:52 +0000 URL: https://git.openjdk.org/babylon/commit/9cc542ebcb81552fe8c32a8cc3c63332853e5127 8370850: Shenandoah: Simplify collector allocation to save unnecessary region iteration Reviewed-by: wkemper ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp Changeset: cad73d39 Branch: code-reflection Author: William Kemper Date: 2025-11-06 19:37:44 +0000 URL: https://git.openjdk.org/babylon/commit/cad73d39762974776dd6fda5efe4e2a271d69f14 8370041: GenShen: Filter young pointers from thread local SATB buffers when only marking old Reviewed-by: ysr, kdnilsen ! src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp ! src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.hpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp Changeset: 90ccdf29 Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-06 20:20:22 +0000 URL: https://git.openjdk.org/babylon/commit/90ccdf2986b0e3705997fe31a23fd53c88a1bfaf 8371367: Replace remaining JvmtiJavaThreadEventTransition with JVMTI_JAVA_THREAD_EVENT_CALLBACK_BLOCK Reviewed-by: sspitsyn, cjplummer ! src/hotspot/share/prims/jvmtiExport.cpp Changeset: 8a0c47d4 Branch: code-reflection Author: Alexander Zvegintsev Date: 2025-11-06 20:24:20 +0000 URL: https://git.openjdk.org/babylon/commit/8a0c47d4ba4db523d94689b3ac347e9cd35183ce 8371225: Missing release of GDK lock in Java_sun_awt_X11_GtkFileDialogPeer_run() Reviewed-by: aivanov, serb ! src/java.desktop/unix/native/libawt_xawt/awt/sun_awt_X11_GtkFileDialogPeer.c Changeset: 87966112 Branch: code-reflection Author: Matias Saavedra Silva Date: 2025-11-06 21:03:54 +0000 URL: https://git.openjdk.org/babylon/commit/8796611206438c6fe8bf0cba87dca089d9da2e30 8272160: Avoid using 32-bit counters in CDS code Reviewed-by: iklam, kvn ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/archiveUtils.hpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cdsHeapVerifier.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp Changeset: e34a8318 Branch: code-reflection Author: Rui Li Committer: Xiaolong Peng Date: 2025-11-06 23:46:50 +0000 URL: https://git.openjdk.org/babylon/commit/e34a831814996be3e0a2df86b11b1718a76ea558 8261743: Shenandoah: enable String deduplication with compact heuristics Reviewed-by: shade, wkemper ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp Changeset: 866faa9d Branch: code-reflection Author: Volkan Yazici Date: 2025-11-07 08:15:42 +0000 URL: https://git.openjdk.org/babylon/commit/866faa9d40ab336e4c4861a55edc4c91d8aa0c74 8366577: Deprecate java.net.Socket::setPerformancePreferences Reviewed-by: dfuchs, alanb, jpai ! src/java.base/share/classes/java/net/ServerSocket.java ! src/java.base/share/classes/java/net/Socket.java ! src/java.base/share/classes/java/net/SocketImpl.java ! src/java.base/share/classes/sun/security/ssl/BaseSSLSocketImpl.java Changeset: 205a163a Branch: code-reflection Author: Jan Lahoda Date: 2025-11-07 09:06:51 +0000 URL: https://git.openjdk.org/babylon/commit/205a163a90bb263d403476c28203836189e337a7 8340840: jshell ClassFormatError when making inner class static 8368999: jshell crash when existing sealed class is updated to also be abstract Reviewed-by: mcimadamore, asotona, liach ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.jshell/share/classes/jdk/jshell/execution/JdiExecutionControl.java ! test/langtools/jdk/jshell/ReplaceTest.java + test/langtools/tools/javac/diags/examples/InconsistentInnerClasses/InconsistentInnerClasses.java = test/langtools/tools/javac/diags/examples/InconsistentInnerClasses/classpath/p/Other.java = test/langtools/tools/javac/diags/examples/InconsistentInnerClasses/classpath/p/Test.java + test/langtools/tools/javac/recovery/SourceAndInnerClassInconsistency.java Changeset: 48bbc950 Branch: code-reflection Author: Tobias Hartmann Date: 2025-11-07 09:17:21 +0000 URL: https://git.openjdk.org/babylon/commit/48bbc950f11113a57ea03f877bc3e526982c0eef 8371388: [BACKOUT] JDK-8365047: Remove exception handler stub code in C2 Reviewed-by: chagedorn, epeter ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp ! src/hotspot/cpu/aarch64/runtime_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.hpp ! src/hotspot/cpu/arm/runtime_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/runtime_ppc.cpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.cpp ! src/hotspot/cpu/riscv/c1_LIRAssembler_riscv.hpp ! src/hotspot/cpu/riscv/riscv.ad ! src/hotspot/cpu/riscv/runtime_riscv.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/runtime_s390.cpp ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.hpp ! src/hotspot/cpu/x86/runtime_x86_64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/os/posix/signals_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/code/nmethod.inline.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Frame.java - test/hotspot/jtreg/runtime/vthread/Deoptimization.java Changeset: 3d6824e8 Branch: code-reflection Author: Tobias Hartmann Date: 2025-11-07 09:19:18 +0000 URL: https://git.openjdk.org/babylon/commit/3d6824e802bda6efed40f7613eda7c8c0d84e673 8371432: [BACKOUT] 8359256: AArch64: Use SHA3 GPR intrinsic where it's faster Reviewed-by: mchevalier, epeter, syan ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp Changeset: 4233178a Branch: code-reflection Author: Jayathirth D V Date: 2025-11-07 09:45:48 +0000 URL: https://git.openjdk.org/babylon/commit/4233178af20f07ade32322fad931c68e1c4251cf 8368729: Add appropriate checks in java.awt.image.Kernel constructor Reviewed-by: azvegint, prr, kizune ! src/java.desktop/share/classes/java/awt/image/Kernel.java + test/jdk/java/awt/image/ConvolveOp/KernelInitialisationTest.java Changeset: 428b553a Branch: code-reflection Author: Christian Stein Date: 2025-11-07 09:55:16 +0000 URL: https://git.openjdk.org/babylon/commit/428b553ad4ee79e5d56f51232c27ed0b003abe18 8278856: javac documentation does not mention use of Manifest class-path attribute Reviewed-by: jlahoda ! src/jdk.compiler/share/man/javac.md Changeset: 59d23095 Branch: code-reflection Author: Fei Yang Date: 2025-11-07 10:10:14 +0000 URL: https://git.openjdk.org/babylon/commit/59d23095789bbb6d4e466bcbeb82089b17d78eae 8371385: compiler/escapeAnalysis/TestRematerializeObjects.java fails in case of -XX:-UseUnalignedAccesses Reviewed-by: chagedorn, dfenacci ! test/hotspot/jtreg/compiler/escapeAnalysis/TestRematerializeObjects.java Changeset: 167c952b Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-07 10:48:07 +0000 URL: https://git.openjdk.org/babylon/commit/167c952bb0fefb5acc9782f4f4474d92097c93f8 8371369: Parallel: Relax precondition of PSOldGen::expand_and_allocate Reviewed-by: eosterlund, fandreuzzi ! src/hotspot/share/gc/parallel/mutableSpace.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: d5803aa7 Branch: code-reflection Author: Jorn Vernee Date: 2025-11-07 14:06:37 +0000 URL: https://git.openjdk.org/babylon/commit/d5803aa78a84caccd5c3f14ac788817c5a3b4725 8371315: java/foreign/sharedclosejfr/TestSharedCloseJFR.java failed with -XX:-TieredCompilation Reviewed-by: mcimadamore, syan ! test/jdk/java/foreign/sharedclosejfr/TestSharedCloseJFR.java Changeset: c8656449 Branch: code-reflection Author: Erik ?sterlund Date: 2025-11-07 15:28:51 +0000 URL: https://git.openjdk.org/babylon/commit/c8656449c28581ae9c3d815105e338e42253bb43 8365932: Implementation of JEP 516: Ahead-of-Time Object Caching with Any GC Co-authored-by: Axel Boldt-Christmas Co-authored-by: Joel Sikstr?m Co-authored-by: Stefan Karlsson Reviewed-by: aboldtch, iklam, kvn ! make/Images.gmk ! src/hotspot/share/cds/aotMapLogger.cpp ! src/hotspot/share/cds/aotMapLogger.hpp + src/hotspot/share/cds/aotMappedHeapLoader.cpp + src/hotspot/share/cds/aotMappedHeapLoader.hpp + src/hotspot/share/cds/aotMappedHeapLoader.inline.hpp + src/hotspot/share/cds/aotMappedHeapWriter.cpp + src/hotspot/share/cds/aotMappedHeapWriter.hpp ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/aotReferenceObjSupport.cpp + src/hotspot/share/cds/aotStreamedHeapLoader.cpp + src/hotspot/share/cds/aotStreamedHeapLoader.hpp + src/hotspot/share/cds/aotStreamedHeapWriter.cpp + src/hotspot/share/cds/aotStreamedHeapWriter.hpp + src/hotspot/share/cds/aotThread.cpp + src/hotspot/share/cds/aotThread.hpp ! src/hotspot/share/cds/archiveBuilder.cpp ! src/hotspot/share/cds/archiveBuilder.hpp - src/hotspot/share/cds/archiveHeapLoader.cpp - src/hotspot/share/cds/archiveHeapLoader.hpp - src/hotspot/share/cds/archiveHeapLoader.inline.hpp - src/hotspot/share/cds/archiveHeapWriter.cpp - src/hotspot/share/cds/archiveHeapWriter.hpp ! src/hotspot/share/cds/archiveUtils.cpp ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/cdsEnumKlass.cpp ! src/hotspot/share/cds/cdsHeapVerifier.cpp ! src/hotspot/share/cds/cds_globals.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp + src/hotspot/share/cds/heapShared.inline.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/classfile/classLoaderDataShared.cpp ! src/hotspot/share/classfile/classLoaderDataShared.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/classfile/moduleEntry.hpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/stringTable.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/vmClasses.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupConfig.cpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/z/zArguments.cpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/gc/z/zDirector.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/objArrayOop.hpp ! src/hotspot/share/oops/oopsHierarchy.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/javaThread.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/safepointVerifiers.cpp ! src/hotspot/share/runtime/safepointVerifiers.hpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/threads.cpp ! src/hotspot/share/utilities/exceptions.cpp ! src/hotspot/share/utilities/macros.hpp ! test/hotspot/jtreg/ProblemList-AotJdk.txt ! test/hotspot/jtreg/TEST.ROOT ! test/hotspot/jtreg/TEST.groups ! test/hotspot/jtreg/gc/TestPLABAdaptToMinTLABSize.java ! test/hotspot/jtreg/gc/stress/gcbasher/TestGCBasherWithZ.java ! test/hotspot/jtreg/runtime/cds/AOTMapTest.java ! test/hotspot/jtreg/runtime/cds/SharedStrings.java ! test/hotspot/jtreg/runtime/cds/SharedStringsDedup.java ! test/hotspot/jtreg/runtime/cds/SharedStringsRunAuto.java ! test/hotspot/jtreg/runtime/cds/SharedSymbolTableBucketSize.java ! test/hotspot/jtreg/runtime/cds/TestDefaultArchiveLoading.java ! test/hotspot/jtreg/runtime/cds/appcds/TestParallelGCWithCDS.java ! test/hotspot/jtreg/runtime/cds/appcds/TestSerialGCWithCDS.java + test/hotspot/jtreg/runtime/cds/appcds/TestZGCWithAOTHeap.java - test/hotspot/jtreg/runtime/cds/appcds/aotClassLinking/AOTCacheWithZGC.java ! test/hotspot/jtreg/runtime/cds/appcds/aotCode/AOTCodeCompressedOopsTest.java ! test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/ExerciseGC.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/FlagCombo.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/IncompatibleOptions.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/InternSharedString.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/LargePages.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsBasic.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsBasicPlus.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsHumongous.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsStress.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsUtils.java ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsWbTest.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbPrintAll.java ! test/jdk/TEST.ROOT ! test/jtreg-ext/requires/VMProps.java ! test/lib/jdk/test/whitebox/WhiteBox.java Changeset: 35491038 Branch: code-reflection Author: Harshitha Onkar Date: 2025-11-07 17:48:27 +0000 URL: https://git.openjdk.org/babylon/commit/354910381a9319723d43a6182269b5449c02a527 8353755: Add a helper method to Util - findComponent() Reviewed-by: aivanov, tr ! test/jdk/javax/swing/regtesthelpers/Util.java Changeset: a90fc266 Branch: code-reflection Author: Roger Riggs Date: 2025-11-07 17:48:49 +0000 URL: https://git.openjdk.org/babylon/commit/a90fc2661a7c11077ea17d37563dfb3dfba28016 8371421: [AIX] new test ProcessCloseTest fails Reviewed-by: mdoerr ! test/jdk/java/lang/Process/ProcessCloseTest.java Changeset: 9bc23608 Branch: code-reflection Author: Harshitha Onkar Date: 2025-11-07 18:41:43 +0000 URL: https://git.openjdk.org/babylon/commit/9bc23608fb5719c3e977b5839efed5bc3f64a268 8371364: Refactor javax/swing/JFileChooser/FileSizeCheck.java to use Util.findComponent() Reviewed-by: aivanov ! test/jdk/javax/swing/JFileChooser/FileSizeCheck.java Changeset: 2c3c4707 Branch: code-reflection Author: Naoto Sato Date: 2025-11-07 19:33:21 +0000 URL: https://git.openjdk.org/babylon/commit/2c3c4707c0ac7f4432ada9621f4b2e5fe4aef51f 8354548: Update CLDR to Version 48.0 Reviewed-by: joehw, jlu ! make/data/cldr/LICENSE ! make/data/cldr/common/bcp47/calendar.xml ! make/data/cldr/common/bcp47/number.xml ! make/data/cldr/common/bcp47/timezone.xml ! make/data/cldr/common/dtd/cldrTest.dtd ! make/data/cldr/common/dtd/ldml.dtd ! make/data/cldr/common/dtd/ldml.xsd ! make/data/cldr/common/dtd/ldmlBCP47.dtd ! make/data/cldr/common/dtd/ldmlBCP47.xsd ! make/data/cldr/common/dtd/ldmlOpenOffice.dtd ! make/data/cldr/common/dtd/ldmlSupplemental.dtd ! make/data/cldr/common/dtd/ldmlSupplemental.xsd ! make/data/cldr/common/main/ab.xml ! make/data/cldr/common/main/af.xml ! make/data/cldr/common/main/ak.xml ! make/data/cldr/common/main/am.xml ! make/data/cldr/common/main/an.xml ! make/data/cldr/common/main/ar.xml ! make/data/cldr/common/main/ar_SA.xml ! make/data/cldr/common/main/as.xml ! make/data/cldr/common/main/asa.xml ! make/data/cldr/common/main/ast.xml ! make/data/cldr/common/main/az.xml ! make/data/cldr/common/main/az_Cyrl.xml ! make/data/cldr/common/main/ba.xml ! make/data/cldr/common/main/bal.xml ! make/data/cldr/common/main/bal_Latn.xml ! make/data/cldr/common/main/bas.xml ! make/data/cldr/common/main/be.xml ! make/data/cldr/common/main/be_TARASK.xml ! make/data/cldr/common/main/bew.xml ! make/data/cldr/common/main/bg.xml ! make/data/cldr/common/main/blo.xml ! make/data/cldr/common/main/bm_Nkoo.xml ! make/data/cldr/common/main/bn.xml ! make/data/cldr/common/main/bn_IN.xml + make/data/cldr/common/main/bqi.xml + make/data/cldr/common/main/bqi_IR.xml ! make/data/cldr/common/main/br.xml ! make/data/cldr/common/main/brx.xml ! make/data/cldr/common/main/bs.xml ! make/data/cldr/common/main/bs_Cyrl.xml + make/data/cldr/common/main/bua.xml + make/data/cldr/common/main/bua_RU.xml ! make/data/cldr/common/main/ca.xml ! make/data/cldr/common/main/ca_ES_VALENCIA.xml ! make/data/cldr/common/main/ccp.xml ! make/data/cldr/common/main/ce.xml ! make/data/cldr/common/main/ceb.xml ! make/data/cldr/common/main/chr.xml ! make/data/cldr/common/main/ckb.xml ! make/data/cldr/common/main/co.xml ! make/data/cldr/common/main/cop.xml ! make/data/cldr/common/main/cs.xml ! make/data/cldr/common/main/csw.xml ! make/data/cldr/common/main/cu.xml ! make/data/cldr/common/main/cv.xml ! make/data/cldr/common/main/cy.xml ! make/data/cldr/common/main/da.xml ! make/data/cldr/common/main/de.xml ! make/data/cldr/common/main/de_AT.xml ! make/data/cldr/common/main/de_CH.xml ! make/data/cldr/common/main/de_LI.xml ! make/data/cldr/common/main/de_LU.xml ! make/data/cldr/common/main/doi.xml ! make/data/cldr/common/main/dsb.xml ! make/data/cldr/common/main/dua.xml ! make/data/cldr/common/main/dv.xml ! make/data/cldr/common/main/dyo.xml ! make/data/cldr/common/main/dz.xml ! make/data/cldr/common/main/ee.xml ! make/data/cldr/common/main/el.xml ! make/data/cldr/common/main/en.xml ! make/data/cldr/common/main/en_001.xml ! make/data/cldr/common/main/en_150.xml ! make/data/cldr/common/main/en_AE.xml ! make/data/cldr/common/main/en_AT.xml ! make/data/cldr/common/main/en_AU.xml ! make/data/cldr/common/main/en_CA.xml ! make/data/cldr/common/main/en_CH.xml + make/data/cldr/common/main/en_EE.xml ! make/data/cldr/common/main/en_GB.xml + make/data/cldr/common/main/en_GE.xml ! make/data/cldr/common/main/en_IN.xml + make/data/cldr/common/main/en_JP.xml + make/data/cldr/common/main/en_LT.xml + make/data/cldr/common/main/en_LV.xml ! make/data/cldr/common/main/en_MH.xml ! make/data/cldr/common/main/en_MP.xml ! make/data/cldr/common/main/en_MV.xml ! make/data/cldr/common/main/en_NL.xml ! make/data/cldr/common/main/en_PL.xml ! make/data/cldr/common/main/en_PT.xml ! make/data/cldr/common/main/en_RO.xml ! make/data/cldr/common/main/en_SI.xml ! make/data/cldr/common/main/en_SK.xml ! make/data/cldr/common/main/en_Shaw.xml + make/data/cldr/common/main/en_UA.xml ! make/data/cldr/common/main/en_US_POSIX.xml ! make/data/cldr/common/main/eo.xml ! make/data/cldr/common/main/es.xml ! make/data/cldr/common/main/es_419.xml ! make/data/cldr/common/main/es_AR.xml ! make/data/cldr/common/main/es_BO.xml ! make/data/cldr/common/main/es_CL.xml ! make/data/cldr/common/main/es_CO.xml ! make/data/cldr/common/main/es_CR.xml ! make/data/cldr/common/main/es_DO.xml ! make/data/cldr/common/main/es_EC.xml ! make/data/cldr/common/main/es_GQ.xml ! make/data/cldr/common/main/es_GT.xml ! make/data/cldr/common/main/es_HN.xml ! make/data/cldr/common/main/es_MX.xml ! make/data/cldr/common/main/es_NI.xml ! make/data/cldr/common/main/es_PA.xml ! make/data/cldr/common/main/es_PE.xml ! make/data/cldr/common/main/es_PY.xml ! make/data/cldr/common/main/es_US.xml ! make/data/cldr/common/main/es_UY.xml ! make/data/cldr/common/main/es_VE.xml ! make/data/cldr/common/main/et.xml ! make/data/cldr/common/main/eu.xml ! make/data/cldr/common/main/ewo.xml ! make/data/cldr/common/main/fa.xml ! make/data/cldr/common/main/fa_AF.xml ! make/data/cldr/common/main/ff.xml ! make/data/cldr/common/main/ff_Adlm.xml ! make/data/cldr/common/main/fi.xml ! make/data/cldr/common/main/fil.xml ! make/data/cldr/common/main/fo.xml ! make/data/cldr/common/main/fr.xml ! make/data/cldr/common/main/fr_CA.xml ! make/data/cldr/common/main/frr.xml ! make/data/cldr/common/main/fur.xml ! make/data/cldr/common/main/fy.xml ! make/data/cldr/common/main/ga.xml ! make/data/cldr/common/main/gaa.xml ! make/data/cldr/common/main/gd.xml ! make/data/cldr/common/main/gl.xml ! make/data/cldr/common/main/gsw.xml ! make/data/cldr/common/main/gu.xml ! make/data/cldr/common/main/ha.xml ! make/data/cldr/common/main/haw.xml ! make/data/cldr/common/main/he.xml ! make/data/cldr/common/main/hi.xml ! make/data/cldr/common/main/hi_Latn.xml ! make/data/cldr/common/main/hr.xml ! make/data/cldr/common/main/hsb.xml ! make/data/cldr/common/main/hu.xml ! make/data/cldr/common/main/hy.xml ! make/data/cldr/common/main/ia.xml ! make/data/cldr/common/main/id.xml ! make/data/cldr/common/main/ie.xml ! make/data/cldr/common/main/ig.xml ! make/data/cldr/common/main/ii.xml ! make/data/cldr/common/main/is.xml ! make/data/cldr/common/main/it.xml ! make/data/cldr/common/main/it_CH.xml ! make/data/cldr/common/main/ja.xml ! make/data/cldr/common/main/jgo.xml ! make/data/cldr/common/main/jv.xml ! make/data/cldr/common/main/ka.xml ! make/data/cldr/common/main/kaa.xml ! make/data/cldr/common/main/kab.xml ! make/data/cldr/common/main/kea.xml + make/data/cldr/common/main/kek.xml + make/data/cldr/common/main/kek_GT.xml ! make/data/cldr/common/main/kgp.xml ! make/data/cldr/common/main/kk.xml ! make/data/cldr/common/main/kk_Arab.xml ! make/data/cldr/common/main/kl.xml ! make/data/cldr/common/main/km.xml ! make/data/cldr/common/main/kn.xml ! make/data/cldr/common/main/ko.xml ! make/data/cldr/common/main/kok.xml ! make/data/cldr/common/main/kok_Latn.xml ! make/data/cldr/common/main/ks.xml ! make/data/cldr/common/main/ks_Deva.xml ! make/data/cldr/common/main/ksf.xml ! make/data/cldr/common/main/ksh.xml ! make/data/cldr/common/main/ku.xml + make/data/cldr/common/main/ku_Arab.xml + make/data/cldr/common/main/ku_Arab_IQ.xml + make/data/cldr/common/main/ku_Arab_IR.xml + make/data/cldr/common/main/ku_Latn.xml + make/data/cldr/common/main/ku_Latn_IQ.xml + make/data/cldr/common/main/ku_Latn_SY.xml + make/data/cldr/common/main/ku_Latn_TR.xml ! make/data/cldr/common/main/kxv.xml ! make/data/cldr/common/main/kxv_Deva.xml ! make/data/cldr/common/main/kxv_Orya.xml ! make/data/cldr/common/main/kxv_Telu.xml ! make/data/cldr/common/main/ky.xml ! make/data/cldr/common/main/la.xml ! make/data/cldr/common/main/lb.xml ! make/data/cldr/common/main/lij.xml ! make/data/cldr/common/main/lld.xml ! make/data/cldr/common/main/lmo.xml ! make/data/cldr/common/main/ln.xml ! make/data/cldr/common/main/lo.xml ! make/data/cldr/common/main/lt.xml ! make/data/cldr/common/main/luy.xml ! make/data/cldr/common/main/lv.xml + make/data/cldr/common/main/lzz.xml + make/data/cldr/common/main/lzz_TR.xml ! make/data/cldr/common/main/mai.xml ! make/data/cldr/common/main/mg.xml ! make/data/cldr/common/main/mgo.xml ! make/data/cldr/common/main/mi.xml ! make/data/cldr/common/main/mk.xml ! make/data/cldr/common/main/ml.xml ! make/data/cldr/common/main/mn.xml ! make/data/cldr/common/main/mr.xml ! make/data/cldr/common/main/ms.xml ! make/data/cldr/common/main/ms_Arab.xml ! make/data/cldr/common/main/mt.xml + make/data/cldr/common/main/mww.xml + make/data/cldr/common/main/mww_Hmnp.xml + make/data/cldr/common/main/mww_Hmnp_US.xml ! make/data/cldr/common/main/my.xml ! make/data/cldr/common/main/nds.xml ! make/data/cldr/common/main/ne.xml ! make/data/cldr/common/main/nl.xml ! make/data/cldr/common/main/nmg.xml ! make/data/cldr/common/main/nn.xml ! make/data/cldr/common/main/no.xml ! make/data/cldr/common/main/nqo.xml ! make/data/cldr/common/main/nso.xml ! make/data/cldr/common/main/oc.xml ! make/data/cldr/common/main/oc_ES.xml + make/data/cldr/common/main/oka.xml + make/data/cldr/common/main/oka_CA.xml + make/data/cldr/common/main/oka_US.xml ! make/data/cldr/common/main/om.xml ! make/data/cldr/common/main/or.xml ! make/data/cldr/common/main/pa.xml ! make/data/cldr/common/main/pap.xml ! make/data/cldr/common/main/pcm.xml + make/data/cldr/common/main/pi.xml + make/data/cldr/common/main/pi_Latn.xml + make/data/cldr/common/main/pi_Latn_GB.xml ! make/data/cldr/common/main/pl.xml + make/data/cldr/common/main/pms.xml + make/data/cldr/common/main/pms_IT.xml ! make/data/cldr/common/main/prg.xml ! make/data/cldr/common/main/ps.xml ! make/data/cldr/common/main/ps_PK.xml ! make/data/cldr/common/main/pt.xml ! make/data/cldr/common/main/pt_PT.xml ! make/data/cldr/common/main/qu.xml ! make/data/cldr/common/main/rif.xml ! make/data/cldr/common/main/rm.xml ! make/data/cldr/common/main/ro.xml ! make/data/cldr/common/main/root.xml ! make/data/cldr/common/main/ru.xml ! make/data/cldr/common/main/rw.xml ! make/data/cldr/common/main/sa.xml ! make/data/cldr/common/main/sah.xml ! make/data/cldr/common/main/sat.xml ! make/data/cldr/common/main/sc.xml ! make/data/cldr/common/main/scn.xml ! make/data/cldr/common/main/sd.xml ! make/data/cldr/common/main/sd_Deva.xml ! make/data/cldr/common/main/se.xml ! make/data/cldr/common/main/se_FI.xml ! make/data/cldr/common/main/sg.xml + make/data/cldr/common/main/sgs.xml + make/data/cldr/common/main/sgs_LT.xml ! make/data/cldr/common/main/shn.xml ! make/data/cldr/common/main/si.xml ! make/data/cldr/common/main/sk.xml ! make/data/cldr/common/main/sl.xml ! make/data/cldr/common/main/smn.xml ! make/data/cldr/common/main/so.xml ! make/data/cldr/common/main/sq.xml ! make/data/cldr/common/main/sr.xml ! make/data/cldr/common/main/sr_Cyrl_BA.xml ! make/data/cldr/common/main/sr_Cyrl_ME.xml ! make/data/cldr/common/main/sr_Latn.xml ! make/data/cldr/common/main/sr_Latn_BA.xml ! make/data/cldr/common/main/sr_Latn_ME.xml ! make/data/cldr/common/main/st.xml ! make/data/cldr/common/main/su.xml + make/data/cldr/common/main/suz.xml + make/data/cldr/common/main/suz_Deva.xml + make/data/cldr/common/main/suz_Deva_NP.xml + make/data/cldr/common/main/suz_Sunu.xml + make/data/cldr/common/main/suz_Sunu_NP.xml ! make/data/cldr/common/main/sv.xml ! make/data/cldr/common/main/sv_AX.xml ! make/data/cldr/common/main/sv_FI.xml ! make/data/cldr/common/main/sw.xml ! make/data/cldr/common/main/sw_KE.xml ! make/data/cldr/common/main/syr.xml ! make/data/cldr/common/main/szl.xml ! make/data/cldr/common/main/ta.xml ! make/data/cldr/common/main/ta_MY.xml ! make/data/cldr/common/main/ta_SG.xml ! make/data/cldr/common/main/te.xml ! make/data/cldr/common/main/tg.xml ! make/data/cldr/common/main/th.xml ! make/data/cldr/common/main/ti.xml ! make/data/cldr/common/main/ti_ER.xml ! make/data/cldr/common/main/tk.xml ! make/data/cldr/common/main/tn.xml ! make/data/cldr/common/main/to.xml ! make/data/cldr/common/main/tok.xml ! make/data/cldr/common/main/tpi.xml ! make/data/cldr/common/main/tr.xml ! make/data/cldr/common/main/trv.xml ! make/data/cldr/common/main/trw.xml ! make/data/cldr/common/main/tt.xml ! make/data/cldr/common/main/tyv.xml ! make/data/cldr/common/main/tzm.xml ! make/data/cldr/common/main/ug.xml ! make/data/cldr/common/main/uk.xml ! make/data/cldr/common/main/ur.xml ! make/data/cldr/common/main/ur_IN.xml ! make/data/cldr/common/main/uz.xml ! make/data/cldr/common/main/uz_Arab.xml ! make/data/cldr/common/main/uz_Cyrl.xml ! make/data/cldr/common/main/vec.xml ! make/data/cldr/common/main/vi.xml ! make/data/cldr/common/main/vmw.xml ! make/data/cldr/common/main/vo.xml ! make/data/cldr/common/main/wae.xml ! make/data/cldr/common/main/wal.xml ! make/data/cldr/common/main/wo.xml ! make/data/cldr/common/main/xh.xml ! make/data/cldr/common/main/xnr.xml ! make/data/cldr/common/main/xog.xml ! make/data/cldr/common/main/yav.xml ! make/data/cldr/common/main/yo.xml ! make/data/cldr/common/main/yo_BJ.xml ! make/data/cldr/common/main/yrl.xml ! make/data/cldr/common/main/yrl_CO.xml ! make/data/cldr/common/main/yrl_VE.xml ! make/data/cldr/common/main/yue.xml ! make/data/cldr/common/main/yue_Hans.xml ! make/data/cldr/common/main/zh.xml ! make/data/cldr/common/main/zh_Hans_MY.xml ! make/data/cldr/common/main/zh_Hant.xml ! make/data/cldr/common/main/zh_Hant_HK.xml ! make/data/cldr/common/main/zu.xml ! make/data/cldr/common/properties/coverageLevels.txt ! make/data/cldr/common/supplemental/attributeValueValidity.xml ! make/data/cldr/common/supplemental/coverageLevels.xml ! make/data/cldr/common/supplemental/dayPeriods.xml ! make/data/cldr/common/supplemental/languageGroup.xml ! make/data/cldr/common/supplemental/languageInfo.xml ! make/data/cldr/common/supplemental/likelySubtags.xml ! make/data/cldr/common/supplemental/metaZones.xml ! make/data/cldr/common/supplemental/numberingSystems.xml ! make/data/cldr/common/supplemental/ordinals.xml ! make/data/cldr/common/supplemental/plurals.xml ! make/data/cldr/common/supplemental/rgScope.xml ! make/data/cldr/common/supplemental/subdivisions.xml ! make/data/cldr/common/supplemental/supplementalData.xml ! make/data/cldr/common/supplemental/supplementalMetadata.xml ! make/data/cldr/common/supplemental/units.xml ! make/data/cldr/common/supplemental/windowsZones.xml ! make/jdk/src/classes/build/tools/cldrconverter/Bundle.java ! make/jdk/src/classes/build/tools/cldrconverter/CopyrightHeaders.java ! make/jdk/src/classes/build/tools/cldrconverter/LDMLParseHandler.java ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java ! src/java.base/share/legal/cldr.md ! src/jdk.localedata/share/legal/cldr.md ! test/jdk/java/text/Format/CompactNumberFormat/TestCompactNumber.java ! test/jdk/java/text/Format/NumberFormat/Bug8132125.java ! test/jdk/java/time/test/java/time/chrono/TestEraDisplayName.java ! test/jdk/java/time/test/java/time/format/Skeletons_en_US.properties ! test/jdk/java/time/test/java/time/format/Skeletons_ja.properties ! test/jdk/java/time/test/java/time/format/TestLocalizedPattern.java ! test/jdk/java/time/test/java/time/format/TestUnicodeExtension.java ! test/jdk/java/util/Calendar/CalendarDataTest.java ! test/jdk/java/util/Calendar/CldrFormatNamesTest.java ! test/jdk/java/util/Locale/bcp47u/DisplayNameTests.java ! test/jdk/java/util/Locale/bcp47u/FormatTests.java ! test/jdk/java/util/Locale/bcp47u/spi/LocaleNameProviderTests.java ! test/jdk/java/util/Locale/bcp47u/spi/provider/foo/LocaleNameProviderImpl.java ! test/jdk/java/util/TimeZone/CLDRDisplayNamesTest.java ! test/jdk/sun/text/resources/LocaleData.cldr ! test/jdk/sun/text/resources/LocaleDataTest.java ! test/jdk/sun/util/resources/TimeZone/Bug6317929.java ! test/jdk/sun/util/resources/TimeZone/Bug6442006.java ! test/jdk/sun/util/resources/TimeZone/Bug8139107.java + test/jdk/sun/util/resources/cldr/DateTimeRoundTripTest.java ! test/jdk/sun/util/resources/cldr/TimeZoneNamesTest.java ! test/jdk/tools/jlink/plugins/IncludeLocalesPluginTest.java Changeset: 066810c8 Branch: code-reflection Author: Lawrence Andrews Committer: Harshitha Onkar Date: 2025-11-07 20:36:13 +0000 URL: https://git.openjdk.org/babylon/commit/066810c877b206a66cc87537487b17f0481646c3 8371485: ProblemList awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java for linux Reviewed-by: azvegint ! test/jdk/ProblemList.txt Changeset: 88c4678e Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-08 21:30:58 +0000 URL: https://git.openjdk.org/babylon/commit/88c4678eed818cbe9380f35352e90883fed27d33 8371103: vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t006/TestDescription.java failing Reviewed-by: amenkov, sspitsyn ! src/hotspot/share/prims/jvmtiEventController.cpp ! test/hotspot/jtreg/ProblemList.txt Changeset: ebd1c038 Branch: code-reflection Author: Prasanta Sadhukhan Date: 2025-11-09 07:22:45 +0000 URL: https://git.openjdk.org/babylon/commit/ebd1c03829c354007a4ca9971be313d19eac2373 8371163: Make GlyphView/TestGlyphBGHeight.java headless 8371377: javax/swing/text/GlyphView/TestGlyphBGHeight.java fails in Ubuntu 24.04 X11 Reviewed-by: aivanov ! test/jdk/javax/swing/text/GlyphView/TestGlyphBGHeight.java Changeset: 4a14c81a Branch: code-reflection Author: Prasanta Sadhukhan Date: 2025-11-09 07:23:10 +0000 URL: https://git.openjdk.org/babylon/commit/4a14c81a06ab2be1d56cd01288135fbd369eb9c7 8299304: Test "java/awt/print/PrinterJob/PageDialogTest.java" fails on macOS 13 x64 because the Page Dialog blocks the Toolkit Reviewed-by: tr ! test/jdk/java/awt/print/PrinterJob/PageDialogTest.java Changeset: 66e5a68a Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-10 05:53:36 +0000 URL: https://git.openjdk.org/babylon/commit/66e5a68a33dcd6b23c73c892d51b3efed162b8f8 8371343: ZGC: Remove dependency on test execution order for gtests Reviewed-by: stefank, eosterlund ! src/hotspot/share/gc/z/zAddress.hpp ! test/hotspot/gtest/gc/z/test_zAddress.cpp ! test/hotspot/gtest/gc/z/test_zLiveMap.cpp Changeset: a8b35bf5 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-10 05:53:55 +0000 URL: https://git.openjdk.org/babylon/commit/a8b35bf5a60c26e8975a468d4ebe6aac557e4d85 8367317: ZGC: ZVirtualMemoryReserver::force_reserve_discontiguous arithmetic underflow Reviewed-by: jsikstro, eosterlund ! src/hotspot/share/gc/z/zVirtualMemoryManager.cpp Changeset: 4e4cced7 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-10 05:55:34 +0000 URL: https://git.openjdk.org/babylon/commit/4e4cced710a8e4cd5bb8f49b08798c87b21e8b78 8371341: ZGC: Improve gtest interoperability with instrumented builds (ASAN) Reviewed-by: stefank, eosterlund ! src/hotspot/share/gc/z/zVirtualMemoryManager.hpp ! test/hotspot/gtest/gc/z/test_zForwarding.cpp ! test/hotspot/gtest/gc/z/test_zMapper_windows.cpp ! test/hotspot/gtest/gc/z/test_zVirtualMemoryManager.cpp ! test/hotspot/gtest/gc/z/zunittest.hpp Changeset: f77a5117 Branch: code-reflection Author: Jasmine Karthikeyan Date: 2025-11-10 06:16:02 +0000 URL: https://git.openjdk.org/babylon/commit/f77a5117db2d01a935762e948aef2d0ade3512a3 8350468: x86: Improve implementation of vectorized numberOfLeadingZeros for int and long Co-authored-by: Raffaello Giulietti Reviewed-by: sviswanathan, qamai, vlivanov ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! test/hotspot/jtreg/compiler/vectorization/TestNumberOfContinuousZeros.java + test/micro/org/openjdk/bench/vm/compiler/LeadingZeros.java Changeset: d570765e Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-10 06:19:27 +0000 URL: https://git.openjdk.org/babylon/commit/d570765e2720a11c88c806554df9b13587a041a2 8367149: Add convenient construction for creating ad-hoc VMErrorCallback Reviewed-by: ayang, stefank ! src/hotspot/share/utilities/vmError.hpp Changeset: 79fee607 Branch: code-reflection Author: Matthias Baesken Date: 2025-11-10 07:58:13 +0000 URL: https://git.openjdk.org/babylon/commit/79fee607fd77320cd5deb8e424582e2f6c2b31a2 8371473: Problem list TestEmergencyDumpAtOOM.java on ppc64 platforms related to JDK-8371014 Reviewed-by: mdoerr, phubner ! test/jdk/ProblemList.txt Changeset: 5e8bf7a2 Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-10 08:39:21 +0000 URL: https://git.openjdk.org/babylon/commit/5e8bf7a283f75464dbd906454c852e4d1db497dc 8369646: Detection of redundant conversion patterns in add_users_of_use_to_worklist is too restrictive Reviewed-by: chagedorn, epeter ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! test/hotspot/jtreg/compiler/c2/TestEliminateRedundantConversionSequences.java Changeset: 0c1b7267 Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-10 08:41:13 +0000 URL: https://git.openjdk.org/babylon/commit/0c1b7267e374192f30322a45a1a34f734565cc15 8366990: C2: Compilation hits the memory limit when verifying loop opts in Split-If code Reviewed-by: chagedorn, dfenacci ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp ! src/hotspot/share/opto/type.cpp + test/hotspot/jtreg/compiler/loopopts/TestVerifyLoopOptimizationsHitsMemLimit.java Changeset: 2c378e26 Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-10 08:54:04 +0000 URL: https://git.openjdk.org/babylon/commit/2c378e26d7319b6b0e273d2409dd3f591c5f5f6b 8370813: Deprecate AggressiveHeap Reviewed-by: ayang, shade ! src/hotspot/share/gc/shared/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.md Changeset: f48ad21e Branch: code-reflection Author: Paul H?bner Committer: Martin Doerr Date: 2025-11-10 09:24:45 +0000 URL: https://git.openjdk.org/babylon/commit/f48ad21ecc288c280db3ffb2e098df12518e2a5a 8371216: oopDesc::print_value_on breaks if klass is garbage Reviewed-by: coleenp, mdoerr ! src/hotspot/share/oops/oop.cpp Changeset: c0b82ff2 Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-10 09:41:55 +0000 URL: https://git.openjdk.org/babylon/commit/c0b82ff2e5b696371de62e0f4fcbba61361fc6b2 8370843: Deprecate AlwaysActAsServerClassMachine and NeverActAsServerClassMachine Reviewed-by: ayang, kvn ! src/hotspot/share/gc/shared/gc_globals.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.md Changeset: 49f51f94 Branch: code-reflection Author: Hannes Walln?fer Date: 2025-11-10 10:06:09 +0000 URL: https://git.openjdk.org/babylon/commit/49f51f9450ac3b923f83ba7d9089e5560e25ec7a 8370612: Simplify implementation of dark theme 8371021: Tab order in theme picker is broken Reviewed-by: jlamperth, liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Navigation.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/highlight.css ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/script.js.template ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/stylesheet.css ! test/langtools/jdk/javadoc/doclet/checkStylesheetClasses/CheckStylesheetClasses.java ! test/langtools/jdk/javadoc/doclet/testNavigation/TestModuleNavigation.java ! test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java ! test/langtools/jdk/javadoc/doclet/testSpecTag/TestSpecTag.java ! test/langtools/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Changeset: 681dab72 Branch: code-reflection Author: Erik Gahlin Date: 2025-11-10 10:22:59 +0000 URL: https://git.openjdk.org/babylon/commit/681dab7205190176b842bd42914b1cb9fe752e44 8365972: JFR: ThreadDump and ClassLoaderStatistics events may cause back to back rotations Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecorder.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/periodic/PeriodicEvents.java + test/jdk/jdk/jfr/event/runtime/TestBackToBackSensitive.java Changeset: 98f40e45 Branch: code-reflection Author: Kerem Kat Committer: Aleksey Shipilev Date: 2025-11-10 11:33:56 +0000 URL: https://git.openjdk.org/babylon/commit/98f40e4575538d91f509c85d9d657a8973f464be 8371425: Include folder names in vscode workspace virtual folders Reviewed-by: erikj, jvernee, shade ! make/ide/vscode/hotspot/CreateVSCodeProject.gmk ! make/ide/vscode/hotspot/template-workspace.jsonc Changeset: 1142d299 Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-10 13:05:07 +0000 URL: https://git.openjdk.org/babylon/commit/1142d299439bdf71de41b872a9b3d7775d0c692b 8369920: HttpClient QuicSelectorThread could be a VirtualThread Reviewed-by: vyazici, djelinski ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicEndpoint.java ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicSelector.java + test/jdk/java/net/httpclient/http3/H3QuicVTTest.java Changeset: 9d2fa8fe Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-10 14:29:35 +0000 URL: https://git.openjdk.org/babylon/commit/9d2fa8fe22652cbf1c70b953247bd154b363b383 8371321: Remove unused last arg of BarrierSetAssembler::arraycopy_epilogue Reviewed-by: fandreuzzi, tschatzl ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/g1/g1BarrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shared/barrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/shared/cardTableBarrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.cpp ! src/hotspot/cpu/riscv/gc/shenandoah/shenandoahBarrierSetAssembler_riscv.hpp ! src/hotspot/cpu/riscv/stubGenerator_riscv.cpp Changeset: 1877ff99 Branch: code-reflection Author: Michael McMahon Date: 2025-11-10 14:34:29 +0000 URL: https://git.openjdk.org/babylon/commit/1877ff996b67849205fd6cde1285461c4db1b359 8331195: Improve com.sun.net.httpserver.HttpExchange usability Reviewed-by: jpai, dfuchs ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpHandlers.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/AuthFilter.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/ExchangeImpl.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/FileServerHandler.java ! test/jdk/com/sun/net/httpserver/BasicAuthToken.java ! test/jdk/com/sun/net/httpserver/EchoHandler.java ! test/jdk/com/sun/net/httpserver/ExchangeAttributeTest.java ! test/jdk/com/sun/net/httpserver/FileServerHandler.java ! test/jdk/com/sun/net/httpserver/Http10KeepAliveMaxParamTest.java ! test/jdk/com/sun/net/httpserver/HttpServerTest.java ! test/jdk/com/sun/net/httpserver/HttpsParametersClientAuthTest.java ! test/jdk/com/sun/net/httpserver/InputNotRead.java ! test/jdk/com/sun/net/httpserver/MissingTrailingSpace.java ! test/jdk/com/sun/net/httpserver/ServerStopTerminationTest.java ! test/jdk/com/sun/net/httpserver/TaskRejectedTest.java ! test/jdk/com/sun/net/httpserver/Test10.java ! test/jdk/com/sun/net/httpserver/Test2.java ! test/jdk/com/sun/net/httpserver/Test3.java ! test/jdk/com/sun/net/httpserver/Test4.java ! test/jdk/com/sun/net/httpserver/Test5.java ! test/jdk/com/sun/net/httpserver/Test6.java ! test/jdk/com/sun/net/httpserver/Test6a.java ! test/jdk/com/sun/net/httpserver/Test7.java ! test/jdk/com/sun/net/httpserver/Test7a.java ! test/jdk/com/sun/net/httpserver/Test8.java ! test/jdk/com/sun/net/httpserver/bugs/8199849/BasicAuthenticatorCharset.java ! test/jdk/com/sun/net/httpserver/bugs/8199849/TestHttpUnicode.java ! test/jdk/com/sun/net/httpserver/bugs/8300268/MaxIdleConnectionsTest.java ! test/jdk/com/sun/net/httpserver/bugs/B6341616.java ! test/jdk/com/sun/net/httpserver/bugs/B6361557.java ! test/jdk/com/sun/net/httpserver/bugs/B6393710.java ! test/jdk/com/sun/net/httpserver/bugs/B6401598.java ! test/jdk/com/sun/net/httpserver/bugs/B6421581.java ! test/jdk/com/sun/net/httpserver/bugs/B6433018.java ! test/jdk/com/sun/net/httpserver/bugs/B6526158.java ! test/jdk/com/sun/net/httpserver/bugs/B6526913.java ! test/jdk/com/sun/net/httpserver/bugs/B6529200.java ! test/jdk/com/sun/net/httpserver/bugs/B6744329.java ! test/jdk/com/sun/net/httpserver/bugs/B6886436.java ! test/jdk/com/sun/net/httpserver/bugs/B8211420.java ! test/jdk/com/sun/net/httpserver/bugs/ExceptionKeepAlive.java ! test/jdk/com/sun/net/httpserver/bugs/FixedLengthInputStream.java ! test/jdk/com/sun/net/httpserver/bugs/HeadKeepAlive.java ! test/jdk/com/sun/net/httpserver/bugs/HeadTest.java ! test/jdk/com/sun/net/httpserver/bugs/HttpExchange/AutoCloseableHttpExchange.java ! test/jdk/com/sun/net/httpserver/bugs/TruncatedRequestBody.java ! test/jdk/com/sun/net/httpserver/bugs/ZeroLengthOutputStream.java Changeset: 2d4f2fde Branch: code-reflection Author: Weijun Wang Date: 2025-11-10 14:39:22 +0000 URL: https://git.openjdk.org/babylon/commit/2d4f2fde2281affd90bdd608d49a021f6cac2fed 8349732: Add support for JARs signed with ML-DSA Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs/PKCS7.java ! src/java.base/share/classes/sun/security/pkcs/SignerInfo.java ! src/java.base/share/classes/sun/security/util/KeyUtil.java ! src/java.base/share/classes/sun/security/util/SignatureUtil.java ! src/java.base/share/classes/sun/security/x509/AlgorithmId.java ! src/jdk.jartool/share/man/jarsigner.md + test/jdk/sun/security/pkcs/pkcs7/MLDSADigestConformance.java ! test/jdk/sun/security/provider/acvp/Launcher.java + test/jdk/sun/security/provider/pqc/ML_DSA_CMS.java + test/jdk/sun/security/tools/jarsigner/ML_DSA.java + test/lib/jdk/test/lib/security/RepositoryFileReader.java Changeset: 6e838d6f Branch: code-reflection Author: Jorn Vernee Date: 2025-11-10 14:57:27 +0000 URL: https://git.openjdk.org/babylon/commit/6e838d6f9a59e4f14d4d1a6d4ff6ea857c0615e9 8371474: Wrong object class or methodID passed to JNI call in TestSharedCloseJvmti with -Xshare:off Reviewed-by: alanb, mdoerr ! test/jdk/java/foreign/sharedclosejvmti/TestSharedCloseJvmti.java ! test/jdk/java/foreign/sharedclosejvmti/libSharedCloseAgent.cpp Changeset: 72989e0f Branch: code-reflection Author: Emanuel Peter Date: 2025-11-10 15:56:49 +0000 URL: https://git.openjdk.org/babylon/commit/72989e0fac7dae1bfec40e3017ba89aa201cc8ee 8340093: C2 SuperWord: implement cost model Reviewed-by: kvn, qamai ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/superword.hpp ! src/hotspot/share/opto/traceAutoVectorizationTag.hpp ! src/hotspot/share/opto/vectorization.cpp ! src/hotspot/share/opto/vectorization.hpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp ! test/hotspot/jtreg/compiler/c2/cr7200264/TestIntVect.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestAutoVectorizationOverrideProfitability.java + test/hotspot/jtreg/compiler/loopopts/superword/TestReductions.java ! test/micro/org/openjdk/bench/vm/compiler/VectorReduction2.java Changeset: 0bae56b6 Branch: code-reflection Author: Alan Bateman Date: 2025-11-10 16:34:31 +0000 URL: https://git.openjdk.org/babylon/commit/0bae56b6149f87e8ebd09291f96033d3e558263b 8367857: Implement JEP 525: Structured Concurrency (Sixth Preview) Reviewed-by: vklang ! src/java.base/share/classes/java/util/concurrent/Joiners.java ! src/java.base/share/classes/java/util/concurrent/StructuredTaskScope.java ! src/java.base/share/classes/java/util/concurrent/StructuredTaskScopeImpl.java ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java ! test/jdk/java/util/concurrent/StructuredTaskScope/StressCancellation.java ! test/jdk/java/util/concurrent/StructuredTaskScope/StructuredTaskScopeTest.java Changeset: 1327aa60 Branch: code-reflection Author: Kerem Kat Committer: Cesar Soares Lucas Date: 2025-11-10 17:38:25 +0000 URL: https://git.openjdk.org/babylon/commit/1327aa60907555d7e2d8d131bf4cb20a34660ff2 8369949: Fix TestWaste.java stack overflow Reviewed-by: egahlin, shade ! src/hotspot/share/jfr/leakprofiler/chains/dfsClosure.hpp ! test/jdk/ProblemList.txt Changeset: 8a911aed Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-10 17:56:52 +0000 URL: https://git.openjdk.org/babylon/commit/8a911aed26211936a9c2652299a1bca8a06cae21 8371471: HttpClient: Log HTTP/3 handshake failures if logging errors is enabled Reviewed-by: djelinski, jpai ! src/java.net.http/share/classes/jdk/internal/net/http/common/Log.java ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicConnectionImpl.java + test/jdk/java/net/httpclient/http3/H3LogHandshakeErrors.java Changeset: cc54d2c0 Branch: code-reflection Author: Ashutosh Mehra Date: 2025-11-10 18:21:13 +0000 URL: https://git.openjdk.org/babylon/commit/cc54d2c06b0e1f799c771d747cfb4059a8774e28 8371418: Methods in AdapterHandlerLibrary use HashtableBase iterate method incorrectly Reviewed-by: kvn, adinn ! src/hotspot/share/cds/lambdaProxyClassDictionary.cpp ! src/hotspot/share/classfile/compactHashtable.hpp ! src/hotspot/share/classfile/stringTable.cpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/oops/trainingData.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: 43afce54 Branch: code-reflection Author: Kelvin Nilsen Date: 2025-11-10 18:52:00 +0000 URL: https://git.openjdk.org/babylon/commit/43afce54a7ecbd124f68f1f32d718f08b24ca61a 8371573: Shenandoah: Remove unnecessary include after JDK-8351091 Reviewed-by: wkemper, shade ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.cpp Changeset: e1c95260 Branch: code-reflection Author: Rui Li Committer: SendaoYan Date: 2025-11-11 03:35:42 +0000 URL: https://git.openjdk.org/babylon/commit/e1c952608d61c6c74c3fa4d00789390f3a789de4 8361339: Test gc/shenandoah/TestLargeObjectAlignment.java#generational fails on macOS aarch64 with OOM: Java heap space Reviewed-by: shade, syan ! test/hotspot/jtreg/gc/shenandoah/TestLargeObjectAlignment.java Changeset: 76a1109d Branch: code-reflection Author: GennadiyKrivoshein <164895822+GennadiyKrivoshein at users.noreply.github.com> Committer: Prasanta Sadhukhan Date: 2025-11-11 03:49:39 +0000 URL: https://git.openjdk.org/babylon/commit/76a1109d6fc7baac9ebc7accff800ef8927931bb 8251928: [macos] the printer DPI always be 72, cause some content lost when print out Reviewed-by: psadhukhan, prr ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterGraphicsConfig.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterSurfaceData.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m + test/jdk/javax/print/PrintablePrintDPI.java Changeset: 29100320 Branch: code-reflection Author: Severin Gehwolf Date: 2025-11-11 09:18:27 +0000 URL: https://git.openjdk.org/babylon/commit/291003208c025ce4f9a94ba6093e207d0792bbb9 8370966: Create regression test for the hierarchical memory limit fix in JDK-8370572 Reviewed-by: shade, syan ! test/hotspot/jtreg/containers/docker/TestJFRWithJMX.java ! test/hotspot/jtreg/containers/docker/TestJcmd.java + test/hotspot/jtreg/containers/docker/TestMemoryInvisibleParent.java ! test/hotspot/jtreg/containers/docker/TestMemoryWithSubgroups.java ! test/hotspot/jtreg/containers/docker/TestPids.java ! test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetricsSubgroup.java ! test/lib/jdk/test/lib/containers/docker/DockerRunOptions.java ! test/lib/jdk/test/lib/containers/docker/DockerTestUtils.java Changeset: 2902436f Branch: code-reflection Author: Stefan Johansson Date: 2025-11-11 13:00:22 +0000 URL: https://git.openjdk.org/babylon/commit/2902436fb15c76755286ed2df444bc6f9d93af13 8371019: G1: Support heap expansion during startup Reviewed-by: eosterlund, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: cbd77fc9 Branch: code-reflection Author: Martin Doerr Date: 2025-11-11 14:26:58 +0000 URL: https://git.openjdk.org/babylon/commit/cbd77fc9f3e6c8f1e996b30afe208c6a074cce3a 8370244: [PPC64] Several vector tests fail on Power8 Reviewed-by: dbriemann, rrich ! src/hotspot/cpu/ppc/vm_version_ppc.cpp Changeset: 405d5f7a Branch: code-reflection Author: Hamlin Li Date: 2025-11-11 14:56:20 +0000 URL: https://git.openjdk.org/babylon/commit/405d5f7a6892426d69409c3975d0c808304b8438 8371297: C2: assert triggered in BoolTest::BoolTest Reviewed-by: dlong, luhenry, epeter ! src/hotspot/share/opto/vtransform.cpp Changeset: bbeb6bf0 Branch: code-reflection Author: Ashutosh Mehra Date: 2025-11-11 15:07:10 +0000 URL: https://git.openjdk.org/babylon/commit/bbeb6bf0ac8952feaf8afc9c9b25a9a372c2c798 8371493: Simplify search for AdapterHandlerEntry Reviewed-by: kvn, adinn ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: f5eacbeb Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-11 16:33:15 +0000 URL: https://git.openjdk.org/babylon/commit/f5eacbeb5fc58c1bd844d709fe92621ce3689d78 8371534: C2: Missed Ideal optimization opportunity with AndL and URShiftL Reviewed-by: thartmann, mhaessig ! src/hotspot/share/opto/phaseX.cpp ! test/hotspot/jtreg/compiler/c2/TestMaskAndRShiftReorder.java Changeset: c6a8027b Branch: code-reflection Author: Dan Smith Date: 2025-11-11 17:11:44 +0000 URL: https://git.openjdk.org/babylon/commit/c6a8027b94bbcbde5f7dcabd0bff48b93bbb5a7f 8370154: Update @jls and @jvms taglets to point to local specs dir Reviewed-by: liach ! make/Docs.gmk ! make/jdk/src/classes/build/tools/taglet/JSpec.java ! make/jdk/src/classes/build/tools/taglet/ToolGuide.java Changeset: 8531fa14 Branch: code-reflection Author: Kelvin Nilsen Date: 2025-11-11 21:07:34 +0000 URL: https://git.openjdk.org/babylon/commit/8531fa146be1da5e96c0f23091882a27c67d7893 8358735: GenShen: block_start() may be incorrect after class unloading Co-authored-by: Y. Srinivas Ramakrishna Reviewed-by: wkemper ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkBitMap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkBitMap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkBitMap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkingContext.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.cpp ! src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.hpp ! src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.inline.hpp + test/hotspot/gtest/gc/shenandoah/test_shenandoahMarkBitMap.cpp ! test/hotspot/gtest/gc/shenandoah/test_shenandoahOldHeuristic.cpp ! test/hotspot/jtreg/gc/shenandoah/compiler/TestClone.java Changeset: 15dcbf0b Branch: code-reflection Author: Jayathirth D V Date: 2025-11-12 04:44:37 +0000 URL: https://git.openjdk.org/babylon/commit/15dcbf0bc80b3c1ab09e44b9447c639780cce65e 8363950: Incorrect jtreg header in TestLayoutVsICU.java Reviewed-by: azvegint - test/jdk/java/awt/font/TextLayout/TestLayoutVsICU.java - test/jdk/java/awt/font/TextLayout/TestLayoutVsICU_jdkbase.xml Changeset: 6df78c45 Branch: code-reflection Author: Emanuel Peter Date: 2025-11-12 07:10:29 +0000 URL: https://git.openjdk.org/babylon/commit/6df78c4585fc5a71ceafa6f4b1dc0fe68db2657c 8371065: C2 SuperWord: VTransformLoopPhiNode::apply setting type leads to assert/wrong result Co-authored-by: Roland Westrelin Reviewed-by: qamai, chagedorn ! src/hotspot/share/opto/superwordVTransformBuilder.cpp ! src/hotspot/share/opto/vtransform.cpp ! src/hotspot/share/opto/vtransform.hpp + test/hotspot/jtreg/compiler/loopopts/superword/TestLoopPhiApplyBadType.java Changeset: 76a0732b Branch: code-reflection Author: Jan Lahoda Date: 2025-11-12 07:14:45 +0000 URL: https://git.openjdk.org/babylon/commit/76a0732ba5c0f3159ed0ebc5fcb2dfb7117b38cd 8366691: JShell should support a more convenient completion Reviewed-by: asotona ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java ! src/jdk.jshell/share/classes/jdk/internal/shellsupport/doc/JavadocHelper.java ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysis.java ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java + test/langtools/jdk/jshell/CompletionAPITest.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/langtools/jdk/jshell/KullaTesting.java ! test/langtools/jdk/jshell/ToolTabSnippetTest.java Changeset: 400a83da Branch: code-reflection Author: Ivan Walulya Date: 2025-11-12 08:48:07 +0000 URL: https://git.openjdk.org/babylon/commit/400a83da893f5fc285a175b63a266de21e93683c 8371625: G1: G1HeapRegion::print_on misalignment Reviewed-by: ayang, tschatzl ! src/hotspot/share/gc/g1/g1HeapRegion.cpp Changeset: 1f1f7bb4 Branch: code-reflection Author: Daniel Jeli?ski Date: 2025-11-12 12:32:05 +0000 URL: https://git.openjdk.org/babylon/commit/1f1f7bb44842fac966bd8f16cc6cfeee0ea972f6 8370024: HttpClient: QUIC congestion controller doesn't implement pacing Reviewed-by: dfuchs ! src/java.net.http/share/classes/jdk/internal/net/http/quic/PacketSpaceManager.java ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicCongestionController.java ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicConnectionImpl.java + src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicPacer.java ! src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicRenoCongestionController.java + test/jdk/java/net/httpclient/quic/PacerTest.java ! test/jdk/java/net/httpclient/quic/PacketSpaceManagerTest.java Changeset: e5a272a5 Branch: code-reflection Author: Vicente Romero Date: 2025-11-12 14:30:08 +0000 URL: https://git.openjdk.org/babylon/commit/e5a272a59058e36136acd6aef635f87136fbb027 8369517: Compilation mismatch for equivalent lambda and method reference Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java + test/langtools/tools/javac/lambda/methodReference/ResultTypeNotBeingCapturedTest.java + test/langtools/tools/javac/lambda/methodReference/ResultTypeNotBeingCapturedTest.out Changeset: 4042e821 Branch: code-reflection Author: Daniel Gredler Date: 2025-11-12 14:42:30 +0000 URL: https://git.openjdk.org/babylon/commit/4042e821c6f582bf31201acb9f2d98d940383f1c 8371066: Remove unused class TextSourceLabel and associated class hierarchy Reviewed-by: prr, psadhukhan ! src/java.desktop/share/classes/java/awt/font/TextLine.java ! src/java.desktop/share/classes/sun/font/Decoration.java - src/java.desktop/share/classes/sun/font/ExtendedTextLabel.java ! src/java.desktop/share/classes/sun/font/ExtendedTextSourceLabel.java - src/java.desktop/share/classes/sun/font/TextLabel.java ! src/java.desktop/share/classes/sun/font/TextLabelFactory.java - src/java.desktop/share/classes/sun/font/TextSourceLabel.java Changeset: 56a27d11 Branch: code-reflection Author: Daniel Lund?n Date: 2025-11-12 14:45:22 +0000 URL: https://git.openjdk.org/babylon/commit/56a27d11971d935e8b28ac9d701cf9890014a949 8341039: compiler/cha/TypeProfileFinalMethod.java fails with assertEquals expected: 0 but was: 2 Reviewed-by: rcastanedalo, dfenacci ! test/hotspot/jtreg/ProblemList-Xcomp.txt ! test/hotspot/jtreg/compiler/cha/TypeProfileFinalMethod.java Changeset: e5c72937 Branch: code-reflection Author: David Beaumont Committer: Roger Riggs Date: 2025-11-12 15:41:40 +0000 URL: https://git.openjdk.org/babylon/commit/e5c72937af50433029b8d4b6b30a5318c31a9da4 8371645: BasicImageReader getEntryNames() is stateful and cannot be called more than once Reviewed-by: alanb, rriggs ! src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java Changeset: 78db38f1 Branch: code-reflection Author: Harshitha Onkar Date: 2025-11-12 17:56:19 +0000 URL: https://git.openjdk.org/babylon/commit/78db38f14044d434eabb61ff8293d62eff3c497c 8371365: Update javax/swing/JFileChooser/bug4759934.java to use Util.findComponent() Reviewed-by: aivanov, dnguyen, azvegint ! test/jdk/javax/swing/JFileChooser/bug4759934.java Changeset: 705bd6fb Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-12 18:54:55 +0000 URL: https://git.openjdk.org/babylon/commit/705bd6fbdc0e78625d05dbfa8af547c50b076e69 8367902: Allocation after Universe::before_exit() in the VM shutdown sequence Reviewed-by: ayang, stefank, iwalulya, aboldtch, sspitsyn ! src/hotspot/share/runtime/java.cpp + test/hotspot/jtreg/serviceability/jvmti/events/VMDeath/AllocatingInVMDeath/TestAllocatingInVMDeath.java + test/hotspot/jtreg/serviceability/jvmti/events/VMDeath/AllocatingInVMDeath/libTestAllocatingInVMDeath.cpp Changeset: d2571ea7 Branch: code-reflection Author: Naoto Sato Date: 2025-11-13 00:31:10 +0000 URL: https://git.openjdk.org/babylon/commit/d2571ea76ae5a9ccb7053bfec24bf3aedd366084 8371339: Illegal pattern char 'B' with locale.providers as HOST on macOS for Taiwanese Reviewed-by: jlu, rriggs ! src/java.base/macosx/classes/sun/util/locale/provider/HostLocaleProviderAdapterImpl.java Changeset: bc66d3e6 Branch: code-reflection Author: Prasanta Sadhukhan Date: 2025-11-13 01:19:37 +0000 URL: https://git.openjdk.org/babylon/commit/bc66d3e65d208edc69e8ae334d23b38f2b78a440 8370467: BorderFactory.createBevelBorder and createSoftBevelBorder throws NPE for null highlight and shadow Reviewed-by: aivanov, tr, honkar ! src/java.desktop/share/classes/javax/swing/border/BevelBorder.java + test/jdk/javax/swing/border/TestBevelBorderParam.java Changeset: 676e6fd8 Branch: code-reflection Author: Xiaohong Gong Date: 2025-11-13 01:33:21 +0000 URL: https://git.openjdk.org/babylon/commit/676e6fd8d5152f4e0d14ae59ddd7aa0a7127ea58 8367292: VectorAPI: Optimize VectorMask.fromLong/toLong() for SVE Reviewed-by: epeter, psandoz, haosun, sviswanathan ! src/hotspot/cpu/aarch64/aarch64_vector.ad ! src/hotspot/cpu/aarch64/aarch64_vector_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/riscv/riscv_v.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java ! test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskFromLongTest.java ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskToLongTest.java Changeset: b6ba1ac9 Branch: code-reflection Author: Yasumasa Suenaga Date: 2025-11-13 04:29:22 +0000 URL: https://git.openjdk.org/babylon/commit/b6ba1ac9aa800e01e2235c2b8737ad4670b0a655 8371093: Assert "section header string table should be loaded" failed on debug VM Reviewed-by: phubner, jsjolen ! src/hotspot/share/utilities/decoder_elf.cpp Changeset: 5f42c770 Branch: code-reflection Author: Chen Liang Date: 2025-11-13 04:33:00 +0000 URL: https://git.openjdk.org/babylon/commit/5f42c7708588db28f9c18bf63462001e99b35ec7 8370839: Tests to verify peculiar Proxy dispatching behaviors Reviewed-by: jvernee + test/jdk/java/lang/reflect/Proxy/BridgeMethodsTest.java ! test/jdk/java/lang/reflect/Proxy/NonPublicMethodTypeTest.java + test/jdk/java/lang/reflect/Proxy/ProtectedObjectMethodsTest.java Changeset: d91480b9 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-13 06:17:16 +0000 URL: https://git.openjdk.org/babylon/commit/d91480b9b0f85aca8d9dba615ae5a27f26ce5fee 8371675: ZGC: Remove leftover X VMOp symbols Reviewed-by: jsikstro, stefank, tschatzl ! src/hotspot/share/runtime/vmOperation.hpp Changeset: 42aecc40 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-13 06:17:35 +0000 URL: https://git.openjdk.org/babylon/commit/42aecc4070e952ed6308ebefaf716e35fed2f929 8371680: JVMTI: Remove unused VMOp type JvmtiPostObjectFree Reviewed-by: stefank, lmesnik ! src/hotspot/share/runtime/vmOperation.hpp Changeset: 279f39f1 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-13 06:17:52 +0000 URL: https://git.openjdk.org/babylon/commit/279f39f14a6329d0147613edc3836b7d6d043186 8371681: Remove unused VMOp type CollectForCodeCacheAllocation Reviewed-by: stefank, ayang, tschatzl ! src/hotspot/share/runtime/vmOperation.hpp Changeset: 436b3357 Branch: code-reflection Author: Shawn M Emery Committer: Jamil Nimeh Date: 2025-11-13 08:10:12 +0000 URL: https://git.openjdk.org/babylon/commit/436b3357e9791f6acb2673e2ac96d33c6a2782e6 8371450: AES performance improvements for key schedule generation Reviewed-by: valeriep, jnimeh ! src/java.base/share/classes/com/sun/crypto/provider/AES_Crypt.java Changeset: 795ec5c1 Branch: code-reflection Author: Kim Barrett Date: 2025-11-13 08:33:15 +0000 URL: https://git.openjdk.org/babylon/commit/795ec5c1e90309bc008acb28cfe0ce039dabcb8f 8370333: hotspot-unit-tests.md specifies wrong directory structure for tests Reviewed-by: stefank, ayang ! doc/hotspot-unit-tests.html ! doc/hotspot-unit-tests.md Changeset: 10220ed0 Branch: code-reflection Author: Kim Barrett Date: 2025-11-13 08:43:59 +0000 URL: https://git.openjdk.org/babylon/commit/10220ed06ea452083693406113107484fce40275 8367013: Add Atomic to package/replace idiom of volatile var plus AtomicAccess:: operations Reviewed-by: stefank, aboldtch, jsjolen ! src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupTable.hpp + src/hotspot/share/runtime/atomic.hpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/singleWriterSynchronizer.cpp ! src/hotspot/share/utilities/singleWriterSynchronizer.hpp + test/hotspot/gtest/runtime/test_atomic.cpp Changeset: 9d6a61fd Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-13 09:24:51 +0000 URL: https://git.openjdk.org/babylon/commit/9d6a61fda6f43577ee8f19483e5b47100ff8eec0 8371558: C2: Missing optimization opportunity in AbsNode::Ideal Reviewed-by: thartmann, rcastanedalo, chagedorn ! src/hotspot/share/opto/phaseX.cpp + test/hotspot/jtreg/compiler/c2/TestMissingOptAbsZeroMinusX.java Changeset: 48c59faf Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-13 10:46:00 +0000 URL: https://git.openjdk.org/babylon/commit/48c59faf58a4d7b7ec9d6824a5cbc9a55888ce72 8371722: java/net/httpclient/BufferSizePropertyClampTest.java should use Locale.ROOT Reviewed-by: djelinski, jpai, vyazici ! test/jdk/java/net/httpclient/BufferSizePropertyClampTest.java Changeset: 6b6fdf1d Branch: code-reflection Author: Ramesh Bhagavatam Gangadhar Committer: Sean Mullan Date: 2025-11-13 12:57:16 +0000 URL: https://git.openjdk.org/babylon/commit/6b6fdf1d9222eb03cd013cbe792fa77fd78c1acb 8357874: UNLIMTED_CRYPTO typo in class description of JceSecurity.java.template Reviewed-by: wetmore ! src/java.base/share/classes/javax/crypto/JceSecurity.java.template Changeset: bbc0f9ef Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-13 13:53:09 +0000 URL: https://git.openjdk.org/babylon/commit/bbc0f9ef30c467c8da8b873813bde50a7e9ff697 8371788: Fix documentation for CollectedHeap::collect(GCCause) Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/serial/serialHeap.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp Changeset: 7d78818a Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-13 13:55:25 +0000 URL: https://git.openjdk.org/babylon/commit/7d78818ae609461ab830c32c222f15f1cab0d2d4 8274178: G1: Occupancy value in IHOP logging and JFR event is inaccurate 8371635: G1: Young gen allocations should never be considered when comparing against IHOP threshold Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1HeapSizingPolicy.cpp ! src/hotspot/share/gc/g1/g1IHOPControl.cpp ! src/hotspot/share/gc/g1/g1IHOPControl.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1Trace.cpp ! src/hotspot/share/gc/g1/g1Trace.hpp Changeset: 8102f436 Branch: code-reflection Author: Vicente Romero Date: 2025-11-13 15:28:08 +0000 URL: https://git.openjdk.org/babylon/commit/8102f436f5586253302cd8cef49bfe2b4af41693 8371480: VerifyError after JDK-8369654 Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Code.java + test/langtools/tools/javac/switchexpr/VerifierErrorWrongSuperTypeTest.java Changeset: bfc048ab Branch: code-reflection Author: Matthias Baesken Date: 2025-11-13 16:26:17 +0000 URL: https://git.openjdk.org/babylon/commit/bfc048aba6391d52c07d9a5146466b47d2f6fed8 8371608: Jtreg test jdk/internal/vm/Continuation/Fuzz.java sometimes fails with (fast)debug binaries Reviewed-by: mdoerr, rrich ! test/jdk/jdk/internal/vm/Continuation/Fuzz.java Changeset: 2199b5fe Branch: code-reflection Author: Rui Li Committer: Xiaolong Peng Date: 2025-11-13 18:01:58 +0000 URL: https://git.openjdk.org/babylon/commit/2199b5fef4540ae8da77c5c4feafc8822a3d9d3d 8371381: [Shenandoah] Setting ergo flags should use FLAG_SET_ERGO Reviewed-by: xpeng, wkemper, ysr, cslucas ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.hpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp Changeset: d09a8cb8 Branch: code-reflection Author: Sergey Bylokhov Date: 2025-11-13 18:39:49 +0000 URL: https://git.openjdk.org/babylon/commit/d09a8cb81b70a6c51ef5599bee04f1445a48e63f 8371746: Some imports in Integer.java and Long.java became unused after JDK-8370503 Reviewed-by: liach, darcy, iris ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Long.java Changeset: db3a8386 Branch: code-reflection Author: Brian Burkhalter Date: 2025-11-13 18:59:34 +0000 URL: https://git.openjdk.org/babylon/commit/db3a8386d482c161c45fae1689826bd53709f11f 8371436: (fs) java/nio/file/FileStore/Basic.java fails on macOS platform due to assertTrue(!store.equals(prev)); Reviewed-by: alanb ! src/java.base/macosx/native/libnio/fs/BsdNativeDispatcher.c Changeset: 6322aaba Branch: code-reflection Author: Roger Riggs Date: 2025-11-13 19:08:35 +0000 URL: https://git.openjdk.org/babylon/commit/6322aaba63b235cb6c73d23a932210af318404ec 8371821: Duplicate export of jdk.internal.util to java.net.http Reviewed-by: naoto, alanb ! src/java.base/share/classes/module-info.java Changeset: 155d7df5 Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-13 23:54:07 +0000 URL: https://git.openjdk.org/babylon/commit/155d7df555fcebc318db89408ef0fffbd95414a0 8371749: New test serviceability/jvmti/events/VMDeath/AllocatingInVMDeath/TestAllocatingInVMDeath.java fails with -Xcheck:jni Reviewed-by: sspitsyn, amenkov, cjplummer ! test/hotspot/jtreg/serviceability/jvmti/events/VMDeath/AllocatingInVMDeath/libTestAllocatingInVMDeath.cpp Changeset: 0d8b5188 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-14 01:07:05 +0000 URL: https://git.openjdk.org/babylon/commit/0d8b5188bb4315be3c63898a2ce4e68dd2bd4481 8364560: The default value of --linux-menu-group option is invalid 8356574: Test --linux-menu-group option Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBuilder.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxPackageMixin.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/LinuxResources.properties ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LinuxHelper.java ! test/jdk/tools/jpackage/linux/ShortcutHintTest.java Changeset: eaddefb4 Branch: code-reflection Author: Fei Yang Date: 2025-11-14 01:10:11 +0000 URL: https://git.openjdk.org/babylon/commit/eaddefb475c6431821c2d62baf550ba2c5f357bf 8371753: compiler/c2/cr7200264/TestIntVect.java fails IR verification Reviewed-by: chagedorn, fjiang ! test/hotspot/jtreg/compiler/c2/cr7200264/TestIntVect.java Changeset: 7733632f Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-14 02:08:45 +0000 URL: https://git.openjdk.org/babylon/commit/7733632f90a17ec848c4c9259c1aa58fded8c15a 8369206: jpackage should not set R/O permission on app launchers Reviewed-by: almatvee ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/ExecutableRebrander.java Changeset: 1baf5164 Branch: code-reflection Author: Daniel Skantz Date: 2025-11-14 07:09:05 +0000 URL: https://git.openjdk.org/babylon/commit/1baf5164d6a9077e0c440b7b78be6424a052f8a9 8371628: C2: add a test case for the arraycopy changes in JDK-8297933 Reviewed-by: rcastanedalo, shade ! test/hotspot/jtreg/compiler/arraycopy/TestACSameSrcDst.java Changeset: 0829c6ac Branch: code-reflection Author: Anton Seoane Ampudia Committer: Roberto Casta?eda Lozano Date: 2025-11-14 07:25:44 +0000 URL: https://git.openjdk.org/babylon/commit/0829c6acde496833300efb38b4b900bf94b99dc0 8356761: IGV: dump escape analysis information Reviewed-by: rcastanedalo, chagedorn ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp ! src/hotspot/share/opto/idealGraphPrinter.cpp ! src/hotspot/share/opto/idealGraphPrinter.hpp ! src/hotspot/share/opto/phasetype.hpp + src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/colorEscapeAnalysis.filter + src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/showConnectionGraphNodesOnly.filter + src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/filters/showConnectionInfo.filter ! src/utils/IdealGraphVisualizer/ServerCompiler/src/main/resources/com/sun/hotspot/igv/servercompiler/layer.xml ! test/hotspot/jtreg/compiler/lib/ir_framework/CompilePhase.java Changeset: f4305923 Branch: code-reflection Author: Anton Seoane Ampudia Committer: Roberto Casta?eda Lozano Date: 2025-11-14 07:26:03 +0000 URL: https://git.openjdk.org/babylon/commit/f4305923fb6203089fd13cf3387c81e127ae5fe2 8369002: Extract the loop->is_member(get_loop(get_ctrl(node))) pattern in a new function Reviewed-by: bmaillard, rcastanedalo ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/predicates.cpp ! src/hotspot/share/opto/superword.cpp Changeset: 81e0c87f Branch: code-reflection Author: Paul H?bner Committer: Afshin Zafari Date: 2025-11-14 08:29:57 +0000 URL: https://git.openjdk.org/babylon/commit/81e0c87f28934cb0d66ad2500352b2728f44a1b7 8371320: runtime/ErrorHandling/PrintVMInfoAtExitTest.java fails with unexpected amount for Java Heap reserved memory Reviewed-by: azafari, jsikstro ! test/hotspot/jtreg/runtime/ErrorHandling/PrintVMInfoAtExitTest.java Changeset: 9eaa364a Branch: code-reflection Author: Afshin Zafari Date: 2025-11-14 09:03:11 +0000 URL: https://git.openjdk.org/babylon/commit/9eaa364a5221cba960467ffbaea14ea790809c6a 8361487: [ubsan] test_committed_virtualmemory.cpp check_covered_pages shows overflow Reviewed-by: jsjolen, phubner ! test/hotspot/gtest/runtime/test_committed_virtualmemory.cpp Changeset: 8a7af77e Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-14 10:10:03 +0000 URL: https://git.openjdk.org/babylon/commit/8a7af77e991511e144914abc129a9d4d40c0b76b 8371366: java/net/httpclient/whitebox/RawChannelTestDriver.java fails intermittently in jtreg timeout Reviewed-by: djelinski, vyazici ! test/jdk/java/net/httpclient/whitebox/RawChannelTestDriver.java ! test/jdk/java/net/httpclient/whitebox/java.net.http/jdk/internal/net/http/RawChannelTest.java Changeset: 00f2c38e Branch: code-reflection Author: Dhamoder Nalla Committer: Hao Sun Date: 2025-11-14 10:54:39 +0000 URL: https://git.openjdk.org/babylon/commit/00f2c38e373f5ae58ad6593cc7b9d53b9596eb17 8371161: [AArch64] Enable CPU feature UseSHA3Intrinsics for the Qualcomm processor family Reviewed-by: aph, haosun ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp ! src/hotspot/os_cpu/windows_aarch64/vm_version_windows_aarch64.cpp Changeset: ff851de8 Branch: code-reflection Author: Aleksey Shipilev Date: 2025-11-14 12:06:13 +0000 URL: https://git.openjdk.org/babylon/commit/ff851de852673740542d922d1ee15a6c92b80473 8371709: Add CTW to hotspot_compiler testing Reviewed-by: thartmann, epeter ! test/hotspot/jtreg/TEST.groups Changeset: 4cc655a2 Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-14 12:49:46 +0000 URL: https://git.openjdk.org/babylon/commit/4cc655a2f445bb32ce555b80ac28610b26c51f4c 8371791: G1: Improve accuracy of G1CollectedHeap::non_young_occupancy_after_allocation() Reviewed-by: ayang, iwalulya ! src/hotspot/share/gc/g1/g1Allocator.cpp ! src/hotspot/share/gc/g1/g1Allocator.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: 5d65c23c Branch: code-reflection Author: Severin Gehwolf Date: 2025-11-14 13:13:09 +0000 URL: https://git.openjdk.org/babylon/commit/5d65c23cd99b72527dcfab9eb6da9510e7dc6330 8370492: [Linux] Update cpu shares to cpu.weight mapping function Reviewed-by: cnorrbin, ayang, syan ! src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp ! src/java.base/linux/classes/jdk/internal/platform/cgroupv2/CgroupV2Subsystem.java ! test/hotspot/jtreg/containers/docker/TestMisc.java ! test/jdk/jdk/internal/platform/docker/MetricsCpuTester.java Changeset: 36daa265 Branch: code-reflection Author: Coleen Phillimore Date: 2025-11-14 14:12:27 +0000 URL: https://git.openjdk.org/babylon/commit/36daa2650d504b3cdc43c774601a6e5f9e9b2403 8371860: Make non-public methods in java_lang_Class private Reviewed-by: kbarrett, fparain ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp Changeset: 466cb383 Branch: code-reflection Author: Thomas Stuefe Date: 2025-11-14 14:53:19 +0000 URL: https://git.openjdk.org/babylon/commit/466cb383144edf0baa202dc5a2cac37e7572e2db 8371885: Mark UseCompressedClassPointers as obsolete for JDK 27 Reviewed-by: mdoerr, coleenp ! src/hotspot/share/runtime/arguments.cpp Changeset: 10f262a6 Branch: code-reflection Author: Aleksey Shipilev Date: 2025-11-14 15:31:28 +0000 URL: https://git.openjdk.org/babylon/commit/10f262a6ad9a6e89cd79409c5e1a3f7efda76928 8371804: C2: Tighten up LoadNode::Value comments after JDK-8346184 Reviewed-by: kvn, vlivanov ! src/hotspot/share/opto/memnode.cpp Changeset: 6e7eaf40 Branch: code-reflection Author: David Beaumont Committer: Roger Riggs Date: 2025-11-14 18:24:04 +0000 URL: https://git.openjdk.org/babylon/commit/6e7eaf40d1b660cbec0a226911c9dc88f94756aa 8371591: VerifyJimage test incorrectly skips all tests when comparing directory structure Reviewed-by: rriggs ! test/jdk/tools/jimage/VerifyJimage.java Changeset: 58b601ac Branch: code-reflection Author: Ioi Lam Date: 2025-11-14 18:41:50 +0000 URL: https://git.openjdk.org/babylon/commit/58b601ac4250a455e3f25f8505ead8c130eba642 8371874: AOTLinkedClassBulkLoader::preload_classes() should not allocate heap objects Reviewed-by: shade, ayang ! src/hotspot/share/classfile/javaClasses.cpp Changeset: 3924a28a Branch: code-reflection Author: Alex Menkov Date: 2025-11-14 19:39:26 +0000 URL: https://git.openjdk.org/babylon/commit/3924a28a2281bbdb13fe9f1e0b5347d57197f8dc 8371083: FollowReferences reports non-class objects as JVMTI_HEAP_REFERENCE_SYSTEM_CLASS Reviewed-by: lmesnik, sspitsyn ! src/hotspot/share/prims/jvmtiTagMap.cpp + test/hotspot/jtreg/serviceability/jvmti/FollowReferences/KindSystemClass/KindSystemClass.java + test/hotspot/jtreg/serviceability/jvmti/FollowReferences/KindSystemClass/libKindSystemClass.cpp Changeset: 91b97a49 Branch: code-reflection Author: Kim Barrett Date: 2025-11-14 20:32:12 +0000 URL: https://git.openjdk.org/babylon/commit/91b97a49d48ee8528b34486172293fd3a68ae3c7 8371922: Remove unused NonblockingQueue class Reviewed-by: coleenp - src/hotspot/share/utilities/nonblockingQueue.hpp - src/hotspot/share/utilities/nonblockingQueue.inline.hpp - test/hotspot/gtest/utilities/test_nonblockingQueue.cpp Changeset: cc05530b Branch: code-reflection Author: Roger Riggs Date: 2025-11-14 20:57:20 +0000 URL: https://git.openjdk.org/babylon/commit/cc05530b813564a40c233eaaa80b906795c6d752 8371732: [redo] Change java.time month/day field types to 'byte' Reviewed-by: darcy, alanb ! src/java.base/share/classes/java/time/LocalDate.java ! src/java.base/share/classes/java/time/MonthDay.java ! src/java.base/share/classes/java/time/YearMonth.java ! src/java.base/share/classes/java/time/chrono/HijrahDate.java ! test/jdk/java/time/test/java/time/TestLocalDate.java ! test/jdk/java/time/test/java/time/TestMonthDay.java ! test/jdk/java/time/test/java/time/TestYearMonth.java Changeset: ad3dfaf1 Branch: code-reflection Author: Anthony Scarpino Date: 2025-11-14 21:08:36 +0000 URL: https://git.openjdk.org/babylon/commit/ad3dfaf1fc483bb2bfd5c26d76c43b8f69454cbd 8360564: Implement JEP 524: PEM Encodings of Cryptographic Objects (Second Preview) Reviewed-by: weijun, mullan ! src/java.base/share/classes/java/security/DEREncodable.java + src/java.base/share/classes/java/security/PEM.java ! src/java.base/share/classes/java/security/PEMDecoder.java ! src/java.base/share/classes/java/security/PEMEncoder.java - src/java.base/share/classes/java/security/PEMRecord.java ! src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java ! src/java.base/share/classes/sun/security/ec/ECKeyFactory.java ! src/java.base/share/classes/sun/security/ec/ECPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/ec/XDHKeyFactory.java ! src/java.base/share/classes/sun/security/ec/ed/EdDSAKeyFactory.java ! src/java.base/share/classes/sun/security/pkcs/PKCS8Key.java ! src/java.base/share/classes/sun/security/provider/X509Factory.java ! src/java.base/share/classes/sun/security/util/KeyUtil.java ! src/java.base/share/classes/sun/security/util/Pem.java ! test/jdk/java/security/PEM/PEMData.java ! test/jdk/java/security/PEM/PEMDecoderTest.java ! test/jdk/java/security/PEM/PEMEncoderTest.java + test/jdk/javax/crypto/EncryptedPrivateKeyInfo/Encrypt.java - test/jdk/javax/crypto/EncryptedPrivateKeyInfo/EncryptKey.java ! test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKey.java + test/jdk/javax/crypto/EncryptedPrivateKeyInfo/GetKeyPair.java ! test/jdk/javax/net/ssl/interop/ClientHelloInterOp.java Changeset: 7aff8e15 Branch: code-reflection Author: Chen Liang Date: 2025-11-14 22:55:28 +0000 URL: https://git.openjdk.org/babylon/commit/7aff8e15ba59b1e23d2e62c200d52a26da1a2030 8371319: java.lang.reflect.Method#equals doesn't short-circuit with same instances Reviewed-by: jvernee ! src/java.base/share/classes/java/lang/reflect/Executable.java + test/micro/org/openjdk/bench/java/lang/reflect/ExecutableCompareBenchmark.java Changeset: bc928c81 Branch: code-reflection Author: Archie Cobbs Date: 2025-11-14 23:53:31 +0000 URL: https://git.openjdk.org/babylon/commit/bc928c814b5ea70505e362a643e18664e119bce3 5038439: Warning message for literal shift amounts outside the canonical domain Reviewed-by: darcy, jlahoda ! make/langtools/tools/propertiesparser/parser/MessageType.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties ! src/jdk.compiler/share/classes/module-info.java ! src/jdk.compiler/share/man/javac.md + test/langtools/tools/javac/diags/examples/BitShiftOutOfRange.java + test/langtools/tools/javac/lint/ShiftOutOfRange.java + test/langtools/tools/javac/lint/ShiftOutOfRange.out Changeset: 7c169c98 Branch: code-reflection Author: Harshitha Onkar Date: 2025-11-14 23:53:44 +0000 URL: https://git.openjdk.org/babylon/commit/7c169c9814a694126f524e8941b1035e6695900c 8365426: [macos26] Graphics2D tests fail on new macOS 26 Reviewed-by: kizune, dnguyen ! test/jdk/java/awt/Graphics2D/CopyAreaOOB.java Changeset: f971ee5e Branch: code-reflection Author: Serguei Spitsyn Date: 2025-11-15 01:50:47 +0000 URL: https://git.openjdk.org/babylon/commit/f971ee5ea07e3e1c0efe447a416e7242f5e46a16 8349192: jvmti/scenarios/contention/TC05/tc05t001 fails: ERROR: tc05t001.cpp, 281: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000) Reviewed-by: cjplummer, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Changeset: 6042c9a6 Branch: code-reflection Author: Anthony Scarpino Date: 2025-11-15 02:46:30 +0000 URL: https://git.openjdk.org/babylon/commit/6042c9a6f0c25c141a74d72ad462189da7f9e625 8371934: EncryptedPrivateKeyInfo methods need @since updates Reviewed-by: jnimeh ! src/java.base/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java Changeset: f6c90fe8 Branch: code-reflection Author: Alan Bateman Date: 2025-11-15 08:15:50 +0000 URL: https://git.openjdk.org/babylon/commit/f6c90fe8f9986b02797ba1f967c71a592a892266 8371226: Thread class description needs section on Thread Interruption Reviewed-by: prappo, vklang, liach, rriggs ! src/java.base/share/classes/java/lang/InterruptedException.java ! src/java.base/share/classes/java/lang/Thread.java Changeset: f510b4a3 Branch: code-reflection Author: Quan Anh Mai Date: 2025-11-15 12:59:04 +0000 URL: https://git.openjdk.org/babylon/commit/f510b4a3bafa3f0d2c9ebf0b33d48f57f3bdef95 8355574: Fatal error in abort_verify_int_in_range due to Invalid CastII Reviewed-by: vlivanov, roland ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/arraycopynode.hpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/compiler/arraycopy/TestArrayCopyConjoint.java Changeset: 7d35a283 Branch: code-reflection Author: Tobias Hartmann Date: 2025-11-16 10:31:23 +0000 URL: https://git.openjdk.org/babylon/commit/7d35a283cf2497565d230e3d5426f563f7e5870d 8371958: [BACKOUT] 8371709: Add CTW to hotspot_compiler testing Reviewed-by: ayang ! test/hotspot/jtreg/TEST.groups Changeset: 77381318 Branch: code-reflection Author: David Briemann Date: 2025-11-17 06:49:12 +0000 URL: https://git.openjdk.org/babylon/commit/7738131835d08f47dd7c535b12bb7ea7b0ff0b90 8371642: TestNumberOfContinuousZeros.java fails on PPC64 Reviewed-by: mdoerr, epeter ! test/hotspot/jtreg/compiler/vectorization/TestNumberOfContinuousZeros.java Changeset: ce1adf63 Branch: code-reflection Author: Axel Boldt-Christmas Date: 2025-11-17 07:33:33 +0000 URL: https://git.openjdk.org/babylon/commit/ce1adf63ea1146fba4cf36c10dc5f1d33aa88000 8371672: G1: G1YoungGenSizer handling of NewRatio, NewSize and MaxNewSize 8370494: G1: NewSize not bounded by InitialHeapSize or MaxHeapSize Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/g1/g1YoungGenSizer.cpp Changeset: 8690d263 Branch: code-reflection Author: Christian Stein Date: 2025-11-17 07:53:32 +0000 URL: https://git.openjdk.org/babylon/commit/8690d263d9dd0fd06ed41d9529fd8cc84e1c08c8 8268613: jar --validate should check inital entries of a JAR file Reviewed-by: lancea, jvernee ! src/jdk.jartool/share/classes/sun/tools/jar/Validator.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! test/jdk/tools/jar/ValidatorTest.java Changeset: d032b28d Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-17 08:50:50 +0000 URL: https://git.openjdk.org/babylon/commit/d032b28d9d042a36f5163b079151643bb49294e9 8371894: Minor style fixes in AOT/CDS code Reviewed-by: stefank, kvn, iklam ! src/hotspot/share/cds/cdsConfig.cpp ! src/hotspot/share/cds/filemap.hpp ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/memory/universe.cpp Changeset: 970533d4 Branch: code-reflection Author: Johan Sj?len Date: 2025-11-17 09:06:32 +0000 URL: https://git.openjdk.org/babylon/commit/970533d41d3d1b4ebe12868c85579d37b3b23655 8371779: Replace MemTagBitmap with ResourceBitMap Reviewed-by: azafari, phubner ! src/hotspot/share/nmt/memMapPrinter.cpp - src/hotspot/share/nmt/memTagBitmap.hpp Changeset: 69e30244 Branch: code-reflection Author: Andrey Turbanov Date: 2025-11-17 09:08:21 +0000 URL: https://git.openjdk.org/babylon/commit/69e30244c0c359e7108acd36d903fa22970822b9 8349157: Unnecessary Hashtable usage in XKeysym.javaKeycode2KeysymHash Reviewed-by: aivanov, serb ! src/java.desktop/unix/classes/sun/awt/X11/XKeysym.java Changeset: 09b25cd0 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-17 09:38:17 +0000 URL: https://git.openjdk.org/babylon/commit/09b25cd0a24a4eaddce49917d958adc667ab5465 8371465: Parallel: Revise asserts around heap expansion Reviewed-by: aboldtch, tschatzl ! src/hotspot/share/gc/parallel/mutableSpace.cpp ! src/hotspot/share/gc/parallel/mutableSpace.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: 812add27 Branch: code-reflection Author: Jonas Norlinder Committer: Kevin Walls Date: 2025-11-17 10:42:02 +0000 URL: https://git.openjdk.org/babylon/commit/812add27abdc70bc52ca105bc9430494a6491ecd 8368527: JMX: Add an MXBeans method to query GC CPU time Reviewed-by: phh, kevinw ! src/hotspot/share/include/jmm.h ! src/hotspot/share/services/cpuTimeUsage.cpp ! src/hotspot/share/services/management.cpp ! src/java.management/share/classes/java/lang/management/MemoryMXBean.java ! src/java.management/share/classes/sun/management/MemoryImpl.java ! src/java.management/share/classes/sun/management/VMManagement.java ! src/java.management/share/classes/sun/management/VMManagementImpl.java ! src/java.management/share/native/libmanagement/VMManagementImpl.c ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/server/ServerMemoryMXBean.java + test/jdk/java/lang/management/MemoryMXBean/StressGetTotalGcCpuTimeDuringShutdown.java + test/jdk/java/lang/management/MemoryMXBean/TestGetTotalGcCpuTime.java ! test/jdk/javax/management/mxbean/MXBeanInteropTest1.java Changeset: d19e072f Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-17 11:01:32 +0000 URL: https://git.openjdk.org/babylon/commit/d19e072f97681cfc50a8c7b96a25589070436a10 8371916: Questionable volatile decrement in AckFrameSpliterator Reviewed-by: vyazici, jpai, djelinski ! src/java.net.http/share/classes/jdk/internal/net/http/quic/frames/AckFrame.java Changeset: df35412d Branch: code-reflection Author: Zihao Lin Committer: Tobias Hartmann Date: 2025-11-17 11:49:01 +0000 URL: https://git.openjdk.org/babylon/commit/df35412db1d7e883148590e24d968cfe2f5c6bbc 8368961: Remove redundant checks in ciField.cpp Reviewed-by: bmaillard, aseoane, thartmann ! src/hotspot/share/ci/ciField.cpp Changeset: cebb03ef Branch: code-reflection Author: Matthew Donovan Date: 2025-11-17 12:13:39 +0000 URL: https://git.openjdk.org/babylon/commit/cebb03ef24fad8705156f12cecd2da6351cd1ef6 8371349: Update NSS library to 3.117 Reviewed-by: weijun, myankelevich, hchao ! test/jdk/sun/security/pkcs11/PKCS11Test.java Changeset: 8301d991 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-17 12:28:39 +0000 URL: https://git.openjdk.org/babylon/commit/8301d9917ec9fed40e3af77998f88165e0837daf 8371825: G1: Use more precise filler API in fill_range_with_dead_objects Reviewed-by: shade, tschatzl ! src/hotspot/share/gc/g1/g1HeapRegion.cpp Changeset: 960987e8 Branch: code-reflection Author: Kevin Walls Date: 2025-11-17 13:40:36 +0000 URL: https://git.openjdk.org/babylon/commit/960987e8c1428ce1d89ee13e007e06206fe6885c 8371991: Build failure in docs for MemoryMXBean Reviewed-by: alanb ! src/java.management/share/classes/java/lang/management/MemoryMXBean.java Changeset: 44087ea5 Branch: code-reflection Author: SendaoYan Date: 2025-11-17 13:48:52 +0000 URL: https://git.openjdk.org/babylon/commit/44087ea5d697deb3a7dd0e3c82f898dd9df1bfa3 8371682: Suppress javac warning from ThreadPoolExecutorSubclassTest.java Reviewed-by: jpai ! test/jdk/java/util/concurrent/tck/ExecutorsTest.java ! test/jdk/java/util/concurrent/tck/JSR166TestCase.java ! test/jdk/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java Changeset: 6385c663 Branch: code-reflection Author: Paul H?bner Committer: Joel Sikstr?m Date: 2025-11-17 14:06:41 +0000 URL: https://git.openjdk.org/babylon/commit/6385c663dc6ce892c23bc9208e1ffe24fa78ccd7 8371607: Remove GCSharedStringsDuringDumpWb.java after JDK-8362561 Reviewed-by: ayang, jsikstro - test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCSharedStringsDuringDumpWb.java Changeset: 52ffe8a0 Branch: code-reflection Author: Mark Powers Date: 2025-11-17 14:59:30 +0000 URL: https://git.openjdk.org/babylon/commit/52ffe8a09637701cf93d3425b69089ced5ad4dcb 8371156: PBKDF2 default values should not be DER encoded Reviewed-by: weijun ! src/java.base/share/classes/sun/security/util/PBKDF2Parameters.java ! test/jdk/sun/security/pkcs12/ImportPassKeyAlg.java ! test/jdk/sun/security/pkcs12/PBMAC1Test.java Changeset: 9ec773ad Branch: code-reflection Author: Brian Burkhalter Date: 2025-11-17 16:48:40 +0000 URL: https://git.openjdk.org/babylon/commit/9ec773ad27773f5813c79ae33ac1d2393c2e0cc8 8371689: (fs) CopyMoveHelper.copyToForeignTarget use of sourcePosixView is confusing Reviewed-by: alanb ! src/java.base/share/classes/java/nio/file/CopyMoveHelper.java Changeset: 6c09529c Branch: code-reflection Author: Kim Barrett Date: 2025-11-17 20:53:10 +0000 URL: https://git.openjdk.org/babylon/commit/6c09529cd637a34c1ffc42a5feb71e8646be4237 8369188: Update link-time check for HotSpot uses of allocation and deallocation functions Reviewed-by: jwaters, erikj ! make/hotspot/lib/CompileJvm.gmk Changeset: e5f63326 Branch: code-reflection Author: Leonid Mesnik Date: 2025-11-17 21:00:22 +0000 URL: https://git.openjdk.org/babylon/commit/e5f63326100384d2c2be8c916423e1f120b595d3 8371650: Add CMakeLists.txt and compile_commands.json into .gitignore Reviewed-by: erikj ! .gitignore Changeset: e0670387 Branch: code-reflection Author: Damon Nguyen Date: 2025-11-17 21:21:03 +0000 URL: https://git.openjdk.org/babylon/commit/e067038796e2798132e07aa47b695f3c21b87e79 8150564: Migrate useful ExtendedRobot methods into awt.Robot Reviewed-by: kizune, prr, liach ! src/java.desktop/share/classes/java/awt/Robot.java Changeset: 69682167 Branch: code-reflection Author: Ramkumar Sunderbabu Committer: Hao Sun Date: 2025-11-18 00:59:14 +0000 URL: https://git.openjdk.org/babylon/commit/696821670e11fee003906806f081038032ac4985 8293484: AArch64: TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on CPU with SHA512 feature support Reviewed-by: haosun, aph ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/DigestOptionsBase.java ! test/hotspot/jtreg/compiler/intrinsics/sha/cli/TestUseSHA512IntrinsicsOptionOnSupportedCPU.java Changeset: 46b5e588 Branch: code-reflection Author: SendaoYan Date: 2025-11-18 03:18:36 +0000 URL: https://git.openjdk.org/babylon/commit/46b5e588ab18a68d164b1d97e71d769585c7c4b8 8371697: test/jdk/java/nio/file/FileStore/Basic.java fails after 8360887 on linux Reviewed-by: alanb ! test/jdk/java/nio/file/FileStore/Basic.java Changeset: 695a4abd Branch: code-reflection Author: Anjian Wen Committer: Fei Yang Date: 2025-11-18 03:37:11 +0000 URL: https://git.openjdk.org/babylon/commit/695a4abd5f7e9edcea9f1a724a9ceb87340a8f25 8371966: RISC-V: Incorrect pointer dereference in TemplateInterpreterGenerator::generate_native_entry Reviewed-by: fyang, fjiang ! src/hotspot/cpu/riscv/templateInterpreterGenerator_riscv.cpp Changeset: 16557739 Branch: code-reflection Author: Vishal Chand Committer: Aleksey Shipilev Date: 2025-11-18 06:49:03 +0000 URL: https://git.openjdk.org/babylon/commit/16557739791ada59dc1991f65a0218434df01f9e 8371881: C2: Fix potential SEGV in VTransformReductionVectorNode tracing Reviewed-by: shade, epeter ! src/hotspot/share/opto/vtransform.cpp Changeset: 8cdfec8d Branch: code-reflection Author: Nityanand Rai <163765635+nityarai08 at users.noreply.github.com> Committer: Aleksey Shipilev Date: 2025-11-18 06:49:28 +0000 URL: https://git.openjdk.org/babylon/commit/8cdfec8d1cdc7e3137035cebe1cc189e36c0e319 8371852: Shenandoah: Unused ShenandoahFreeSet::_allocated_since_gc_start field Reviewed-by: shade, fandreuzzi ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp Changeset: 26460b6f Branch: code-reflection Author: Alan Bateman Date: 2025-11-18 08:06:18 +0000 URL: https://git.openjdk.org/babylon/commit/26460b6f12ce0763b79acfd98fca260b509a82c5 8353835: Implement JEP 500: Prepare to Make Final Mean Final Reviewed-by: liach, vlivanov, dholmes, vyazici ! make/test/JtregNativeJdk.gmk ! src/hotspot/share/ci/ciField.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jniCheck.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/fieldDescriptor.hpp ! src/java.base/share/classes/java/lang/Module.java ! src/java.base/share/classes/java/lang/ModuleLayer.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/reflect/AccessibleObject.java ! src/java.base/share/classes/java/lang/reflect/Field.java ! src/java.base/share/classes/java/lang/reflect/ReflectAccess.java + src/java.base/share/classes/java/lang/reflect/doc-files/MutationMethods.html ! src/java.base/share/classes/jdk/internal/access/JavaLangAccess.java ! src/java.base/share/classes/jdk/internal/access/JavaLangReflectAccess.java + src/java.base/share/classes/jdk/internal/event/FinalFieldMutationEvent.java ! src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java ! src/java.base/share/classes/jdk/internal/module/Modules.java ! src/java.base/share/classes/sun/launcher/LauncherHelper.java ! src/java.base/share/classes/sun/launcher/resources/launcher.properties ! src/java.base/share/man/java.md + src/jdk.jfr/share/classes/jdk/jfr/events/FinalFieldMutationEvent.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JDKEvents.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MirrorEvents.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformEventType.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc + test/hotspot/jtreg/runtime/jni/mutateFinals/MutateFinals.java + test/hotspot/jtreg/runtime/jni/mutateFinals/MutateFinalsTest.java + test/hotspot/jtreg/runtime/jni/mutateFinals/libMutateFinals.c ! test/jdk/java/lang/invoke/MethodHandlesGeneralTest.java ! test/jdk/java/lang/invoke/VarHandles/accessibility/TestFieldLookupAccessibility.java ! test/jdk/java/lang/invoke/unreflect/UnreflectTest.java ! test/jdk/java/lang/reflect/AccessibleObject/HiddenClassTest.java ! test/jdk/java/lang/reflect/Field/NegativeTest.java ! test/jdk/java/lang/reflect/Field/Set.java + test/jdk/java/lang/reflect/Field/mutateFinals/FinalFieldMutationEventTest.java + test/jdk/java/lang/reflect/Field/mutateFinals/MutateFinalsTest.java + test/jdk/java/lang/reflect/Field/mutateFinals/cli/CommandLineTest.java + test/jdk/java/lang/reflect/Field/mutateFinals/cli/CommandLineTestHelper.java + test/jdk/java/lang/reflect/Field/mutateFinals/jar/ExecutableJarTest.java + test/jdk/java/lang/reflect/Field/mutateFinals/jar/ExecutableJarTestHelper.java + test/jdk/java/lang/reflect/Field/mutateFinals/jar/m/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/jar/m/p/C.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/JNIAttachMutator.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/JNIAttachMutatorTest.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/libJNIAttachMutator.c + test/jdk/java/lang/reflect/Field/mutateFinals/jni/m/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/m/p/C1.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/m/p/C2.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/m/p/C3.java + test/jdk/java/lang/reflect/Field/mutateFinals/jni/m/q/C.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/Driver.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m1/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m1/p1/M1Mutator.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m2/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m2/p2/M2Mutator.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m3/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/m3/p3/M3Mutator.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/module-info.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/test/TestMain.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/test/fieldholders/PrivateFields.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/test/fieldholders/PublicFields.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/test/internal/TestMutator.java + test/jdk/java/lang/reflect/Field/mutateFinals/modules/test/test/spi/Mutator.java ! test/jdk/java/util/jar/Attributes/NullAndEmptyKeysAndValues.java ! test/jdk/java/util/logging/FileHandlerLongLimit.java ! test/jdk/jdk/jfr/event/metadata/TestLookForUntestedEvents.java ! test/jdk/sun/security/pkcs11/Cipher/CancelMultipart.java ! test/jdk/sun/security/provider/SecureRandom/DRBGS11n.java ! test/jdk/sun/security/util/ManifestDigester/FindSection.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java ! test/lib/jdk/test/lib/jfr/EventNames.java + test/micro/org/openjdk/bench/java/lang/reflect/FieldSet.java Changeset: 8af59437 Branch: code-reflection Author: Jan Lahoda Date: 2025-11-18 08:13:58 +0000 URL: https://git.openjdk.org/babylon/commit/8af594371979b2b76ec04e0a2753413dc35b8d44 8370334: javadoc NPE with "import module" statement Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java ! test/langtools/jdk/javadoc/tool/modules/Modules.java ! test/langtools/tools/javac/modules/AddModulesTest.java Changeset: 50a30497 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-18 09:37:20 +0000 URL: https://git.openjdk.org/babylon/commit/50a30497370799e8f377a11914562a15b0a48fbb 8371643: Remove ThreadLocalAllocBuffer::_reserve_for_allocation_prefetch Reviewed-by: mdoerr, kvn, tschatzl ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp ! src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java Changeset: 72ebca8a Branch: code-reflection Author: Severin Gehwolf Date: 2025-11-18 09:42:28 +0000 URL: https://git.openjdk.org/babylon/commit/72ebca8a0b19fac8a9483e5a3a98b454176fc342 8365606: Container code should not be using jlong/julong Reviewed-by: stuefe, cnorrbin, fitzsim ! src/hotspot/os/linux/cgroupSubsystem_linux.cpp ! src/hotspot/os/linux/cgroupSubsystem_linux.hpp ! src/hotspot/os/linux/cgroupUtil_linux.cpp ! src/hotspot/os/linux/cgroupUtil_linux.hpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.cpp ! src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp ! src/hotspot/os/linux/cgroupV2Subsystem_linux.cpp ! src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp ! src/hotspot/os/linux/osContainer_linux.cpp ! src/hotspot/os/linux/osContainer_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/os.cpp ! test/hotspot/gtest/runtime/test_cgroupSubsystem_linux.cpp Changeset: 3a2845f3 Branch: code-reflection Author: Francesco Andreuzzi Committer: Albert Mingkun Yang Date: 2025-11-18 09:43:28 +0000 URL: https://git.openjdk.org/babylon/commit/3a2845f334a59670d54699919073f0e908c038c4 8037914: Add JFR event for string deduplication Reviewed-by: ayang, egahlin ! src/hotspot/share/gc/shared/stringdedup/stringDedupProcessor.cpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupStat.cpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupStat.hpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp ! src/hotspot/share/jfr/metadata/metadata.xml ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc + test/jdk/jdk/jfr/event/gc/detailed/TestStringDeduplicationEvent.java ! test/lib/jdk/test/lib/jfr/EventNames.java Changeset: 28d94d6a Branch: code-reflection Author: Jonas Norlinder Committer: Kevin Walls Date: 2025-11-18 10:08:17 +0000 URL: https://git.openjdk.org/babylon/commit/28d94d6ab4994b844af98c5c227b40b5fb8a72e5 8372008: TestGetTotalGcCpuTime test failures on Windows (Some GC CPU time must have been reported) Reviewed-by: kevinw, alanb, cjplummer, dholmes ! test/jdk/java/lang/management/MemoryMXBean/TestGetTotalGcCpuTime.java Changeset: df5b105b Branch: code-reflection Author: Stefan Karlsson Date: 2025-11-18 11:57:58 +0000 URL: https://git.openjdk.org/babylon/commit/df5b105bbb55d9cc923ac45ff99e702126626670 8371698: ZGC: Call GTEST_SKIP when OS is unsupported Reviewed-by: aboldtch, jsikstro, mdoerr ! test/hotspot/gtest/gc/z/test_zForwarding.cpp ! test/hotspot/gtest/gc/z/test_zMapper_windows.cpp ! test/hotspot/gtest/gc/z/test_zVirtualMemoryManager.cpp ! test/hotspot/gtest/gc/z/zunittest.hpp Changeset: f9464499 Branch: code-reflection Author: Per Minborg Date: 2025-11-18 12:20:23 +0000 URL: https://git.openjdk.org/babylon/commit/f94644999766e752f7d60ce52c14a7db79005035 8366178: Implement JEP 526: Lazy Constants (Second Preview) 8371882: Improve documentation for JEP 526: Lazy Constants Reviewed-by: jvernee, mcimadamore + src/java.base/share/classes/java/lang/LazyConstant.java - src/java.base/share/classes/java/lang/StableValue.java ! src/java.base/share/classes/java/nio/charset/Charset.java ! src/java.base/share/classes/java/util/Currency.java ! src/java.base/share/classes/java/util/ImmutableCollections.java + src/java.base/share/classes/java/util/LazyCollections.java ! src/java.base/share/classes/java/util/List.java ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/LocaleISOData.java ! src/java.base/share/classes/java/util/Map.java ! src/java.base/share/classes/java/util/Optional.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/jdk/internal/access/JavaUtilCollectionAccess.java ! src/java.base/share/classes/jdk/internal/foreign/CaptureStateUtil.java ! src/java.base/share/classes/jdk/internal/io/JdkConsoleImpl.java ! src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java + src/java.base/share/classes/jdk/internal/lang/LazyConstantImpl.java - src/java.base/share/classes/jdk/internal/lang/stable/StableEnumFunction.java - src/java.base/share/classes/jdk/internal/lang/stable/StableFunction.java - src/java.base/share/classes/jdk/internal/lang/stable/StableIntFunction.java - src/java.base/share/classes/jdk/internal/lang/stable/StableSupplier.java - src/java.base/share/classes/jdk/internal/lang/stable/StableUtil.java - src/java.base/share/classes/jdk/internal/lang/stable/StableValueImpl.java ! src/java.base/share/classes/sun/nio/ch/Net.java ! src/java.base/share/classes/sun/util/locale/BaseLocale.java ! src/java.base/share/classes/sun/util/resources/BreakIteratorResourceBundle.java ! src/java.base/share/classes/sun/util/resources/OpenListResourceBundle.java + test/jdk/java/lang/LazyConstant/DemoContainerInjectionTest.java + test/jdk/java/lang/LazyConstant/DemoImperativeTest.java + test/jdk/java/lang/LazyConstant/DemoMapTest.java + test/jdk/java/lang/LazyConstant/LazyConstantSafePublicationTest.java + test/jdk/java/lang/LazyConstant/LazyConstantTest.java + test/jdk/java/lang/LazyConstant/LazyConstantTestUtil.java + test/jdk/java/lang/LazyConstant/LazyListTest.java + test/jdk/java/lang/LazyConstant/LazyMapTest.java + test/jdk/java/lang/LazyConstant/TrustedFieldTypeTest.java - test/jdk/java/lang/StableValue/StableFunctionTest.java - test/jdk/java/lang/StableValue/StableIntFunctionTest.java - test/jdk/java/lang/StableValue/StableListTest.java - test/jdk/java/lang/StableValue/StableMapTest.java - test/jdk/java/lang/StableValue/StableSupplierTest.java - test/jdk/java/lang/StableValue/StableTestUtil.java - test/jdk/java/lang/StableValue/StableValueFactoriesTest.java - test/jdk/java/lang/StableValue/StableValueTest.java - test/jdk/java/lang/StableValue/StableValuesSafePublicationTest.java - test/jdk/java/lang/StableValue/TrustedFieldTypeTest.java ! test/jdk/java/util/Collection/MOAT.java ! test/langtools/jdk/jshell/CompletionSuggestionTest.java - test/micro/org/openjdk/bench/java/lang/stable/StableFunctionBenchmark.java - test/micro/org/openjdk/bench/java/lang/stable/StableFunctionSingleBenchmark.java - test/micro/org/openjdk/bench/java/lang/stable/StableIntFunctionBenchmark.java - test/micro/org/openjdk/bench/java/lang/stable/StableIntFunctionSingleBenchmark.java + test/micro/org/openjdk/bench/java/lang/stable/StableListBenchmark.java + test/micro/org/openjdk/bench/java/lang/stable/StableListSingleBenchmark.java + test/micro/org/openjdk/bench/java/lang/stable/StableMapBenchmark.java + test/micro/org/openjdk/bench/java/lang/stable/StableMapSingleBenchmark.java ! test/micro/org/openjdk/bench/java/lang/stable/StableMethodHandleBenchmark.java ! test/micro/org/openjdk/bench/java/lang/stable/StableSupplierBenchmark.java ! test/micro/org/openjdk/bench/java/lang/stable/StableValueBenchmark.java ! test/micro/org/openjdk/bench/java/lang/stable/VarHandleHolderBenchmark.java Changeset: 36b66e13 Branch: code-reflection Author: Johan Sj?len Date: 2025-11-18 13:05:57 +0000 URL: https://git.openjdk.org/babylon/commit/36b66e13c8eca8e460bfd6d900f139408aff9d43 8371778: Make MallocMemorySummary::_snapshot a DeferredStatic Reviewed-by: phubner, azafari ! src/hotspot/share/nmt/mallocTracker.cpp ! src/hotspot/share/nmt/mallocTracker.hpp Changeset: 2e68b79a Branch: code-reflection Author: Jan Lahoda Date: 2025-11-18 13:55:42 +0000 URL: https://git.openjdk.org/babylon/commit/2e68b79a3973c8a3dde6b47f19b19c0c7faacc51 8364991: Incorrect not-exhaustive error Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ExhaustivenessComputer.java ! test/langtools/tools/javac/patterns/Exhaustiveness.java Changeset: dcba014a Branch: code-reflection Author: Yasumasa Suenaga Date: 2025-11-18 14:44:14 +0000 URL: https://git.openjdk.org/babylon/commit/dcba014ad56eae753c25c579fb30bb8ecfab69af 8371967: Add Visual Studio 2026 to build toolchain for Windows Reviewed-by: erikj ! doc/building.html ! doc/building.md ! make/autoconf/toolchain_microsoft.m4 Changeset: 43040f30 Branch: code-reflection Author: Brian Burkhalter Date: 2025-11-18 15:11:45 +0000 URL: https://git.openjdk.org/babylon/commit/43040f30a72591a37deb9a54ab7723988c1e4b51 8372012: java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java should check ability to create links Reviewed-by: alanb, jpai ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java Changeset: b6d83eda Branch: code-reflection Author: Chen Liang Date: 2025-11-18 15:14:20 +0000 URL: https://git.openjdk.org/babylon/commit/b6d83eda6bfa76da98274aa3ad294759cb56d3a5 8371960: Missing null check in AnnotatedType annotation accessor methods Reviewed-by: alanb ! src/java.base/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java + test/jdk/java/lang/reflect/AnnotatedElement/AnnotatedElementNullCheckTest.java Changeset: 1f99cf94 Branch: code-reflection Author: Chen Liang Date: 2025-11-18 15:14:49 +0000 URL: https://git.openjdk.org/babylon/commit/1f99cf942449728cdeb9918b93fd9a97a51eb0b6 8372002: VarHandle for receiver's superclass instance fields fails describeConstable Reviewed-by: psandoz, jvernee ! src/java.base/share/classes/java/lang/invoke/VarHandles.java ! test/jdk/java/lang/invoke/VarHandles/describeConstable/DescribeConstableTest.java ! test/jdk/java/lang/invoke/VarHandles/describeConstable/p/C.java ! test/jdk/java/lang/invoke/VarHandles/describeConstable/p/q/Q.java Changeset: 713de231 Branch: code-reflection Author: Nityanand Rai Committer: Aleksey Shipilev Date: 2025-11-18 15:47:54 +0000 URL: https://git.openjdk.org/babylon/commit/713de231a61234632e2f9858b222b5f7fd0bdaf1 8371854: Shenandoah: Simplify WALK_FORWARD_IN_BLOCK_START use Reviewed-by: shade, ysr, xpeng ! src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.cpp Changeset: ac6f5e96 Branch: code-reflection Author: Hannes Walln?fer Date: 2025-11-18 16:52:12 +0000 URL: https://git.openjdk.org/babylon/commit/ac6f5e96512a7f003ac536611c53f2564ea912a6 8366094: Sealed graph for nested types creates broken links Reviewed-by: liach ! make/jdk/src/classes/build/tools/taglet/SealedGraph.java Changeset: 0e6c7e86 Branch: code-reflection Author: Hannes Walln?fer Date: 2025-11-18 17:55:43 +0000 URL: https://git.openjdk.org/babylon/commit/0e6c7e8664fdddd8b789851263613852fc2c55f7 8371896: Links in snippets can not be highlighted Reviewed-by: liach ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/taglets/SnippetTaglet.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java Changeset: b3e408c0 Branch: code-reflection Author: Ioi Lam Date: 2025-11-18 18:12:07 +0000 URL: https://git.openjdk.org/babylon/commit/b3e408c07891b58a312a58ffd756d6a1d18c0f6d 8372045: AOT assembly phase asserts with old class if AOT class linking is disabled Reviewed-by: shade, mgronlun ! src/hotspot/share/oops/instanceKlass.cpp + test/hotspot/jtreg/runtime/cds/appcds/aotCache/OldClassSupport2.java Changeset: 4a975637 Branch: code-reflection Author: Naoto Sato Date: 2025-11-18 18:35:01 +0000 URL: https://git.openjdk.org/babylon/commit/4a975637a144fa8aa449a1419e656721833513b5 8346944: Update Unicode Data Files to 17.0.0 8346947: Update ICU4J to Version 78.1 Reviewed-by: joehw ! src/java.base/share/classes/java/lang/Character.java ! src/java.base/share/classes/java/text/CollationElementIterator.java ! src/java.base/share/classes/jdk/internal/icu/impl/CharacterIteratorWrapper.java ! src/java.base/share/classes/jdk/internal/icu/impl/Norm2AllModes.java ! src/java.base/share/classes/jdk/internal/icu/impl/ReplaceableUCharacterIterator.java ! src/java.base/share/classes/jdk/internal/icu/impl/UBiDiProps.java ! src/java.base/share/classes/jdk/internal/icu/impl/UCharacterProperty.java + src/java.base/share/classes/jdk/internal/icu/impl/data/icudata/nfc.nrm = src/java.base/share/classes/jdk/internal/icu/impl/data/icudata/nfkc.nrm + src/java.base/share/classes/jdk/internal/icu/impl/data/icudata/ubidi.icu + src/java.base/share/classes/jdk/internal/icu/impl/data/icudata/uprops.icu - src/java.base/share/classes/jdk/internal/icu/impl/data/icudt76b/nfc.nrm - src/java.base/share/classes/jdk/internal/icu/impl/data/icudt76b/ubidi.icu - src/java.base/share/classes/jdk/internal/icu/impl/data/icudt76b/uprops.icu ! src/java.base/share/classes/jdk/internal/icu/text/NormalizerBase.java ! src/java.base/share/classes/jdk/internal/icu/text/UCharacterIterator.java ! src/java.base/share/classes/jdk/internal/icu/text/UnicodeSet.java ! src/java.base/share/classes/jdk/internal/icu/util/VersionInfo.java ! src/java.base/share/classes/jdk/internal/util/regex/Grapheme.java ! src/java.base/share/classes/jdk/internal/util/regex/IndicConjunctBreak.java.template ! src/java.base/share/data/unicodedata/Blocks.txt ! src/java.base/share/data/unicodedata/CaseFolding.txt ! src/java.base/share/data/unicodedata/DerivedCoreProperties.txt ! src/java.base/share/data/unicodedata/NormalizationTest.txt ! src/java.base/share/data/unicodedata/PropList.txt ! src/java.base/share/data/unicodedata/PropertyValueAliases.txt ! src/java.base/share/data/unicodedata/ReadMe.txt ! src/java.base/share/data/unicodedata/Scripts.txt ! src/java.base/share/data/unicodedata/SpecialCasing.txt ! src/java.base/share/data/unicodedata/UnicodeData.txt ! src/java.base/share/data/unicodedata/auxiliary/GraphemeBreakProperty.txt ! src/java.base/share/data/unicodedata/auxiliary/GraphemeBreakTest.txt ! src/java.base/share/data/unicodedata/emoji/emoji-data.txt ! src/java.base/share/legal/icu.md ! src/java.base/share/legal/unicode.md Changeset: 27a38d90 Branch: code-reflection Author: Chad Rakoczy Committer: Tobias Hartmann Date: 2025-11-18 20:28:33 +0000 URL: https://git.openjdk.org/babylon/commit/27a38d9093958ae4851bc61b8d3f0d71dc780823 8371121: compiler/whitebox/DeoptimizeRelocatedNMethod.java fails with C1 Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/whitebox/DeoptimizeRelocatedNMethod.java Changeset: 66fb0152 Branch: code-reflection Author: Jan Kratochvil Committer: Ioi Lam Date: 2025-11-18 21:51:28 +0000 URL: https://git.openjdk.org/babylon/commit/66fb015267058f9b5e6788eaeaa758be56ba553e 8357579: Compilation error: first argument in call to 'memset' is a pointer to non-trivially copyable type Co-authored-by: Ioi Lam Reviewed-by: iklam, asmehra ! src/hotspot/share/oops/resolvedFieldEntry.cpp ! src/hotspot/share/oops/resolvedFieldEntry.hpp ! src/hotspot/share/oops/resolvedMethodEntry.cpp ! src/hotspot/share/oops/resolvedMethodEntry.hpp Changeset: b086e34f Branch: code-reflection Author: Ioi Lam Date: 2025-11-18 21:51:54 +0000 URL: https://git.openjdk.org/babylon/commit/b086e34f7170631d7568dc50a7c075dc9c2f173b 8371771: CDS test SharedStringsStress.java failed with insufficient heap Reviewed-by: kvn ! test/hotspot/jtreg/runtime/cds/appcds/sharedStrings/SharedStringsStress.java Changeset: 256a9bef Branch: code-reflection Author: Vladimir Ivanov Date: 2025-11-18 22:29:37 +0000 URL: https://git.openjdk.org/babylon/commit/256a9beffc106d6657a912a33f97e7f97acbb1e1 8280469: C2: CHA support for interface calls when inlining through method handle linker Reviewed-by: kvn, roland ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp ! src/hotspot/share/opto/doCall.cpp ! test/hotspot/jtreg/compiler/cha/StrengthReduceInterfaceCall.java Changeset: aeea8497 Branch: code-reflection Author: John Engebretson Committer: Stuart Marks Date: 2025-11-18 23:37:06 +0000 URL: https://git.openjdk.org/babylon/commit/aeea8497562aabda12f292ad93c9f0f6935cc842 8371164: ArrayList.addAll() optimizations Reviewed-by: smarks, ogillespie ! src/java.base/share/classes/java/util/ArrayList.java ! src/java.base/share/classes/java/util/Collections.java ! test/jdk/java/util/Collection/MOAT.java + test/micro/org/openjdk/bench/java/util/ArrayListBulkOpsBenchmark.java Changeset: 152cd4d8 Branch: code-reflection Author: Kim Barrett Date: 2025-11-18 23:43:22 +0000 URL: https://git.openjdk.org/babylon/commit/152cd4d8bab7d3428d0330c56a3cb9ed7feef313 8371956: Convert OopStorage to use Atomic Reviewed-by: stefank, tschatzl ! src/hotspot/share/gc/shared/oopStorage.cpp ! src/hotspot/share/gc/shared/oopStorage.hpp ! src/hotspot/share/gc/shared/oopStorage.inline.hpp ! src/hotspot/share/gc/shared/oopStorageParState.hpp ! test/hotspot/gtest/gc/shared/test_oopStorage.cpp Changeset: 902aa4dc Branch: code-reflection Author: Alexander Zuev Date: 2025-11-18 23:51:32 +0000 URL: https://git.openjdk.org/babylon/commit/902aa4dcd297fef34cb302e468b030c48665ec84 8372120: Add missing sound keyword to MIDI tests Reviewed-by: kcr, dholmes ! test/jdk/javax/sound/midi/MidiDeviceConnectors/TestAllDevices.java ! test/jdk/javax/sound/midi/SysexMessage/SendRawSysexMessage.java ! test/jdk/javax/sound/midi/spi/MidiDeviceProvider/ExpectedNPEOnNull.java ! test/jdk/javax/sound/midi/spi/MidiDeviceProvider/FakeInfo.java ! test/jdk/javax/sound/midi/spi/MidiDeviceProvider/UnsupportedInfo.java Changeset: 02ff38f2 Branch: code-reflection Author: Ioi Lam Date: 2025-11-19 05:04:34 +0000 URL: https://git.openjdk.org/babylon/commit/02ff38f2d7f6abc0e4661e8226bc6780b7a11c3a 8363986: Heap region in CDS archive is not at deterministic address Reviewed-by: kvn, asmehra ! src/hotspot/share/cds/aotArtifactFinder.hpp ! src/hotspot/share/cds/aotMapLogger.cpp ! src/hotspot/share/cds/aotMappedHeapWriter.cpp ! src/hotspot/share/cds/aotMappedHeapWriter.hpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/heapShared.hpp ! test/hotspot/jtreg/ProblemList.txt Changeset: 99135d2e Branch: code-reflection Author: Aggelos Biboudis Date: 2025-11-19 08:47:57 +0000 URL: https://git.openjdk.org/babylon/commit/99135d2e05bb501fe9f9f0d36abd25894d0f93de 8359145: Implement JEP 530: Primitive Types in Patterns, instanceof, and switch (Fourth Preview) Reviewed-by: jlahoda ! src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeTag.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ExhaustivenessComputer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java ! test/langtools/tools/javac/patterns/Domination.java = test/langtools/tools/javac/patterns/DominationWithPP.out + test/langtools/tools/javac/patterns/PrimitivePatternsSwitchConstants.java + test/langtools/tools/javac/patterns/PrimitivePatternsSwitchConstants.out ! test/langtools/tools/javac/patterns/PrimitivePatternsSwitchErrors.java ! test/langtools/tools/javac/patterns/PrimitivePatternsSwitchErrors.out + test/langtools/tools/javac/patterns/PrimitiveUnconditionallyExactInAssignability.java + test/langtools/tools/javac/patterns/PrimitiveUnconditionallyExactInExhaustiveSwitches.java ! test/langtools/tools/javac/patterns/T8332463a.java + test/langtools/tools/javac/patterns/T8332463a.out ! test/langtools/tools/javac/patterns/T8332463b.java + test/langtools/tools/javac/patterns/T8332463b.out ! test/langtools/tools/javac/types/UnknownTypeTest.java ! test/langtools/tools/lib/types/TypeHarness.java Changeset: 54893dc5 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-19 11:46:43 +0000 URL: https://git.openjdk.org/babylon/commit/54893dc5c2a4702896029b1844bc9496325c8f26 8371985: Parallel: Move should_attempt_scavenge to ParallelScavengeHeap Reviewed-by: fandreuzzi, iwalulya ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp ! src/hotspot/share/gc/parallel/psScavenge.cpp ! src/hotspot/share/gc/parallel/psScavenge.hpp Changeset: d2926dfd Branch: code-reflection Author: Evgeny Astigeevich Date: 2025-11-19 12:11:23 +0000 URL: https://git.openjdk.org/babylon/commit/d2926dfd9a242928877d0b1e40eac498073975bd 8371649: ZGC: AArch64: redundant OrderAccess::fence in ZBarrierSetAssembler::patch_barrier_relocation Reviewed-by: aph ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp Changeset: 0b3df489 Branch: code-reflection Author: Renjith Kannath Pariyangad Committer: Alexander Zvegintsev Date: 2025-11-19 12:13:37 +0000 URL: https://git.openjdk.org/babylon/commit/0b3df489e9d3b6d876a67793e082b930c17ade3e 8372048: Performance improvement on Linux remote desktop Reviewed-by: azvegint, serb ! src/java.desktop/unix/classes/sun/awt/screencast/ScreencastHelper.java ! src/java.desktop/unix/classes/sun/awt/screencast/TokenStorage.java Changeset: ae4d9c2e Branch: code-reflection Author: Kurt Miller Committer: Aleksey Shipilev Date: 2025-11-19 12:14:07 +0000 URL: https://git.openjdk.org/babylon/commit/ae4d9c2e6af0b899481c98742f4976c7769f39e5 8371918: aarch64: Incorrect pointer dereference in TemplateInterpreterGenerator::generate_native_entry Reviewed-by: aph, shade ! src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp Changeset: 0bff5f3d Branch: code-reflection Author: Anton Seoane Ampudia Committer: Emanuel Peter Date: 2025-11-19 13:02:07 +0000 URL: https://git.openjdk.org/babylon/commit/0bff5f3dbe69ab2a59db771af1020b04c0132954 8213762: Deprecate Xmaxjitcodesize Reviewed-by: kvn, epeter ! src/hotspot/share/runtime/arguments.cpp Changeset: f0afd89f Branch: code-reflection Author: Chen Liang Date: 2025-11-19 15:19:04 +0000 URL: https://git.openjdk.org/babylon/commit/f0afd89f66c0b42ff06fbb76378a5b2028b76a10 8357728: Avoid caching synthesized names in synthesized parameters Reviewed-by: jvernee ! src/java.base/share/classes/java/lang/reflect/Executable.java ! src/java.base/share/classes/java/lang/reflect/Parameter.java + test/jdk/java/lang/reflect/Parameter/SyntheticNameRetention.java Changeset: 3949b0f2 Branch: code-reflection Author: Beno?t Maillard Date: 2025-11-19 15:40:57 +0000 URL: https://git.openjdk.org/babylon/commit/3949b0f23cd9c936c12ac0306534bc38b5b8d298 8371674: C2 fails with Missed optimization opportunity in PhaseIterGVN for MoveL2D Reviewed-by: epeter, chagedorn ! src/hotspot/share/opto/node.cpp + test/hotspot/jtreg/compiler/c2/TestMissingOptMoveX2YLoadX.java Changeset: 9ea8201b Branch: code-reflection Author: Alexander Matveev Date: 2025-11-19 16:07:20 +0000 URL: https://git.openjdk.org/babylon/commit/9ea8201b7494fe9107d4abd78c02ac765a5751d4 8363980: [macos] Add JDK specific keys/values to Info.plist of embedded runtime Reviewed-by: asemenyuk ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPackagingPipeline.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/JLinkRuntimeBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/RuntimeBuilder.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/macosx/CustomInfoPListTest.java ! test/jdk/tools/jpackage/share/AppImagePackageTest.java ! test/jdk/tools/jpackage/share/CookedRuntimeTest.java ! test/jdk/tools/jpackage/share/PostImageScriptTest.java Changeset: 223cc645 Branch: code-reflection Author: Matthew Donovan Date: 2025-11-19 19:14:33 +0000 URL: https://git.openjdk.org/babylon/commit/223cc6451860f10fe8095705da07aaf7e882188f 8343316: Review and update tests using explicit provider names Reviewed-by: rhalade ! test/jdk/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java ! test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java ! test/jdk/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java ! test/jdk/java/security/Provider/ProviderVersionCheck.java Changeset: 6f1c5733 Branch: code-reflection Author: Kim Barrett Date: 2025-11-19 20:05:09 +0000 URL: https://git.openjdk.org/babylon/commit/6f1c5733ed4a1d1a1e099681f1f292acf827d9dc 8371923: Update LockFreeStack for Atomic Reviewed-by: iwalulya, dholmes ! src/hotspot/share/utilities/lockFreeStack.hpp ! test/hotspot/gtest/utilities/test_lockFreeStack.cpp Changeset: f5bc6ee9 Branch: code-reflection Author: Kim Barrett Date: 2025-11-19 20:56:21 +0000 URL: https://git.openjdk.org/babylon/commit/f5bc6ee90d73da00cab5cad283b9517c692bc895 8369187: Add wrapper for that forbids use of global allocation and deallocation functions Reviewed-by: stefank, erikj, jrose ! make/hotspot/lib/CompileGtest.gmk ! src/hotspot/share/code/relocInfo.cpp ! src/hotspot/share/code/relocInfo.hpp + src/hotspot/share/cppstdlib/new.hpp ! src/hotspot/share/gc/shared/bufferNode.cpp ! src/hotspot/share/gc/shared/partialArrayState.cpp ! src/hotspot/share/gc/z/zDeferredConstructed.inline.hpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/arena.cpp ! src/hotspot/share/memory/arena.hpp ! src/hotspot/share/utilities/debug.cpp ! src/hotspot/share/utilities/deferredStatic.hpp ! src/hotspot/share/utilities/elfFile.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! test/hotspot/gtest/utilities/test_lockFreeStack.cpp Changeset: 1535d08f Branch: code-reflection Author: Ioi Lam Date: 2025-11-19 20:58:23 +0000 URL: https://git.openjdk.org/babylon/commit/1535d08f0ee5da42d9db9e196d6a620aabe9feea 8371944: AOT configuration is corrupted when app closes System.out Reviewed-by: kvn, iveresov ! src/hotspot/share/cds/aotMetaspace.cpp ! src/hotspot/share/cds/aotMetaspace.hpp ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/cds/filemap.hpp + test/hotspot/jtreg/runtime/cds/appcds/aotCache/CloseSystemOut.java Changeset: c8e64e7c Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-19 23:22:40 +0000 URL: https://git.openjdk.org/babylon/commit/c8e64e7c33cabcc5c94616808b9c59ab5b7cd14e 8372118: Test tools/jpackage/macosx/DmgContentTest.java failed Reviewed-by: almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgPackager.java Changeset: 2acd8776 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-20 01:29:49 +0000 URL: https://git.openjdk.org/babylon/commit/2acd8776f26686a93708eb9fc408ff4e2bbe287c 8371440: jpackage should exit with an error if it finds multiple matching signing certificates Reviewed-by: almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/SigningIdentityBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties ! test/jdk/tools/jpackage/macosx/MacSignTest.java Changeset: a3b1affb Branch: code-reflection Author: Fei Yang Date: 2025-11-20 02:18:44 +0000 URL: https://git.openjdk.org/babylon/commit/a3b1affbfb23eeef32749164aae316e5d55fffaa 8372046: compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java fails IR verification Reviewed-by: mhaessig, epeter ! test/hotspot/jtreg/compiler/floatingpoint/TestSubNodeFloatDoubleNegation.java Changeset: 473471c1 Branch: code-reflection Author: Henry Jen Date: 2025-11-20 05:30:40 +0000 URL: https://git.openjdk.org/babylon/commit/473471c1f1d3cd42a057dfd602d452196c53aa00 8369838: Likely invalid assert or function call in jimage.cpp Reviewed-by: dholmes ! src/hotspot/share/classfile/classLoader.cpp ! src/java.base/share/native/libjimage/jimage.cpp Changeset: 5d3e73b9 Branch: code-reflection Author: Jan Lahoda Date: 2025-11-20 06:14:40 +0000 URL: https://git.openjdk.org/babylon/commit/5d3e73b9e512b55cdf554158b19a4ec642dc1f1a 8371248: Crash in -Xdoclint with invalid @link Reviewed-by: hannesw, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! test/langtools/tools/javac/doctree/ReferenceTest.java Changeset: 72c45a4d Branch: code-reflection Author: Johan Sj?len Date: 2025-11-20 07:08:46 +0000 URL: https://git.openjdk.org/babylon/commit/72c45a4d923a294108995e24951bec24dfc70410 8355225: Test gtest/AsyncLogGtest.java failed at droppingMessage_vm: apparent log corruption Reviewed-by: dholmes, syan ! test/hotspot/gtest/logging/test_asynclog.cpp Changeset: 852141b9 Branch: code-reflection Author: Sean Coffey Date: 2025-11-20 07:32:06 +0000 URL: https://git.openjdk.org/babylon/commit/852141b9d42ada168a008aea63045deddca29190 8372004: Have SSLLogger implement System.Logger Reviewed-by: dfuchs, weijun ! src/java.base/share/classes/sun/security/ssl/Alert.java ! src/java.base/share/classes/sun/security/ssl/AlpnExtension.java ! src/java.base/share/classes/sun/security/ssl/CertSignAlgsExtension.java ! src/java.base/share/classes/sun/security/ssl/CertStatusExtension.java ! src/java.base/share/classes/sun/security/ssl/CertificateAuthoritiesExtension.java ! src/java.base/share/classes/sun/security/ssl/CertificateMessage.java ! src/java.base/share/classes/sun/security/ssl/CertificateRequest.java ! src/java.base/share/classes/sun/security/ssl/CertificateStatus.java ! src/java.base/share/classes/sun/security/ssl/CertificateVerify.java ! src/java.base/share/classes/sun/security/ssl/ChangeCipherSpec.java ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/CookieExtension.java ! src/java.base/share/classes/sun/security/ssl/DHClientKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/DHServerKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/DTLSInputRecord.java ! src/java.base/share/classes/sun/security/ssl/DTLSOutputRecord.java ! src/java.base/share/classes/sun/security/ssl/ECDHClientKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/ECDHServerKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/ECPointFormatsExtension.java ! src/java.base/share/classes/sun/security/ssl/EncryptedExtensions.java ! src/java.base/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java ! src/java.base/share/classes/sun/security/ssl/Finished.java ! src/java.base/share/classes/sun/security/ssl/HandshakeContext.java ! src/java.base/share/classes/sun/security/ssl/HandshakeOutStream.java ! src/java.base/share/classes/sun/security/ssl/HelloRequest.java ! src/java.base/share/classes/sun/security/ssl/HelloVerifyRequest.java ! src/java.base/share/classes/sun/security/ssl/KeyShareExtension.java ! src/java.base/share/classes/sun/security/ssl/KeyUpdate.java ! src/java.base/share/classes/sun/security/ssl/MaxFragExtension.java ! src/java.base/share/classes/sun/security/ssl/NamedGroup.java ! src/java.base/share/classes/sun/security/ssl/NewSessionTicket.java ! src/java.base/share/classes/sun/security/ssl/OutputRecord.java ! src/java.base/share/classes/sun/security/ssl/PreSharedKeyExtension.java ! src/java.base/share/classes/sun/security/ssl/PredefinedDHParameterSpecs.java ! src/java.base/share/classes/sun/security/ssl/PskKeyExchangeModesExtension.java ! src/java.base/share/classes/sun/security/ssl/QuicEngineOutputRecord.java ! src/java.base/share/classes/sun/security/ssl/QuicKeyManager.java ! src/java.base/share/classes/sun/security/ssl/QuicTLSEngineImpl.java ! src/java.base/share/classes/sun/security/ssl/RSAClientKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/RSAKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/RSAServerKeyExchange.java ! src/java.base/share/classes/sun/security/ssl/RenegoInfoExtension.java ! src/java.base/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java ! src/java.base/share/classes/sun/security/ssl/SSLCipher.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLEngineImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLEngineInputRecord.java ! src/java.base/share/classes/sun/security/ssl/SSLEngineOutputRecord.java ! src/java.base/share/classes/sun/security/ssl/SSLExtension.java ! src/java.base/share/classes/sun/security/ssl/SSLExtensions.java ! src/java.base/share/classes/sun/security/ssl/SSLLogger.java ! src/java.base/share/classes/sun/security/ssl/SSLMasterKeyDerivation.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionContextImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLSocketImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLSocketInputRecord.java ! src/java.base/share/classes/sun/security/ssl/SSLSocketOutputRecord.java ! src/java.base/share/classes/sun/security/ssl/SSLTransport.java ! src/java.base/share/classes/sun/security/ssl/ServerHello.java ! src/java.base/share/classes/sun/security/ssl/ServerHelloDone.java ! src/java.base/share/classes/sun/security/ssl/ServerNameExtension.java ! src/java.base/share/classes/sun/security/ssl/SessionTicketExtension.java ! src/java.base/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java ! src/java.base/share/classes/sun/security/ssl/SignatureScheme.java ! src/java.base/share/classes/sun/security/ssl/StatusResponseManager.java ! src/java.base/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java ! src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java ! src/java.base/share/classes/sun/security/ssl/SupportedVersionsExtension.java ! src/java.base/share/classes/sun/security/ssl/TransportContext.java ! src/java.base/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java ! src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java ! src/java.base/share/classes/sun/security/ssl/Utilities.java ! src/java.base/share/classes/sun/security/ssl/X509Authentication.java ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerCertChecking.java ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java ! src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java ! src/java.base/share/classes/sun/security/util/DomainName.java ! src/java.base/share/classes/sun/security/util/HostnameChecker.java ! test/jdk/sun/security/ssl/SSLLogger/DebugPropertyValuesTest.java Changeset: 6fc8e499 Branch: code-reflection Author: Roberto Casta?eda Lozano Date: 2025-11-20 09:13:57 +0000 URL: https://git.openjdk.org/babylon/commit/6fc8e4998019a2f3ef05ff3e73a4c855c0366d7a 8372097: C2: PhasePrintLevel requires setting PrintPhaseLevel explicitly to be active Reviewed-by: mhaessig, chagedorn ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/compile.cpp + test/hotspot/jtreg/compiler/oracle/TestPhasePrintLevel.java Changeset: b41146cd Branch: code-reflection Author: Emanuel Peter Date: 2025-11-20 09:32:57 +0000 URL: https://git.openjdk.org/babylon/commit/b41146cd1e5d412f69b893bfb2fd65b6206bb0d2 8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries Co-authored-by: Christian Hagedorn Reviewed-by: rcastanedalo, mhaessig, chagedorn ! test/hotspot/jtreg/compiler/arguments/TestMethodArguments.java ! test/hotspot/jtreg/compiler/igvn/ExpressionFuzzer.java ! test/hotspot/jtreg/compiler/lib/template_framework/AddNameToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/CodeFrame.java ! test/hotspot/jtreg/compiler/lib/template_framework/DataName.java ! test/hotspot/jtreg/compiler/lib/template_framework/Hook.java ! test/hotspot/jtreg/compiler/lib/template_framework/HookAnchorToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/HookInsertToken.java + test/hotspot/jtreg/compiler/lib/template_framework/HookIsAnchoredToken.java + test/hotspot/jtreg/compiler/lib/template_framework/LetToken.java + test/hotspot/jtreg/compiler/lib/template_framework/NameCountToken.java + test/hotspot/jtreg/compiler/lib/template_framework/NameForEachToken.java + test/hotspot/jtreg/compiler/lib/template_framework/NameHasAnyToken.java + test/hotspot/jtreg/compiler/lib/template_framework/NameSampleToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/NameSet.java + test/hotspot/jtreg/compiler/lib/template_framework/NamesToListToken.java - test/hotspot/jtreg/compiler/lib/template_framework/NothingToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/Renderer.java + test/hotspot/jtreg/compiler/lib/template_framework/ScopeToken.java + test/hotspot/jtreg/compiler/lib/template_framework/ScopeTokenImpl.java + test/hotspot/jtreg/compiler/lib/template_framework/SetFuelCostToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/StructuralName.java ! test/hotspot/jtreg/compiler/lib/template_framework/Template.java - test/hotspot/jtreg/compiler/lib/template_framework/TemplateBody.java ! test/hotspot/jtreg/compiler/lib/template_framework/TemplateFrame.java ! test/hotspot/jtreg/compiler/lib/template_framework/TemplateToken.java ! test/hotspot/jtreg/compiler/lib/template_framework/Token.java ! test/hotspot/jtreg/compiler/lib/template_framework/TokenParser.java ! test/hotspot/jtreg/compiler/lib/template_framework/library/Expression.java ! test/hotspot/jtreg/compiler/lib/template_framework/library/PrimitiveType.java ! test/hotspot/jtreg/compiler/lib/template_framework/library/TestFrameworkClass.java ! test/hotspot/jtreg/compiler/loopopts/superword/TestAliasingFuzzer.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestAdvanced.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestExpressions.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestPrimitiveTypes.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestSimple.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestTutorial.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/examples/TestWithTestFrameworkClass.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestExpression.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestFormat.java ! test/hotspot/jtreg/testlibrary_tests/template_framework/tests/TestTemplate.java Changeset: ad38a125 Branch: code-reflection Author: Daniel Fuchs Date: 2025-11-20 10:19:57 +0000 URL: https://git.openjdk.org/babylon/commit/ad38a1253ae3ff92f7e0cf0fbc4d4726957b1443 8371557: java/net/httpclient/http3/H3RequestRejectedTest.java: javax.net.ssl.SSLHandshakeException: local endpoint (wildcard) and remote endpoint (loopback) ports conflict Reviewed-by: jpai ! test/jdk/java/net/httpclient/http3/H3RequestRejectedTest.java Changeset: c419dda4 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-20 11:37:07 +0000 URL: https://git.openjdk.org/babylon/commit/c419dda4e99c3b72fbee95b93159db2e23b994b6 8372163: G1: Remove unused G1HeapRegion::remove_code_root Reviewed-by: tschatzl ! src/hotspot/share/gc/g1/g1HeapRegion.cpp ! src/hotspot/share/gc/g1/g1HeapRegion.hpp Changeset: 7b11bd1b Branch: code-reflection Author: Chen Liang Date: 2025-11-20 13:39:49 +0000 URL: https://git.openjdk.org/babylon/commit/7b11bd1b1d8dbc9bedcd8cf14e78c8f5eb06a71f 8372047: ClassTransform.transformingMethodBodies andThen composes incorrectly Reviewed-by: asotona ! src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java ! test/jdk/jdk/classfile/TransformTests.java Changeset: f125c76f Branch: code-reflection Author: Matthew Donovan Date: 2025-11-20 14:09:55 +0000 URL: https://git.openjdk.org/babylon/commit/f125c76f5b53d90a09f58c22d6def7d843feaa50 8247690: RunTest does not support running of JTREG manual tests Reviewed-by: erikj ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk Changeset: b9ee9541 Branch: code-reflection Author: Erik ?sterlund Date: 2025-11-20 14:33:40 +0000 URL: https://git.openjdk.org/babylon/commit/b9ee9541cffb6c5a737b08a69ae04472b3bcab3e 8371200: ZGC: C2 allocation deopt race Reviewed-by: aboldtch, stefank ! src/hotspot/share/gc/z/zBarrier.inline.hpp ! src/hotspot/share/gc/z/zBarrierSet.cpp ! src/hotspot/share/gc/z/zGeneration.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRelocate.hpp Changeset: 45a2fd37 Branch: code-reflection Author: Weijun Wang Date: 2025-11-20 15:15:41 +0000 URL: https://git.openjdk.org/babylon/commit/45a2fd37f0ebda35789006b4e607422f7c369017 8325448: Hybrid Public Key Encryption Reviewed-by: mullan, ascarpino, abarashev ! src/java.base/share/classes/com/sun/crypto/provider/DHKEM.java + src/java.base/share/classes/com/sun/crypto/provider/HPKE.java ! src/java.base/share/classes/com/sun/crypto/provider/SunJCE.java + src/java.base/share/classes/javax/crypto/spec/HPKEParameterSpec.java + src/java.base/share/classes/javax/crypto/spec/snippet-files/PackageSnippets.java + src/java.base/share/classes/sun/security/util/SliceableSecretKey.java + test/jdk/com/sun/crypto/provider/Cipher/HPKE/Compliance.java + test/jdk/com/sun/crypto/provider/Cipher/HPKE/Functions.java + test/jdk/com/sun/crypto/provider/Cipher/HPKE/KAT9180.java ! test/jdk/com/sun/crypto/provider/DHKEM/Compliance.java ! test/jdk/sun/security/provider/all/Deterministic.java + test/jdk/sun/security/util/SliceableSecretKey/SoftSliceable.java Changeset: a8901858 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-20 15:17:44 +0000 URL: https://git.openjdk.org/babylon/commit/a89018582160a9d876f66925618c8b8f93190e67 8333727: Use JOpt in jpackage to parse command line 8371384: libapplauncher.so is copied to a wrong location in two step packaging when --install-dir=/usr Reviewed-by: almatvee ! src/jdk.internal.opt/share/classes/module-info.java - src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxAppBundler.java + src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxBundlingEnvironment.java - src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebBundler.java + src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromOptions.java - src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxFromParams.java - src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBundler.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackager.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackagingPipeline.java - src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmBundler.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/model/LinuxLauncher.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/resources/LinuxResources.properties ! src/jdk.jpackage/linux/classes/module-info.java.extra - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageFileExtras.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacBaseInstallerBundler.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacBuildEnvFromParams.java + src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacBundlingEnvironment.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgBundler.java + src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacFromOptions.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacFromParams.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPackagingPipeline.java - src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgBundler.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/model/MacApplication.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/resources/MacResources.properties ! src/jdk.jpackage/macosx/classes/module-info.java.extra - src/jdk.jpackage/share/classes/jdk/jpackage/internal/AbstractBundler.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/AddLauncherArguments.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageBundler.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationBuilder.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationLayoutUtils.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/BasicBundlers.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/BuildEnvFromOptions.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/BuildEnvFromParams.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/BundleParams.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/Bundler.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/BundlerParamInfo.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/Bundlers.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/CLIHelp.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/CfgFile.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/DefaultBundlingEnvironment.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/DeployParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/FileAssociationGroup.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromOptions.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/FromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/JLinkRuntimeBuilder.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/JPackageToolProvider.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherData.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherFromOptions.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherFromParams.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherStartupInfoBuilder.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/OptionUtils.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/OptionsTransformer.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Packager.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackagingPipeline.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/StandardBundlerParam.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/TempDirectory.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/ValidOptions.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/AdditionalLauncher.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/BundlingOperationModifier.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/BundlingOperationOptionScope.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/CliBundlingEnvironment.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/DefaultOptions.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/HelpFormatter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/I18N.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/JOptSimpleOptionsBuilder.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/MessageFormatUtils.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Option.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionArrayValueConverter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionIdentifier.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionName.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionScope.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionSource.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionSpec.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionSpecBuilder.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionSpecMapperOptionScope.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionValue.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionValueConverter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionValueExceptionFactory.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Options.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionsAnalyzer.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/OptionsProcessor.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardAppImageFileOption.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardBundlingOperation.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardFaOption.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardHelpFormatter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardOption.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardOptionContext.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardOptionValueExceptionFactory.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardValidator.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardValueConverter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StringToken.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Utils.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Validator.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/ValueConverter.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/WithOptionIdentifier.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/WithOptionIdentifierStub.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundleCreator.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundlingEnvironment.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundlingOperation.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/BundlingOperationDescriptor.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ConfigException.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ExternalApplication.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/JPackageException.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/LauncherModularStartupInfoMixin.java - src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/PackagerException.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/RuntimeBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/HelpResources.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/resources/MainResources.properties ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/FileUtils.java + src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/SetBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/main/Main.java ! src/jdk.jpackage/share/classes/module-info.java - src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinAppBundler.java + src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinBundlingEnvironment.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinExeBundler.java + src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromOpions.java - src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinFromParams.java - src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiBundler.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiPackager.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinPackagingPipeline.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/model/WinLauncher.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/resources/WinResources.properties ! src/jdk.jpackage/windows/classes/module-info.java.extra ! test/jdk/tools/jpackage/TEST.properties ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AppImageFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/MacHelper.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PackageType.java ! test/jdk/tools/jpackage/junit/TEST.properties ! test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/AppImageFileTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/DefaultBundlingEnvironmentTest.java - test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/DeployParamsTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/LauncherStartupInfoBuilderTest.java ! test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/PackagingPipelineTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/DefaultOptionsTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/ExpectedOptions.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/HelpTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/JOptSimpleOptionsBuilderTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/MainTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/MockupCliBundlingEnvironment.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionIdentifierTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionNameTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionSpecMutatorOptionScopeTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionSpecTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionValueConverterTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionValueExceptionFactoryTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionValueTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionsProcessorTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionsTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionsValidationFailTest.excludes + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/OptionsValidationFailTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/StandardBundlingOperationTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/StandardOptionTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/StandardValidatorTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/StandardValueConverterTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/StringTokenTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/TestUtils.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/UtilsTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/ValidatorTest.java + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/help-linux.txt + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/help-macos.txt + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/help-windows.txt + test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/cli/jpackage-options.md ! test/jdk/tools/jpackage/share/AppImagePackageTest.java + test/jdk/tools/jpackage/share/AsyncTest.java ! test/jdk/tools/jpackage/share/ErrorTest.java Changeset: 267ce917 Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-20 15:47:48 +0000 URL: https://git.openjdk.org/babylon/commit/267ce91766c0500485ac3d9d36dfef0c09505498 8372149: G1: Remove unnecessary num_added_to_group from G1CollectionSetCandidates::set_candidates_from_marking() Reviewed-by: iwalulya, ayang ! src/hotspot/share/gc/g1/g1CollectionSetCandidates.cpp Changeset: ea19ad2a Branch: code-reflection Author: Josiah Noel <32279667+SentryMan at users.noreply.github.com> Committer: Michael McMahon Date: 2025-11-20 15:54:25 +0000 URL: https://git.openjdk.org/babylon/commit/ea19ad2ac8a1fa9d4124be9a8e05cf4c6f6231bd 8347167: Reduce allocation in com.sun.net.httpserver.Headers::normalize Reviewed-by: vyazici, dfuchs, michaelm ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/Headers.java ! test/jdk/com/sun/net/httpserver/HeadersTest.java + test/micro/org/openjdk/bench/sun/net/httpserver/HeaderNormalization.java Changeset: de0a1f8f Branch: code-reflection Author: Vicente Romero Date: 2025-11-20 17:55:06 +0000 URL: https://git.openjdk.org/babylon/commit/de0a1f8f5191cc188800d7d06855322d272f91d6 8372277: Fix for JDK-8369517 is applied starting from source 24 instead of 26 Reviewed-by: liach ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! test/langtools/tools/javac/lambda/methodReference/ResultTypeNotBeingCapturedTest.java ! test/langtools/tools/javac/lambda/methodReference/ResultTypeNotBeingCapturedTest.out + test/langtools/tools/javac/lambda/methodReference/ResultTypeNotBeingCapturedTest_2.out Changeset: b3acc484 Branch: code-reflection Author: Matthew Donovan Date: 2025-11-20 18:10:47 +0000 URL: https://git.openjdk.org/babylon/commit/b3acc4841f6d9c8fd484df68fd2882dab0aa1788 8362894: PKCS12 KeyStore PBMAC1 interoperability testing Reviewed-by: rhalade ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java ! test/jdk/sun/security/pkcs12/params/README + test/jdk/sun/security/pkcs12/params/os6 Changeset: aa7718d1 Branch: code-reflection Author: Kelvin Nilsen Date: 2025-11-20 18:40:21 +0000 URL: https://git.openjdk.org/babylon/commit/aa7718d1d2008c240c197383c493955d8b654bf3 8372110: GenShen: Fix erroneous assert Reviewed-by: ysr ! src/hotspot/share/gc/shenandoah/shenandoahScanRemembered.cpp Changeset: 0187f4df Branch: code-reflection Author: Vicente Romero Date: 2025-11-20 18:47:55 +0000 URL: https://git.openjdk.org/babylon/commit/0187f4df967d5b32807cfb9c1028cb75fe99b05d 8372023: Javac JMH failures Reviewed-by: liach ! test/benchmarks/micros-javac/pom.xml ! test/benchmarks/micros-javac/src/main/java/org/openjdk/bench/langtools/javac/JavacBenchmark.java Changeset: 41d6dc3a Branch: code-reflection Author: Naoto Sato Date: 2025-11-20 18:53:37 +0000 URL: https://git.openjdk.org/babylon/commit/41d6dc3a15fd3041aaee7b9b7f7980ede5f7940d 8372117: Correct the misleading comment in Character.UnicodeBlock Reviewed-by: bpb, joehw, jlu ! src/java.base/share/classes/java/lang/Character.java Changeset: 45246bc7 Branch: code-reflection Author: Kim Barrett Date: 2025-11-20 23:06:55 +0000 URL: https://git.openjdk.org/babylon/commit/45246bc72daf68b905d7342f478e53bfe2883796 8371965: Convert TaskQueueSuper to use Atomic Reviewed-by: iwalulya, tschatzl ! src/hotspot/share/gc/shared/taskqueue.hpp Changeset: 0972ba68 Branch: code-reflection Author: Hai-May Chao Date: 2025-11-21 00:04:41 +0000 URL: https://git.openjdk.org/babylon/commit/0972ba681cdc81b77e9b4353db8ee835216d242e 8371383: Test sun/security/tools/jarsigner/DefaultOptions.java failed due to CertificateNotYetValidException Reviewed-by: weijun ! test/jdk/sun/security/tools/jarsigner/DefaultOptions.java Changeset: d887359b Branch: code-reflection Author: Chen Liang Date: 2025-11-21 00:38:44 +0000 URL: https://git.openjdk.org/babylon/commit/d887359b5a8bffedcbf1b3ca6f0eae13b7636add 8370976: Review the behavioral changes of core reflection descriptor parsing migration Reviewed-by: rriggs, jvernee ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java ! test/jdk/java/lang/Class/getEnclosingMethod/BadEnclosingMethodTest.java ! test/jdk/java/lang/annotation/MalformedAnnotationTest.java ! test/jdk/java/lang/invoke/MethodTypeTest.java ! test/jdk/sun/invoke/util/BytecodeDescriptorTest.java Changeset: 2358d40c Branch: code-reflection Author: Chen Liang Date: 2025-11-21 00:46:00 +0000 URL: https://git.openjdk.org/babylon/commit/2358d40cbcafb851425176cacf65cc3be1ae12a2 8371953: Document null handling in core reflection APIs Reviewed-by: alanb ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/reflect/AccessibleObject.java ! src/java.base/share/classes/java/lang/reflect/Array.java ! src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java ! src/java.base/share/classes/java/lang/reflect/InaccessibleObjectException.java ! src/java.base/share/classes/java/lang/reflect/InvocationTargetException.java ! src/java.base/share/classes/java/lang/reflect/MalformedParametersException.java ! src/java.base/share/classes/java/lang/reflect/Proxy.java ! src/java.base/share/classes/java/lang/reflect/UndeclaredThrowableException.java + test/jdk/java/lang/Class/NullBehaviorTest.java + test/jdk/java/lang/reflect/AccessFlag/AccessFlagNullCheckTest.java + test/jdk/java/lang/reflect/AccessibleObject/AccessibleObjectNullCheckTest.java + test/jdk/java/lang/reflect/Array/ArrayArgumentCheckTest.java + test/jdk/java/lang/reflect/ClassFileFormatVersionTest.java + test/jdk/java/lang/reflect/ExceptionClassesNullCheckTest.java + test/jdk/java/lang/reflect/Proxy/ProxyNullCheckTest.java Changeset: c2ea75b8 Branch: code-reflection Author: Hai-May Chao Date: 2025-11-21 01:10:35 +0000 URL: https://git.openjdk.org/babylon/commit/c2ea75b81f74ff586fdd9c51168e8f4c7a7b2a6a 8353749: Improve security warning when using JKS or JCEKS keystores Reviewed-by: weijun ! src/java.base/share/classes/com/sun/crypto/provider/JceKeyStore.java ! src/java.base/share/classes/sun/security/provider/JavaKeyStore.java ! src/java.base/share/classes/sun/security/tools/keytool/resources/keytool.properties ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/resources/jarsigner.properties ! test/jdk/sun/security/tools/jarsigner/compatibility/Compatibility.java ! test/jdk/sun/security/tools/jarsigner/warnings/Test.java + test/jdk/sun/security/tools/keytool/OutdatedKeyStoreWarning.java ! test/jdk/sun/security/tools/keytool/WeakAlg.java Changeset: df24b901 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-21 02:48:20 +0000 URL: https://git.openjdk.org/babylon/commit/df24b901768599ac7111655b87dfeedbe0e66f9d 8360571: Description of launchers is lost in two phase packaging Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/AppImageFile.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/OptionsTransformer.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/StandardAppImageFileOption.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AppImageFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java ! test/jdk/tools/jpackage/junit/share/jdk.jpackage/jdk/jpackage/internal/AppImageFileTest.java Changeset: 5922c3cb Branch: code-reflection Author: Stefan Karlsson Date: 2025-11-21 08:21:20 +0000 URL: https://git.openjdk.org/babylon/commit/5922c3cbac43795275422f2484082d1e725e4bcc 8371990: Remove two second delayed OOME after GC shutdown Reviewed-by: kbarrett, tschatzl, ayang, iwalulya ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/serial/serialHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/services/cpuTimeUsage.cpp Changeset: eeb7c3f2 Branch: code-reflection Author: Thomas Schatzl Date: 2025-11-21 09:23:58 +0000 URL: https://git.openjdk.org/babylon/commit/eeb7c3f2e8e645938d9db0cf61c1d98d751f2845 8371895: Lower GCTimeLimit in TestUseGCOverheadLimit.java Reviewed-by: ayang, iwalulya, shade ! test/hotspot/jtreg/gc/TestUseGCOverheadLimit.java Changeset: 88ec4e61 Branch: code-reflection Author: Aleksey Shipilev Date: 2025-11-21 09:39:51 +0000 URL: https://git.openjdk.org/babylon/commit/88ec4e615a3008408184b7ed92010adc75d63853 8372154: AArch64: Match rule failure with some CompareAndSwap operand shapes Reviewed-by: aph, adinn ! src/hotspot/cpu/aarch64/aarch64.ad Changeset: b7dc3afd Branch: code-reflection Author: Mikhail Yankelevich Date: 2025-11-21 09:53:10 +0000 URL: https://git.openjdk.org/babylon/commit/b7dc3afd099978aaa100eef37325736493caa84c 8371574: Improve code coverage of PEM classes decode functionality Reviewed-by: rhalade ! test/jdk/java/security/PEM/PEMDecoderTest.java Changeset: 8a5c9e08 Branch: code-reflection Author: Per Minborg Date: 2025-11-21 09:55:05 +0000 URL: https://git.openjdk.org/babylon/commit/8a5c9e08c0605c28cac235129adff7bb248d0627 8372146: Follow-up changes to the Lazy Constants JEP Reviewed-by: liach, mcimadamore, jvernee ! src/java.base/share/classes/java/lang/LazyConstant.java ! src/java.base/share/classes/java/util/List.java ! src/java.base/share/classes/java/util/Map.java ! test/jdk/java/lang/LazyConstant/LazyConstantTest.java ! test/jdk/java/lang/LazyConstant/LazyListTest.java ! test/jdk/java/lang/LazyConstant/LazyMapTest.java Changeset: d57fc1b6 Branch: code-reflection Author: Jan Kratochvil Committer: Severin Gehwolf Date: 2025-11-21 10:02:19 +0000 URL: https://git.openjdk.org/babylon/commit/d57fc1b6dc313eb004892b180960ebcee1cb04c7 8372135: clang compilation error Reviewed-by: stefank, jsjolen, kbarrett ! src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp Changeset: 30410fe2 Branch: code-reflection Author: Matthias Baesken Date: 2025-11-21 11:19:49 +0000 URL: https://git.openjdk.org/babylon/commit/30410fe265d8d32fb41bae88ab882115271cdf75 8333871: Check return values of sysinfo Reviewed-by: dholmes, mdoerr, alanb ! src/hotspot/os/linux/os_linux.cpp ! src/java.base/unix/native/libjava/java_props_md.c Changeset: d01e7d98 Branch: code-reflection Author: Joel Sikstr?m Date: 2025-11-21 13:44:09 +0000 URL: https://git.openjdk.org/babylon/commit/d01e7d9850a57dd8e4849e2b7db6eacb37605647 8371783: Refactor GCCause in VM_CollectForMetadataAllocation Reviewed-by: kbarrett, ayang ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/gcVMOperations.cpp ! src/hotspot/share/gc/shared/gcVMOperations.hpp Changeset: 018284d0 Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-21 13:52:51 +0000 URL: https://git.openjdk.org/babylon/commit/018284d08cd5b4c2c1a5735b5d11e63dc769fb37 8372162: G1: Merge subclasses of G1IHOPControl into parent class Reviewed-by: tschatzl, iwalulya ! src/hotspot/share/gc/g1/g1IHOPControl.cpp ! src/hotspot/share/gc/g1/g1IHOPControl.hpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! test/hotspot/gtest/gc/g1/test_g1IHOPControl.cpp Changeset: 41e0017b Branch: code-reflection Author: Albert Mingkun Yang Date: 2025-11-21 13:53:01 +0000 URL: https://git.openjdk.org/babylon/commit/41e0017bdbd8c818a57509a914ae77c2a903a01c 8372269: Parallel: Remove unused ParallelScavengeHeap::base Reviewed-by: aboldtch, fandreuzzi, tschatzl ! src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp Changeset: f9127720 Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-21 14:56:56 +0000 URL: https://git.openjdk.org/babylon/commit/f9127720459017bb250327dcd3e5c51316536068 8372290: jpackage test lib improvements Reviewed-by: almatvee ! test/jdk/tools/jpackage/clean_stashed_files.sh ! test/jdk/tools/jpackage/clean_test_output.sh ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/AdditionalLauncher.java = test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CannedArgument.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/CannedFormattedString.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/ConfigFilesStasher.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherAsServiceVerifier.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherShortcut.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/LauncherVerifier.java + test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PropertyFile.java ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/PropertyFinder.java ! test/jdk/tools/jpackage/share/AppImagePackageTest.java ! test/jdk/tools/jpackage/share/ErrorTest.java Changeset: e439909b Branch: code-reflection Author: Alexey Semenyuk Date: 2025-11-21 14:58:46 +0000 URL: https://git.openjdk.org/babylon/commit/e439909b7d3ee8db3a09c3d3354ead56dd5397d7 8372292: Remove redundant "throws ConfigException" Reviewed-by: almatvee ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxDebPackageBuilder.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxPackageBuilder.java ! src/jdk.jpackage/linux/classes/jdk/jpackage/internal/LinuxRpmPackageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/AppImageSigningConfigBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacApplicationBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacDmgPackageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacFileAssociationBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPackageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPackagingPipeline.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacPkgPackageBuilder.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacRuntimeValidator.java ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/SigningIdentityBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/ApplicationBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/BuildEnvBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/JLinkRuntimeBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/LauncherBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackageBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/RuntimeBuilderBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/model/ConfigException.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinExePackageBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiPackageBuilder.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinSystemEnvironment.java ! src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WixTool.java Changeset: 3b1eb762 Branch: code-reflection Author: Chen Liang Date: 2025-11-21 15:39:05 +0000 URL: https://git.openjdk.org/babylon/commit/3b1eb7623180ac1b1d69622481589c43749dbbfc 8367585: Prevent creation of unrepresentable Utf8Entry Reviewed-by: asotona ! src/java.base/share/classes/java/lang/classfile/attribute/package-info.java ! src/java.base/share/classes/java/lang/classfile/constantpool/package-info.java ! src/java.base/share/classes/java/lang/classfile/instruction/package-info.java ! src/java.base/share/classes/java/lang/classfile/package-info.java ! src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java ! src/java.base/share/classes/jdk/internal/classfile/impl/BufWriterImpl.java ! src/java.base/share/classes/jdk/internal/util/ModifiedUtf.java ! test/jdk/jdk/classfile/LimitsTest.java ! test/jdk/jdk/classfile/SignaturesTest.java ! test/jdk/jdk/internal/util/ModifiedUtfTest.java Changeset: 5f806e7f Branch: code-reflection Author: Oumaiyma Intissar <49239111+OumaIntissar at users.noreply.github.com> Committer: Sean Coffey Date: 2025-11-21 15:42:36 +0000 URL: https://git.openjdk.org/babylon/commit/5f806e7f8b66c14954a07005be3bceb2f812fbff 8367049: URLPermission. throws StringIndexOutOfBoundsException in avm mode Reviewed-by: michaelm, dfuchs, coffeys ! src/java.base/share/classes/java/net/HostPortrange.java ! src/java.base/share/classes/java/net/URLPermission.java + test/jdk/java/net/URLPermission/EmptyAuthorityTest.java Changeset: e24e7827 Branch: code-reflection Author: Aleksey Shipilev Date: 2025-11-21 15:57:23 +0000 URL: https://git.openjdk.org/babylon/commit/e24e7827c4241fdf5e178df811f0d0f813363743 8372319: com/sun/crypto/provider/Cipher/HPKE/KAT9180 test has external dependencies Reviewed-by: stuefe, myankelevich ! test/jdk/com/sun/crypto/provider/Cipher/HPKE/KAT9180.java Changeset: e4b583ab Branch: code-reflection Author: Chris Plummer Date: 2025-11-21 17:28:21 +0000 URL: https://git.openjdk.org/babylon/commit/e4b583ab708eadd526d5cc0c03129a7970e05320 8372294: Fix Malformed problem list entry in ProblemList-jvmti-stress-agent.txt Reviewed-by: sspitsyn, lmesnik ! test/hotspot/jtreg/ProblemList-jvmti-stress-agent.txt Changeset: 5b5d85b0 Branch: code-reflection Author: Eric Caspole Date: 2025-11-21 18:00:45 +0000 URL: https://git.openjdk.org/babylon/commit/5b5d85b0fd4405590d69ad72474ef51fc4aa9699 8372360: Exclude jdk.jsobject from micros-javac input source packages Reviewed-by: vromero ! test/benchmarks/micros-javac/src/main/java/org/openjdk/bench/langtools/javac/JavacBenchmark.java Changeset: 3a45e615 Branch: code-reflection Author: Phil Race Date: 2025-11-21 18:19:05 +0000 URL: https://git.openjdk.org/babylon/commit/3a45e615973727446c9081b5affbbe7ffe7c3bea 8369129: Raster createPackedRaster methods specification clean up Reviewed-by: jdv, serb ! src/java.desktop/share/classes/java/awt/image/Raster.java ! test/jdk/java/awt/image/Raster/CreateRasterExceptionTest.java Changeset: 2b5cd14e Branch: code-reflection Author: Chris Plummer Date: 2025-11-21 18:45:57 +0000 URL: https://git.openjdk.org/babylon/commit/2b5cd14ea5c571e0d55df8293e49b9a0db521a46 8282441: [LOOM] The debug agent should attempt to free vthread ThreadNodes Reviewed-by: amenkov, sspitsyn ! src/jdk.jdwp.agent/share/native/libjdwp/threadControl.c Changeset: 2d815ac6 Branch: code-reflection Author: Mikhail Yankelevich Date: 2025-11-21 19:07:54 +0000 URL: https://git.openjdk.org/babylon/commit/2d815ac61b437835163d4014bfed16f0f3faea50 8349535: Refactor ./pkcs11/Provider/MultipleLogins.sh to java test Reviewed-by: rhalade ! test/jdk/sun/security/pkcs11/Provider/MultipleLogins.java - test/jdk/sun/security/pkcs11/Provider/MultipleLogins.sh Changeset: bf353b3e Branch: code-reflection Author: Paul Sandoz Date: 2025-11-21 21:16:47 +0000 URL: https://git.openjdk.org/babylon/commit/bf353b3e283066efb04bc57df40642d1740ac9d0 Merge ! src/java.base/share/classes/java/lang/reflect/ReflectAccess.java ! src/java.base/share/classes/jdk/internal/access/JavaLangReflectAccess.java ! src/java.base/share/classes/module-info.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/module-info.java ! src/java.base/share/classes/java/lang/reflect/ReflectAccess.java ! src/java.base/share/classes/jdk/internal/access/JavaLangReflectAccess.java ! src/java.base/share/classes/module-info.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/module-info.java From psandoz at openjdk.org Fri Nov 21 21:21:08 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 21:21:08 GMT Subject: [code-reflection] RFR: Merge master [v2] In-Reply-To: References: Message-ID: <6oGRTF7bfl9pTjZGbxoI1sdArkqbO6WilfwzGAWoP00=.4bf25622-d2b9-4300-b535-f3e2ef0eb533@github.com> > Merge master > > Take GenerateJLIClassesHelper.java from master (which somehow got messed up during a prior merge) Paul Sandoz has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 658 commits: - Sync up GenerateJLIClassesHelper.java - Merge remote-tracking branch 'upstream/master' into merge-master - Rename @CodeReflection to @Reflect Reviewed-by: psandoz - Hat view face culling - jextract 25 import fix - Code reflection synthetic class generation moved to JavaCompiler::genCode Reviewed-by: mcimadamore - Code transformer Reviewed-by: mcimadamore, asotona - [hat] Reduces the number of threads in thread-block for small kernels - Split support for reflectable lambdas from lambda metafactory Reviewed-by: psandoz - Optimize type construction in OpBuilder Reviewed-by: asotona - ... and 648 more: https://git.openjdk.org/babylon/compare/2d815ac6...dc47115c ------------- Changes: https://git.openjdk.org/babylon/pull/697/files Webrev: Webrev is not available because diff is too large Stats: 430021 lines in 1111 files changed: 429912 ins; 17 del; 92 mod Patch: https://git.openjdk.org/babylon/pull/697.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/697/head:pull/697 PR: https://git.openjdk.org/babylon/pull/697 From psandoz at openjdk.org Fri Nov 21 21:21:11 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 21 Nov 2025 21:21:11 GMT Subject: [code-reflection] Integrated: Merge master In-Reply-To: References: Message-ID: On Fri, 21 Nov 2025 21:10:33 GMT, Paul Sandoz wrote: > Merge master > > Take GenerateJLIClassesHelper.java from master (which somehow got messed up during a prior merge) This pull request has now been integrated. Changeset: bf353b3e Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/bf353b3e283066efb04bc57df40642d1740ac9d0 Stats: 260075 lines in 2300 files changed: 175219 ins; 47134 del; 37722 mod Merge ------------- PR: https://git.openjdk.org/babylon/pull/697 From duke at openjdk.org Fri Nov 21 22:21:42 2025 From: duke at openjdk.org (Ruby Chen) Date: Fri, 21 Nov 2025 22:21:42 GMT Subject: [code-reflection] RFR: ModuleOp generation from LambdaOp and FuncOp [v2] In-Reply-To: References: Message-ID: <1fibMXBezwxAdhLYqaxQXhYuVer9jWIN4pWctpFilic=.31739fb4-fe03-4c8f-83a4-649697c29793@github.com> > Add support for generating a ModuleOp from either a LambdaOp or a FuncOp. The given LambdaOp will be converted into the root FuncOp, and the given FuncOp will be assigned as the root FuncOp. > > For `CoreOp.ModuleOp.ofLambdaOp()`, a unique name for the new root FuncOp must be passed as a parameter. Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision: - Merge branch 'openjdk:code-reflection' into module-op-support - Update src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java Co-authored-by: Paul Sandoz - ModuleOp generation from LambdaOp and FuncOp ------------- Changes: - all: https://git.openjdk.org/babylon/pull/691/files - new: https://git.openjdk.org/babylon/pull/691/files/c9201e6c..d1cd751a Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=00-01 Stats: 264483 lines in 2649 files changed: 176061 ins; 47598 del; 40824 mod Patch: https://git.openjdk.org/babylon/pull/691.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/691/head:pull/691 PR: https://git.openjdk.org/babylon/pull/691 From gfrost at openjdk.org Sat Nov 22 11:07:09 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 11:07:09 GMT Subject: git: openjdk/babylon: code-reflection: Added some NDRange helpers to simplify N dim ranges Message-ID: Changeset: e1ed5a00 Branch: code-reflection Author: Gary Frost Date: 2025-11-22 11:06:41 +0000 URL: https://git.openjdk.org/babylon/commit/e1ed5a00a04b4112de76d7e28936ce31ccf6af0b Added some NDRange helpers to simplify N dim ranges ! hat/core/src/main/java/hat/NDRange.java ! hat/examples/mandel/src/main/java/mandel/Main.java ! hat/hat/job.jar ! hat/intellij/.idea/misc.xml ! hat/tests/src/main/java/hat/test/TestMatMul.java From gfrost at openjdk.org Sat Nov 22 11:09:16 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 11:09:16 GMT Subject: [code-reflection] RFR: Added some NDRange helpers to simplify N dim ranges Message-ID: Creating multi dim NDRange's can be quite verbose. I added some static helper methods simplify this. An example for 2D range with global and local sizing was NDRange ndRange = NDRange.of(NDRange.Global2D.of(256, 256), NDRange.Local2D.of(16, 16)); ``` We can now use NDRange ndRange = NDRange.of2D(256, 256,16, 16)); The prev version is still available, the later merely delegates to the former. ------------- Commit messages: - Added some NDRange helpers to simplify N dim ranges Changes: https://git.openjdk.org/babylon/pull/698/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=698&range=00 Stats: 56 lines in 5 files changed: 49 ins; 1 del; 6 mod Patch: https://git.openjdk.org/babylon/pull/698.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/698/head:pull/698 PR: https://git.openjdk.org/babylon/pull/698 From gfrost at openjdk.org Sat Nov 22 11:11:50 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 11:11:50 GMT Subject: [code-reflection] Integrated: Added some NDRange helpers to simplify N dim ranges In-Reply-To: References: Message-ID: <1e8y88nntuypyCXHhBJ5-6xNFqy3poX500m6N4_0TiQ=.0bdbaece-c998-4455-8033-eb0a92eb8b6e@github.com> On Sat, 22 Nov 2025 11:03:53 GMT, Gary Frost wrote: > Creating multi dim NDRange's can be quite verbose. I added some static helper methods simplify this. > > An example for 2D range with global and local sizing was > > NDRange ndRange = NDRange.of(NDRange.Global2D.of(256, 256), NDRange.Local2D.of(16, 16)); > ``` > We can now use > > NDRange ndRange = NDRange.of2D(256, 256,16, 16)); > > The prev version is still available, the later merely delegates to the former. This pull request has now been integrated. Changeset: e1ed5a00 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/e1ed5a00a04b4112de76d7e28936ce31ccf6af0b Stats: 56 lines in 5 files changed: 49 ins; 1 del; 6 mod Added some NDRange helpers to simplify N dim ranges ------------- PR: https://git.openjdk.org/babylon/pull/698 From gfrost at openjdk.org Sat Nov 22 14:47:25 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 14:47:25 GMT Subject: git: openjdk/babylon: code-reflection: switch examples and tests to new NDRange helpers Message-ID: Changeset: 75ddfad5 Branch: code-reflection Author: Gary Frost Date: 2025-11-22 14:45:11 +0000 URL: https://git.openjdk.org/babylon/commit/75ddfad569f86cb15c964e57c369742febe8e7ee switch examples and tests to new NDRange helpers ! hat/core/src/main/java/hat/NDRange.java ! hat/examples/blackscholes/src/main/java/blackscholes/Main.java ! hat/examples/experiments/src/main/java/experiments/ForTests.java ! hat/examples/experiments/src/main/java/experiments/LocalArray.java ! hat/examples/experiments/src/main/java/experiments/LocalIds.java ! hat/examples/experiments/src/main/java/experiments/Mesh.java ! hat/examples/experiments/src/main/java/experiments/MinBufferTest.java ! hat/examples/experiments/src/main/java/experiments/PrefixSum.java ! hat/examples/experiments/src/main/java/experiments/QuotedArrayArg.java ! hat/examples/experiments/src/main/java/experiments/QuotedConstantArgs.java ! hat/examples/experiments/src/main/java/experiments/Reduction.java ! hat/examples/experiments/src/main/java/experiments/spirv/GetBackend.java ! hat/examples/experiments/src/main/java/experiments/spirv/MatrixMultiply.java ! hat/examples/heal/src/main/java/heal/Compute.java ! hat/examples/life/src/main/java/life/Main.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java ! hat/examples/squares/src/main/java/squares/Main.java ! hat/examples/violajones/src/main/java/violajones/ViolaJonesCoreCompute.java ! hat/examples/violajones/src/main/java/violajones/attic/ViolaJones.java ! hat/tests/src/main/java/hat/test/TestArrayView.java ! hat/tests/src/main/java/hat/test/TestArrays.java ! hat/tests/src/main/java/hat/test/TestBlackscholes.java ! hat/tests/src/main/java/hat/test/TestConstants.java ! hat/tests/src/main/java/hat/test/TestF16Type.java ! hat/tests/src/main/java/hat/test/TestFloat2.java ! hat/tests/src/main/java/hat/test/TestLocal.java ! hat/tests/src/main/java/hat/test/TestMandel.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tests/src/main/java/hat/test/TestNbody.java ! hat/tests/src/main/java/hat/test/TestParenthesis.java ! hat/tests/src/main/java/hat/test/TestPrivate.java ! hat/tests/src/main/java/hat/test/TestReductions.java ! hat/tests/src/main/java/hat/test/TestVectorArrayView.java ! hat/tests/src/main/java/hat/test/TestVectorTypes.java ! hat/tools/src/main/java/hat/tools/text/TestJavaHATCodeBuilder.java ! hat/tools/src/main/java/hat/tools/textmodel/ui/TestFuncOpViewer.java From gfrost at openjdk.org Sat Nov 22 14:49:33 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 14:49:33 GMT Subject: [code-reflection] Integrated: switch examples and tests to new NDRange helpers Message-ID: Switched all examples and tests to use new NDRange helpers. ------------- Commit messages: - switch examples and tests to new NDRange helpers Changes: https://git.openjdk.org/babylon/pull/699/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=699&range=00 Stats: 253 lines in 37 files changed: 2 ins; 96 del; 155 mod Patch: https://git.openjdk.org/babylon/pull/699.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/699/head:pull/699 PR: https://git.openjdk.org/babylon/pull/699 From gfrost at openjdk.org Sat Nov 22 14:49:33 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 14:49:33 GMT Subject: [code-reflection] Integrated: switch examples and tests to new NDRange helpers In-Reply-To: References: Message-ID: On Sat, 22 Nov 2025 14:42:23 GMT, Gary Frost wrote: > Switched all examples and tests to use new NDRange helpers. This pull request has now been integrated. Changeset: 75ddfad5 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/75ddfad569f86cb15c964e57c369742febe8e7ee Stats: 253 lines in 37 files changed: 2 ins; 96 del; 155 mod switch examples and tests to new NDRange helpers ------------- PR: https://git.openjdk.org/babylon/pull/699 From gfrost at openjdk.org Sat Nov 22 15:49:18 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 15:49:18 GMT Subject: [code-reflection] Integrated: removed unnecessary methods Message-ID: Removed a bunch of access method that were now unused. ------------- Commit messages: - removed unnecessary methods Changes: https://git.openjdk.org/babylon/pull/700/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=700&range=00 Stats: 81 lines in 2 files changed: 5 ins; 55 del; 21 mod Patch: https://git.openjdk.org/babylon/pull/700.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/700/head:pull/700 PR: https://git.openjdk.org/babylon/pull/700 From gfrost at openjdk.org Sat Nov 22 15:49:18 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 15:49:18 GMT Subject: [code-reflection] Integrated: removed unnecessary methods In-Reply-To: References: Message-ID: On Sat, 22 Nov 2025 15:42:52 GMT, Gary Frost wrote: > Removed a bunch of access method that were now unused. This pull request has now been integrated. Changeset: 4eca0a31 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/4eca0a31a718434915ac4f56442ec0a98611a56d Stats: 81 lines in 2 files changed: 5 ins; 55 del; 21 mod removed unnecessary methods ------------- PR: https://git.openjdk.org/babylon/pull/700 From gfrost at openjdk.org Sat Nov 22 15:50:52 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sat, 22 Nov 2025 15:50:52 GMT Subject: git: openjdk/babylon: code-reflection: removed unnecessary methods Message-ID: <115a37d8-a997-4aef-8a0a-0b777060ed7f@openjdk.org> Changeset: 4eca0a31 Branch: code-reflection Author: Gary Frost Date: 2025-11-22 15:45:47 +0000 URL: https://git.openjdk.org/babylon/commit/4eca0a31a718434915ac4f56442ec0a98611a56d removed unnecessary methods ! hat/core/src/main/java/hat/KernelContext.java ! hat/core/src/main/java/hat/NDRange.java From gfrost at openjdk.org Sun Nov 23 14:06:58 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 14:06:58 GMT Subject: git: openjdk/babylon: code-reflection: added a nbody vector kernel Message-ID: <82fba6d8-a406-4db9-9d0a-def8d5be3734@openjdk.org> Changeset: 36470ada Branch: code-reflection Author: Gary Frost Date: 2025-11-23 14:06:02 +0000 URL: https://git.openjdk.org/babylon/commit/36470ada70a87e8fa08175db68efe5df42d2854e added a nbody vector kernel ! hat/core/src/main/java/hat/buffer/Float4.java ! hat/examples/nbody/src/main/java/nbody/Universe.java ! hat/examples/nbody/src/main/java/nbody/opencl/OpenCLNBodyGLWindow.java From gfrost at openjdk.org Sun Nov 23 14:09:43 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 14:09:43 GMT Subject: [code-reflection] Integrated: added a nbody vector kernel Message-ID: An initial attempt at vector nbody kernel (using Float4 vector types) - Needs some array view help ------------- Commit messages: - added a nbody vector kernel Changes: https://git.openjdk.org/babylon/pull/701/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=701&range=00 Stats: 57 lines in 3 files changed: 53 ins; 0 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/701.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/701/head:pull/701 PR: https://git.openjdk.org/babylon/pull/701 From gfrost at openjdk.org Sun Nov 23 14:09:44 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 14:09:44 GMT Subject: [code-reflection] Integrated: added a nbody vector kernel In-Reply-To: References: Message-ID: <0iwJuRfAlvKHXST3GseHZvXuoYe0V70yXyGRuj2PtcQ=.5472b048-e44c-41e9-b1b5-8909a5c20de7@github.com> On Sun, 23 Nov 2025 14:03:50 GMT, Gary Frost wrote: > An initial attempt at vector nbody kernel (using Float4 vector types) - Needs some array view help This pull request has now been integrated. Changeset: 36470ada Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/36470ada70a87e8fa08175db68efe5df42d2854e Stats: 57 lines in 3 files changed: 53 ins; 0 del; 4 mod added a nbody vector kernel ------------- PR: https://git.openjdk.org/babylon/pull/701 From gfrost at openjdk.org Sun Nov 23 16:08:17 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 16:08:17 GMT Subject: git: openjdk/babylon: code-reflection: Hat move javac and java opts from job builder Message-ID: Changeset: a6a9d903 Branch: code-reflection Author: Gary Frost Date: 2025-11-23 16:07:44 +0000 URL: https://git.openjdk.org/babylon/commit/a6a9d903b8dcfb6c134db47edc55a6366b5cbca0 Hat move javac and java opts from job builder ! hat/hat.java ! hat/hat/job.jar ! hat/hat/job/src/main/java/job/ForkExec.java ! hat/hat/job/src/main/java/job/JExtract.java ! hat/hat/job/src/main/java/job/Jar.java ! hat/hat/job/src/main/java/job/Project.java From gfrost at openjdk.org Sun Nov 23 16:10:19 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 16:10:19 GMT Subject: [code-reflection] Integrated: Hat move javac and java opts from job builder Message-ID: Previously the job.jar builder hardcoded the javac opts and also push java runtime opts Now these are where they should have been. In the `hat.java` script. We should now also be able to pass -Dfoo=bar properties and even trailing app/test args in a uniform way. ------------- Commit messages: - Moved handling of javac and java opts up to hat.java - added a nbody vector kernel Changes: https://git.openjdk.org/babylon/pull/702/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=702&range=00 Stats: 248 lines in 9 files changed: 187 ins; 13 del; 48 mod Patch: https://git.openjdk.org/babylon/pull/702.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/702/head:pull/702 PR: https://git.openjdk.org/babylon/pull/702 From gfrost at openjdk.org Sun Nov 23 16:10:20 2025 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 23 Nov 2025 16:10:20 GMT Subject: [code-reflection] Integrated: Hat move javac and java opts from job builder In-Reply-To: References: Message-ID: On Sun, 23 Nov 2025 16:04:19 GMT, Gary Frost wrote: > Previously the job.jar builder hardcoded the javac opts and also push java runtime opts > > Now these are where they should have been. In the `hat.java` script. > > We should now also be able to pass -Dfoo=bar properties and even trailing app/test args in a uniform way. This pull request has now been integrated. Changeset: a6a9d903 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/a6a9d903b8dcfb6c134db47edc55a6366b5cbca0 Stats: 191 lines in 6 files changed: 134 ins; 13 del; 44 mod Hat move javac and java opts from job builder ------------- PR: https://git.openjdk.org/babylon/pull/702 From jfumero at openjdk.org Mon Nov 24 09:30:41 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 09:30:41 GMT Subject: [code-reflection] RFR: [hat] Global and Local ranges to be constructed with `of` methods Message-ID: Global and Local ranges to be constructed with `of` methods Example of a 2D configuration with a 2D block size: var range = NDRange2D.of(Global2D.of(256, 256), Local2D.of(BLOCK_SIZE, BLOCK_SIZE)); ------------- Commit messages: - [hat] Global and Local ranges to be constructed with of methods Changes: https://git.openjdk.org/babylon/pull/703/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=703&range=00 Stats: 52 lines in 2 files changed: 27 ins; 1 del; 24 mod Patch: https://git.openjdk.org/babylon/pull/703.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/703/head:pull/703 PR: https://git.openjdk.org/babylon/pull/703 From jfumero at openjdk.org Mon Nov 24 09:34:40 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 09:34:40 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Global and Local ranges to be constructed with `of` methods Message-ID: Changeset: 6aa49a03 Branch: code-reflection Author: Juan Fumero Date: 2025-11-24 09:29:12 +0000 URL: https://git.openjdk.org/babylon/commit/6aa49a03b4cff8b54c8bdf20a29344b03cddedf3 [hat] Global and Local ranges to be constructed with `of` methods ! hat/core/src/main/java/hat/NDRange.java ! hat/examples/matmul/src/main/java/matmul/Main.java From jfumero at openjdk.org Mon Nov 24 09:34:59 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 09:34:59 GMT Subject: [code-reflection] Integrated: [hat] Global and Local ranges to be constructed with `of` methods In-Reply-To: References: Message-ID: On Mon, 24 Nov 2025 09:19:09 GMT, Juan Fumero wrote: > Global and Local ranges to be constructed with `of` methods > > Example of a 2D configuration with a 2D block size: > > > var range = NDRange2D.of(Global2D.of(256, 256), Local2D.of(BLOCK_SIZE, BLOCK_SIZE)); This pull request has now been integrated. Changeset: 6aa49a03 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/6aa49a03b4cff8b54c8bdf20a29344b03cddedf3 Stats: 52 lines in 2 files changed: 27 ins; 1 del; 24 mod [hat] Global and Local ranges to be constructed with `of` methods ------------- PR: https://git.openjdk.org/babylon/pull/703 From jfumero at openjdk.org Mon Nov 24 12:24:21 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 12:24:21 GMT Subject: [code-reflection] RFR: [hat] Use of C99CodeBuilder to build the IR for a deviceType Message-ID: [hat] Use of C99CodeBuilder to build the IR for a deviceType ------------- Commit messages: - [hat] Use of C99CodeBuilder to build the IR for a deviceType Changes: https://git.openjdk.org/babylon/pull/704/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=704&range=00 Stats: 99 lines in 3 files changed: 74 ins; 4 del; 21 mod Patch: https://git.openjdk.org/babylon/pull/704.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/704/head:pull/704 PR: https://git.openjdk.org/babylon/pull/704 From jfumero at openjdk.org Mon Nov 24 12:56:34 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 12:56:34 GMT Subject: [code-reflection] Integrated: [hat] Use of C99CodeBuilder to build the IR for a deviceType In-Reply-To: References: Message-ID: On Mon, 24 Nov 2025 12:13:09 GMT, Juan Fumero wrote: > [hat] Use of C99CodeBuilder to build the IR for a deviceType This pull request has now been integrated. Changeset: e644ddea Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/e644ddea433ebb754e1cf9b8e66bf6a577ecd319 Stats: 99 lines in 3 files changed: 74 ins; 4 del; 21 mod [hat] Use of C99CodeBuilder to build the IR for a deviceType ------------- PR: https://git.openjdk.org/babylon/pull/704 From jfumero at openjdk.org Mon Nov 24 12:57:53 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Mon, 24 Nov 2025 12:57:53 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Use of C99CodeBuilder to build the IR for a deviceType Message-ID: Changeset: e644ddea Branch: code-reflection Author: Juan Fumero Date: 2025-11-24 12:52:59 +0000 URL: https://git.openjdk.org/babylon/commit/e644ddea433ebb754e1cf9b8e66bf6a577ecd319 [hat] Use of C99CodeBuilder to build the IR for a deviceType + hat/core/src/main/java/hat/codebuilders/C99CodeBuilder.java ! hat/core/src/main/java/hat/device/DeviceSchema.java ! hat/tests/src/main/java/hat/test/TestDeviceType.java From gfrost at openjdk.org Mon Nov 24 16:29:52 2025 From: gfrost at openjdk.org (Gary Frost) Date: Mon, 24 Nov 2025 16:29:52 GMT Subject: [code-reflection] Integrated: Adding empty string to java's ProcessBuilder seeems problematic Message-ID: Weird bug. Seems like adding an empty "" string to List then 'joining' this list to create opts for a ProcessBuilder seems to stop the ProcessBuilder from adding all opts/args. This fixes hat.java ------------- Commit messages: - Adding empty string to java's ProcessBuilder seeems problematic Changes: https://git.openjdk.org/babylon/pull/705/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=705&range=00 Stats: 3 lines in 1 file changed: 2 ins; 0 del; 1 mod Patch: https://git.openjdk.org/babylon/pull/705.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/705/head:pull/705 PR: https://git.openjdk.org/babylon/pull/705 From gfrost at openjdk.org Mon Nov 24 16:29:53 2025 From: gfrost at openjdk.org (Gary Frost) Date: Mon, 24 Nov 2025 16:29:53 GMT Subject: [code-reflection] Integrated: Adding empty string to java's ProcessBuilder seeems problematic In-Reply-To: References: Message-ID: On Mon, 24 Nov 2025 16:22:48 GMT, Gary Frost wrote: > Weird bug. > > Seems like adding an empty "" string to List then 'joining' this list to create opts for a ProcessBuilder seems to stop the ProcessBuilder from adding all opts/args. > > This fixes hat.java This pull request has now been integrated. Changeset: 1f74020f Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/1f74020f7307626ffe7fdb61a0b6799c95f80159 Stats: 3 lines in 1 file changed: 2 ins; 0 del; 1 mod Adding empty string to java's ProcessBuilder seeems problematic ------------- PR: https://git.openjdk.org/babylon/pull/705 From gfrost at openjdk.org Mon Nov 24 16:32:46 2025 From: gfrost at openjdk.org (Gary Frost) Date: Mon, 24 Nov 2025 16:32:46 GMT Subject: git: openjdk/babylon: code-reflection: Adding empty string to java's ProcessBuilder seeems problematic Message-ID: <69f11894-e348-42cd-952e-8d0ab243c752@openjdk.org> Changeset: 1f74020f Branch: code-reflection Author: Gary Frost Date: 2025-11-24 16:26:13 +0000 URL: https://git.openjdk.org/babylon/commit/1f74020f7307626ffe7fdb61a0b6799c95f80159 Adding empty string to java's ProcessBuilder seeems problematic ! hat/hat.java From duke at openjdk.org Mon Nov 24 18:52:39 2025 From: duke at openjdk.org (Ruby Chen) Date: Mon, 24 Nov 2025 18:52:39 GMT Subject: [code-reflection] RFR: ModuleOp generation from LambdaOp and FuncOp [v3] In-Reply-To: References: Message-ID: <5pi-YgA6vZqIb7UFBl_ilucBdKRNEzYw-27YeFEtvL0=.a8f2db83-e502-4b95-a93d-9199be36530a@github.com> > Add support for generating a ModuleOp from either a LambdaOp or a FuncOp. The given LambdaOp will be converted into the root FuncOp, and the given FuncOp will be assigned as the root FuncOp. > > For `CoreOp.ModuleOp.ofLambdaOp()`, a unique name for the new root FuncOp must be passed as a parameter. Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision: - Suggested changes - Merge branch 'openjdk:code-reflection' into module-op-support - Merge branch 'openjdk:code-reflection' into module-op-support - Update src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java Co-authored-by: Paul Sandoz - ModuleOp generation from LambdaOp and FuncOp ------------- Changes: - all: https://git.openjdk.org/babylon/pull/691/files - new: https://git.openjdk.org/babylon/pull/691/files/d1cd751a..1a322a2b Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=01-02 Stats: 794 lines in 53 files changed: 391 ins; 158 del; 245 mod Patch: https://git.openjdk.org/babylon/pull/691.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/691/head:pull/691 PR: https://git.openjdk.org/babylon/pull/691 From duke at openjdk.org Mon Nov 24 19:17:41 2025 From: duke at openjdk.org (Ruby Chen) Date: Mon, 24 Nov 2025 19:17:41 GMT Subject: [code-reflection] RFR: ModuleOp generation from LambdaOp and FuncOp [v4] In-Reply-To: References: Message-ID: > Add support for generating a ModuleOp from either a LambdaOp or a FuncOp. The given LambdaOp will be converted into the root FuncOp, and the given FuncOp will be assigned as the root FuncOp. > > For `CoreOp.ModuleOp.ofLambdaOp()`, a unique name for the new root FuncOp must be passed as a parameter. Ruby Chen has updated the pull request incrementally with one additional commit since the last revision: removing commented code ------------- Changes: - all: https://git.openjdk.org/babylon/pull/691/files - new: https://git.openjdk.org/babylon/pull/691/files/1a322a2b..74910c50 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=03 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=691&range=02-03 Stats: 39 lines in 1 file changed: 0 ins; 32 del; 7 mod Patch: https://git.openjdk.org/babylon/pull/691.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/691/head:pull/691 PR: https://git.openjdk.org/babylon/pull/691 From mcimadamore at openjdk.org Tue Nov 25 19:25:30 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Tue, 25 Nov 2025 19:25:30 GMT Subject: [code-reflection] RFR: Refactor code for computing denotable projection of types Message-ID: The code reflection support needs a way to compute the closest fully denotable supertype of the type of an expression. To do this we build on [type projections](https://docs.oracle.com/javase/specs/jls/se25/html/jls-4.html#jls-4.10.5), but this doesn't work fully, because type projectios still allow intersection types in, and the `JavaType` API (or the `j.l.r.Type` API) doesn't have a way to model these. For this reason, we had to tweak the compiler code in `Types` to accept an extra parameter to tell the projection to also discard intersection/union types. While this works, this creates a lot of noise in the compiler codebase, so I've been looking for a lower-maintenance alternative. The basic idea behind this PR is to apply a normalization pass _before_ we compute a vanilla type projection. This normalization pass essentially replaces any intersection type with a fresh type variable whose bound is the first bound of the intersection. As an example, consider the type: `Foo`: 1. we first transform this type into `Foo<#1>` where `#1` is a fresh type-variable with upper bound `A` 2. we then add `#1` to the list of type variables to be "projected" 3. we then compute the upward projectin of `Foo<#1>`, and obtain `Foo`. This process is sound because (a) replacing `A & B & C` with a fresh type variable with bound `A & B & C` is sound, and because (b) upward projection will always map such type variables into some kind of wildcard (so dropping some bounds from the intersection doesn't make any difference) -- unless the type is a toplevel type, in which case, again dropping a bound doesn't make any difference. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/707/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=707&range=00 Stats: 334 lines in 3 files changed: 244 ins; 76 del; 14 mod Patch: https://git.openjdk.org/babylon/pull/707.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/707/head:pull/707 PR: https://git.openjdk.org/babylon/pull/707 From mcimadamore at openjdk.org Tue Nov 25 19:25:31 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Tue, 25 Nov 2025 19:25:31 GMT Subject: [code-reflection] RFR: Refactor code for computing denotable projection of types In-Reply-To: References: Message-ID: On Tue, 25 Nov 2025 19:07:45 GMT, Maurizio Cimadamore wrote: > The code reflection support needs a way to compute the closest fully denotable supertype of the type of an expression. To do this we build on [type projections](https://docs.oracle.com/javase/specs/jls/se25/html/jls-4.html#jls-4.10.5), but this doesn't work fully, because type projectios still allow intersection types in, and the `JavaType` API (or the `j.l.r.Type` API) doesn't have a way to model these. > > For this reason, we had to tweak the compiler code in `Types` to accept an extra parameter to tell the projection to also discard intersection/union types. While this works, this creates a lot of noise in the compiler codebase, so I've been looking for a lower-maintenance alternative. > > The basic idea behind this PR is to apply a normalization pass _before_ we compute a vanilla type projection. This normalization pass essentially replaces any intersection type with a fresh type variable whose bound is the first bound of the intersection. > > As an example, consider the type: `Foo`: > > 1. we first transform this type into `Foo<#1>` where `#1` is a fresh type-variable with upper bound `A` > 2. we then add `#1` to the list of type variables to be "projected" > 3. we then compute the upward projectin of `Foo<#1>`, and obtain `Foo`. > > This process is sound because (a) replacing `A & B & C` with a fresh type variable with bound `A & B & C` is sound, and because (b) upward projection will always map such type variables into some kind of wildcard (so dropping some bounds from the intersection doesn't make any difference) -- unless the type is a toplevel type, in which case, again dropping a bound doesn't make any difference. test/langtools/tools/javac/reflect/DenotableTypesTest.java line 241: > 239: @Reflect > 240: @IR(""" > 241: func @"test11" ()java.type:"void" -> { When discussing things with Dan to make sure things were really sound, we came up with a bunch of potentially problematic situation for which I've added tests. They basically test intersections, array of intersections and intersections of intersections (!!). ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/707#discussion_r2561123660 From mcimadamore at openjdk.org Tue Nov 25 19:25:31 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Tue, 25 Nov 2025 19:25:31 GMT Subject: [code-reflection] RFR: Refactor code for computing denotable projection of types In-Reply-To: References: Message-ID: On Tue, 25 Nov 2025 19:14:42 GMT, Maurizio Cimadamore wrote: >> The code reflection support needs a way to compute the closest fully denotable supertype of the type of an expression. To do this we build on [type projections](https://docs.oracle.com/javase/specs/jls/se25/html/jls-4.html#jls-4.10.5), but this doesn't work fully, because type projectios still allow intersection types in, and the `JavaType` API (or the `j.l.r.Type` API) doesn't have a way to model these. >> >> For this reason, we had to tweak the compiler code in `Types` to accept an extra parameter to tell the projection to also discard intersection/union types. While this works, this creates a lot of noise in the compiler codebase, so I've been looking for a lower-maintenance alternative. >> >> The basic idea behind this PR is to apply a normalization pass _before_ we compute a vanilla type projection. This normalization pass essentially replaces any intersection type with a fresh type variable whose bound is the first bound of the intersection. >> >> As an example, consider the type: `Foo`: >> >> 1. we first transform this type into `Foo<#1>` where `#1` is a fresh type-variable with upper bound `A` >> 2. we then add `#1` to the list of type variables to be "projected" >> 3. we then compute the upward projectin of `Foo<#1>`, and obtain `Foo`. >> >> This process is sound because (a) replacing `A & B & C` with a fresh type variable with bound `A & B & C` is sound, and because (b) upward projection will always map such type variables into some kind of wildcard (so dropping some bounds from the intersection doesn't make any difference) -- unless the type is a toplevel type, in which case, again dropping a bound doesn't make any difference. > > test/langtools/tools/javac/reflect/DenotableTypesTest.java line 241: > >> 239: @Reflect >> 240: @IR(""" >> 241: func @"test11" ()java.type:"void" -> { > > When discussing things with Dan to make sure things were really sound, we came up with a bunch of potentially problematic situation for which I've added tests. They basically test intersections, array of intersections and intersections of intersections (!!). (this exercise uncovered a bug in my implementation :-) ) ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/707#discussion_r2561124472 From jfumero at openjdk.org Tue Nov 25 19:28:05 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 25 Nov 2025 19:28:05 GMT Subject: [code-reflection] Integrated: Samples fixed after refactoring Message-ID: Code reflection samples fixed after refactoring ------------- Commit messages: - Samples fixed after refactoring Changes: https://git.openjdk.org/babylon/pull/708/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=708&range=00 Stats: 25 lines in 4 files changed: 7 ins; 8 del; 10 mod Patch: https://git.openjdk.org/babylon/pull/708.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/708/head:pull/708 PR: https://git.openjdk.org/babylon/pull/708 From jfumero at openjdk.org Tue Nov 25 19:27:59 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 25 Nov 2025 19:27:59 GMT Subject: git: openjdk/babylon: code-reflection: Samples fixed after refactoring Message-ID: Changeset: 89b40cbb Branch: code-reflection Author: Juan Fumero Date: 2025-11-25 19:22:52 +0000 URL: https://git.openjdk.org/babylon/commit/89b40cbb0218348a139f5e22b838d3d66ed18c6e Samples fixed after refactoring ! cr-examples/samples/src/main/java/oracle/code/samples/DialectFMAOp.java ! cr-examples/samples/src/main/java/oracle/code/samples/DialectWithInvoke.java ! cr-examples/samples/src/main/java/oracle/code/samples/MathOptimizer.java ! cr-examples/samples/src/main/java/oracle/code/samples/MathOptimizerWithInlining.java From jfumero at openjdk.org Tue Nov 25 19:28:06 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Tue, 25 Nov 2025 19:28:06 GMT Subject: [code-reflection] Integrated: Samples fixed after refactoring In-Reply-To: References: Message-ID: On Tue, 25 Nov 2025 19:08:08 GMT, Juan Fumero wrote: > Code reflection samples fixed after refactoring This pull request has now been integrated. Changeset: 89b40cbb Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/89b40cbb0218348a139f5e22b838d3d66ed18c6e Stats: 25 lines in 4 files changed: 7 ins; 8 del; 10 mod Samples fixed after refactoring ------------- PR: https://git.openjdk.org/babylon/pull/708 From jfumero at openjdk.org Wed Nov 26 08:43:01 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 26 Nov 2025 08:43:01 GMT Subject: [code-reflection] RFR: [hat] varStoreOp extended for dialect varOp Types Message-ID: This PR extends the C99 codegen to generate stores for the `VarStoreOp` that corresponds to custom stores for the HAT Dialect. For example: acc = PrivateDataStructure.createPrivate(); ... acc = F16.add(acc, mul); This patch has been tested for both the OpenCL and CUDA backends. ------------- Commit messages: - [hat] varStoreOp extended for dialect varOp Types Changes: https://git.openjdk.org/babylon/pull/709/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=709&range=00 Stats: 34 lines in 8 files changed: 9 ins; 2 del; 23 mod Patch: https://git.openjdk.org/babylon/pull/709.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/709/head:pull/709 PR: https://git.openjdk.org/babylon/pull/709 From jfumero at openjdk.org Wed Nov 26 09:00:25 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 26 Nov 2025 09:00:25 GMT Subject: git: openjdk/babylon: code-reflection: [hat] varStoreOp extended for dialect varOp Types Message-ID: <731b0d1f-9bee-42d4-a4f9-cdcc9cb68560@openjdk.org> Changeset: b85eeb20 Branch: code-reflection Author: Juan Fumero Date: 2025-11-26 08:58:36 +0000 URL: https://git.openjdk.org/babylon/commit/b85eeb20e075b4185b565dfaa1eb89608c528315 [hat] varStoreOp extended for dialect varOp Types ! hat/core/src/main/java/hat/codebuilders/BabylonOpBuilder.java ! hat/core/src/main/java/hat/codebuilders/C99HATKernelBuilder.java ! hat/core/src/main/java/hat/codebuilders/HATCodeBuilderWithContext.java = hat/core/src/main/java/hat/dialect/HATPrivateInitVarOp.java ! hat/core/src/main/java/hat/phases/HATDialectifyMemoryPhase.java ! hat/examples/matmul/src/main/java/matmul/Main.java ! hat/tests/src/main/java/hat/test/TestMatMul.java ! hat/tools/src/main/java/hat/tools/text/JavaHATCodeBuilder.java From jfumero at openjdk.org Wed Nov 26 09:02:38 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Wed, 26 Nov 2025 09:02:38 GMT Subject: [code-reflection] Integrated: [hat] varStoreOp extended for dialect varOp Types In-Reply-To: References: Message-ID: On Wed, 26 Nov 2025 08:36:22 GMT, Juan Fumero wrote: > This PR extends the C99 codegen to generate stores for the `VarStoreOp` that corresponds to custom stores for the HAT Dialect. > > For example: > > > acc = PrivateDataStructure.createPrivate(); > ... > acc = F16.add(acc, mul); > > > This patch has been tested for both the OpenCL and CUDA backends. This pull request has now been integrated. Changeset: b85eeb20 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/b85eeb20e075b4185b565dfaa1eb89608c528315 Stats: 34 lines in 8 files changed: 9 ins; 2 del; 23 mod [hat] varStoreOp extended for dialect varOp Types ------------- PR: https://git.openjdk.org/babylon/pull/709 From mabbay at openjdk.org Wed Nov 26 09:27:21 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Wed, 26 Nov 2025 09:27:21 GMT Subject: [code-reflection] RFR: Detect if a java switch is case constant Message-ID: <7uiQQC2YeiLsvzGX15uYO1Lltdn1mW1wqz17hq5vsko=.ef7c6cb8-7fc9-411e-984e-4a8938f4e726@github.com> Add the logic to check if a switch op is case constant. ------------- Commit messages: - Detect if a java switch is case constant Changes: https://git.openjdk.org/babylon/pull/710/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=710&range=00 Stats: 224 lines in 2 files changed: 224 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/710.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/710/head:pull/710 PR: https://git.openjdk.org/babylon/pull/710 From mcimadamore at openjdk.org Wed Nov 26 18:42:57 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Wed, 26 Nov 2025 18:42:57 GMT Subject: [code-reflection] RFR: Remove minor unnecessary changes from main javac codebase Message-ID: This PR undoes some unnecessary changes to the javac code: * `LambdaToMethod` still mentions the `QUOTABLE` flag, which is no longer in use * `Symtab` has an helper method to load classes from a string name, but that's not really required * `TreeInfo` defines a new helper function to detect `super` in an expression. Further analysis revealed this was unnecessary (as we can piggy back on the method reference kind instead) ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/711/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=711&range=00 Stats: 45 lines in 5 files changed: 6 ins; 32 del; 7 mod Patch: https://git.openjdk.org/babylon/pull/711.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/711/head:pull/711 PR: https://git.openjdk.org/babylon/pull/711 From nadeeshtv at gmail.com Fri Nov 28 06:46:31 2025 From: nadeeshtv at gmail.com (nadeesh t v) Date: Fri, 28 Nov 2025 07:46:31 +0100 Subject: Babylon building document correction In-Reply-To: References: Message-ID: Hello, I was trying to build the babylon project by reading the following doc and noticed a minor correction and attached a patch for it. For the 2nd change related to clearing JTREG, without that I was running into the below error. ``` treg/build/images/jtreg/ is not a valid keyword for JTREG. Valid keywords: JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY JVMTI_STRESS_AGENT MAX_MEM RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT AOT_JDK MANUAL OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS. RunTests.gmk:205: *** Cannot continue. Stop. make[2]: *** [test] Error 2 ``` Not sure it is a *my* issue , rather than a generic issue. Let me know whether it's worth making a PR for this. -- Thanks and Regards, Nadeesh -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: buildDoc.patch Type: application/x-patch Size: 641 bytes Desc: not available URL: From juan.fumero at oracle.com Fri Nov 28 08:16:55 2025 From: juan.fumero at oracle.com (Juan Jose Fumero Alfonso) Date: Fri, 28 Nov 2025 08:16:55 +0000 Subject: Babylon building document correction In-Reply-To: References: Message-ID: Thank you, Nadeesh, for spotting this. The problem is that the $JTREG is reserved for this Makefile to pass arguments for the JTREG testing framework: https://github.com/openjdk/babylon/blob/code-reflection/doc/testing.md#options Thus, following this documentation, we?re using the same env variable for different purposes. If you rename the $JTREG to something else (e.g., JTREG_BUILD_HOME), everything passes. We will fix the documentation. Juan Confidential- Oracle Internal From: babylon-dev on behalf of nadeesh t v Date: Friday, 28 November 2025 at 07:46 To: babylon-dev at openjdk.org Subject: Babylon building document correction Hello, I was trying to build the babylon project by reading the following doc and noticed a minor correction and attached a patch for it. For the 2nd change related to clearing JTREG, without that I was running into the below error. ``` treg/build/images/jtreg/ is not a valid keyword for JTREG. Valid keywords: JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY JVMTI_STRESS_AGENT MAX_MEM RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT AOT_JDK MANUAL OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS. RunTests.gmk:205: *** Cannot continue. Stop. make[2]: *** [test] Error 2 ``` Not sure it is a my issue , rather than a generic issue. Let me know whether it's worth making a PR for this. -- Thanks and Regards, Nadeesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From jfumero at openjdk.org Fri Nov 28 09:14:03 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 09:14:03 GMT Subject: [code-reflection] RFR: [docs] Babylon and HAT builds and with HAT testing updated Message-ID: Babylon and HAT builds and with HAT testing updated ------------- Commit messages: - [docs] Babylon and HAT builds and with HAT testing updated Changes: https://git.openjdk.org/babylon/pull/712/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=712&range=00 Stats: 136 lines in 2 files changed: 102 ins; 23 del; 11 mod Patch: https://git.openjdk.org/babylon/pull/712.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/712/head:pull/712 PR: https://git.openjdk.org/babylon/pull/712 From jfumero at openjdk.org Fri Nov 28 09:21:25 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 09:21:25 GMT Subject: [code-reflection] Integrated: [docs] Babylon and HAT builds and with HAT testing updated In-Reply-To: References: Message-ID: On Fri, 28 Nov 2025 09:08:59 GMT, Juan Fumero wrote: > Babylon and HAT builds and with HAT testing updated This pull request has now been integrated. Changeset: 5b7b3b66 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/5b7b3b661b079e2cb04fba9199c2a19d60e87ef5 Stats: 136 lines in 2 files changed: 102 ins; 23 del; 11 mod [docs] Babylon and HAT builds and with HAT testing updated ------------- PR: https://git.openjdk.org/babylon/pull/712 From jfumero at openjdk.org Fri Nov 28 09:22:18 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 09:22:18 GMT Subject: git: openjdk/babylon: code-reflection: [docs] Babylon and HAT builds and with HAT testing updated Message-ID: <9bf97cd5-0565-4581-873c-18546b9386a1@openjdk.org> Changeset: 5b7b3b66 Branch: code-reflection Author: Juan Fumero Date: 2025-11-28 09:18:20 +0000 URL: https://git.openjdk.org/babylon/commit/5b7b3b661b079e2cb04fba9199c2a19d60e87ef5 [docs] Babylon and HAT builds and with HAT testing updated ! hat/docs/hat-01-02-building-babylon.md ! hat/docs/hat-01-03-building-hat.md From juan.fumero at oracle.com Fri Nov 28 09:48:16 2025 From: juan.fumero at oracle.com (Juan Jose Fumero Alfonso) Date: Fri, 28 Nov 2025 09:48:16 +0000 Subject: Babylon building document correction In-Reply-To: References: Message-ID: The documentation has been updated. https://github.com/openjdk/babylon/commit/5b7b3b661b079e2cb04fba9199c2a19d60e87ef5 Juan From: babylon-dev on behalf of Juan Jose Fumero Alfonso Date: Friday, 28 November 2025 at 09:17 To: nadeesh t v , babylon-dev at openjdk.org Subject: Re: Babylon building document correction Thank you, Nadeesh, for spotting this. The problem is that the $JTREG is reserved for this Makefile to pass arguments for the JTREG testing framework: https://github.com/openjdk/babylon/blob/code-reflection/doc/testing.md#options Thus, following this documentation, we?re using the same env variable for different purposes. If you rename the $JTREG to something else (e.g., JTREG_BUILD_HOME), everything passes. We will fix the documentation. Juan Confidential- Oracle Internal From: babylon-dev on behalf of nadeesh t v Date: Friday, 28 November 2025 at 07:46 To: babylon-dev at openjdk.org Subject: Babylon building document correction Hello, I was trying to build the babylon project by reading the following doc and noticed a minor correction and attached a patch for it. For the 2nd change related to clearing JTREG, without that I was running into the below error. ``` treg/build/images/jtreg/ is not a valid keyword for JTREG. Valid keywords: JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY JVMTI_STRESS_AGENT MAX_MEM RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT AOT_JDK MANUAL OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS. RunTests.gmk:205: *** Cannot continue. Stop. make[2]: *** [test] Error 2 ``` Not sure it is a my issue , rather than a generic issue. Let me know whether it's worth making a PR for this. -- Thanks and Regards, Nadeesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From nadeeshtv at gmail.com Fri Nov 28 10:06:35 2025 From: nadeeshtv at gmail.com (nadeesh t v) Date: Fri, 28 Nov 2025 11:06:35 +0100 Subject: Babylon building document correction In-Reply-To: References: Message-ID: Thank you very much. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jfumero at openjdk.org Fri Nov 28 10:08:01 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 10:08:01 GMT Subject: [code-reflection] RFR: [hat] Compilation phases formatted with sub-phase Message-ID: <4xfvlyuADxieoMF_AarwweC7Sx7Pw0Kbd1kUSmDhksw=.0add619d-63ff-4c04-9d33-5c9219faf3a3@github.com> Compilation phases formatted with sub-phase in the logs. Example: [INFO] Code model before [HATDialectifyFP16Phase#dialectifyF16Stores]: func @loc="82:5:file: ... [INFO] Code model after [HATDialectifyFP16Phase#dialectifyF16Stores]: func @loc="82:5:file: ------------- Commit messages: - [hat] Compilation phases formatted with sub-phase Changes: https://git.openjdk.org/babylon/pull/713/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=713&range=00 Stats: 10 lines in 2 files changed: 1 ins; 5 del; 4 mod Patch: https://git.openjdk.org/babylon/pull/713.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/713/head:pull/713 PR: https://git.openjdk.org/babylon/pull/713 From jfumero at openjdk.org Fri Nov 28 10:14:38 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 10:14:38 GMT Subject: git: openjdk/babylon: code-reflection: [hat] Compilation phases formatted with sub-phase Message-ID: <773abfdc-a4f0-4d25-9a28-fbd4a2cb2f66@openjdk.org> Changeset: 36474367 Branch: code-reflection Author: Juan Fumero Date: 2025-11-28 10:13:30 +0000 URL: https://git.openjdk.org/babylon/commit/364743678e6382eefab0ac36976640bf76a34ee8 [hat] Compilation phases formatted with sub-phase ! hat/core/src/main/java/hat/phases/HATDialect.java ! hat/tools/src/main/java/hat/tools/textmodel/terminal/ANSI.java From jfumero at openjdk.org Fri Nov 28 10:16:45 2025 From: jfumero at openjdk.org (Juan Fumero) Date: Fri, 28 Nov 2025 10:16:45 GMT Subject: [code-reflection] Integrated: [hat] Compilation phases formatted with sub-phase In-Reply-To: <4xfvlyuADxieoMF_AarwweC7Sx7Pw0Kbd1kUSmDhksw=.0add619d-63ff-4c04-9d33-5c9219faf3a3@github.com> References: <4xfvlyuADxieoMF_AarwweC7Sx7Pw0Kbd1kUSmDhksw=.0add619d-63ff-4c04-9d33-5c9219faf3a3@github.com> Message-ID: <-SS9WFAMMrRhLaZFQTSWXx7dF72UIK72mRqU_6WPUm8=.05139425-3297-4f95-a58c-1db00d523d4c@github.com> On Fri, 28 Nov 2025 10:02:07 GMT, Juan Fumero wrote: > Compilation phases formatted with sub-phase in the logs. > > Example: > > > [INFO] Code model before [HATDialectifyFP16Phase#dialectifyF16Stores]: > func @loc="82:5:file: > ... > > [INFO] Code model after [HATDialectifyFP16Phase#dialectifyF16Stores]: > func @loc="82:5:file: This pull request has now been integrated. Changeset: 36474367 Author: Juan Fumero URL: https://git.openjdk.org/babylon/commit/364743678e6382eefab0ac36976640bf76a34ee8 Stats: 10 lines in 2 files changed: 1 ins; 5 del; 4 mod [hat] Compilation phases formatted with sub-phase ------------- PR: https://git.openjdk.org/babylon/pull/713 From gfrost at openjdk.org Fri Nov 28 12:14:02 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 28 Nov 2025 12:14:02 GMT Subject: [code-reflection] Integrated: Make java @hat/bld less noisy by default Message-ID: Added ability to throttle verbosity of `java @hat/bld` Previously it was very noisy. Now it just shows progress. We now pass configuration for javac, cmake and jextract verbosity in Project constructor (see `hat.java`'s Project constructor) ------------- Commit messages: - Make java @hat/bld less noisy by default Changes: https://git.openjdk.org/babylon/pull/714/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=714&range=00 Stats: 1308 lines in 19 files changed: 811 ins; 352 del; 145 mod Patch: https://git.openjdk.org/babylon/pull/714.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/714/head:pull/714 PR: https://git.openjdk.org/babylon/pull/714 From gfrost at openjdk.org Fri Nov 28 12:14:07 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 28 Nov 2025 12:14:07 GMT Subject: git: openjdk/babylon: code-reflection: Make java @hat/bld less noisy by default Message-ID: Changeset: d7107ab9 Branch: code-reflection Author: Gary Frost Date: 2025-11-28 12:11:00 +0000 URL: https://git.openjdk.org/babylon/commit/d7107ab9d5903e5062ca327319b2d2a44d5f29e7 Make java @hat/bld less noisy by default ! hat/hat.java + hat/hat/dot ! hat/hat/job.jar ! hat/hat/job/src/main/java/job/CMake.java ! hat/hat/job/src/main/java/job/CMakeInfo.java + hat/hat/job/src/main/java/job/CommonConfig.java ! hat/hat/job/src/main/java/job/Cuda.java ! hat/hat/job/src/main/java/job/Dag.java ! hat/hat/job/src/main/java/job/Dependency.java ! hat/hat/job/src/main/java/job/ForkExec.java ! hat/hat/job/src/main/java/job/JExtract.java ! hat/hat/job/src/main/java/job/JExtractOptProvider.java ! hat/hat/job/src/main/java/job/Jar.java ! hat/hat/job/src/main/java/job/OpenCL.java ! hat/hat/job/src/main/java/job/OpenGL.java ! hat/hat/job/src/main/java/job/Project.java - hat/hat/job/src/main/java/job/Reporter.java + hat/hat/job/src/main/java/job/StringList.java ! hat/hat/job/src/main/java/job/Util.java From gfrost at openjdk.org Fri Nov 28 12:14:03 2025 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 28 Nov 2025 12:14:03 GMT Subject: [code-reflection] Integrated: Make java @hat/bld less noisy by default In-Reply-To: References: Message-ID: On Fri, 28 Nov 2025 12:07:05 GMT, Gary Frost wrote: > Added ability to throttle verbosity of `java @hat/bld` > > Previously it was very noisy. Now it just shows progress. > > We now pass configuration for javac, cmake and jextract verbosity in Project constructor (see `hat.java`'s Project constructor) This pull request has now been integrated. Changeset: d7107ab9 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/d7107ab9d5903e5062ca327319b2d2a44d5f29e7 Stats: 1308 lines in 19 files changed: 811 ins; 352 del; 145 mod Make java @hat/bld less noisy by default ------------- PR: https://git.openjdk.org/babylon/pull/714 From mcimadamore at openjdk.org Fri Nov 28 12:52:31 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 28 Nov 2025 12:52:31 GMT Subject: [code-reflection] RFR: Fix javadoc issues Message-ID: This simple PR fixes some issues preventing `make docs` to complete normally. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/715/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=715&range=00 Stats: 10 lines in 4 files changed: 2 ins; 2 del; 6 mod Patch: https://git.openjdk.org/babylon/pull/715.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/715/head:pull/715 PR: https://git.openjdk.org/babylon/pull/715 From mcimadamore at openjdk.org Fri Nov 28 12:52:32 2025 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 28 Nov 2025 12:52:32 GMT Subject: [code-reflection] RFR: Fix javadoc issues In-Reply-To: References: Message-ID: On Fri, 28 Nov 2025 12:46:11 GMT, Maurizio Cimadamore wrote: > This simple PR fixes some issues preventing `make docs` to complete normally. src/jdk.compiler/share/classes/module-info.java line 26: > 24: */ > 25: > 26: import javax.tools.JavaCompiler; These imports have been dropped from mainline, so I restored them (as this was causing issues when generating javadoc for module-info) ------------- PR Review Comment: https://git.openjdk.org/babylon/pull/715#discussion_r2571567848 From mabbay at openjdk.org Fri Nov 28 16:05:41 2025 From: mabbay at openjdk.org (Mourad Abbay) Date: Fri, 28 Nov 2025 16:05:41 GMT Subject: [code-reflection] RFR: Detect if a java switch is case constant [v2] In-Reply-To: <7uiQQC2YeiLsvzGX15uYO1Lltdn1mW1wqz17hq5vsko=.ef7c6cb8-7fc9-411e-984e-4a8938f4e726@github.com> References: <7uiQQC2YeiLsvzGX15uYO1Lltdn1mW1wqz17hq5vsko=.ef7c6cb8-7fc9-411e-984e-4a8938f4e726@github.com> Message-ID: > Add the logic to check if a switch op is case constant. Mourad Abbay has updated the pull request incrementally with one additional commit since the last revision: Change the logic to return true only when labels in bytecode matches labels in source code ------------- Changes: - all: https://git.openjdk.org/babylon/pull/710/files - new: https://git.openjdk.org/babylon/pull/710/files/38fa5d0c..cf9318fc Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=710&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=710&range=00-01 Stats: 138 lines in 2 files changed: 88 ins; 30 del; 20 mod Patch: https://git.openjdk.org/babylon/pull/710.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/710/head:pull/710 PR: https://git.openjdk.org/babylon/pull/710 From psandoz at openjdk.org Fri Nov 28 20:01:19 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 28 Nov 2025 20:01:19 GMT Subject: [code-reflection] RFR: Refactor code for computing denotable projection of types In-Reply-To: References: Message-ID: <6oXrs6LGFr6cH0zitIuDSIguHtcVOhEtrWpOixHxCCc=.6e5f6a03-2951-44bc-a6b5-f28c36add202@github.com> On Tue, 25 Nov 2025 19:07:45 GMT, Maurizio Cimadamore wrote: > The code reflection support needs a way to compute the closest fully denotable supertype of the type of an expression. To do this we build on [type projections](https://docs.oracle.com/javase/specs/jls/se25/html/jls-4.html#jls-4.10.5), but this doesn't work fully, because type projectios still allow intersection types in, and the `JavaType` API (or the `j.l.r.Type` API) doesn't have a way to model these. > > For this reason, we had to tweak the compiler code in `Types` to accept an extra parameter to tell the projection to also discard intersection/union types. While this works, this creates a lot of noise in the compiler codebase, so I've been looking for a lower-maintenance alternative. > > The basic idea behind this PR is to apply a normalization pass _before_ we compute a vanilla type projection. This normalization pass essentially replaces any intersection type with a fresh type variable whose bound is the first bound of the intersection. > > As an example, consider the type: `Foo`: > > 1. we first transform this type into `Foo<#1>` where `#1` is a fresh type-variable with upper bound `A` > 2. we then add `#1` to the list of type variables to be "projected" > 3. we then compute the upward projectin of `Foo<#1>`, and obtain `Foo`. > > This process is sound because (a) replacing `A & B & C` with a fresh type variable with bound `A & B & C` is sound, and because (b) upward projection will always map such type variables into some kind of wildcard (so dropping some bounds from the intersection doesn't make any difference) -- unless the type is a toplevel type, in which case, again dropping a bound doesn't make any difference. Very nice, this seems more rigorous and explainable, and we don't impact the visiting of types in the compiler nor extend the definition of upward projection. (There are ways we can improve the performance later if an issue.) ------------- Marked as reviewed by psandoz (Lead). PR Review: https://git.openjdk.org/babylon/pull/707#pullrequestreview-3519846939 From psandoz at openjdk.org Fri Nov 28 20:07:16 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 28 Nov 2025 20:07:16 GMT Subject: [code-reflection] RFR: Remove minor unnecessary changes from main javac codebase In-Reply-To: References: Message-ID: On Wed, 26 Nov 2025 18:36:24 GMT, Maurizio Cimadamore wrote: > This PR undoes some unnecessary changes to the javac code: > * `LambdaToMethod` still mentions the `QUOTABLE` flag, which is no longer in use > * `Symtab` has an helper method to load classes from a string name, but that's not really required > * `TreeInfo` defines a new helper function to detect `super` in an expression. Further analysis revealed this was unnecessary (as we can piggy back on the method reference kind instead) Marked as reviewed by psandoz (Lead). ------------- PR Review: https://git.openjdk.org/babylon/pull/711#pullrequestreview-3519864047 From psandoz at openjdk.org Fri Nov 28 20:09:18 2025 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 28 Nov 2025 20:09:18 GMT Subject: [code-reflection] RFR: Fix javadoc issues In-Reply-To: References: Message-ID: On Fri, 28 Nov 2025 12:46:11 GMT, Maurizio Cimadamore wrote: > This simple PR fixes some issues preventing `make docs` to complete normally. Marked as reviewed by psandoz (Lead). ------------- PR Review: https://git.openjdk.org/babylon/pull/715#pullrequestreview-3519868672 From nadeeshtv at gmail.com Sat Nov 29 00:16:25 2025 From: nadeeshtv at gmail.com (nadeesh t v) Date: Sat, 29 Nov 2025 01:16:25 +0100 Subject: Babylon building document correction In-Reply-To: References: Message-ID: Hello, Some minor corrections and improvements to the HAT building doc. On Fri, Nov 28, 2025 at 11:06?AM nadeesh t v wrote: > Thank you very much. > > > -- Thanks and Regards, Nadeesh TV -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: changes.patch Type: application/octet-stream Size: 2201 bytes Desc: not available URL: From nadeeshtv at gmail.com Sat Nov 29 00:26:34 2025 From: nadeeshtv at gmail.com (nadeesh t v) Date: Sat, 29 Nov 2025 01:26:34 +0100 Subject: Where does the code model stored in the class file Message-ID: Hello, IIRC some of the talks, code models are stored in class files. But when I have inspected the class file of one of the example s from HAT using *javap*, I have not seen that in the class file. javap -c -v build/hat-example-mandel-1.0.classes/mandel/Main.class Have I overlooked the class file or is it not in the class file? -- Thanks and Regards, Nadeesh TV -------------- next part -------------- An HTML attachment was scrubbed... URL: