1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 07:11:34 -08:00
Commit graph

32 commits

Author SHA1 Message Date
Gareth Rees
484c7e3142 When injecting allocation failures to test the fail-over land, don't also inject failures into the arena's free land's block pool.
Copied from Perforce
 Change: 192164
 ServerID: perforce.ravenbrook.com
2016-09-05 13:17:59 +01:00
Gareth Rees
4fd5435a51 Avoid strict aliasing errors in the mps test suite, so that it compiles and runs using gcc 6.1.
Update the manual entries for mps_alloc and mps_sac_alloc with notes highlighting the problem.

Copied from Perforce
 Change: 192104
 ServerID: perforce.ravenbrook.com
2016-09-02 19:20:58 +01:00
Gareth Rees
bf65b1e622 Patch the mfs pool's alloc method instead of rewriting its class -- the latter violates the class invariants and so asserts when deep checking is turned on.
Copied from Perforce
 Change: 191779
 ServerID: perforce.ravenbrook.com
2016-05-02 13:49:43 +01:00
Richard Brooksby
65a770e91f Avoid using "class" as an identifier, since tools like lldb parse expressions as c++, and it can't be named.
Copied from Perforce
 Change: 191304
 ServerID: perforce.ravenbrook.com
2016-04-19 23:00:02 +01:00
Richard Brooksby
6e21f091a4 Eliminating classdef.h by defining the class level when declaring a class.
Copied from Perforce
 Change: 191235
 ServerID: perforce.ravenbrook.com
2016-04-19 14:59:30 +01:00
Richard Brooksby
ef6e2970ca Eliminating generated classof* and setclassof* functions in favour of checked poly macros.
Copied from Perforce
 Change: 190938
 ServerID: perforce.ravenbrook.com
2016-04-11 18:06:47 +01:00
Richard Brooksby
72753f4484 Using mustbea to reduce boilerplate in client arenas, fotest, and the amc pool.
Copied from Perforce
 Change: 190906
 ServerID: perforce.ravenbrook.com
2016-04-11 14:57:38 +01:00
Richard Brooksby
c92bf9505a Explicitly making inststruct the prefix of instances, eliminating pointer punning of class pointers, and reducing likelihood of editing errors.
Copied from Perforce
 Change: 190830
 ServerID: perforce.ravenbrook.com
2016-04-08 17:51:21 +01:00
Richard Brooksby
4207b9ebf8 Eliminating the concept of "alias classes" in favour of "kinds".
Copied from Perforce
 Change: 190825
 ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
e5efe2849f Referring to classes by their base identifiers.
Copied from Perforce
 Change: 190823
 ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
590c23a935 Moving common fields into the base class, starting with the class name.
Copied from Perforce
 Change: 190816
 ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
3e978abde6 Abstracting class declarations and references to classes.
Copied from Perforce
 Change: 190812
 ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
07987ab579 Eliminating withreservoirpermit and all its variants.
Copied from Perforce
 Change: 190005
 ServerID: perforce.ravenbrook.com
2016-03-13 21:04:01 +00:00
Gareth Rees
3f98a87c2e Remove unused pool class attributes.
Bring method descriptions up to date in pool class design.

Copied from Perforce
 Change: 186446
 ServerID: perforce.ravenbrook.com
2014-06-08 19:54:24 +01:00
Gareth Rees
8e4721db4c Fix problems identified by rb in review <https://info.ravenbrook.com/mail/2014/05/29/13-01-02/0/>.
Copied from Perforce
 Change: 186347
 ServerID: perforce.ravenbrook.com
2014-05-29 14:50:36 +01:00
Gareth Rees
42f18f93af Catch-up merge from master/...@185556 to branch/2014-03-30/addrset.
Copied from Perforce
 Change: 185563
 ServerID: perforce.ravenbrook.com
