Richard Brooksby
6a732464b3
Repairing superclass by taking a kind, which can later be checked.
...
Copied from Perforce
Change: 190850
ServerID: perforce.ravenbrook.com
2016-04-10 12:28:51 +01:00
Richard Brooksby
24a1aaa4d8
Generating type-safe functions for getting and setting the class of instances.
...
Fixing warning revealed by GCC that I wasn't actually checking classes after init.
Fixing abstract classes so that they pass their own checks!
Copied from Perforce
Change: 190837
ServerID: perforce.ravenbrook.com
2016-04-08 19:50:12 +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
c4bcc24759
Generating a static superclass mapping and eliminating other superclass macros.
...
Copied from Perforce
Change: 190827
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +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
484d3b77bf
Removing always-zero offset from pool class structure.
...
Copied from Perforce
Change: 190819
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
8007f484a8
Getting rid of "old style" class ensure functions.
...
Copied from Perforce
Change: 190811
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:19 +01:00
Richard Brooksby
a03174304d
Tearing down shield correctly.
...
Copied from Perforce
Change: 190225
ServerID: perforce.ravenbrook.com
2016-03-20 01:01:54 +00:00
Richard Brooksby
e09dbaab0f
Promoting shield to first class structure.
...
Copied from Perforce
Change: 190219
ServerID: perforce.ravenbrook.com
2016-03-20 00:32:43 +00:00
Richard Brooksby
9583c0f68a
Merging branch mps/branch/2016-03-13/without-reservation into master sources.
...
Copied from Perforce
Change: 190106
ServerID: perforce.ravenbrook.com
2016-03-15 13:19:27 +00: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
Richard Brooksby
ca7dcd913e
Basic removal of the reservoir pool from code and design.
...
Copied from Perforce
Change: 190000
ServerID: perforce.ravenbrook.com
2016-03-13 20:32:24 +00:00
Richard Brooksby
a3efd2d694
Catch-up merge from branch/2015-08-06/config to remove arenaconfigure.
...
Copied from Perforce
Change: 189335
ServerID: perforce.ravenbrook.com
2016-02-25 22:59:06 +00:00
Richard Brooksby
7203f2f03a
Adding reference to job for improving definalization. see < https://info.ravenbrook.com/mail/2016/01/19/17-09-22/0/ >.
...
Copied from Perforce
Change: 188929
ServerID: perforce.ravenbrook.com
2016-01-20 11:44:28 +00:00
Gareth Rees
ffbe7beaa5
Accumulate scannedsize in mrg pool.
...
Copied from Perforce
Change: 188209
ServerID: perforce.ravenbrook.com
2015-09-03 11:54:55 +01:00
Gareth Rees
c968255f1e
Ensure that code of the form if (condition) statement; is split over two lines, so that it is possible to set a breakpoint on the statement in a debugger.
...
This change was agreed in 1997 (see <https://info.ravenbrook.com/project/mps/mail/1997/08/19/13-44/0.txt >), so it's about time it was implemented.
Copied from Perforce
Change: 187071
ServerID: perforce.ravenbrook.com
2014-09-27 22:57:02 +01:00
Gareth Rees
1f517274f3
Cast all arguments to the writef function to make it easy to check that none of the necessary casts have been omitted.
...
New macro WriteFYesNo makes it easy to describe a Boolean.
Describe more structure elements for ABQ, Arena, Buffer, Format, MFS, Root, Seg.
Copied from Perforce
Change: 187063
ServerID: perforce.ravenbrook.com
2014-09-27 12:49:30 +01:00
Gareth Rees
7c2e271e60
Rename segpref to locuspref -- this structure describes preferences for the placement of any kind of address, not just segments.
...
Add LocusPrefDescribe and use it in MVFFDescribe.
Copied from Perforce
Change: 187061
ServerID: perforce.ravenbrook.com
2014-09-27 11:27:00 +01:00
Gareth Rees
a13a1aa1df
Catch-up merge from master sources @186564 to branch/2014-06-11/grain.
...
Copied from Perforce
Change: 186572
ServerID: perforce.ravenbrook.com
2014-06-13 15:30:46 +01:00
Gareth Rees
9268a0adc8
Catch-up merge from master sources @186528 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186534
ServerID: perforce.ravenbrook.com
2014-06-12 15:59:39 +01:00
Gareth Rees
15df9bb6de
Use xyzpool macros systematically as suggested by nb in < https://info.ravenbrook.com/mail/2014/06/11/20-47-37/0/ >
...
Copied from Perforce
Change: 186529
ServerID: perforce.ravenbrook.com
2014-06-12 14:25:00 +01:00
Gareth Rees
cb629746ea
Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186526
ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
bfb0b771dd
Rename "arena alignment" to "arena grain size" to avoid confusion with ordinary structure alignment.
...
Copied from Perforce
Change: 186503
ServerID: perforce.ravenbrook.com
2014-06-11 17:13:03 +01: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
f55b7d4675
Fix bug in mrgdescribe: must be in the shield in order to call mrgrefpartref.
...
Copied from Perforce
Change: 186009
ServerID: perforce.ravenbrook.com
2014-05-11 21:12:36 +01:00
Gareth Rees
30f37732a9
Catch-up merge from master sources @185999 to branch/2014-04-17/describe.
...
Copied from Perforce
Change: 186003
ServerID: perforce.ravenbrook.com
2014-05-11 18:33:02 +01:00
Gareth Rees
c77c91056d
Consistent order stream, depth.
...
Copied from Perforce
Change: 186001
ServerID: perforce.ravenbrook.com
2014-05-11 18:30:23 +01:00
Gareth Rees
2493f121dc
Correct indentation of describe output by passing depth parameter to describe functions and to writef.
...
Call Describe functions from test cases so that we get coverage.
Copied from Perforce
Change: 186000
ServerID: perforce.ravenbrook.com
2014-05-11 18:20:38 +01:00
Gareth Rees
d1b44a4f05
Back out change 185626 (violates the design.mps.writef.snazzy).
...
Copied from Perforce
Change: 185941
ServerID: perforce.ravenbrook.com
2014-05-02 12:44:31 +01:00
Gareth Rees
7620c6fcd1
Fix rash build on os x by adding the unused attribute to functions declared static that are not called in the rash variety.
...
Copied from Perforce
Change: 185915
ServerID: perforce.ravenbrook.com
2014-05-01 12:18:00 +01:00
Gareth Rees
6721c2b913
Correct indentation of describe output.
...
Copied from Perforce
Change: 185626
ServerID: perforce.ravenbrook.com
2014-04-17 13:36:42 +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
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
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
1d39ec5b87
Make the mps compilable under clang/llvm 3.0 with the -ansi -pedantic options:
...
Avoid if with empty body by adding NOOP.
Avoid extended offsetof in expansion of PageOfTract, linkOfMessage, linkOfRing, and Pool2AMST macros.
Copied from Perforce
Change: 183413
ServerID: perforce.ravenbrook.com
2013-09-11 10:21:12 +01:00
Gareth Rees
1c4ff669ac
Remove diag facility.
...
Copied from Perforce
Change: 182553
ServerID: perforce.ravenbrook.com
2013-06-05 18:35:40 +01:00
Richard Brooksby
9cd658a534
Renaming some local variables from "index" to "indx" to avoid shadowing the function "index".
...
Only certain versions of GCC seem to warn about this, but they include 4.6.3 being used by Tracis CI causing this failure <https://travis-ci.org/Ravenbrook/mps-temporary/builds/7322161 >.
Copied from Perforce
Change: 182011
ServerID: perforce.ravenbrook.com
2013-05-20 19:37:18 +01:00
Richard Brooksby
a3d15bbdb0
Catch up merge from mps master to keyword arguments development branch.
...
Copied from Perforce
Change: 181890
ServerID: perforce.ravenbrook.com
2013-05-17 14:37:48 +01:00
Gareth Rees
dfce35a35b
Make forward declarations of various functions consistent with their actual declarations.
...
Copied from Perforce
Change: 181788
ServerID: perforce.ravenbrook.com
2013-05-15 14:18:28 +01:00
Gareth Rees
cce6ee29c8
New macro mps_arg and revised macro mps_args_add mean that client programs no longer need to know which keyword argument goes in which field. revise documentation accordingly.
...
Copied from Perforce
Change: 181736
ServerID: perforce.ravenbrook.com
2013-05-12 17:21:03 +01:00
Richard Brooksby
af44d1241f
Replacing varargs passed to seginit with keyword argument list.
...
Copied from Perforce
Change: 181679
ServerID: perforce.ravenbrook.com
2013-05-09 17:34:01 +01:00
Richard Brooksby
07f446a450
Converting pools to use keyword arguments, mostly, and so far inconsistently, but at least it compiles.
...
Copied from Perforce
Change: 181635
ServerID: perforce.ravenbrook.com
2013-05-08 16:21:12 +01:00
Richard Brooksby
75837d8376
Fixing type puns around arenapeek and arenapoke by allowing them to take a ref * to get a ref, rather than an addr.
...
Copied from Perforce
Change: 179382
ServerID: perforce.ravenbrook.com
2012-09-10 10:33:22 +01:00
Richard Brooksby
27c6706791
Merging branch/2012-08-21/diagnostic-telemetry.
...
Copied from Perforce
Change: 179289
ServerID: perforce.ravenbrook.com
2012-09-05 23:45:31 +01:00
Richard Brooksby
5333e6d525
Checking and suppressing warnings caused by higher level of optimisation and building from mps.c on ubuntu 12.
...
Copied from Perforce
Change: 179194
ServerID: perforce.ravenbrook.com
2012-09-03 13:38:53 +01:00
Richard Brooksby
d3aacdebfc
Suppressing warnings revealed by increased level of optimisation and building the mps from mps.c
...
Copied from Perforce
Change: 179192
ServerID: perforce.ravenbrook.com
2012-09-03 13:15:34 +01:00