Gareth Rees
c3a7104eff
Label the time series in the monitor.
...
In telemetry output, distinguish between labelling of (client) addresses and (MPS-internal) pointers, to avoid transgressing the distinction.
Add arena grain size, class, and serial number to ArenaCreate* events.
Add pool class and serial number to PoolInit event.
Copied from Perforce
Change: 194086
2018-06-22 11:05:46 +01:00
Gareth Rees
148f538510
Merge design.mps.class-interface into design.mps.pool (as suggested by pekka p. pirinen on 1999-07-20).
...
Bring pool class method descriptions up to date.
Document bufferClass, bufferFill, bufferEmpty, totalSize, freeSize methods.
Document generic instance methods at design.mps.protocol.method.
Copied from Perforce
Change: 192642
ServerID: perforce.ravenbrook.com
2016-10-19 15:34:35 +01:00
Gareth Rees
79d301f528
Cherry-pick change 192595 from custom/cet/main, removing mps_addr_object. this function failed to solve the problem of decoding the stack on 64-bit windows, because the stack may need to be decoded after an mps assertion failure, in which case the arena lock is held and mps_addr_object cannot be called. we eventually solved the problem in a different way (using mps_arena_postmortem) and mps_addr_object is no longer used.
...
Copied from Perforce
Change: 192637
ServerID: perforce.ravenbrook.com
2016-10-19 14:13:38 +01:00
Gareth Rees
587a3efb20
Remove unused pool class methods tracebegin and traceend.
...
Remove unused event AMCTraceEnd.
The fixEmergency method must have the same type as the fix method because of how they are used.
Copied from Perforce
Change: 192636
ServerID: perforce.ravenbrook.com
2016-10-19 14:07:20 +01:00
Gareth Rees
d38c74a0b2
New modulefile prmcw3.c avoids duplication of code between prmcw3i3.c and prmcw3i6.c.
...
Implement MutatorContextCheck on Windows. Add AVERT(MutatorContext, context) in PoolAccess and other functions.
Document initialization functions MutatorContextInitFault and MutatorContextInitThread and implement them on Windows.
Add a union discriminator to MutatorContextStruct on Windows so that we don't accidentally try to get the stack pointer from a fault context, or the exception address from a thread context.
Copied from Perforce
Change: 192567
ServerID: perforce.ravenbrook.com
2016-10-14 11:53:26 +01:00
Gareth Rees
c35e544d73
Rename mutatorfaultcontext to mutatorcontext because this data structure is not only used to store the context of a fault, but also to store the context of a thread that has been suspended.
...
Copied from Perforce
Change: 192523
ServerID: perforce.ravenbrook.com
2016-10-13 14:23:39 +01:00
Gareth Rees
90a16b56b1
Catch-up merge from master sources to branch/2016-04-21/amswalk.
...
Copied from Perforce
Change: 192181
ServerID: perforce.ravenbrook.com
2016-09-05 15:48:47 +01:00
Gareth Rees
c07c5d6b8f
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
49198a35ee
Add _critical to assertions on the critical path for manual-allocation-bound programs using mvff. this brings the hot/rash ratio for "djbench mvff" down from over 150% to about 130%.
...
Copied from Perforce
Change: 192148
ServerID: perforce.ravenbrook.com
2016-09-04 19:20:05 +01:00
Richard Brooksby
2065bf5351
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
9a2f29e3b2
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
1f8eb75895
Converting pool describe methods to specialise instdescribe.
...
Copied from Perforce
Change: 191604
ServerID: perforce.ravenbrook.com
2016-04-23 15:37:12 +01:00
Richard Brooksby
a8e91f0ac8
Turning pool describe methods the right way in, so that they call next-method.
...
Copied from Perforce
Change: 191587
ServerID: perforce.ravenbrook.com
2016-04-23 00:22:46 +01:00
Gareth Rees
7dfe3782c3
Catch-up merge from master sources to branch/2016-04-21/amswalk.
...
Copied from Perforce
Change: 191531
ServerID: perforce.ravenbrook.com
2016-04-21 20:56:05 +01:00
Gareth Rees
fb3e4144a9
Untabify.
...
Copied from Perforce
Change: 191528
ServerID: perforce.ravenbrook.com
2016-04-21 20:50:45 +01:00
Richard Brooksby
efb1d94578
Catch-up merge from master sources to branch/2016-04-08/protidying.
...
Copied from Perforce
Change: 191471
ServerID: perforce.ravenbrook.com
2016-04-21 14:46:10 +01:00
Richard Brooksby
be8cf2ce96
Enforcing rules about class overrides that were dropped in changelist 190837.
...
Copied from Perforce
Change: 191453
ServerID: perforce.ravenbrook.com
2016-04-21 13:41:27 +01:00
Richard Brooksby
2071adc5fe
Removing unused (and useless) poolfix macro.
...
Copied from Perforce
Change: 191407
ServerID: perforce.ravenbrook.com
2016-04-21 08:59:52 +01:00
Richard Brooksby
32250731d7
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
06ef28892a
Catch-up merge from master sources to branch/2016-04-08/protidying.
...
Copied from Perforce
Change: 191251
ServerID: perforce.ravenbrook.com
2016-04-19 16:37:51 +01:00
Gareth Rees
c97f77e5ab
Catch-up merge from master sources to branch/2014-10-11/snc.
...
Copied from Perforce
Change: 191065
ServerID: perforce.ravenbrook.com
2016-04-13 13:07:19 +01:00
Richard Brooksby
2e2cfa9bae
Moving pool format argument picking into abstract pool initialization, so that code is shared.
...
Copied from Perforce
Change: 191004
ServerID: perforce.ravenbrook.com
2016-04-12 15:07:26 +01:00
Richard Brooksby
e7d5490d11
Automatically setting pool->fix on first fix, to avoid tricky initialization.
...
Copied from Perforce
Change: 190986
ServerID: perforce.ravenbrook.com
2016-04-12 12:44:54 +01:00
Richard Brooksby
fd1ff6f863
Clearing up various fixmes by making the type naming inconsistency clearly visible and intentional.
...
Copied from Perforce
Change: 190980
ServerID: perforce.ravenbrook.com
2016-04-12 10:51:41 +01:00
Richard Brooksby
d31995246d
Making classes into instances of kinds, allowing subclass tests to be used to validate classes as well.
...
Copied from Perforce
Change: 190958
ServerID: perforce.ravenbrook.com
2016-04-11 20:58:39 +01:00
Richard Brooksby
12d4dfda16
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
62533b8c71
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
964cd6147f
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
78ad983c55
Adding classname for use in describe methods.
...
Fixing error path to use class destroy in ArenaCreate.
Using MustBeA to reduce boiler plate in land classes.
Copied from Perforce
Change: 190904
ServerID: perforce.ravenbrook.com
2016-04-11 14:06:28 +01:00
Richard Brooksby
3dd201bf47
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
111136891e
Adding instinit and instfinish and using them as next methods in seginit, segfinish, etc.
...
Copied from Perforce
Change: 190857
ServerID: perforce.ravenbrook.com
2016-04-10 15:33:17 +01:00
Richard Brooksby
3154cbed7d
Making arenas properly inherit from instances, and converting remaining method calls to use the method macro, while noting uses which are inside-out.
...
Copied from Perforce
Change: 190856
ServerID: perforce.ravenbrook.com
2016-04-10 14:00:55 +01:00
Richard Brooksby
3bc19084f6
Fixing mustbea to not return a void *.
...
Copied from Perforce
Change: 190849
ServerID: perforce.ravenbrook.com
2016-04-08 20:29:33 +01:00
Richard Brooksby
5a0c818945
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
09e73dd1da
Renaming protocolinst to inst and protocolclass to instclass to make naming consistent with other classes.
...
Copied from Perforce
Change: 190822
ServerID: perforce.ravenbrook.com
2016-04-08 17:51:20 +01:00
Richard Brooksby
32de0701e0
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
e041841a88
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
44f80af1ec
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
339445436b
Catch-up merge from master sources to branch/2014-10-13/format.
...
Copied from Perforce
Change: 190060
ServerID: perforce.ravenbrook.com
2016-03-15 10:02:21 +00:00
Richard Brooksby
1025b28674
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
144990c99d
Add accesssetcheck and check accessset arguments.
...
Copied from Perforce
Change: 188251
ServerID: perforce.ravenbrook.com
2015-09-04 20:15:36 +01:00
Gareth Rees
e102a56958
Use a reference count to discover cases where a format is deleted when a pool is still using it, as suggested by rb < https://info.ravenbrook.com/mail/2014/10/16/13-35-06/0/ >.
...
Copied from Perforce
Change: 187279
ServerID: perforce.ravenbrook.com
2014-10-16 22:59:00 +01:00
Gareth Rees
411e38946d
Remove unused pool {fill,empty}{mutator,internal}size statistics.
...
Copied from Perforce
Change: 187270
ServerID: perforce.ravenbrook.com
2014-10-14 22:37:55 +01:00
Gareth Rees
66dfd1a69a
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
e185863a15
Check alignment of address given to poolfree.
...
Copied from Perforce
Change: 187265
ServerID: perforce.ravenbrook.com
2014-10-14 16:54:10 +01:00
Gareth Rees
9c044f7542
Simpler and more robust to add the pool to the formatring in poolinit, after we know that the initialization has succeeded.
...
Copied from Perforce
Change: 187261
ServerID: perforce.ravenbrook.com
2014-10-14 10:07:41 +01:00
Gareth Rees
821dc9114d
Attach the pools using a format to a ring in the format, so that when we destroy the format, we can check that no pools are using it.
...
Copied from Perforce
Change: 187253
ServerID: perforce.ravenbrook.com
2014-10-13 22:44:20 +01:00
Gareth Rees
da626d1bc6
Because of the requirement to make popped objects dead in a timely fashion, we can only implement lightweight pops to an address in the buffer. in particular we can't support pending pops, which means that there's no need for the fields in the allocation point that support pending pops.
...
Copied from Perforce
Change: 187232
ServerID: perforce.ravenbrook.com
2014-10-13 12:46:28 +01:00
Gareth Rees
5f35b7f792
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
2d0f425428
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