Gareth Rees
14d975c6a4
Add a test checking that the hot variety is not too much slower than the rash variety. turn this on for continuous integration testing via "make test".
...
Copied from Perforce
Change: 191339
ServerID: perforce.ravenbrook.com
2016-04-20 13:15:18 +01:00
Gareth Rees
19ab212780
Remove printf -- we should use telemetry instead.
...
Copied from Perforce
Change: 190947
ServerID: perforce.ravenbrook.com
2016-04-11 19:46:21 +01:00
Gareth Rees
7660e38f3e
Catch-up merge from master sources to branch/2015-08-11/compact.
...
Copied from Perforce
Change: 190901
ServerID: perforce.ravenbrook.com
2016-04-11 14:40:44 +01:00
Gareth Rees
459a9f775d
Implement pause time control.
...
Copied from Perforce
Change: 189921
ServerID: perforce.ravenbrook.com
2016-03-12 22:08:26 +00:00
Richard Brooksby
4487895475
Detabifying code and restructuredtext files.
...
Copied from Perforce
Change: 189309
ServerID: perforce.ravenbrook.com
2016-02-18 19:58:13 +00:00
Richard Brooksby
5a030d9a10
Making mps_root_create_thread a convenience function for the common case.
...
Copied from Perforce
Change: 189205
ServerID: perforce.ravenbrook.com
2016-02-15 23:30:12 +00:00
Richard Brooksby
c1918bc79b
Creating general mps_root_create_thread and renaming mps_root_create_stack as a specialised version of it, mps_root_create_thread_tagged.
...
Copied from Perforce
Change: 189198
ServerID: perforce.ravenbrook.com
2016-02-15 19:12:59 +00:00
Richard Brooksby
fe206feb2d
Lifting stack and register area scanner into mps interface to allow generalisation of stack format.
...
Copied from Perforce
Change: 189195
ServerID: perforce.ravenbrook.com
2016-02-15 17:46:45 +00:00
Richard Brooksby
aff58a3f60
Catch up merge from master sources.
...
Copied from Perforce
Change: 189130
ServerID: perforce.ravenbrook.com
2016-02-10 21:10:25 +00:00
Richard Brooksby
49ef7fe552
Catch up merge from master sources.
...
Adding instructions for running tests on OS X.
Copied from Perforce
Change: 188917
ServerID: perforce.ravenbrook.com
2016-01-18 15:16:41 +00:00
Richard Brooksby
6e65f1ff18
Using os-provided getopt_long where available, since it doesn't compile cleanly on os x.
...
The getopt_long code promises that the argv array is const, but permutes it. (This problem is mentioned in the man page.) We have trouble getting this past our strict compiler options, especially under Xcode.
Copied from Perforce
Change: 188909
ServerID: perforce.ravenbrook.com
2016-01-14 17:34:49 +00:00
Gareth Rees
68edb16949
Need to pass sizeof(mps_word_t) - 1 for the mask argument to get the old behaviour.
...
Copied from Perforce
Change: 188317
ServerID: perforce.ravenbrook.com
2015-09-14 21:17:19 +01:00
Gareth Rees
08873c6c3a
Rename mps_root_create_reg_masked to mps_root_create_stack, and deprecate mps_root_create_reg, as suggested in review by nb < https://info.ravenbrook.com/mail/2015/09/09/16-18-10/0/ >.
...
Copied from Perforce
Change: 188312
ServerID: perforce.ravenbrook.com
2015-09-14 20:16:14 +01:00
Gareth Rees
c7a49cf109
New macro arenachunkring encapsulates getting the chunk ring for an arena.
...
RingLength now returns Count, not Size.
New test case checks that chunks are added and removed from the arena as memory is allocated and freed.
Copied from Perforce
Change: 188133
ServerID: perforce.ravenbrook.com
2015-08-11 12:03:45 +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
Gareth Rees
39e8b866cf
Rename mps_class_t to mps_pool_class_t for clarity.
...
Retain a typedef for mps_class_t for backwards compatibility.
Copied from Perforce
Change: 187065
ServerID: perforce.ravenbrook.com
2014-09-27 13:37:38 +01:00
Gareth Rees
aaadf9816e
Use the nelems macro to compute the size of arrays.
...
Copied from Perforce
Change: 187055
ServerID: perforce.ravenbrook.com
2014-09-26 21:35:25 +01:00
Gareth Rees
63c4b56bf9
Benchmarks need to abort on the first assertion hit, even in the hot variety, to assist with debugging.
...
Copied from Perforce
Change: 186787
ServerID: perforce.ravenbrook.com
2014-07-02 11:40:23 +01:00
Gareth Rees
230d7cf721
Avoid warnings from xcode for string literals that exceed the portable limit.
...
Copied from Perforce
Change: 186632
ServerID: perforce.ravenbrook.com
2014-06-14 16:18:50 +01:00
Gareth Rees
76b164e48c
Catch-up merge from master sources @186573 to branch/2014-05-28/align.
...
Copied from Perforce
Change: 186574
ServerID: perforce.ravenbrook.com
2014-06-13 15:37:20 +01:00
Gareth Rees
cd291a5f7a
Merge branch/2014-06-11/grain into branch/2014-05-28/align.
...
Copied from Perforce
Change: 186561
ServerID: perforce.ravenbrook.com
2014-06-13 13:35:14 +01:00
Gareth Rees
a9923af928
Add -a (arena alignment) argument to djbench and gcbench.
...
Copied from Perforce
Change: 186374
ServerID: perforce.ravenbrook.com
2014-05-30 13:03:06 +01:00
Gareth Rees
4a59d4e9b7
Fix problems identified by rb in review < https://info.ravenbrook.com/mail/2014/05/29/13-01-02/0/ >.
...
Copied from Perforce
Change: 186347
ServerID: perforce.ravenbrook.com
2014-05-29 14:50:36 +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
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
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
b70e268929
Fix problems found by coverity. see < https://info.ravenbrook.com/mail/2014/04/10/23-23-42/0/ > for full analysis.
...
Copied from Perforce
Change: 185445
ServerID: perforce.ravenbrook.com
2014-04-11 00:26:48 +01:00
Gareth Rees
993821517e
Fix bugs in exposet0.c and steptest.c on windows.
...
Port djbench and gcbench to Windows.
Run amcssth and awlutth test cases on Windows.
Copied from Perforce
Change: 185354
ServerID: perforce.ravenbrook.com
2014-04-08 16:26:27 +01:00
Gareth Rees
a03056f39a
New header testthr.h provides simple threading interface.
...
Implementations testthrix.c for Unix and testthrw3.c for Windows.
Multi-threaded test cases use the new interface.
Rename lockutw3 to lockut (no longer Windows-specific).
Run multi-threaded test cases on Windows and lockut elsewhere.
Copied from Perforce
Change: 185350
ServerID: perforce.ravenbrook.com
2014-04-08 15:14:32 +01:00
Gareth Rees
2d6ead9104
Turn on -wswitch-default for gcc.
...
Add missing default: cases to switch statements.
Copied from Perforce
Change: 185226
ServerID: perforce.ravenbrook.com
2014-04-04 12:16:59 +01:00
Richard Brooksby
83ed2f72bf
Reponding to code review < https://info.ravenbrook.com/mail/2014/03/10/17-01-58/0/ >.
...
Renaming the arena’s “zoned CBS” back to earlier “free CBS”, especially since it might not be zoned.
Copied from Perforce
Change: 184738
ServerID: perforce.ravenbrook.com
2014-03-11 17:27:57 +00:00
Richard Brooksby
098eb9e6d7
Catch-up merge from master.
...
Copied from Perforce
Change: 184732
ServerID: perforce.ravenbrook.com
2014-03-11 16:30:47 +00:00
Gareth Rees
1243791d24
Ensure that djbench and gcbench compile on freebsd:
...
Link fmtdy with gcbench.
RESERVE_ALLOC in djbench ignores the return values from mps_reserve and mps_commit.
Don't include alloca.h -- alloca is in stdlib.h.
Rename start, finish to begin, end to avoid "local variable shadows global" error from gcc.
Copied from Perforce
Change: 184691
ServerID: perforce.ravenbrook.com
2014-03-08 00:36:32 +00:00
Richard Brooksby
eb75944742
Adding a keyword to the arena to disable zoned allocation.
...
Copied from Perforce
Change: 184599
ServerID: perforce.ravenbrook.com
2014-02-28 13:20:06 +00:00
Gareth Rees
32d10cd02a
Make mps_args_done obsolete.
...
Copied from Perforce
Change: 184543
ServerID: perforce.ravenbrook.com
2014-02-26 12:47:27 +00:00
Richard Brooksby
20f1b7a26f
Bug fix. gcbench attempted to delete a nonexistent chain by default.
...
Copied from Perforce
Change: 184497
ServerID: perforce.ravenbrook.com
2014-02-24 23:03:10 +00:00
David Lovemore
4be8600326
Add pin-leaf option to gcbench.
...
Remove default chain from gcbench.
Copied from Perforce
Change: 184454
ServerID: perforce.ravenbrook.com
2014-02-23 13:44:54 +00:00
David Lovemore
60ada86df4
Add gcbench, a parameterizable benchmark for gc pools.
...
Copied from Perforce
Change: 184312
ServerID: perforce.ravenbrook.com
2014-02-11 11:54:27 +00:00