1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-24 15:53:02 -07:00
Commit graph

2782 commits

Author SHA1 Message Date
Gareth Rees
d17c6263b3 Ensure that the mps builds with "clang -werror -wcomma -std=c89".
The -Wcomma option appears to be turned on automatically by Xcode
12.3, so it's a good idea for the MPS to build with the option, to
avoid unpleasant surprises when people update their Xcode.

The simplest way to suppress the warning is to cast the left hand side
of the comma operator to void.
2021-01-16 17:06:06 +00:00
Richard Brooksby
5f4c3f6f42 Merge pull request from ravenbrook/branch/2021-01-10/implicit-conversion
Ensure that the MPS builds with Clang 10.

GitHub-reference: https://github.com/Ravenbrook/mps/issues/52
2021-01-16 16:16:40 +00:00
Gareth Rees
abb8e79e37 Document the reason for enabling so many warnings.
Cross-reference the design from the implementation in the compiler
makefile fragments.
2021-01-10 21:26:58 +00:00
Gareth Rees
7c6c56b541 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
aa61fabea2 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
4a28718571 Remove mps_alloc_v, deprecated since release 1.112.0. 2020-09-26 15:08:31 +01:00
Gareth Rees
1d59836ff2 Remove reservoir functions, deprecated since release 1.115.0 2020-09-24 11:36:46 +01:00
Gareth Rees
de7c1320df 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
2e9c91a2bd Remove mps_tramp, deprecated since release 1.111.0. 2020-09-24 09:30:33 +01:00
Gareth Rees
65065bc8c4 Save and restore errno in signal handlers.
Ensure there are assertions on the results of all the libc functions
in protsgix.c and pthrdext.c.
2020-09-02 19:59:23 +01:00
Bruce Mitchener
2c7f57d5b7 Fix typos. 2020-09-01 16:33:45 +01:00
Gareth Rees
30d9d30df0 Spell out "analysis" in full. 2020-09-01 13:54:31 +01:00
Gareth Rees
f47c389a52 Fix indentation of second clause of license. 2020-08-30 10:13:06 +01:00
Gareth Rees
af0f431eda Use https: instead of http: when linking to the ravenbrook web site. 2020-08-30 10:13:03 +01:00
Gareth Rees
d55dc069ab Merge branch 'branch/2020-08-24/eintr' 2020-08-30 09:24:08 +01:00
Gareth Rees
c13b7610d3 Set sa_restart flag when calling sigaction().
This ensures that if a mutator thread is blocked in a system call when
the MPS handles a signal, the system call will not fail with EINTR but
instead will be restarted.

Add a test case for the thread suspend and resume signals.
2020-08-30 09:23:35 +01:00
Gareth Rees
be2f670e42 Merge branch 'branch/2020-08-23/macos-build' 2020-08-30 09:08:38 +01:00
Gareth Rees
d14044dd1a Traceid is a typedef for unsigned so we mustn't negate it.
This was not caught by testing because we don't support multiple
traces and so tr->id is always zero.
2020-08-29 18:56:46 +01:00
Gareth Rees
d55a7f147c Fix build on macos 10.15 with clang 11.0.
We no longer need the -Wno-extended-offsetof or -Wno-invalid-offsetof
compiler options, since the nonstandard uses of offsetof() were
fixed (see job003619), so they can just be removed.
2020-08-23 16:17:36 +01:00
Peter Jackson
4de2606846 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
ee6ddafcbd Avoid warning from gcc 5.4.0.
Copied from Perforce
 Change: 196419
2019-10-10 15:18:03 +01:00
Gareth Rees
84b26d639e The makefile rule for building a generic target no longer depends on the content of extra_targets, since this is designed to be configurable.
Copied from Perforce
 Change: 196414
2019-10-10 14:37:38 +01:00
Gareth Rees
c83b1a0323 Avoid an "extended" (non-standards-conforming) call to offsetof.
Copied from Perforce
 Change: 196195
2019-06-05 16:31:13 +01:00
Gareth Rees
94b2f5a36e Remove -wno-extended-offsetof flag, no longer needed and not compatible with all the versions of clang that we need to support.
Copied from Perforce
 Change: 196189
2019-06-05 14:33:43 +01:00
Gareth Rees
00b7596287 Revert change 196178, submitted on wrong branch.
Copied from Perforce
 Change: 196185
2019-06-05 10:36:50 +01:00
Gareth Rees
6f34daf790 Call mps_arena_create_k, not mps_arena_create.
Copied from Perforce
 Change: 196181
2019-06-04 15:40:38 +01:00
Gareth Rees
6e116da468 Restore assembly code (removed in change 194595) for spilling callee-save registers on fr and li platforms.
Copied from Perforce
 Change: 196178
2019-06-04 14:09:05 +01:00
Gareth Rees
e410c28276 Change the type of writeff to avoid compiler warnings from gcc 8.
Copied from Perforce
 Change: 196063
2019-03-14 15:17:47 +00:00
Gareth Rees
9b201f56c3 Simulate just one allocation failure each time.
Copied from Perforce
 Change: 195983
2019-02-07 11:57:16 +00:00
Gareth Rees
7f6f4c323b Add a flag to fotest.c so that oomalloc knows when to return error codes, avoiding confusion between the test's pool and the mps's own pool.
Copied from Perforce
 Change: 195974
2019-02-07 10:21:32 +00:00
Gareth Rees
d245671303 Update urls (mostly http -> https).
Copied from Perforce
 Change: 195858
