Gareth Rees
3dbe56a8b7
Rename prot{i3,i6}.c to prmc{i3,i6}.c because these files are part of the protection mutator context module.
...
Rename prmc{i3,i6}{fr,li,w3,xc}.c to prmc{fr,li,w3,xc}{i3,i6}.c for consistency of ordering of platform codes (OS before AR before CT).
Copied from Perforce
Change: 192512
ServerID: perforce.ravenbrook.com
2016-10-13 13:24:47 +01:00
Gareth Rees
904ac5beb6
Revert incorrect change to globalspreparetodestroy (see change 192365) that made the mps assert when destroying an arena with uncollected finalization messages.
...
Copied from Perforce
Change: 192473
ServerID: perforce.ravenbrook.com
2016-09-27 11:57:19 +01:00
Gareth Rees
d44d50dfd0
The mmqa runset command now takes multiple test-sets.
...
Copied from Perforce
Change: 192418
ServerID: perforce.ravenbrook.com
2016-09-14 16:24:34 +01:00
Gareth Rees
2b3d00c1ee
Update following release 1.116.0.
...
Copied from Perforce
Change: 192406
ServerID: perforce.ravenbrook.com
2016-09-14 14:18:17 +01:00
Gareth Rees
4d5ae93957
Don't set stackprobedepth to 500 if config_pf_ansi is defined -- this leads to an assertion failure in span.c.
...
Copied from Perforce
Change: 192393
ServerID: perforce.ravenbrook.com
2016-09-14 13:03:27 +01:00
Gareth Rees
3b03393381
Account allocations in amc segments between whiten and reclaim as condemned, improving the accuracy of the mortality calculation and avoiding assertion failure.
...
Copied from Perforce
Change: 192387
ServerID: perforce.ravenbrook.com
2016-09-14 12:49:51 +01:00
Gareth Rees
5f86690a08
Update mps_release in preparation for forthcoming release 1.116.0.
...
Copied from Perforce
Change: 192370
ServerID: perforce.ravenbrook.com
2016-09-13 17:43:39 +01:00
Gareth Rees
4cc81bb371
Merge branch/2016-09-06/job004006.
...
Copied from Perforce
Change: 192365
ServerID: perforce.ravenbrook.com
2016-09-13 17:32:07 +01:00
Gareth Rees
63a44e3a91
Fix problems noted in review.
...
Copied from Perforce
Change: 192357
ServerID: perforce.ravenbrook.com
2016-09-13 17:19:07 +01:00
Gareth Rees
3cd7835844
Catch-up merge from custom/cet/branch/2016-09-13/job004006 to branch/2016-09-06/job004006.
...
Copied from Perforce
Change: 192351
ServerID: perforce.ravenbrook.com
2016-09-13 15:33:31 +01:00
Gareth Rees
3f13486e08
Usability improvements for mmqa:
...
* -i option (MPS_INCLUDE_DIR) now defaults to the code directory relative to the test harness location.
* -p option (PLATFORM) is now a six-character platform code for consistency with the rest of the MPS.
* New -v option (VARIETY) for specifying cool/hot/rash.
* -l option (MPS_LINK_OBJ) now defaults to the appropriate object file for the platform and variety.
* The object file is built automatically.
* If $Id$ of a test file is longer than 70 characters, cut characters out of the middle rather than off the end.
* Eliminate obsolete option -prod (MPS_PRODUCT).
* Support for FreeBSD.
Copied from Perforce
Change: 192285
ServerID: perforce.ravenbrook.com
2016-09-12 11:55:36 +01:00
Gareth Rees
8340e390a5
In order to be able to test mps_arena_busy in all build configurations, we must always take and release the arena lock, even in the single-threaded case. we gain some additional checking by doing this, at low cost (since in this build configuration the locks are generic and so just increment/decrement a count of claims).
...
In the CONFIG_POLL_NONE we configuration, we would still like to check that no traces are busy when leaving the arena, but since we now call ArenaLeave in this configurations, move the assertion to ShieldLeave.
In ArenaDestroy, call ArenaLeave, don't just release the lock.
Copied from Perforce
Change: 192267
ServerID: perforce.ravenbrook.com
2016-09-09 13:01:25 +01:00
Gareth Rees
7869db227e
Improve documentation.
...
Copied from Perforce
Change: 192258
ServerID: perforce.ravenbrook.com
2016-09-09 11:18:12 +01:00
Gareth Rees
cf6c484a89
Lockisheld implementation for generic ("ansi") locks.
...
When CONFIG_THREAD_SINGLE is defined, use the generic lock module rather than compiling out all lock calls via lock.h. (Otherwise test cases that check LockIsHeld will fail.)
Copied from Perforce
Change: 192254
ServerID: perforce.ravenbrook.com
2016-09-09 11:01:04 +01:00
Gareth Rees
d8c32f0d3f
New functions mps_arena_busy and mps_arena_postmortem, plus test coverage.
...
Copied from Perforce
Change: 192247
ServerID: perforce.ravenbrook.com
2016-09-08 13:55:43 +01:00
Gareth Rees
8523b6f666
Remove support for linux 2.4 and 2.5 (these versions used linuxthreads). linux is now supported from version 2.6 onwards (these versions use posix threads).
...
Copied from Perforce
Change: 192240
ServerID: perforce.ravenbrook.com
2016-09-08 11:36:02 +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
331ec20beb
Catch-up merge from master sources to branch/2016-04-12/job004000.
...
Copied from Perforce
Change: 192187
ServerID: perforce.ravenbrook.com
2016-09-05 16:01:17 +01:00
Gareth Rees
90a16b56b1
Catch-up merge from master sources to branch/2016-04-21/amswalk.
...
Copied from Perforce
Change: 192181
ServerID: perforce.ravenbrook.com
2016-09-05 15:48:47 +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
Gareth Rees
baf2277b30
Catch-up merge from the master sources.
...
Copied from Perforce
Change: 192170
ServerID: perforce.ravenbrook.com
2016-09-05 15:21:33 +01:00
Gareth Rees
18e0381952
When injecting allocation failures to test the fail-over land, don't also inject failures into the arena's free land's block pool.
...
Copied from Perforce
Change: 192164
ServerID: perforce.ravenbrook.com
2016-09-05 13:17:59 +01:00
Gareth Rees
b9b1ad9074
Correct the logic in mvfreesize -- lost spans are not accounted as free. only sum the free space in the spans in checking varieties, otherwise just return the cached sum.
...
Copied from Perforce
Change: 192159
ServerID: perforce.ravenbrook.com
2016-09-05 12:03:46 +01:00
Gareth Rees
d7e36f8dbb
Don't pick a grain size that's so large that you can't avoid hitting the commit limit.
...
Copied from Perforce
Change: 192154
ServerID: perforce.ravenbrook.com
2016-09-05 11:37:19 +01:00
Gareth Rees
49198a35ee
Add _critical to assertions on the critical path for manual-allocation-bound programs using mvff. this brings the hot/rash ratio for "djbench mvff" down from over 150% to about 130%.
...
Copied from Perforce
Change: 192148
ServerID: perforce.ravenbrook.com
2016-09-04 19:20:05 +01:00
Gareth Rees
4dd6e899f5
Build and test the toy scheme interpreter during continuous integration, to reduce the risk of accidentally breaking it.
...
Copied from Perforce
Change: 192133
ServerID: perforce.ravenbrook.com
2016-09-04 14:47:08 +01:00
Gareth Rees
8005cb5f77
Initialize in/out parameter old_exception_count before passing it to thread_swap_exception_ports.
...
Copied from Perforce
Change: 192128
ServerID: perforce.ravenbrook.com
2016-09-04 14:28:28 +01:00
Gareth Rees
0400178bf4
Support registering a thread with the mps multiple times on os x.
...
Restore test case.
Copied from Perforce
Change: 192127
ServerID: perforce.ravenbrook.com
2016-09-04 14:23:07 +01:00
Gareth Rees
08bd2f3474
New preprocessor constants config_pthreadext_sigsuspend and config_pthreadext_sigresume for configuring the signals used to suspend and resume threads.
...
Copied from Perforce
Change: 192122
ServerID: perforce.ravenbrook.com
2016-09-04 13:55:39 +01:00
Gareth Rees
89b1b02ee5
Add a case for rootthread to rootcheck.
...
Add test coverage for mps_root_create_thread_scanned and mps_root_create_area; improve coverage for mps_root_create_area_tagged, mps_scan_area_tagged, mps_scan_area.
Copied from Perforce
Change: 192111
ServerID: perforce.ravenbrook.com
2016-09-04 11:56:09 +01:00
Gareth Rees
7d5e5ac0e0
Avoid strict aliasing errors in the mps test suite, so that it compiles and runs using gcc 6.1.
...
Update the manual entries for mps_alloc and mps_sac_alloc with notes highlighting the problem.
Copied from Perforce
Change: 192104
ServerID: perforce.ravenbrook.com
2016-09-02 19:20:58 +01:00
Gareth Rees
55adbe705d
Fix assertion text in the manual.
...
Place a cross-reference by each assertion the appears in the manual, to assist in keeping the manual up to date.
Copied from Perforce
Change: 192097
ServerID: perforce.ravenbrook.com
2016-09-02 14:11:08 +01:00
Gareth Rees
9b81dcb5c4
New program mpseventpy emits python data structures representing telemetry events.
...
Copied from Perforce
Change: 191895
ServerID: perforce.ravenbrook.com
2016-06-02 15:02:05 +01:00
Gareth Rees
6f196185a1
Make shield assertions robust against deep checking -- when shieldcover is called from shieldraise there is one unsynced segment that has not yet been queued. record this fact in a new queuepending flag in the shield structure.
...
Remove incorrect shield assertion "shield->depth == 0 || shield->suspended" -- depth may be increased without suspending the mutator if the segment did not need protecting.
Copied from Perforce
Change: 191812
ServerID: perforce.ravenbrook.com
2016-05-03 17:25:27 +01:00
Gareth Rees
11944d44c2
Patch the mfs pool's alloc method instead of rewriting its class -- the latter violates the class invariants and so asserts when deep checking is turned on.
...
Copied from Perforce
Change: 191779
ServerID: perforce.ravenbrook.com
2016-05-02 13:49:43 +01:00
Gareth Rees
fa2fced306
Clear the emergency before removing the trace from busytraces, to avoid violating <code/global.c#emergency.invariant>.
...
Copied from Perforce
Change: 191774
ServerID: perforce.ravenbrook.com
2016-05-02 13:06:07 +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
David Lovemore
68c746c4c1
Catch-up merge from branch/2016-04-12/job004000 to branch/2016-04-13/mortality.
...
Copied from Perforce
Change: 191678
ServerID: perforce.ravenbrook.com
2016-04-27 12:20:36 +01:00
David Lovemore
7c1b53e58f
Fixed a slowdown caused by initing each generation with the same parameters.
...
Copied from Perforce
Change: 191677
ServerID: perforce.ravenbrook.com
2016-04-27 12:08:24 +01:00
Richard Brooksby
139c44155b
Converting arena finish and describe methods to specialize instfinish and instdescribe.
...
Copied from Perforce
Change: 191614
ServerID: perforce.ravenbrook.com
2016-04-23 16:31:26 +01:00
Richard Brooksby
66f9fe6841
Converting buffer finish and describe methods to specialize instfinish and instdescribe.
...
Copied from Perforce
Change: 191608
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
ff10c03351
Converting land describe methods to specialize instdescribe.
...
Copied from Perforce
Change: 191607
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
a953a293e7
Converting land finish methods to specialize instfinish.
...
Copied from Perforce
Change: 191606
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +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
1f8eb75895
Converting pool describe methods to specialise instdescribe.
...
Copied from Perforce
Change: 191604
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
a6dbb075df
Making init a method on inst and using it as next-method in segments.
...
Copied from Perforce
Change: 191603
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
Richard Brooksby
9a38cd69db
Making describe a method on inst and implementing generic describe for segments.
...
Copied from Perforce
Change: 191601
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:11 +01:00