Re: RFR: 8205129: Remove java.lang.Compiler

2023-04-06 Thread Eirik Bjorsnos
On Sun, 19 Mar 2023 09:01:26 GMT, Eirik Bjorsnos wrote: > Please help review this PR which suggests we remove the class > `java.lang.Compiler`. The class seems non-functional for a decade, and was > terminally deprecated in Java 9. Time has come to let it go. This PR is daydreaming about a sp

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Alan Bateman
On Fri, 7 Apr 2023 06:41:26 GMT, Jaikiran Pai wrote: > The lambda here uses `System.out` to format and print and there's a loop > which converts each collect `StackFrame` to a printable `StackTraceElement`. > I had a brief look at the internals of the classes involved, but couldn't > spot any

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Jaikiran Pai
On Thu, 6 Apr 2023 15:49:27 GMT, Alan Bateman wrote: >> JEP 444 proposes to make virtual threads a permanent feature in Java 21. The >> APIs that were preview APIs in Java 19/20 are changed to permanent and their >> `@since`/equivalent are changed to 21 (as per the guidance in JEP 12). The >>

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Alan Bateman
On Fri, 7 Apr 2023 06:24:43 GMT, Jaikiran Pai wrote: > Hello Alan, as far as I have seen, much of a our debug logs/stacktrace in the > JDK uses `System.err` to write them out. For example, `Thread.dumpStack()`, > then even `java.security.debug` logging and many such places. Is it > intentional

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Jaikiran Pai
On Thu, 6 Apr 2023 15:49:27 GMT, Alan Bateman wrote: >> JEP 444 proposes to make virtual threads a permanent feature in Java 21. The >> APIs that were preview APIs in Java 19/20 are changed to permanent and their >> `@since`/equivalent are changed to 21 (as per the guidance in JEP 12). The >>

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Alan Bateman
On Fri, 7 Apr 2023 06:26:30 GMT, Jaikiran Pai wrote: > Or would it be OK, if we just ignored this exception that happened when > tracing/logging? If, for example, something has changed System.out to be a throwing PrintStream, and this diagnostic option is enabled, then it may fail here. As it'

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Thomas Stuefe
On Thu, 6 Apr 2023 20:39:41 GMT, Roger Riggs wrote: > > What about PPC (big endian)? Used on AIX? > > I'm not aware of any code (in OpenJDK) related to big/little endian that is > derived from `os.arch`. > > > On Arm, it may be useful to know whether we built for thumb mode (We > > recently h

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Jaikiran Pai
On Thu, 6 Apr 2023 15:49:27 GMT, Alan Bateman wrote: >> JEP 444 proposes to make virtual threads a permanent feature in Java 21. The >> APIs that were preview APIs in Java 19/20 are changed to permanent and their >> `@since`/equivalent are changed to 21 (as per the guidance in JEP 12). The >>

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Thomas Stuefe
On Thu, 6 Apr 2023 21:17:25 GMT, Glavo wrote: >> The point of Architecture is reflect the architecture as supported by the >> build and the runtime mutually and to reflect dependencies on the target >> hardware. >> >> What did you use as the example that would not compile on the other >> arc

Re: RFR: 8304911: Use OperatingSystem enum in some modules [v3]

2023-04-06 Thread Jaikiran Pai
On Wed, 5 Apr 2023 15:48:02 GMT, Roger Riggs wrote: >> With the addition of `jdk.internal.util.OperatingSystem` references to the >> system property `os.name` can be replaced. >> This PR exports jdk.internal.util to: >> - java.prefs, >> - java.security.jgss, >> - java.smartcardio, >> - jdk.c

Re: RFR: 8303530: Add system property for custom JAXP configuration file [v8]

2023-04-06 Thread Joe Wang
> Add a system property, jdk.xml.config.file, to return the path to a custom > JAXP configuration file. The current configuration file, jaxp.properties, > that the JDK supports will become the default configuration file. > > CSR: https://bugs.openjdk.org/browse/JDK-8303531 > > Tests: XML SQE an

