Gareth Rees
e8740cb551
Fix intra-design links.
...
Copied from Perforce
Change: 187288
ServerID: perforce.ravenbrook.com
2014-10-19 19:16:31 +01:00
Gareth Rees
e7220f2ad7
Fix rest syntax.
...
Copied from Perforce
Change: 187286
ServerID: perforce.ravenbrook.com
2014-10-19 09:39:41 +01:00
Gareth Rees
7870122c9d
Rename locusprefhigh to locusprefhigh and so on, to follow < http://www.ravenbrook.com/project/mps/master/design/guide.impl.c.naming#capital-constant >
...
Copied from Perforce
Change: 187283
ServerID: perforce.ravenbrook.com
2014-10-19 09:19:43 +01:00
Gareth Rees
db203fb12b
Amc no longer keeps statistics about pages condemned and retained. if we need this kind of analysis, it would be better to add more telemetry until we can do the analysis offline.
...
Copied from Perforce
Change: 187274
ServerID: perforce.ravenbrook.com
2014-10-14 23:05:56 +01:00
Gareth Rees
423bb95e4c
Add constant mps_rm_prot_inner and document it.
...
Copied from Perforce
Change: 187271
ServerID: perforce.ravenbrook.com
2014-10-14 22:59:32 +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
e38d608024
Assert if you try to create a pool using a format from another arena, a pool using a chain from another arena, or a root using a thread from another arena.
...
Copied from Perforce
Change: 187268
ServerID: perforce.ravenbrook.com
2014-10-14 22:21:43 +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
03736f9f9e
Bring the discussion of avert up to date (it's not type-safe in the cool variety).
...
Copied from Perforce
Change: 187263
ServerID: perforce.ravenbrook.com
2014-10-14 10:59:58 +01:00
Gareth Rees
fe0cb03d0a
Oops, revert 187238.
...
Copied from Perforce
Change: 187257
ServerID: perforce.ravenbrook.com
2014-10-13 23:24:38 +01:00
Gareth Rees
5ed62f110b
Get the mmqa conerr tests working:
...
* Make sure all the test build and run.
* Add output specifications to the passing tests.
* New testset/conerr runs them all.
Copied from Perforce
Change: 187248
ServerID: perforce.ravenbrook.com
2014-10-13 21:34:12 +01:00
Gareth Rees
4372c9d685
Move <stdlib.h> from testlib.c to testlib.h, for the benefit of test cases that need to use malloc.
...
Copied from Perforce
Change: 187247
ServerID: perforce.ravenbrook.com
2014-10-13 21:33:42 +01:00
Gareth Rees
e0d7895262
Get the mmqa argerr tests working:
...
* Make sure all the test build and run.
* Add output specifications to the passing tests.
* New testset/argerr runs them all.
Copied from Perforce
Change: 187245
ServerID: perforce.ravenbrook.com
2014-10-13 18:35:11 +01:00
Gareth Rees
8fc96e7609
Mmqa test harness improvements:
...
* Don't compile for profiling (not needed at the moment)
* Compile with -Wno-unused -Wno-missing-prototypes on OS X (so that argerr/146.c and similar test cases will build).
* Output conclusion for the first failing result (in alphabetical order), rather than whatever comes out of the hash table first.
* Don't gather symbols from block comments, otherwise we can't specify results like "assertcond = mps_pool_o != NULL" as MMQA will think that mps_pool_o is a missing symbol.
Copied from Perforce
Change: 187244
ServerID: perforce.ravenbrook.com
2014-10-13 18:33:37 +01:00
Gareth Rees
2d27354d20
Use pointeradd to express the condition in mps_commit -- it expands to the same code, and better conveys the intention.
...
Copied from Perforce
Change: 187242
ServerID: perforce.ravenbrook.com
2014-10-13 17:36:44 +01:00
Gareth Rees
bcb1f01827
Check that unitsize and extendby are greater than zero. (zero is a likely argument to pass by accident if you get your varargs wrong.)
...
Copied from Perforce
Change: 187241
ServerID: perforce.ravenbrook.com
2014-10-13 17:35:57 +01:00
Gareth Rees
a56d8411d9
Check arena argument in ldadd, ldmerge and ldisstaleany.
...
Copied from Perforce
Change: 187240
ServerID: perforce.ravenbrook.com
2014-10-13 17:31:50 +01:00
Gareth Rees
e3f6b44cc2
Don't use avert unless the arena lock is held (it's not thread-safe in all varieties). add design explaining this.
...
Copied from Perforce
Change: 187238
ServerID: perforce.ravenbrook.com
2014-10-13 14:36:15 +01:00
Gareth Rees
057342d73e
Add links to the lisp machine manual.
...
Copied from Perforce
Change: 187227
ServerID: perforce.ravenbrook.com
2014-10-12 23:40:13 +01:00
Gareth Rees
44df7f7c50
No need to keep mps_ap_s in sync any more: the definition is shared (mpmst.h includes mpslib.h which includes mps.h).
...
Copied from Perforce
Change: 187221
ServerID: perforce.ravenbrook.com
2014-10-12 13:57:31 +01:00
Gareth Rees
c76b658f04
Link snc in the file-at-a-time builds, so that they match the mps.c builds.
...
Copied from Perforce
Change: 187208
ServerID: perforce.ravenbrook.com
2014-10-11 12:08:24 +01:00
Gareth Rees
d2b4f1992f
Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
...
Free the initial allocations so that the result determination is accurate.
Copied from Perforce
Change: 187206
ServerID: perforce.ravenbrook.com
2014-10-11 00:57:28 +01:00
Gareth Rees
4b52294773
Specifying assertcond rather than assertline is likely to be more robust against code changes.
...
Copied from Perforce
Change: 187203
ServerID: perforce.ravenbrook.com
2014-10-10 22:55:48 +01:00
Gareth Rees
fbf748a1b7
Need to take spare committed memory into account when checking that memory usage hasn't gone up after a collection.
...
Copied from Perforce
Change: 187202
ServerID: perforce.ravenbrook.com
2014-10-10 22:43:07 +01:00
Gareth Rees
5029137077
In function/45.c, read from ambig[i] to prevent the compiler from optimizing away the array and so allowing p[i] to die.
...
In function/12.c, add a garbage collection to check that the allocation point protocol is being followed. Ensure there's an ambiguous reference to reserved objects before committin them.
Copied from Perforce
Change: 187200
ServerID: perforce.ravenbrook.com
2014-10-10 22:14:22 +01:00
Gareth Rees
4d06bd8f4c
Use .function for the tag here, because docutils doesn't turn .f into a link.
...
Copied from Perforce
Change: 187198
ServerID: perforce.ravenbrook.com
2014-10-10 19:37:35 +01:00
Gareth Rees
e3d0ea57cc
Job003495 is fixed, so mmqa test function/171.c now passes.
...
Reduce workload in function/171.c by a factor of 10 so that it completes in a reasonable amount of time.
Copied from Perforce
Change: 187194
ServerID: perforce.ravenbrook.com
2014-10-10 17:35:59 +01:00
Gareth Rees
3618ba4856
Job003739 is fixed, so mmqa test function/51.c passes.
...
Copied from Perforce
Change: 187192
ServerID: perforce.ravenbrook.com
2014-10-10 17:21:36 +01:00
Gareth Rees
bff6ac8fea
There's no such type as mps_count_t, so don't refer to it in the documentation!
...
Copied from Perforce
Change: 187191
ServerID: perforce.ravenbrook.com
2014-10-10 17:17:38 +01:00
Gareth Rees
2803e7fbe9
Cast arguments to the correct type to avoid them being decoded incorrectly by the varargs interface.
...
Copied from Perforce
Change: 187190
ServerID: perforce.ravenbrook.com
2014-10-10 17:14:09 +01:00
Gareth Rees
608d46f90d
Make mmqa test suite compile and run on linux (specifically lii6ll).
...
Avoid compiler warnings about unused variables and bad casts.
Copied from Perforce
Change: 187188
ServerID: perforce.ravenbrook.com
2014-10-10 16:58:01 +01:00
Gareth Rees
00cd44935e
It's better to run from test directory -- otherwise testsets will have to be rewritten.
...
Copied from Perforce
Change: 187187
ServerID: perforce.ravenbrook.com
2014-10-10 16:56:34 +01:00
Gareth Rees
3430fc8e10
Explain how to run the mmqa test suite on any unix.
...
Remove unused variables and avoid pointer->int conversions, so that the MMQA tests will run on platform lii6gc.
Copied from Perforce
Change: 187185
ServerID: perforce.ravenbrook.com
2014-10-10 15:32:30 +01:00
Gareth Rees
d1d3b81d2b
Update the record of passing test cases.
...
Copied from Perforce
Change: 187183
ServerID: perforce.ravenbrook.com
2014-10-10 14:07:13 +01:00
Gareth Rees
8f1fc676d4
Fix mmqa test function/136.c:
...
* Turn off the spare memory on the MVFF pool so that it returns freed memory to the arena immediately.
* Allocate something in the MV pool initially so that the span and block pools have some capacity.
* Stop the test if there isn't room in the MVFF to allocate 2 big blocks.
* Change the test success criterion so that it passes on 64-bit.
Copied from Perforce
Change: 187182
ServerID: perforce.ravenbrook.com
2014-10-10 14:04:41 +01:00
Gareth Rees
5ef6fc2ea4
It's now safe to allocate large objects in mvff pools.
...
Copied from Perforce
Change: 187180
ServerID: perforce.ravenbrook.com
2014-10-10 12:43:20 +01:00
Gareth Rees
665ab2f848
Don't talk about "segments" in the pool documentation (this is a detail of the implementation, and may change).
...
The restriction that "buffered allocation can't allocate across segment boundaries" no longer affects MVFF as the pool no longer uses segments.
Copied from Perforce
Change: 187179
ServerID: perforce.ravenbrook.com
2014-10-10 12:42:29 +01:00
Gareth Rees
872169b031
Turn off the spare memory on the mvff pool so that it returns freed memory to the arena immediately.
...
Copied from Perforce
Change: 187177
ServerID: perforce.ravenbrook.com
2014-10-10 12:30:17 +01:00
Gareth Rees
fa19712098
Turn off the hysteresis on the mvff pool so that we are testing the arena hysteresis only.
...
Copied from Perforce
Change: 187175
ServerID: perforce.ravenbrook.com
2014-10-10 12:08:12 +01:00
Gareth Rees
3516d037b1
Fix the definition of mps_key_spare_field so that you can set this keyword argument when creating an mvff pool. add test cases that use this feature.
...
Copied from Perforce
Change: 187174
ServerID: perforce.ravenbrook.com
2014-10-10 12:05:23 +01:00
Gareth Rees
cbe81bf0de
Remove call to deprecated macro mps_args_done.
...
Copied from Perforce
Change: 187171
ServerID: perforce.ravenbrook.com
2014-10-10 11:21:22 +01:00
Gareth Rees
e08c40c014
Add note that the mps does not throw or catch exceptions, as suggested by rb < https://info.ravenbrook.com/mail/2014/10/09/15-07-32/0/ >. gloss "freestanding" and "hosted" to help explain why.
...
Copied from Perforce
Change: 187169
ServerID: perforce.ravenbrook.com
2014-10-10 10:52:44 +01:00
Gareth Rees
f7f4e4a7f0
If you try to create a client arena that's too small for the full complement of zones, return mps_res_memory instead of asserting.
...
If you try to create a virtual memory arena that's too small for the full complement of zones, round up the size to the minimum instead of asserting.
Copied from Perforce
Change: 187164
ServerID: perforce.ravenbrook.com
2014-10-08 22:16:56 +01:00
Gareth Rees
fa29a3a5e0
Amc now asserts that references (unless ambiguous) are aligned to the pool alignment.
...
Copied from Perforce
Change: 187162
ServerID: perforce.ravenbrook.com
2014-10-08 21:13:34 +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
23dda3d644
New constant rankmin gives the minimum rank. use this (rather than 0 or rankambig) to better express the intention.
...
Copied from Perforce
Change: 187156
ServerID: perforce.ravenbrook.com
2014-10-07 22:31:12 +01:00
Gareth Rees
43c39872fc
No need to detect "mps assertion failed" -- assertions are captured via mmqa_assert_handler.
...
Copied from Perforce
Change: 187153
ServerID: perforce.ravenbrook.com
2014-10-07 22:15:36 +01:00
Gareth Rees
c2513b3f37
Fix test cases: mps_arena_class_vmnz no longer exists, use mps_arena_class_vm instead.
...
Copied from Perforce
Change: 187152
ServerID: perforce.ravenbrook.com
2014-10-07 22:14:22 +01:00
Gareth Rees
fd6dc4124d
Remove unused(boot) as boot is not unused.
...
No need for NOOP -- even without the UNUSED statement above it, an empty block would be legal in C.
Copied from Perforce
Change: 187147
ServerID: perforce.ravenbrook.com
2014-10-07 10:20:28 +01:00