Gareth Rees
cf9dbca31c
Fix issues identified in review by gdr.
...
Copied from Perforce
Change: 194472
2018-07-06 11:48:41 +01:00
Gareth Rees
0edb390dc4
Catch-up merge from master sources at changelevel 194456 to branch/2016-03-30/tract-white-elim.
...
Copied from Perforce
Change: 194469
2018-07-06 11:06:20 +01:00
Gareth Rees
bcc01c1fd8
No need for rvalue(&(...)) -- the result of the & operator is not an lvalue.
...
Copied from Perforce
Change: 194456
2018-07-05 22:53:02 +01:00
Gareth Rees
ba03d79694
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
c868d94400
Update mpscopyrightnotice, as required by §3.1.1 of https://info.ravenbrook.com/project/mps/master/procedure/version-create
...
Copied from Perforce
Change: 194446
2018-07-05 14:55:06 +01:00
Gareth Rees
940c52fddd
Merge branch/2016-03-01/mvff-control into the master sources.
...
Copied from Perforce
Change: 194442
2018-07-05 13:37:01 +01:00
Gareth Rees
bb53551d8f
Merge branch/2018-07-04/mvff-perf into the master sources.
...
Copied from Perforce
Change: 194439
2018-07-05 12:54:16 +01:00
Gareth Rees
3af7e264a3
Fix the check of the cbs overlapping insertion failure case: in order for the inserted block not to overlap it's right neighbour, its limit must be <= the base of the right neighbour (not the limit as previously written). this mistake was introduced accidentally in change 182344.
...
Copied from Perforce
Change: 194427
2018-07-05 10:43:47 +01:00
Gareth Rees
73702aa7f1
No need for rvalue(&(...)) -- the result of the & operator is not an lvalue.
...
Copied from Perforce
Change: 194424
2018-07-05 10:24:22 +01:00
Gareth Rees
ae3cc16e4b
Function implementations call the macro implementations, to reduce the burden of keeping the functions and macros consistent.
...
Copied from Perforce
Change: 194418
2018-07-05 09:28:01 +01:00
Gareth Rees
08f78b4b0e
Merge branch/2018-07-03/mfs-tractp into the master sources.
...
Copied from Perforce
Change: 194414
2018-07-04 17:13:53 +01:00
Gareth Rees
2564ffcb61
Avoid emitting poolalloc and poolfree events in the hot variety, so that they not affected asymmetrically by the poolfree macro.
...
Copied from Perforce
Change: 194410
2018-07-04 16:51:13 +01:00
Gareth Rees
a737d39444
Merge branch 2018-06-27/job004056.
...
Copied from Perforce
Change: 194409
2018-07-04 16:46:04 +01:00
Gareth Rees
17504d0242
Mfsextend now takes (base, limit) instead of (base, size) for consistency with the rest of the mps.
...
Copied from Perforce
Change: 194408
2018-07-04 16:31:45 +01:00
Gareth Rees
6c3da83fb2
Avoid "dereferencing type-punned pointer might break strict-aliasing rules" warning from gcc.
...
Copied from Perforce
Change: 194403
2018-07-04 15:56:51 +01:00
Gareth Rees
0cf1718af9
Improve performance of mvff in hot builds by:
...
1. Using macros to bypass PoolFree and Land* generic functions.
2. Compiling out assertions on functions on the critical paths for manual allocation and freeing.
3. Taking advantage of the fact that splay->updateNode does not change during a splay operation.
Copied from Perforce
Change: 194397
2018-07-04 14:30:22 +01:00
Gareth Rees
97f8625195
Fix issues identified in review https://info.ravenbrook.com/mail/2018/07/03/10-10-11/0/
...
Copied from Perforce
Change: 194382
2018-07-03 13:04:21 +01:00
Gareth Rees
4946085f89
Integrate branch/2016-03-15/sunrise/...@190086,190087 to pick up elimination of tractp from mfs.
...
Copied from Perforce
Change: 194372
2018-07-03 10:34:46 +01:00
Gareth Rees
33c55964a5
Fix issues identified in review by gdr.
...
Copied from Perforce
Change: 194339
2018-07-02 09:05:03 +01:00
Gareth Rees
a215a7c4b9
Avoid warning "./poolmv.c:934:13: error: 'static' function 'mvcheck' declared in header file" from clang 5.0. see https://travis-ci.org/ravenbrook/mps/jobs/398247514
...
Copied from Perforce
Change: 194328
2018-06-29 15:12:55 +01:00
Gareth Rees
5ee645763e
Catch-up merge from master sources at changelevel 194314 to branch/2016-03-01/mvff-control.
...
Copied from Perforce
Change: 194323
2018-06-29 14:28:33 +01:00
Gareth Rees
d1d282d351
Restore fixclosure together with explanation.
...
Copied from Perforce
Change: 194314
2018-06-29 13:54:55 +01:00
Gareth Rees
556bb96d41
Catch-up merge from master sources at changelevel 194268 to branch/2018-06-18/job004070.
...
Copied from Perforce
Change: 194274
2018-06-28 14:31:02 +01:00
Gareth Rees
d22656c8c4
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
c320c86231
Use initonceexecuteonce to get thread-safe initialization of the global locks.
...
This means that the MPS no longer supports Windows XP, so update documentation accordingly.
Exercise the global locks in lockut.
Copied from Perforce
Change: 194253
2018-06-28 12:39:06 +01:00
Gareth Rees
70c6338f9e
Clarify some assertion conditions.
...
Copied from Perforce
Change: 194194
2018-06-26 12:36:53 +01:00
Gareth Rees
53a9a15276
Fix issues identified in review by dl.
...
Copied from Perforce
Change: 194187
2018-06-26 11:39:45 +01:00
Gareth Rees
421f73cdef
Fix issues identified in review by dl.
...
Copied from Perforce
Change: 194184
2018-06-26 11:31:33 +01:00
Gareth Rees
78a544c11a
Return resparam for consistency with other describe functions.
...
Copied from Perforce
Change: 194167
2018-06-26 09:11:57 +01:00
Gareth Rees
af4dceecd9
Test cases for errors in finalization.
...
Copied from Perforce
Change: 194166
2018-06-26 09:01:46 +01:00
Gareth Rees
b873c82d99
Use unsigned for rootvar and locusprefkind typedefs.
...
Copied from Perforce
Change: 194161
2018-06-26 08:48:31 +01:00
Gareth Rees
0b0c747d46
Fix copy-paste error.
...
Copied from Perforce
Change: 194128
2018-06-23 20:49:17 +01:00
Gareth Rees
7b754520fd
Consistent order to prologue: include "mpm.h"; platform check; include other mps headers; include system headers; srcid.
...
Copied from Perforce
Change: 194107
2018-06-23 11:31:57 +01:00
Gareth Rees
30245c19b1
Avoid duplicate tag nams.
...
Copied from Perforce
Change: 194081
2018-06-22 09:45:24 +01:00
Gareth Rees
bd5a075fd2
In gcc 7.3, -wextra sets -wimplicit-fallthough=3, which is rather strict about the format of the "fall through" comment.
...
Copied from Perforce
Change: 194064
2018-06-21 17:38:27 +01:00
Gareth Rees
3ab83fd7db
Add a check that the flipped trace was not already flipped.
...
Copied from Perforce
Change: 194006
2018-06-20 11:06:01 +01:00
Gareth Rees
01baf3cfda
New generic function segflip allows the segment to decide how to handle a trace that’s about to flip.
...
Copied from Perforce
Change: 194000
2018-06-20 10:23:16 +01:00
Gareth Rees
9d244d3e14
Refactor arenapeekseg so that it maintains the mps invariants by scanning the segment if necessary. arenaread is now a thin wrapper around arenapeekseg. new function arenawrite is now the corresponding wrapper around arenapokeseg.
...
MRG reference segments inherit from GCSeg (not MutatorSeg) and so don't have hardware barriers. Instead, the code implements software barriers by always using ArenaRead and ArenaWrite.
Copied from Perforce
Change: 193990
2018-06-19 16:25:52 +01:00
Gareth Rees
6d3b228200
Fix issues identified in review by apt.
...
Copied from Perforce
Change: 193982
2018-06-19 14:51:56 +01:00
Gareth Rees
fd1d022908
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
c4949fb608
Postpone some lookups until it is known that they are needed (avoiding the lookups in the common case where they are not).
...
Copied from Perforce
Change: 193975
2018-06-19 12:27:07 +01:00
Gareth Rees
9b0635ec53
Use index abstract type for indexes.
...
Copied from Perforce
Change: 193969
2018-06-19 11:59:54 +01:00
Gareth Rees
c6af54572d
No need for empty atfork handlers, can pass null to pthread_atfork.
...
Copied from Perforce
Change: 193963
2018-06-19 08:57:26 +01:00
Gareth Rees
89a4b0378a
Simplify the wasmarked protocol.
...
Copied from Perforce
Change: 193940
2018-06-18 20:03:13 +01:00
Gareth Rees
37a0381482
Make ams test for invalid references in the same way as the other pool classes. this also avoids fixing them in hot and rash varieties.
...
Copied from Perforce
Change: 193924
2018-06-18 16:59:12 +01:00
Gareth Rees
169a3477b7
Awl asserts on fixes to out-of-bounds objects.
...
New MMQA test case conerr/65.c checks this.
Copied from Perforce
Change: 193916
2018-06-18 16:29:03 +01:00
Gareth Rees
ab9f8a1a0d
Lo asserts on fixes to out-of-bounds objects.
...
New MMQA test case conerr/64.c checks this.
Copied from Perforce
Change: 193915
2018-06-18 16:22:16 +01:00
Gareth Rees
30abcd8531
Awl asserts on fixes to unallocated objects.
...
New MMQA test case conerr/63.c checks this.
Copied from Perforce
Change: 193910
2018-06-18 15:46:26 +01:00
Gareth Rees
955ea13ee5
Lo asserts on fixes to unallocated objects.
...
New MMQA test case conerr/62.c checks this.
Copied from Perforce
Change: 193909
2018-06-18 15:41:29 +01:00
Gareth Rees
ed44ee33c2
Awl asserts on fixes to unaligned exact references.
...
New MMQA test case conerr/61.c checks this.
Copied from Perforce
Change: 193904
2018-06-18 15:23:58 +01:00