diff options
| author | Dmitry Antipov | 2014-09-24 15:59:13 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-09-24 15:59:13 +0400 |
| commit | e9a86416c68240e1894d32e158cdf2abb5c4e477 (patch) | |
| tree | 041e1e73945e07b5dfc7b63cdb0885fb6e4ec487 /src/lisp.h | |
| parent | c0b1b0371527124f34f505bdac6f2a1cdf8e37b9 (diff) | |
| download | emacs-e9a86416c68240e1894d32e158cdf2abb5c4e477.tar.gz emacs-e9a86416c68240e1894d32e158cdf2abb5c4e477.zip | |
* lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
&& __GNUC__ && !__clang__. Mention known problems. Adjust comment.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lisp.h b/src/lisp.h index deb4635d035..836557e492e 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -282,7 +282,16 @@ error !; | |||
| 282 | # endif | 282 | # endif |
| 283 | #endif | 283 | #endif |
| 284 | 284 | ||
| 285 | /* This should work on GNU/Linux with GCC. Other configurations may be | ||
| 286 | problematic and/or not tested yet. Clang is known to have problems, | ||
| 287 | see http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00506.html. | ||
| 288 | Also http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00422.html | ||
| 289 | describes an issues with 32-bit MS-Windows. */ | ||
| 285 | #ifndef USE_STACK_LISP_OBJECTS | 290 | #ifndef USE_STACK_LISP_OBJECTS |
| 291 | # if defined (GNU_LINUX) && defined (__GNUC__) && !defined (__clang__) | ||
| 292 | # define USE_STACK_LISP_OBJECTS true | ||
| 293 | # endif | ||
| 294 | #else | ||
| 286 | # define USE_STACK_LISP_OBJECTS false | 295 | # define USE_STACK_LISP_OBJECTS false |
| 287 | #endif | 296 | #endif |
| 288 | 297 | ||
| @@ -4581,8 +4590,10 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); | |||
| 4581 | better performance because GC is not involved. | 4590 | better performance because GC is not involved. |
| 4582 | 4591 | ||
| 4583 | This feature is experimental and requires careful debugging. | 4592 | This feature is experimental and requires careful debugging. |
| 4584 | Brave users can compile with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS' | 4593 | It's enabled by default on GNU/Linux with GCC. On other systems, |
| 4585 | to get into the game. */ | 4594 | brave users can compile with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS' |
| 4595 | to get into the game. Also note that this feature requires | ||
| 4596 | GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS. */ | ||
| 4586 | 4597 | ||
| 4587 | /* A struct Lisp_Cons inside a union that is no larger and may be | 4598 | /* A struct Lisp_Cons inside a union that is no larger and may be |
| 4588 | better-aligned. */ | 4599 | better-aligned. */ |