Gareth Rees
a0e076be57
Improvements following review.
...
Copied from Perforce
Change: 186227
ServerID: perforce.ravenbrook.com
2014-05-21 00:43:06 +01:00
Gareth Rees
8acf4952a4
Catch-up merge from master sources @186217 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186218
ServerID: perforce.ravenbrook.com
2014-05-20 19:36:53 +01:00
Gareth Rees
cd5eb9694f
Fix the build on w3i6mv.
...
Copied from Perforce
Change: 186217
ServerID: perforce.ravenbrook.com
2014-05-20 19:36:04 +01:00
Gareth Rees
dbfe3ca425
Fix compilation on windows.
...
Fix bug in ArenaDescribeTracts (only described the first tract).
Copied from Perforce
Change: 186215
ServerID: perforce.ravenbrook.com
2014-05-20 19:19:14 +01:00
Gareth Rees
144d1aea03
Catch-up merge from master sources @186213 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186214
ServerID: perforce.ravenbrook.com
2014-05-20 19:11:50 +01:00
Gareth Rees
9021a20b4b
Fix the build on windows.
...
Copied from Perforce
Change: 186213
ServerID: perforce.ravenbrook.com
2014-05-20 19:01:26 +01:00
Gareth Rees
2f0ef9355d
Clarify tracefix logic by unwinding the nested conditions.
...
Change the arena's chunk tree from a splay tree to an ordinary tree (so that it's not possible to accidentally splay it and leave it unbalanced).
New function TreeFindNext allows us to implement TractFirst and TractNext without having to splay the tree.
Make sure all operations on the chunk tree leave it balanced. But don't balance the tree directly in ChunkFinish() because this is only ever called in a loop where multiple chunks are being deleted from the tre. Instead use the sequence TreeToVine -- iterate and delete -- TreeBalance. The new macro TREE_DESTROY assists with this.
No need any more for ArenaIsReservedAddr, CHUNK_OF_ADDR, TRACT_OF_ADDR.
Update design documentation.
Copied from Perforce
Change: 186212
ServerID: perforce.ravenbrook.com
2014-05-20 18:12:37 +01:00
Gareth Rees
0274929d35
Fix assertion in bootblockcheck.
...
Copied from Perforce
Change: 186204
ServerID: perforce.ravenbrook.com
2014-05-20 12:44:36 +01:00
Gareth Rees
47befaa46b
Use treefind instead of splaytreefind to search the chunk tree.
...
Balance the chunk tree after insertion and deletion.
Avoid calling TractFirst and TractNext in ArenaDescribeTracts and PoolOfRange.
Copied from Perforce
Change: 186199
ServerID: perforce.ravenbrook.com
2014-05-19 20:19:50 +01:00
Gareth Rees
f747a15399
Merge branch/2014-04-30/poolgen into the master sources.
...
Copied from Perforce
Change: 186190
ServerID: perforce.ravenbrook.com
2014-05-19 15:56:49 +01:00
Gareth Rees
5e702b6819
Gcbench now reports the number of chunks.
...
Copied from Perforce
Change: 186188
ServerID: perforce.ravenbrook.com
2014-05-19 15:41:20 +01:00
Gareth Rees
0fee26dff8
Gcbench now reports the number of chunks.
...
Copied from Perforce
Change: 186188
ServerID: perforce.ravenbrook.com
2014-05-19 15:41:20 +01:00
Gareth Rees
af35c2c3ac
Add test suite support to xcode project.
...
Copied from Perforce
Change: 186186
ServerID: perforce.ravenbrook.com
2014-05-19 15:39:18 +01:00
Gareth Rees
04a44878f3
Catch-up merge from master sources @186174 to branch/2014-04-30/poolgen.
...
Copied from Perforce
Change: 186185
ServerID: perforce.ravenbrook.com
2014-05-19 14:59:19 +01:00
Gareth Rees
15b35c6e1c
New function splaydebugcount counts the number of items in a splay tree (while checking its consistency).
...
Copied from Perforce
Change: 186182
ServerID: perforce.ravenbrook.com
2014-05-19 13:47:56 +01:00
Gareth Rees
632ac692a5
Restore "avoid" mechanism in arenaallocpage.
...
Make sure that we can tear down the arena if ArenaCreate fails:
1. Don't set hasFreeCBS until the block pool has some pages.
2. Finish the CBS block pool in ArenaFinish, not ArenaDestroy.
3. Delete the chunk from the arena's free CBS before destroying the chunk, just in case the chunk contains pages from the CBS's block pool.
Copied from Perforce
Change: 186177
ServerID: perforce.ravenbrook.com
2014-05-19 12:24:11 +01:00
Gareth Rees
a156a73f4a
Catch-up merge from master sources @186174 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186175
ServerID: perforce.ravenbrook.com
2014-05-19 11:40:57 +01:00
Gareth Rees
06288300bf
Don't include pooln.c in mps.c -- only used by test case poolncv.
...
Include dependencies in all varieties, not just in COOL.
Copied from Perforce
Change: 186174
ServerID: perforce.ravenbrook.com
2014-05-19 11:39:05 +01:00
Gareth Rees
c6ea5bda3c
Catch-up merge from master sources @186171 to branch/2014-05-17/chunk-tree.
...
Copied from Perforce
Change: 186173
ServerID: perforce.ravenbrook.com
2014-05-19 11:19:18 +01:00
Gareth Rees
2cf1859759
Correct dependencies for benchmarks and event tools.
...
Copied from Perforce
Change: 186171
ServerID: perforce.ravenbrook.com
2014-05-19 10:55:48 +01:00
Gareth Rees
e2d346aa67
No need to store primary chunk in the closure: can get it via the arena.
...
Copied from Perforce
Change: 186164
ServerID: perforce.ravenbrook.com
2014-05-18 22:27:07 +01:00
Gareth Rees
0b0a465674
Replace the chunk ring with a chunk tree.
...
Fix bug in SplayFindNext (LESS and GREATER the wrong way round).
Copied from Perforce
Change: 186157
ServerID: perforce.ravenbrook.com
2014-05-17 17:05:42 +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
4638be32ad
Remove unused macros ("unless" and "when").
...
Copied from Perforce
Change: 186120
ServerID: perforce.ravenbrook.com
2014-05-15 17:35:27 +01:00
Gareth Rees
113a2fa79d
Avoid looping over the tracts of a span in mvspancheck in production varieties. (merged from change 184499.)
...
Copied from Perforce
Change: 186077
ServerID: perforce.ravenbrook.com
2014-05-13 14:30:52 +01:00
Gareth Rees
8e72725b5b
Assert that size > 0 in cbsfindlargest. (merged from change 184496.)
...
Copied from Perforce
Change: 186075
ServerID: perforce.ravenbrook.com
2014-05-13 13:44:42 +01:00
Gareth Rees
7985175687
Fixed a bug in cbsfindlargest where it always deleted the entire range found even when finddeletelow or finddeletehigh were passed. (merged from change 184493.)
...
Copied from Perforce
Change: 186074
ServerID: perforce.ravenbrook.com
2014-05-13 13:33:46 +01:00
Gareth Rees
58b2d71836
Bug fix. ensuring cbsfinddeleterange returns oldrangereturn even if it doesn’t delete a block. (merged from change 184485.)
...
Copied from Perforce
Change: 186070
ServerID: perforce.ravenbrook.com
2014-05-13 12:30:23 +01:00
Gareth Rees
d44862dcf7
Ansi platform compiles and passes tests on windows. in detail:
...
* Move Windows-specific modules like vmw3.c out of commpre.nmk and into the platform-specific Nmake files.
* Set StackProbeDEPTH to 0 on the ANSI platform.
* New Nmake file ananmv.nmk builds the MPS for the ANSI platform using Microsoft Visual C/C++.
Copied from Perforce
Change: 186063
ServerID: perforce.ravenbrook.com
2014-05-13 10:12:56 +01:00
Gareth Rees
2514a8eb3d
Compile testthrw3.c on all windows build configurations.
...
Copied from Perforce
Change: 186061
ServerID: perforce.ravenbrook.com
2014-05-13 09:33:26 +01:00
Gareth Rees
fce7564024
Windows doesn't have setenv, so use _putenv_s.
...
Copied from Perforce
Change: 186060
ServerID: perforce.ravenbrook.com
2014-05-13 09:32:06 +01:00
Gareth Rees
278dcb605b
Need -lpthread so that we can compile the threading test cases, even though we aren't going to be able to run them.
...
Copied from Perforce
Change: 186057
ServerID: perforce.ravenbrook.com
2014-05-12 22:18:09 +01:00
Gareth Rees
e332f18190
Only link the testthr* module with test cases that use it.
...
Copied from Perforce
Change: 186055
ServerID: perforce.ravenbrook.com
2014-05-12 21:54:52 +01:00
Gareth Rees
6d3321d525
Increase the commit limit for exposet0 so that the test always passes.
...
Copied from Perforce
Change: 186051
ServerID: perforce.ravenbrook.com
2014-05-12 19:51:54 +01:00
Gareth Rees
0d99d9fcff
Segsmss needs to park the arena (because otherwise there might be a collection running on the amst pool's chain).
...
Copied from Perforce
Change: 186050
ServerID: perforce.ravenbrook.com
2014-05-12 19:48:39 +01:00
Gareth Rees
691195da96
Setenv requires _gnu_source, so get the headers in the right order so that the feature macros are set up in config.h before any system header is included.
...
Don't update _XOPEN_SOURCE if it's already set to a high enough value.
Copied from Perforce
Change: 186049
ServerID: perforce.ravenbrook.com
2014-05-12 19:48:01 +01:00
Gareth Rees
7b5411c4f7
Catch-up merge from master sources @186035 to branch/2014-03-25/ansi.
...
Copied from Perforce
Change: 186040
ServerID: perforce.ravenbrook.com
2014-05-12 18:42:33 +01:00
Gareth Rees
5250959005
Fix problems identified in nb's review < https://info.ravenbrook.com/mail/2014/05/12/15-10-13/0/ >.
...
Copied from Perforce
Change: 186038
ServerID: perforce.ravenbrook.com
2014-05-12 18:22:40 +01:00
Gareth Rees
7d539cd4bc
Improve the assertion output so that it is less suggestive of a bug in the mps and more suggestive of a problem that needs investigation.
...
Copied from Perforce
Change: 186032
ServerID: perforce.ravenbrook.com
2014-05-12 15:59:21 +01:00
Gareth Rees
4c7106cd6f
Check the trace argument to tracequantum.
...
Copied from Perforce
Change: 186027
ServerID: perforce.ravenbrook.com
2014-05-12 13:35:21 +01:00
Gareth Rees
367ae76614
Park the arena before calling mps_chain_destroy.
...
Speed up mpsicv by reducing number of objects and by only running the test once (there's no inlined mps_tramp any more).
Copied from Perforce
Change: 186024
ServerID: perforce.ravenbrook.com
2014-05-12 12:53:46 +01:00
Gareth Rees
a80d297099
Mpseventtxt must not itself output telemetry, otherwise it is likely to overwrite the telemetry it is converting.
...
Copied from Perforce
Change: 186023
ServerID: perforce.ravenbrook.com
2014-05-12 12:30:46 +01:00
Gareth Rees
e13fc954ce
Park the arena before destroying the default chain, to ensure that there are no traces using that chain.
...
Fix test cases that used automatic collection, but destroyed data structures without parking the arena.
Document the requirement on mps_chain_destroy and add the assertion to "common assertions and their causes".
Copied from Perforce
Change: 186021
ServerID: perforce.ravenbrook.com
2014-05-12 11:19:57 +01:00
Gareth Rees
93d01e3ca8
It is an error to destroy a chain if there is an active trace using the chain.
...
Copied from Perforce
Change: 186013
ServerID: perforce.ravenbrook.com
2014-05-11 21:47:20 +01:00
Gareth Rees
e25bb01799
Check the argument using argcheck.
...
Copied from Perforce
Change: 186007
ServerID: perforce.ravenbrook.com
2014-05-11 19:18:54 +01:00
Gareth Rees
3a1ce9493f
Remove mps_key_cbs_extend_by and mfsextendself keyword arguments to cbsinit. these were unused and obsoleted by cbsblockpool.
...
Copied from Perforce
Change: 186006
ServerID: perforce.ravenbrook.com
2014-05-11 19:09:44 +01:00
Gareth Rees
358a76bf00
Remove unused function mfsgetinfo and unused type mfsinfo.
...
Copied from Perforce
Change: 186004
ServerID: perforce.ravenbrook.com
2014-05-11 18:52:53 +01:00
Gareth Rees
d60451c8ad
Check keyword arguments after picking them.
...
Copied from Perforce
Change: 185999
ServerID: perforce.ravenbrook.com
2014-05-11 18:17:40 +01:00
Gareth Rees
9166015cf7
Remove some unused headers.
...
Copied from Perforce
Change: 185994
ServerID: perforce.ravenbrook.com
2014-05-10 09:47:58 +01:00
Gareth Rees
be87b190ed
Defined(aver_and_check_all) is a better condition for invalidating the colour tables.
...
Copied from Perforce
Change: 185993
ServerID: perforce.ravenbrook.com
2014-05-10 09:45:26 +01:00