-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8330465: Stable Values and Collections (Internal) #18794
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
Closed
Closed
Changes from all commits
Commits
Show all changes
194 commits
Select commit
Hold shift + click to select a range
736c1d0
Add Monotonic
minborg adbf658
Merge branch 'master' into monotonic
minborg d866efd
Fix failing test
minborg 8b7e701
Add method
minborg 2422c40
Add computeIfUnbound(MH)
minborg 2352c7b
Add various variants
minborg 5d6b25f
Use List<V> directly
minborg 1a82c01
Improve List implementation
minborg 931a3bd
Add benchmaks and more
minborg 9c6ee52
Clean up
minborg 91e6110
Fix javadocs
minborg 536685a
Add tests and fix failing tests
minborg b798c1c
Remove special types and add a Monotonics class
minborg d7e78fe
Update JEP examples
minborg 42baadb
Fix JepDemo issue
minborg f6bea1d
Refactor
minborg a1f5772
Update specifications
minborg 83e872c
Merge branch 'master' into monotonic4
minborg f3b2313
Use static imports for Util class
minborg a83ab90
Improve tests and fix issues
minborg 8ce0b8e
Add tests
minborg 0b281d9
Rework Monotonics
minborg 69b6c77
Update Monotonics specifications
minborg 32f1e73
Update specifications for Monotonic
minborg 95fd727
Fix snippets
minborg 3d7bd9c
Fix javadoc
minborg 6b3fa81
Fix additional JavaDoc
minborg 616562c
Improve performance by duplicating code
minborg da17443
Try to improve list perfomance
minborg 0df725f
Update list benchmarks
minborg bf36937
Update Monotonics::asMemoized docs
minborg 1b5aa66
Merge branch 'master' into monotonic4
minborg 2f9f45f
Add annotation to benchmarks
minborg d20a44a
Update JEP
minborg 68b7d04
Update JEP
minborg 9c84115
More updates to the JEP
minborg 109f9c3
Update JEP
minborg 2ede3f6
Fix typos in Jep
minborg 851ea0f
Update API and JEP after discussion
minborg 708416d
Update methods and JEP
minborg 0c25010
Update API slighly
minborg bd4f714
Fix failing tests
minborg 5495d18
Update JEP
minborg c8f9f27
Merge branch 'master' into monotonic4
minborg 045f2f7
Rename to Lazy
minborg b108a2b
Update JEP
minborg 3aba33f
Improve on the JEP
minborg ffc32c4
Improve JEP
minborg 1b805e7
Improve JEP
minborg 653000c
Refine JEP
minborg 94c7870
Update Lazy description
minborg 1fff88c
Update Javadocs
minborg 544ad9e
Update preview feature name
minborg 9408a0d
Update JEP links
minborg 1f2d27a
Clarify methods
minborg 4bded05
Update JEP
minborg a20c33d
Update link in JEP
minborg 4d11ffe
Merge branch 'master' into monotonic5
minborg 9da90d3
Add benchmark figures
minborg 855d18c
Rename and move factories
minborg 8f15ec6
Improve JEP
minborg 2fe5b42
Update spec and JEP
minborg be7411d
Update final text in JEP
minborg dd047d9
Update JEP
minborg 76c0c25
Update the first example in the JEP
minborg efb2016
Update text after example change
minborg 6d15410
Update invoke-at-once text
minborg 21fa6b3
Change to blocking Lazy
minborg 7532c15
Tidy up
minborg 86b8266
Update JEP
minborg 152c028
Update benchmark
minborg da73f66
Add a delegated lazy and update benchmarks
minborg 777d0f5
Update benchmarks
minborg aba54b3
Refactor to L<L<V>>
minborg 4482099
Fix lazy map
minborg 5bc48da
Add lazy enum map
minborg c0b9ab5
Improve JEP
minborg b721920
Merge master
minborg 9c0d9d9
Update JEP
minborg 13fcdb2
Fix missing parentheses
minborg 66ecc0f
Remove unused factories in JEP
minborg c9bd25d
Pretty JEP
minborg 62d5685
Rename to LazyValue
minborg 4868103
Fix benchmark
minborg 04fb7cb
Update JEP
minborg 0ad2af5
Fix language issues in JEP
minborg ac46e7a
Update tests and JEP
minborg d777abc
Add note on production environments
minborg 4107f64
Rename to StableValue
minborg a124b7c
Merge branch 'master' into stable-value
minborg 7493afb
Merge branch 'master' into stable-value
minborg 9e41db8
Clean up
minborg 44062da
Do additional clean up operations
minborg d29a761
Rename constant in ciField.cpp
minborg 5a7846e
Fix tests and benchmarks
minborg 53679fa
Tighten up accessability
minborg 991abf7
Rename internal interface
minborg 361d211
Clean up
minborg c2c7968
Remove commented code
minborg 8ee1676
Change klass name to internal
minborg 539ae47
Revert change in AccessibleObject
minborg 568d58a
Reinstate method
minborg 2ce301b
Improve comments and use a zero lenght List if size is zero
minborg 93a3d2b
Remove trailing spaces
minborg 0067bab
Add memoized factories and fix error in a test
minborg 02a347b
Remove trailing space
minborg a776ba8
Update JepDemo
minborg ec9a90c
Merge branch 'master' into stable-value
minborg d76c4d4
Update JepExamples and fix two bugs
minborg fbbf869
Ensure invoke-at-most-once invariants
minborg 9f9d54e
Update src/java.base/share/classes/java/lang/reflect/AccessibleObject…
minborg 7211d3c
Add freeze operations
minborg e5ba63d
Merge branch 'stable-value' of https://github.com/minborg/jdk into st…
minborg 718d41e
Fix thread issue
minborg 67db32b
Merge branch 'master' into stable-value
minborg a59e0f8
Use 8 threads for accessing in a benchmark
minborg 008f040
Remove benchmark figures
minborg d8a9f33
Add BiFunction to lambdas
minborg e73b154
Break out tests in separate classes
minborg 11b3258
Try improving performance and rename fields
minborg 31051ac
Use pattern matching instead of applying functions
minborg 77759d5
Rename variable and simplify type parameter
minborg 4d106db
Use internal mutex
minborg 7d177ca
Fix typo
minborg 59b6748
Always check final fields of type StableValue
minborg 0c17887
Use BlackHole and always use int values
minborg f2e5f3e
Make StableValue a bit more vague about VM optimizations
minborg 4a1040d
Make promises vaguer for stable collections too
minborg 5237df9
Use a ThreadFactory to create new background threads
minborg cdb728d
Actually benchmark under contention
minborg ff3d776
Improve StableValueElement performance
minborg 5eea3bb
Create separate benchmarks for stable value
minborg 0da5095
Update benchmarks
minborg eb361d7
Merge branch 'master' into stable-value
minborg c73ad3a
Rename benchmarks
minborg 8529927
Use loops for benchmarks
minborg a5c9e22
Update docs for ofBackground()
minborg 7a16dde
Add benchmark for stable holding an immutable list
minborg 233e5e7
Reduce the number of loops in a benchmark
minborg 441098a
Check for recursive invocation
minborg 015a9e8
Correct recrursive docs and add recursive test
minborg 78cc2e2
Add array abstraction
minborg 8209e79
Add test
minborg e2b0d60
Wip
viktorklang-ora c189307
Merge pull request #5 from viktorklang-ora/stable-value
minborg e854488
Merge branch 'master' into stable-value
minborg 10dea16
Update docs for trySet
minborg 9a12066
Add state ERROR for compute errors
minborg 3dff727
Remove mutex after use
minborg 21cf963
Use final declarations
minborg 493c5e7
Improve benchmarks
minborg 400b1b9
Abstract aux arrays
minborg f6a5652
wip Arrays
minborg 6196fe4
Merge branch 'master' into stable-value
minborg 3ebd886
Merge branch 'master' into stable-value
minborg e8e0b3f
Update after comments
minborg 95a33e7
Update affter additional code comments
minborg 4ed9c06
Add linked list with record test
minborg ee5fb04
Make arrays trusted too
minborg 8848e5d
Change benchmarks to throughput
minborg 431cf30
Record errors
minborg 317df1c
Swap parameter order and add tests
minborg 48fe8cd
Add tests
minborg df17bc5
Clean up tests
minborg 4d37870
Improve array test
minborg 14b04dc
Add a marker interface TrustedFieldType
minborg 752b9da
Change class types
minborg d57e4d7
Add methods to create generic arrays
minborg ec6da51
Fix error in hash code
minborg 946d89e
Update sun.misc.Unsafe
minborg ed2ea70
Rework the creation of StableEnumMaps
minborg 5d5dcce
Merge branch 'master' into stable-value
minborg d7c3158
Remove text in public class that references an internal class
minborg 7db1101
Add delegation to the thread's exception handler
minborg c92b16c
Revise docs for ofBackground()
minborg 2b840e0
Switch to monomorphic StableValue and use lazy arrays
minborg befb275
Simplify exception handling and add benchmarks
minborg b845c58
Rename memoized factories
minborg d8875db
Rework the way compute invocation is recorded
minborg 5a1d3b9
Share code paths
minborg 058cfdd
Add comment on security precaution
minborg 80b7e08
Use byte for storing state and compute flags
minborg 923e187
Update src/java.base/share/classes/jdk/internal/lang/stable/StableAcc…
minborg b40ebfa
Clean up
minborg 2a9043e
Update null benchmarks
minborg dbbefea
Cleanup switch rakes
minborg 3e1ab5e
Improve toString and simplify offset calculations
minborg 2af0168
Simplify background thread handling
minborg ec7c92c
Fix copyringht issues
minborg 35c9252
Declare field final
minborg 0f798a7
Simplify StableList
minborg dd0ceaf
Update ofList and ofMap docs
minborg 7ecf512
Add benchmark for memoized supplier
minborg 7beab36
Add benchmarks for memoized IntFunction and Function
minborg File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a better way of doing this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do we check if the type implements
TrustedFieldType
in C?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible for us to just look at strict fields from valhalla, so we can reliably constant-fold those strict final fields? https://cr.openjdk.org/~jrose/jls/constructive-classes.html