]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 24 Sep 2014 11:59:13 +0000 (15:59 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Wed, 24 Sep 2014 11:59:13 +0000 (15:59 +0400)
&& __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.

src/ChangeLog
src/lisp.h

index ec4f051f483736df7905042bd05a7b59b6f1ff29..9e4492d2c90cef5ef8e7c7c5ea8b64627950539c 100644 (file)
@@ -36,6 +36,9 @@
        (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
        * keymap.c (append_key): Use scoped_list1.
 
+       * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
+       && __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.
+
 2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix some slow uses and misuses of strcat.
index deb4635d0359c6f3c8c6d837dbcf46abf1eed4fd..836557e492e2376feac06d53888a25f52008a72c 100644 (file)
@@ -282,7 +282,16 @@ error !;
 # endif
 #endif
 
+/* This should work on GNU/Linux with GCC.  Other configurations may be
+   problematic and/or not tested yet.  Clang is known to have problems,
+   see http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00506.html.
+   Also http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00422.html
+   describes an issues with 32-bit MS-Windows.  */
 #ifndef USE_STACK_LISP_OBJECTS
+# if defined (GNU_LINUX) && defined (__GNUC__) && !defined (__clang__)
+#   define USE_STACK_LISP_OBJECTS true
+# endif
+#else
 # define USE_STACK_LISP_OBJECTS false
 #endif
 
@@ -4581,8 +4590,10 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1));
    better performance because GC is not involved.
 
    This feature is experimental and requires careful debugging.
-   Brave users can compile with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS'
-   to get into the game.  */
+   It's enabled by default on GNU/Linux with GCC.  On other systems,
+   brave users can compile with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS'
+   to get into the game.  Also note that this feature requires
+   GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.  */
 
 /* A struct Lisp_Cons inside a union that is no larger and may be
    better-aligned.  */