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 | |
| 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.
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/lisp.h | 15 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ec4f051f483..9e4492d2c90 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -36,6 +36,9 @@ | |||
| 36 | (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA. | 36 | (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA. |
| 37 | * keymap.c (append_key): Use scoped_list1. | 37 | * keymap.c (append_key): Use scoped_list1. |
| 38 | 38 | ||
| 39 | * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX | ||
| 40 | && __GNUC__ && !__clang__. Mention known problems. Adjust comment. | ||
| 41 | |||
| 39 | 2014-09-24 Paul Eggert <eggert@cs.ucla.edu> | 42 | 2014-09-24 Paul Eggert <eggert@cs.ucla.edu> |
| 40 | 43 | ||
| 41 | Fix some slow uses and misuses of strcat. | 44 | Fix some slow uses and misuses of strcat. |
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. */ |