Gareth Rees
4b49fc7d57
Mvff no longer uses segments, but instead maintains the address ranges it has acquired from the arena in a cbs.
...
Copied from Perforce
Change: 185574
ServerID: perforce.ravenbrook.com
2014-04-15 17:52:14 +01:00
Gareth Rees
2c47aa2d70
Integrate addrset branch to mvffnoseg branch to pick up land size improvements.
...
Copied from Perforce
Change: 185570
ServerID: perforce.ravenbrook.com
2014-04-15 16:38:51 +01:00
Gareth Rees
87b3880405
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
4deafee125
Lands maintain the total size of the address ranges they maintain. (this avoids the need to do free size accounting in mvff.)
...
Copied from Perforce
Change: 185567
ServerID: perforce.ravenbrook.com
2014-04-15 14:23:53 +01:00
Gareth Rees
c74361ab1e
Integrate branch/2014-03-30/addrset to branch/2014-04-15/mvffnoseg to pick up land classes.
...
Copied from Perforce
Change: 185564
ServerID: perforce.ravenbrook.com
2014-04-15 13:16:24 +01:00
Gareth Rees
42f18f93af
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
c376a2b808
Mvt does not actually need to use gcsegs: in fact, gcsegs create difficulties because buffers need to be detached. so switch to using ordinary segs just like mvff.
...
Copied from Perforce
Change: 185556
ServerID: perforce.ravenbrook.com
2014-04-15 12:41:10 +01:00
Gareth Rees
a755d16585
Revert hasty merge of branch/2014-04-15/shared -- broke xcode build.
...
Copied from Perforce
Change: 185553
ServerID: perforce.ravenbrook.com
2014-04-15 12:39:51 +01:00
Gareth Rees
fa3e80eb7c
Build and install a shared library on unix platforms.
...
Copied from Perforce
Change: 185543
ServerID: perforce.ravenbrook.com
2014-04-15 11:02:05 +01:00
Gareth Rees
fc86db4ec6
Fix arenarootswalk:
...
1. Blacken the segments again after scanning the roots, so that the roots can be walked again.
2. Don't cast RootGrey to a RootIterateFn -- the types are not compatible.
MMQA test function/122.c now passes.
Copied from Perforce
Change: 185530
ServerID: perforce.ravenbrook.com
2014-04-14 23:38:54 +01:00
Gareth Rees
3731f5741b
Check the poolring so that there is an assertion failure (not a crash) if the client fails to destroy a pool.
...
Copied from Perforce
Change: 185527
ServerID: perforce.ravenbrook.com
2014-04-14 22:31:24 +01:00
Gareth Rees
e5c9808c72
Move the marker down the stack so that gcc's aggressive inline won't scupper it.
...
Copied from Perforce
Change: 185524
ServerID: perforce.ravenbrook.com
2014-04-14 18:37:31 +01:00
Gareth Rees
8865ac761c
Simpler cast, more checking.
...
Copied from Perforce
Change: 185510
ServerID: perforce.ravenbrook.com
2014-04-14 12:32:18 +01:00
Gareth Rees
d728944c50
Simpler cast, more checking.
...
Copied from Perforce
Change: 185507
ServerID: perforce.ravenbrook.com
2014-04-14 12:13:31 +01:00
Gareth Rees
4b5eacdbb7
Avoid warning on lii3gc.
...
Copied from Perforce
Change: 185506
ServerID: perforce.ravenbrook.com
2014-04-14 12:13:22 +01:00
Gareth Rees
857087804d
Simpler casting, and more checking.
...
Copied from Perforce
Change: 185505
ServerID: perforce.ravenbrook.com
2014-04-14 12:07:14 +01:00
Gareth Rees
e3604e83ab
Simpler casting and more checking.
...
Copied from Perforce
Change: 185502
ServerID: perforce.ravenbrook.com
2014-04-14 11:34:20 +01:00
Gareth Rees
2eac654319
Check rings before destroying the control pool, so that you get an assertion when a ring points into space that is about to be unmapped, instead of a crash after it has been unmapped.
...
Copied from Perforce
Change: 185495
ServerID: perforce.ravenbrook.com
2014-04-13 20:51:10 +01:00
Gareth Rees
bc72bc7f79
Avoid strict aliasing warnings from gcc 4.8.
...
Copied from Perforce
Change: 185484
ServerID: perforce.ravenbrook.com
2014-04-12 21:44:18 +01:00
Gareth Rees
7c107c76c0
Fix compilation of eventtxt.c on lii6gc.
...
Copied from Perforce
Change: 185483
ServerID: perforce.ravenbrook.com
2014-04-12 21:33:29 +01:00
Gareth Rees
27d16fc322
Eventtxt no longer reports an error if there are multiple labels associated with an address. instead, it store all the labels encountered, and prints the one that was in force at the time of each event.
...
Use the MPS to manage memory, not malloc/free.
Recommend sort before mpseventtxt and not afterwards (data is smaller; labelling is more accurate).
Copied from Perforce
Change: 185477
ServerID: perforce.ravenbrook.com
2014-04-12 15:34:43 +01:00
Gareth Rees
03c4de821b
Use the mps to manage memory in test cases, not malloc!
...
Copied from Perforce
Change: 185474
ServerID: perforce.ravenbrook.com
2014-04-11 21:27:31 +01:00
Gareth Rees
b033a14564
Ensure that mpseventsql compiles with gcc -wmissing-variable-declarations.
...
Copied from Perforce
Change: 185473
ServerID: perforce.ravenbrook.com
2014-04-11 21:18:23 +01:00
Gareth Rees
2ef0e22c55
Default value for mps_key_arena_size makes it easier to create arenas.
...
Copied from Perforce
Change: 185472
ServerID: perforce.ravenbrook.com
2014-04-11 21:15:09 +01:00
Gareth Rees
55273fd68b
Turn -wconversion off again. (the mps builds with this option with gcc 4.8 but not with gcc 4.6.3 on the travis buildbots.)
...
Copied from Perforce
Change: 185467
ServerID: perforce.ravenbrook.com
2014-04-11 15:28:03 +01:00
Gareth Rees
da307afb81
Turn on -wduplicate-enum and -wmissing-variable-declarations options for clang. ensure the mps compiles with these options.
...
Copied from Perforce
Change: 185466
ServerID: perforce.ravenbrook.com
2014-04-11 15:17:20 +01:00
Gareth Rees
93a79ac8a6
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
3a36920e40
Fix the build for gcc on os x: gcc warns about the missing return in protcatchthread, but we don't want to add one because that would be unreachable code. so use __attribute__((__noreturn__)) instead.
...
Copied from Perforce
Change: 185461
ServerID: perforce.ravenbrook.com
2014-04-11 12:42:26 +01:00
Gareth Rees
c5bf5d4923
Not ready for gcc -wconversion.
...
Copied from Perforce
Change: 185459
ServerID: perforce.ravenbrook.com
2014-04-11 12:17:39 +01:00
Gareth Rees
1a9dd526d9
Add -wconversion to options for gcc and clang.
...
Ensure that the MPS builds with this option with Clang.
Copied from Perforce
Change: 185457
ServerID: perforce.ravenbrook.com
2014-04-11 12:06:28 +01:00
Gareth Rees
9c8713f51b
Fix problems found by coverity. see < https://info.ravenbrook.com/mail/2014/04/10/23-23-42/0/ > for full analysis.
...
Copied from Perforce
Change: 185445
ServerID: perforce.ravenbrook.com
2014-04-11 00:26:48 +01:00
Gareth Rees
c6c46536c2
Must ensure the consistency of a segment even if we are just about to free it, because the segment must pass the segcheck inside segfree.
...
Copied from Perforce
Change: 185440
ServerID: perforce.ravenbrook.com
2014-04-10 19:40:42 +01:00
Gareth Rees
4e30c7d2b8
Don't turn on the alloctable in amsbufferempty when it's shared with nonwhitetable and the colour tables are in use -- this will turn any grey grains in the segment invalid.
...
Add more checking to AMS, including the table use invariant.
Copied from Perforce
Change: 185434
ServerID: perforce.ravenbrook.com
2014-04-10 18:16:29 +01:00
Gareth Rees
8da860f464
Document the constraints on the mean and maximum size arguments to the mv pool class. remove documentation from poolmv.h: this is in the manual now.
...
Copied from Perforce
Change: 185432
ServerID: perforce.ravenbrook.com
2014-04-10 15:36:51 +01:00
Gareth Rees
e30fc43dd4
Fix amcssth -- don't try to test two incompatible features at the same time (see job003561).
...
Set the commit limit in amcss and amcsshe so that we test that the MPS can live in a tight memory limit.
Don't try to detect when the MPS has made a "dynamic" collection. This is not reliable or maintainable.
Copied from Perforce
Change: 185430
ServerID: perforce.ravenbrook.com
2014-04-10 15:06:58 +01:00
Gareth Rees
a595c2ff20
Trying to create a freelist with too-small alignment is a static programming error, not a dynamic failure condition, so aver instead of returning resparam. (see job003485).
...
Copied from Perforce
Change: 185426
ServerID: perforce.ravenbrook.com
2014-04-10 13:02:22 +01:00
Gareth Rees
c4767b5a31
Correct the nailboard level sizes; add assertion to nailboardindex checking this.
...
Copied from Perforce
Change: 185421
ServerID: perforce.ravenbrook.com
2014-04-10 12:24:49 +01:00
Gareth Rees
c103afa016
Delete mpsw3.h (and associated warning pragma): obsoleted by change from structured to vectored exception handling.
...
Copied from Perforce
Change: 185399
ServerID: perforce.ravenbrook.com
2014-04-09 17:31:06 +01:00
Gareth Rees
00901670be
The alignment of an awl pool is now set to the format alignment, as documented. the alignment restriction on pointers is now based on sizeof(void *), not mps_pf_align.
...
Copied from Perforce
Change: 185357
ServerID: perforce.ravenbrook.com
2014-04-08 18:29:25 +01:00
Gareth Rees
3f50055416
Fix bugs in exposet0.c and steptest.c on windows.
...
Port djbench and gcbench to Windows.
Run amcssth and awlutth test cases on Windows.
Copied from Perforce
Change: 185354
ServerID: perforce.ravenbrook.com
2014-04-08 16:26:27 +01:00
Gareth Rees
e45793ce57
New header testthr.h provides simple threading interface.
...
Implementations testthrix.c for Unix and testthrw3.c for Windows.
Multi-threaded test cases use the new interface.
Rename lockutw3 to lockut (no longer Windows-specific).
Run multi-threaded test cases on Windows and lockut elsewhere.
Copied from Perforce
Change: 185350
ServerID: perforce.ravenbrook.com
2014-04-08 15:14:32 +01:00
Gareth Rees
9a57106d49
Remove unnecessary headers from the test suite.
...
Copied from Perforce
Change: 185340
ServerID: perforce.ravenbrook.com
2014-04-08 13:03:04 +01:00
Gareth Rees
262bb324f3
No keyword arguments needed in these cbsfastlandclass initializations.
...
Copied from Perforce
Change: 185329
ServerID: perforce.ravenbrook.com
2014-04-08 00:13:50 +01:00
Gareth Rees
b86947796e
Amc/amcz subclass test needs to be other way round now.
...
Smoke tests for AMCZ -- add it to amcss, amcsshe, amcssth, finaltest and walkt0.
Smoke tests for LO -- add it to walkt0.
Fix finaltest for AMC and AWL -- need to allocate in generation 0 to get prompt finalization. (Also fix MMQA test function/51.c.)
Copied from Perforce
Change: 185327
ServerID: perforce.ravenbrook.com
2014-04-07 23:05:35 +01:00
Gareth Rees
c680b9410a
Ensure that the win32_lean_and_mean is not changed by mpswin.h.
...
Copied from Perforce
Change: 185323
ServerID: perforce.ravenbrook.com
2014-04-07 18:27:57 +01:00
Gareth Rees
a3b3fcc7b6
There's no need for test cases to include mpsw3.h any more.
...
Copied from Perforce
Change: 185322
ServerID: perforce.ravenbrook.com
2014-04-07 18:19:37 +01:00
Gareth Rees
88509784e3
Avoid "potentially uninitialized local variable used" errors from microsoft visual c.
...
Copied from Perforce
Change: 185319
ServerID: perforce.ravenbrook.com
2014-04-07 17:56:20 +01:00
Gareth Rees
6432d58813
Fix the condition for splaynodeupdate.
...
Copied from Perforce
Change: 185307
ServerID: perforce.ravenbrook.com
2014-04-07 16:26:03 +01:00
Gareth Rees
d097de9ec0
Catch-up merge from master sources to branch/2014-03-30/addrset.
...
Copied from Perforce
Change: 185299
ServerID: perforce.ravenbrook.com
2014-04-07 15:45:13 +01:00
Gareth Rees
b90f8b9bcd
Use cbs subclasses to implement the fast-find and find-in-zones features. this avoids the need to control behaviour by passing booleans, and it means that there is no wasted space in the cbs block structure when these features are not used.
...
Bring splay tree design up to date; add missing diagrams; move it to the "current" section of the manual.
Copied from Perforce
Change: 185294
ServerID: perforce.ravenbrook.com
2014-04-07 15:36:18 +01:00