On Thu, 2 Oct 2025 05:40:49 GMT, Henry Jen <[email protected]> wrote:

>> Since parameters is an opt-in choice, it's more reasonable to consider 
>> that's desired information and make strip parameter names an opt-in choice 
>> as well.
>> 
>> This PR changes the default behavior of --strip-debug to keep parameter 
>> names when it's available. Add opt-in mechanism,
>> via the strip-java-debug-attributes plugin by using argument 
>> `--strip-java-debug-attributes=+parameter-names`.
>> 
>> The --strip-debug option is a little bit odd, as it's a main option as well 
>> as a plugin option to enable the DefaultStripDebugPlugin, which strip native 
>> debug information on platform support the feature, and strip java debug 
>> information. In this PR, we chose to support only one mechanism to enable 
>> strip parameter names, so we would disable the embed 
>> StripJavaDebugAttributesPlugin when StripJavaDebugAttributesPlugin is 
>> enabled.
>> 
>> The StripParameterNamesTest illustrate and verify parameter names use cases, 
>> mainly focus on argument processing and the parameter names. We didn't 
>> verify the regular debug info as that's covered by existing test.
>> 
>> -- Update
>> 
>> The latest change removed the support of strip parameter names, as the 
>> MethodParameters attribute is considered necessary attribute to fulfill Java 
>> Language Spec even though this attribute is considered optional by JVM spec.
>
> Henry Jen has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   MethodParameters attribute should not be removed

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/TaskHelper.java line 465:

> 463:             // disable StripJavaDebugAttributesPlugin within 
> DefaultStripDebug plugin if both enabled
> 464:             if 
> (seenPlugins.contains(StripJavaDebugAttributesPlugin.NAME) && 
> defaultStripDebugPlugin != null) {
> 465:                 defaultStripDebugPlugin.enableJavaStripPlugin(false);

This is unfortunate, but as you explained in the PR description, we are kinda 
stuck with this because there is both a jlink options and a plugin option.

test/jdk/tools/jlink/plugins/DefaultStripDebugPluginTest.java line 76:

> 74:     }
> 75: 
> 76:     public void testOnlyNativePlugin() {

Would it be possible to add a one or two sentence description to these test 
methods as it's not immediately obvious what these tests do. The name gives 
some hint of course but it would be helpful to have something so it's clear 
which combination be being tested.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27566#discussion_r2416825686
PR Review Comment: https://git.openjdk.org/jdk/pull/27566#discussion_r2416773503

Reply via email to