-
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
Make extension callbacks part of the public MPS #213
Conversation
* Move type and macro declarations to the public header mps.h. * Move documentation to appropriate sections of manual. (cherry picked from commit b928fa2)
We call the extended callback in VMArenaCreate so that the primary chunk is registered Line 723 in 9919050
but we don't call contracted when chunks are destroyed by VMArenaDestroy That seems inconsistent. Note that although VMArenaDestroy destroys all chunks Lines 777 to 780 in 9919050
it's not vmChunkDestroy that calls contracted. That's only called by vmChunkCompact. Lines 1239 to 1240 in 9919050
We should consider the effect of changing this behaviour on existing clients. |
So, VMChunkCreate (which should be named vmChunkCreate) is called from two places:
We explicitly call the extended callback in both cases. vmChunkDestroy (correctly named) is called from:
We explicitly call the contracted callback only in vmChunkCompact. It seems likely to me that we can call the extended and contracted callbacks from VMChunkCreate and vmChunkDestroy only, simplifying the code and eliminating the possibility of this inconsistency recurring. |
This avoids the issue #210 Also increase the number of test objects by *10 to make it more likely the arena will decide to contract. Also comment out some printfs in the interrupt context, to avoid messy output. Also fix some typos in comments
In the test extcon.c we observed on Rockhopper that the arena would mostly extend 50 times with the current test setup, but sometimes only 34 times. This seems odd and needs further investigation. |
…ings in extcon.c.
…es, to try to diagnose intermittent failures in CI.
…he stack, since the testobj array is now a static and not comparible.
Executing proc.review.entry
|
…mt. Also disable code relating to stack roots. Also replaces deprecated root_table. Add comments
Executing proc.review.plan
|
executing proc.review.kickoff Link to rules directory for checkers. All rules documents except rule.code.python.rst |
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 review task was to check extcon.c.
I spent a total of 1 hour doing this.
Here are my comments:
m Copyright date in header inconsistent with that in footer.
[Fix: Updated leader comment in 2833d45 .]
q .limitation on not checking numbers of extensions and contractions.
Is this a dangerous omission?
[Answer: Not very dangerous. The test could be altered to use manual allocation and try to correlate allocations and frees with extensions and contractions, as a form of white box testing. Raise #234 .]
m An explanantion of why dylan interfaces are being used would be useful
(line 28 is the first mention)
[Fix: Added explanation in 2833d45 .]
m Not all of the #if 0 exclusions have comments to explain them.
I would prefer to see them marked so that it is obvious when they
can be removed.
[Ignore: duplicate issue already fixed.]
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.
4 minor defects found during logging.
Begin logging at 1313 @UNAA008: 30mins + 30mins checking so far, found 3 minor issues and has a question. @thejayps introduces major issue Note: unresolved .new.major defect raised by @rptb1 has been responded to here #213 (comment) |
Begin brainstorming started at 1425
|
Executing proc.review.edit Start time 2023/05/23 0031 |
Updated documentation in arena.rst to reflect current behaviour. |
Paused proc.review.edit Commit of changes so far: b8ac0d1 Pause time 2023/05/23 0204 |
… it is called when the arena is destroyed.
Executing [proc.review.exit] (https://github.com/Ravenbrook/mps/blob/586336a7021c2276a3f798ad10e6e4ab5f438226/procedure/review.rst)
Fixed: in fb93d86 where callbacks were redesigned to be more consistent, and documentation was updated. |
exit.universal.imp.issue : #236 .exit paused at 2140 |
Resuming .exit at 1030 Total time for exit: 85 mins |
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.
exit.pass at 1316
Estimates (person mins) .calc.defects-remaining: 0-1 see calc here |
Executing proc.merge.pull-request from #228
|
Fixes #212 .
Progress towards resolving #110 .
Part of the plan to meet Configura's requirements by separating and reviewing each implementation.
This branch cherry-picks and edits b928fa2 from #76 to only include the arena extension callback feature.