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

135 commits

Author SHA1 Message Date
Gareth Rees
d1c5dfc2d2 Add comment explaining purpose of attribute_unused.
Copied from Perforce
 Change: 186335
 ServerID: perforce.ravenbrook.com
2014-05-28 17:24:46 +01:00
Gareth Rees
c639055f7b In light of performance findings, boost the default arena size to 256 mb. add a -m option to djbench so that we can test the effect of setting the initial arena size on the manual pool classes.
Copied from Perforce
 Change: 186224
 ServerID: perforce.ravenbrook.com
2014-05-20 23:25:03 +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
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
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
d377539ae7 Default value for mps_key_ams_support_ambiguous is now the safer value true.
Copied from Perforce
 Change: 185927
 ServerID: perforce.ravenbrook.com
2014-05-01 18:02:53 +01:00
Gareth Rees
4c655eba6a Fix rash build on os x by adding the unused attribute to functions declared static that are not called in the rash variety.
Copied from Perforce
 Change: 185915
 ServerID: perforce.ravenbrook.com
2014-05-01 12:18:00 +01:00
Gareth Rees
7b9d33799e Catch-up merge from master sources to branch/2014-03-25/ansi.
Copied from Perforce
 Change: 185907
 ServerID: perforce.ravenbrook.com
2014-04-30 16:51:30 +01:00
Gareth Rees
282b0cb830 Update comment to match design.
Copied from Perforce
 Change: 185902
 ServerID: perforce.ravenbrook.com
2014-04-30 16:30:01 +01:00
Gareth Rees
f4e63e0bdd No need for prod_checklevel_initial (was unused).
Copied from Perforce
 Change: 185876
 ServerID: perforce.ravenbrook.com
2014-04-30 11:08:23 +01:00
Gareth Rees
4ac5e3a9ce Oops: sense of test was wrong way round.
Copied from Perforce
 Change: 185581
 ServerID: perforce.ravenbrook.com
2014-04-16 10:55:39 +01:00
Gareth Rees
02c40ddb7e Use x and x_none for x ∈ {lock, plinth, remembered_set, shield} to match the other settings (aver_and_check, event, statistics).
Copied from Perforce
 Change: 185580
 ServerID: perforce.ravenbrook.com
2014-04-16 10:48:21 +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
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
d939167b1e Catch-up merge from master sources to branch/2014-03-25/ansi.
Copied from Perforce
 Change: 185305
 ServerID: perforce.ravenbrook.com
2014-04-07 16:04:58 +01:00
Gareth Rees
643ab5a49a Improve clarity of product configuration so that names more explicitly indicate what they do:
* CONFIG_POLL_NONE (because the user-visible consequence is that polling is no longer supported; was CONFIG_PROTECTION_NONE).
* DISABLE_LOCKS (was THREAD_SINGLE).
* DISABLE_SHIELD (was THREAD_SINGLE && PROTECTION_NONE)
* DISABLE_REMEMBERED_SET (was PROTECTION_NONE)
When the shield is disabled, ArenaLeave asserts that there are no busy traces, and ArenaPoll is a no-op.
By having functions implemented using the corresponding macro, we can avoid duplicated code, and avoid testing DISABLE_SHIELD in global.c.
Remove all remaining references to MPS_PROD_EPCORE.

Copied from Perforce
 Change: 185176
 ServerID: perforce.ravenbrook.com
2014-04-02 15:48:57 +01:00
Gareth Rees
fc7bdbd4dd Fixed dl's review comments <https://info.ravenbrook.com/mail/2014/04/01/13-28-17/0/>.
Copied from Perforce
 Change: 185127
 ServerID: perforce.ravenbrook.com
2014-04-01 17:02:00 +01:00
Gareth Rees
9c7e619ac0 Fix compilation on lii6gc:
* Don't test __has_feature unless we know we are on MPS_BUILD_LL.
* Fix type-punned pointer aliasing in expt825.c.

Copied from Perforce
 Change: 185104
 ServerID: perforce.ravenbrook.com
2014-03-31 13:01:40 +01:00
Gareth Rees
0094610a6a Support the clang address sanitizer.
Copied from Perforce
 Change: 185096
 ServerID: perforce.ravenbrook.com
2014-03-30 18:51:53 +01:00
Gareth Rees
6de8c58889 Catch-up merge from master sources to branch/2014-03-21/pellesc.
Copied from Perforce
 Change: 185074
 ServerID: perforce.ravenbrook.com
