Gareth Rees
e8f37dd478
Specification for patterniterate(). dereference visitor.
...
Copied from Perforce
Change: 186433
ServerID: perforce.ravenbrook.com
2014-06-08 14:37:46 +01:00
Gareth Rees
a42939ecf4
Tidy comments.
...
Copied from Perforce
Change: 186430
ServerID: perforce.ravenbrook.com
2014-06-08 13:48:31 +01:00
Richard Brooksby
f61c3d37c7
Lifting duplicate code hazard in patterncopy and patterncheck. see < https://info.ravenbrook.com/mail/2014/06/04/14-41-06/0/ >.
...
Copied from Perforce
Change: 186420
ServerID: perforce.ravenbrook.com
2014-06-05 13:40:05 +01:00
Richard Brooksby
f01866c7f0
Fixing wrong function name in comment.
...
Copied from Perforce
Change: 186418
ServerID: perforce.ravenbrook.com
2014-06-05 13:14:37 +01:00
Richard Brooksby
7431b6355e
Removing assumption that segnext returns segments in address order. see < https://info.ravenbrook.com/mail/2014/06/04/14-41-06/0/ >.
...
Copied from Perforce
Change: 186417
ServerID: perforce.ravenbrook.com
2014-06-05 13:14:09 +01:00
Gareth Rees
633516ed82
Debug options structures are incompatible with gcc -wwrite-strings.
...
Copied from Perforce
Change: 185493
ServerID: perforce.ravenbrook.com
2014-04-13 19:52:51 +01:00
Gareth Rees
d2541a6fd0
Avoid "cast discards const qualifier from pointer target type" error from gcc.
...
Copied from Perforce
Change: 185491
ServerID: perforce.ravenbrook.com
2014-04-13 19:23:33 +01:00
Gareth Rees
47fbeb1572
Provide a default value for mps_key_pool_debug_options.
...
Don't use const in the types of the debugging templates: it's infectious!
Copied from Perforce
Change: 185489
ServerID: perforce.ravenbrook.com
2014-04-13 18:02:10 +01:00
Gareth Rees
5d7fc9a78f
Comment is no longer true: now handle blocks that span segments.
...
Copied from Perforce
Change: 185487
ServerID: perforce.ravenbrook.com
2014-04-13 10:28:19 +01:00
Gareth Rees
a2a6648e27
Remove claim ".fence.size guarantees the template is larger" since this is no longer true. update debugging pool design to record the newly discovered portability requirement.
...
Copied from Perforce
Change: 185411
ServerID: perforce.ravenbrook.com
2014-04-09 19:00:50 +01:00
Gareth Rees
63195c904b
Avoid "cast discards const qualifier from pointer target type" from gcc.
...
Copied from Perforce
Change: 185406
ServerID: perforce.ravenbrook.com
2014-04-09 17:58:09 +01:00
Gareth Rees
a53b477773
Sac stress test now tests with a variety of alignments, and tests the mfs class too.
...
Copied from Perforce
Change: 185390
ServerID: perforce.ravenbrook.com
2014-04-09 14:38:20 +01:00
Gareth Rees
ad73388c21
Size class structures (mps_sac_class_s) are public, so should have names starting with "mps_" (these were removed incorrectly in change 179383).
...
Copied from Perforce
Change: 185389
ServerID: perforce.ravenbrook.com
2014-04-09 14:37:39 +01:00
Gareth Rees
b35ac047cd
Mvff debug now supports alloc/free of large objects (by exposing and covering all segments which the object overlaps)
...
Copied from Perforce
Change: 185386
ServerID: perforce.ravenbrook.com
2014-04-09 13:30:36 +01:00
Gareth Rees
7c00c5ced5
Update the stress test cases (apss, mpmss, sacss) so that they test different alignments.
...
Copied from Perforce
Change: 185384
ServerID: perforce.ravenbrook.com
2014-04-09 13:13:09 +01:00
Gareth Rees
8dfe455213
Assertion about alignment in mvfree might catch some errors at an earlier and more comprehensible point in the code.
...
Copied from Perforce
Change: 185383
ServerID: perforce.ravenbrook.com
2014-04-09 13:04:28 +01:00
Gareth Rees
f2d3221a29
Remove comment from mpscmv2.h -- it's obsolete (no such thing as mps_count_t) and anyway documentation is now in the manual.
...
Copied from Perforce
Change: 185382
ServerID: perforce.ravenbrook.com
2014-04-09 13:02:18 +01:00
Gareth Rees
2e053caffc
Alas, mvff and mvt can't round up alignment because they need to support buffered allocation.
...
Copied from Perforce
Change: 185381
ServerID: perforce.ravenbrook.com
2014-04-09 13:01:58 +01:00
Gareth Rees
eb5c7f75cc
Make debugging pool implementation more flexible -- there's no longer a requirement for fencesize to be a multiple of the pool alignment, nor for freesize to be a divisor of the pool alignment. this makes it easy to write simple and portable debug options structures without having to mess about with mps_pf_align.
...
Copied from Perforce
Change: 185379
ServerID: perforce.ravenbrook.com
2014-04-09 13:00:52 +01:00
Gareth Rees
4c9426514c
Alignment is now configurable for mv pools using mps_key_align.
...
MVFF and MVT support alignments down to FreelistMinimumAlignment.
For MVFF and MVT, alignments that are too small are rounded up automatically, to make it easier to write portable programs.
Copied from Perforce
Change: 185369
ServerID: perforce.ravenbrook.com
2014-04-08 21:32:19 +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