1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-30 17:10:51 -08:00
Commit graph

136 commits

Author SHA1 Message Date
Gareth Rees
d44862dcf7 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
691195da96 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
7b5411c4f7 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
3a1ce9493f 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
ef779449b4 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
7620c6fcd1 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
2f4d1c8cd4 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
f5212b5129 Update comment to match design.
Copied from Perforce
 Change: 185902
 ServerID: perforce.ravenbrook.com
2014-04-30 16:30:01 +01:00
Gareth Rees
7754224b53 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
63b095ce4d 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
b512c97d84 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
2ef0e22c55 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
3a36920e40 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
a76ab7ce6b 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
84cd92ab89 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
1fc2bbe52b 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
9a523d0ccb 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
b2ec897e6b Support the clang address sanitizer.
Copied from Perforce
 Change: 185096
 ServerID: perforce.ravenbrook.com
2014-03-30 18:51:53 +01:00
Gareth Rees
d934afafc5 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
68edf84c3b 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
a683ecf9f3 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
bfc3de38fa 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
fe68bfac83 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
9aef4157fd 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
d799a993a2 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
00ee0bfcc5 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
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
Richard Brooksby
c77f1f931f 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
4eec2493b7 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
ddfec2c708 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
2151d00c7f 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
d8cb7e9a01 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
2b0f94df6c 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
e9f3f70cce 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
7a73e98638 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
4b50f3688b 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
1982233b78 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
f1abe0e30f 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
ea9df0b2b7 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
e522a0b273 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
692489dd2b 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
91c2d03744 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
08c7ce947c 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
1cd1480122 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
f8c90b565e 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
01d17882e6 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
9e2eef4fa0 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
96448d34a9 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
David Lovemore
1ad79c5caa Switched mac os x threading to use thix.c and pthreadext.c.
Also switched to using platform specific Mutator Context code
so that we can read out the registers for instruction emulation
and stack scanning.
Builds on 64-bit but doesn't work because sem_init is unimplemented on
Mac OS X.
Not finished on 32-bit.

Copied from Perforce
 Change: 182791
 ServerID: perforce.ravenbrook.com
2013-06-18 16:29:31 +01:00
Richard Brooksby
56645cdc0c Merging branch/2013-05-17/emergency with major rework of mvt, mvff, and cbs.
Some parts of this are still ragged, and would not normally pass review, but this is a massive improvement to the existing code.

Copied from Perforce
 Change: 182614
 ServerID: perforce.ravenbrook.com
2013-06-08 10:57:57 +01:00