1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-28 00:01:33 -08:00
Commit graph

260 commits

Author SHA1 Message Date
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