From: Helmut Eller <eller.helmut@gmail.com>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: STatus of MPS branch
Date: Sun, 21 Apr 2024 16:39:42 +0200 [thread overview]
Message-ID: <878r16n5jl.fsf@gmail.com> (raw)
In-Reply-To: <m2o7a44bua.fsf@Pro.fritz.box> ("Gerd Möllmann"'s message of "Sat, 20 Apr 2024 11:34:05 +0200")
[-- Attachment #1: Type: text/plain, Size: 813 bytes --]
On Sat, Apr 20 2024, Gerd Möllmann wrote:
> There are many things other people could help with at this point. Some
> require no knowledge of MPS, or C. For example:
>
> - Make it work on anything not macOS.
I'm trying to build the igc branch on Debian. But I get a SIGSEGV when
loaddefs-gen.el gets loaded.
I configured with:
CFLAGS='-g -O0 -I/scratch/emacs/mps-install/include -L/scratch/emacs/mps-install/lib' configure --enable-checking=yes --without-all --without-x --with-mps=debug
and made some changes to igc.c as seen in the diff below; but those seem
rather innocent.
GCC still emits this warning:
igc.c:229:18: warning: ‘pvec_type’ is narrower than values of its type
229 | enum pvec_type pvec_type : IGC_PVEC_BITS;
Is this something to worry about?
Helmut
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: igc.diff --]
[-- Type: text/x-diff, Size: 2117 bytes --]
diff --git a/src/igc.c b/src/igc.c
index dfb25d6c824..5de83980863 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -73,7 +73,7 @@
static void
igc_assert_fail (const char *file, unsigned line, const char *msg)
{
- extern void die (const char *, const char *, int);
+ //extern void die (const char *, const char *, int);
die (msg, file, line);
}
@@ -81,7 +81,7 @@ igc_assert_fail (const char *file, unsigned line, const char *msg)
# define igc_assert(expr) \
if (!(expr)) \
igc_assert_fail (__FILE__, __LINE__, #expr); \
- else
+ /* else */
#else
# define igc_assert(expr) (void) 9
#endif
@@ -122,7 +122,7 @@ is_aligned (const mps_addr_t addr)
#define IGC_CHECK_RES(res) \
if ((res) != MPS_RES_OK) \
emacs_abort (); \
- else
+ /* else */
#define IGC_WITH_PARKED(gc) \
for (int i = (mps_arena_park (gc->arena), 1); i; \
@@ -801,6 +801,7 @@ scan_pure (mps_ss_t ss, void *start, void *end, void *closure)
MPS_SCAN_BEGIN (ss)
{
igc_assert (start == (void *) pure);
+ extern ptrdiff_t pure_bytes_used_lisp;
end = (char *) pure + pure_bytes_used_lisp;
if (end > start)
IGC_FIX_CALL (ss, scan_ambig (ss, start, end, NULL));
@@ -954,6 +955,7 @@ fix_itree_node (mps_ss_t ss, struct itree_node *n)
static mps_res_t
fix_image (mps_ss_t ss, struct image *i)
{
+#ifdef HAVE_WINDOW_SYSTEM
MPS_SCAN_BEGIN (ss)
{
IGC_FIX12_OBJ (ss, &i->spec);
@@ -964,6 +966,7 @@ fix_image (mps_ss_t ss, struct image *i)
}
MPS_SCAN_END (ss);
return MPS_RES_OK;
+#endif
}
static mps_res_t
@@ -2342,6 +2345,7 @@ thread_ap (enum igc_obj_type type)
case IGC_OBJ_FLOAT:
return t->d.leaf_ap;
}
+ emacs_abort ();
}
/* Conditional breakpoints can be so slow that it is often more
@@ -2572,12 +2576,14 @@ igc_make_itree_node (void)
return n;
}
+#ifdef HAVE_WINDOW_SYSTEM
struct image *
igc_make_image (void)
{
struct image *img = alloc (sizeof *img, IGC_OBJ_IMAGE, PVEC_FREE);
return img;
}
+#endif
struct face *
igc_make_face (void)
[-- Attachment #3: gdb-session.txt --]
[-- Type: text/plain, Size: 7875 bytes --]
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
`/scratch/emacs/emacs-igc/src/bootstrap-emacs' has changed; re-reading symbols.
Starting program: /scratch/emacs/emacs-igc/src/bootstrap-emacs -batch --no-site-file --no-site-lisp -l ./emacs-lisp/loaddefs-gen.elc -f loaddefs-generate--emacs-batch . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./image ./international ./language ./leim ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./use-package ./vc
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
INFO Scraping files for loaddefs...
INFO Scraping files for loaddefs...10%
INFO Scraping files for loaddefs...20%
INFO Scraping files for loaddefs...30%
INFO Scraping files for loaddefs...40%
INFO Scraping files for loaddefs...50%
INFO Scraping files for loaddefs...60%
INFO Scraping files for loaddefs...70%
INFO Scraping files for loaddefs...80%
Program received signal SIGSEGV, Segmentation fault.
Breakpoint 1, handle_sigsegv (sig=11,
siginfo=0x555555f6ed70 <sigsegv_stack+64784>,
arg=0x555555f6ec40 <sigsegv_stack+64480>) at sysdep.c:1930
1930 bool fatal = gc_in_progress;
(gdb) xbacktrace
"help-add-fundoc-usage" (0xe5f03550)
0xe8406ec0 PVEC_COMPILED
0xe8406fd0 PVEC_COMPILED
"loaddefs-generate--make-autoload" (0xe5f03280)
"loaddefs-generate--make-autoload" (0xe5f03200)
"loaddefs-generate--parse-file" (0xe5f03140)
"loaddefs-generate" (0xe5f03048)
"loaddefs-generate--emacs-batch" (0xffffc058)
"funcall" (0xffffc050)
"if" (0xffffc280)
"cond" (0xffffc430)
"let*" (0xffffc630)
"while" (0xffffc800)
"let*" (0xffffca00)
"progn" (0xffffcb70)
"if" (0xffffcce0)
"let" (0xffffcf00)
"let" (0xffffd120)
"command-line-1" (0xffffd2b0)
"let" (0xffffd5e0)
"command-line" (0xffffd770)
"unwind-protect" (0xffffd9e0)
"let" (0xffffdc00)
"if" (0xffffdda0)
"normal-top-level" (0xffffdf30)
(gdb) backtrace
#0 handle_sigsegv (sig=11, siginfo=0x555555f6ed70 <sigsegv_stack+64784>,
arg=0x555555f6ec40 <sigsegv_stack+64480>) at sysdep.c:1930
#1 <signal handler called>
#2 string_intervals (s=XIL(0x7ffff0698edc))
at /scratch/emacs/emacs-igc/src/lisp.h:4063
#3 0x0000555555767d97 in concat_to_string (nargs=3, args=0x7fffe5f035b8)
at fns.c:957
#4 0x0000555555767373 in Fconcat (nargs=3, args=0x7fffe5f035b8) at fns.c:746
#5 0x00005555557b466a in exec_byte_code (fun=XIL(0x7fffe64689a5),
args_template=257, nargs=1, args=0x7fffe5f03628) at bytecode.c:1229
#6 0x000055555575e1fc in funcall_lambda (fun=XIL(0x7fffe840faad), nargs=0,
arg_vector=0x7fffffffc058) at eval.c:3200
#7 0x000055555575d4e7 in funcall_general (fun=XIL(0x7fffe840faad), numargs=0,
args=0x7fffffffc058) at eval.c:2982
#8 0x000055555575d7c4 in Ffuncall (nargs=1, args=0x7fffffffc050)
at eval.c:3032
#9 0x000055555575c088 in eval_sub (form=XIL(0x7fffe7036d63)) at eval.c:2507
#10 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#11 0x0000555555756eae in Fif (args=XIL(0x7fffe7036d33)) at eval.c:395
#12 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7036d23)) at eval.c:2486
#13 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#14 0x0000555555756f45 in Fcond (args=XIL(0x7fffe7031013)) at eval.c:419
#15 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030fe3)) at eval.c:2486
#16 0x0000555555756fcd in Fprogn (body=XIL(0x7fffe7030f43)) at eval.c:439
#17 0x000055555575855c in FletX (args=XIL(0x7fffe7030f03)) at eval.c:979
#18 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030ef3)) at eval.c:2486
#19 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#20 0x0000555555756ffd in prog_ignore (body=XIL(0x7fffe7030ee3)) at eval.c:450
#21 0x00005555557589a6 in Fwhile (args=XIL(0x7fffe7030ed3)) at eval.c:1068
#22 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030ec3)) at eval.c:2486
#23 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#24 0x000055555575855c in FletX (args=XIL(0x7fffe7030e83)) at eval.c:979
#25 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030e73)) at eval.c:2486
#26 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#27 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030e53)) at eval.c:2486
#28 0x0000555555756e8c in Fif (args=XIL(0x7fffe7030e33)) at eval.c:394
#29 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030e23)) at eval.c:2486
#30 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#31 0x000055555575893e in Flet (args=XIL(0x7fffe7030e03)) at eval.c:1047
#32 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7030df3)) at eval.c:2486
#33 0x0000555555756fcd in Fprogn (body=XIL(0x7fffe702ade3)) at eval.c:439
#34 0x000055555575893e in Flet (args=XIL(0x7fffe702adc3)) at eval.c:1047
#35 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe702adb3)) at eval.c:2486
#36 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#37 0x000055555575e607 in funcall_lambda (fun=XIL(0x7fffe702ad53), nargs=1,
arg_vector=0x7fffffffd2b0) at eval.c:3283
#38 0x000055555575e004 in apply_lambda (fun=XIL(0x7fffe702ad43),
args=XIL(0x7fffe703a6a3), count=...) at eval.c:3154
#39 0x000055555575c735 in eval_sub (form=XIL(0x7fffe703a693)) at eval.c:2625
#40 0x0000555555756fcd in Fprogn (body=XIL(0x7fffe70399d3)) at eval.c:439
#41 0x000055555575893e in Flet (args=XIL(0x7fffe70397e3)) at eval.c:1047
#42 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe70397d3)) at eval.c:2486
#43 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#44 0x000055555575e607 in funcall_lambda (fun=XIL(0x7fffe7039793), nargs=0,
arg_vector=0x7fffffffd770) at eval.c:3283
#45 0x000055555575e004 in apply_lambda (fun=XIL(0x7fffe7039783), args=XIL(0),
count=...) at eval.c:3154
#46 0x000055555575c735 in eval_sub (form=XIL(0x7fffe70471f3)) at eval.c:2625
#47 0x000055555575907b in Funwind_protect (args=XIL(0x7fffe70462e3))
at eval.c:1328
#48 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe70462d3)) at eval.c:2486
#49 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#50 0x000055555575893e in Flet (args=XIL(0x7fffe70462b3)) at eval.c:1047
#51 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe70462a3)) at eval.c:2486
#52 0x0000555555756fcd in Fprogn (body=XIL(0x7fffe7045cf3)) at eval.c:439
#53 0x0000555555756eae in Fif (args=XIL(0x7fffe7045b83)) at eval.c:395
#54 0x000055555575beb6 in eval_sub (form=XIL(0x7fffe7045b73)) at eval.c:2486
#55 0x0000555555756fcd in Fprogn (body=XIL(0)) at eval.c:439
#56 0x000055555575e607 in funcall_lambda (fun=XIL(0x7fffe7045b23), nargs=0,
arg_vector=0x7fffffffdf30) at eval.c:3283
#57 0x000055555575e004 in apply_lambda (fun=XIL(0x7fffe7045b13), args=XIL(0),
count=...) at eval.c:3154
--Type <RET> for more, q to quit, c to continue without paging--
#58 0x000055555575c735 in eval_sub (form=XIL(0x7fffe72674cb)) at eval.c:2625
#59 0x000055555575b931 in Feval (form=XIL(0x7fffe72674cb), lexical=XIL(0x30))
at eval.c:2396
#60 0x00005555556875aa in top_level_2 () at keyboard.c:1184
#61 0x000055555575991b in internal_condition_case (
bfun=0x555555687543 <top_level_2>, handlers=XIL(0x90),
hfun=0x555555686de8 <cmd_error>) at eval.c:1544
#62 0x0000555555687612 in top_level_1 (ignore=XIL(0)) at keyboard.c:1196
#63 0x0000555555758d5e in internal_catch (tag=XIL(0xe3a0),
func=0x5555556875c3 <top_level_1>, arg=XIL(0)) at eval.c:1224
#64 0x000055555568747e in command_loop () at keyboard.c:1145
#65 0x000055555568688a in recursive_edit_1 () at keyboard.c:754
#66 0x0000555555686ab6 in Frecursive_edit () at keyboard.c:837
#67 0x00005555556825d0 in main (argc=41, argv=0x7fffffffe528) at emacs.c:2626
(gdb)
next prev parent reply other threads:[~2024-04-21 14:39 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-20 9:34 STatus of MPS branch Gerd Möllmann
2024-04-20 14:56 ` Michael Albinus
2024-04-20 15:08 ` Gerd Möllmann
2024-04-20 15:32 ` Michael Albinus
2024-04-20 17:37 ` Gerd Möllmann
2024-04-21 7:39 ` Michael Albinus
2024-04-21 7:56 ` Gerd Möllmann
2024-04-21 8:00 ` Gerd Möllmann
2024-04-21 8:04 ` Michael Albinus
2024-04-21 8:08 ` Gerd Möllmann
2024-04-21 8:18 ` Michael Albinus
2024-04-21 8:28 ` Gerd Möllmann
2024-04-21 8:17 ` Gerd Möllmann
2024-04-21 9:43 ` Michael Albinus
2024-04-21 10:07 ` Gerd Möllmann
2024-04-21 10:58 ` Tramp tests in MPS branch (was: STatus of MPS branch) Michael Albinus
2024-04-21 12:44 ` Tramp tests in MPS branch Gerd Möllmann
2024-04-21 9:29 ` STatus of " Eli Zaretskii
2024-04-21 4:38 ` Gerd Möllmann
2024-04-21 5:31 ` Eli Zaretskii
2024-04-21 5:39 ` Gerd Möllmann
2024-04-21 9:04 ` Eli Zaretskii
2024-04-21 9:17 ` Gerd Möllmann
2024-04-21 6:15 ` Gerd Möllmann
2024-04-21 9:09 ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 9:53 ` João Távora
2024-04-21 10:13 ` Eglot tests on MPS branch Gerd Möllmann
2024-04-21 11:01 ` João Távora
2024-04-21 10:55 ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 7:49 ` STatus of MPS branch Gerd Möllmann
2024-04-21 8:45 ` Gerd Möllmann
2024-04-21 9:08 ` Andrea Corallo
2024-04-21 9:33 ` Native compilation on " Eli Zaretskii
2024-04-21 10:17 ` Gerd Möllmann
2024-04-21 13:07 ` Andrea Corallo
2024-04-22 7:15 ` Gerd Möllmann
2024-04-22 22:02 ` Andrea Corallo
2024-04-23 3:11 ` Gerd Möllmann
2024-04-23 16:09 ` Gerd Möllmann
2024-04-23 19:43 ` Andrea Corallo
2024-04-24 12:49 ` Gerd Möllmann
2024-04-24 18:14 ` Andrea Corallo
2024-04-24 18:28 ` Gerd Möllmann
2024-04-24 20:54 ` Andrea Corallo
2024-04-25 4:33 ` Gerd Möllmann
2024-04-25 5:50 ` Andrea Corallo
2024-04-25 7:18 ` Gerd Möllmann
2024-04-25 8:06 ` Andrea Corallo
2024-04-25 8:15 ` Gerd Möllmann
2024-04-25 8:57 ` Gerd Möllmann
2024-04-25 9:42 ` Andrea Corallo
2024-04-25 11:33 ` Gerd Möllmann
2024-04-25 5:24 ` Eli Zaretskii
2024-04-25 5:48 ` Andrea Corallo
2024-04-25 15:20 ` Eli Zaretskii
2024-04-26 10:15 ` Gerd Möllmann
2024-04-21 8:58 ` STatus of " Andrea Corallo
2024-04-21 9:19 ` Gerd Möllmann
2024-04-21 9:30 ` Native compilation on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 14:39 ` Helmut Eller [this message]
2024-04-21 15:37 ` STatus of MPS branch Gerd Möllmann
2024-04-21 15:52 ` Eli Zaretskii
2024-04-21 20:24 ` Helmut Eller
2024-04-22 4:58 ` Gerd Möllmann
2024-04-22 5:28 ` Gerd Möllmann
2024-04-22 6:15 ` MPS signals and Emacs (was: STatus of MPS branch) Eli Zaretskii
2024-04-22 6:44 ` MPS signals and Emacs Paul Eggert
2024-04-22 7:19 ` Gerd Möllmann
2024-04-22 7:40 ` Paul Eggert
2024-04-22 7:49 ` Gerd Möllmann
2024-04-22 8:09 ` Eli Zaretskii
2024-04-22 8:27 ` Gerd Möllmann
2024-04-22 8:55 ` Eli Zaretskii
2024-04-22 9:02 ` Mattias Engdegård
2024-04-22 9:02 ` Gerd Möllmann
2024-04-22 9:18 ` Eli Zaretskii
2024-04-22 9:29 ` Gerd Möllmann
2024-04-22 9:41 ` Eli Zaretskii
2024-04-22 10:22 ` Gerd Möllmann
2024-04-22 10:46 ` Eli Zaretskii
2024-04-22 11:00 ` Gerd Möllmann
2024-04-22 12:01 ` Eli Zaretskii
2024-04-22 12:16 ` Gerd Möllmann
2024-04-22 10:54 ` Eli Zaretskii
2024-04-22 11:05 ` Gerd Möllmann
2024-04-22 19:41 ` Paul Eggert
2024-04-22 20:55 ` Gerd Möllmann
2024-04-22 22:12 ` Paul Eggert
2024-04-23 3:15 ` Gerd Möllmann
[not found] ` <87le54g1h2.fsf@dick>
2024-04-23 5:51 ` Gerd Möllmann
2024-04-23 6:35 ` Helmut Eller
2024-04-23 6:45 ` Gerd Möllmann
2024-04-23 6:53 ` Helmut Eller
2024-04-23 14:29 ` Gerd Möllmann
[not found] ` <87sezbsmsd.fsf@dick>
2024-04-24 5:03 ` Gerd Möllmann
2024-04-22 7:46 ` Eli Zaretskii
2024-04-22 7:55 ` Gerd Möllmann
2024-04-22 14:10 ` Helmut Eller
2024-04-22 14:42 ` Eli Zaretskii
2024-04-22 22:06 ` Paul Eggert
2024-04-23 7:04 ` Eli Zaretskii
2024-04-22 5:36 ` STatus of MPS branch Gerd Möllmann
2024-04-22 5:50 ` Gerd Möllmann
2024-04-22 15:09 ` Helmut Eller
2024-04-22 17:02 ` Gerd Möllmann
2024-04-24 7:26 ` Collecting markers with MPS (was: STatus of MPS branch) Helmut Eller
2024-04-24 7:44 ` Eli Zaretskii
2024-04-24 8:56 ` Collecting markers with MPS Helmut Eller
2024-04-24 9:17 ` Gerd Möllmann
2024-04-24 10:22 ` Eli Zaretskii
2024-04-24 10:27 ` Gerd Möllmann
2024-04-24 10:58 ` Gerd Möllmann
2024-04-24 13:32 ` Eli Zaretskii
2024-04-24 13:51 ` Gerd Möllmann
2024-04-24 15:03 ` Helmut Eller
2024-04-24 15:54 ` Eli Zaretskii
2024-04-24 16:21 ` Helmut Eller
2024-04-24 16:26 ` Eli Zaretskii
2024-04-24 16:50 ` Gerd Möllmann
2024-04-24 19:18 ` Helmut Eller
2024-04-24 19:55 ` Gerd Möllmann
2024-04-25 7:38 ` Mattias Engdegård
2024-04-24 9:08 ` Gerd Möllmann
2024-04-24 19:03 ` Helmut Eller
2024-04-24 20:02 ` Gerd Möllmann
2024-04-24 20:13 ` Helmut Eller
2024-04-24 20:42 ` Gerd Möllmann
2024-04-25 9:44 ` Helmut Eller
2024-04-25 11:44 ` Gerd Möllmann
2024-04-25 16:04 ` basic questions on MPS Andrea Corallo
2024-04-25 17:51 ` Helmut Eller
2024-04-25 18:48 ` Eli Zaretskii
2024-04-25 18:53 ` Gerd Möllmann
2024-04-25 19:26 ` Vibhav Pant
2024-04-26 6:36 ` Helmut Eller
2024-04-26 7:25 ` Gerd Möllmann
2024-04-26 15:07 ` vibhavp
2024-04-26 6:42 ` Gerd Möllmann
2024-04-27 0:20 ` Richard Stallman
2024-04-27 8:41 ` Helmut Eller
2024-04-28 22:44 ` Richard Stallman
2024-04-29 4:27 ` Helmut Eller
2024-04-29 22:40 ` Richard Stallman
2024-04-25 18:41 ` Eli Zaretskii
2024-04-25 18:53 ` Andrea Corallo
2024-04-25 18:56 ` Gerd Möllmann
2024-04-25 19:29 ` Andrea Corallo
2024-04-25 19:03 ` Eli Zaretskii
2024-04-25 19:09 ` Andrea Corallo
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878r16n5jl.fsf@gmail.com \
--to=eller.helmut@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=gerd.moellmann@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).