-
Notifications
You must be signed in to change notification settings - Fork 77
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
Allow clients to implement large hash arrays without a collection-rehash feedback loop in the public MPS #230
Conversation
I think it would be worth writing a test case for this. It would need to create hash tables using LDs and other objects, then provoke and detect the case where the rehashing goes into a loop. It's quite a subtle test, and I don't think we should do it for version 1.118. Perhaps raise an issue. Also, check the MMQA suite and the custom/cet branch for relevant stuff. We can and should reproduce it in CET. It might be an example of a test that could be implemented neatly in the Scheme interpreter. Note: #247 |
Executing proc.review.entry
|
paused 20:10 |
resuming 2124 |
Entry took ~1h (but included writing up issues that arose with the entry criteria) |
Executing proc.review.plan
|
The source documents for this review are: What is to be reviewed:
Rules |
There is nothing noted for proc.review.plan.schedule. I realise we arranged this in advance, but you should record it. From the invitation:
|
Here is proc.review.check for checkers |
Beginning proc.review.ko at 1304 |
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.
Executing proc.review.check
- Start time 13:20.
- Checked out branch and ran
make test
on my machine (lii6gc) without issue. - Also built the manual with
make -C manual clean html
without issue. - Checked the manual and the header changes.
- Checking existing hash arrays code in poolamc.c.
- m. https://github.com/Ravenbrook/mps/blob/branch/2023-05-31/hash-arrays/code/poolamc.c#L516 pointless comment.
- M. https://github.com/Ravenbrook/mps/blob/branch/2023-05-31/hash-arrays/code/poolamc.c#L961-L962 "defer the size accounting" with what intention? (Could refer to design.mps.strategy section.) rule.generic.clear [Please see https://github.com/Hash arrays mechanism is not general #233#issuecomment-1580131391 when editing this. RB 2023-05-07]
- Finished checking for logging meeting 13:50.
- Found 1M 6m 1q.
M1 this issue does not link to documentation for the original requirement which seems to be here: https://www.ravenbrook.com/project/mps/issue/job003435/ Fix: added link in #230 description above M2 This feature is not tested (stress, correctness or regression). This job describes the lack of stress testing: https://www.ravenbrook.com/project/mps/issue/job003963/ Raise: #247 comment1: nice improvements to the documentation noted in the past could be relevant https://www.ravenbrook.com/project/mps/issue/job004109/ Raise: #249 |
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.
My only comment is that the mechanism that setting
MPS_KEY_AP_HASH_ARRAYS to true uses to not contribute to nursery space
is not described. But perhaps it is correct that implementation
details (which could change) are not discussed.
Raise: #249
We can update the Perforce fixes to link this to the hash arrays implementation as well. |
NQ. Is ramping required? If not we could deprecate or remove it. |
Editing may involve updating and tagging design.mps.strategy so I suggest the editor also take note of Lines 565 to 567 in 8be637f
|
Brainstorming started at 1505 PI: @UNAA008 suggests that 5 mins brainstorming each defect isn't always enough. |
Answer: @thejayps please check this for Configura, but I think this is a good requirement to keep, on reflection.
Answer: Ramping is documented in the Allocation Patterns topic of the manual. |
Begin proc.review.edit
|
from #230 (review) Fix: deleted comment in commit |
editing paused at 1815 |
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.
documenting proc.review.edit
Answer to @rptb1: see https://info.ravenbrook.com/mail/2023/06/15/20-56-30/0/ |
Raise: #249 |
from #230 (comment) pass: @rptb1 Assigning PR to @rptb1 and PR should remain "pending" |
executing proc.review.exit
|
executing proc.merge.pull-request (currently in #228)
|
Merge resumed and completed at 1935 |
Fixing up merge mistakes by catching up from master, re-merging, and force-pushing to master. See #253 for prevention. |
Provides a solution to issue #215
Progress towards resolving #110
This isn't the nicest way to solve the problem, but so far it works well for Confifura who have encountered the issue.
Part of the plan to meet Configura's requirements by separating and reviewing each implementation.
This branch cherry-picks and edits #76 to only include the "hash array" feature.
Documentation for the original requirement is here: https://www.ravenbrook.com/project/mps/issue/job003435/