Re: RFR: 8304265: Implementation of Foreign Function and Memory API (Third Preview) [v5]

2023-04-06 Thread Fei Yang
On Tue, 21 Mar 2023 13:35:25 GMT, Per Minborg wrote: >> Per Minborg has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Add example for Option::captureStateLayout > > A review of all the copyright years shall be made in this PR. > Hi @minbo

Re: RFR: 8304717: Declaration aliasing between boolean and jboolean is wrong [v3]

2023-04-06 Thread Phil Race
On Fri, 31 Mar 2023 05:57:01 GMT, Julian Waters wrote: >> A couple of spots wrongly refer to boolean and jboolean as the same thing. >> While this does still compile thanks to a happy accident and implicit >> conversions, they are not the same at all, and should be fixed before a >> future com

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 19:33:51 GMT, Johannes Kuhn wrote: >> This is good work.This needs some careful study on the security aspect. >> I see the proxy class is in the same module of the interface, is non-public, >> and it has a no-arg non-public constructor. >> >> Defining the proxy class i

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v9]

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 20:47:10 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6241286: (cal) API: Calendar.DAY_OF_WEEK definition is wrong

2023-04-06 Thread Naoto Sato
On Mon, 3 Apr 2023 21:56:33 GMT, Justin Lu wrote: > This PR updates the Calendar.DAY_OF_WEEK documentation to make it clear that > the field accepts _any_ value if the calendar is lenient and then normalizes > it. Only if the calendar is non-lenient, will the field accept only one of > SUNDAY

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Phil Race
On Thu, 6 Apr 2023 19:25:19 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

RFR: 8291023: FileOutputStream.close() re-entrantly invokes itself after getChannel().force()

2023-04-06 Thread Archie L . Cobbs
IO stream classes like `FileOutputStream` can have assocated NIO channels. When `close()` is invoked on one of these classes, it in turn invokes `close()` on the associated channel (if any). But when the associated channel's `close()` method is invoked, it in turn invokes `close()` on the associ

Re: RFR: 8305486: Add split() variants that keep the delimiters to String and j.u.r.Pattern

