Gareth Rees
d2e619b743
New bufferfill and bufferempty methods on segments.
...
Copied from Perforce
Change: 194568
2018-07-10 15:02:18 +01:00
Gareth Rees
3366ef1bc2
Catch-up merge from master sources at changelevel 194449 to branch/2018-06-18/mrgseg.
...
Copied from Perforce
Change: 194452
2018-07-05 16:22:24 +01:00
Gareth Rees
409bc1910b
Catch-up merge from the master sources at changelevel 194194 to branch/2017-03-04/seg-methods.
...
Copied from Perforce
Change: 194267
2018-06-28 13:52:36 +01:00
Gareth Rees
7f7822d4ab
Segment class gcseg no longer implements hardware barriers; these are implemented by new subclass mutatorseg, which is now used everywhere that gcseg was used formerly. the idea is that in a future change mrgrefseg will inherit from gcseg instead of mutatorseg.
...
Copied from Perforce
Change: 193981
2018-06-19 14:45:42 +01:00
Gareth Rees
e62c3dc0c5
Simplify the wasmarked protocol.
...
Copied from Perforce
Change: 193940
2018-06-18 20:03:13 +01:00
Gareth Rees
3e233329d3
Assertions on the critical path.
...
Copied from Perforce
Change: 193879
2018-06-18 13:17:42 +01:00
Gareth Rees
c9ed424554
Amcsegfixinplace is a better name for a function that operates on an amc segment.
...
Copied from Perforce
Change: 193856
2018-06-16 18:47:14 +01:00
Gareth Rees
2b3fbbb8d3
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
d8a5c865ba
Since we know that a segment belongs to a pool with a format at the point where we call segwalk, it makes sense to pass the format.
...
Copied from Perforce
Change: 193079
ServerID: perforce.ravenbrook.com
2017-03-31 09:15:41 +01:00
Gareth Rees
178c269987
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
d02a8f277e
Check that segment classes override sets of related methods.
...
Add missing finish functions amcSegFinish, mrgLinkSegFinish, mrgRefSegFinish, sncSegFinish.
Check all class constructor results.
Copied from Perforce
Change: 193055
ServerID: perforce.ravenbrook.com
2017-03-30 11:37:41 +01:00
Gareth Rees
dd1b5b2f27
No need for poolclassmixinscan and abstractscanpool.
...
Copied from Perforce
Change: 193045
ServerID: perforce.ravenbrook.com
2017-03-30 10:23:15 +01:00
Gareth Rees
b295670a76
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
109dabad27
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
45e05c62cd
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
1cb3265e80
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
de269de563
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
bfe43c367e
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
577b32d481
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
8019558576
Use nextmethod to call the superclass init method, instead of calling poolabsinit directly. regularize the error handling.
...
Copied from Perforce
Change: 192631
ServerID: perforce.ravenbrook.com
2016-10-19 11:34:04 +01:00
Gareth Rees
d5aa38cf65
Account allocations in amc segments between whiten and reclaim as condemned, improving the accuracy of the mortality calculation and avoiding assertion failure.
...
Copied from Perforce
Change: 192387
ServerID: perforce.ravenbrook.com
2016-09-14 12:49:51 +01:00
Gareth Rees
a0db5c7bfe
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
c898410a63
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
8c219cdd92
Catch-up merge from the master sources.
...
Copied from Perforce
Change: 192170
ServerID: perforce.ravenbrook.com
2016-09-05 15:21:33 +01:00
Richard Brooksby
2020da56a6
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
726ba1d25a
Temporarily introducing seggetbuffer to eliminate use of "null" to mean "no buffer".
...
Copied from Perforce
Change: 191694
ServerID: perforce.ravenbrook.com
2016-04-27 15:27:47 +01:00
Richard Brooksby
bda168dfb8
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
a241b44f8c
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
de1f3907cc
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
6217b5b3a5
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
b9e791798b
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
Richard Brooksby
0ea36ccf02
Turning segment describe methods the right way in, so that they call next-method. deleting duplicate implementation of basic segment describe!
...
Copied from Perforce
Change: 191588
ServerID: perforce.ravenbrook.com
2016-04-23 00:48:48 +01:00
Richard Brooksby
b765128003
Turning pool describe methods the right way in, so that they call next-method.
...
Copied from Perforce
Change: 191587
ServerID: perforce.ravenbrook.com
2016-04-23 00:22:46 +01:00
Gareth Rees
c5da1949c2
Catch-up merge from master sources to branch/2016-04-20/seghasbuffer.
...
Copied from Perforce
Change: 191548
ServerID: perforce.ravenbrook.com
2016-04-22 11:38:55 +01:00
Gareth Rees
8e518349f4
New function seghasbuffer.
...
Copied from Perforce
Change: 191537
ServerID: perforce.ravenbrook.com
2016-04-22 10:08:29 +01:00
Gareth Rees
73734325d5
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
Richard Brooksby
4be15a5b0b
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
Gareth Rees
a5973e98f8
Merge branch/2016-04-19/job004007.
...
Copied from Perforce
Change: 191371
ServerID: perforce.ravenbrook.com
2016-04-20 15:56:32 +01:00
Richard Brooksby
65a770e91f
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
Gareth Rees
21bb1c84b1
Address comments made by rb in review:
...
* Clearer name for the amcseg->buffered flag.
* Better explanation of the meaning of this flag.
* Explain how an AMC segment can be buffered but not accounted as buffered.
Copied from Perforce
Change: 191298
ServerID: perforce.ravenbrook.com
2016-04-19 20:38:33 +01:00
Richard Brooksby
1c0704e3c8
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
99303979de
Give buffers their own account in the pool generation accounting system. this ensures that buffers don't contribute to the "new size" of a generation, and so don't provoke collections of that generation.
...
Copied from Perforce
Change: 191243
ServerID: perforce.ravenbrook.com
2016-04-19 16:02:16 +01:00
Richard Brooksby
6e21f091a4
Eliminating classdef.h by defining the class level when declaring a class.
...
Copied from Perforce
Change: 191235
ServerID: perforce.ravenbrook.com
2016-04-19 14:59:30 +01:00
Gareth Rees
aabe4992eb
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
91966bc13d
When a buffer is detached from an amc segment, a padding object is created that needs to be accounted as condemned.
...
Copied from Perforce
Change: 191101
ServerID: perforce.ravenbrook.com
2016-04-13 17:46:13 +01:00
Gareth Rees
74314dd273
Record the forwarded size in the amc segment.
...
Copied from Perforce
Change: 191084
ServerID: perforce.ravenbrook.com
2016-04-13 15:51:00 +01:00
Gareth Rees
d40145c046
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
Richard Brooksby
8fe47c986c
Eliminating seg2amcseg and amcseg2seg in favour of mustbea.
...
Copied from Perforce
Change: 191093
ServerID: perforce.ravenbrook.com
2016-04-13 15:11:15 +01:00
Gareth Rees
77b12d3ee7
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
Richard Brooksby
a8483f5163
Moving pool format argument picking into abstract pool initialization, so that code is shared.
...
Copied from Perforce
Change: 191004
ServerID: perforce.ravenbrook.com
2016-04-12 15:07:26 +01:00