2014-04-15 13:14:50 +01:00
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
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
4b5d396792 Catch-up merge from master sources to branch/2014-03-30/addrset.
Copied from Perforce
 Change: 185288
 ServerID: perforce.ravenbrook.com
2014-04-07 15:02:09 +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
ce6b34aa8f Test the failover module (both always and never failing over).
Fix result code bug in failoverInsert.
Test all result codes in fotest.
Tidy up code and documentation.

Copied from Perforce
 Change: 185207
 ServerID: perforce.ravenbrook.com
2014-04-03 14:46:58 +01:00
Gareth Rees
d2cbfda452 First pass at implementation of lands (collections of address ranges). 100% boilerplate!
Copied from Perforce
 Change: 185131
 ServerID: perforce.ravenbrook.com
2014-04-01 19:51:55 +01:00
Gareth Rees
9d5266c0cc Improved support for pelles c:
* Refactor nmake files so that a compiler-specific makefile is included; move Microsoft Visual C-specific options to mv.nmk.
* Add nmake files for Pelles (w3i3pc.nmk and pc.nmk).
* Rename spw3i3mv.c to spw3i3.c and spw3i6mv.c to spw3i6.c since these are also used by Pelles C.
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** check results of function calls;
** avoid useless return values;
** undef max before defining it;
** ensure printf formats are checkable;
** move notreached() assertions to the end of blocks;
** suppress warnings in cases where the code shouldn't be changed ("Unreachable code", "Inline assembly code is not portable", "Structured Exception Handling is not portable").

Copied from Perforce
 Change: 184977
 ServerID: perforce.ravenbrook.com
2014-03-24 18:23:29 +00:00
Gareth Rees
cf0d96dd0b Ensure that all test cases call testlib_init so that the testlib assertion handler is installed: this ensures that on windows you can set mps_testlib_noabort to avoid the dialog box from abort().
Copied from Perforce
 Change: 184965
 ServerID: perforce.ravenbrook.com
2014-03-24 11:41:01 +00:00
Gareth Rees
6971bee496 Make mps_args_done obsolete.
Copied from Perforce
 Change: 184543
 ServerID: perforce.ravenbrook.com
2014-02-26 12:47:27 +00:00
Gareth Rees
ba0e8c1b8b Put testsetsize back to its original value of 200, so that randomsizealigned does not invoke undefined behaviour by right-shifting by more than the word width.
Copied from Perforce
 Change: 183617
 ServerID: perforce.ravenbrook.com
2013-10-31 09:39:09 +00:00
Gareth Rees
da3afade7b Mvt takes configurable alignment via a keyword argument.
Copied from Perforce
 Change: 182605
 ServerID: perforce.ravenbrook.com
2013-06-07 14:45:14 +01:00
Gareth Rees
a70d471ed2 Fix function description.
Copied from Perforce
 Change: 182601
 ServerID: perforce.ravenbrook.com
2013-06-07 13:17:21 +01:00
Gareth Rees
cb2aea227c Make fotest run on lii6gc.
Copied from Perforce
 Change: 182512
 ServerID: perforce.ravenbrook.com
2013-06-04 18:40:52 +01:00
Gareth Rees
d6912235bd Mvt now fails over from a cbs to a freelist.
Update test cases and design accordingly.

Copied from Perforce
 Change: 182509
 ServerID: perforce.ravenbrook.com
2013-06-04 18:16:32 +01:00
Gareth Rees
2bda69bc6b New test case "fotest" for fail-over of cbs to freelist in mvff. (plus stub for mvt.) need some testing hooks in mvff and mvt for getting the cbs.
This reveals a couple of bugs in MVFF: (i) if CBSDelete fails, this might be because the block is actually on the Freelist instead; (ii) we can't SegFree before calling FreelistDelete because the Freelist needs access to the memory in order to read its pointers.

Copied from Perforce
 Change: 182500
 ServerID: perforce.ravenbrook.com
2013-06-04 16:51:24 +01:00