1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-14 19:01:45 -07:00
Commit graph

70 commits

Author SHA1 Message Date
Gareth Rees
76bff163f5 Ensure that the mps builds with clang 10.
Clang 10 turns on -Wimplicit-int-float-conversion, and on 64-bit
platforms this issues a warning that implicit conversions to double
from Size and unsigned long "may lose precision".

This commit adds casts to (double) for all such conversions. The loss
of precision is either impossible in practice (because a double can
represent all integers up to 2**53, which is about 9 petabytes, well
beyond the addressing capabilities for current CPUs), or else
acceptable, because we are accumulating an approximate quantity like
"collection work" or "fill size" (that has to cope with loss of
precision due in any case), or computing a threshold like the spare
commit limit where it is acceptable for it to be somewhat approximate.
2021-01-10 10:42:05 +00:00
Gareth Rees
1e77b9d762 Remove mps_fix, deprecated since release 1.111.0
Also remove undocumented and deprecated MPS_FIX macro, and rename
TRACE_FIX to TRACE_FIX12 to maintain parallelism.
2020-09-27 14:16:39 +01:00
Gareth Rees
7c286cba8f Remove mps_alloc_v, deprecated since release 1.112.0. 2020-09-26 15:08:31 +01:00
Gareth Rees
93438da02d Remove mps_arena_expose, deprecated since release 1.111.0
Also remove mps_arena_unsafe_expose_remember_protection and
mps_arena_unsafe_expose_restore_protection.
2020-09-24 09:35:47 +01:00
Gareth Rees
302c8d0b19 Remove mps_tramp, deprecated since release 1.111.0. 2020-09-24 09:30:33 +01:00
Gareth Rees
5559f36540 Fix indentation of second clause of license. 2020-08-30 10:13:06 +01:00
Gareth Rees
5165d75267 Use https: instead of http: when linking to the ravenbrook web site. 2020-08-30 10:13:03 +01:00
Peter Jackson
1d00afac81 Publish licence updates in code directory.
Publish minor changes to readme and configure files in main directory.
Main directory and code directory licence texts are now fully updated.

Copied from Perforce
 Change: 196994
2020-06-11 17:05:40 +01:00
Gareth Rees
10999f8ba8 If mps_key_spare_commit_limit and mps_key_spare are both given, then the latter takes precedence.
If MPS_KEY_SPARE_COMMIT_LIMIT has a value greater than the commit limit, clamp the spare commit limit to 1.0.
Add smoke test coverage of MPS_KEY_SPARE, mps_arena_spare, and mps_arena_spare_set.
Document the deprecation of MPS_KEY_SPARE_COMMIT_LIMIT.

Copied from Perforce
 Change: 194948
2018-08-13 10:30:18 +01:00
Gareth Rees
6d30dca56b Fix issues identified in review by gdr <https://info.ravenbrook.com/mail/2018/07/16/13-54-48/0/>
Copied from Perforce
 Change: 194674
2018-07-16 15:00:30 +01:00
Gareth Rees
164f0b1214 catch-up merge from master sources at changelevel 194605 to branch/2016-03-30/tract-p-elim.
Copied from Perforce
 Change: 194617
2018-07-11 21:52:22 +01:00
Gareth Rees
01c13bf1b5 New functions mps_arena_busy and mps_arena_postmortem, plus test coverage.
Copied from Perforce
 Change: 192247
 ServerID: perforce.ravenbrook.com
2016-09-08 13:55:43 +01:00
Gareth Rees
f1b3655bd5 Add a case for rootthread to rootcheck.
Add test coverage for mps_root_create_thread_scanned and mps_root_create_area; improve coverage for mps_root_create_area_tagged, mps_scan_area_tagged, mps_scan_area.

Copied from Perforce
 Change: 192111
 ServerID: perforce.ravenbrook.com
2016-09-04 11:56:09 +01:00
Gareth Rees
c1aeb1f67a Ensure that at most one collection of the world can be started in a call to arenapoll. this avoids a loop if the live set is large enough to provoke the "dynamic criterion".
Copied from Perforce
 Change: 191274
 ServerID: perforce.ravenbrook.com
2016-04-19 18:17:09 +01:00
Richard Brooksby
6edbc6b977 Removing mv pool class and substituting mvff.
Disabling MV Debug test, since that doesn't work now that it's really MVFF Debug.

Copied from Perforce
 Change: 190494
 ServerID: perforce.ravenbrook.com
