Gareth Rees
fe1f07321b
Fix makefile, accidentally broken by change 192512.
...
Copied from Perforce
Change: 192539
ServerID: perforce.ravenbrook.com
2016-10-13 19:13:31 +01:00
Gareth Rees
d31012f13a
Implement mutatorcontextsp and mutatorcontextscan for platforms w3i3 and w3i6.
...
This means that ThreadScan becomes identical on these two platforms and can be moved to thw3.c.
This means that thw3.h, thw3i3.c and thw3i6.c become redundant and can be deleted.
Copied from Perforce
Change: 192534
ServerID: perforce.ravenbrook.com
2016-10-13 16:28:50 +01:00
Gareth Rees
91551170b1
Remove return statements that have no effect.
...
Copied from Perforce
Change: 192529
ServerID: perforce.ravenbrook.com
2016-10-13 15:17:50 +01:00
Gareth Rees
5c31ca3cab
Rename the "protection mutator context" module to "mutator context" (this module handles mutator context decoding for both the protection module and the thread module).
...
Rename functions Prot{Can,}StepInstruction to MutatorContext{Can,}StepInstruction so that they follow the naming convention in guide.implc.naming.prefix.program.
Move mutator context declarations out of prot.h into new header prmc.h.
Correct .assume.null in a couple of places -- it's not safe for MutatorContextStepInstruction to return ResUNIMPL, instead MutatorContextCanStepInstruction should return FALSE.
Copied from Perforce
Change: 192528
ServerID: perforce.ravenbrook.com
2016-10-13 15:06:14 +01:00
Gareth Rees
c35e544d73
Rename mutatorfaultcontext to mutatorcontext because this data structure is not only used to store the context of a fault, but also to store the context of a thread that has been suspended.
...
Copied from Perforce
Change: 192523
ServerID: perforce.ravenbrook.com
2016-10-13 14:23:39 +01:00
Gareth Rees
5a580660f6
Remove undocumented global mps_exception_info. now that the mps is open source, there is no difficulty in debugging the mutator context.
...
Copied from Perforce
Change: 192518
ServerID: perforce.ravenbrook.com
2016-10-13 13:45:31 +01:00
Gareth Rees
8b002dc4d5
Fix testmmqa target in the hot variety.
...
Copied from Perforce
Change: 192515
ServerID: perforce.ravenbrook.com
2016-10-13 13:31:58 +01:00
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
8e25464f59
Generate "assert_or_abort" after an abort.
...
Copied from Perforce
Change: 192506
ServerID: perforce.ravenbrook.com
2016-10-12 15:59:54 +01:00
Gareth Rees
7660d06b73
Some mmqa test cases assert on windows but abort with a segmentation fault on os x. use new test outcome assert_or_abort so that these pass on all platforms.
...
Copied from Perforce
Change: 192503
ServerID: perforce.ravenbrook.com
2016-10-12 15:47:10 +01:00
Gareth Rees
5d35f56813
There are four states now, not three.
...
Copied from Perforce
Change: 192478
ServerID: perforce.ravenbrook.com
2016-09-27 18:49:18 +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
072f30009d
Differentiate argerr/42.c and argerr/43.c so that the msvc incremental linker reliably updates the executable when we compile one and then the other.
...
Copied from Perforce
Change: 192467
ServerID: perforce.ravenbrook.com
2016-09-26 18:21:01 +01:00
Gareth Rees
a8ac974415
Avoid "conversion from 'size_t' to 'unsigned long', possible loss of data" warnings from microsoft visual c.
...
Copied from Perforce
Change: 192462
ServerID: perforce.ravenbrook.com
2016-09-26 16:59:35 +01:00
Gareth Rees
cc0d5a2b25
Avoid parentheses in parameters so that the test case passes on windows.
...
Copied from Perforce
Change: 192457
ServerID: perforce.ravenbrook.com
2016-09-26 16:17:38 +01:00
Gareth Rees
31db2e055c
Platform alignment is 16 on w3i6mv, so use mps_pf_align to avoid alignment failure.
...
Copied from Perforce
Change: 192456
ServerID: perforce.ravenbrook.com
2016-09-26 16:13:39 +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
dbdf1696fb
More detailed windows test procedure.
...
Copied from Perforce
Change: 192386
ServerID: perforce.ravenbrook.com
2016-09-14 12:48:46 +01:00
Gareth Rees
eff92bd52c
Design.mps.nailboard.limitations.reclaim was recorded as job003856 and fixed by change 186812, so remove it from the design doc.
...
Copied from Perforce
Change: 192385
ServerID: perforce.ravenbrook.com
2016-09-14 12:48:23 +01:00
Gareth Rees
ed78e1e387
Fix references; automated procedure needs -g option.
...
Copied from Perforce
Change: 192375
ServerID: perforce.ravenbrook.com
2016-09-13 17:50:35 +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
201314f131
Support for customer task branches.
...
Copied from Perforce
Change: 192340
ServerID: perforce.ravenbrook.com
2016-09-13 12:41:52 +01:00
Gareth Rees
bdfc695361
Merge branch/2016-09-12/job004020.
...
Copied from Perforce
Change: 192325
ServerID: perforce.ravenbrook.com
2016-09-13 10:50:21 +01:00
Gareth Rees
2c5b947f9d
Mmqa test suite now passes on freebsd.
...
Copied from Perforce
Change: 192320
ServerID: perforce.ravenbrook.com
2016-09-13 10:19:03 +01:00
Gareth Rees
3398d94ecf
Avoid warnings from gcc 4.2 on freebsd.
...
Copied from Perforce
Change: 192310
ServerID: perforce.ravenbrook.com
2016-09-12 14:39:55 +01:00
Gareth Rees
2e583c6992
Predictable address space layout is only a problem on freebsd.
...
Copied from Perforce
Change: 192305
ServerID: perforce.ravenbrook.com
2016-09-12 13:58:00 +01:00
Gareth Rees
42dbb3bd5a
Need gmake on freebsd ("make" is bsd make).
...
Copied from Perforce
Change: 192297
ServerID: perforce.ravenbrook.com
2016-09-12 12:53:25 +01:00
Gareth Rees
eba3fdff52
New mmqa command debug compiles a test case and launches the debugger.
...
Copied from Perforce
Change: 192290
ServerID: perforce.ravenbrook.com
2016-09-12 12:26:40 +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
0867fe4dde
Branching master to branch/2016-09-12/job004020.
...
Copied from Perforce
Change: 192275
ServerID: perforce.ravenbrook.com
2016-09-12 09:48:55 +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
b02f39428a
Use imperative mood consistently.
...
Copied from Perforce
Change: 192259
ServerID: perforce.ravenbrook.com
2016-09-09 11:19:14 +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
7c062cf7e9
Improve description of postmortem state in the manual.
...
Copied from Perforce
Change: 192257
ServerID: perforce.ravenbrook.com
2016-09-09 11:10:03 +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
045ff75367
Catch-up merge from master sources to branch/2016-09-06/job004006.
...
Copied from Perforce
Change: 192242
ServerID: perforce.ravenbrook.com
2016-09-08 11:46:38 +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
665d8197f0
Use area roots (instead of a thread root) to ensure that objects are finalized reliably even in the hot variety.
...
Copied from Perforce
Change: 192235
ServerID: perforce.ravenbrook.com
2016-09-08 10:57:07 +01:00
Gareth Rees
419ba15d42
Change 192148 (the fix for job004017) caused the hot variety to compile out assertions on the critical path in manual-allocation-bound programs, which caused various mmqa test cases to fail in the hot variety. move these failing tests to the coolonly testset.
...
Copied from Perforce
Change: 192234
ServerID: perforce.ravenbrook.com
2016-09-08 10:55:59 +01:00
Gareth Rees
c2e44cb103
The awl pool contains only weak references to objects that died, so the mps may be able to deduce (via its summary) that it does not need to be condemned, even to collect the world.
...
Copied from Perforce
Change: 192226
ServerID: perforce.ravenbrook.com
2016-09-07 10:20:39 +01:00
Gareth Rees
9bf231cf42
Branching master to branch/2016-09-06/job004006.
...
Copied from Perforce
Change: 192214
ServerID: perforce.ravenbrook.com
2016-09-06 11:41:23 +01:00
Gareth Rees
250fe26b81
Fix typo.
...
Copied from Perforce
Change: 192209
ServerID: perforce.ravenbrook.com
2016-09-05 23:50:29 +01:00
Gareth Rees
fc35c9b54a
Correct architectures.
...
Copied from Perforce
Change: 192208
ServerID: perforce.ravenbrook.com
2016-09-05 23:47:18 +01:00