2018-12-10 13:07:41 +00:00
Gareth Rees
4eda4e85c7 Use tags with dots; regularize design references from code.
Copied from Perforce
 Change: 195761
2018-11-29 17:12:29 +00:00
Gareth Rees
5faa229dd0 Change http to https for links to {info,www}.ravenbrook.com.
Copied from Perforce
 Change: 195719
2018-11-22 12:34:46 +00:00
Richard Brooksby
bf37e11ba9 Improving clarity with some hyphens.
Copied from Perforce
 Change: 195688
2018-11-19 21:12:15 +00:00
Richard Brooksby
89aae0a96e Fixing copy-paste error in comment.
Copied from Perforce
 Change: 195683
2018-11-19 20:56:45 +00:00
Alistair Turnbull
520a1c9ef6 To guarantee at least one failure while maintaining test coverage, use oomalloc on the
first loop iteration and with 50% probability thereafter.

Copied from Perforce
 Change: 195278
2018-10-17 17:12:14 +01:00
Alistair Turnbull
6361d8d0ae Implement review suggestions:
- https://info.ravenbrook.com/mail/2018/10/09/07-29-18/0/
 - https://info.ravenbrook.com/mail/2018/10/09/12-04-39/0/

Fix the code for shuffling an array.

Ensure that oomAlloc is always used at least once.

TODO: Find a principled way of computing `testSetSIZE`.

Copied from Perforce
 Change: 195272
2018-10-16 18:03:45 +01:00
Gareth Rees
1ec8c4a141 Improve handling of telemetry events on the critical path:
1. Being on the critical path is a property of the code location where the event is emitted, not of the event type, so indicate this using EVENT_CRITICAL macros rather than a field in the event table.
2. Compile out events on the critical path in hot varieties.
3. Remove TraceFixWhite event (redundant with TraceFixSeg).
4. No need for special handling of PoolFree event -- this are already skipped in hot varieties by dispatching directly to the pool class via PoolFreeMacro.

Copied from Perforce
 Change: 195261
2018-10-15 14:22:16 +01:00
Gareth Rees
50f25c43ae Fix mpseventsql, broken by change 195250.
Copied from Perforce
 Change: 195258
2018-10-15 11:55:51 +01:00
Gareth Rees
c024758d0a Convenience target for building mpseventsql.
Copied from Perforce
 Change: 195251
2018-10-14 14:59:15 +01:00
Gareth Rees
4a789a4b0d Update mpseventsql to handle event parameter documentation.
Copied from Perforce
 Change: 195250
2018-10-14 14:59:01 +01:00
Gareth Rees
cbf9885146 Document the event parameters.
Split event ArenaAccess into ArenaAccessBegin and ArenaAccessEnd to avoid the need for the count field.
New events SegReclaim and SegScan.
Delete some redundant events: AMCFinish (PoolFinish), AMCFix, AMCFixForward, AMCFixInPlace (TraceFix), AMCGenCreate (GenInit), AMCGenDestroy (GenFinish), AMCInit (PoolInitAMC), AMCReclaim (SegReclaim), AMCScanBegin, AMCScanEnd (SegScan), ArenaWriteFaults (ArenaAccessBegin), PoolInitMV, TraceScanSeg (SegScan).
Add result code field to events ArenaAllocFail, CommitLimitSet, SegAllocFail.
Remove arena field from events PoolInitAMS, PoolInitMFS, PoolInitMVFF (already appeared in generic PoolInit event).

Copied from Perforce
 Change: 195247
2018-10-14 14:04:40 +01:00
Gareth Rees
803703fb74 Merge branch/2018-06-20/monitor into the master sources.
Copied from Perforce
 Change: 195235
2018-10-13 12:22:24 +01:00
Gareth Rees
77506b67e7 There's no point keeping the definitions of old events, especially since we have changed the event format. name events consistently with initial capital letters and put them in alphabetical order.
Copied from Perforce
 Change: 195231
2018-10-12 13:01:12 +01:00
Gareth Rees
882d86bac1 Remove call to pause_end from tracedestroy; see <https://info.ravenbrook.com/mail/2018/10/12/10-20-07/0/>
The MPS passes the number of system pools to the monitor via the ArenaCreate events, to avoid the monitor having to know how many this is.

Copied from Perforce
 Change: 195227
2018-10-12 12:35:55 +01:00
Alistair Turnbull
c6314435bb Remove job4014 machinery, which is no longer needed.
Copied from Perforce
 Change: 195211
2018-10-08 17:25:22 +01:00
Alistair Turnbull
681b897b3c Add flag is_failure_our_problem to fotest.c.
Copied from Perforce
 Change: 195210
2018-10-08 17:19:18 +01:00
Gareth Rees
aa9f8bef8a Fix issue identified in review <https://info.ravenbrook.com/mail/2018/09/22/15-55-52/0/>
Copied from Perforce
 Change: 195142
2018-09-23 23:00:59 +01:00
Gareth Rees
de33a1f68d Move assignment so as to avoid "variable 'warmest' might be clobbered by 'longjmp'".
Copied from Perforce
 Change: 195136
2018-09-23 20:31:52 +01:00
David Lovemore
8c14e1a600 Address issue 5 found in review <https://info.ravenbrook.com/mail/2018/09/22/11-42-19/0/>
Copied from Perforce
 Change: 195133
2018-09-23 05:36:19 +01:00