2016-03-27 22:24:57 +01:00
Richard Brooksby
ca7dcd913e Basic removal of the reservoir pool from code and design.
Copied from Perforce
 Change: 190000
 ServerID: perforce.ravenbrook.com
2016-03-13 20:32:24 +00:00
Richard Brooksby
3ad63e43f1 Catch up merge from master sources.
Copied from Perforce
 Change: 189228
 ServerID: perforce.ravenbrook.com
2016-02-16 12:37:25 +00:00
Richard Brooksby
525e7dc95b 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
8140fab4dd 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
2ad27f73b1 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
a0e001c000 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
080d135eec Catch up merge from master sources.
Copied from Perforce
 Change: 189088
 ServerID: perforce.ravenbrook.com
2016-02-03 16:56:04 +00:00
Richard Brooksby
d4e54ba17e Backing out the introduction of mps_arena_configure. see <https://info.ravenbrook.com/mail/2016/01/15/11-56-45/0>.
Copied from Perforce
 Change: 189081
 ServerID: perforce.ravenbrook.com
2016-02-03 15:52:05 +00:00
Gareth Rees
0bebdf5ad1 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
7d43cfa380 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
537af4b0dc Rename mps_key_arena_commit_limit and mps_key_arena_spare_commit_limit as mps_key_commit_limit and mps_key_spare_commit_limit respectively, as suggested by nb in review.
Copied from Perforce
 Change: 188286
 ServerID: perforce.ravenbrook.com
