all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andrea Corallo <akrl@sdf.org>
To: Paul Eggert <eggert@cs.ucla.edu>
Cc: martin rudalics <rudalics@gmx.at>,
	Stefan Monnier <monnier@iro.umontreal.ca>,
	emacs-devel@gnu.org
Subject: Inlining policy (was: emacs rendering comparisson between emacs23 and emacs26.3)
Date: Sun, 05 Apr 2020 10:23:38 +0000	[thread overview]
Message-ID: <xjfd08mb591.fsf_-_@sdf.org> (raw)
In-Reply-To: <c89b2c86-3520-54e7-1ec0-9e5c60dd81ac@cs.ucla.edu> (Paul Eggert's message of "Sat, 4 Apr 2020 17:07:48 -0700")

[-- Attachment #1: Type: text/plain, Size: 849 bytes --]

Paul Eggert <eggert@cs.ucla.edu> writes:

> I looked into this, and although it's no doubt fundamentally due to a
> slow algorithm, the slowness is exacerbated if you use -Og (which you
> appear to be using). Stefan's recent message hinted at this. I
> installed the attached into master to try to fix the -Og issue; please
> give it a try.

Hi Paul,

what about having a new macro to control the key operations we want to
always have inlined at -O0 and -Og instead of falling back into defining
these as macros?

Something like the attached patch.

Going further I think we could also use this to take control of the
subset of functions we really want to have always inlined also when
optimizing.

Don't know maybe this solution of the always_inline attribute has been
already attempted, in case apologies for the noise.

  Andrea

--
akrl@sdf.org

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Introduce-KEY_OP_INLINE-for-key-operations-inlining.patch --]
[-- Type: text/x-diff, Size: 10707 bytes --]

From 902a46835d8c37089de407d847ce1259c477dc00 Mon Sep 17 00:00:00 2001
From: Andrea Corallo <akrl@sdf.org>
Date: Sun, 5 Apr 2020 10:09:43 +0100
Subject: [PATCH] Introduce KEY_OP_INLINE for key operations inlining.

2020-04-05  Andrea Corallo  <akrl@sdf.org>

	* src/lisp.h:
	(XLI, XIL, XLP, XPL, CHECK_FIXNUM, CHECK_SYMBOL, CHECK_TYPE)
	(CONSP, EQ, FLOATP, FIXNUMP, NILP, SET_SYMBOL_VAL)
	(SYMBOL_CONSTANT_P, SYMBOL_TRAPPED_WRITE_P, SYMBOL_VAL, SYMBOLP)
	(TAGGEDP, VECTORLIKEP, XCAR, XCDR, XCONS, XHASH, make_fixnum)
	(XFIXNUM_RAW, XTYPE): Do not define these as macro plus use
	KEY_OP_INLINE in the function definition.
	* src/conf_post.h (ATTRIBUTE_ALWAYS_INLINE): New macro.
	(KEY_OP_INLINE): New macro.
	* src/Makefile.in (DEFINE_KEY_OPS_AS_MACROS): Rename into
	FORCE_INLINE_KEY_OPS.
---
 src/Makefile.in |   2 +-
 src/conf_post.h |  14 +++++++
 src/lisp.h      | 107 ++++++++++++++----------------------------------
 3 files changed, 45 insertions(+), 78 deletions(-)

diff --git a/src/Makefile.in b/src/Makefile.in
index dfd322553b..51c200dc9e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -378,7 +378,7 @@ pdmp :=
 NON_OBJC_CFLAGS = -Wignored-attributes -Wignored-qualifiers -Wopenmp-simd
 
 # Cajole GCC into inlining key ops even if it wouldn't normally.
-KEY_OPS_CFLAGS = $(if $(filter -Og,$(CFLAGS)),-DDEFINE_KEY_OPS_AS_MACROS)
+KEY_OPS_CFLAGS = $(if $(filter -Og,$(CFLAGS)),-DFORCE_INLINE_KEY_OPS)
 
 # -Demacs makes some files produce the correct version for use in Emacs.
 # MYCPPFLAGS is for by-hand Emacs-specific overrides, e.g.,
diff --git a/src/conf_post.h b/src/conf_post.h
index eb8fb18c00..441e19d829 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -240,6 +240,8 @@ #define NO_INLINE __attribute__((noinline))
 #define NO_INLINE
 #endif
 
+#define ATTRIBUTE_ALWAYS_INLINE __attribute__((always_inline))
+
 #if __has_attribute (externally_visible)
 #define EXTERNALLY_VISIBLE __attribute__((externally_visible))
 #else
@@ -446,6 +448,18 @@ #define ATTRIBUTE_MALLOC_SIZE(args) ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE (args)
 
 #endif
 
+/* Have key operations inlined at -O0 and -Og not to excessively kill
+   performance.  */
+#ifndef KEY_OP_INLINE
+# if (! defined __OPTIMIZE__ \
+      || (defined FORCE_INLINE_KEY_OPS && ! defined __NO_INLINE__ \
+	  && ! defined __OPTIMIZE_SIZE__))
+#  define KEY_OP_INLINE static inline ATTRIBUTE_UNUSED ATTRIBUTE_ALWAYS_INLINE
+# else
+#  define KEY_OP_INLINE INLINE
+# endif
+#endif
+
 /* 'int x UNINIT;' is equivalent to 'int x;', except it cajoles GCC
    into not warning incorrectly about use of an uninitialized variable.  */
 #if defined GCC_LINT || defined lint
