Gareth Rees
c898410a63
Catch-up merge from the master sources to branch/2016-04-23/inst-methods.
...
Copied from Perforce
Change: 192176
ServerID: perforce.ravenbrook.com
2016-09-05 15:31:34 +01:00
Gareth Rees
c737a08bc2
Fix assertion text in the manual.
...
Place a cross-reference by each assertion the appears in the manual, to assist in keeping the manual up to date.
Copied from Perforce
Change: 192097
ServerID: perforce.ravenbrook.com
2016-09-02 14:11:08 +01:00
Richard Brooksby
bda168dfb8
Renaming class fields called "protocol" to "instclassstruct" in line with usual mps convention.
...
Copied from Perforce
Change: 191685
ServerID: perforce.ravenbrook.com
2016-04-27 14:25:54 +01:00
Richard Brooksby
de1f3907cc
Converting pool finish methods to specialize instfinish, and fixing up quite a few calls to use nextmethod.
...
Copied from Perforce
Change: 191605
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +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
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
8d776db4f2
Converting many uses of classof* to method macros.
...
Copied from Perforce
Change: 190937
ServerID: perforce.ravenbrook.com
2016-04-11 17:59:36 +01:00
Richard Brooksby
6d8d4373c9
Checking that classes are the right kind using signatures.
...
Copied from Perforce
Change: 190936
ServerID: perforce.ravenbrook.com
2016-04-11 17:38:47 +01:00
Richard Brooksby
d303ed0aeb
Turning pool init methods the right way in, so that they each call the next method up the class hierarchy.
...
Copied from Perforce
Change: 190858
ServerID: perforce.ravenbrook.com
2016-04-10 17:49:08 +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
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
0c42e3aa23
Improved assertion messages when a required keyword argument is not found. instead of "unreachable code", the assertion message is the name of the missing key.
...
Copied from Perforce
Change: 187267
ServerID: perforce.ravenbrook.com
2014-10-14 22:05:30 +01:00
Gareth Rees
00229b0479
Use the method suffix only for methods in classes; use visitor or function for other kinds of functions.
...
New document guide.impl.c.naming sets out the rules for naming.
Copied from Perforce
Change: 187159
ServerID: perforce.ravenbrook.com
2014-10-07 23:48:55 +01:00
Gareth Rees
8b012960dc
Some assertions with && crept back in. split them up so that we get as much information as possible from an assertion failure.
...
Copied from Perforce
Change: 186577
ServerID: perforce.ravenbrook.com
2014-06-13 15:52:50 +01:00
Gareth Rees
e049b1f31b
Ensure that the macro versions of shieldexpose and shieldcover are used.
...
Copied from Perforce
Change: 186464
ServerID: perforce.ravenbrook.com
2014-06-09 19:53:37 +01:00
Gareth Rees
f76c7b8c68
Fix compilation on fri3gc: need readonlyaddradd macro to avoid warning.
...
Copied from Perforce
Change: 186442
ServerID: perforce.ravenbrook.com
2014-06-08 17:15:54 +01:00
Gareth Rees
317cad785d
Catch-up merge from master sources @186436 to branch/2014-04-08/align.
...
Copied from Perforce
Change: 186439
ServerID: perforce.ravenbrook.com
2014-06-08 16:30:53 +01:00
Gareth Rees
f8dae46723
New type readonlyaddr for managed address that an interface promises only to read through.
...
Use ReadonlyAddr for debugging pool fenceTemplate and freeTemplate, so that we can restore -Wwrite-strings option for GCC.
Copied from Perforce
Change: 186434
ServerID: perforce.ravenbrook.com
2014-06-08 14:53:17 +01:00
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
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
6e7852e9a5
Check meaning of extend_by and remove fixme.
...
Copied from Perforce
Change: 186148
ServerID: perforce.ravenbrook.com
2014-05-17 00:26:34 +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
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
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
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
Richard Brooksby
331be1205e
Catch-up merge from masters.
...
Copied from Perforce
Change: 184728
ServerID: perforce.ravenbrook.com
2014-03-11 16:13:39 +00:00
Richard Brooksby
16e0798806
Responding to code review < https://info.ravenbrook.com/mail/2014/03/07/22-40-36/0/ >.
...
Using TREE_ELT where appropriate.
Using AVERT consistently on Tree, but see job003691.
Copied from Perforce
Change: 184724
ServerID: perforce.ravenbrook.com
2014-03-11 15:46:51 +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
Richard Brooksby
1ac9877082
Adding a signature to splay tree structure. miscellaneous documentation and naming clean-up.
...
Copied from Perforce
Change: 184448
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
fee5ac310e
Eliminating redundant passing of tree keys by adding a method to extract the key from a tree node.
...
Copied from Perforce
Change: 184440
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
6eef655629
Avoiding general compare when searching for first and last nodes in a tree.
...
Copied from Perforce
Change: 184435
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
15c5b6dfc5
Fixing abuses of res and resfail in the splay tree interface.
...
Copied from Perforce
Change: 184432
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
d04f3c0bc4
Distinguishing tree keys (treekey) from generic void *.
...
Copied from Perforce
Change: 184429
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
27373efc5c
Unifying splaycomparemethod with treecompare.
...
Copied from Perforce
Change: 184428
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
a6d87c91a8
Simplifying splay tree update prototype and removing special null case.
...
Copied from Perforce
Change: 184427
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
2e5ca2df04
Replacing splaynode with tree generally.
...
Copied from Perforce
Change: 184426
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00:00
Richard Brooksby
85b11f7b55
Replacing splaynodestruct with treestruct and basic tree navigation operations in the splay tree implementation.
...
Copied from Perforce
Change: 184425
ServerID: perforce.ravenbrook.com
2014-02-23 10:41:15 +00: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
f4416c7efc
Changing required keyword arguments to cause an assertion rather than return a status code, and removing repetition in how this is expressed.
...
Copied from Perforce
Change: 181674
ServerID: perforce.ravenbrook.com
2013-05-09 15:15:40 +01:00
Richard Brooksby
0a8e742b4b
Converting a fixme to a todo because it's a longer term change.
...
Copied from Perforce
Change: 181670
ServerID: perforce.ravenbrook.com
2013-05-09 14:58:32 +01:00
Richard Brooksby
80e84d09a5
Adding macros to make keyword argument list formation more convenient and robust.
...
Copied from Perforce
Change: 181666
ServerID: perforce.ravenbrook.com
2013-05-09 14:04:23 +01:00
Richard Brooksby
3189ccfc9b
Consolidating common pool keywords.
...
Copied from Perforce
Change: 181649
ServerID: perforce.ravenbrook.com
2013-05-09 00:06:07 +01:00
Richard Brooksby
b323278e18
Implementing configurable maximum argument list length.
...
Copied from Perforce
Change: 181648
ServerID: perforce.ravenbrook.com
2013-05-08 23:47:38 +01:00