Avoid spurious output from rmdir when running "nmake clean".
Explicit instructions for users compiling for 64-bit Windows.
Remove #pragma warning(disable: ...) for Microsoft Visual C/C++ warnings that are no longer generated by the code, so that we get the maximum checking from this compiler.
Merge branch/2014-03-21/pellesc into the master sources.
Preserve the first table entry, so as to avoid false positives when this is kept alive by a register or stack-local variable.
Avoid spurious output from rmdir.
Fix header comment for ssw3i6*.c -- WIN64 not WIN32.
Turn on -Wunreachable-code for GCC and Clang.
Remove unreachable code:
* No need to have different debug options or structured allocation classes for different platforms.
* Don't use STATISTIC_BEGIN, use STATISTIC_STAT.
* #ifdef away the unused code in zmess.c for testing ControlAlloc failure.
* Remove unused code from the example Scheme interpreter.
Turn off -Wunreachable-code in gcc: too many false positives.
Support the Clang address sanitizer.
Bring .p4ignore up to date so that p4 status is clean.
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.
Fix typo: "if exists" should be "if exist".
Clang can compile eventsql.c with -pedantic but GCC cannot.
Remove unnecessary calls to MPS_ARGS_DONE -- these crept back in via the merge of the cbs-tract-alloc branch.
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.
Improve wording.
Turn on -Wswitch-default for GCC.
Add missing default: cases to switch statements.
Check classes after defining them.
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.