1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Commit graph

1490 commits

Author SHA1 Message Date
Gareth Rees
25d595211a Undo seghasbuffer change, to simplify the diffs.
Copied from Perforce
 Change: 185890
 ServerID: perforce.ravenbrook.com
2014-04-30 12:56:30 +01:00
Gareth Rees
e62efa1619 Use double-entry book-keeping and bank reconciliation to ensure the soundness and completeness of the pool generation size accounting.
Copied from Perforce
 Change: 185888
 ServerID: perforce.ravenbrook.com
2014-04-30 12:14:54 +01:00
Gareth Rees
9887a1da26 Catch-up merge from branch/2014-04-30/poolgen.
Copied from Perforce
 Change: 185886
 ServerID: perforce.ravenbrook.com
2014-04-30 12:10:51 +01:00
Gareth Rees
5cacd3e0fc Pass gen parameter to amsinitinternal.
Set up segsmss with same chain as before.

Copied from Perforce
 Change: 185885
 ServerID: perforce.ravenbrook.com
2014-04-30 12:09:09 +01:00
Gareth Rees
b3d827b6fb Pool generations now refer directly to their generation (not via a chain and a generation number).
Allocation into a generation now via PoolGenAlloc (not ChainAlloc).
The "top generation" logic is encapsulated in the function ChainGen.

Copied from Perforce
 Change: 185877
 ServerID: perforce.ravenbrook.com
2014-04-30 11:18:44 +01:00
David Lovemore
fb7363db2e Rename bool(v) to boolof(v) to fix clash with the windows header file windows.h
Copied from Perforce
 Change: 185841
 ServerID: perforce.ravenbrook.com
2014-04-28 13:14:04 +01:00
Gareth Rees
54ee6e4292 Fix amsss.
Copied from Perforce
 Change: 185813
 ServerID: perforce.ravenbrook.com
2014-04-26 11:12:45 +01:00
Gareth Rees
28a6bfe289 Explain traceaddwhite failure logic as requested by nb in <https://info.ravenbrook.com/mail/2014/04/24/12-10-09/0/>.
Copied from Perforce
 Change: 185800
 ServerID: perforce.ravenbrook.com
2014-04-25 17:41:56 +01:00
Gareth Rees
fb56a08e49 Tracecondemnzones could leave the white set inconsistent if traceaddwhite failed. add an assertion to cover this case (corresponding to the similar assertion in tracecondemnall).
Copied from Perforce
 Change: 185765
 ServerID: perforce.ravenbrook.com
2014-04-23 20:22:19 +01:00
Gareth Rees
1821ccc309 Test all 8 combinations of debug, chain, ambig.
Copied from Perforce
 Change: 185763
 ServerID: perforce.ravenbrook.com
2014-04-23 19:42:27 +01:00
Gareth Rees
294c4a97cd Test the arena default chain. set the commit limit to make sure that the collector can make progress.
Copied from Perforce
 Change: 185749
 ServerID: perforce.ravenbrook.com
2014-04-22 23:18:42 +01:00
Gareth Rees
5b54651076 Fix indentation.
Copied from Perforce
 Change: 185746
 ServerID: perforce.ravenbrook.com
2014-04-22 21:57:16 +01:00
Gareth Rees
932d72770b Separate jobs for lo and awl finalization.
Copied from Perforce
 Change: 185743
 ServerID: perforce.ravenbrook.com
2014-04-22 21:40:59 +01:00
Gareth Rees
e7d41a8fde Fix bugs in condemn logic:
1. TraceStartCollectAll now condemns all segments in pools with AttrGC (not just pools attached to generation zero of some chain, as before).
2. ChainDeferral now looks at all generations in the chain, so that the chain is condemned if any generation's new size is greater than its capacity (not just generation zero, as before).
3. ChainCondemnAuto now condemns all generations up to and including the highest generation whose new size is greater than its capacity (rather than, as before, up to and excluding the lowest generation whose new size is lower than its capacity).
Update finaltest.c so that it has a mode in which it allocates in generation 1 of a chain and with the arena released so that the above fixes are tested. Remove the MPS_KEY_GEN workarounds from awlut and awluthe as these are no longer needed.

Copied from Perforce
 Change: 185741
 ServerID: perforce.ravenbrook.com
2014-04-22 17:53:47 +01:00
Gareth Rees
1e43258933 Explain reasoning in amsbufferempty, as requested by rb <https://info.ravenbrook.com/mail/2014/04/16/12-42-33/0/>.
Copied from Perforce
 Change: 185603
 ServerID: perforce.ravenbrook.com
