1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 11:21:04 -08:00
Commit graph

267 commits

Author SHA1 Message Date
Gareth Rees
0ee4d7ca06 Indirect formatted scanning through the scanstate.
This will allow us to reuse the scanning protocol with an arbitrary area
scanning function (replacing traceFormatScan) in order to implement
formatted object walking without an extra segment method.

Don't insist on scanning only grey segments: we want to be able to
reuse the scan protocol for walking, when the segments are black.
2022-01-17 17:12:58 +00:00
Gareth Rees
5559f36540 Fix indentation of second clause of license. 2020-08-30 10:13:06 +01:00
Gareth Rees
5165d75267 Use https: instead of http: when linking to the ravenbrook web site. 2020-08-30 10:13:03 +01:00
Peter Jackson
1d00afac81 Publish licence updates in code directory.
Publish minor changes to readme and configure files in main directory.
Main directory and code directory licence texts are now fully updated.

Copied from Perforce
 Change: 196994
2020-06-11 17:05:40 +01:00
Gareth Rees
0b324c158b Use tags with dots; regularize design references from code.
Copied from Perforce
 Change: 195761
2018-11-29 17:12:29 +00:00
Gareth Rees
60bf7320e2 Document the event parameters.
Split event ArenaAccess into ArenaAccessBegin and ArenaAccessEnd to avoid the need for the count field.
New events SegReclaim and SegScan.
Delete some redundant events: AMCFinish (PoolFinish), AMCFix, AMCFixForward, AMCFixInPlace (TraceFix), AMCGenCreate (GenInit), AMCGenDestroy (GenFinish), AMCInit (PoolInitAMC), AMCReclaim (SegReclaim), AMCScanBegin, AMCScanEnd (SegScan), ArenaWriteFaults (ArenaAccessBegin), PoolInitMV, TraceScanSeg (SegScan).
Add result code field to events ArenaAllocFail, CommitLimitSet, SegAllocFail.
Remove arena field from events PoolInitAMS, PoolInitMFS, PoolInitMVFF (already appeared in generic PoolInit event).

Copied from Perforce
 Change: 195247
2018-10-14 14:04:40 +01:00
Gareth Rees
2965fc9150 There's no point keeping the definitions of old events, especially since we have changed the event format. name events consistently with initial capital letters and put them in alphabetical order.
Copied from Perforce
 Change: 195231
2018-10-12 13:01:12 +01:00
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