Skip to content

8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries#388

Open
rm-gh-8 wants to merge 1 commit intoopenjdk:pr/386from
rm-gh-8:JDK-8367531-V25
Open

8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries#388
rm-gh-8 wants to merge 1 commit intoopenjdk:pr/386from
rm-gh-8:JDK-8367531-V25

Conversation

@rm-gh-8
Copy link
Contributor

@rm-gh-8 rm-gh-8 commented Mar 13, 2026

Backporting JDK-8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries.

This PR fixes an execution-order bug where immediate-return queries (like sample(), count()) would "float" above deferred tokens (like addDataName), producing confusing and incorrect results. The fix converts all state-querying operations to token-based APIs with lambda callbacks, and introduces explicit ScopeToken types with configurable transparency.

For parity with Oracle JDK.

It is part of a series of dependent PRs for JDK 25, related to the following list of ordered issues:

8358772: Template-Framework Library: Primitive Types
8358600: Template-Framework Library: Template for TestFramework test class
8359412: Template-Framework Library: Operations and Expressions
8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries
8370489: Some compiler tests miss the @key randomness

Ran related tests on linux-x64, linux-aarch64, macos-aarch64 and windows-x64:

make test TEST=test/hotspot/jtreg/testlibrary_tests/template_framework


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • JDK-8367531 needs maintainer approval

Integration blocker

 ⚠️ Dependency #386 must be integrated first

Issue

  • JDK-8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries (Enhancement - P4)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/388/head:pull/388
$ git checkout pull/388

Update a local copy of the PR:
$ git checkout pull/388
$ git pull https://git.openjdk.org/jdk25u-dev.git pull/388/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 388

View PR using the GUI difftool:
$ git pr show -t 388

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/388.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Mar 13, 2026

👋 Welcome back rm-gh-8! A progress list of the required criteria for merging this PR into pr/386 will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Mar 13, 2026

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk bot changed the title Backport b41146cd1e5d412f69b893bfb2fd65b6206bb0d2 8367531: Template Framework: use scopes and tokens instead of misbehaving immediate-return-queries Mar 13, 2026
@openjdk
Copy link

openjdk bot commented Mar 13, 2026

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk bot added the backport Port of a pull request already in a different code base label Mar 13, 2026
@rm-gh-8 rm-gh-8 marked this pull request as ready for review March 13, 2026 17:04
@openjdk openjdk bot added the rfr Pull request is ready for review label Mar 13, 2026
@mlbridge
Copy link

mlbridge bot commented Mar 13, 2026

Webrevs

@rm-gh-8
Copy link
Contributor Author

rm-gh-8 commented Mar 13, 2026

Review will be requested after merging from head once the prerequisite is pushed. The merge from head will require a re-review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Port of a pull request already in a different code base rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

1 participant