Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2859 commits
Select commit Hold shift + click to select a range
383d50e
8379694: [lworld] Add value class test coverage to java.util.Arrays
Apr 16, 2026
8997310
8381854: [lworld] Add acmp maps test to the FieldLayoutAnalyzer
fparain Apr 16, 2026
f29dba8
Merge
MrSimms Apr 17, 2026
7cb66d6
8379145: [lworld] Boxing performance regression
fparain Apr 17, 2026
2f27999
8382344: [lworld] Missing ResourceMark in ciField::ciField constructors
TobiHartmann Apr 20, 2026
37733a5
8380525: [lworld] C2: Various issues with abstract value classes lead…
chhagedorn Apr 20, 2026
b785dcd
8381866: [lworld] C2: SIGSEGV in SafePointNode::disconnect_from_root
benoitmaillard Apr 20, 2026
3b345f3
8382027: [lworld] if_acmp nullchecks can produce false positives
Arraying Apr 20, 2026
fab935b
8374475: [lworld] C2: assert(_gvn.type(l)->higher_equal(type)) failed…
merykitty Apr 20, 2026
023e8dc
Merge
MrSimms Apr 20, 2026
59cf255
8381653: [lworld] tools/javac/processing/model/element/TestValueClass…
liach Apr 20, 2026
59347b1
8375355: [lworld] vmTestbase/nsk/jvmti/scenarios/allocation/AP04/ap04…
lmesnik Apr 20, 2026
00f5e96
8382583: [lworld] ProblemList serviceability/sa/TestJhsdbJstackMixedW…
Apr 20, 2026
9525f8c
8371125: [lworld] Re-enable "not enough operands for reexecution" assert
TobiHartmann Apr 21, 2026
ffb47cf
8380778: [lworld] G1: Eager reclaim for flat arrays
Apr 21, 2026
8b2263f
8382421: [lworld] g1StoreLSpecialOneOopOff4 pass wrong new_value to p…
anton-seoane Apr 21, 2026
d841d4a
8369166: [lworld] Avoid final field barriers at the end of constructo…
dafedafe Apr 21, 2026
2c87eee
8284443: [lworld] Follow-up work from support for scalarization of nu…
TobiHartmann Apr 21, 2026
efdf137
8376514: [lworld] VarHandleTestMethodHandleAccessValue.java fails in …
liach Apr 21, 2026
8694152
8382541: [lworld] Remove com/sun/jdi/EATests.java#id0 from ProblemLis…
plummercj Apr 21, 2026
e391f76
8382560: [lworld] Unsafe access to klass name in SystemDictionary::tr…
jsikstro Apr 22, 2026
e12473c
8382852: [lworld] cherry-pick JDK-8382843 Update ProblemList comments…
Apr 22, 2026
d6bc57f
8382773: [lworld] Various cleanups of TODOs/FIXMEs in JIT code
TobiHartmann Apr 23, 2026
1ea75fa
8382776: [lworld] applications/ctw/modules/java_desktop.java fails wi…
marc-chevalier Apr 23, 2026
f09dea6
8380927: [lworld] C2: Missed Value() optimization for InlineType
benoitmaillard Apr 23, 2026
ff518b2
8382639: [lworld] FlatFieldPayload resolves super class field from su…
caspernorrbin Apr 24, 2026
6d2c579
8382882: [lworld] Various cleanups of TODOs/FIXMEs in core libraries
liach Apr 24, 2026
bab0024
8382810: [lworld] ImageReader mishandles preview resource paths
Apr 24, 2026
5dbc217
Merge
MrSimms Apr 25, 2026
cfda30f
8382896: [lworld] Various clean-ups in Valhalla related compiler code
chhagedorn Apr 27, 2026
583bdbc
8383390: [lworld] jcheck whitespace errors in test/micro
MrSimms Apr 27, 2026
2df83c2
8382941: [lworld] Incorrect handling of naturally atomic values
fparain Apr 27, 2026
4495013
8382603: [lworld] [jittester] Add Value Classes support in generated …
Apr 28, 2026
af54dff
8383387: [lworld] Address HotSpot TODOs
Arraying Apr 28, 2026
6dbddf4
8383242: [lworld] Update on copy-of-copy in ClassFileParser::fetch_fi…
jsikstro Apr 28, 2026
fcfbcfc
8381268: [lworld] C2: assert(adr->is_top() || C->get_alias_index(gvn.…
chhagedorn Apr 28, 2026
301fe4a
8383415: [lworld] Flat contended oop field might not be included in O…
jsikstro Apr 29, 2026
c71f69c
8382701: [lworld] Decouple from the AlwaysAtomicAccesses flag
Arraying Apr 29, 2026
4b9ee21
8381472: [lworld] Fast path for acmp for migrated classes
marc-chevalier Apr 29, 2026
57dc71c
8382704: [lworld] GetLocalObject/GetLocalInstance for THIS value obje…
Apr 30, 2026
4f48eae
8382814: [lworld] C2: crash with late inlining of call with circular …
rwestrel Apr 30, 2026
a9dfc23
8383636: [lworld] ContendedFlatFieldOopMap.java fails due to missing …
marc-chevalier Apr 30, 2026
5814c9d
8383424: [lworld] Undo JDK-8373202 changes
plummercj Apr 30, 2026
5131e8a
8383141: [lworld] Update javax.lang.model.element.Modifier.VALUE with…
May 1, 2026
d886298
8383628: [lworld] C1 parts of JDK-8350865
TobiHartmann May 4, 2026
d14b4dd
Merge
MrSimms May 5, 2026
2bc2fe3
8383627: [lworld] Failures with -XX:-PreloadClasses after JDK-8383242
Arraying May 5, 2026
8d84aee
8382622: [lworld] Cleanup new_flatArray
stefank May 5, 2026
0eef773
8381826: [lworld] [REDO] Improve acmp expansion
merykitty May 5, 2026
555fbde
8383814: [lworld] many compiler/valhalla/inlinetypes/TestAcmpFastPath…
marc-chevalier May 5, 2026
58efbec
8383626: [lworld] Remove Objects.isValueObject method
May 5, 2026
6391715
8381408: [lworld] Cleanup hotspot/cpu code
coleenp May 5, 2026
7f562b3
8383771: [lworld] jdk/javadoc/doccheck/checks/jdkCheckLinks.java fail…
May 5, 2026
46aac16
8383417: [lworld] Implement limitation to the size of instances due t…
fparain May 6, 2026
7558cd7
8382702: [lworld] Define VMObjectAlloc behavior for value objects
May 7, 2026
46dafa3
8380059: [lworld] zero: java/foreign/enablenativeaccess/TestEnableNat…
johan-sjolen May 7, 2026
4b95be2
8383565: [lworld] NativeNMethodBarrier does not correctly handle mult…
Arraying May 7, 2026
31ee5a8
8383991: [lworld] C2: assert(InlineUnsafeOps || StressReflectiveCode)…
TobiHartmann May 7, 2026
beec164
8383986: [lworld] ArchiveFlatArrayTest.java is not correctly testing …
May 7, 2026
cadae12
8384052: [lworld] Default refined klass invariant in ObjArrayKlass::k…
TobiHartmann May 8, 2026
1c746e9
8384053: [lworld] Missing comma in SetupJavaCompliation for Preview C…
xmas92 May 8, 2026
5ad1577
8384054: [lworld] Cleanup typos and spellings in hotspot
xmas92 May 8, 2026
cbb23bb
8384060: [lworld] Remove dead code, unused symbols, includes, declara…
xmas92 May 8, 2026
e946a61
8384063: [lworld] src.zip missing preview java classes
xmas92 May 8, 2026
be1bc9a
8384079: [lworld] extended_sig may be left as a dangling pointer
xmas92 May 8, 2026
1dedf05
8384064: [lworld] DEBUG_CDS_ARCHIVE does not work
xmas92 May 8, 2026
737cf51
8383998: [lworld] compiler/vectorization/TestVectorsNotSavedAtSafepoi…
TobiHartmann May 8, 2026
ce13625
8384103: [lworld] Enable compilation on non-Oracle platforms
coleenp May 8, 2026
800190d
8383884: [lworld] Rename JNI IsValueObject to HasIdentity
May 11, 2026
ef03842
8383853: [lworld] Asserts guarded by #ifndef ASSERT in aarch64 code
marc-chevalier May 11, 2026
260fe04
Merge
MrSimms May 11, 2026
7ec5a18
8384273: [lworld] Trivial: Redundant make configuration changes
MrSimms May 11, 2026
0432d28
Use jdk jcheck conf
MrSimms May 11, 2026
632b1bd
8380075: [lworld] Update JVMTI spec to clarify that ObjectFree events…
May 11, 2026
9a8e822
8384081: [lworld] JVM_IHashCode caches hash after pending exception
jsikstro May 12, 2026
873f02d
8383755: [lworld] Clean up Class.isValue and Class.isIdentity
May 12, 2026
f39fa97
8384050: [lworld] Update JDWP and JDI specs for JEP 401
plummercj May 12, 2026
e51da80
8384431: [lworld] Adjust tests affected by JDK-8370769
TobiHartmann May 12, 2026
2585704
8384489: [lworld] ProblemList serviceability/jvmti/valhalla/SampledOb…
May 12, 2026
96a8b4b
8384487: [lworld] Fix minor typos in JDWP and JDI specs for JEP 401
plummercj May 12, 2026
4990f91
8382504: [lworld] TestIntrinsics.java triggers assert "must not cast …
TobiHartmann May 13, 2026
7c2d2cd
8384359: [lworld] ConstraintCastNode::Ideal should not push incompati…
TobiHartmann May 13, 2026
2d330b1
8384193: [lworld] Remove identity field from java.lang.Class
coleenp May 13, 2026
de6aff4
8384364: [lworld] C2: assert(cloned_flat_array_check->req() == 3) fai…
rwestrel May 13, 2026
6b9eb7d
8384283: [lworld] Post-parse call devirtualization with unloaded retu…
marc-chevalier May 13, 2026
cc40808
8384105: [lworld] serviceability/jvmti/valhalla/SampledObjectAllocVal…
May 13, 2026
4824ac0
8383164: [lworld] javadoc updates for value class serialization
May 14, 2026
37504c6
8384202: [lworld] C2: assert(offset == field->offset_in_bytes()) fail…
TobiHartmann May 15, 2026
50ed255
8383559: [lworld] Autobox cache removal causes performance regression…
TobiHartmann May 15, 2026
687c91c
8384630: [lworld] Build failure after JDK-8383164
TobiHartmann May 15, 2026
b5347d2
8384127: [lworld] C2 compilation failed with "graph should be schedul…
marc-chevalier May 15, 2026
5758540
8384525: [lworld] compiler/valhalla/inlinetypes/CorrectlyRestoreRfp.j…
TobiHartmann May 15, 2026
530e74c
Merge
MrSimms May 15, 2026
8477926
8383997: [lworld] Buffering via SharedRuntime::store_inline_type_fiel…
TobiHartmann May 15, 2026
b13d505
8384759: [lworld] fix recently introduced typo in ObjectFree event spec
May 15, 2026
15e9bb6
Merge lworld
MrSimms May 16, 2026
7f751ee
8384853: [lworld] Replay compilation fails with assert(props.is_valid…
TobiHartmann May 18, 2026
381cedf
8384405: [lworld] C2: Load nodes inserted by InlineTypeNode::make_fro…
TobiHartmann May 18, 2026
1f15e5a
8384651: [lworld] Clean up <p> tags in Serializable javadoc
May 18, 2026
af9a023
8383996: [lworld] C2: assert(false) failed: no node with a side effect
mhaessig May 19, 2026
0cee7f0
8384642: [lworld] TestMemBars.java assert(C->failure_is_artificial())…
marc-chevalier May 19, 2026
e08d163
8384903: [lworld] AArch64: clearArray_imm_reg no longer matches
dean-long May 19, 2026
f87d6d1
8380921: [lworld] compiler/stable/TestStableArrayMembars.java IR mism…
mhaessig May 19, 2026
473248e
8385009: [lworld] cherry-pick JDK-8384815 SelectOneKeyOutOfMany and P…
May 19, 2026
5bd51e2
8385012: [lworld] cherry-pick JDK-8384948 Disable DelayAfterInliningC…
May 19, 2026
2060561
8385010: [lworld] cherry-pick JDK-8384124 TestCompilerCounts.java fai…
May 19, 2026
809e1cd
8385015: [lworld] cherry-pick JDK-8384553 ProblemList runtime/jni/cri…
May 19, 2026
67240cc
8385021: [lworld] ProblemList vmTestbase/nsk/jvmti/IterateOverReachab…
May 19, 2026
c5fafa9
8381373: [lworld] C2 failed assert(!flat || flat_array) failed: incon…
TobiHartmann May 20, 2026
a63fc22
8385025: [lworld] TestStableArrayMembars.java still fails after JDK-8…
mhaessig May 21, 2026
679d759
8374742: [lworld] assert(phi->_idx >= nodes_size()) failed: only new …
rwestrel May 21, 2026
d07da49
8385171: [lworld] Revert src/hotspot/cpu/s390/continuationHelper_s390…
coleenp May 21, 2026
cbb983c
8384061: [lworld] VM_PrintClassLayout uses the wrong VMOp_Type
xmas92 May 21, 2026
47f6119
8384066: [lworld] TestDeadAllocationRemoval.java is ignored by jtreg
xmas92 May 21, 2026
0fd28c1
8385167: [lworld] C1: minor cleanups
mhaessig May 22, 2026
0dc5f67
8384924: [lworld] misc cleanups
dean-long May 22, 2026
b4abeb6
Merge
MrSimms May 22, 2026
4a8ca20
8385259: [lworld] Clean up LP64 in x86 code
coleenp May 22, 2026
20105ed
8385311: [lworld] TypePtr::eq() should use accessor method for _offset
TobiHartmann May 22, 2026
71f4b08
8385331: [lworld] adjust ValueComparisonTest.java again to work aroun…
May 22, 2026
d7bb464
8385301: [lworld] Remove serviceability/sa/TestJhsdbJstackMixedWithXC…
plummercj May 22, 2026
884d529
8385344: [lworld] ProblemList tools/javac/platform/CanHandleClassFile…
May 22, 2026
b3b4a2c
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms May 25, 2026
36acdd6
8385020: [lworld] Renaissance-GaussMix crash in C2 TypeInstPtr::xmeet…
rwestrel May 26, 2026
53268eb
8385159: [lworld] C2 parts of JDK-8350865 - Part. 1
marc-chevalier May 26, 2026
0da436e
8385343: [lworld] Add ResourceMark for logging field names
coleenp May 26, 2026
4c23f0e
8385474: [lworld] Leftover JVM_IsValhallaEnabled and JVM_IsIdentityClass
coleenp May 26, 2026
0f58277
8383658: [lworld] Add value class test coverage to java.util.Collections
May 27, 2026
5ccd489
8370769: [lworld] C2 is too aggressive in scalarizing large value obj…
merykitty May 28, 2026
931493b
8385473: [lworld] Metaspace OOME not handled in ciObjArrayKlass::make…
TobiHartmann May 28, 2026
10ca1d3
8373598: [lworld] C2 asserts with "excessive live node increase in si…
marc-chevalier May 28, 2026
19cf14f
8385553: [lworld] Clean up oops changes for review
coleenp May 28, 2026
8a869ae
8383935: [lworld] Remove commented out @IntrinsicCandidate annotations
liach May 28, 2026
703ac96
8385526: [lworld] Remove unused HotSpot leftovers added in lworld
jsikstro May 28, 2026
601e48e
8325632: [lworld] C2 compilation fails with "matching stack sizes"
chhagedorn May 29, 2026
804858f
8385581: [lworld] Remove the experimental JVMCI feature
mhaessig May 29, 2026
dad467a
8385569: [lworld] Apply JDK-8343767 to Valhalla specific StubRoutines
coleenp May 29, 2026
193b6a8
8385601: [lworld] Update testing documentation for the ValueClassPlug…
May 29, 2026
3086665
8384897: [lworld] this.staticField should be restricted in early cons…
mcimadamore May 29, 2026
6a7073f
8385600: [lworld] DA/DU issues with strict fields
mcimadamore May 29, 2026
18449ec
8384107: [lworld] Update runtime/contended tests to run the same test…
shivshah-oracle May 29, 2026
b9b9eef
8385652: [lworld] RedefineClasses should use stack map frame name
coleenp May 29, 2026
100e344
8385674: [lworld] TestNullableInlineTypes.java fails after JDK-8325632
TobiHartmann Jun 1, 2026
66dddaf
Merge
MrSimms Jun 1, 2026
059baea
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 1, 2026
9e80425
Merge remote-tracking branch 'valhalla/lworld' into jep401_sub_review…
MrSimms Jun 1, 2026
194c6e8
8385695: [lworld] Various small code cleanups
TobiHartmann Jun 1, 2026
071157b
8385469: [lworld] compiler/valhalla/inlinetypes/TestVirtualThreads.ja…
pchilano Jun 1, 2026
4c1a52b
8385673: [lworld] Redundant StoreStore membar in AArch64 TemplateTabl…
jsikstro Jun 2, 2026
a974e5e
8385729: [lworld] Remove dead code and improve error messages
Jun 2, 2026
39e74d0
8384805: [lworld] assert(klass_is_exact()) under MemNode::optimize_si…
merykitty Jun 2, 2026
5c8673b
8384871: [lworld] C1's conditional expression elimination does not pr…
mhaessig Jun 2, 2026
ed3bfbc
8385629: [lworld] UnsetFieldInfo should be replaced by bit sets in Co…
mcimadamore Jun 2, 2026
afbab0d
8385645: [lworld] Javac is crashing while compiling constructor with …
Jun 2, 2026
69d84f3
8382503: [lworld] compiler/c2/ReachabilityFenceFlagsTest.java fails p…
merykitty Jun 3, 2026
879523a
8328675: [lworld] Re-enable EliminateAutoBox
TobiHartmann Jun 3, 2026
ce940c6
8385818: [lworld] Suggested comment changes to ClassFileParser
johan-sjolen Jun 3, 2026
2af456d
8302217: [lworld] Infinite invocation of PhiNode::push_inline_types_t…
rwestrel Jun 3, 2026
8e9d0a5
8385882: [lworld] Fix parameter indentation in BarrierSetAssembler::f…
jsikstro Jun 3, 2026
5f1405f
8385634: [lworld] Remove unnecessary coupling between Lower, Gen and …
mcimadamore Jun 3, 2026
ea6ec3d
8385937: [lworld] Remove stray files in test/lib/org/openjdk/asmtools
Jun 4, 2026
03a2847
8385932: [lworld] Preview compilation of modules ignores existing mod…
liach Jun 4, 2026
702e092
8385888: [lworld] Suggested comment changes to Hotspot
johan-sjolen Jun 4, 2026
0639bc3
8375563: [lworld] java/util/Collection/IteratorAtEnd.java fails with …
liach Jun 4, 2026
74f27eb
8385916: [lworld] Cherry-pick JDK-8377808 and remove problemlisting
mhaessig Jun 4, 2026
a7567f2
8385943: [lworld] Redundant ValueBased annotation on Record
liach Jun 4, 2026
2cbfd78
8385928: [lworld] Clean up some redundant core libraries diffs
liach Jun 4, 2026
022f70b
8384756: [lworld] Exclude class from archive if class of inline field…
Jun 4, 2026
2ad1916
8385955: [lworld] Drop initialization warnings
mcimadamore Jun 4, 2026
a3a6dda
8385930: [lworld] Update proxy variables generation in order to avert…
Jun 4, 2026
2eae815
8385962: [lworld] Remove spurious differences with mainline
Jun 5, 2026
8ba03de
8385977: [lworld] Fix copyrights in new java/lang/instrument/valhalla…
plummercj Jun 5, 2026
993c879
8385965: [lworld] Fix minor mistake in JDWP spec w.r.t. addInstanceFi…
plummercj Jun 5, 2026
168f56b
8382556: [lworld] newConstructorForSerialization should not bypass st…
liach Jun 5, 2026
3246309
8384885: [lworld] Implementation update for value class serialization
liach Jun 5, 2026
246ffbf
8385966: [lworld] Remove ThreadInVMfromUnknown from get_supers
coleenp Jun 5, 2026
fe2308a
8386083: [lworld] Cleanup extra ';' in serviceability/tmtools/jstack/…
plummercj Jun 8, 2026
2c4528c
8386087: [lworld] Valhalla changes to serviceability/jvmti/HiddenClas…
plummercj Jun 8, 2026
ef794af
8386097: [lworld] javac does not need to handle MigratedValueClass
liach Jun 8, 2026
da99de9
8386114: [lworld] Rollback meaningless diff in InnerClassLambdaMetafa…
liach Jun 8, 2026
fb95aaa
8386090: [lworld] Redundant test changes in lworld versus mainline
liach Jun 8, 2026
30d67a2
Merge
MrSimms Jun 8, 2026
418ecb7
8386086: [lworld] sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTermi…
plummercj Jun 8, 2026
b466279
8385980: [lworld] Standardize pattern for preview value class generation
Jun 8, 2026
72a74ed
8385170: [lworld] Serialization spec needs to allow abstract value cl…
Jun 8, 2026
af33332
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 9, 2026
6d95a41
8386216: [lworld] Rollback meaningless diff in EventClassBuilder
liach Jun 9, 2026
95bef16
8386140: [lworld] FieldReflector using wrong Class argument
liach Jun 9, 2026
042a35d
8386242: [lworld] Simplify and clarify StrictProcessor
liach Jun 9, 2026
1ca1c8d
8386239: [lworld] Update jdk/java/util/Arrays/ArraysEqCmpTest.java
lmesnik Jun 9, 2026
26c8f2e
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 10, 2026
4d6d288
Merge remote-tracking branch 'valhalla/lworld' into jep401_sub_review…
MrSimms Jun 10, 2026
abebcaa
8386290: [lworld] MigratedValueClass is no longer necessary
liach Jun 10, 2026
c2f67c7
8386455: [lworld] Update problem list to reflect fixes for JDK-837506…
plummercj Jun 10, 2026
b3a718e
8384262: [lworld] TestArrayNullMarkers.java#NVF-nAVF assert(is_flat_a…
marc-chevalier Jun 11, 2026
2fe010c
8386250: [lworld] JVMTI GetClassModifiers
Jun 11, 2026
7ab2d1e
8382584: [lworld] Mandatory pre-loading still present in systemDictio…
caspernorrbin Jun 11, 2026
d15e8b7
8383820: [lworld] Several native methods of ValueClass class lack pro…
fparain Jun 11, 2026
28a9f6e
8386506: [lworld] ProblemList 4 sub-tests that fail due to JDK-8386237
Jun 11, 2026
642ef0a
8386513: [lworld] Trivial review cleanups for runtime
coleenp Jun 11, 2026
6eb965b
8386342: [lworld] Large overlapping flat arraycopy overflows payload …
caspernorrbin Jun 12, 2026
1badaaa
8386240: [lworld] Port JEP 401 to RISC-V
RealFYang Jun 12, 2026
8e1cb51
8386464: [lworld] Random core libs cleanup
liach Jun 12, 2026
43640ba
8386316: [lworld] Replace Valhalla since version with 28
liach Jun 13, 2026
6663aa3
8386623: [lworld] Cleanup module support for system modules in JDK ex…
Jun 15, 2026
347b36f
Merge
MrSimms Jun 15, 2026
a339024
8386618: [lworld] Remove unused entry_guard_Relocation
RealFYang Jun 15, 2026
9cd13e6
8386598: [lworld] C1 acmp profiling fix and minor cleanup
TheRealMDoerr Jun 15, 2026
57b668a
8376346: [lworld] Basic Shenandoah support
shipilev Jun 15, 2026
821c522
8385743: [lworld] investigate and address build related comments in t…
Jun 15, 2026
892d502
8386690: [lworld] cherry-pick JDK-8386124 Test serviceability/sa/Test…
Jun 16, 2026
7974808
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 16, 2026
ed61dc2
8385886: [lworld] C2 VectorAPI/value type: bad deopt state leads to w…
marc-chevalier Jun 16, 2026
426cc06
Merge branch '8317277' into jep401_sub_review_8317279
MrSimms Jun 16, 2026
2523a4f
8386717: [lworld] Test followup after JDK-8386250
shipilev Jun 16, 2026
6931557
8386793: [lworld] ProblemList serviceability/sa/TestJhsdbJstackMixedW…
Jun 16, 2026
246c6b3
8386803: [lworld] remove HEADERS parameter from SetupJavaCompilation …
Jun 17, 2026
fce1837
8386237: [lworld] compiler/valhalla/inlinetypes/TestIntrinsics.java s…
marc-chevalier Jun 17, 2026
ce9ae18
8386720: [lworld] C2: JDK-8385886 counts argument index incorrectly
marc-chevalier Jun 17, 2026
d4a3b6b
8386791: [lworld] ClassFile API review changes
liach Jun 17, 2026
28e1ab5
8386764: [lworld] Missing classpath exception clause in license
liach Jun 17, 2026
dd93655
8386843: [lworld] cherry-pick JDK-8383879 assert(_cur_stack_depth == …
Jun 17, 2026
1eb4aaa
8386702: [lworld] Reflection APIs should not allow strictly-initializ…
Jun 18, 2026
d09a203
8386809: [lworld] Improve WeakHashMap docs on not supporting keys tha…
Jun 18, 2026
f234daf
8386709: [lworld] gc/stress/gcbasher/TestGCBasherWithShenandoah.java#…
shipilev Jun 18, 2026
38e9595
8386854: [lworld] Additional small review cleanups in runtime sources
coleenp Jun 18, 2026
4c1c438
8386627: [lworld] Cleanup ExplodedImage jrtfs support
liach Jun 18, 2026
d0b6c69
8386677: [lworld] VarHandle does not implement strict static checks
liach Jun 18, 2026
a8cc7b3
8386718: [lworld] C2: Integer overflow in arraycopy scaling for flat …
chhagedorn Jun 18, 2026
d85e818
8386626: [lworld] Only enable valhalla IR tests in ScalarReplacementW…
RealFYang Jun 19, 2026
5e57521
8386815: [lworld] Reduce the number of constructors in IdentityException
jaikiran Jun 19, 2026
3923e0c
Merge
MrSimms Jun 22, 2026
8d02455
8386638: [lworld] Port JEP 401 to PPC64
TheRealMDoerr Jun 22, 2026
8f8b311
8386904: [lworld] ProblemList tests that fail due to JDK-8375645 on a…
Jun 22, 2026
5e32888
8387054: [lworld] BACKOUT JDK-8375694 C2: Dead loop constructed with …
Jun 23, 2026
d4fc4b2
8387024: [lworld] Remove the mention of mutexes from the specificatio…
jaikiran Jun 24, 2026
84422ff
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 24, 2026
af3e804
Merge branch '8317277' into jep401_sub_review_8317279
MrSimms Jun 24, 2026
39190ed
8387121: [lworld] ISE thrown when attempting to reflectively read str…
Jun 24, 2026
441b428
8383386: [lworld] test_objArrayOop needs to take the array rework int…
caspernorrbin Jun 24, 2026
c93431c
8383389: [lworld] Augment AOTMapLogger::print_oop_details to support …
Jun 24, 2026
e614970
8386995: [lworld] Duplicate value classes are a preview feature warning
liach Jun 24, 2026
4542f1d
8386787: [lworld] compiler/valhalla/inlinetypes/TestValueConstruction…
mhaessig Jun 25, 2026
42fc9c9
8386999: [lworld] C2: assert(is_dead_loop_safe()) failed: shouldn't b…
rwestrel Jun 25, 2026
59019cf
8387192: [lworld] Review comment drop for core libs
liach Jun 25, 2026
b77db44
8387300: [lworld] Minor review comments in javac
liach Jun 25, 2026
6f7797c
8386963: [lworld] Improve the exception message from Object synchroni…
jaikiran Jun 25, 2026
f0a7ef2
Merge
MrSimms Jun 26, 2026
5ee106a
Merge remote-tracking branch 'valhalla/lworld' into 8317277
MrSimms Jun 26, 2026
cdbe55a
Merge branch '8317277' into jep401_sub_review_8317279
MrSimms Jun 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,12 @@ jobs:
echo 'true'
return
fi
# ...same for project branch
if [[ $BRANCH == "lworld" ]]; then
echo 'true'
return
fi
Comment on lines +173 to +178

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks like left over project specific logic that should probably be removed before integration into the jdk repo.

@dcubed-ojdk dcubed-ojdk Jun 2, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

See the following bug comment for my analysis:
https://bugs.openjdk.org/browse/JDK-8385743?focusedId=14884160&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14884160

This is the summary from that analysis:

If the 'lworld' branch is going to be retired when JEP-401 integrates, then
this change should also be removed OR it should be changed to the name
of the new branch for Valhalla follow-up work after JEP-401.

@lfoltan - What is the plan for the 'lworld' branch after JEP-401 integrates?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Discussed today, we'll likely freeze lworld at the point of integration, and do later development in other branches of the valhalla repository. (Not sure the implications for this file, but hope that helps.)

fi
echo 'false'
Expand Down
38 changes: 38 additions & 0 deletions doc/testing.html
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,44 @@ <h4 id="test_thread_factory">TEST_THREAD_FACTORY</h4>
<code>test/jtreg_test_thread_factory/</code> directory. This class gets
compiled during the test image build. The implementation of the Virtual
class creates a new virtual thread for executing each test class.</p>
<h4 id="value_class_plugin">VALUE_CLASS_PLUGIN</h4>
<p>Enables the <code>ValueClassPlugin</code> javac plugin when compiling
and running JTReg tests. This is a <strong>temporary mode</strong>
intended for use while value classes (JEP 401) are a preview feature.
The long-term plan is to replace classes annotated with
<code>@jdk.test.lib.valueclass.AsValueClass</code> with plain
<code>value class</code> declarations once value classes are
finalized.</p>
<p>In the meantime, this mode allows test sources to compile and run as
either value classes or regular identity classes without source-level
changes.</p>
<p>When set to any non-empty value, the following options are appended to
every JTReg invocation:</p>
<ul>
<li><code>-cpa:&lt;valueClassPlugin.jar&gt;</code> — appends the plugin
JAR to the compile-time classpath (only when the JAR is present in the
test image under
<code>jtreg_value_class_plugin/valueClassPlugin.jar</code>).</li>
<li><code>-vmoption:--enable-preview</code> — enables JVM preview
features at runtime.</li>
<li><code>-javacoption:-XDaccessInternalAPI</code> — grants the compiler
access to internal APIs required by the plugin.</li>
<li><code>-javacoption:--source &lt;version&gt; --enable-preview</code>
— enables preview language features at compile time.</li>
<li><code>-javacoption:-Xplugin:ValueClassPlugin</code> — activates the
plugin.</li>
</ul>
<p>The plugin scans each compilation unit after parsing and converts any
class annotated with
<code>@jdk.test.lib.valueclass.AsValueClass</code> into a value class by
setting the internal <code>VALUE_CLASS</code> modifier flag and clearing
the <code>IDENTITY_TYPE</code> flag. This transformation only takes
effect when <code>--enable-preview</code> is active; without it the
annotation is a no-op and the class compiles as an ordinary identity
class, so the same test source can exercise both code paths.</p>
<p>Example:</p>
<pre><code>$ make test TEST=jdk_lang JTREG="VALUE_CLASS_PLUGIN=true"
</code></pre>
<h4 id="jvmti_stress_agent">JVMTI_STRESS_AGENT</h4>
<p>Executes JTReg tests with JVM TI stress agent. The stress agent is
the part of test library and located in
Expand Down
36 changes: 36 additions & 0 deletions doc/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,42 @@ the `test/jtreg_test_thread_factory/` directory. This class gets compiled
during the test image build. The implementation of the Virtual class creates a
new virtual thread for executing each test class.

#### VALUE_CLASS_PLUGIN

Enables the `ValueClassPlugin` javac plugin when compiling and running JTReg
tests. This is a **temporary mode** intended for use while value classes
(JEP 401) are a preview feature. The long-term plan is to replace classes
annotated with `@jdk.test.lib.valueclass.AsValueClass` with plain
`value class` declarations once value classes are finalized.

In the meantime, this mode allows test sources to compile and run as either
value classes or regular identity classes without source-level changes.

When set to any non-empty value, the following options are appended to every
JTReg invocation:

* `-cpa:<valueClassPlugin.jar>` — appends the plugin JAR to the compile-time
classpath (only when the JAR is present in the test image under
`jtreg_value_class_plugin/valueClassPlugin.jar`).
* `-vmoption:--enable-preview` — enables JVM preview features at runtime.
* `-javacoption:-XDaccessInternalAPI` — grants the compiler access to internal
APIs required by the plugin.
* `-javacoption:--source <version> --enable-preview` — enables preview language
features at compile time.
* `-javacoption:-Xplugin:ValueClassPlugin` — activates the plugin.

The plugin scans each compilation unit after parsing and converts any class
annotated with `@jdk.test.lib.valueclass.AsValueClass` into a value class by
setting the internal `VALUE_CLASS` modifier flag and clearing the
`IDENTITY_TYPE` flag. This transformation only takes effect when
`--enable-preview` is active; without it the annotation is a no-op and the
class compiles as an ordinary identity class, so the same test source can
exercise both code paths.

Example:

$ make test TEST=jdk_lang JTREG="VALUE_CLASS_PLUGIN=true"

#### JVMTI_STRESS_AGENT

Executes JTReg tests with JVM TI stress agent. The stress agent is the part of
Expand Down
68 changes: 66 additions & 2 deletions make/CompileJavaModules.gmk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -30,6 +30,8 @@ include MakeFileStart.gmk
include JavaCompilation.gmk
include Modules.gmk

include CopyFiles.gmk

################################################################################
# If this is an imported module that has prebuilt classes, only compile
# module-info.java.
Expand Down Expand Up @@ -98,13 +100,15 @@ endif
################################################################################
# Setup the main compilation

COMPILATION_OUTPUTDIR := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules)

$(eval $(call SetupJavaCompilation, $(MODULE), \
SMALL_JAVA := false, \
MODULE := $(MODULE), \
SRC := $(wildcard $(MODULE_SRC_DIRS)), \
INCLUDES := $(JDK_USER_DEFINED_FILTER), \
FAIL_NO_SRC := $(FAIL_NO_SRC), \
BIN := $(if $($(MODULE)_BIN), $($(MODULE)_BIN), $(JDK_OUTPUTDIR)/modules), \
BIN := $(COMPILATION_OUTPUTDIR), \
HEADERS := $(SUPPORT_OUTPUTDIR)/headers, \
CREATE_API_DIGEST := true, \
CLEAN := $(CLEAN), \
Expand All @@ -126,6 +130,66 @@ $(eval $(call SetupJavaCompilation, $(MODULE), \

TARGETS += $($(MODULE))

################################################################################
# Setup compilation for preview classes in the module
# TBD: When $(DOCLINT) was included there was an NPE in JavacTypes.getOverriddenMethods

# Directory and file name suffix for jar file containing preview classes/resources.
PREVIEW_CLASSES_LABEL := preview
# Module relative path in which preview classes/resources are placed.
PREVIEW_PATH := META-INF/preview

MODULE_PREVIEW_SRC_DIRS := $(call FindModulePreviewSrcDirs, $(MODULE))
MODULE_PREVIEW_SOURCEPATH := $(call GetModulePreviewSrcPath)
ifneq ($(MODULE_PREVIEW_SRC_DIRS),)
# Compile preview classes into a separate directory, and then copy into the
# correct output path location. We cannot compile directly into the desired
# directory because it's the compiler which creates the original
# '<module>/<classpath>/...' hierarchy.
PREVIEW_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/$(PREVIEW_CLASSES_LABEL)
PATCH_COMMAND := $(MODULE)=$(call strip, $(COMPILATION_OUTPUTDIR)/$(MODULE))

$(eval $(call SetupJavaCompilation, $(MODULE)-$(PREVIEW_CLASSES_LABEL), \
SMALL_JAVA := false, \
MODULE := $(MODULE), \
SRC := $(wildcard $(MODULE_PREVIEW_SRC_DIRS)), \
INCLUDES := $(JDK_USER_DEFINED_FILTER), \
FAIL_NO_SRC := $(FAIL_NO_SRC), \
BIN := $(PREVIEW_OUTPUTDIR)/, \
DISABLED_WARNINGS := $(DISABLED_WARNINGS_java) preview, \
EXCLUDES := $(EXCLUDES), \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
KEEP_ALL_TRANSLATIONS := $(KEEP_ALL_TRANSLATIONS), \
DEPENDS := $($(MODULE)), \
JAVAC_FLAGS := \
$(JAVAC_FLAGS) \
--module-source-path $(MODULE_PREVIEW_SOURCEPATH) \
--module-path $(MODULEPATH) \
--patch-module $(PATCH_COMMAND) \
--system none \
--enable-preview -source $(JDK_SOURCE_TARGET_VERSION), \
))

# Don't add '$($(MODULE)-$(PREVIEW_CLASSES_LABEL))' to TARGETS (it's transient).
# The 'preview' target below depends on it, and that's the non-transient
# result we care about.

# Copy compiled output from "$(PREVIEW_OUTPUTDIR)/$(MODULE)/<classpath>/..."
# to "$(COMPILATION_OUTPUTDIR)/$(MODULE)/$(PREVIEW_PATH)/<classpath>/...".
MOD_SRC := $(PREVIEW_OUTPUTDIR)/$(MODULE)
MOD_DST := $(COMPILATION_OUTPUTDIR)/$(MODULE)

# NOTE: We cannot use '$(CP) -R $(MOD_SRC)/*/ ...' to select sub-directories (it
# does not work on MacOS/BSD). Use 'filter-out' to explicitly exclude marker files.
$(MOD_DST)/_the.$(MODULE).preview: $($(MODULE)-$(PREVIEW_CLASSES_LABEL))
$(RM) -r $(@D)/$(PREVIEW_PATH)
$(MKDIR) -p $(@D)/$(PREVIEW_PATH)
$(CP) -R $(filter-out $(MOD_SRC)/_%, $(wildcard $(MOD_SRC)/*)) $(@D)/$(PREVIEW_PATH)
$(TOUCH) $@

TARGETS += $(MOD_DST)/_the.$(MODULE).preview
endif

# Declare dependencies between java compilations of different modules.
# Since the other modules are declared in different invocations of this file,
# use the macro to find the correct target file to depend on.
Expand Down
3 changes: 2 additions & 1 deletion make/Docs.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,10 @@ JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio

# The initial set of options for javadoc
JAVADOC_OPTIONS := -use -keywords -notimestamp \
JAVADOC_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
-serialwarn -encoding utf-8 -docencoding utf-8 -breakiterator \
-splitIndex --system none -javafx --expand-requires transitive \
--enable-preview -source $(JDK_SOURCE_TARGET_VERSION) \
--override-methods=summary

# The reference options must stay stable to allow for comparisons across the
Expand Down
49 changes: 27 additions & 22 deletions make/Images.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -138,74 +138,79 @@ CDS_DUMP_FLAGS = -Xmx128M -Xms128M
#
# Param1 - VM variant (e.g., server, client, zero, ...)
# Param2 - _nocoops, _nocoh, _nocoops_nocoh, or empty
# Param3 - _preview, or empty
define CreateCDSArchive
$1_$2_COOPS_OPTION := $(if $(findstring _nocoops, $2),-XX:-UseCompressedOops)
# enable and also explicitly disable coh as needed.
ifeq ($(call isTargetCpuBits, 64), true)
$1_$2_NOCOH_OPTION := -XX:+UnlockExperimentalVMOptions \
$(if $(findstring _nocoh, $2),-XX:-UseCompactObjectHeaders,-XX:+UseCompactObjectHeaders)
endif
$1_$2_DUMP_EXTRA_ARG := $$($1_$2_COOPS_OPTION) $$($1_$2_NOCOH_OPTION)
$1_$2_DUMP_TYPE := $(if $(findstring _nocoops, $2),-NOCOOPS,)$(if $(findstring _nocoh, $2),-NOCOH,)
$1_$2_$3_DUMP_EXTRA_ARG := $$($1_$2_COOPS_OPTION) $$($1_$2_NOCOH_OPTION) $(if $(findstring _preview, $3), --enable-preview,)
$1_$2_$3_DUMP_TYPE := $(if $(findstring _nocoops, $2),-NOCOOPS,)$(if $(findstring _nocoh, $2),-NOCOH,)$(if $(findstring _preview, $3),-PREVIEW,)

$1_$2_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC)
$1_$2_$3_CDS_DUMP_FLAGS := $(CDS_DUMP_FLAGS) $(if $(filter g1gc, $(JVM_FEATURES_$1)), -XX:+UseG1GC)

ifeq ($(OPENJDK_TARGET_OS), windows)
$1_$2_CDS_ARCHIVE := bin/$1/classes$2.jsa
$1_$2_$3_CDS_ARCHIVE := bin/$1/classes$2$3.jsa
else
$1_$2_CDS_ARCHIVE := lib/$1/classes$2.jsa
$1_$2_$3_CDS_ARCHIVE := lib/$1/classes$2$3.jsa
endif

ifneq ($(COMPARE_BUILD), )
DEBUG_CDS_ARCHIVE := true
endif

ifeq ($(DEBUG_CDS_ARCHIVE), true)
$1_$2_CDS_DUMP_FLAGS += -Xlog:aot+map*=trace:file=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE).cdsmap:none:filesize=0
$1_$2_$3_CDS_DUMP_FLAGS += -Xlog:aot+map*=trace:file=$$(JDK_IMAGE_DIR)/$$($1_$2_$3_CDS_ARCHIVE).cdsmap:none:filesize=0
endif

$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jdk, \
WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jdk image for $1, \
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
$$(eval $$(call SetupExecute, $1_$2_$3_gen_cds_archive_jdk, \
WARN := Creating CDS$$($1_$2_$3_DUMP_TYPE) archive for jdk image for $1, \
INFO := Using CDS flags for $1: $$($1_$2_$3_CDS_DUMP_FLAGS), \
DEPS := $$(jlink_jdk), \
OUTPUT_FILE := $$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
OUTPUT_FILE := $$(JDK_IMAGE_DIR)/$$($1_$2_$3_CDS_ARCHIVE), \
SUPPORT_DIR := $$(JDK_IMAGE_SUPPORT_DIR), \
COMMAND := $$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java -Xshare:dump \
-XX:SharedArchiveFile=$$(JDK_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
-XX:SharedArchiveFile=$$(JDK_IMAGE_DIR)/$$($1_$2_$3_CDS_ARCHIVE) \
-$1 $$($1_$2_$3_DUMP_EXTRA_ARG) $$($1_$2_$3_CDS_DUMP_FLAGS) $$(LOG_INFO), \
))

JDK_TARGETS += $$($1_$2_gen_cds_archive_jdk)
JDK_TARGETS += $$($1_$2_$3_gen_cds_archive_jdk)

$$(eval $$(call SetupExecute, $1_$2_gen_cds_archive_jre, \
WARN := Creating CDS$$($1_$2_DUMP_TYPE) archive for jre image for $1, \
INFO := Using CDS flags for $1: $$($1_$2_CDS_DUMP_FLAGS), \
$$(eval $$(call SetupExecute, $1_$2_$3_gen_cds_archive_jre, \
WARN := Creating CDS$$($1_$2_$3_DUMP_TYPE) archive for jre image for $1, \
INFO := Using CDS flags for $1: $$($1_$2_$3_CDS_DUMP_FLAGS), \
DEPS := $$(jlink_jre), \
OUTPUT_FILE := $$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE), \
OUTPUT_FILE := $$(JRE_IMAGE_DIR)/$$($1_$2_$3_CDS_ARCHIVE), \
SUPPORT_DIR := $$(JRE_IMAGE_SUPPORT_DIR), \
COMMAND := $$(FIXPATH) $$(JRE_IMAGE_DIR)/bin/java -Xshare:dump \
-XX:SharedArchiveFile=$$(JRE_IMAGE_DIR)/$$($1_$2_CDS_ARCHIVE) \
-$1 $$($1_$2_DUMP_EXTRA_ARG) $$($1_$2_CDS_DUMP_FLAGS) $$(LOG_INFO), \
-XX:SharedArchiveFile=$$(JRE_IMAGE_DIR)/$$($1_$2_$3_CDS_ARCHIVE) \
-$1 $$($1_$2_$3_DUMP_EXTRA_ARG) $$($1_$2_$3_CDS_DUMP_FLAGS) $$(LOG_INFO), \
))

JRE_TARGETS += $$($1_$2_gen_cds_archive_jre)
JRE_TARGETS += $$($1_$2_$3_gen_cds_archive_jre)
endef

ifeq ($(BUILD_CDS_ARCHIVE), true)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,)) \
$(eval $(call CreateCDSArchive,$v,,)) \
$(eval $(call CreateCDSArchive,$v,,_preview)) \
)

ifeq ($(call isTargetCpuBits, 64), true)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_nocoops)) \
$(eval $(call CreateCDSArchive,$v,_nocoops,)) \
$(eval $(call CreateCDSArchive,$v,_nocoops,_preview)) \
)
ifeq ($(BUILD_CDS_ARCHIVE_NOCOH), true)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_nocoh)) \
$(eval $(call CreateCDSArchive,$v,_nocoh,_preview)) \
)
$(foreach v, $(JVM_VARIANTS), \
$(eval $(call CreateCDSArchive,$v,_nocoops_nocoh)) \
$(eval $(call CreateCDSArchive,$v,_nocoops_nocoh,_preview)) \
)
endif
endif
Expand Down
16 changes: 16 additions & 0 deletions make/Main.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -794,6 +794,20 @@ ifeq ($(BUILD_JTREG_TEST_THREAD_FACTORY), true)
))
endif

# Builds the value class plugin jtreg extension (JEP 401)
$(eval $(call SetupTarget, build-test-value-class-plugin, \
MAKEFILE := test/BuildJtregValueClassPlugin, \
TARGET := build, \
DEPS := interim-langtools exploded-image, \
))

# Copies the value class plugin into the test image
$(eval $(call SetupTarget, test-image-value-class-plugin, \
MAKEFILE := test/BuildJtregValueClassPlugin, \
TARGET := images, \
DEPS := build-test-value-class-plugin, \
))

$(eval $(call SetupTarget, build-microbenchmark, \
MAKEFILE := test/BuildMicrobenchmark, \
DEPS := interim-langtools exploded-image build-test-lib, \
Expand Down Expand Up @@ -1310,6 +1324,8 @@ ifeq ($(BUILD_JTREG_TEST_THREAD_FACTORY), true)
test-image: test-image-test-thread-factory
endif

test-image: test-image-value-class-plugin

Comment on lines +1327 to +1328

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This could be moved to line 1303-1306 where all the other non conditional prereqs for test-image are declared.

ifneq ($(JMH_CORE_JAR), )
test-image: build-microbenchmark
endif
Expand Down
3 changes: 2 additions & 1 deletion make/MainSupport.gmk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -107,6 +107,7 @@ define Clean-java
@$(PRINTF) "Cleaning java %s..." "$(if $1,for $(strip $1) )"
@$(ECHO) "" $(LOG_DEBUG)
$(RM) -r $(JDK_OUTPUTDIR)/modules/$(strip $1)
$(RM) -r $(SUPPORT_OUTPUTDIR)/preview/$(strip $1)
$(RM) -r $(SUPPORT_OUTPUTDIR)/special_classes/$(strip $1)
$(ECHO) " done"
$(PRINTF) "Cleaning headers %s..." "$(if $1,for $(strip $1) )"
Expand Down
19 changes: 18 additions & 1 deletion make/RunTests.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ JTREG_FAILURE_HANDLER := $(JTREG_FAILURE_HANDLER_DIR)/jtregFailureHandler.jar
JTREG_TEST_THREAD_FACTORY_DIR := $(TEST_IMAGE_DIR)/jtreg_test_thread_factory
JTREG_TEST_THREAD_FACTORY_JAR := $(JTREG_TEST_THREAD_FACTORY_DIR)/jtregTestThreadFactory.jar

JTREG_VALUE_CLASS_PLUGIN_DIR := $(TEST_IMAGE_DIR)/jtreg_value_class_plugin
JTREG_VALUE_CLASS_PLUGIN_JAR := $(JTREG_VALUE_CLASS_PLUGIN_DIR)/valueClassPlugin.jar

JTREG_FAILURE_HANDLER_TIMEOUT ?= 0

ifneq ($(wildcard $(JTREG_FAILURE_HANDLER)), )
Expand Down Expand Up @@ -206,7 +209,7 @@ $(eval $(call ParseKeywordVariable, JTREG, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY JVMTI_STRESS_AGENT \
MAX_MEM RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT \
AOT_JDK MANUAL $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
AOT_JDK MANUAL VALUE_CLASS_PLUGIN $(CUSTOM_JTREG_SINGLE_KEYWORDS), \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

When adding a new option for testing, please add documentation describing what it is and what it does in doc/testing.[md|html]. It's pretty obvious this has to do with value classes testing, but what does using the plugin actually do? Is the option name VALUE_CLASS_PLUGIN well suited for the purpose? By that I mean, is the important part that we are using a plugin, or that we are testing value classes, or something else?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This guy runs by replacing some classes used in some collection tests with a value class version. @bwhuang-us what do you think of this?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sure, I will update the testing documentation.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

See the following bug comment for my analysis:
https://bugs.openjdk.org/browse/JDK-8385743?focusedId=14885769&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14885769

Summary: This issue is resolved by the fix for JDK-8385601.

STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
$(CUSTOM_JTREG_STRING_KEYWORDS), \
Expand Down Expand Up @@ -877,6 +880,20 @@ define SetupRunJtregTestBody
))
endif

ifneq ($$(JTREG_VALUE_CLASS_PLUGIN), )
ifneq ($$(wildcard $$(JTREG_VALUE_CLASS_PLUGIN_JAR)), )
$1_JTREG_BASIC_OPTIONS += -cpa:$$(JTREG_VALUE_CLASS_PLUGIN_JAR)
endif
$1_JTREG_BASIC_OPTIONS += -vmoption:--enable-preview
$1_JTREG_BASIC_OPTIONS += -javacoption:-XDaccessInternalAPI
$1_JTREG_BASIC_OPTIONS += -javacoption:--source -javacoption:$(VERSION_FEATURE)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this really necessary? Wouldn't the current feature version be the default value for --source, or is there some interaction with --enable-preview that requires it to be paired with --source?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yes, I think it is necessary. javac may default to the current source level normally, but once --enable-preview is present, javac requires the source level to be explicit. Otherwise it exits with:

error: --enable-preview must be used with either -source or --release

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

$1_JTREG_BASIC_OPTIONS += -javacoption:--enable-preview
$1_JTREG_BASIC_OPTIONS += -javacoption:-Xplugin:ValueClassPlugin
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
$$(addprefix $$($1_TEST_ROOT)/, ProblemList-ValueClass.txt) \
))
endif

ifneq ($$(JTREG_JVMTI_STRESS_AGENT), )
AGENT := $$(LIBRARY_PREFIX)JvmtiStressAgent$$(SHARED_LIBRARY_SUFFIX)=$$(JTREG_JVMTI_STRESS_AGENT)
$1_JTREG_BASIC_OPTIONS += -javaoption:'-agentpath:$(TEST_IMAGE_DIR)/hotspot/jtreg/native/$$(AGENT)'
Expand Down
Loading