Gareth Rees
52d6325133
New pool method poolsegpoolgen gets the pool generation for a segment. (this allows the segment whiten and reclaim methods not to need to know the pool class.)
...
Copied from Perforce
Change: 193084
ServerID: perforce.ravenbrook.com
2017-03-31 13:28:25 +01:00
Gareth Rees
a697ef913f
Move alignshift to pool structure allows us to eliminate duplicate code between awl and lo.
...
Copied from Perforce
Change: 193071
ServerID: perforce.ravenbrook.com
2017-03-31 08:41:14 +01:00
Gareth Rees
d4a68602ff
Changing segnowalk to segtrivwalk avoids the need for attrfmt (now we can walk all segments).
...
Copied from Perforce
Change: 193044
ServerID: perforce.ravenbrook.com
2017-03-30 10:18:22 +01:00
Gareth Rees
2ffd832103
Move access method from pool class to segment class.
...
Copied from Perforce
Change: 193039
ServerID: perforce.ravenbrook.com
2017-03-30 09:55:37 +01:00
Gareth Rees
a400239f7e
Move walk method from pool class to segment class.
...
Copied from Perforce
Change: 193028
ServerID: perforce.ravenbrook.com
2017-03-30 08:54:35 +01:00
Gareth Rees
b7a490ae32
Move fix and fixemergency methods from pool class to segment class.
...
Copied from Perforce
Change: 193023
ServerID: perforce.ravenbrook.com
2017-03-30 08:09:14 +01:00
Gareth Rees
9734df3505
Remove unused fixclosure field from trace and scanstate structures.
...
Copied from Perforce
Change: 193018
ServerID: perforce.ravenbrook.com
2017-03-30 07:14:10 +01:00
Gareth Rees
00a4ade456
Move scan method from pool class to segment class.
...
Copied from Perforce
Change: 193012
ServerID: perforce.ravenbrook.com
2017-03-29 19:17:17 +01:00
Gareth Rees
db5db0a9f3
Move reclaim method from pool class to segment class.
...
Copied from Perforce
Change: 193007
ServerID: perforce.ravenbrook.com
2017-03-29 17:13:45 +01:00
Gareth Rees
07adf64ebb
Move whiten method from pool class to segment class.
...
Copied from Perforce
Change: 193002
ServerID: perforce.ravenbrook.com
2017-03-29 16:22:14 +01:00
Gareth Rees
47a1715c2d
Move greyen method from pool class to segment class.
...
Copied from Perforce
Change: 192997
ServerID: perforce.ravenbrook.com
2017-03-29 15:58:32 +01:00
Gareth Rees
1dc5ac742a
Move the blacken method from the pool class to the segment class.
...
Copied from Perforce
Change: 192994
ServerID: perforce.ravenbrook.com
2017-03-29 15:32:17 +01:00
Gareth Rees
148f538510
Merge design.mps.class-interface into design.mps.pool (as suggested by pekka p. pirinen on 1999-07-20).
...
Bring pool class method descriptions up to date.
Document bufferClass, bufferFill, bufferEmpty, totalSize, freeSize methods.
Document generic instance methods at design.mps.protocol.method.
Copied from Perforce
Change: 192642
ServerID: perforce.ravenbrook.com
2016-10-19 15:34:35 +01:00
Gareth Rees
79d301f528
Cherry-pick change 192595 from custom/cet/main, removing mps_addr_object. this function failed to solve the problem of decoding the stack on 64-bit windows, because the stack may need to be decoded after an mps assertion failure, in which case the arena lock is held and mps_addr_object cannot be called. we eventually solved the problem in a different way (using mps_arena_postmortem) and mps_addr_object is no longer used.
...
Copied from Perforce
Change: 192637
ServerID: perforce.ravenbrook.com
2016-10-19 14:13:38 +01:00
Gareth Rees
587a3efb20
Remove unused pool class methods tracebegin and traceend.
...
Remove unused event AMCTraceEnd.
The fixEmergency method must have the same type as the fix method because of how they are used.
Copied from Perforce
Change: 192636
ServerID: perforce.ravenbrook.com
2016-10-19 14:07:20 +01:00
Gareth Rees
4a5bfd071a
Bring design.mps.message up to date and move it from old to current.
...
Copied from Perforce
Change: 192625
ServerID: perforce.ravenbrook.com
2016-10-18 22:35:13 +01:00
Gareth Rees
d8c32f0d3f
New functions mps_arena_busy and mps_arena_postmortem, plus test coverage.
...
Copied from Perforce
Change: 192247
ServerID: perforce.ravenbrook.com
2016-09-08 13:55:43 +01:00
Gareth Rees
7473718e0a
Catch-up merge from master sources to branch/2016-04-13/mortality.
...
Copied from Perforce
Change: 192192
ServerID: perforce.ravenbrook.com
2016-09-05 16:17:04 +01:00
Gareth Rees
331ec20beb
Catch-up merge from master sources to branch/2016-04-12/job004000.
...
Copied from Perforce
Change: 192187
ServerID: perforce.ravenbrook.com
2016-09-05 16:01:17 +01:00
Gareth Rees
c07c5d6b8f
Catch-up merge from the master sources to branch/2016-04-23/inst-methods.
...
Copied from Perforce
Change: 192176
ServerID: perforce.ravenbrook.com
2016-09-05 15:31:34 +01:00
Gareth Rees
baf2277b30
Catch-up merge from the master sources.
...
Copied from Perforce
Change: 192170
ServerID: perforce.ravenbrook.com
2016-09-05 15:21:33 +01:00
Gareth Rees
6f196185a1
Make shield assertions robust against deep checking -- when shieldcover is called from shieldraise there is one unsynced segment that has not yet been queued. record this fact in a new queuepending flag in the shield structure.
...
Remove incorrect shield assertion "shield->depth == 0 || shield->suspended" -- depth may be increased without suspending the mutator if the segment did not need protecting.
Copied from Perforce
Change: 191812
ServerID: perforce.ravenbrook.com
2016-05-03 17:25:27 +01:00
Richard Brooksby
e26f0b64e5
Replacing segbuffer with version that returns bool and the buffer, and disallowing null to segsetbuffer, adding setunsetbuffer for that case instead.
...
Copied from Perforce
Change: 191695
ServerID: perforce.ravenbrook.com
2016-04-27 15:47:26 +01:00
Richard Brooksby
2065bf5351
Renaming class fields called "protocol" to "instclassstruct" in line with usual mps convention.
...
Copied from Perforce
Change: 191685
ServerID: perforce.ravenbrook.com
2016-04-27 14:25:54 +01:00
Richard Brooksby
139c44155b
Converting arena finish and describe methods to specialize instfinish and instdescribe.
...
Copied from Perforce
Change: 191614
ServerID: perforce.ravenbrook.com
2016-04-23 16:31:26 +01:00
Richard Brooksby
66f9fe6841
Converting buffer finish and describe methods to specialize instfinish and instdescribe.
...
Copied from Perforce
Change: 191608
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
ff10c03351
Converting land describe methods to specialize instdescribe.
...
Copied from Perforce
Change: 191607
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
a953a293e7
Converting land finish methods to specialize instfinish.
...
Copied from Perforce
Change: 191606
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
9a2f29e3b2
Converting pool finish methods to specialize instfinish, and fixing up quite a few calls to use nextmethod.
...
Copied from Perforce
Change: 191605
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
1f8eb75895
Converting pool describe methods to specialise instdescribe.
...
Copied from Perforce
Change: 191604
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
a9c54783bf
Making finish a method on inst and implementing generic finish for segments.
...
Copied from Perforce
Change: 191602
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
9a38cd69db
Making describe a method on inst and implementing generic describe for segments.
...
Copied from Perforce
Change: 191601
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:11 +01:00
Gareth Rees
e38b71547d
Catch-up merge from branch/2016-04-12/job004000 to branch/2016-04-13/mortality.
...
Copied from Perforce
Change: 191513
ServerID: perforce.ravenbrook.com
2016-04-21 18:20:54 +01:00
Gareth Rees
6d0dccb644
Catch-up merge from master sources to branch/2016-04-12/job004000.
...
Copied from Perforce
Change: 191512
ServerID: perforce.ravenbrook.com
2016-04-21 18:03:23 +01:00
Richard Brooksby
efb1d94578
Catch-up merge from master sources to branch/2016-04-08/protidying.
...
Copied from Perforce
Change: 191471
ServerID: perforce.ravenbrook.com
2016-04-21 14:46:10 +01:00
Richard Brooksby
c42fc6c016
Responding to review by gdr < https://info.ravenbrook.com/mail/2016/04/21/09-36-07/0/ >.
...
Copied from Perforce
Change: 191432
ServerID: perforce.ravenbrook.com
2016-04-21 10:56:35 +01:00
Gareth Rees
aba1c55487
Catch-up merge from master sources to branch/2016-04-12/job004000.
...
Copied from Perforce
Change: 191429
ServerID: perforce.ravenbrook.com
2016-04-21 10:52:18 +01:00
Richard Brooksby
930b6a315b
Moving location dependency history into its own structure to reduce arenastruct bloat.
...
Copied from Perforce
Change: 191417
ServerID: perforce.ravenbrook.com
2016-04-21 09:05:34 +01:00
Richard Brooksby
32250731d7
Avoid using "class" as an identifier, since tools like lldb parse expressions as c++, and it can't be named.
...
Copied from Perforce
Change: 191304
ServerID: perforce.ravenbrook.com
2016-04-19 23:00:02 +01:00
Richard Brooksby
06ef28892a
Catch-up merge from master sources to branch/2016-04-08/protidying.
...
Copied from Perforce
Change: 191251
ServerID: perforce.ravenbrook.com
2016-04-19 16:37:51 +01:00
Gareth Rees
942bee5823
Compile out statistic declarations in non-statistical varieties (at the cost of some syntax checking).
...
Add some missing STATISTIC guards where statistics are used.
Add design documentation.
Avoid unnecessary distinction between STATISTIC and STATISTIC_STAT (both result in statements).
Copied from Perforce
Change: 191178
ServerID: perforce.ravenbrook.com
2016-04-16 12:07:10 +01:00
Gareth Rees
3174eba71e
Maintain a moving average of the mortality of each generation.
...
Copied from Perforce
Change: 191081
ServerID: perforce.ravenbrook.com
2016-04-13 15:19:50 +01:00
Gareth Rees
c97f77e5ab
Catch-up merge from master sources to branch/2014-10-11/snc.
...
Copied from Perforce
Change: 191065
ServerID: perforce.ravenbrook.com
2016-04-13 13:07:19 +01:00
Gareth Rees
2b4b4816b4
Keep a ring of segments for each generation.
...
Copied from Perforce
Change: 191031
ServerID: perforce.ravenbrook.com
2016-04-12 19:16:19 +01:00
Richard Brooksby
c4ef464d0e
Using superclass init and finish in the arena bootstrap and teardown.
...
Copied from Perforce
Change: 190895
ServerID: perforce.ravenbrook.com
2016-04-11 13:35:16 +01:00
Richard Brooksby
3dd201bf47
Turning pool init methods the right way in, so that they each call the next method up the class hierarchy.
...
Copied from Perforce
Change: 190858
ServerID: perforce.ravenbrook.com
2016-04-10 17:49:08 +01:00
Richard Brooksby
3154cbed7d
Making arenas properly inherit from instances, and converting remaining method calls to use the method macro, while noting uses which are inside-out.
...
Copied from Perforce
Change: 190856
ServerID: perforce.ravenbrook.com
2016-04-10 14:00:55 +01:00
Richard Brooksby
5a0c818945
Explicitly making inststruct the prefix of instances, eliminating pointer punning of class pointers, and reducing likelihood of editing errors.
...
Copied from Perforce
Change: 190830
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:21 +01:00
Richard Brooksby
a5ea15c8ff
Eliminating issubclasspoly and replacing with compile-time constant test.
...
Copied from Perforce
Change: 190829
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:21 +01:00
Richard Brooksby
09e73dd1da
Renaming protocolinst to inst and protocolclass to instclass to make naming consistent with other classes.
...
Copied from Perforce
Change: 190822
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00