Richard Brooksby
3dd201bf47
Turning pool init methods the right way in, so that they each call the next method up the class hierarchy.
...
Copied from Perforce
Change: 190858
ServerID: perforce.ravenbrook.com
2016-04-10 17:49:08 +01:00
Richard Brooksby
298addf910
Implementing isa, mustbea, couldbea, and reshaping the land classes to put the init, finish, and describe methods the right way in.
...
Copied from Perforce
Change: 190826
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
f3bde6fd39
Promoting shield to first class structure.
...
Copied from Perforce
Change: 190219
ServerID: perforce.ravenbrook.com
2016-03-20 00:32:43 +00:00
Richard Brooksby
44f80af1ec
Merging branch mps/branch/2016-03-13/without-reservation into master sources.
...
Copied from Perforce
Change: 190106
ServerID: perforce.ravenbrook.com
2016-03-15 13:19:27 +00:00
Richard Brooksby
1025b28674
Eliminating withreservoirpermit and all its variants.
...
Copied from Perforce
Change: 190005
ServerID: perforce.ravenbrook.com
2016-03-13 21:04:01 +00:00
Richard Brooksby
cc6262ae66
Basic removal of the reservoir pool from code and design.
...
Copied from Perforce
Change: 190000
ServerID: perforce.ravenbrook.com
2016-03-13 20:32:24 +00:00
Richard Brooksby
32d42e00cd
Catch-up merge from master sources to branch/2015-08-25/tradeoff.
...
Copied from Perforce
Change: 189891
ServerID: perforce.ravenbrook.com
2016-03-12 15:13:15 +00:00
Richard Brooksby
e3d69095db
Catch-up merge from master sources to branch/2016-03-01/closure-size.
...
Copied from Perforce
Change: 189728
ServerID: perforce.ravenbrook.com
2016-03-08 09:13:35 +00:00
Richard Brooksby
804f15dead
Removing the mostly unused size component of the closure convention.
...
Copied from Perforce
Change: 189503
ServerID: perforce.ravenbrook.com
2016-03-01 17:20:50 +00:00
Richard Brooksby
078ac268d5
Catch-up merge from branch/2015-08-06/config to remove arenaconfigure.
...
Copied from Perforce
Change: 189335
ServerID: perforce.ravenbrook.com
2016-02-25 22:59:06 +00:00
Richard Brooksby
c1918bc79b
Creating general mps_root_create_thread and renaming mps_root_create_stack as a specialised version of it, mps_root_create_thread_tagged.
...
Copied from Perforce
Change: 189198
ServerID: perforce.ravenbrook.com
2016-02-15 19:12:59 +00:00
Richard Brooksby
b384334a32
Reimplementing mps_root_create_reg in terms of rootcreatethreadtagged and abolishing rootreg. yay!
...
Copied from Perforce
Change: 189197
ServerID: perforce.ravenbrook.com
2016-02-15 18:19:30 +00:00
Richard Brooksby
ab41d5c4f7
Renaming rootreg_masked to rootthread_tagged with corresponding changes to other identifiers.
...
Copied from Perforce
Change: 189196
ServerID: perforce.ravenbrook.com
2016-02-15 17:57:06 +00:00
Richard Brooksby
7238921356
Generalising roottable to rootarea and using it to implement mps_root_create_table_* and mps_root_create_area.
...
Copied from Perforce
Change: 189193
ServerID: perforce.ravenbrook.com
2016-02-15 17:30:45 +00:00
Richard Brooksby
fb6c150ba2
Generalising roottable_masked to rootarea_tagged and lifting scanner assumption.
...
Copied from Perforce
Change: 189192
ServerID: perforce.ravenbrook.com
2016-02-15 16:56:42 +00:00
Richard Brooksby
b75a753e91
Removing arena configure method from arena classes.
...
Copied from Perforce
Change: 189080
ServerID: perforce.ravenbrook.com
2016-01-30 20:16:30 +00:00
Gareth Rees
ea6250898a
New function mps_root_create_reg_masked applies a mask and pattern test to all words in registers and on the stack when scanning them. this supports tagged references in these locations.
...
Consistently use the type "Word *" for pointers into the stack or into saved registers.
Remove TraceScanAreaTagged.
Copied from Perforce
Change: 188231
ServerID: perforce.ravenbrook.com
2015-09-04 12:22:03 +01:00
Gareth Rees
61bae42d43
Introduce new type work representing a measure of work done by the collector. use this systematically to make the code clearer.
...
Copied from Perforce
Change: 188210
ServerID: perforce.ravenbrook.com
2015-09-03 13:01:55 +01:00
Gareth Rees
56e56e4ff4
Catch-up merge from branch/2015-08-10/arena-create to branch/2015-08-06/config.
...
Copied from Perforce
Change: 188104
ServerID: perforce.ravenbrook.com
2015-08-10 12:49:36 +01:00
Gareth Rees
84347b9bbe
Merge branch/2014-09-29/reserved into the master sources.
...
Copied from Perforce
Change: 188090
ServerID: perforce.ravenbrook.com
2015-08-07 16:33:43 +01:00
Gareth Rees
098b4da32d
New function mps_arena_configure provides keyword argument interface to changing the properties of an arena.
...
New keyword arguments MPS_KEY_ARENA_COMMIT_LIMIT and MPS_KEY_SPARE_ARENA_COMMIT_LIMIT can be passed to mps_arena_create_k or mps_arena_configure.
Deprecate mps_arena_commit_limit_set and mps_arena_spare_commit_limit_set.
Copied from Perforce
Change: 188085
ServerID: perforce.ravenbrook.com
2015-08-06 17:02:51 +01:00
Gareth Rees
7870122c9d
Rename locusprefhigh to locusprefhigh and so on, to follow < http://www.ravenbrook.com/project/mps/master/design/guide.impl.c.naming#capital-constant >
...
Copied from Perforce
Change: 187283
ServerID: perforce.ravenbrook.com
2014-10-19 09:19:43 +01:00
Gareth Rees
5f35b7f792
Use the method suffix only for methods in classes; use visitor or function for other kinds of functions.
...
New document guide.impl.c.naming sets out the rules for naming.
Copied from Perforce
Change: 187159
ServerID: perforce.ravenbrook.com
2014-10-07 23:48:55 +01:00
Gareth Rees
23dda3d644
New constant rankmin gives the minimum rank. use this (rather than 0 or rankambig) to better express the intention.
...
Copied from Perforce
Change: 187156
ServerID: perforce.ravenbrook.com
2014-10-07 22:31:12 +01:00
Gareth Rees
943471d015
Store reserved address space associated with chunk in a field in the chunkstruct, as suggested by rb in < https://info.ravenbrook.com/mail/2014/10/01/13-55-44/0/ >.
...
Copied from Perforce
Change: 187104
ServerID: perforce.ravenbrook.com
2014-10-01 21:40:50 +01:00
Gareth Rees
9436487a05
Instead of iterating over the chunks to compute the total reserved address space, maintain a running total in arenachunkinsert and (new function) arenachunkremoved.
...
New arena class method chunkReserved handles the class-specific computation of the reserved size of a chunk.
Copied from Perforce
Change: 187089
ServerID: perforce.ravenbrook.com
2014-09-29 22:50:46 +01:00
Gareth Rees
39e8b866cf
Rename mps_class_t to mps_pool_class_t for clarity.
...
Retain a typedef for mps_class_t for backwards compatibility.
Copied from Perforce
Change: 187065
ServerID: perforce.ravenbrook.com
2014-09-27 13:37:38 +01:00
Gareth Rees
456d747b61
Rename segpref to locuspref -- this structure describes preferences for the placement of any kind of address, not just segments.
...
Add LocusPrefDescribe and use it in MVFFDescribe.
Copied from Perforce
Change: 187061
ServerID: perforce.ravenbrook.com
2014-09-27 11:27:00 +01:00
Gareth Rees
266a75b639
Catch-up merge from master sources @186536 to branch/2014-05-15/size.
...
Copied from Perforce
Change: 186539
ServerID: perforce.ravenbrook.com
2014-06-12 16:46:36 +01:00
Gareth Rees
c71e35f3c1
Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186526
ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
dbc6f9cd32
Catch-up merge from branch/2014-04-15/mvffnoseg @186485 to branch/2014-05-15/size.
...
Copied from Perforce
Change: 186487
ServerID: perforce.ravenbrook.com
2014-06-11 13:17:14 +01:00
Gareth Rees
4113048403
Catch-up merge from master sources @186460 to branch/2014-04-08/align.
...
Copied from Perforce
Change: 186461
ServerID: perforce.ravenbrook.com
2014-06-09 19:26:31 +01:00
Gareth Rees
d6b83892af
Remove unused pool class attributes.
...
Bring method descriptions up to date in pool class design.
Copied from Perforce
Change: 186446
ServerID: perforce.ravenbrook.com
2014-06-08 19:54:24 +01:00
Gareth Rees
7489f4d284
Fix compilation on fri3gc: need readonlyaddradd macro to avoid warning.
...
Copied from Perforce
Change: 186442
ServerID: perforce.ravenbrook.com
2014-06-08 17:15:54 +01:00
Gareth Rees
331d260bfd
Catch-up merge from master sources @186436 to branch/2014-04-08/align.
...
Copied from Perforce
Change: 186439
ServerID: perforce.ravenbrook.com
2014-06-08 16:30:53 +01:00
Gareth Rees
4ce7746f6b
New type readonlyaddr for managed address that an interface promises only to read through.
...
Use ReadonlyAddr for debugging pool fenceTemplate and freeTemplate, so that we can restore -Wwrite-strings option for GCC.
Copied from Perforce
Change: 186434
ServerID: perforce.ravenbrook.com
2014-06-08 14:53:17 +01:00
Gareth Rees
e35f3b1b6c
Fix problems identified by dl in review < https://info.ravenbrook.com/mail/2014/05/23/12-44-54/0/ >.
...
Copied from Perforce
Change: 186300
ServerID: perforce.ravenbrook.com
2014-05-25 20:49:22 +01:00
Gareth Rees
5f848d0404
Split land iteration into two functions, one which deletes ranges, the other which does not.
...
Copied from Perforce
Change: 186298
ServerID: perforce.ravenbrook.com
2014-05-25 19:26:48 +01:00
Gareth Rees
9c3eb68f97
Landiterate now returns a bool indicating whether all visitor calls returned true.
...
Copied from Perforce
Change: 186165
ServerID: perforce.ravenbrook.com
2014-05-18 22:46:16 +01:00
Gareth Rees
16ccef5e2d
New public functions mps_pool_total_size and mps_pool_free_size.
...
Old (undocumented) functions mps_{mv,mvff,mvt}_size and mps_{mv,mvff,mvt}_free_size are now macros for the new public functions.
New pool methods PoolTotalSize and PoolFreeSize, with implementations for public pool classes except SNC.
Coverage of the new functions in apss and mpmss for the manual pool classes, and in finaltest for the automatic pool classes.
Copied from Perforce
Change: 186118
ServerID: perforce.ravenbrook.com
2014-05-15 17:01:59 +01:00
Gareth Rees
c44f2d6a20
Correct indentation of describe output by passing depth parameter to describe functions and to writef.
...
Call Describe functions from test cases so that we get coverage.
Copied from Perforce
Change: 186000
ServerID: perforce.ravenbrook.com
2014-05-11 18:20:38 +01:00
Gareth Rees
a94cc2ed78
New generic function landsize returns the total size of ranges in a land (if the land supports it). implement it for all land classes.
...
The MVFF pool class doesn't have to maintain its free size any more: it can just call LandSize.
Move re-entrancy protection from CBS to Land. This allows us to remove some CBS functions. (But requires some adjustment in failoverDelete.)
In MVFF, do more checking of mvff->total.
Copied from Perforce
Change: 185569
ServerID: perforce.ravenbrook.com
2014-04-15 16:35:34 +01:00
Gareth Rees
0abdd8ae47
Catch-up merge from master/...@185556 to branch/2014-03-30/addrset.
...
Copied from Perforce
Change: 185563
ServerID: perforce.ravenbrook.com
2014-04-15 13:14:50 +01:00
Gareth Rees
391e7e6c83
Add -wconversion to the options for gcc. ensure that the mps builds.
...
Copied from Perforce
Change: 185463
ServerID: perforce.ravenbrook.com
2014-04-11 14:25:15 +01:00
Gareth Rees
0c2cd2ab6d
Catch-up merge from master sources to branch/2014-03-30/addrset.
...
Copied from Perforce
Change: 185288
ServerID: perforce.ravenbrook.com
2014-04-07 15:02:09 +01:00
Gareth Rees
f6901a9e23
Complete design.mps.type and design.mps.interface-c and move them to "current" design in the manual.
...
Remove unused enumeration FormatVariety from mpmtypes.
Improve wording of manual entry on MPS_RM_PROT.
Copied from Perforce
Change: 185259
ServerID: perforce.ravenbrook.com
2014-04-06 20:00:31 +01:00
Gareth Rees
a3055d56c0
New module failover implements a fail-over allocator as a land class.
...
Use Failover in MVT and MVFF.
Test Failover in landtest.
Implementation of LandFindInZones for Freelist (untested).
Remove signature from RangeStruct so we can embed it without a space cost.
Copied from Perforce
Change: 185196
ServerID: perforce.ravenbrook.com
2014-04-03 12:52:23 +01:00
Gareth Rees
6ef8e57b1f
Turn freelist into a land class.
...
Copied from Perforce
Change: 185155
ServerID: perforce.ravenbrook.com
2014-04-02 14:01:18 +01:00
Gareth Rees
042f9c5f14
First pass at implementation of lands (collections of address ranges). 100% boilerplate!
...
Copied from Perforce
Change: 185131
ServerID: perforce.ravenbrook.com
2014-04-01 19:51:55 +01:00
Richard Brooksby
6e46485dce
Catch-up merge from master, mainly to pick up gcbench fixes.
...
Copied from Perforce
Change: 184504
ServerID: perforce.ravenbrook.com
2014-02-25 01:29:12 +00:00