1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-25 16:22:37 -07:00
Commit graph

1451 commits

Author SHA1 Message Date
Gareth Rees
d7d04e024c 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
ae8e213a3b 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
d36670e39d 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
7089721738 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
0bae62a7fe 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
07853f0c33 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
e7a9e1e244 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
88626830d8 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
284482353a 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
993821517e 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
a03056f39a 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
c230d2ffaa 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
2f61fea487 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
0e3c67e05b 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
35039bbba2 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
55f68543ba 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
97a2d4634c 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
7631c48b66 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
4fb11404b9 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
dde2cb855b 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
0ffc9ec788 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
0bffc62a44 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
bcea6812fc 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
f970e9d82c 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
f6901a9e23 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
0290982bca 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
45521a9268 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
f4050a073e Remove unneeded headers.
Copied from Perforce
 Change: 185248
 ServerID: perforce.ravenbrook.com
2014-04-06 15:53:54 +01:00
Gareth Rees
5a1185daf1 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
8b9c38393e 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
642be932a1 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
bbe1052f69 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
fd07236307 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
306401504d Check classes after defining them.
Copied from Perforce
 Change: 185228
 ServerID: perforce.ravenbrook.com
2014-04-04 12:51:07 +01:00
Gareth Rees
2d6ead9104 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
71d9ea47b8 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
0805e2be8f 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
dcaad508fc 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
99dab3d524 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
40ed06bf17 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
85cbda9382 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
fc7bdbd4dd 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
e6560aa91b 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
d844d87c4d Generate dependencies for fmtscheme.c.
Copied from Perforce
 Change: 185120
 ServerID: perforce.ravenbrook.com
2014-04-01 12:11:06 +01:00
Richard Brooksby
103e03d285 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
5cb6645f65 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
9c7e619ac0 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
Gareth Rees
01fbead536 Bring .p4ignore up to date so that p4 status is clean.
Copied from Perforce
 Change: 185101
 ServerID: perforce.ravenbrook.com
2014-03-31 11:37:46 +01:00
Gareth Rees
0094610a6a Support the clang address sanitizer.
Copied from Perforce
 Change: 185096
 ServerID: perforce.ravenbrook.com
2014-03-30 18:51:53 +01:00
Gareth Rees
fcbc3260bd Turn off -wunreachable-code in gcc: too many false positives.
Copied from Perforce
 Change: 185091
 ServerID: perforce.ravenbrook.com
2014-03-30 17:00:50 +01:00