Commit graph

112 commits

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