From gfrost at openjdk.org Sun Feb 1 12:25:28 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 12:25:28 GMT Subject: git: openjdk/babylon: code-reflection: Hat add shade example Message-ID: Changeset: 0079e817 Branch: code-reflection Author: Gary Frost Date: 2026-02-01 12:23:45 +0000 URL: https://git.openjdk.org/babylon/commit/0079e817dc33f4529039e3cc681dc3ba6d4d91fc Hat add shade example ! hat/examples/pom.xml = hat/examples/shade/.gitignore = hat/examples/shade/pom.xml = hat/examples/shade/src/main/java/shade/Box.java = hat/examples/shade/src/main/java/shade/ComputeHeal.java + hat/examples/shade/src/main/java/shade/Main.java + hat/examples/shade/src/main/java/shade/NewMain.java = hat/examples/shade/src/main/java/shade/Selection.java + hat/examples/shade/src/main/java/shade/ShaderToy.txt + hat/examples/shade/src/main/java/shade/Uniforms.java = hat/examples/shade/src/main/java/shade/Viewer.java = hat/examples/shade/src/main/java/shade/XYRGBList.java = hat/examples/shade/src/main/resources/images/beach.png = hat/examples/shade/src/main/resources/images/bolton.png = hat/examples/shade/src/main/resources/images/crymescene.png = hat/examples/shade/src/main/resources/images/damn.png = hat/examples/shade/src/main/resources/images/raw.jpg ! hat/hat.java ! hat/intellij/.idea/modules.xml + hat/intellij/example_shade.iml - hat/optkl/target/antrun/build-main.xml - hat/optkl/target/classes/optkl/OpTkl.class - hat/optkl/target/hat-optkl-1.0.jar - hat/optkl/target/maven-archiver/pom.properties - hat/optkl/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst - hat/optkl/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst From gfrost at openjdk.org Sun Feb 1 12:27:34 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 12:27:34 GMT Subject: [code-reflection] Integrated: Hat add shade example Message-ID: Initial example-shade project attempt. Which can hopefully allow shader toy like playground using HAT. At this point the code is just a copy of heal. With some uniform data structures in place. More to come. ------------- Commit messages: - Initial uniform data vec3,vec2,vec4,ivec2 and float buffered image experiments - Initial shade implementation (cloned heal) Changes: https://git.openjdk.org/babylon/pull/885/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=885&range=00 Stats: 2150 lines in 26 files changed: 2119 ins; 24 del; 7 mod Patch: https://git.openjdk.org/babylon/pull/885.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/885/head:pull/885 PR: https://git.openjdk.org/babylon/pull/885 From gfrost at openjdk.org Sun Feb 1 12:27:37 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 12:27:37 GMT Subject: [code-reflection] Integrated: Hat add shade example In-Reply-To: References: Message-ID: <8hiEzvkqCShWX088eBgzL9_EHbD5a9wCqBKHuHKXvFw=.577bb763-dc89-4197-b70c-b67aa4bb11ce@github.com> On Sun, 1 Feb 2026 12:20:13 GMT, Gary Frost wrote: > Initial example-shade project attempt. Which can hopefully allow shader toy like playground using HAT. > > At this point the code is just a copy of heal. With some uniform data structures in place. > > More to come. This pull request has now been integrated. Changeset: 0079e817 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/0079e817dc33f4529039e3cc681dc3ba6d4d91fc Stats: 2150 lines in 26 files changed: 2119 ins; 24 del; 7 mod Hat add shade example ------------- PR: https://git.openjdk.org/babylon/pull/885 From gfrost at openjdk.org Sun Feb 1 14:54:29 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 14:54:29 GMT Subject: git: openjdk/babylon: code-reflection: Raster performance tests for example-shade Message-ID: <924eac20-45f5-4f48-9246-7b5664549ffa@openjdk.org> Changeset: b26ae4b4 Branch: code-reflection Author: Gary Frost Date: 2026-02-01 14:52:26 +0000 URL: https://git.openjdk.org/babylon/commit/b26ae4b49e54821e8f98dbe828b0d52ad081b473 Raster performance tests for example-shade + hat/examples/shade/src/main/java/shade/DirectRasterFrame.java + hat/examples/shade/src/main/java/shade/FloatFrame.java + hat/examples/shade/src/main/java/shade/GrayFloatFrame.java + hat/examples/shade/src/main/java/shade/InterpolatedFrame.java - hat/examples/shade/src/main/java/shade/NewMain.java From gfrost at openjdk.org Sun Feb 1 14:56:25 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 14:56:25 GMT Subject: [code-reflection] Integrated: Raster performance tests for example-shade Message-ID: Just some prototypes for direct raster access for possible shader-toy style demo. ------------- Commit messages: - Raster performance tests for example-shade Changes: https://git.openjdk.org/babylon/pull/886/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=886&range=00 Stats: 634 lines in 5 files changed: 495 ins; 139 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/886.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/886/head:pull/886 PR: https://git.openjdk.org/babylon/pull/886 From gfrost at openjdk.org Sun Feb 1 14:56:27 2026 From: gfrost at openjdk.org (Gary Frost) Date: Sun, 1 Feb 2026 14:56:27 GMT Subject: [code-reflection] Integrated: Raster performance tests for example-shade In-Reply-To: References: Message-ID: On Sun, 1 Feb 2026 14:48:11 GMT, Gary Frost wrote: > Just some prototypes for direct raster access for possible shader-toy style demo. This pull request has now been integrated. Changeset: b26ae4b4 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/b26ae4b49e54821e8f98dbe828b0d52ad081b473 Stats: 634 lines in 5 files changed: 495 ins; 139 del; 0 mod Raster performance tests for example-shade ------------- PR: https://git.openjdk.org/babylon/pull/886 From paul.sandoz at oracle.com Mon Feb 2 18:52:44 2026 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 2 Feb 2026 18:52:44 +0000 Subject: Draft incubator code reflection JEP Message-ID: <629DB9A6-C1A3-42D4-A0A7-EEE0C9602359@oracle.com> Hi, A draft incubator code reflection JEP is now visible here https://openjdk.org/jeps/8361105 I would like to emphasize its *draft* and *incubator* status. There are likely to be significant edits to this draft JEP before it is submitted and it works its way through the JEP process. I don?t expect there to be major changes to the design of the incubating API and implementation. We think it's good enough for experimentation as an incubating API, based on our own experiences building various experiments. I do expect changes as it re-incubates and we learn more from experiments. The best way to provide feedback in that regard is to play with it, and resist, for example, the temptation to comment deeply on the current means of declaring reflectable code. The JEP aims to provide a more solid foundation for HAT, the other significant peer of Project Babylon?s efforts. As HAT builds its programming model for parallel programs that translate to code that executes on GPUs we will learn more about how it uses code reflection to better improve both as we re-incubate. Paul. -------------- next part -------------- An HTML attachment was scrubbed... URL: From psandoz at openjdk.org Mon Feb 2 23:39:51 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Mon, 2 Feb 2026 23:39:51 GMT Subject: [code-reflection] RFR: Make CodeContext a final class Message-ID: Make `CodeContext` a final class, since it only has one implementation. Update doc/terminology. ------------- Commit messages: - Make CodeContext a final class. Changes: https://git.openjdk.org/babylon/pull/887/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=887&range=00 Stats: 457 lines in 6 files changed: 165 ins; 221 del; 71 mod Patch: https://git.openjdk.org/babylon/pull/887.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/887/head:pull/887 PR: https://git.openjdk.org/babylon/pull/887 From psandoz at openjdk.org Tue Feb 3 00:02:23 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 00:02:23 GMT Subject: git: openjdk/babylon: code-reflection: Make CodeContext a final class Message-ID: <368994f9-3b0c-4265-a595-52df434c8426@openjdk.org> Changeset: c7db60c5 Branch: code-reflection Author: Paul Sandoz Date: 2026-02-03 00:00:12 +0000 URL: https://git.openjdk.org/babylon/commit/c7db60c5458f9eba3d720508f5c87bd8135cdbf8 Make CodeContext a final class ! 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/Op.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Value.java From psandoz at openjdk.org Tue Feb 3 00:02:56 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 00:02:56 GMT Subject: [code-reflection] Integrated: Make CodeContext a final class In-Reply-To: References: Message-ID: <2XOJd0K5CkBQWkwxxGiX7wwr1Eyie6eRaU9jJC6WaCY=.090e8281-2299-412e-83e9-5442cd7e6f5a@github.com> On Mon, 2 Feb 2026 23:33:15 GMT, Paul Sandoz wrote: > Make `CodeContext` a final class, since it only has one implementation. > > Update doc/terminology. This pull request has now been integrated. Changeset: c7db60c5 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/c7db60c5458f9eba3d720508f5c87bd8135cdbf8 Stats: 457 lines in 6 files changed: 165 ins; 221 del; 71 mod Make CodeContext a final class ------------- PR: https://git.openjdk.org/babylon/pull/887 From gfrost at openjdk.org Tue Feb 3 13:05:57 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 13:05:57 GMT Subject: git: openjdk/babylon: code-reflection: HAT shade buildout Message-ID: <9b9a9f0c-188a-489e-afbb-584e661e6b6d@openjdk.org> Changeset: 3122e99a Branch: code-reflection Author: Gary Frost Date: 2026-02-03 13:01:39 +0000 URL: https://git.openjdk.org/babylon/commit/3122e99ab8551fd798a6f6e15c4af2bee869b0d3 HAT shade buildout ! hat/backends/ffi/shared/src/main/native/include/shared.h ! hat/core/src/main/java/hat/buffer/ImageIfaceBuffer.java ! hat/examples/shade/src/main/java/shade/ComputeHeal.java ! hat/examples/shade/src/main/java/shade/DirectRasterFrame.java + hat/examples/shade/src/main/java/shade/F32x3Array2D.java + hat/examples/shade/src/main/java/shade/NBodySansGL.java ! hat/examples/shade/src/main/java/shade/ShaderToy.txt ! hat/examples/shade/src/main/java/shade/Uniforms.java = hat/examples/shade/src/main/java/shade/Universe.java + hat/examples/shade/src/main/java/shade/ivec2.java + hat/examples/shade/src/main/java/shade/vec2.java + hat/examples/shade/src/main/java/shade/vec3.java + hat/examples/shade/src/main/java/shade/vec4.java From gfrost at openjdk.org Tue Feb 3 13:06:59 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 13:06:59 GMT Subject: [code-reflection] Integrated: HAT shade buildout Message-ID: Shade needs fvec2,3,4 and ivec2 types. So experimenting with adding them to Uniform list . Also discovered that Panama/memorySegments are actually pretty efficient when holding RasterData types (for copying to ImageBuffers) To prove the case I added an 'OpenGL free' nbody variant (curently in the shade-experiment code) JARS=build/hat-optkl-1.0.jar:build/hat-core-1.0.jar JARS=${JARS}:build/hat-backend-ffi-shared-1.0.jar:build/hat-backend-ffi-opencl-1.0.jar JARS=${JARS}:build/hat-example-shade-1.0.jar java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ shade/NBodySansGL HAT & java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ shade/NBodySansGL JavaSeq & java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ shade/NBodySansGL JavaMT & ------------- Commit messages: - Add copyright - Separate vec implementations from Uniforms and NBodyNoGL - cleaning up uniform types Changes: https://git.openjdk.org/babylon/pull/888/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=888&range=00 Stats: 891 lines in 13 files changed: 813 ins; 12 del; 66 mod Patch: https://git.openjdk.org/babylon/pull/888.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/888/head:pull/888 PR: https://git.openjdk.org/babylon/pull/888 From gfrost at openjdk.org Tue Feb 3 13:07:01 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 13:07:01 GMT Subject: [code-reflection] Integrated: HAT shade buildout In-Reply-To: References: Message-ID: On Tue, 3 Feb 2026 12:58:33 GMT, Gary Frost wrote: > Shade needs fvec2,3,4 and ivec2 types. So experimenting with adding them to Uniform list . > > Also discovered that Panama/memorySegments are actually pretty efficient when holding RasterData types (for copying to ImageBuffers) > > To prove the case I added an 'OpenGL free' nbody variant (curently in the shade-experiment code) > > JARS=build/hat-optkl-1.0.jar:build/hat-core-1.0.jar > JARS=${JARS}:build/hat-backend-ffi-shared-1.0.jar:build/hat-backend-ffi-opencl-1.0.jar > JARS=${JARS}:build/hat-example-shade-1.0.jar > java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ > shade/NBodySansGL HAT & > java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ > shade/NBodySansGL JavaSeq & > java --add-modules=jdk.incubator.code --enable-native-access=ALL-UNNAMED -cp ${JARS} -Djava.library.path=./build \ > shade/NBodySansGL JavaMT & This pull request has now been integrated. Changeset: 3122e99a Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/3122e99ab8551fd798a6f6e15c4af2bee869b0d3 Stats: 891 lines in 13 files changed: 813 ins; 12 del; 66 mod HAT shade buildout ------------- PR: https://git.openjdk.org/babylon/pull/888 From gfrost at openjdk.org Tue Feb 3 13:50:10 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 13:50:10 GMT Subject: [code-reflection] RFR: Make Op.setLocation fluent friendly by returning Op In-Reply-To: <5i4AJHR9-kflppHVMl_b7nlrYCc1TE_AotNE3dFsxzg=.c3f65b96-a46c-489a-970f-d981a6ab8ae4@github.com> References: <5i4AJHR9-kflppHVMl_b7nlrYCc1TE_AotNE3dFsxzg=.c3f65b96-a46c-489a-970f-d981a6ab8ae4@github.com> Message-ID: On Mon, 5 Jan 2026 13:24:15 GMT, Gary Frost wrote: > This one change simplifies a bunch of code. > > We frequently had this pattern > > var opToReplace = .....; > var newOp = new MyNewOp(...); > newOp.setLocation(opToReplace.getLocation()); > builder.op(newOp); > > We were forced to catch the newOp just to set its location. > > This change allows > > builder.op( new myNewOp(....) > .setLocation(opToReplace) > ); I will resubmit this now that Location has been moved. ------------- PR Comment: https://git.openjdk.org/babylon/pull/811#issuecomment-3841434366 From gfrost at openjdk.org Tue Feb 3 13:50:10 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 13:50:10 GMT Subject: [code-reflection] Withdrawn: Make Op.setLocation fluent friendly by returning Op In-Reply-To: <5i4AJHR9-kflppHVMl_b7nlrYCc1TE_AotNE3dFsxzg=.c3f65b96-a46c-489a-970f-d981a6ab8ae4@github.com> References: <5i4AJHR9-kflppHVMl_b7nlrYCc1TE_AotNE3dFsxzg=.c3f65b96-a46c-489a-970f-d981a6ab8ae4@github.com> Message-ID: <55tuUfUSCYegaKgSBn1II4xq5Mgyu8w0y-Se-9Fpf44=.07597ebc-bbf9-4940-a955-e63b0b00cb9d@github.com> On Mon, 5 Jan 2026 13:24:15 GMT, Gary Frost wrote: > This one change simplifies a bunch of code. > > We frequently had this pattern > > var opToReplace = .....; > var newOp = new MyNewOp(...); > newOp.setLocation(opToReplace.getLocation()); > builder.op(newOp); > > We were forced to catch the newOp just to set its location. > > This change allows > > builder.op( new myNewOp(....) > .setLocation(opToReplace) > ); This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/babylon/pull/811 From gfrost at openjdk.org Tue Feb 3 15:54:41 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 15:54:41 GMT Subject: git: openjdk/babylon: code-reflection: Moved/Cloned nbody -> nbodygl and nbody now glfree Message-ID: Changeset: 31925049 Branch: code-reflection Author: Gary Frost Date: 2026-02-03 15:53:27 +0000 URL: https://git.openjdk.org/babylon/commit/319250496e896734263451f243390894c686129d Moved/Cloned nbody -> nbodygl and nbody now glfree ! hat/backends/ffi/shared/src/main/native/include/shared.h ! hat/examples/nbody/pom.xml ! hat/examples/nbody/src/main/java/nbody/Main.java = hat/examples/nbodygl/.gitignore = hat/examples/nbodygl/pom.xml = hat/examples/nbodygl/src/main/java/nbodygl/Main.java = hat/examples/nbodygl/src/main/java/nbodygl/Mode.java = hat/examples/nbodygl/src/main/java/nbodygl/NBodyGLWindow.java = hat/examples/nbodygl/src/main/java/nbodygl/Universe.java = hat/examples/nbodygl/src/main/java/nbodygl/opencl/OpenCLNBodyGLWindow.java = hat/examples/nbodygl/src/main/resources/particle.png ! hat/examples/pom.xml ! hat/hat.java ! hat/intellij/.idea/modules.xml + hat/intellij/example_nbodygl.iml From gfrost at openjdk.org Tue Feb 3 15:56:43 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 15:56:43 GMT Subject: [code-reflection] Integrated: Moved/Cloned nbody -> nbodygl and nbody now glfree Message-ID: <3oRRikmYOaUGxM3ERnBO_4BDL-hoR2KKeXXqx-Qd--U=.6c887646-0e7a-4da3-b1a9-b7283a720837@github.com> Extracted the nbody implementation from the example-shade dir and created a non opengl example. Moved nbody to nbodygl and turned nbody into an opengl free implementation. java @.bld java @.run ffi-opencl nbodygl # prev opengl version java @.run ffi-opencl nbody # new non opengl version ------------- Commit messages: - Fix whitespace - Moved/Cloned nbody -> nbodygl and nbody now glfree Changes: https://git.openjdk.org/babylon/pull/889/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=889&range=00 Stats: 369 lines in 15 files changed: 310 ins; 26 del; 33 mod Patch: https://git.openjdk.org/babylon/pull/889.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/889/head:pull/889 PR: https://git.openjdk.org/babylon/pull/889 From gfrost at openjdk.org Tue Feb 3 15:56:45 2026 From: gfrost at openjdk.org (Gary Frost) Date: Tue, 3 Feb 2026 15:56:45 GMT Subject: [code-reflection] Integrated: Moved/Cloned nbody -> nbodygl and nbody now glfree In-Reply-To: <3oRRikmYOaUGxM3ERnBO_4BDL-hoR2KKeXXqx-Qd--U=.6c887646-0e7a-4da3-b1a9-b7283a720837@github.com> References: <3oRRikmYOaUGxM3ERnBO_4BDL-hoR2KKeXXqx-Qd--U=.6c887646-0e7a-4da3-b1a9-b7283a720837@github.com> Message-ID: On Tue, 3 Feb 2026 15:43:05 GMT, Gary Frost wrote: > Extracted the nbody implementation from the example-shade dir and created a non opengl example. > > Moved nbody to nbodygl and turned nbody into an opengl free implementation. > > > java @.bld > java @.run ffi-opencl nbodygl # prev opengl version > java @.run ffi-opencl nbody # new non opengl version This pull request has now been integrated. Changeset: 31925049 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/319250496e896734263451f243390894c686129d Stats: 369 lines in 15 files changed: 310 ins; 26 del; 33 mod Moved/Cloned nbody -> nbodygl and nbody now glfree ------------- PR: https://git.openjdk.org/babylon/pull/889 From duke at openjdk.org Tue Feb 3 18:16:39 2026 From: duke at openjdk.org (Ruby Chen) Date: Tue, 3 Feb 2026 18:16:39 GMT Subject: [code-reflection] RFR: Use buffer tagger for minimizing copies [v3] In-Reply-To: References: Message-ID: <2OzY4XH9RM8HtYVo8mdo4QDB3avu_eO9cx0YEX4_mjg=.0354ff92-de70-4350-bf1f-3df0d15891f0@github.com> > Use the result of the buffer tagger for labeling buffer accesses. The manual annotations and the results of the buffer tagger are still compared with an assertion. > > Also fix manual annotations and prevent buffer tracking from being injected for an accelerator. Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits: - Merge branch 'openjdk:code-reflection' into array-view - Fix minor bug - Merge branch 'code-reflection' into array-view - remove buffer tracking for accelerator - buffer tagger and annotation changes ------------- Changes: https://git.openjdk.org/babylon/pull/874/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=874&range=02 Stats: 210 lines in 15 files changed: 22 ins; 18 del; 170 mod Patch: https://git.openjdk.org/babylon/pull/874.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/874/head:pull/874 PR: https://git.openjdk.org/babylon/pull/874 From psandoz at openjdk.org Tue Feb 3 21:28:28 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 21:28:28 GMT Subject: [code-reflection] RFR: Terminology updates Message-ID: Tighten terms, esp. around the state transitions of operations and other items that change from unbuilt to built when an associating block transitions from unbuilt (and inaccessible) to built (and accessible). Add checks when constructing an operation or block reference to ensure only unbuilt values are used, so failing on construction rather than when an operation is appended to a block builder. (Later we can do much better on error messages and even printing out unbuilt models to aid debugging.) ------------- Commit messages: - Updates. - Doc updates. Changes: https://git.openjdk.org/babylon/pull/890/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=890&range=00 Stats: 362 lines in 11 files changed: 149 ins; 114 del; 99 mod Patch: https://git.openjdk.org/babylon/pull/890.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/890/head:pull/890 PR: https://git.openjdk.org/babylon/pull/890 From psandoz at openjdk.org Tue Feb 3 21:40:03 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 21:40:03 GMT Subject: [code-reflection] RFR: Terminology updates [v2] In-Reply-To: References: Message-ID: <60br6b1MP66s9afDV-b-4ohEL_hA3UGM30b4F-jTLnI=.50d6ef70-3e63-4bd3-aad4-53d12a4bd237@github.com> > Tighten terms, esp. around the state transitions of operations and other items that change from unbuilt to built when an associating block transitions from unbuilt (and inaccessible) to built (and accessible). > > Add checks when constructing an operation or block reference to ensure only unbuilt values are used, so failing on construction rather than when an operation is appended to a block builder. (Later we can do much better on error messages and even printing out unbuilt models to aid debugging.) Paul Sandoz has updated the pull request incrementally with one additional commit since the last revision: Test clarifications. ------------- Changes: - all: https://git.openjdk.org/babylon/pull/890/files - new: https://git.openjdk.org/babylon/pull/890/files/b64020d0..1a607843 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=890&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=890&range=00-01 Stats: 30 lines in 1 file changed: 12 ins; 2 del; 16 mod Patch: https://git.openjdk.org/babylon/pull/890.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/890/head:pull/890 PR: https://git.openjdk.org/babylon/pull/890 From psandoz at openjdk.org Tue Feb 3 21:43:56 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 21:43:56 GMT Subject: git: openjdk/babylon: code-reflection: Terminology updates Message-ID: Changeset: 2d786274 Branch: code-reflection Author: Paul Sandoz Date: 2026-02-03 21:43:17 +0000 URL: https://git.openjdk.org/babylon/commit/2d7862745f6c7b7f935b9bca65d3c4e224fa9711 Terminology updates ! 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/CodeTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Value.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/OpBuilder.java - test/jdk/java/lang/reflect/code/TestBindOp.java ! test/jdk/java/lang/reflect/code/TestBuild.java + test/jdk/java/lang/reflect/code/TestBuildOp.java ! test/jdk/java/lang/reflect/code/anf/AnfTransformer.java From psandoz at openjdk.org Tue Feb 3 21:46:41 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 21:46:41 GMT Subject: [code-reflection] RFR: Terminology updates [v3] In-Reply-To: References: Message-ID: > Tighten terms, esp. around the state transitions of operations and other items that change from unbuilt to built when an associating block transitions from unbuilt (and inaccessible) to built (and accessible). > > Add checks when constructing an operation or block reference to ensure only unbuilt values are used, so failing on construction rather than when an operation is appended to a block builder. (Later we can do much better on error messages and even printing out unbuilt models to aid debugging.) Paul Sandoz has updated the pull request incrementally with one additional commit since the last revision: Updates. ------------- Changes: - all: https://git.openjdk.org/babylon/pull/890/files - new: https://git.openjdk.org/babylon/pull/890/files/1a607843..686b8288 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=890&range=02 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=890&range=01-02 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/babylon/pull/890.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/890/head:pull/890 PR: https://git.openjdk.org/babylon/pull/890 From psandoz at openjdk.org Tue Feb 3 21:46:43 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 21:46:43 GMT Subject: [code-reflection] Integrated: Terminology updates In-Reply-To: References: Message-ID: <3kYIgYz_KClD0T0Mbk8B3iN6xC4lnKBVzul8DVvOXb8=.942fea53-5a74-479e-a467-285a1f87032a@github.com> On Tue, 3 Feb 2026 20:41:18 GMT, Paul Sandoz wrote: > Tighten terms, esp. around the state transitions of operations and other items that change from unbuilt to built when an associating block transitions from unbuilt (and inaccessible) to built (and accessible). > > Add checks when constructing an operation or block reference to ensure only unbuilt values are used, so failing on construction rather than when an operation is appended to a block builder. (Later we can do much better on error messages and even printing out unbuilt models to aid debugging.) This pull request has now been integrated. Changeset: 2d786274 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/2d7862745f6c7b7f935b9bca65d3c4e224fa9711 Stats: 374 lines in 11 files changed: 159 ins; 114 del; 101 mod Terminology updates ------------- PR: https://git.openjdk.org/babylon/pull/890 From psandoz at openjdk.org Tue Feb 3 23:47:26 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 23:47:26 GMT Subject: [code-reflection] RFR: Updated Quoted Message-ID: Updated Quoted and improve its implementation. ------------- Commit messages: - Updated Quoted. Changes: https://git.openjdk.org/babylon/pull/891/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=891&range=00 Stats: 86 lines in 1 file changed: 19 ins; 20 del; 47 mod Patch: https://git.openjdk.org/babylon/pull/891.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/891/head:pull/891 PR: https://git.openjdk.org/babylon/pull/891 From psandoz at openjdk.org Tue Feb 3 23:57:29 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Tue, 3 Feb 2026 23:57:29 GMT Subject: [code-reflection] RFR: Updated Quoted [v2] In-Reply-To: References: Message-ID: > Updated Quoted and improve its implementation. Paul Sandoz has updated the pull request incrementally with one additional commit since the last revision: Ensure null runtime values are supported. ------------- Changes: - all: https://git.openjdk.org/babylon/pull/891/files - new: https://git.openjdk.org/babylon/pull/891/files/9ebcdb91..a7881b05 Webrevs: - full: https://webrevs.openjdk.org/?repo=babylon&pr=891&range=01 - incr: https://webrevs.openjdk.org/?repo=babylon&pr=891&range=00-01 Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod Patch: https://git.openjdk.org/babylon/pull/891.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/891/head:pull/891 PR: https://git.openjdk.org/babylon/pull/891 From psandoz at openjdk.org Wed Feb 4 00:03:08 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 4 Feb 2026 00:03:08 GMT Subject: [code-reflection] Integrated: Updated Quoted In-Reply-To: References: Message-ID: On Tue, 3 Feb 2026 23:41:19 GMT, Paul Sandoz wrote: > Updated Quoted and improve its implementation. This pull request has now been integrated. Changeset: 738f576a Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/738f576a4b2f04b384f33b9c9e0c040e406d97a0 Stats: 85 lines in 1 file changed: 18 ins; 20 del; 47 mod Updated Quoted ------------- PR: https://git.openjdk.org/babylon/pull/891 From psandoz at openjdk.org Wed Feb 4 00:05:57 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 4 Feb 2026 00:05:57 GMT Subject: git: openjdk/babylon: code-reflection: Updated Quoted Message-ID: <601a7e0e-d0cf-4512-8307-710d6d8e727e@openjdk.org> Changeset: 738f576a Branch: code-reflection Author: Paul Sandoz Date: 2026-02-03 23:59:50 +0000 URL: https://git.openjdk.org/babylon/commit/738f576a4b2f04b384f33b9c9e0c040e406d97a0 Updated Quoted ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Quoted.java From psandoz at openjdk.org Wed Feb 4 01:09:08 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 4 Feb 2026 01:09:08 GMT Subject: [code-reflection] Integrated: Update reflect doc. Message-ID: Update reflect doc (in sync with draft JEP). ------------- Commit messages: - Update reflect doc. Changes: https://git.openjdk.org/babylon/pull/892/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=892&range=00 Stats: 41 lines in 2 files changed: 26 ins; 2 del; 13 mod Patch: https://git.openjdk.org/babylon/pull/892.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/892/head:pull/892 PR: https://git.openjdk.org/babylon/pull/892 From psandoz at openjdk.org Wed Feb 4 01:09:09 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 4 Feb 2026 01:09:09 GMT Subject: [code-reflection] Integrated: Update reflect doc. In-Reply-To: References: Message-ID: On Wed, 4 Feb 2026 00:58:50 GMT, Paul Sandoz wrote: > Update reflect doc (in sync with draft JEP). This pull request has now been integrated. Changeset: 337af736 Author: Paul Sandoz URL: https://git.openjdk.org/babylon/commit/337af7364bc8c254edc5d5b45aa142117c4d44b9 Stats: 41 lines in 2 files changed: 26 ins; 2 del; 13 mod Update reflect doc. ------------- PR: https://git.openjdk.org/babylon/pull/892 From psandoz at openjdk.org Wed Feb 4 01:10:50 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Wed, 4 Feb 2026 01:10:50 GMT Subject: git: openjdk/babylon: code-reflection: Update reflect doc. Message-ID: Changeset: 337af736 Branch: code-reflection Author: Paul Sandoz Date: 2026-02-04 01:05:52 +0000 URL: https://git.openjdk.org/babylon/commit/337af7364bc8c254edc5d5b45aa142117c4d44b9 Update reflect doc. ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Reflect.java From gfrost at openjdk.org Wed Feb 4 13:17:06 2026 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 4 Feb 2026 13:17:06 GMT Subject: git: openjdk/babylon: code-reflection: Moved raster code from shade to experiments and de-dupped typedefs Message-ID: <189136f9-03b9-48a1-b5e5-b80f80a26d67@openjdk.org> Changeset: 05439a9f Branch: code-reflection Author: Gary Frost Date: 2026-02-04 13:13:25 +0000 URL: https://git.openjdk.org/babylon/commit/05439a9f084e7b08a129feb3e99e287dde4216b4 Moved raster code from shade to experiments and de-dupped typedefs ! hat/backends/ffi/shared/src/main/java/hat/backend/ffi/C99FFIBackend.java ! hat/backends/jextracted/shared/src/main/java/hat/backend/jextracted/C99JExtractedBackend.java = hat/examples/experiments/src/main/java/experiments/DirectRasterFrame.java = hat/examples/experiments/src/main/java/experiments/FloatFrame.java = hat/examples/experiments/src/main/java/experiments/GrayFloatFrame.java = hat/examples/experiments/src/main/java/experiments/InterpolatedFrame.java ! hat/examples/shade/src/main/java/shade/ComputeHeal.java - hat/examples/shade/src/main/java/shade/F32x3Array2D.java - hat/examples/shade/src/main/java/shade/NBodySansGL.java + hat/examples/shade/src/main/java/shade/UniformTest.java = hat/examples/shade/src/main/java/shade/types/Uniforms.java = hat/examples/shade/src/main/java/shade/types/ivec2.java = hat/examples/shade/src/main/java/shade/types/vec2.java = hat/examples/shade/src/main/java/shade/types/vec3.java = hat/examples/shade/src/main/java/shade/types/vec4.java ! hat/optkl/src/main/java/optkl/ifacemapper/Schema.java ! hat/optkl/src/main/java/optkl/util/carriers/ArenaAndLookupCarrier.java From gfrost at openjdk.org Wed Feb 4 13:17:06 2026 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 4 Feb 2026 13:17:06 GMT Subject: [code-reflection] Integrated: Moved raster code from shade to experiments and de-dupped typedefs Message-ID: <2lWrJtaH3q-5RjHdTre1WSR5u19mrRiQDGlN8yl02jo=.77a73410-28b9-4d6b-808e-f91a9667e4e5@github.com> When moving code from shade example to experiments. I noticed that we were generating multiple typedefs for the same iface type if a buffer contained multiple fields. So this PR has the code refactoring and a fix for de-duping the typedefs. ------------- Commit messages: - Moved raster code from shade to experiments and de-dupped typedefs Changes: https://git.openjdk.org/babylon/pull/893/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=893&range=00 Stats: 553 lines in 17 files changed: 110 ins; 419 del; 24 mod Patch: https://git.openjdk.org/babylon/pull/893.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/893/head:pull/893 PR: https://git.openjdk.org/babylon/pull/893 From gfrost at openjdk.org Wed Feb 4 13:17:08 2026 From: gfrost at openjdk.org (Gary Frost) Date: Wed, 4 Feb 2026 13:17:08 GMT Subject: [code-reflection] Integrated: Moved raster code from shade to experiments and de-dupped typedefs In-Reply-To: <2lWrJtaH3q-5RjHdTre1WSR5u19mrRiQDGlN8yl02jo=.77a73410-28b9-4d6b-808e-f91a9667e4e5@github.com> References: <2lWrJtaH3q-5RjHdTre1WSR5u19mrRiQDGlN8yl02jo=.77a73410-28b9-4d6b-808e-f91a9667e4e5@github.com> Message-ID: On Wed, 4 Feb 2026 13:08:08 GMT, Gary Frost wrote: > When moving code from shade example to experiments. I noticed that we were generating multiple typedefs for the same iface type if a buffer contained multiple fields. > > So this PR has the code refactoring and a fix for de-duping the typedefs. This pull request has now been integrated. Changeset: 05439a9f Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/05439a9f084e7b08a129feb3e99e287dde4216b4 Stats: 553 lines in 17 files changed: 110 ins; 419 del; 24 mod Moved raster code from shade to experiments and de-dupped typedefs ------------- PR: https://git.openjdk.org/babylon/pull/893 From duke at openjdk.org Wed Feb 4 18:31:27 2026 From: duke at openjdk.org (Ruby Chen) Date: Wed, 4 Feb 2026 18:31:27 GMT Subject: [code-reflection] RFR: Use buffer tagger for minimizing copies [v4] In-Reply-To: References: Message-ID: <1Bdd63TTW0KcsaHqLLO-A9Vzty4y-PWKNJgqq-m-pLI=.313caf63-ff8a-4865-9f43-2934ba5cbc39@github.com> > Use the result of the buffer tagger for labeling buffer accesses. The manual annotations and the results of the buffer tagger are still compared with an assertion. > > Also fix manual annotations and prevent buffer tracking from being injected for an accelerator. Ruby Chen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits: - Merge branch 'openjdk:code-reflection' into array-view - Merge branch 'openjdk:code-reflection' into array-view - Fix minor bug - Merge branch 'code-reflection' into array-view - remove buffer tracking for accelerator - buffer tagger and annotation changes ------------- Changes: https://git.openjdk.org/babylon/pull/874/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=874&range=03 Stats: 210 lines in 15 files changed: 22 ins; 18 del; 170 mod Patch: https://git.openjdk.org/babylon/pull/874.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/874/head:pull/874 PR: https://git.openjdk.org/babylon/pull/874 From nadeeshtv at gmail.com Thu Feb 5 08:26:08 2026 From: nadeeshtv at gmail.com (nadeesh t v) Date: Thu, 5 Feb 2026 09:26:08 +0100 Subject: Draft incubator code reflection JEP In-Reply-To: References: Message-ID: Hi Paul, >A draft incubator code reflection JEP is now visible here https://openjdk.org/jeps/8361105 I would like to point out a couple of things that are not super clear to me on a first read. >As the GPU library traverses the code model it will encounter an element >that models the invocation expression to the gray method. ..... > To achieve this we must declare that the gray method is also reflectable Does it mean we should only call those methods which can be annotated with @Reflect. Therefore, effectively we should not invoke 3rd party/ even JDK library methods? >Foreign programming models Font size of it is too small to notice it as a section header while reading from a mobile phone. >In total there are four syntactic locations where @Reflect can appear that governs, But I could only see 3 bullet points instead of 4. Are two of them fused in one? Would it be possible to show an example of each of them and refer from it here so that it will be a bit more clear. I can see you mention `cast expression`, could you please clarify what that also really means? Best regards, Nadeesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From gfrost at openjdk.org Thu Feb 5 14:07:01 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 14:07:01 GMT Subject: [code-reflection] Integrated: Hat shade toy UI Message-ID: <58zwA-JXr2raYBh6YoG8Dex96ZSO4KTV0w1GMa6br1M=.9ec6bf84-834a-4f43-8476-dd707ec199ae@github.com> Ok the raw shade toy ui is up and running. Also added `.toy` so we can run using scriptable java java @.bld java @.toy blue.java Where blue.java is import hat.Accelerator; import hat.backend.Backend; import shade.types.ivec2; import shade.types.vec2; import shade.types.vec4; import static shade.types.vec4.*; import static shade.types.vec2.*; import shade.Main; import shade.Main.Shader; static void main(String[] args) throws IOException { var acc = new Accelerator(MethodHandles.lookup(), Backend.FIRST); var shader = new Shader() { @Override public vec4 mainImage(vec4 inFragColor, vec2 fragCoord, int iTime, int iFrame, ivec2 iMouse) { return vec4(0f,0f,5f,0f); } }; new Main(acc, 1024, 1024, shader); } ------------- Commit messages: - HAT added a couple of toy sripts (blue + gradient) - Non HAT Shade Toy initial impl Changes: https://git.openjdk.org/babylon/pull/894/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=894&range=00 Stats: 1447 lines in 11 files changed: 459 ins; 972 del; 16 mod Patch: https://git.openjdk.org/babylon/pull/894.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/894/head:pull/894 PR: https://git.openjdk.org/babylon/pull/894 From gfrost at openjdk.org Thu Feb 5 14:07:02 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 14:07:02 GMT Subject: [code-reflection] Integrated: Hat shade toy UI In-Reply-To: <58zwA-JXr2raYBh6YoG8Dex96ZSO4KTV0w1GMa6br1M=.9ec6bf84-834a-4f43-8476-dd707ec199ae@github.com> References: <58zwA-JXr2raYBh6YoG8Dex96ZSO4KTV0w1GMa6br1M=.9ec6bf84-834a-4f43-8476-dd707ec199ae@github.com> Message-ID: On Thu, 5 Feb 2026 13:58:44 GMT, Gary Frost wrote: > Ok the raw shade toy ui is up and running. > > Also added `.toy` so we can run using scriptable java > > > java @.bld > java @.toy blue.java > > > Where blue.java is > > import hat.Accelerator; > import hat.backend.Backend; > import shade.types.ivec2; > import shade.types.vec2; > import shade.types.vec4; > import static shade.types.vec4.*; > import static shade.types.vec2.*; > import shade.Main; > import shade.Main.Shader; > > static void main(String[] args) throws IOException { > var acc = new Accelerator(MethodHandles.lookup(), Backend.FIRST); > var shader = new Shader() { > @Override > public vec4 mainImage(vec4 inFragColor, vec2 fragCoord, int iTime, int iFrame, ivec2 iMouse) { > return vec4(0f,0f,5f,0f); > } > }; > new Main(acc, 1024, 1024, shader); > } This pull request has now been integrated. Changeset: 0711d2fd Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/0711d2fd97c7cc88b0a188e2418ed1aa39504f33 Stats: 1447 lines in 11 files changed: 459 ins; 972 del; 16 mod Hat shade toy UI ------------- PR: https://git.openjdk.org/babylon/pull/894 From gfrost at openjdk.org Thu Feb 5 14:11:06 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 14:11:06 GMT Subject: git: openjdk/babylon: code-reflection: Hat shade toy UI Message-ID: <416cf00a-d149-4442-8fa4-81e5fbb19f0d@openjdk.org> Changeset: 0711d2fd Branch: code-reflection Author: Gary Frost Date: 2026-02-05 14:02:45 +0000 URL: https://git.openjdk.org/babylon/commit/0711d2fd97c7cc88b0a188e2418ed1aa39504f33 Hat shade toy UI + hat/.toy + hat/blue.java - hat/examples/shade/src/main/java/shade/Box.java - hat/examples/shade/src/main/java/shade/ComputeHeal.java ! hat/examples/shade/src/main/java/shade/Main.java - hat/examples/shade/src/main/java/shade/Selection.java - hat/examples/shade/src/main/java/shade/Universe.java - hat/examples/shade/src/main/java/shade/Viewer.java - hat/examples/shade/src/main/java/shade/XYRGBList.java + hat/examples/shared/src/main/java/hat/util/ui/Menu.java + hat/gradient.java From gfrost at openjdk.org Thu Feb 5 16:22:03 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 16:22:03 GMT Subject: [code-reflection] Integrated: Make Shader a functional interface and separate components Message-ID: Shader now a functional interface. Pass Uniforms MemorySegment Mapped interface rather than separate params. (Easier when we add more uniforms) Updated scripts. ------------- Commit messages: - Make Shader a functional interface and separate components Changes: https://git.openjdk.org/babylon/pull/895/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=895&range=00 Stats: 716 lines in 8 files changed: 402 ins; 295 del; 19 mod Patch: https://git.openjdk.org/babylon/pull/895.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/895/head:pull/895 PR: https://git.openjdk.org/babylon/pull/895 From gfrost at openjdk.org Thu Feb 5 16:22:05 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 16:22:05 GMT Subject: [code-reflection] Integrated: Make Shader a functional interface and separate components In-Reply-To: References: Message-ID: On Thu, 5 Feb 2026 16:13:46 GMT, Gary Frost wrote: > Shader now a functional interface. > > Pass Uniforms MemorySegment Mapped interface rather than separate params. (Easier when we add more uniforms) > > Updated scripts. This pull request has now been integrated. Changeset: 05d5ebd2 Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/05d5ebd20b312dc96c38d3df48bdc25bf71b03d7 Stats: 716 lines in 8 files changed: 402 ins; 295 del; 19 mod Make Shader a functional interface and separate components ------------- PR: https://git.openjdk.org/babylon/pull/895 From gfrost at openjdk.org Thu Feb 5 16:22:53 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 16:22:53 GMT Subject: git: openjdk/babylon: code-reflection: Make Shader a functional interface and separate components Message-ID: Changeset: 05d5ebd2 Branch: code-reflection Author: Gary Frost Date: 2026-02-05 16:17:57 +0000 URL: https://git.openjdk.org/babylon/commit/05d5ebd20b312dc96c38d3df48bdc25bf71b03d7 Make Shader a functional interface and separate components ! hat/blue.java + hat/examples/shade/src/main/java/shade/Controls.java + hat/examples/shade/src/main/java/shade/FloatImage.java + hat/examples/shade/src/main/java/shade/FloatImagePanel.java ! hat/examples/shade/src/main/java/shade/Main.java = hat/examples/shade/src/main/java/shade/types/Shader.java ! hat/examples/shade/src/main/java/shade/types/Uniforms.java ! hat/gradient.java From gfrost at openjdk.org Thu Feb 5 17:45:48 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 17:45:48 GMT Subject: [code-reflection] Integrated: Fixed fragCoord and add iMouse and iResolution uniforms Message-ID: I had incorrectly assumed that fragCoord was 0f->1f (OpenGL style) it is/was not. It is bound by iResolution Implemented iResolution and iMouse. Need more complicated shaders multithreaded Java easily maintains sub 2ms shader compute. ------------- Commit messages: - Fixed fragCoord and add iMouse and iResolution uniforms Changes: https://git.openjdk.org/babylon/pull/896/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=896&range=00 Stats: 61 lines in 5 files changed: 30 ins; 9 del; 22 mod Patch: https://git.openjdk.org/babylon/pull/896.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/896/head:pull/896 PR: https://git.openjdk.org/babylon/pull/896 From gfrost at openjdk.org Thu Feb 5 17:45:48 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 17:45:48 GMT Subject: [code-reflection] Integrated: Fixed fragCoord and add iMouse and iResolution uniforms In-Reply-To: References: Message-ID: On Thu, 5 Feb 2026 17:39:18 GMT, Gary Frost wrote: > I had incorrectly assumed that fragCoord was 0f->1f (OpenGL style) it is/was not. It is bound by iResolution > > Implemented iResolution and iMouse. > > Need more complicated shaders multithreaded Java easily maintains sub 2ms shader compute. This pull request has now been integrated. Changeset: 50dcfa0f Author: Gary Frost URL: https://git.openjdk.org/babylon/commit/50dcfa0f11537ab6f1b44e64b872f0e2afc65e57 Stats: 61 lines in 5 files changed: 30 ins; 9 del; 22 mod Fixed fragCoord and add iMouse and iResolution uniforms ------------- PR: https://git.openjdk.org/babylon/pull/896 From gfrost at openjdk.org Thu Feb 5 17:50:25 2026 From: gfrost at openjdk.org (Gary Frost) Date: Thu, 5 Feb 2026 17:50:25 GMT Subject: git: openjdk/babylon: code-reflection: Fixed fragCoord and add iMouse and iResolution uniforms Message-ID: <7a2ba90d-ca61-4f12-93cc-7c5da88a9fd6@openjdk.org> Changeset: 50dcfa0f Branch: code-reflection Author: Gary Frost Date: 2026-02-05 17:43:14 +0000 URL: https://git.openjdk.org/babylon/commit/50dcfa0f11537ab6f1b44e64b872f0e2afc65e57 Fixed fragCoord and add iMouse and iResolution uniforms ! hat/examples/shade/src/main/java/shade/FloatImage.java ! hat/examples/shade/src/main/java/shade/FloatImagePanel.java ! hat/examples/shade/src/main/java/shade/Main.java ! hat/examples/shade/src/main/java/shade/types/vec2.java ! hat/gradient.java From paul.sandoz at oracle.com Thu Feb 5 19:23:34 2026 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Thu, 5 Feb 2026 19:23:34 +0000 Subject: Draft incubator code reflection JEP In-Reply-To: References: Message-ID: <673E940B-C7EE-4A7D-B8F4-80A3A756C7B6@oracle.com> Hi Nadeesh, Thank you for the feedback. On Feb 5, 2026, at 12:26?AM, nadeesh t v wrote: Hi Paul, >A draft incubator code reflection JEP is now visible here https://openjdk.org/jeps/8361105 I would like to point out a couple of things that are not super clear to me on a first read. >As the GPU library traverses the code model it will encounter an element >that models the invocation expression to the gray method. ..... > To achieve this we must declare that the gray method is also reflectable Does it mean we should only call those methods which can be annotated with @Reflect. Therefore, effectively we should not invoke 3rd party/ even JDK library methods? It depends on the use case, and in the GPU case where the parallel program is executed. When executing on a GPU it would make no sense to look into the Math.sin method and translate it (even if there were permission to do so, since it was not written for use in such parallel programs) and instead treat it as an intrinsic. However, when executing on the JVM we can directly invoke the gray method or Math.sin as Java ordinarily does since they both supply executable implementations as bytecode that executes on the JVM. (Executing on the GPU does not guarantee preservation of Java program meaning e.g., the accuracy of the sin implementation might differ, and in general the order in which floating point operations occur might also differ.) >Foreign programming models Font size of it is too small to notice it as a section header while reading from a mobile phone. That?s hard to address directly, but I expect this section, or parts of, will be made more prominent as it hides an important point about preserving (or not) semantics of Java code. >In total there are four syntactic locations where @Reflect can appear that governs, But I could only see 3 bullet points instead of 4. Are two of them fused in one? Yes, in bullet two because it would just duplication the text for fields and local variables. Would it be possible to show an example of each of them and refer from it here so that it will be a bit more clear. Yes, we can. I can see you mention `cast expression`, could you please clarify what that also really means? Object o = ?"; String s = (String) o; We cast o to s using the cast expression "(String)?. Paul. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nadeeshtv at gmail.com Thu Feb 5 20:37:05 2026 From: nadeeshtv at gmail.com (nadeesh t v) Date: Thu, 5 Feb 2026 21:37:05 +0100 Subject: Draft incubator code reflection JEP In-Reply-To: <673E940B-C7EE-4A7D-B8F4-80A3A756C7B6@oracle.com> References: <673E940B-C7EE-4A7D-B8F4-80A3A756C7B6@oracle.com> Message-ID: Hi, Thank you for the clarification. Any performance implication whenever a @Reflect annotated method executes on the JVM? If an instance method is @Reflect annotated, I hope that it does not carry over to its overridden method in child class. Should that need to be explicitly documented in the JEP or is that implicit?` > declaring a reflectable lambda expression does broaden the scope to the surrounding code of final, or effectively final, variables used Could you please expand on how the scope broadens for the final, or effectively final, variables in the lambda? Should not the same happen for instance fields that are used in @Reflect annotated method ?` Best regards, Nadeesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.sandoz at oracle.com Thu Feb 5 21:25:43 2026 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Thu, 5 Feb 2026 21:25:43 +0000 Subject: Draft incubator code reflection JEP In-Reply-To: References: <673E940B-C7EE-4A7D-B8F4-80A3A756C7B6@oracle.com> Message-ID: On Feb 5, 2026, at 12:37?PM, nadeesh t v wrote: Hi, Thank you for the clarification. Any performance implication whenever a @Reflect annotated method executes on the JVM? No (or at least not yet :-) depending on how we encode the model and whether we only encode the model there might be an initialization hit on first invocation to generate the bytecode, that could be ameliorated at link time and/or with Leyden. Details to be worked out?) If an instance method is @Reflect annotated, I hope that it does not carry over to its overridden method in child class. Should that need to be explicitly documented in the JEP or is that implicit?` > declaring a reflectable lambda expression does broaden the scope to the surrounding code of final, or effectively final, variables used Could you please expand on how the scope broadens for the final, or effectively final, variables in the lambda? To be clear it *does not* broaden. e.g., final int i = a() + b(); @Reflect Runnable r = () -> IO.println(i); We don?t broaden the scope to reflect over the declaration of local variable i and its initializer expression. Should not the same happen for instance fields that are used in @Reflect annotated method ?` ?this" is a final variable that is captured. The fields themselves are not captured. Paul. -------------- next part -------------- An HTML attachment was scrubbed... URL: From nadeeshtv at gmail.com Thu Feb 5 21:36:01 2026 From: nadeeshtv at gmail.com (nadeesh t v) Date: Thu, 5 Feb 2026 22:36:01 +0100 Subject: Draft incubator code reflection JEP In-Reply-To: References: <673E940B-C7EE-4A7D-B8F4-80A3A756C7B6@oracle.com> Message-ID: Thank you for the clarification. On Thu, 5 Feb 2026 at 22:25, Paul Sandoz wrote: > > > On Feb 5, 2026, at 12:37?PM, nadeesh t v wrote: > > Hi, > > Thank you for the clarification. > > Any performance implication whenever a @Reflect annotated method > executes on the JVM? > > > No (or at least not yet :-) depending on how we encode the model and > whether we only encode the model there might be an initialization hit on > first invocation to generate the bytecode, that could be ameliorated at > link time and/or with Leyden. Details to be worked out?) > > > If an instance method is @Reflect annotated, I hope that it does not > carry over to its overridden method in child class. Should that need to be > explicitly documented in the JEP or is that implicit?` > > > declaring a reflectable lambda expression does broaden the scope to the > surrounding code of final, or effectively final, variables used > Could you please expand on how the scope broadens for the final, or > effectively final, variables in the lambda? > > > To be clear it *does not* broaden. e.g., > > final int i = a() + b(); > @Reflect > Runnable r = () -> IO.println(i); > > We don?t broaden the scope to reflect over the declaration of local > variable i and its initializer expression. > > > Should not the same happen for instance fields that are used in @Reflect > annotated method ?` > > > ?this" is a final variable that is captured. The fields themselves are not > captured. > > Paul. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mcimadamore at openjdk.org Thu Feb 5 22:23:53 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Thu, 5 Feb 2026 22:23:53 GMT Subject: [code-reflection] RFR: Fix javadoc warnings in JavaType hierarchy Message-ID: As the PR title says. Several methods in JavaType missing `@return`. I've also tweaked the `typeVarRef` factory to just be called `typeVar` -- and also tweaked the javadoc accordingly. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/897/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=897&range=00 Stats: 48 lines in 9 files changed: 1 ins; 6 del; 41 mod Patch: https://git.openjdk.org/babylon/pull/897.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/897/head:pull/897 PR: https://git.openjdk.org/babylon/pull/897 From psandoz at openjdk.org Thu Feb 5 22:47:26 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Thu, 5 Feb 2026 22:47:26 GMT Subject: [code-reflection] RFR: Move classes in analysis pkg to dilect pkgs Message-ID: <-cOoT2IyIP75hqMLc0APk-YMyFSx2MRhrp6SOdLdz5Q=.c1d6e508-0469-4aa7-82bc-9c326e173da0@github.com> Move transforming functionality in `analysis` package to relevant `dialect` package for the operations they transform or use. ------------- Commit messages: - Move classes in analysis pkg to dilect pkgs. Changes: https://git.openjdk.org/babylon/pull/898/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=898&range=00 Stats: 1560 lines in 43 files changed: 710 ins; 814 del; 36 mod Patch: https://git.openjdk.org/babylon/pull/898.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/898/head:pull/898 PR: https://git.openjdk.org/babylon/pull/898 From mcimadamore at openjdk.org Fri Feb 6 10:11:54 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:11:54 GMT Subject: git: openjdk/babylon: code-reflection: Fix javadoc warnings in JavaType hierarchy Message-ID: <6196d68b-ad34-42f6-89f8-6734072b0bcf@openjdk.org> Changeset: 77bf3d21 Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 10:08:42 +0000 URL: https://git.openjdk.org/babylon/commit/77bf3d21309158109248a748e2e1d4a096e8b8bd Fix javadoc warnings in JavaType hierarchy ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/ArrayType.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/ClassType.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/PrimitiveType.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/WildcardType.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/impl/JavaTypeUtils.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/internal/ReflectMethods.java ! test/jdk/java/lang/reflect/code/type/TestErasure.java From mcimadamore at openjdk.org Fri Feb 6 10:12:08 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:12:08 GMT Subject: [code-reflection] RFR: Move classes in analysis pkg to dilect pkgs In-Reply-To: <-cOoT2IyIP75hqMLc0APk-YMyFSx2MRhrp6SOdLdz5Q=.c1d6e508-0469-4aa7-82bc-9c326e173da0@github.com> References: <-cOoT2IyIP75hqMLc0APk-YMyFSx2MRhrp6SOdLdz5Q=.c1d6e508-0469-4aa7-82bc-9c326e173da0@github.com> Message-ID: On Thu, 5 Feb 2026 22:40:23 GMT, Paul Sandoz wrote: > Move transforming functionality in `analysis` package to relevant `dialect` package for the operations they transform or use. Looks good. I note you also removed some of the analyses (e.g. SSABraun). ------------- Marked as reviewed by mcimadamore (Reviewer). PR Review: https://git.openjdk.org/babylon/pull/898#pullrequestreview-3762071634 From mcimadamore at openjdk.org Fri Feb 6 10:12:09 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:12:09 GMT Subject: [code-reflection] Integrated: Fix javadoc warnings in JavaType hierarchy In-Reply-To: References: Message-ID: On Thu, 5 Feb 2026 22:16:39 GMT, Maurizio Cimadamore wrote: > As the PR title says. > Several methods in JavaType missing `@return`. > > I've also tweaked the `typeVarRef` factory to just be called `typeVar` -- and also tweaked the javadoc accordingly. This pull request has now been integrated. Changeset: 77bf3d21 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/77bf3d21309158109248a748e2e1d4a096e8b8bd Stats: 48 lines in 9 files changed: 1 ins; 6 del; 41 mod Fix javadoc warnings in JavaType hierarchy ------------- PR: https://git.openjdk.org/babylon/pull/897 From mcimadamore at openjdk.org Fri Feb 6 10:49:10 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:49:10 GMT Subject: git: openjdk/babylon: code-reflection: Add missing diagnostics to examples.not-yet.txt Message-ID: Changeset: c56b2f46 Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 10:47:30 +0000 URL: https://git.openjdk.org/babylon/commit/c56b2f46df17a73243c80bf60b476d17cd6d96e0 Add missing diagnostics to examples.not-yet.txt ! test/langtools/tools/javac/diags/examples.not-yet.txt From mcimadamore at openjdk.org Fri Feb 6 10:49:55 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:49:55 GMT Subject: [code-reflection] Integrated: Add missing diagnostics to examples.not-yet.txt Message-ID: A couple of recently added compiler diagnostics don't have a tests, nor are they added to the exclude list, causing a test failure. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/899/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=899&range=00 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/babylon/pull/899.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/899/head:pull/899 PR: https://git.openjdk.org/babylon/pull/899 From mcimadamore at openjdk.org Fri Feb 6 10:49:56 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 10:49:56 GMT Subject: [code-reflection] Integrated: Add missing diagnostics to examples.not-yet.txt In-Reply-To: References: Message-ID: On Fri, 6 Feb 2026 10:44:16 GMT, Maurizio Cimadamore wrote: > A couple of recently added compiler diagnostics don't have a tests, nor are they added to the exclude list, causing a test failure. This pull request has now been integrated. Changeset: c56b2f46 Author: Maurizio Cimadamore URL: https://git.openjdk.org/babylon/commit/c56b2f46df17a73243c80bf60b476d17cd6d96e0 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Add missing diagnostics to examples.not-yet.txt ------------- PR: https://git.openjdk.org/babylon/pull/899 From asotona at openjdk.org Fri Feb 6 12:35:09 2026 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 6 Feb 2026 12:35:09 GMT Subject: [code-reflection] RFR: ONNX Update Message-ID: This PR introduces the following ONNX updates: - Added support for integer and string tensors. - Enabled support for custom ops libraries. - Fixed `OnnxLift` to properly lift models without initializers. - `OnnxLift` now extracts only internally stored weights; external weights continue to reference the original data file. - Explicit declaration of the `CLIPTokenizer` operation. - Implemented the `SessionOption::bypassInitializers` switch to optionally exclude initializers from the generated model. ------------- Commit messages: - removed debug print - SessionOption::bypassInitializers - explicitly declared CLIPTokenizer operation - fixed lift of ONNX models with no initializers - fixed support of String tensors - Integer tensor fixes - added support for custom ops libraries - Support for int tensors - Initial support for String Tensors - OnnxLift and JavaTemplate updates: Changes: https://git.openjdk.org/babylon/pull/876/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=876&range=00 Stats: 339 lines in 10 files changed: 281 ins; 9 del; 49 mod Patch: https://git.openjdk.org/babylon/pull/876.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/876/head:pull/876 PR: https://git.openjdk.org/babylon/pull/876 From mcimadamore at openjdk.org Fri Feb 6 12:47:14 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 12:47:14 GMT Subject: [code-reflection] RFR: Address javadoc warnings -- part 1 Message-ID: This PR addresses javadoc warnings for missing comments in CoreOp and other classes such as ExternalizedTypeElement, Op, Interpreter. In addition to the javadoc changes, there's two access changes I made: * the constructor for VarLoadOp/VarStoreOp was exposed -- which seemed odd, as this was the only case where a core op had a public constructor * the CoreOp constructors were protected -- I changed that to package-private. Since CoreOp is sealed, not much difference -- but, protected members do show up in the javadoc (and this seems uninteresting) * Interpreter has an helper function eraseAndThrow which was (I think) accidentally made public ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/babylon/pull/900/files Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=900&range=00 Stats: 228 lines in 6 files changed: 217 ins; 2 del; 9 mod Patch: https://git.openjdk.org/babylon/pull/900.diff Fetch: git fetch https://git.openjdk.org/babylon.git pull/900/head:pull/900 PR: https://git.openjdk.org/babylon/pull/900 From gfrost at openjdk.org Fri Feb 6 16:27:18 2026 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 6 Feb 2026 16:27:18 GMT Subject: git: openjdk/babylon: code-reflection: Added F32Math mat2 and mod, mix and step funcs Message-ID: <4621b2e2-0fe0-4d55-ac51-400219ca5958@openjdk.org> Changeset: 316eefec Branch: code-reflection Author: Gary Frost Date: 2026-02-06 16:20:47 +0000 URL: https://git.openjdk.org/babylon/commit/316eefecd3cafc98bd20c3082b34e68ed10b9ced Added F32Math mat2 and mod,mix and step funcs ! hat/.toy ! hat/examples/shade/src/main/java/shade/Controls.java ! hat/examples/shade/src/main/java/shade/FloatImagePanel.java ! hat/examples/shade/src/main/java/shade/Main.java + hat/examples/shade/src/main/java/shade/types/F32.java + hat/examples/shade/src/main/java/shade/types/mat2.java ! hat/examples/shade/src/main/java/shade/types/vec2.java ! hat/examples/shade/src/main/java/shade/types/vec3.java ! hat/examples/shade/src/main/java/shade/types/vec4.java ! hat/examples/shared/src/main/java/hat/util/ui/Menu.java ! hat/examples/shared/src/main/java/hat/util/ui/SevenSegmentDisplay.java From psandoz at openjdk.org Fri Feb 6 16:36:00 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 6 Feb 2026 16:36:00 GMT Subject: git: openjdk/babylon: code-reflection: Move classes in analysis pkg to dilect pkgs Message-ID: <5227dffa-84ea-4eb2-963f-26016bdc51c6@openjdk.org> Changeset: 4372407f Branch: code-reflection Author: Paul Sandoz Date: 2026-02-06 16:32:42 +0000 URL: https://git.openjdk.org/babylon/commit/4372407f305927d67b8cceeee0bbfbbff1b794d2 Move classes in analysis pkg to dilect pkgs Reviewed-by: mcimadamore ! cr-examples/onnx/src/main/java/oracle/code/onnx/compiler/OnnxTransformer.java ! cr-examples/onnx/src/main/java/oracle/code/onnx/genai/OnnxGenRuntimeSession.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/MathOptimizerWithInlining.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/core/src/main/java/hat/BufferTagger.java - src/jdk.incubator.code/share/classes/jdk/incubator/code/analysis/SSA.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/package-info.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/bytecode/BytecodeGenerator.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/Inliner.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/NormalizeBlocksTransformer.java + src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/SSA.java = src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/StringConcatTransformer.java ! src/jdk.incubator.code/share/classes/module-info.java ! test/jdk/java/lang/reflect/code/CoreBinaryOpsTest.java ! test/jdk/java/lang/reflect/code/TestBuild.java ! test/jdk/java/lang/reflect/code/TestCompareCodeItems.java ! test/jdk/java/lang/reflect/code/TestExpressionGraphs.java ! test/jdk/java/lang/reflect/code/TestInline.java ! test/jdk/java/lang/reflect/code/TestNormalizeBlocksTransformer.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/TestTransitiveInvokeModule.java ! test/jdk/java/lang/reflect/code/TestTraverse.java ! test/jdk/java/lang/reflect/code/TestUninitializedVariable.java ! test/jdk/java/lang/reflect/code/ad/TestExpressionElimination.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/lift/BytecodeLift.java ! test/jdk/java/lang/reflect/code/linq/Queryable.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/stream/StreamFuser.java ! test/jdk/java/lang/reflect/code/writer/TestCodeBuilder.java ! test/jdk/java/lang/reflect/code/writer/TestNaming.java From mcimadamore at openjdk.org Fri Feb 6 17:29:04 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 17:29:04 GMT Subject: git: openjdk/babylon: code-reflection: 2 new changesets Message-ID: <56be6960-fb97-460c-8b9a-fca65cae8093@openjdk.org> Changeset: 80d68865 Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 17:24:27 +0000 URL: https://git.openjdk.org/babylon/commit/80d6886563d1318ae5a0d1a24fb893cb75e6c256 Address javadoc warnings -- part 2 Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/JavaOp.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/RecordTypeRef.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/java/StringConcatTransformer.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/extern/OpWriter.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/ReflectableLambdaMetafactory.java Changeset: 580ef513 Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 17:24:55 +0000 URL: https://git.openjdk.org/babylon/commit/580ef513f67fc7e21bae90ab8fa19e9f83bd0e46 Address javadoc warnings -- part 1 Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/CodeContext.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Op.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/dialect/core/CoreOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/extern/ExternalizedOp.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/extern/ExternalizedTypeElement.java ! src/jdk.incubator.code/share/classes/jdk/incubator/code/interpreter/Interpreter.java From gfrost at openjdk.org Fri Feb 6 17:43:08 2026 From: gfrost at openjdk.org (Gary Frost) Date: Fri, 6 Feb 2026 17:43:08 GMT Subject: git: openjdk/babylon: code-reflection: Added random/hash shader examples Message-ID: Changeset: adcfd0e4 Branch: code-reflection Author: Gary Frost Date: 2026-02-06 17:38:13 +0000 URL: https://git.openjdk.org/babylon/commit/adcfd0e4013aebe582b22f5f3e7a512a7f0678ca Added random/hash shader examples ! hat/examples/shade/src/main/java/shade/Main.java ! hat/examples/shade/src/main/java/shade/types/F32.java From mcimadamore at openjdk.org Fri Feb 6 17:48:18 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 17:48:18 GMT Subject: git: openjdk/babylon: code-reflection: Add package-info.java to runtime package Message-ID: <306de1c3-0252-4c23-ab62-24f899cf048e@openjdk.org> Changeset: 7349cc8d Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 17:45:29 +0000 URL: https://git.openjdk.org/babylon/commit/7349cc8d6e77d9a63dd09ccf3be540850fcc7cf2 Add package-info.java to runtime package + src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/package-info.java From asotona at openjdk.org Fri Feb 6 18:20:52 2026 From: asotona at openjdk.org (Adam Sotona) Date: Fri, 6 Feb 2026 18:20:52 GMT Subject: git: openjdk/babylon: code-reflection: Detaching Interpreter from bytecode.impl package Message-ID: <9c2276e3-7baf-48f0-947f-54d82b5d640c@openjdk.org> Changeset: 03bca6ae Branch: code-reflection Author: Adam Sotona Date: 2026-02-06 18:16:36 +0000 URL: https://git.openjdk.org/babylon/commit/03bca6ae149d0ccc0a4a17053d3881025279ef6b Detaching Interpreter from bytecode.impl package Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/bytecode/impl/LoweringTransform.java From psandoz at openjdk.org Fri Feb 6 21:21:41 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Fri, 6 Feb 2026 21:21:41 GMT Subject: git: openjdk/babylon: code-reflection: Remove use of Interpreter for the samples Message-ID: Changeset: 86d5a6ce Branch: code-reflection Author: Paul Sandoz Date: 2026-02-06 21:16:17 +0000 URL: https://git.openjdk.org/babylon/commit/86d5a6cecaacffd825d1c552186eb612bf298f70 Remove use of Interpreter for the samples ! cr-examples/samples/README.md ! cr-examples/samples/pom.xml ! 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/DynamicFunctionBuild.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/samples/src/test/java/oracle/code/samples/SampleExecutionTest.java From mcimadamore at openjdk.org Fri Feb 6 22:49:37 2026 From: mcimadamore at openjdk.org (Maurizio Cimadamore) Date: Fri, 6 Feb 2026 22:49:37 GMT Subject: git: openjdk/babylon: code-reflection: Remove duplication in ReflectableLambdaMetafactory javadoc Message-ID: <4b162ae5-f91a-4dc3-8484-80d2901a4f62@openjdk.org> Changeset: d3ee2f36 Branch: code-reflection Author: Maurizio Cimadamore Date: 2026-02-06 22:46:52 +0000 URL: https://git.openjdk.org/babylon/commit/d3ee2f364040530ce760d038ec97c5d7e0c05faf Remove duplication in ReflectableLambdaMetafactory javadoc Reviewed-by: psandoz ! src/jdk.incubator.code/share/classes/jdk/incubator/code/runtime/ReflectableLambdaMetafactory.java From psandoz at openjdk.org Sat Feb 7 00:27:13 2026 From: psandoz at openjdk.org (Paul Sandoz) Date: Sat, 7 Feb 2026 00:27:13 GMT Subject: git: openjdk/babylon: code-reflection: Quoted.extractOp fails when passed an array containing a null element Message-ID: <049bc48b-3dd0-4b22-adc1-5a2f9b6e6ec4@openjdk.org> Changeset: a3feea23 Branch: code-reflection Author: Paul Sandoz Date: 2026-02-07 00:22:44 +0000 URL: https://git.openjdk.org/babylon/commit/a3feea23975b59e30bfa207178c514b6e113adb2 Quoted.extractOp fails when passed an array containing a null element ! src/jdk.incubator.code/share/classes/jdk/incubator/code/Quoted.java ! test/jdk/java/lang/reflect/code/TestQuoteOp.java