2015-09-08 16:21:27 +01:00
Gareth Rees
bf57e7bc11 First draft of tagged pointer test case (runs, but doesn't test anything yet).
Copied from Perforce
 Change: 188244
 ServerID: perforce.ravenbrook.com
2015-09-04 16:51:59 +01:00
Gareth Rees
703c1ee5f5 New function mps_arena_configure provides keyword argument interface to changing the properties of an arena.
New keyword arguments MPS_KEY_ARENA_COMMIT_LIMIT and MPS_KEY_SPARE_ARENA_COMMIT_LIMIT can be passed to mps_arena_create_k or mps_arena_configure.
Deprecate mps_arena_commit_limit_set and mps_arena_spare_commit_limit_set.

Copied from Perforce
 Change: 188085
 ServerID: perforce.ravenbrook.com
2015-08-06 17:02:51 +01:00
Gareth Rees
62b29ca9cd Test cases for mps_arena_has_addr.
Copied from Perforce
 Change: 187102
 ServerID: perforce.ravenbrook.com
2014-10-01 17:39:37 +01:00
Gareth Rees
c968255f1e 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
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
9a57106d49 Remove unnecessary headers from the test suite.
Copied from Perforce
 Change: 185340
 ServerID: perforce.ravenbrook.com
2014-04-08 13:03:04 +01:00
Gareth Rees
a3b3fcc7b6 There's no need for test cases to include mpsw3.h any more.
Copied from Perforce
 Change: 185322
 ServerID: perforce.ravenbrook.com
2014-04-07 18:19:37 +01:00
Gareth Rees
94e3fff083 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
Gareth Rees
9d5266c0cc Improved support for pelles c:
* Refactor nmake files so that a compiler-specific makefile is included; move Microsoft Visual C-specific options to mv.nmk.
* Add nmake files for Pelles (w3i3pc.nmk and pc.nmk).
* Rename spw3i3mv.c to spw3i3.c and spw3i6mv.c to spw3i6.c since these are also used by Pelles C.
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** check results of function calls;
** avoid useless return values;
** undef max before defining it;
** ensure printf formats are checkable;
** move notreached() assertions to the end of blocks;
** suppress warnings in cases where the code shouldn't be changed ("Unreachable code", "Inline assembly code is not portable", "Structured Exception Handling is not portable").

Copied from Perforce
 Change: 184977
 ServerID: perforce.ravenbrook.com
2014-03-24 18:23:29 +00:00
Gareth Rees
cf0d96dd0b Ensure that all test cases call testlib_init so that the testlib assertion handler is installed: this ensures that on windows you can set mps_testlib_noabort to avoid the dialog box from abort().
Copied from Perforce
 Change: 184965
 ServerID: perforce.ravenbrook.com
2014-03-24 11:41:01 +00:00
Gareth Rees
e88bcc5184 Document the intention behind mps_ld_isstale rather than the implementation: it captures the intention of testing whether a particular dependency is stale (even though the implementation in fact tests whether any dependency is stale). add new function mps_ls_isstale_any for expressing the intention of testing whether any dependencey is stale. the two functions have the same implementation at present, but the separation gives us the freedom to return a more precise result from mps_ld_isstale in future.
Copied from Perforce
 Change: 182816
 ServerID: perforce.ravenbrook.com
2013-06-20 16:25:08 +01:00
Richard Brooksby
5c6785b815 Catch-up merge from custom/cet/main to master.
Includes installable assertion handler, events in circular memory buffers, LARGEADDRESSAWARE, etc.

Copied from Perforce
 Change: 182176
 ServerID: perforce.ravenbrook.com
2013-05-24 19:42:46 +01:00
Gareth Rees
ed161ae658 Don't accidentally leave the arena in the clamped state after calling mps_arena_collect:
* In mpiscv, release the arena immediately after collecting.
* In zmess, clamp the arena immediately after creating it.

Copied from Perforce
 Change: 181094
 ServerID: perforce.ravenbrook.com
2013-03-08 12:23:44 +00:00
Gareth Rees
508ed55b10 Fix to the mpsicv test case: get the arena's committed memory after creating the pool, so that the creation of the pool can't cause the committed memory to be bumped upwards.
Copied from Perforce
 Change: 181080
 ServerID: perforce.ravenbrook.com
2013-03-07 16:45:48 +00:00
Gareth Rees
8dc0d72a8d Improve the usability of the test suite:
1. "make test" now reports the name of the test case before running it, so that when you look back through the test output you can see which test case failed.
2. "make test" now collects the standard output from all the tests to a log file in /tmp, so that this does not clutter the user's terminal, and so that nothing is lost if the output exceeds the terminal's scrollback.
3. Each test case now prints a success message ("Conclusion: Failed to find any defects.") to standard output (not standard error) so that these messages do not clutter up the terminal when running "make test".
4. Each test case now uses its result code (not the printed message) to indicate whether it succeeded or failed.
5. More of the diagnostic messages from the test cases now start by printing argv[0] so that it is easier to tell which test case was running.

Copied from Perforce
 Change: 181071
 ServerID: perforce.ravenbrook.com
2013-03-07 13:13:32 +00:00
Richard Brooksby
78d5f049f0 Eliminating type puns on scan states, location dependencies, and allocation points through the mps interface.
Now that we're recommending inlining with client code and optimising with -O2 or -O3, we can't afford any bug introduced by the strict aliasing rule.

Copied from Perforce
 Change: 179322
 ServerID: perforce.ravenbrook.com
2012-09-07 12:58:57 +01:00
David Lovemore
d03df26a42 Was using a %u for a size_t, naughty. fixed.
Copied from Perforce
 Change: 178788
 ServerID: perforce.ravenbrook.com
2012-07-31 14:21:41 +01:00
David Lovemore
d118d9ecd2 Remove obsolete comment
Copied from Perforce
 Change: 178284
 ServerID: perforce.ravenbrook.com
2012-05-22 16:39:21 +01:00
David Lovemore
d7dc0aa268 Use rnd_addr() where appropriate instead of rnd()
Copied from Perforce
 Change: 178231
 ServerID: perforce.ravenbrook.com
2012-05-21 16:07:13 +01:00
David Lovemore
fb584986ea Removed some left over comments.
Copied from Perforce
 Change: 178197
 ServerID: perforce.ravenbrook.com
2012-05-17 15:26:16 +01:00
David Lovemore
d17c5b8296 Using mps_word_const instead of ull for proper fixes to constants
Copied from Perforce
 Change: 178196
 ServerID: perforce.ravenbrook.com
2012-05-17 15:18:50 +01:00
David Lovemore
ba4e8d364b Temporary fixes for 64-bit windows build
Copied from Perforce
 Change: 178190
 ServerID: perforce.ravenbrook.com
2012-05-17 13:19:45 +01:00
David Lovemore
c36033e00c Fixed some places where casts are missing in vararg arguments.
Copied from Perforce
 Change: 178074
 ServerID: perforce.ravenbrook.com
2012-05-01 16:58:22 +01:00
Richard Kistruck
e2598917f4 mps br/padding: mps_addr_pool(), mps_addr_fmt() -- new mps functions
mps.h, mpsicv.c: implementation
 mpsicv.c: new addr_pool_test(), to test them
 w3gen.def: export them
 walkt0.c: test them within mps_arena_formatted_objects_walk().  (Also checks against values passed to stepper function, and against what we expect).
 tool/test-runner.py: add walkt0

Copied from Perforce
 Change: 169861
 ServerID: perforce.ravenbrook.com
2010-02-26 16:33:49 +00:00