Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8319311: JShell Process Builder should be configurable #16627

Closed
wants to merge 6 commits into from

Conversation

lahodaj
Copy link
Contributor

@lahodaj lahodaj commented Nov 13, 2023

JShell has a two parts: the main process, which compiles the user's snippets, and possibly interacts with the user, and an "agent" that executes the executable code produced from the snippets. Then "agent" is typically (although not necessarily) a separate process. The clients of the JShell API are free to override the agent behavior, selecting either from the list of existing agents, or creating their own.

There is, however, a desire to use agent that is mostly equivalent to the default JDI-based agent, but with some adjustments.

This patch proposes to limit the amount of code needed to create an agent derived from the default agent.

The solution has two parts:

  • a new interface, JdiStarter is created, which the API client can use to provide code that starts the external JVM for snippet execution
  • the existing JdiInitiator is enhanced so that the user can override the process creation itself.

Please also review the CSR:
https://bugs.openjdk.org/browse/JDK-8319923


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change requires CSR request JDK-8319923 to be approved
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issues

  • JDK-8319311: JShell Process Builder should be configurable (Enhancement - P4)
  • JDK-8319923: JShell Process Builder should be configurable (CSR)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/16627/head:pull/16627
$ git checkout pull/16627

Update a local copy of the PR:
$ git checkout pull/16627
$ git pull https://git.openjdk.org/jdk.git pull/16627/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 16627

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/16627.diff

Webrev

Link to Webrev Comment

@bridgekeeper
Copy link

bridgekeeper bot commented Nov 13, 2023

👋 Welcome back jlahoda! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added csr Pull request needs approved CSR before integration rfr Pull request is ready for review labels Nov 13, 2023
@openjdk
Copy link

openjdk bot commented Nov 13, 2023

@lahodaj The following label will be automatically applied to this pull request:

  • kulla

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the kulla kulla-dev@openjdk.org label Nov 13, 2023
@mlbridge
Copy link

mlbridge bot commented Nov 13, 2023

Webrevs

Copy link
Member

@asotona asotona left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@openjdk
Copy link

openjdk bot commented Nov 27, 2023

@lahodaj This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8319311: JShell Process Builder should be configurable

Reviewed-by: asotona

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 308 new commits pushed to the master branch:

  • 1bb250c: 8261837: SIGSEGV in ciVirtualCallTypeData::translate_from
  • 5f7f2c4: 8320249: tools/jpackage/share/AddLauncherTest.java#id1 fails intermittently on Windows in verifyDescription
  • 6871a2f: 8320803: Update SourceVersion.RELEASE_22 description for language changes
  • 82967f4: 8310159: Bulk copy with Unsafe::arrayCopy is slower compared to memcpy
  • f0a12c5: 8320763: Fix spacing arround assignment in spec.gmk.in
  • 12e983a: 8194743: Compiler implementation for Statements before super()
  • 5e24aaf: 8320001: javac crashes while adding type annotations to the return type of a constructor
  • f9e9131: 8319703: Serial: Remove generationSpec
  • a006d7e: 8294549: configure script should detect unsupported path
  • 4977922: 8320330: Improve implementation of RShift Value
  • ... and 298 more: https://git.openjdk.org/jdk/compare/36de19d4622e38b6c00644b0035521808574e255...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added ready Pull request is ready to be integrated and removed csr Pull request needs approved CSR before integration labels Nov 27, 2023
@lahodaj
Copy link
Contributor Author

lahodaj commented Nov 28, 2023

/integrate

@openjdk
Copy link

openjdk bot commented Nov 28, 2023

Going to push as commit 2fae07f.
Since your change was applied there have been 320 commits pushed to the master branch:

  • 63ad868: 8319668: Fixup of jar filename typo in BadFactoryTest.sh
  • 4bcda60: 8319713: Parallel: Remove PSAdaptiveSizePolicy::should_full_GC
  • 99f870c: 8320781: Fix whitespace in j.l.Double and j.u.z.ZipInputStream @snippets
  • a5ccd3b: 8267532: C2: Profile and prune untaken exception handlers
  • 464dc3d: 8319633: runtime/posixSig/TestPosixSig.java intermittent timeouts on UNIX
  • efc3922: 8319048: Monitor deflation unlink phase prolongs time to safepoint
  • debf0ec: 8313355: javax/management/remote/mandatory/notif/ListenerScaleTest.java failed with "Exception: Failed: ratio=792.2791601423487"
  • 20aae3c: 8320533: Adjust capstone integration for v6 changes
  • 0678253: 8320602: Lock contention in SchemaDVFactory.getInstance()
  • f1a24f6: 8318599: HttpURLConnection cache issues leading to crashes in JGSS w/ native GSS introduced by 8303809
  • ... and 310 more: https://git.openjdk.org/jdk/compare/36de19d4622e38b6c00644b0035521808574e255...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Nov 28, 2023
@openjdk openjdk bot closed this Nov 28, 2023
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Nov 28, 2023
@openjdk
Copy link

openjdk bot commented Nov 28, 2023

@lahodaj Pushed as commit 2fae07f.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integrated Pull request has been integrated kulla kulla-dev@openjdk.org
2 participants