diff --git a/src/lisp.h b/src/lisp.h
index 23ff89a977..168a496d58 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -411,53 +411,6 @@ #define lisp_h_XHASH(a) XUFIXNUM_RAW (a)
 # define lisp_h_XTYPE(a) ((enum Lisp_Type) (XLI (a) & ~VALMASK))
 #endif
 
-/* When DEFINE_KEY_OPS_AS_MACROS, define key operations as macros to
-   cajole the compiler into inlining them; otherwise define them as
-   inline functions as this is cleaner and can be more efficient.
-   The default is true if the compiler is GCC-like and if function
-   inlining is disabled because the compiler is not optimizing or is
-   optimizing for size.  Otherwise the default is false.  */
-#ifndef DEFINE_KEY_OPS_AS_MACROS
-# if (defined __NO_INLINE__ \
-      && ! defined __OPTIMIZE__ && ! defined __OPTIMIZE_SIZE__)
-#  define DEFINE_KEY_OPS_AS_MACROS true
-# else
-#  define DEFINE_KEY_OPS_AS_MACROS false
-# endif
-#endif
-
-#if DEFINE_KEY_OPS_AS_MACROS
-# define XLI(o) lisp_h_XLI (o)
-# define XIL(i) lisp_h_XIL (i)
-# define XLP(o) lisp_h_XLP (o)
-# define XPL(p) lisp_h_XPL (p)
-# define CHECK_FIXNUM(x) lisp_h_CHECK_FIXNUM (x)
-# define CHECK_SYMBOL(x) lisp_h_CHECK_SYMBOL (x)
-# define CHECK_TYPE(ok, predicate, x) lisp_h_CHECK_TYPE (ok, predicate, x)
-# define CONSP(x) lisp_h_CONSP (x)
-# define EQ(x, y) lisp_h_EQ (x, y)
-# define FLOATP(x) lisp_h_FLOATP (x)
-# define FIXNUMP(x) lisp_h_FIXNUMP (x)
-# define NILP(x) lisp_h_NILP (x)
-# define SET_SYMBOL_VAL(sym, v) lisp_h_SET_SYMBOL_VAL (sym, v)
-# define SYMBOL_CONSTANT_P(sym) lisp_h_SYMBOL_CONSTANT_P (sym)
-# define SYMBOL_TRAPPED_WRITE_P(sym) lisp_h_SYMBOL_TRAPPED_WRITE_P (sym)
-# define SYMBOL_VAL(sym) lisp_h_SYMBOL_VAL (sym)
-# define SYMBOLP(x) lisp_h_SYMBOLP (x)
-# define TAGGEDP(a, tag) lisp_h_TAGGEDP (a, tag)
-# define VECTORLIKEP(x) lisp_h_VECTORLIKEP (x)
-# define XCAR(c) lisp_h_XCAR (c)
-# define XCDR(c) lisp_h_XCDR (c)
-# define XCONS(a) lisp_h_XCONS (a)
-# define XHASH(a) lisp_h_XHASH (a)
-# if USE_LSB_TAG
-#  define make_fixnum(n) lisp_h_make_fixnum (n)
-#  define XFIXNUM_RAW(a) lisp_h_XFIXNUM_RAW (a)
-#  define XTYPE(a) lisp_h_XTYPE (a)
-# endif
-#endif
-
-
 /* Define the fundamental Lisp data structures.  */
 
 /* This is the set of Lisp data types.  If you want to define a new
@@ -718,25 +671,25 @@ definitely_will_not_unexec_p (void)
    if pointers differ in width from EMACS_INT; otherwise they are
    no-ops.  */
 
-INLINE EMACS_INT
+KEY_OP_INLINE EMACS_INT
 (XLI) (Lisp_Object o)
 {
   return lisp_h_XLI (o);
 }
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (XIL) (EMACS_INT i)
 {
   return lisp_h_XIL (i);
 }
 