2014-04-16 13:59:33 +01:00
Gareth Rees
bca0a066fb Avoid avers with side effects, as requested by rb in <https://info.ravenbrook.com/mail/2014/04/16/11-47-22/0/>
Copied from Perforce
 Change: 185595
 ServerID: perforce.ravenbrook.com
2014-04-16 13:23:56 +01:00
Gareth Rees
e933748bd6 Mvt does not actually need to use gcsegs: in fact, gcsegs create difficulties because buffers need to be detached. so switch to using ordinary segs just like mvff.
Copied from Perforce
 Change: 185556
 ServerID: perforce.ravenbrook.com
2014-04-15 12:41:10 +01:00
Gareth Rees
eeaf8b887a Revert hasty merge of branch/2014-04-15/shared -- broke xcode build.
Copied from Perforce
 Change: 185553
 ServerID: perforce.ravenbrook.com
2014-04-15 12:39:51 +01:00
Gareth Rees
992ab111d6 Build and install a shared library on unix platforms.
Copied from Perforce
 Change: 185543
 ServerID: perforce.ravenbrook.com
2014-04-15 11:02:05 +01:00
Gareth Rees
72ba071b4c Fix arenarootswalk:
1. Blacken the segments again after scanning the roots, so that the roots can be walked again.
2. Don't cast RootGrey to a RootIterateFn -- the types are not compatible.
MMQA test function/122.c now passes.

Copied from Perforce
 Change: 185530
 ServerID: perforce.ravenbrook.com
2014-04-14 23:38:54 +01:00
Gareth Rees
4e48a196e5 Check the poolring so that there is an assertion failure (not a crash) if the client fails to destroy a pool.
Copied from Perforce
 Change: 185527
 ServerID: perforce.ravenbrook.com
2014-04-14 22:31:24 +01:00
Gareth Rees
06ea755daf Move the marker down the stack so that gcc's aggressive inline won't scupper it.
Copied from Perforce
 Change: 185524
 ServerID: perforce.ravenbrook.com
2014-04-14 18:37:31 +01:00
Gareth Rees
113f2ff5d0 Simpler cast, more checking.
Copied from Perforce
 Change: 185510
 ServerID: perforce.ravenbrook.com
2014-04-14 12:32:18 +01:00
Gareth Rees
e2c67f1bb7 Simpler cast, more checking.
Copied from Perforce
 Change: 185507
 ServerID: perforce.ravenbrook.com
2014-04-14 12:13:31 +01:00
Gareth Rees
97f6f25655 Avoid warning on lii3gc.
Copied from Perforce
 Change: 185506
 ServerID: perforce.ravenbrook.com
2014-04-14 12:13:22 +01:00
Gareth Rees
da2a61ae24 Simpler casting, and more checking.
Copied from Perforce
 Change: 185505
 ServerID: perforce.ravenbrook.com
2014-04-14 12:07:14 +01:00
Gareth Rees
339cc8e364 Simpler casting and more checking.
Copied from Perforce
 Change: 185502
 ServerID: perforce.ravenbrook.com
2014-04-14 11:34:20 +01:00
Gareth Rees
2987353125 Check rings before destroying the control pool, so that you get an assertion when a ring points into space that is about to be unmapped, instead of a crash after it has been unmapped.
Copied from Perforce
 Change: 185495
 ServerID: perforce.ravenbrook.com
2014-04-13 20:51:10 +01:00
Gareth Rees
532cd901ac Avoid strict aliasing warnings from gcc 4.8.
Copied from Perforce
 Change: 185484
 ServerID: perforce.ravenbrook.com
2014-04-12 21:44:18 +01:00
Gareth Rees
3887d08d29 Fix compilation of eventtxt.c on lii6gc.
Copied from Perforce
 Change: 185483
 ServerID: perforce.ravenbrook.com
2014-04-12 21:33:29 +01:00
Gareth Rees
6d923be672 Eventtxt no longer reports an error if there are multiple labels associated with an address. instead, it store all the labels encountered, and prints the one that was in force at the time of each event.
Use the MPS to manage memory, not malloc/free.
Recommend sort before mpseventtxt and not afterwards (data is smaller; labelling is more accurate).

Copied from Perforce
 Change: 185477
 ServerID: perforce.ravenbrook.com
2014-04-12 15:34:43 +01:00
Gareth Rees
28d6cd9612 Use the mps to manage memory in test cases, not malloc!
Copied from Perforce
 Change: 185474
 ServerID: perforce.ravenbrook.com
