Gareth Rees
5ea427ae6e
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
6aae3bfb23
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
f4f23676ce
Fix the build on windows.
...
Copied from Perforce
Change: 186213
ServerID: perforce.ravenbrook.com
2014-05-20 19:01:26 +01:00
Gareth Rees
5f84d4c3db
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
68f9a3cd5c
Fix assertion in bootblockcheck.
...
Copied from Perforce
Change: 186204
ServerID: perforce.ravenbrook.com
2014-05-20 12:44:36 +01:00
Gareth Rees
463139ecc4
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
dcf84a3755
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
3836fffed0
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
43d30e9ca3
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
c381033485
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
b2f8c11ebb
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
6c668c0c02
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
5dbf068b5e
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
ec58ae421f
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
f5547fb738
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
c80b685950
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
6dec3e4cec
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
2c54df97c5
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
d947fe9ff5
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
b5fa39ff39
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
0bbc3befd8
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
fc0b32b461
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
089b66635c
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
2678554475
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
4cc791616e
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
9aecea10df
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
a6ce57cb0e
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
ac79e9110f
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
ce16681f03
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
cbddbd5fac
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
84ee41b58b
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
51ae9e9343
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
598bd93af8
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
35985c3587
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
9836b47c70
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
3072f03b78
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
95ee3a4568
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
435722442e
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
08822ad7e0
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
e7f41fe61b
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
a4044d0dc3
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
026662618c
Check the argument using argcheck.
...
Copied from Perforce
Change: 186007
ServerID: perforce.ravenbrook.com
2014-05-11 19:18:54 +01:00
Gareth Rees
32cd7e343b
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
a853b9570e
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
3c10ea5cdd
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
80d10acf0f
Remove some unused headers.
...
Copied from Perforce
Change: 185994
ServerID: perforce.ravenbrook.com
2014-05-10 09:47:58 +01:00
Gareth Rees
c7810cd7a5
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
Gareth Rees
7d7d668ed4
Fix compilation of seg.c.
...
1. "#ifdef CHECKLEVEL > CheckLevelMINIMAL" was bogus: the #ifdef should have been #if, but even then it would not be right, because in the CHECKLEVEL_DYNAMIC configuration, CHECKLEVEL is a variable rather than a preprocessor constant. So use the condition defined(AVER_AND_CHECK_ALL) instead.
2. The final CHECKL(addr == seg->limit) only makes sense if the loop was executed.
3. The variables used by the loop need to be inside the #if to avoid warnings about unused variables.
4. Add reference to the job from a comment.
Copied from Perforce
Change: 185992
ServerID: perforce.ravenbrook.com
2014-05-10 09:44:25 +01:00
David Lovemore
a329ad7348
Only include tract loop ion segcheck when check level > minimal.
...
This is to speed up SegCheck in HOT variety.
Copied from Perforce
Change: 185971
ServerID: perforce.ravenbrook.com
2014-05-06 12:19:06 +01:00
Gareth Rees
debf5bce18
Scheme constructors now take an allocation point.
...
Copied from Perforce
Change: 185959
ServerID: perforce.ravenbrook.com
2014-05-04 20:39:31 +01:00