2014-03-28 13:54:30 +00:00
Gareth Rees
7ceb6297de Remove #pragma warning(disable: ...) for microsoft visual c/c++ warnings that are no longer generated by the code, so that we get the maximum checking from this compiler.
Copied from Perforce
 Change: 185072
 ServerID: perforce.ravenbrook.com
2014-03-28 13:09:14 +00:00
Gareth Rees
4da195068c Add and document new configuration options config_thread_single and config_protection_none.
Copied from Perforce
 Change: 185037
 ServerID: perforce.ravenbrook.com
2014-03-26 23:19:04 +00:00
Gareth Rees
d1a51c98c8 Symbols starting config_ must be confined to config.h (see design.mps.config.impl.dep).
Copied from Perforce
 Change: 185027
 ServerID: perforce.ravenbrook.com
2014-03-26 16:25:14 +00:00
Gareth Rees
7fc9d6f911 Avoid expanding __file__ in aver in pelles c -- the compiler somehow loses its definition for __file__ in deeply nested macro expansions.
Copied from Perforce
 Change: 185025
 ServerID: perforce.ravenbrook.com
2014-03-26 13:44:02 +00:00
Gareth Rees
c7b793143d Fix review comments from dl <https://info.ravenbrook.com/mail/2014/03/25/17-44-56/0/>.
Add __attribute__((__format__(printf))) to functions that take a printf-compatible format string (when building using GCC or Clang), so that format string mistakes can be detected statically.

Copied from Perforce
 Change: 185021
 ServerID: perforce.ravenbrook.com
2014-03-26 12:27:35 +00:00
Gareth Rees
30e8b23b45 Support for stackprobe on w3i3pc and w3i6pc.
Copied from Perforce
 Change: 184998
 ServerID: perforce.ravenbrook.com
2014-03-25 11:05:09 +00:00
Gareth Rees
c1df7b56ce 64-bit support for pelles c:
* New nmake file w3i6pc.nmk.
* New stack scanner ssw3i6pc.c supplies missing jump buffer definition.
* Some platform tests change from defined(MPS_PF_W3I6MV) to defined(MPS_OS_w3) && defined(MPS_ARCH_I6).
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** Ensure that printf formats are consistent with arguments by using PRIuLONGEST and casting to ulongest_t.
** Use size_t for loop variables that index into arrays.
** Suppress "Consider changing type to 'size_t' for loop variable" warnings for the MPS core.

Copied from Perforce
 Change: 184996
 ServerID: perforce.ravenbrook.com
2014-03-25 10:59:09 +00:00
Gareth Rees
c94be13bdf 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
Richard Brooksby
46dc29b3da Responding to code review <https://info.ravenbrook.com/mail/2014/03/12/15-42-41/0/>.
Copied from Perforce
 Change: 184754
 ServerID: perforce.ravenbrook.com
2014-03-12 15:45:50 +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
Richard Brooksby
fc720aff46 Eliminating complex zonedcbs adt and reintroducing a cbs with zone summaries. removing the default “high” segment preference, that caused the cbs trees to unbalance, and isn’t required outside of ep. considerable reduction in code and speed up, now at parity with master on test xc/release/gcbench -x 1234 amc
Copied from Perforce
 Change: 184587
 ServerID: perforce.ravenbrook.com
2014-02-28 00:35:05 +00:00
Richard Brooksby
4dff43a172 Catch-up merge from master, mainly to pick up spare-ring merge.
Copied from Perforce
 Change: 184365
 ServerID: perforce.ravenbrook.com
2014-02-18 13:47:49 +00:00
Richard Brooksby
199a1261ed Catch-up merge from master, mainly to pick up chain-zones merge.
Copied from Perforce
 Change: 184343
 ServerID: perforce.ravenbrook.com
2014-02-14 15:23:36 +00:00
Richard Brooksby
7f590df09d Responding to review comments. see <https://info.ravenbrook.com/mail/2014/02/14/14-38-07/0/>.
Copied from Perforce
 Change: 184340
 ServerID: perforce.ravenbrook.com
2014-02-14 15:05:18 +00:00
Richard Brooksby
0833d101a0 Responding to review comments. see <https://info.ravenbrook.com/mail/2014/02/12/11-30-00/0/>.
Copied from Perforce
 Change: 184331
 ServerID: perforce.ravenbrook.com