-INLINE void *
+KEY_OP_INLINE void *
 (XLP) (Lisp_Object o)
 {
   return lisp_h_XLP (o);
 }
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (XPL) (void *p)
 {
   return lisp_h_XPL (p);
@@ -744,7 +697,7 @@ definitely_will_not_unexec_p (void)
 
 /* Extract A's type.  */
 
-INLINE enum Lisp_Type
+KEY_OP_INLINE enum Lisp_Type
 (XTYPE) (Lisp_Object a)
 {
 #if USE_LSB_TAG
@@ -758,13 +711,13 @@ definitely_will_not_unexec_p (void)
 /* True if A has type tag TAG.
    Equivalent to XTYPE (a) == TAG, but often faster.  */
 
-INLINE bool
+KEY_OP_INLINE bool
 (TAGGEDP) (Lisp_Object a, enum Lisp_Type tag)
 {
   return lisp_h_TAGGEDP (a, tag);
 }
 
-INLINE void
+KEY_OP_INLINE void
 (CHECK_TYPE) (int ok, Lisp_Object predicate, Lisp_Object x)
 {
   lisp_h_CHECK_TYPE (ok, predicate, x);
@@ -991,13 +944,13 @@ #define ROUNDUP(x, y) (POWER_OF_2 (y)					\
     ptrdiff_t size;
   };
 
-INLINE bool
+KEY_OP_INLINE bool
 (SYMBOLP) (Lisp_Object x)
 {
   return lisp_h_SYMBOLP (x);
 }
 
-INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
+KEY_OP_INLINE struct Lisp_Symbol * ATTRIBUTE_NO_SANITIZE_UNDEFINED
 XSYMBOL (Lisp_Object a)
 {
   eassert (SYMBOLP (a));
@@ -1052,7 +1005,7 @@ c_symbol_p (struct Lisp_Symbol *sym)
     }
 }
 
-INLINE void
+KEY_OP_INLINE void
 (CHECK_SYMBOL) (Lisp_Object x)
 {
   lisp_h_CHECK_SYMBOL (x);
@@ -1146,14 +1099,14 @@ #define FIXNUM_OVERFLOW_P(i) \
 
 #if USE_LSB_TAG
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (make_fixnum) (EMACS_INT n)
 {
   eassert (!FIXNUM_OVERFLOW_P (n));
   return lisp_h_make_fixnum_wrap (n);
 }
 
-INLINE EMACS_INT
+KEY_OP_INLINE EMACS_INT
 (XFIXNUM_RAW) (Lisp_Object a)
 {
   return lisp_h_XFIXNUM_RAW (a);
@@ -1173,7 +1126,7 @@ make_ufixnum (EMACS_INT n)
    the lisp_h_* macros are eventually removed.  */
 
 /* Make a fixnum representing the value of the low order bits of N.  */
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 make_fixnum (EMACS_INT n)
 {
   eassert (! FIXNUM_OVERFLOW_P (n));
@@ -1195,7 +1148,7 @@ make_fixnum (EMACS_INT n)
 /* Extract A's value as a signed integer.  Unlike XFIXNUM, this works
    on any Lisp object, although the resulting integer is useful only
    for things like hashing when A is not a fixnum.  */
-INLINE EMACS_INT
+KEY_OP_INLINE EMACS_INT
 XFIXNUM_RAW (Lisp_Object a)
 {
   EMACS_INT i = XLI (a);
@@ -1225,13 +1178,13 @@ make_ufixnum (EMACS_INT n)
 
 #endif /* ! USE_LSB_TAG */
 
-INLINE bool
+KEY_OP_INLINE bool
 (FIXNUMP) (Lisp_Object x)
 {
   return lisp_h_FIXNUMP (x);
 }
 
-INLINE EMACS_INT
+KEY_OP_INLINE EMACS_INT
 XFIXNUM (Lisp_Object a)
 {
   eassert (FIXNUMP (a));
@@ -1253,7 +1206,7 @@ XUFIXNUM (Lisp_Object a)
 }
 
 /* Return A's hash, which is in the range 0..INTMASK.  */
-INLINE EMACS_INT
+KEY_OP_INLINE EMACS_INT
 (XHASH) (Lisp_Object a)
 {
   return lisp_h_XHASH (a);
@@ -1270,7 +1223,7 @@ make_fixed_natnum (EMACS_INT n)
 
 /* Return true if X and Y are the same object.  */
 
-INLINE bool
+KEY_OP_INLINE bool
 (EQ) (Lisp_Object x, Lisp_Object y)
 {
   return lisp_h_EQ (x, y);
@@ -1399,13 +1352,13 @@ make_pointer_integer (void *p)
 };
 verify (GCALIGNED (struct Lisp_Cons));
 
-INLINE bool
+KEY_OP_INLINE bool
 (NILP) (Lisp_Object x)
 {
   return lisp_h_NILP (x);
 }
 
-INLINE bool
+KEY_OP_INLINE bool
 (CONSP) (Lisp_Object x)
 {
   return lisp_h_CONSP (x);
@@ -1417,7 +1370,7 @@ CHECK_CONS (Lisp_Object x)
   CHECK_TYPE (CONSP (x), Qconsp, x);
 }
 
-INLINE struct Lisp_Cons *
+KEY_OP_INLINE struct Lisp_Cons *
 (XCONS) (Lisp_Object a)
 {
   return lisp_h_XCONS (a);
@@ -1443,13 +1396,13 @@ xcdr_addr (Lisp_Object c)
 
 /* Use these from normal code.  */
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (XCAR) (Lisp_Object c)
 {
   return lisp_h_XCAR (c);
 }
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (XCDR) (Lisp_Object c)
 {
   return lisp_h_XCDR (c);
@@ -1652,7 +1605,7 @@ STRING_SET_CHARS (Lisp_Object string, ptrdiff_t newsize)
     Lisp_Object contents[FLEXIBLE_ARRAY_MEMBER];
   } GCALIGNED_STRUCT;
 
-INLINE bool
+KEY_OP_INLINE bool
 (VECTORLIKEP) (Lisp_Object x)
 {
   return lisp_h_VECTORLIKEP (x);
@@ -2174,7 +2127,7 @@ CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Char_Table *ct)
 
 /* Value is name of symbol.  */
 
-INLINE Lisp_Object
+KEY_OP_INLINE Lisp_Object
 (SYMBOL_VAL) (struct Lisp_Symbol *sym)
 {
   return lisp_h_SYMBOL_VAL (sym);
@@ -2199,7 +2152,7 @@ SYMBOL_FWD (struct Lisp_Symbol *sym)
   return sym->u.s.val.fwd;
 }
 
-INLINE void
+KEY_OP_INLINE void
 (SET_SYMBOL_VAL) (struct Lisp_Symbol *sym, Lisp_Object v)
 {
   lisp_h_SET_SYMBOL_VAL (sym, v);
@@ -2250,7 +2203,7 @@ SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (Lisp_Object sym)
    i.e. it's a constant (e.g. nil, t, :keywords), or it has some
    watching functions.  */
 
-INLINE int
+KEY_OP_INLINE int
 (SYMBOL_TRAPPED_WRITE_P) (Lisp_Object sym)
 {
   return lisp_h_SYMBOL_TRAPPED_WRITE_P (sym);
@@ -2261,7 +2214,7 @@ SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P (Lisp_Object sym)
    write to SYM, should also check whether there are any watching
    functions.  */
 
-INLINE int
+KEY_OP_INLINE int
 (SYMBOL_CONSTANT_P) (Lisp_Object sym)
 {
   return lisp_h_SYMBOL_CONSTANT_P (sym);
@@ -2806,7 +2759,7 @@ XBUFFER_OBJFWD (lispfwd a)
     } u;
   } GCALIGNED_STRUCT;
 
-INLINE bool
+KEY_OP_INLINE bool
 (FLOATP) (Lisp_Object x)
 {
   return lisp_h_FLOATP (x);
@@ -2970,7 +2923,7 @@ CHECK_LIST_END (Lisp_Object x, Lisp_Object y)
   CHECK_TYPE (NILP (x), Qlistp, y);
 }
 
-INLINE void
+KEY_OP_INLINE void
 (CHECK_FIXNUM) (Lisp_Object x)
 {
   lisp_h_CHECK_FIXNUM (x);
-- 
2.17.1


  parent reply	other threads:[~2020-04-05 10:23 UTC|newest]

Thread overview: 359+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-21 22:19 emacs rendering comparisson between emacs23 and emacs26.3 rrandresf
2020-03-21 22:47 ` Stefan Monnier
2020-03-22  3:32 ` Eli Zaretskii
2020-03-22 12:38 ` Alan Mackenzie
2020-03-22 15:08   ` Amin Bandali
2020-03-22 16:58     ` Eli Zaretskii
2020-03-23  2:51     ` Richard Stallman
2020-03-26 19:31       ` Alan Mackenzie
2020-03-26 20:25         ` Stefan Monnier
2020-03-26 20:38         ` rrandresf
2020-03-27  7:00           ` Eli Zaretskii
2020-03-27 18:36             ` andrés ramírez
2020-03-28  2:48             ` Richard Stallman
2020-03-28  7:09               ` Eli Zaretskii
2020-03-28  9:08                 ` Eli Zaretskii
2020-03-28 11:58                   ` Alan Mackenzie
2020-03-28 11:43                 ` Alan Mackenzie
2020-03-28 12:05                   ` Eli Zaretskii
2020-03-28 12:18                     ` Alan Mackenzie
2020-03-28 12:28                       ` Eli Zaretskii
2020-03-28 13:14                         ` Alan Mackenzie
2020-03-28 13:28                           ` Eli Zaretskii
2020-03-29 14:13                             ` andrés ramírez
2020-03-28 13:54                           ` Stefan Monnier
2020-03-28 12:43                     ` Stefan Monnier
2020-03-28  2:40           ` Richard Stallman
2020-03-28  9:21             ` Michael Albinus
2020-03-28  9:58             ` Eli Zaretskii
2020-03-28 10:09               ` Eli Zaretskii
2020-03-28 14:43               ` Clément Pit-Claudel
2020-03-28 15:03                 ` Eli Zaretskii
2020-03-28 15:17                   ` Clément Pit-Claudel
2020-03-28 15:44                     ` Eli Zaretskii
2020-03-28 16:10                     ` Dmitry Gutov
2020-03-28 16:11                       ` Dmitry Gutov
2020-03-28 16:25                         ` Eli Zaretskii
2020-03-28 16:43                           ` Dmitry Gutov
2020-03-28 21:08                             ` rrandresf
2020-03-28 21:20                               ` Dmitry Gutov
2020-03-28 21:38                                 ` andrés ramírez
2020-03-28 21:41                                   ` Dmitry Gutov
2020-03-28 22:15                                     ` andres.ramirez
2020-03-28 22:24                                       ` Dmitry Gutov
2020-03-29 14:30                             ` Eli Zaretskii
2020-03-29 16:39                               ` Stefan Monnier
2020-03-29 17:28                                 ` Eli Zaretskii
2020-03-29 18:10                                 ` Dmitry Gutov
2020-03-29 18:54                                   ` emacs-tree-sitter and font-lock (was: emacs rendering comparisson between emacs23 and emacs26.3) Stefan Monnier
2020-03-29 19:20                                     ` emacs-tree-sitter and font-lock Dmitry Gutov
2020-03-31 10:15                                   ` font lock with functions (was: emacs rendering comparisson between emacs23 and emacs26.3) David Engster
2020-03-31 10:42                                     ` font lock with functions Adam Porter
2020-03-31 13:20                                     ` Stefan Monnier
2020-03-31 14:25                                       ` Dmitry Gutov
2020-03-31 14:56                                         ` Stefan Monnier
2020-03-31 15:04                                           ` Dmitry Gutov
2020-04-01 10:13                                       ` David Engster
2020-04-01  1:02                                     ` Stephen Leake
2020-03-29 18:27                               ` emacs rendering comparisson between emacs23 and emacs26.3 Dmitry Gutov
2020-03-29 18:39                                 ` Eli Zaretskii
2020-03-29 19:11                                   ` Dmitry Gutov
2020-03-29 19:04                               ` 조성빈
2020-03-29 19:12                                 ` Eli Zaretskii
2020-03-30  3:42               ` Richard Stallman
2020-03-30 13:01                 ` Eli Zaretskii
2020-03-31  2:28                   ` Richard Stallman
2020-03-31 13:07                     ` Eli Zaretskii
2020-03-31 16:05                       ` Andrea Corallo
2020-03-31 17:34                         ` Eli Zaretskii
2020-03-31 18:00                           ` Andrea Corallo
2020-03-31 18:19                             ` Eli Zaretskii
2020-03-31 18:34                               ` Andrea Corallo
2020-03-31 19:05                               ` Stefan Monnier
2020-04-01  2:07                       ` Richard Stallman
2020-04-01 13:23                         ` Eli Zaretskii
2020-04-02  2:32                           ` Richard Stallman
2020-04-02  7:32                             ` martin rudalics
2020-04-03  2:52                               ` Richard Stallman
2020-04-03  6:59                                 ` martin rudalics
2020-04-03 13:38                                   ` Stefan Monnier
2020-04-03 16:23                                     ` martin rudalics
2020-04-03 16:56                                       ` Stefan Monnier
2020-04-04  8:54                                         ` martin rudalics
2020-04-03 18:08                                       ` Paul Eggert
2020-04-04  8:55                                         ` martin rudalics
2020-04-05  0:07                                           ` Paul Eggert
2020-04-05  1:50                                             ` Dmitry Gutov
2020-04-05  8:46                                             ` martin rudalics
2020-04-05 20:38                                               ` Paul Eggert
2020-04-05 10:23                                             ` Andrea Corallo [this message]
2020-04-06 18:15                                               ` Inlining policy Stefan Monnier
2020-04-06 18:26                                                 ` Paul Eggert
2020-04-06 19:17                                                   ` Andrea Corallo
2020-04-06 21:45                                                     ` Stefan Monnier
2020-04-08  4:03                                               ` Paul Eggert
2020-04-08 18:28                                                 ` Andrea Corallo
2020-04-08 18:44                                                   ` Paul Eggert
2020-04-08 19:09                                                     ` Andrea Corallo
2020-04-08 21:00                                                     ` Paul Eggert
2020-04-08 21:31                                                       ` Andrea Corallo
2020-04-03 17:47                                   ` emacs rendering comparisson between emacs23 and emacs26.3 Alan Mackenzie
2020-04-04  8:56                                     ` martin rudalics
2020-04-04 10:45                                       ` Alan Mackenzie
2020-04-04 11:10                                         ` martin rudalics
2020-04-04 11:29                                           ` Eli Zaretskii
2020-04-05  8:44                                             ` martin rudalics
2020-04-05 13:08                                               ` Eli Zaretskii
2020-04-05 15:50                                                 ` martin rudalics
2020-04-05 16:15                                                   ` Eli Zaretskii
2020-04-05 18:05                                                     ` Dmitry Gutov
2020-04-05 18:16                                                       ` Eli Zaretskii
2020-04-05 18:20                                                         ` Dmitry Gutov
2020-04-05 18:27                                                           ` Eli Zaretskii
2020-04-05 18:42                                                             ` Dmitry Gutov
2020-04-05 19:03                                                               ` Eli Zaretskii
2020-04-05 19:25                                                                 ` Dmitry Gutov
2020-04-06  2:25                                                                   ` Eli Zaretskii
2020-04-06 18:59                                                                     ` Dmitry Gutov
2020-04-07 14:30                                                                       ` Eli Zaretskii
2020-04-07 15:04                                                                         ` Dmitry Gutov
2020-04-07 17:42                                                                           ` Alan Mackenzie
2020-04-07 19:45                                                                             ` Dmitry Gutov
2020-04-08  2:09                                                                               ` Alan Mackenzie
2020-04-10  3:33                                                                                 ` Dmitry Gutov
2020-04-12 15:34                                                                                   ` Alan Mackenzie
2020-04-16  1:43                                                                                     ` Dmitry Gutov
2020-04-19 17:12                                                                                       ` Alan Mackenzie
2020-04-19 18:12                                                                                         ` Dmitry Gutov
2020-04-19 23:21                                                                                           ` Stefan Monnier
2020-04-20 13:33                                                                                             ` Dmitry Gutov
2020-04-20 19:01                                                                                               ` Stefan Monnier
2020-04-20 19:51                                                                                                 ` Alan Mackenzie
2020-04-20 21:58                                                                                                   ` Stefan Monnier
2020-04-20 20:06                                                                                             ` Alan Mackenzie
2020-04-20 20:08                                                                                               ` Dmitry Gutov
2020-04-20 21:19                                                                                           ` Alan Mackenzie
2020-04-21  1:41                                                                                             ` Dmitry Gutov
2020-04-21  3:41                                                                                             ` Stefan Monnier
2020-04-16 13:52                                                                                     ` Stefan Monnier
2020-04-07 19:22                                                                           ` Eli Zaretskii
2020-04-07 20:05                                                                             ` Dmitry Gutov
2020-04-08  6:17                                                                               ` Eli Zaretskii
2020-04-07 20:10                                                                             ` Alan Mackenzie
2020-04-08  6:15                                                                               ` Eli Zaretskii
2020-04-08  7:02                                                                                 ` Alan Mackenzie
2020-04-08  7:10                                                                                   ` Eli Zaretskii
2020-04-08  7:40                                                                                     ` Eli Zaretskii
2020-04-08 14:22                                                                                       ` Stefan Monnier
2020-04-08 15:06                                                                                         ` Eli Zaretskii
2020-04-08 15:16                                                                                           ` Stefan Monnier
2020-04-08 15:36                                                                                             ` Eli Zaretskii
2020-04-08  8:38                                                                                 ` martin rudalics
2020-04-08  9:44                                                                                   ` Eli Zaretskii
2020-04-08 14:25                                                                                   ` Stefan Monnier
2020-04-05 18:23                                                       ` Eli Zaretskii
2020-04-05 18:55                                                         ` Dmitry Gutov
2020-04-05 19:03                                                           ` Stefan Monnier
2020-04-05 19:14                                                             ` Eli Zaretskii
2020-04-05 19:21                                                             ` Dmitry Gutov
2020-04-06  2:16                                                               ` Stefan Monnier
2020-04-06 18:39                                                                 ` Dmitry Gutov
2020-04-06 21:27                                                                   ` Stefan Monnier
2020-04-06 21:40                                                                     ` Dmitry Gutov
2020-04-06 23:43                                                                       ` Stefan Monnier
2020-04-06 23:53                                                                         ` Dmitry Gutov
2020-04-07  3:17                                                                           ` Stefan Monnier
2020-04-05 19:06                                                           ` Eli Zaretskii
2020-04-05 19:16                                                             ` andrés ramírez
2020-04-05 19:19                                                               ` Eli Zaretskii
2020-04-05 19:28                                                             ` Dmitry Gutov
2020-04-05 19:57                                                       ` Alan Mackenzie
2020-04-05 20:48                                                         ` Dmitry Gutov
2020-04-06 12:43                                                           ` Dmitry Gutov
2020-04-06 13:39                                                             ` Eli Zaretskii
2020-04-06 13:55                                                               ` Dmitry Gutov
2020-04-06 14:44                                                                 ` Eli Zaretskii
2020-04-06 17:16                                                                   ` Dmitry Gutov
2020-04-07 14:26                                                                     ` Eli Zaretskii
2020-04-08  2:29                                                                       ` Richard Stallman
2020-04-08  6:45                                                                         ` Eli Zaretskii
2020-04-08  8:37                                                                       ` martin rudalics
2020-04-08 13:59                                                                         ` Eli Zaretskii
2020-04-08 14:45                                                                         ` Stefan Monnier
2020-04-09  0:32                                                                       ` Scrolling commands and skipping redisplay, was: " Dmitry Gutov
2020-04-09  7:46                                                                         ` Eli Zaretskii
2020-04-09 13:19                                                                           ` Stefan Monnier
2020-04-09 18:37                                                                             ` Dmitry Gutov
2020-04-09 19:16                                                                               ` Stefan Monnier
2020-04-09 19:30                                                                                 ` Dmitry Gutov
2020-04-09 19:46                                                                                   ` Stefan Monnier
2020-04-09 21:50                                                                                     ` Dmitry Gutov
2020-04-10  6:13                                                                                   ` Eli Zaretskii
2020-04-10 12:38                                                                                     ` Dmitry Gutov
2020-04-10 13:34                                                                                       ` Eli Zaretskii
2020-04-10 14:34                                                                                         ` Dmitry Gutov
2020-04-10 14:45                                                                                           ` Stefan Monnier
2020-04-10 17:23                                                                                             ` Dmitry Gutov
2020-04-10 17:46                                                                                               ` Stefan Monnier
2020-04-11  4:44                                                                                                 ` Dmitry Gutov
2020-04-11 13:45                                                                                                   ` Stefan Monnier
2020-04-11 21:32                                                                                                     ` Dmitry Gutov
2020-04-12  5:03                                                                                                       ` Stefan Monnier
2020-04-16  2:04                                                                                                         ` Dmitry Gutov
2020-04-10 18:25                                                                                             ` Eli Zaretskii
2020-04-10 15:47                                                                                           ` Eli Zaretskii
2020-04-11  0:21                                                                                             ` Dmitry Gutov
2020-04-11  7:55                                                                                               ` Eli Zaretskii
2020-04-12  2:51                                                                                                 ` Dmitry Gutov
2020-04-12  7:01                                                                                                   ` Eli Zaretskii
2020-04-09 19:20                                                                               ` Eli Zaretskii
2020-04-09 19:28                                                                                 ` Dmitry Gutov
2020-04-10  6:08                                                                                   ` Eli Zaretskii
2020-04-10 14:38                                                                                     ` Dmitry Gutov
2020-04-09 19:33                                                                                 ` Stefan Monnier
2020-04-09 22:17                                                                           ` Dmitry Gutov
2020-04-10  6:47                                                                             ` Eli Zaretskii
2020-04-10 13:00                                                                               ` Stefan Monnier
2020-04-10 13:38                                                                                 ` Eli Zaretskii
2020-04-10 14:29                                                                                   ` Stefan Monnier
2020-04-10 14:41                                                                                     ` Stefan Monnier
2020-04-10 15:36                                                                                     ` Eli Zaretskii
2020-04-10 15:55                                                                                       ` Dmitry Gutov
2020-04-10 14:45                                                                               ` Dmitry Gutov
2020-04-10 15:56                                                                                 ` Eli Zaretskii
2020-04-12  3:07                                                                                   ` Dmitry Gutov
2020-04-12  7:10                                                                                     ` Eli Zaretskii
2020-04-16  2:18                                                                                       ` Dmitry Gutov
2020-04-16  5:22                                                                                         ` Eli Zaretskii
2020-04-16 20:13                                                                                           ` Dmitry Gutov
2020-04-17  6:11                                                                                             ` Eli Zaretskii
2020-04-17 17:04                                                                                               ` Dmitry Gutov
2020-04-17 17:35                                                                                                 ` Eli Zaretskii
2020-04-17 17:52                                                                                                   ` Dmitry Gutov
2020-04-17 18:48                                                                                                     ` Eli Zaretskii
2020-04-19 17:09                                                                                                       ` Dmitry Gutov
2020-04-19 17:17                                                                                                         ` Stefan Monnier
2020-04-19 18:51                                                                                                           ` Eli Zaretskii
2020-04-19 23:22                                                                                                             ` Stefan Monnier
2020-04-20 14:23                                                                                                               ` Eli Zaretskii
2020-04-20 15:36                                                                                                                 ` Stefan Monnier
2020-04-20 16:42                                                                                                                 ` Dmitry Gutov
2020-04-20 16:51                                                                                                                   ` Eli Zaretskii
2020-04-20 16:56                                                                                                                     ` Dmitry Gutov
2020-04-20 17:02                                                                                                                       ` Andreas Schwab
2020-04-20 17:35                                                                                                                       ` Eli Zaretskii
2020-04-20 17:47                                                                                                                         ` Stefan Monnier
2020-04-20 18:12                                                                                                                           ` Eli Zaretskii
2020-04-20 18:19                                                                                                                           ` Eli Zaretskii
2020-04-20 18:29                                                                                                                             ` Dmitry Gutov
2020-04-20 18:52                                                                                                                               ` Eli Zaretskii
2020-04-20 19:03                                                                                                                                 ` Dmitry Gutov
2020-04-20 18:51                                                                                                                             ` Stefan Monnier
2020-04-20 19:09                                                                                                                               ` Eli Zaretskii
2020-04-20 21:50                                                                                                                                 ` Stefan Monnier
2020-04-21 13:27                                                                                                                                   ` Eli Zaretskii
2020-04-22  3:14                                                                                                                                     ` Richard Stallman
2020-04-22 13:26                                                                                                                                       ` Eli Zaretskii
2020-04-23  2:37                                                                                                                                         ` Richard Stallman
2020-04-23 13:17                                                                                                                                           ` Stefan Monnier
2020-04-23 14:46                                                                                                                                           ` Eli Zaretskii
2020-04-24  2:39                                                                                                                                             ` Richard Stallman
2020-04-20 18:27                                                                                                                         ` Dmitry Gutov
2020-04-20 17:39                                                                                                                     ` Stefan Monnier
2020-04-20 17:42                                                                                                                       ` Eli Zaretskii
2020-04-19 19:06                                                                                                         ` Eli Zaretskii
2020-04-20  3:17                                                                                                           ` Dmitry Gutov
2020-04-20 15:01                                                                                                             ` Eli Zaretskii
2020-04-20 17:04                                                                                                               ` Dmitry Gutov
2020-04-20 17:39                                                                                                                 ` Eli Zaretskii
2020-04-20 18:26                                                                                                                   ` Dmitry Gutov
2020-04-20  3:27                                                                                                   ` Dmitry Gutov
2020-04-20 15:16                                                                                                     ` Eli Zaretskii
2020-04-21  1:27                                                                                                       ` Dmitry Gutov
2020-04-21 14:02                                                                                                         ` Eli Zaretskii
2020-04-24  1:23                                                                                                           ` Dmitry Gutov
2020-04-24  9:51                                                                                                             ` Eli Zaretskii
2020-04-25  0:21                                                                                                               ` Dmitry Gutov
2020-04-16 20:20                                                                                           ` Stefan Monnier
2020-04-17  6:18                                                                                             ` Eli Zaretskii
2020-04-17 15:13                                                                                               ` Stefan Monnier
2020-04-17 15:25                                                                                                 ` Eli Zaretskii
2020-04-17 16:39                                                                                                   ` Dmitry Gutov
2020-04-11 13:21                                                                         ` Scrolling commands and skipping redisplay Alan Mackenzie
2020-04-11 13:45                                                                           ` Eli Zaretskii
2020-04-11 17:04                                                                             ` Alan Mackenzie
2020-04-11 17:15                                                                               ` Eli Zaretskii
2020-04-11 21:13                                                                                 ` Alan Mackenzie
2020-04-06  2:27                                                         ` emacs rendering comparisson between emacs23 and emacs26.3 Eli Zaretskii
2020-04-06 12:26                                                           ` Alan Mackenzie
2020-04-07  8:31                                                         ` martin rudalics
2020-04-07 11:47                                                           ` Alan Mackenzie
2020-04-07 12:45                                                             ` martin rudalics
2020-04-07 13:11                                                               ` Dmitry Gutov
2020-04-08  8:36                                                                 ` martin rudalics
2020-04-08 10:37                                                                   ` Dmitry Gutov
2020-04-08 11:22                                                                     ` Eli Zaretskii
2020-04-08 14:01                                                                       ` Dmitry Gutov
2020-04-07 14:15                                                               ` Eli Zaretskii
2020-04-07 12:07                                                           ` Dmitry Gutov
2020-04-07 12:35                                                             ` Dmitry Gutov
2020-04-07 12:45                                                             ` martin rudalics
2020-04-06  9:05                                                     ` martin rudalics
2020-04-06 13:29                                                       ` Eli Zaretskii
2020-04-06 15:29                                                       ` Stefan Monnier
2020-04-06 17:40                                                         ` martin rudalics
2020-04-05 18:48                                                   ` Stefan Monnier
2020-04-06  9:05                                                     ` martin rudalics
2020-04-06 15:25                                                       ` Stefan Monnier
2020-04-06 15:30                                                         ` Eli Zaretskii
2020-04-06 16:23                                                           ` Stefan Monnier
2020-04-04 12:01                                           ` Alan Mackenzie
2020-04-05  8:45                                             ` martin rudalics
2020-04-06  3:49                                               ` Ravine Var
2020-04-06  9:05                                                 ` martin rudalics
2020-04-06  9:04                                         ` martin rudalics
2020-04-04 19:20                                       ` Alan Mackenzie
2020-04-04 22:53                                       ` Stefan Monnier
2020-04-06  9:04                                         ` martin rudalics
2020-04-05  3:12                                     ` Richard Stallman
2020-04-05 11:16                                       ` Alan Mackenzie
2020-04-05 14:10                                         ` Stefan Monnier
2020-04-06  2:36                                           ` Richard Stallman
2020-04-06 14:43                                             ` Stefan Monnier
2020-04-07  2:48                                               ` Richard Stallman
2020-04-07  3:23                                                 ` Stefan Monnier
2020-04-06 14:55                                             ` Dmitry Gutov
2020-04-06 19:36                                               ` Alan Mackenzie
2020-04-06 22:12                                                 ` Dmitry Gutov
2020-04-06 23:41                                                   ` Stefan Monnier
2020-04-07 14:17                                                     ` Dmitry Gutov
2020-04-06  2:36                                         ` Richard Stallman
2020-04-06 12:14                                           ` Alan Mackenzie
2020-04-07  2:49                                             ` Richard Stallman
2020-04-07  3:26                                               ` Stefan Monnier
2020-04-08  2:29                                                 ` Richard Stallman
2020-04-08  3:48                                                   ` Stefan Monnier
2020-04-09  3:10                                                     ` Richard Stallman
2020-04-09  6:43                                                       ` Eli Zaretskii
2020-04-10  2:08                                                         ` Richard Stallman
2020-04-10  3:07                                                           ` Stefan Monnier
2020-04-11  2:31                                                             ` Richard Stallman
2020-04-11  4:20                                                               ` Stefan Monnier
2020-04-06  2:36                                         ` Richard Stallman
2020-04-05 13:27                                   ` Alan Mackenzie
2020-04-05 15:50                                     ` martin rudalics
2020-04-06  2:36                                   ` Richard Stallman
2020-04-06 13:21                                     ` Eli Zaretskii
2020-04-07  8:32                                       ` martin rudalics
2020-04-07 12:52                                         ` Dmitry Gutov
2020-04-08  8:36                                           ` martin rudalics
2020-04-07 14:03                                         ` Eli Zaretskii
2020-04-08  8:37                                           ` martin rudalics
2020-04-11 15:13                                         ` Noam Postavsky
2020-04-08  2:29                                       ` Richard Stallman
2020-04-08  6:40                                         ` Eli Zaretskii
2020-04-09  3:10                                           ` Richard Stallman
2020-04-06 14:46                                     ` Stefan Monnier
2020-04-02 13:30                             ` Eli Zaretskii
2020-04-03  2:54                               ` Richard Stallman
2020-03-28 20:08             ` andrés ramírez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xjfd08mb591.fsf_-_@sdf.org \
    --to=akrl@sdf.org \
    --cc=eggert@cs.ucla.edu \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.