(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.
# 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
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. */