2014-04-11 21:27:31 +01:00
Gareth Rees
2aef76c48c Ensure that mpseventsql compiles with gcc -wmissing-variable-declarations.
Copied from Perforce
 Change: 185473
 ServerID: perforce.ravenbrook.com
2014-04-11 21:18:23 +01:00
Gareth Rees
8624638093 Default value for mps_key_arena_size makes it easier to create arenas.
Copied from Perforce
 Change: 185472
 ServerID: perforce.ravenbrook.com
2014-04-11 21:15:09 +01:00
Gareth Rees
20f55386c4 Turn -wconversion off again. (the mps builds with this option with gcc 4.8 but not with gcc 4.6.3 on the travis buildbots.)
Copied from Perforce
 Change: 185467
 ServerID: perforce.ravenbrook.com
2014-04-11 15:28:03 +01:00
Gareth Rees
ab57c07df5 Turn on -wduplicate-enum and -wmissing-variable-declarations options for clang. ensure the mps compiles with these options.
Copied from Perforce
 Change: 185466
 ServerID: perforce.ravenbrook.com
2014-04-11 15:17:20 +01:00
Gareth Rees
391e7e6c83 Add -wconversion to the options for gcc. ensure that the mps builds.
Copied from Perforce
 Change: 185463
 ServerID: perforce.ravenbrook.com
2014-04-11 14:25:15 +01:00
Gareth Rees
fb2443daaa Fix the build for gcc on os x: gcc warns about the missing return in protcatchthread, but we don't want to add one because that would be unreachable code. so use __attribute__((__noreturn__)) instead.
Copied from Perforce
 Change: 185461
 ServerID: perforce.ravenbrook.com
2014-04-11 12:42:26 +01:00
Gareth Rees
24aef39a77 Not ready for gcc -wconversion.
Copied from Perforce
 Change: 185459
 ServerID: perforce.ravenbrook.com
2014-04-11 12:17:39 +01:00
Gareth Rees
8c63b81342 Add -wconversion to options for gcc and clang.
Ensure that the MPS builds with this option with Clang.

Copied from Perforce
 Change: 185457
 ServerID: perforce.ravenbrook.com
2014-04-11 12:06:28 +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
44ec318081 Must ensure the consistency of a segment even if we are just about to free it, because the segment must pass the segcheck inside segfree.
Copied from Perforce
 Change: 185440
 ServerID: perforce.ravenbrook.com
2014-04-10 19:40:42 +01:00
Gareth Rees
665cb2efcc Don't turn on the alloctable in amsbufferempty when it's shared with nonwhitetable and the colour tables are in use -- this will turn any grey grains in the segment invalid.
Add more checking to AMS, including the table use invariant.

Copied from Perforce
 Change: 185434
 ServerID: perforce.ravenbrook.com
2014-04-10 18:16:29 +01:00
Gareth Rees
25dc0fc073 Document the constraints on the mean and maximum size arguments to the mv pool class. remove documentation from poolmv.h: this is in the manual now.
Copied from Perforce
 Change: 185432
 ServerID: perforce.ravenbrook.com
2014-04-10 15:36:51 +01:00
Gareth Rees
ae09ed50c5 Fix amcssth -- don't try to test two incompatible features at the same time (see job003561).
Set the commit limit in amcss and amcsshe so that we test that the MPS can live in a tight memory limit.
Don't try to detect when the MPS has made a "dynamic" collection. This is not reliable or maintainable.

Copied from Perforce
 Change: 185430
 ServerID: perforce.ravenbrook.com
2014-04-10 15:06:58 +01:00
Gareth Rees
1c25a89a70 Correct the nailboard level sizes; add assertion to nailboardindex checking this.
Copied from Perforce
 Change: 185421
 ServerID: perforce.ravenbrook.com
2014-04-10 12:24:49 +01:00
Gareth Rees
d17ebed2cd Delete mpsw3.h (and associated warning pragma): obsoleted by change from structured to vectored exception handling.
Copied from Perforce
 Change: 185399
 ServerID: perforce.ravenbrook.com
2014-04-09 17:31:06 +01:00
Gareth Rees
284482353a The alignment of an awl pool is now set to the format alignment, as documented. the alignment restriction on pointers is now based on sizeof(void *), not mps_pf_align.
Copied from Perforce
 Change: 185357
 ServerID: perforce.ravenbrook.com
2014-04-08 18:29:25 +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