2014-02-12 11:31:00 +00:00
Richard Brooksby
070f7784dd Refactored implementation of preferenced allocation policy from vm arena to general purpose arena.
Eliminating SegPrefExpress in most places, especially where there wasn’t really any preference.
Eliminating special case knowledge about garbage collection from the arena.

Copied from Perforce
 Change: 184279
 ServerID: perforce.ravenbrook.com
2014-01-30 18:08:10 +00:00
Richard Brooksby
cd840766ca Adding mps_key_gen generation keyword to pools that take a chain (except amc), so that you can specify which generation to allocate in by default. this allows some flexibility when the client can predict the lifetimes of objects.
The AWL and LO pools allocate into generation 1 of the arena default chain if neither MPS_KEY_CHAIN or MPS_KEY_GEN is specified, simulating the default setup before the chain-zones branch.

Copied from Perforce
 Change: 184231
 ServerID: perforce.ravenbrook.com
2014-01-30 14:27:09 +00:00
Richard Brooksby
4b865369fc Adding a default chain to the arena. not used anywhere yet.
Copied from Perforce
 Change: 184224
 ServerID: perforce.ravenbrook.com
2014-01-29 18:07:43 +00:00
Richard Brooksby
d8e81ae3c3 Abolishing the redundant generation to zone map in the vm arena, and replacing it with chainalloc, which allocates segments within a generation.
Generations from different chains will no longer share the same zone sets, and will not be collected together.  To get this behaviour, use the same chain, as documented.

Copied from Perforce
 Change: 184213
 ServerID: perforce.ravenbrook.com
2014-01-29 12:54:05 +00:00
Gareth Rees
bcfad58d3c Merge custom cet mainline into the master sources. this includes fixes for job003519 (clock values in text telemetry logs on windows have top 32 bits zero), job003536 (cet office can't replicate 100k snowmen in reasonable time), job003651 (stack overflows are not reliably handled).
Copied from Perforce
 Change: 183926
 ServerID: perforce.ravenbrook.com
2014-01-10 14:16:08 +00:00
Gareth Rees
6971ab5691 Document that you can specify mps_key_rank when creating an allocation point on an ams pool. make mps_key_rank default to mps_rank_exact().
Copied from Perforce
 Change: 183515
 ServerID: perforce.ravenbrook.com
2013-10-02 15:44:34 +01:00
Gareth Rees
b5004beb4b Make keyword mps_key_ams_support_ambiguous optional, with default value false. update documentation accordingly.
Copied from Perforce
 Change: 183513
 ServerID: perforce.ravenbrook.com
2013-10-02 15:14:57 +01:00
Gareth Rees
4c14792217 Prot_siginfo_good and prot_signal are no longer needed on os x.
Copied from Perforce
 Change: 183101
 ServerID: perforce.ravenbrook.com
2013-07-17 10:10:57 +01:00
Richard Brooksby
44d206b27c Adding missing #endif caused by merge error. oops.
Copied from Perforce
 Change: 183004
 ServerID: perforce.ravenbrook.com
2013-07-11 16:08:42 +01:00
Richard Brooksby
f737f311ab Merging branch/2013-06-18/macosx-threads back to master.
Copied from Perforce
 Change: 183002
 ServerID: perforce.ravenbrook.com
2013-07-11 15:55:58 +01:00
Gareth Rees
3017f9b480 Changes from review <https://info.ravenbrook.com/mail/2013/07/10/14-38-35/0/>.
Copied from Perforce
 Change: 182986
 ServerID: perforce.ravenbrook.com
2013-07-10 15:37:27 +01:00
Richard Brooksby
6cfd6d75c9 Reducing unnecessary copying of thread states by passing a pointer to the state in the mutator fault context.
Copied from Perforce
 Change: 182980
 ServerID: perforce.ravenbrook.com
2013-07-05 17:43:14 +01:00
Bruce Mitchener
7162dfcad2 Don't define _gnu_source if already defined.
When using the build method of including the MPS directly into
one's own sources, that build system may already define _GNU_SOURCE
causing a warning here about re-defining it.

Copied from Perforce
 Change: 182941
 ServerID: perforce.ravenbrook.com
2013-07-05 10:21:50 +01:00
Richard Brooksby
7181701824 Initial implementation of mac os x protection exception handling using mach.
Some threading tests get quite a long way.

Copied from Perforce
 Change: 182872
 ServerID: perforce.ravenbrook.com
2013-06-29 01:22:42 +01:00