Gareth Rees
9aa717b701
Fix issues identified in review by dl < https://info.ravenbrook.com/mail/2018/07/16/12-13-15/0/ >.
...
Copied from Perforce
Change: 194677
2018-07-16 15:26:47 +01:00
Gareth Rees
f3f941284f
New bufferfill and bufferempty methods on segments.
...
Copied from Perforce
Change: 194568
2018-07-10 15:02:18 +01:00
Gareth Rees
f1b880321b
Don't make multiple calls to controlalloc when you could just make one and divvy it up yourself.
...
Copied from Perforce
Change: 194484
2018-07-06 18:56:12 +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
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
53a9a15276
Fix issues identified in review by dl.
...
Copied from Perforce
Change: 194187
2018-06-26 11:39:45 +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
9b0635ec53
Use index abstract type for indexes.
...
Copied from Perforce
Change: 193969
2018-06-19 11:59:54 +01:00
Gareth Rees
89a4b0378a
Simplify the wasmarked protocol.
...
Copied from Perforce
Change: 193940
2018-06-18 20:03:13 +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
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
Gareth Rees
da6aec8bfb
Lo asserts on fixes to unaligned exact references.
...
New MMQA test case conerr/60.c checks this.
Copied from Perforce
Change: 193901
2018-06-18 15:05:30 +01:00
Gareth Rees
1987144308
Losegcreate is a thin wrapper around poolgenalloc, so it's simpler just to call the latter.
...
Copied from Perforce
Change: 193869
2018-06-18 09:29:33 +01:00
Gareth Rees
6cda91e1ee
Keep forward declarations for seg methods together.
...
Copied from Perforce
Change: 193842
2018-06-15 14:55:40 +01:00
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
2a24ad79df
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
e615adda88
Avoid "result of 32-bit shift implicitly converted to 64 bits" warning from visual c.
...
Check AWL pool generation.
Update design.
Copied from Perforce
Change: 193076
ServerID: perforce.ravenbrook.com
2017-03-31 09:03:38 +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
17c1449096
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
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
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
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
7f18fa9802
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
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
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
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
9a6981ae41
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
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
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
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
Gareth Rees
ea578a4939
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
7d30523dcd
New function seghasbuffer.
...
Copied from Perforce
Change: 191537
ServerID: perforce.ravenbrook.com
2016-04-22 10:08:29 +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
Richard Brooksby
49eb33c49a
Supressing "may be used uninitialized" warnings from gcc.
...
Copied from Perforce
Change: 191489
ServerID: perforce.ravenbrook.com
2016-04-21 15:34:20 +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
Gareth Rees
bbeb6af490
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
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
Gareth Rees
68e5c36216
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
c708f93154
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
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
Richard Brooksby
d6b028081f
Eliminating poolpoollo, lopool, segloseg, losegseg in favour of mustbea etc.
...
Copied from Perforce
Change: 191094
ServerID: perforce.ravenbrook.com
2016-04-13 15:52:33 +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
Richard Brooksby
2e2cfa9bae
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
Richard Brooksby
b9a917033c
Moving setclassofpoly to after initialization, to be more like signature setting.
...
Copied from Perforce
Change: 190994
ServerID: perforce.ravenbrook.com
2016-04-12 13:40:13 +01:00
Richard Brooksby
fd1ff6f863
Clearing up various fixmes by making the type naming inconsistency clearly visible and intentional.
...
Copied from Perforce
Change: 190980
ServerID: perforce.ravenbrook.com
2016-04-12 10:51:41 +01:00
Richard Brooksby
12d4dfda16
Eliminating generated classof* and setclassof* functions in favour of checked poly macros.
...
Copied from Perforce
Change: 190938
ServerID: perforce.ravenbrook.com
2016-04-11 18:06:47 +01:00