2023-04-06 Thread Roger Riggs
On Mon, 3 Apr 2023 17:43:55 GMT, Raffaello Giulietti wrote: > Add `split()` overloads to `String` and `java.util.regex.Pattern` that, in > addition to the substrings returned by current `split()` variants, also > return the delimiters matching the regular expression. src/java.base/share/class

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Glavo
On Thu, 6 Apr 2023 20:56:42 GMT, Roger Riggs wrote: > What did you use as the example that would not compile on the other > architecture? https://github.com/openjdk/jdk/blob/52ca4a70fc3de9e285964f9545ea8cd54e2d9924/src/java.base/share/classes/jdk/internal/util/OperatingSystemProps.java.templat

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v4]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 17:56:23 GMT, Mandy Chung wrote: >> src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java line >> 213: >> >>> 211: .defineClassAsLookup(true, List.of(mhs)); >>> 212: proxy = lookup.findConstructor(lookup.lookupClass(), >>> meth

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v9]

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 20:47:10 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 20:42:26 GMT, Glavo wrote: >> There is no benefit to preemptively defining a full set of architectures; we >> only need those that are used in the OpenJDK runtime selection of options or >> parameters. >> The other and unknown cases can be handled in code using switch as `def

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 20:38:02 GMT, Thomas Stuefe wrote: > Another question, how does this work with Zero? Zero is orthogonal to architecture; the interpreter is compiled for a specific target architecture. - PR Comment: https://git.openjdk.org/jdk/pull/13357#issuecomment-1499606550

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v9]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 20:47:10 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v9]

2023-04-06 Thread Chen Liang
> As John Rose has pointed out in this issue, the current j.l.r.Proxy based > implementation of MethodHandleProxies.asInterface has a few issues: > 1. Exposes too much information via Proxy supertype (and WrapperInstance > interface) > 2. Does not allow future expansion to support SAM[^1] abstrac

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Glavo
On Thu, 6 Apr 2023 20:24:27 GMT, Roger Riggs wrote: >> src/java.base/share/classes/jdk/internal/util/Architecture.java line 100: >> >>> 98: */ >>> 99: public static Architecture current() { >>> 100: return archValues[OperatingSystemProps.CURRENT_ARCH_ORDINAL]; >> >> I think the

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 20:28:29 GMT, Thomas Stuefe wrote: > What about PPC (big endian)? Used on AIX? I'm not aware of any code (in OpenJDK) related to big/little endian that is derived from `os.arch`. > > On Arm, it may be useful to know whether we built for thumb mode (We recently > had this p

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Thomas Stuefe
On Thu, 6 Apr 2023 19:25:19 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8303923: ZipOutStream::putEntry should include an apiNote to indicate that the STORED compression method should be used when writing directory entries [v3]

2023-04-06 Thread Eirik Bjorsnos
On Sun, 19 Mar 2023 14:50:41 GMT, Eirik Bjorsnos wrote: >> ZipOutputStream currently writes directory entries using the DEFLATED >> compression method. This does not strictly comply with the APPNOTE.TXT >> specification and is also about 10x slower than using the STORED compression >> method.

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Thomas Stuefe
On Thu, 6 Apr 2023 19:25:19 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 19:55:07 GMT, Glavo wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Remove unneeded qualified export from java.base to jdk.attach > > src/java.base/share/classes/jdk/internal/util/Architecture.jav

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 18:27:33 GMT, Chen Liang wrote: > I ran with make test TEST="test/jdk/java/lang/invoke/MethodHandleProxies". > The scratch's subdirectories (corresponding to processors) are all empty. The contents of the scratch directory is only saved if the test fails. Maybe it's not that

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Glavo
On Thu, 6 Apr 2023 19:25:19 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 18:33:29 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Johannes Kuhn
On Thu, 6 Apr 2023 19:22:56 GMT, Mandy Chung wrote: > This seems a concern if the target method handle should not have access to > the class in that module. MethodHandle access is checked when the MethodHandle is created. For `@CallerSensitive` methods, the MethodHandle is additionally bound

Re: RFR: 8303923: ZipOutStream::putEntry should include an apiNote to indicate that the STORED compression method should be used when writing directory entries [v3]

2023-04-06 Thread Alan Bateman
On Sun, 19 Mar 2023 14:50:41 GMT, Eirik Bjorsnos wrote: >> ZipOutputStream currently writes directory entries using the DEFLATED >> compression method. This does not strictly comply with the APPNOTE.TXT >> specification and is also about 10x slower than using the STORED compression >> method.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 18:33:29 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v7]

2023-04-06 Thread Roger Riggs
> Define an internal jdk.internal.util.Architecture enumeration and static > methods to replace uses of the system property `os.arch`. > The enumeration values are defined to match those used in the build. > The initial values are: `X64, X86, IA64, ARM, AARCH64, RISCV64, S390X, > PPC64LE` > Note

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v5]

2023-04-06 Thread Alan Bateman
On Thu, 6 Apr 2023 19:01:39 GMT, Roger Riggs wrote: > Removed. Good, that makes it simpler and it means the qualified export can be removed too. - PR Review Comment: https://git.openjdk.org/jdk/pull/13357#discussion_r1160162760

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v5]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 18:44:02 GMT, Alan Bateman wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Revert changes to Foreign API to avoid class with another PR >> Rename S390X to S390, representing just the s390 archit

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v6]

2023-04-06 Thread Roger Riggs
> Define an internal jdk.internal.util.Architecture enumeration and static > methods to replace uses of the system property `os.arch`. > The enumeration values are defined to match those used in the build. > The initial values are: `X64, X86, IA64, ARM, AARCH64, RISCV64, S390X, > PPC64LE` > Note

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Rémi Forax
On Thu, 6 Apr 2023 18:33:29 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v5]

2023-04-06 Thread Alan Bateman
On Thu, 6 Apr 2023 17:17:35 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 18:09:33 GMT, Mandy Chung wrote: > If you run the test with the system property on, it's dumped in the scratch > directory. Do you run with jtreg command? I ran with `make test TEST="test/jdk/java/lang/invoke/MethodHandleProxies"`. The scratch's subdirectories (corresponding

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v8]

2023-04-06 Thread Chen Liang
> As John Rose has pointed out in this issue, the current j.l.r.Proxy based > implementation of MethodHandleProxies.asInterface has a few issues: > 1. Exposes too much information via Proxy supertype (and WrapperInstance > interface) > 2. Does not allow future expansion to support SAM[^1] abstrac

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 18:04:49 GMT, Chen Liang wrote: > It appears the default class hierarchy resolver cannot be used to generates > stack maps with only the FilePermission required by JTReg granted. what permission does it need? - PR Comment: https://git.openjdk.org/jdk/pull/13197#

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Mandy Chung
On Thu, 6 Apr 2023 17:18:22 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion

2023-04-06 Thread Chen Liang
On Wed, 5 Apr 2023 17:59:24 GMT, Johannes Kuhn wrote: >>> I think it should be possible to spin the class bytes once, stick the >>> result in a ClassValue cache, but then use the bytes to define multiple >>> classes with different class data (MethodHandles). >> >> Great point, I was dumbfounde

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 18:03:09 GMT, Chen Liang wrote: >> test/micro/org/openjdk/bench/java/lang/invoke/MethodHandleProxiesAsIFInstanceCall.java >> line 176: >> >>> 174: public void constantLambda() { >>> 175: i = constantLambda.doWork(i); >>> 176: } >> >> I think setting the resul

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 17:08:33 GMT, Jorn Vernee wrote: >> Chen Liang has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Whitespace, cleanup, rename benchmarks to be informative > > test/micro/org/openjdk/bench/java/lang/invoke/MethodHandleProx

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 17:51:27 GMT, Mandy Chung wrote: >>> The interface access may be problematic: A non-exported interface Class >>> object can be obtained via Reflection inspection on exported types, such as >>> java packages and jdk.internal packages. >>> >>> * In that case, it might not

Re: RFR: 8284493: Improve computeNextExponential tail performance and accuracy [v19]

2023-04-06 Thread Chris Hennick
> This PR improves both the worst-case performance of `nextExponential` and > `nextGaussian` and the distribution of output at the tails. It fixes the > following imperfections: > > * Repeatedly adding DoubleZigguratTables.exponentialX0 to extra causes a > rounding error to accumulate at the ta

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v4]

2023-04-06 Thread Mandy Chung
On Wed, 5 Apr 2023 13:22:30 GMT, Jorn Vernee wrote: >> Chen Liang 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 13 additional >> commits since

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 17:27:14 GMT, Jorn Vernee wrote: >> An other possibility to to add some key into the ClassData that can't be >> imitated - such as the `InterfaceInfo` itself. >> An `instanceof` check on the ClassData at a fixed position could then >> determine if is a MHP. > > It looks lik

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion

2023-04-06 Thread Mandy Chung
On Wed, 5 Apr 2023 17:59:24 GMT, Johannes Kuhn wrote: >>> I think it should be possible to spin the class bytes once, stick the >>> result in a ClassValue cache, but then use the bytes to define multiple >>> classes with different class data (MethodHandles). >> >> Great point, I was dumbfounde

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 17:18:22 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 17:04:02 GMT, Johannes Kuhn wrote: >> I don't think that's good enough. If an instance implements an interface >> that just happens to also have an entry in the INTERFACE_INFOS cache, then >> e.g. `MethodHandleProxies::wrapperInstanceTarget` could be used to retrieve >> the

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 03:44:07 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 17:18:22 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v7]

2023-04-06 Thread Chen Liang
> As John Rose has pointed out in this issue, the current j.l.r.Proxy based > implementation of MethodHandleProxies.asInterface has a few issues: > 1. Exposes too much information via Proxy supertype (and WrapperInstance > interface) > 2. Does not allow future expansion to support SAM[^1] abstrac

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v5]

2023-04-06 Thread Roger Riggs
> Define an internal jdk.internal.util.Architecture enumeration and static > methods to replace uses of the system property `os.arch`. > The enumeration values are defined to match those used in the build. > The initial values are: `X64, X86, IA64, ARM, AARCH64, RISCV64, S390X, > PPC64LE` > Note

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Johannes Kuhn
On Thu, 6 Apr 2023 16:58:43 GMT, Jorn Vernee wrote: >> Guess I will just nuke the annotation and check for its implemented clause >> instead. > > I don't think that's good enough. If an instance implements an interface that > just happens to also have an entry in the INTERFACE_INFOS cache, then

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 16:24:10 GMT, Chen Liang wrote: >> Sorry, you are supposed to run it with an installed `SecurityManager` of >> course. >> With an installed `SecurityManager` you should not be able to access classes >> in `sun.misc`. > > Guess I will just nuke the annotation and check for i

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 15:27:49 GMT, David M. Lloyd wrote: >> src/java.base/share/classes/jdk/internal/util/Architecture.java line 47: >> >>> 45: >>> 46: // Cache a copy of the array for lightweight indexing >>> 47: private static final Architecture[] archValues = >>> Architecture.values()

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Chen Liang
On Thu, 6 Apr 2023 16:15:16 GMT, Johannes Kuhn wrote: >> I'm not sure how the example shows that this is a security vulnerability? It >> still works fine without the call to `isWrapperInstance` (even if you switch >> to using jdk.internal.misc.Unsafe.class, although that also requires >> `--ad

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Johannes Kuhn
On Thu, 6 Apr 2023 16:13:38 GMT, Jorn Vernee wrote: >> src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java line >> 284: >> >>> 282: return >>> type.getDeclaredAnnotation(WrapperInstance.class); >>> 283: } >>> 284: }) : type.getD

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 15:57:33 GMT, Johannes Kuhn wrote: >> Chen Liang has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Whitespace, cleanup, rename benchmarks to be informative > > src/java.base/share/classes/java/lang/invoke/MethodHandlePro

