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
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
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
a51ebd62ea
Add default case to switch statement so that it compiles with gcc -wswitch-default.
...
Copied from Perforce
Change: 185293
ServerID: perforce.ravenbrook.com
2014-04-07 15:35:17 +01:00
Gareth Rees
20136d505d
Merge branch/2014-01-15/nailboard into the master sources.
...
Copied from Perforce
Change: 185285
ServerID: perforce.ravenbrook.com
2014-04-07 14:23:18 +01:00
Gareth Rees
b7c3b0ae84
Can't can't checkd_nosig(ring, &arenaring) because &arenaring is never null and gcc will warn about a constant comparison.
...
Copied from Perforce
Change: 185279
ServerID: perforce.ravenbrook.com
2014-04-07 13:22:21 +01:00
Gareth Rees
4e8b76ac54
Catch-up merge from master sources to branch/2014-01-15/nailboard.
...
Copied from Perforce
Change: 185275
ServerID: perforce.ravenbrook.com
2014-04-07 10:38:08 +01:00
Gareth Rees
f2776dc0b4
Can't use checkd_nosig(tree, ...) because treeempty is null.
...
arena->enabledMessageTypes might be NULL.
Copied from Perforce
Change: 185271
ServerID: perforce.ravenbrook.com
2014-04-07 10:14:40 +01:00
Gareth Rees
0f445a4ea4
Remove "todo: checkleveldeep asserts on arena creation with bootstrapping problems." -- this was fixed in change 184924.
...
Copied from Perforce
Change: 185267
ServerID: perforce.ravenbrook.com
2014-04-07 00:29:09 +01:00
Gareth Rees
d3d2795fce
Improve control over checking:
...
1. Where Type is a pointer type with a signature, replace CHECKL(TypeCheck(val)) with CHECKD(Type, val).
2. Where Type is a pointer type with no signature, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val).
3. Where Type is a pointer type with a signature, but the structure is not visible at point of checking, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val). Reference <design/check/#.hidden-type>
4. Make BTCheck extern and use it where possible.
5. Replace AVER(TypeCheck(val)) with AVERT(Type, val).
Copied from Perforce
Change: 185263
ServerID: perforce.ravenbrook.com
2014-04-06 22:51:05 +01:00
Gareth Rees
9c54379464
Must check against treeempty, not null.
...
Copied from Perforce
Change: 185261
ServerID: perforce.ravenbrook.com
2014-04-06 21:50:56 +01:00
Gareth Rees
116021aef0
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
31154ac728
Avoid calling sizeroundup when the result needs to be a count.
...
Use PointerAdd instead of casting to (char *) and back again.
Copied from Perforce
Change: 185256
ServerID: perforce.ravenbrook.com
2014-04-06 17:35:57 +01:00
Gareth Rees
ee5b6b12b3
Poolarena must be thread-safe, so add a comment.
...
Copied from Perforce
Change: 185250
ServerID: perforce.ravenbrook.com
2014-04-06 16:44:07 +01:00
Gareth Rees
c2383c4ec9
Remove unneeded headers.
...
Copied from Perforce
Change: 185248
ServerID: perforce.ravenbrook.com
2014-04-06 15:53:54 +01:00
Gareth Rees
906209e2d0
Remove todo -- this was done in change 179501.
...
Copied from Perforce
Change: 185247
ServerID: perforce.ravenbrook.com
2014-04-06 15:53:34 +01:00
Gareth Rees
2f9067da36
Event arenablacklistzone was deleted, but event_version_minor was not updated; and the instruction "when you retire an event type, don't delete it from the list -- comment it out" was not followed.
...
Delete TODO item: EVENT_VERSION numbers are parameters to the EventInit event.
Copied from Perforce
Change: 185246
ServerID: perforce.ravenbrook.com
2014-04-06 15:52:56 +01:00
Gareth Rees
a7bc489409
Refactor walkt0 test case so that it can test different pool classes.
...
Copied from Perforce
Change: 185244
ServerID: perforce.ravenbrook.com
2014-04-06 11:47:36 +01:00
Gareth Rees
cd377eb050
Refactor finaltest so that it is capable of testing different pool classes.
...
Copied from Perforce
Change: 185235
ServerID: perforce.ravenbrook.com
2014-04-04 21:59:45 +01:00
Gareth Rees
9bb6b2f8be
Tidy-up of attributes and pool classes:
...
* Bring design up to date.
* New function PoolHasAttr encapsulates attribute checking.
* Abstract classes are abstract and mustn't be checked.
* The dummy pool class in fotest needs a size.
* Abstract pool classes null out methods that they can't provide a generic implementation for, to force subclasses to provide one.
* New function PoolTrivFramePopPending provides a generic implementation of that method.
* Rename PoolNoFreeWalk to PoolTrivFreeWalk since it has NOOP rather than NOTREACHED.
* Check that AttrMOVINGGC implies AttrGC.
* Remove unimplemented attributes (BUF_RESERVE, BUF_ALLOC, INCR_RB, INCR_WB, PM)
* AMC now inherits from AMCZ instead of the other way round. This is simpler: AMC adds features to AMCZ rather than AMCZ taking features away (and not quite getting it right).
* Similarly, LO inherits from AbstractSegBufPoolClass + PoolClassMixInCollect so that it doesn't have to clear AttrSCAN and the scan methods.
* Fix bug in MFSCheck -- mustn't check unroundedUnitSize >= UNIT_MIN since small unit sizes are rounded up to UNIT_MIN.
* Don't see AttrFREE in MRG (since no free method is supplied).
* Check AttrSCAN systematically (in PoolScan and SegCheck) rather than opportunistically in TraceStart and TraceQuantum.
Copied from Perforce
Change: 185231
ServerID: perforce.ravenbrook.com
2014-04-04 17:05:08 +01:00
Gareth Rees
673eea41a0
Check classes after defining them.
...
Copied from Perforce
Change: 185228
ServerID: perforce.ravenbrook.com
2014-04-04 12:51:07 +01:00
Gareth Rees
94e3fff083
Turn on -wswitch-default for gcc.
...
Add missing default: cases to switch statements.
Copied from Perforce
Change: 185226
ServerID: perforce.ravenbrook.com
2014-04-04 12:16:59 +01:00
Gareth Rees
6ef4b6e0c6
Explain how to call mps_root_create_table() safely (avoiding type punning). fix example for mps_root_create_table_masked(). use the recommended approach in qs.c.
...
Copied from Perforce
Change: 185223
ServerID: perforce.ravenbrook.com
2014-04-04 11:49:19 +01:00
Gareth Rees
3f07e913b7
Fix airtest to use its own ambiguous root instead of relying on references to disappear from the c stack (which they don't on lii6ll).
...
Copied from Perforce
Change: 185218
ServerID: perforce.ravenbrook.com
2014-04-04 10:30:45 +01:00
Gareth Rees
feaa22a74f
Remove unnecessary calls to mps_args_done -- these crept back in via the merge of the cbs-tract-alloc branch.
...
Copied from Perforce
Change: 185143
ServerID: perforce.ravenbrook.com
2014-04-01 22:43:58 +01:00
Gareth Rees
5dc1122db8
Catch-up merge from master sources to branch/2014-01-15/nailboard.
...
Copied from Perforce
Change: 185138
ServerID: perforce.ravenbrook.com
2014-04-01 22:08:45 +01:00
Gareth Rees
a29c01d416
Clang can compile eventsql.c with -pedantic but gcc cannot.
...
Copied from Perforce
Change: 185137
ServerID: perforce.ravenbrook.com
2014-04-01 22:07:48 +01:00
Gareth Rees
fe837568b9
Cast pointer to void * for the benefit of gcc.
...
Copied from Perforce
Change: 185133
ServerID: perforce.ravenbrook.com
2014-04-01 21:12:58 +01:00
Gareth Rees
1fc2bbe52b
Fixed dl's review comments < https://info.ravenbrook.com/mail/2014/04/01/13-28-17/0/ >.
...
Copied from Perforce
Change: 185127
ServerID: perforce.ravenbrook.com
2014-04-01 17:02:00 +01:00
Gareth Rees
4ee6bdd356
Explain why the last level in the nailboard might be tiny (to avoid special cases for small nailboards).
...
Copied from Perforce
Change: 185122
ServerID: perforce.ravenbrook.com
2014-04-01 13:32:42 +01:00
Gareth Rees
3bbde3766b
Generate dependencies for fmtscheme.c.
...
Copied from Perforce
Change: 185120
ServerID: perforce.ravenbrook.com
2014-04-01 12:11:06 +01:00
Richard Brooksby
3c543eb1a2
Catch up merge from masters to branch/2014-01-15/nailboard.
...
Copied from Perforce
Change: 185118
ServerID: perforce.ravenbrook.com
2014-04-01 11:43:47 +01:00
Gareth Rees
d190a9221c
Fixed rb's review comments < https://info.ravenbrook.com/mail/2014/03/31/15-48-46/0/ >
...
Copied from Perforce
Change: 185111
ServerID: perforce.ravenbrook.com
2014-03-31 19:03:32 +01:00
Gareth Rees
9a523d0ccb
Fix compilation on lii6gc:
...
* Don't test __has_feature unless we know we are on MPS_BUILD_LL.
* Fix type-punned pointer aliasing in expt825.c.
Copied from Perforce
Change: 185104
ServerID: perforce.ravenbrook.com
2014-03-31 13:01:40 +01:00