Re: RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v6]

2023-04-06 Thread Johannes Kuhn
On Thu, 6 Apr 2023 03:44:07 GMT, Chen Liang wrote: >> As John Rose has pointed out in this issue, the current j.l.r.Proxy based >> implementation of MethodHandleProxies.asInterface has a few issues: >> 1. Exposes too much information via Proxy supertype (and WrapperInstance >> interface) >> 2.

Re: RFR: 8304919: Implementation of Virtual Threads [v6]

2023-04-06 Thread Alan Bateman
> JEP 444 proposes to make virtual threads a permanent feature in Java 21. The > APIs that were preview APIs in Java 19/20 are changed to permanent and their > `@since`/equivalent are changed to 21 (as per the guidance in JEP 12). The > JNI and JVMTI versions are bumped as this is the first chan

Integrated: JDK-8272119: Typo in JDK documentation (a -> an)

2023-04-06 Thread Viktor Klang
On Wed, 5 Apr 2023 14:48:52 GMT, Viktor Klang wrote: > a -> an This pull request has now been integrated. Changeset: 08fbb7bb Author:Viktor Klang Committer: Alan Bateman URL: https://git.openjdk.org/jdk/commit/08fbb7bb5edebbc22e0a84710894be47bd4fe332 Stats: 1 line in 1 file cha

Re: RFR: 8305696: (zipfs) Avoid redundant LinkedHashMap.containsKey call ZipFileSystem.makeParentDirs

2023-04-06 Thread Alan Bateman
On Mon, 3 Apr 2023 17:16:26 GMT, Andrey Turbanov wrote: > `LinkedHashMap` `ZipFileSystem.inodes` contains only > non-null values. It means instead of separate `containsKey`+`get` calls, we > can use single `LinkedHashMap.get` call and then compare result with `null`. > Result code is a bit simp

Integrated: 8305461: [vectorapi] Add VectorMask::xor

2023-04-06 Thread Quan Anh Mai
On Sat, 1 Apr 2023 15:40:14 GMT, Quan Anh Mai wrote: > Hi, > > This patch adds `VectorMask.xor` to the public interface of `VectorMask`. > This method has already been existed in each concrete mask classes. > > Please kindly review. > Thanks a lot. This pull request has now been integrated.

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread David M . Lloyd
On Thu, 6 Apr 2023 08:00:43 GMT, ExE Boss wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture.ja

Re: RFR: 8305461: [vectorapi] Add VectorMask::xor

2023-04-06 Thread Paul Sandoz
On Tue, 4 Apr 2023 15:44:41 GMT, Paul Sandoz wrote: >> Hi, >> >> This patch adds `VectorMask.xor` to the public interface of `VectorMask`. >> This method has already been existed in each concrete mask classes. >> >> Please kindly review. >> Thanks a lot. > > Thank you for doing this. I am gues

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 03:17:57 GMT, ExE Boss wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture.ja

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 07:41:48 GMT, Per Minborg wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 08:05:14 GMT, ExE Boss wrote: >> src/java.base/share/classes/jdk/internal/util/Architecture.java line 85: >> >>> 83: */ >>> 84: @ForceInline >>> 85: public static boolean isRISCV64() { >> >> Are all the "isers" necessary to provide constant code folding or is the

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Jaikiran Pai
On Wed, 5 Apr 2023 19:20:08 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Wed, 5 Apr 2023 23:39:00 GMT, Jorn Vernee wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > test/jdk/java/foreign/TestUnsupportedLinker.java line 26:

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Roger Riggs
On Thu, 6 Apr 2023 03:17:37 GMT, ExE Boss wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture.ja

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Jorn Vernee
On Thu, 6 Apr 2023 08:11:45 GMT, Glavo wrote: > os.arch is always the target architecture for JVM, even using 32-bit JVM on > 64-bit system, its value remains x86. Okay, I could have sworn we had to add the `ADDRESS_SIZE` check because of this issue where a 32-bit VM running on x64 would erron

Integrated: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream

2023-04-06 Thread Sergey Tsypanov
On Wed, 22 Mar 2023 20:34:08 GMT, Sergey Tsypanov wrote: > By default `BufferedInputStream` is constructed with internal buffer with > capacity 8192. In some cases this buffer is never used, e.g. when we call > `IS.readNBytes()` or `IS.readAllBytes()` (relying on `BIS.read1()`) or when > `Buff

Re: RFR: 8304265: Implementation of Foreign Function and Memory API (Third Preview) [v20]

2023-04-06 Thread Per Minborg
> API changes for the FFM API (third preview) > > Specdiff: > https://cr.openjdk.org/~pminborg/panama/21/v1/specdiff/overview-summary.html > > Javadoc: > https://cr.openjdk.org/~pminborg/panama/21/v1/javadoc/java.base/module-summary.html Per Minborg has updated the pull request incrementally wit

Re: RFR: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream [v9]

2023-04-06 Thread Jaikiran Pai
On Thu, 6 Apr 2023 09:55:57 GMT, Sergey Tsypanov wrote: >>> So I think the main thing now is to decide whether the benchmark should be >>> included or not. >> >> In my review I hadn't paid attention to the benchmark class. I now applied >> this patch locally and reviewed the benchmark code and

Re: RFR: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream [v10]

2023-04-06 Thread Jaikiran Pai
On Thu, 6 Apr 2023 10:07:31 GMT, Sergey Tsypanov wrote: >> By default `BufferedInputStream` is constructed with internal buffer with >> capacity 8192. In some cases this buffer is never used, e.g. when we call >> `IS.readNBytes()` or `IS.readAllBytes()` (relying on `BIS.read1()`) or when >> `B

Re: RFR: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream [v10]

2023-04-06 Thread Sergey Tsypanov
> By default `BufferedInputStream` is constructed with internal buffer with > capacity 8192. In some cases this buffer is never used, e.g. when we call > `IS.readNBytes()` or `IS.readAllBytes()` (relying on `BIS.read1()`) or when > `BufferedInputStream` is cascaded. Sergey Tsypanov has updated

Re: RFR: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream [v9]

2023-04-06 Thread Sergey Tsypanov
On Thu, 6 Apr 2023 09:23:33 GMT, Jaikiran Pai wrote: > For this change, I think a benchmark isn't necessary - what would it test, > how quickly a new BufferedInputStream returns as compared to previous code? @jaikiran first of all it demonstrates reducing allocation for plain/cascaded readAll

Re: RFR: 8304745: Lazily initialize byte[] in java.io.BufferedInputStream [v9]

2023-04-06 Thread Jaikiran Pai
On Wed, 5 Apr 2023 07:08:58 GMT, Alan Bateman wrote: > So I think the main thing now is to decide whether the benchmark should be > included or not. In my review I hadn't paid attention to the benchmark class. I now applied this patch locally and reviewed the benchmark code and even ran it loc

RFR: 8305696: Avoid redundant LinkedHashMap.containsKey call ZipFileSystem.makeParentDirs

2023-04-06 Thread Andrey Turbanov
`LinkedHashMap` `ZipFileSystem.inodes` contains only non-null values. It means instead of separate `containsKey`+`get` calls, we can use single `LinkedHashMap.get` call and then compare result with `null`. Result code is a bit simpler and faster. Testing: Linux x64 `java/nio`, `jdk/nio` ---

Re: RFR: 8305538: Avoid redundant HashMap.containsKey call in ModuleDescriptor.Builder

2023-04-06 Thread Alan Bateman
On Tue, 4 Apr 2023 20:43:13 GMT, Andrey Turbanov wrote: > But now `requireServiceTypeName` is called unconditionally. requireServiceTypeName(service) should only be called when using the API. The non-strict route is when parsing a module-info on the module path, the checks that the names are l

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Glavo
On Wed, 5 Apr 2023 23:46:33 GMT, Jorn Vernee wrote: > Right, it is still possible to run a 32-bit VM build on a 64-bit platform. > `os.arch` can be `amd64`, the runtime platform, in this case, but the VM > variant can still be 32 bits. `os.arch` is always the target architecture for JVM, even

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread ExE Boss
On Wed, 5 Apr 2023 19:20:08 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread ExE Boss
On Thu, 6 Apr 2023 07:40:50 GMT, Per Minborg wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread ExE Boss
On Thu, 6 Apr 2023 07:36:36 GMT, Per Minborg wrote: >> Roger Riggs has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Correct spelling of isAARCH64 in WIndows AttachProviderImpl > > src/java.base/share/classes/jdk/internal/util/Architecture

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Per Minborg
On Wed, 5 Apr 2023 19:20:08 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]

2023-04-06 Thread Per Minborg
On Wed, 5 Apr 2023 19:20:08 GMT, Roger Riggs wrote: >> Define an internal jdk.internal.util.Architecture enumeration and static >> methods to replace uses of the system property `os.arch`. >> The enumeration values are defined to match those used in the build. >> The initial values are: `X64, X8

Re: RFR: 8302819: Remove JAR Index [v5]

2023-04-06 Thread Alan Bateman
On Thu, 30 Mar 2023 14:21:29 GMT, Eirik Bjorsnos wrote: >> This PR removes the JAR index feature from the runtime: >> >> - `URLClassPath` is updated to remove the `enableJarIndex` system property >> and any code which would be called when this property was `true` >> - The `JarIndex` implementa