unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#75199: 30.0.93; Emacs crashes when completing with corfu
@ 2024-12-30 13:02 Zhengyi Fu
       [not found] ` <handler.75199.B.17355638041034.ack@debbugs.gnu.org>
  2024-12-30 14:40 ` bug#75199: 30.0.93; Emacs crashes when completing with corfu Eli Zaretskii
  0 siblings, 2 replies; 12+ messages in thread
From: Zhengyi Fu @ 2024-12-30 13:02 UTC (permalink / raw)
  To: 75199


Hi.

Emacs built without Cairo steadily crashes when trying to complete
symbols with Corfu.

Steps to reproduce:

1. emacs -Q -l path/to/corfu.el
2. M-x corfu-mode
3. Try completing a simple by pressing C-M-i

I got the following backtrace from GDB by reproducing the bug after
evaluating (x-synchronize t):

(gdb) br x_error_quitter
Breakpoint 1 at 0x550530: file xterm.c, line 27111.
(gdb) r
Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l \~/.emacs.d/straight/repos/corfu/corfu.el
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff13fe6c0 (LWP 15400)]
[New Thread 0x7ffff0a6e6c0 (LWP 15401)]
[New Thread 0x7fffebfff6c0 (LWP 15402)]
[New Thread 0x7fffeb66f6c0 (LWP 15403)]

Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
27111	  if (event->error_code == BadName)
(gdb) bt full
#0  x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
	buf = '\000' <repeats 255 times>
	buf1 = '\000' <repeats 272 times>...
#1  0x000000000055076b in x_error_handler (display=0xe19910, event=0x7fffffffba70) at xterm.c:27090
	stack = <optimized out>
	dpyinfo = <optimized out>
	fail = <optimized out>
	last = <optimized out>
#2  0x00007ffff7cc047b in _XError () at /lib64/libX11.so.6
#3  0x00007ffff7cc0577 in ??? () at /lib64/libX11.so.6
#4  0x00007ffff7cc062d in ??? () at /lib64/libX11.so.6
#5  0x00007ffff7cc22dd in _XReply () at /lib64/libX11.so.6
#6  0x00007ffff7cc265b in XSync () at /lib64/libX11.so.6
#7  0x00007ffff7cc26fb in ??? () at /lib64/libX11.so.6
#8  0x00007ffff7c9ae83 in XCreatePixmap () at /lib64/libX11.so.6
#9  0x00007ffff7c9f10b in XCreatePixmapFromBitmapData () at /lib64/libX11.so.6
#10 0x0000000000546e20 in x_draw_fringe_bitmap (w=<optimized out>, row=<optimized out>, p=0x7fffffffbfd0) at xterm.c:7993
	clipmask = 0
	image_rect = {x = 1, y = 18, width = 8, height = 0}
	px = 0
	pixmap = <optimized out>
	gcv = {function = -16576, plane_mask = 25570016, foreground = 0, background = 26339856, line_width = 0, line_style = 0, cap_style = -137583546, join_style = 32767, fill_style = 0, fill_rule = 1, arc_mode = 25570016, tile = 206158430240, stipple = 140737488338992, ts_x_origin = -16544, ts_y_origin = 32767, font = 5533212596374081280, subwindow_mode = -16528, graphics_exposures = 32767, clip_x_origin = 7277729, clip_y_origin = 0, clip_mask = 25266384, dash_offset = 0, dashes = 0 '\000'}
	bg = {pixel = 0, red = 0, green = 0, blue = 0, flags = 0 '\000', pad = 0 '\000'}
	picture = 0
	attrs = {repeat = 0, alpha_map = 0, alpha_x_origin = 0, alpha_y_origin = 0, clip_x_origin = 0, clip_y_origin = 0, clip_mask = 0, graphics_exposures = 0, subwindow_mode = 0, poly_edge = 0, poly_mode = 0, dither = 0, component_alpha = 0}
	py = 0
	drawable = 13631722
	bits = 0x192bfe0 ""
	depth = 32
	background = 4290834431
	dest = {x = 1, y = 18, width = 8, height = 0}
	pwidth = 8
	pheight = 0
	f = 0x1925768
	display = 0xe19910
	gc = 0x190b4b0
	face = 0x190a4c0
	clip_rect = {x = 1, y = 1, width = 256, height = 35}
#11 0x00000000006b95f0 in draw_fringe_bitmap_1 (w=w@entry=0x1925a18, row=row@entry=0x1699ca0, left_p=left_p@entry=1, overlay=<optimized out>, which=<optimized out>, which@entry=0) at fringe.c:711
	f = 0x1925768
	p = {which = 26, bits = 0x192bfe0, wd = 8, h = 0, dh = 0, x = 1, y = 18, bx = 1, nx = 8, by = 1, ny = 35, cursor_p = false, overlay_p = false, face = 0x190a4c0}
	fb = <optimized out>
	period = <optimized out>
	face_id = <optimized out>
	offset = <optimized out>
	header_line_height = <optimized out>
#12 0x00000000006ba8b3 in draw_fringe_bitmap (w=w@entry=0x1925a18, row=row@entry=0x1699ca0, left_p=left_p@entry=1) at fringe.c:880
	overlay = <optimized out>
#13 0x00000000006bab0b in draw_row_fringe_bitmaps (w=w@entry=0x1925a18, row=row@entry=0x1699ca0) at fringe.c:901
#14 0x00000000006bac39 in draw_window_fringes (w=w@entry=0x1925a18, no_fringe_p=no_fringe_p@entry=true) at fringe.c:949
	row = 0x1699ca0
	yb = 350
	nrows = <optimized out>
	y = 0
	rn = 0
	updated_p = <optimized out>
	window_buffer = <optimized out>
	oldbuf = <optimized out>
#15 0x00000000004764ad in gui_update_window_end (w=0x1925a18, cursor_on_p=true, mouse_face_overwritten_p=<optimized out>) at dispnew.c:3948
	f = 0x1925768
#16 0x0000000000476e2c in update_window (w=w@entry=0x1925a18, force_p=<optimized out>, force_p@entry=true) at dispnew.c:3869
	end = <optimized out>
	tab_line_row = <optimized out>
	mouse_face_overwritten_p = false
	n_updated = <optimized out>
	mode_line_row = <optimized out>
	changed_p = <optimized out>
	invisible_rows_marked = <optimized out>
	row = <optimized out>
	header_line_row = <optimized out>
	yb = <optimized out>
	desired_matrix = <optimized out>
	paused_p = <optimized out>
	preempt_count = <optimized out>
	rif = <optimized out>
#17 0x00000000004783bb in update_window_tree (w=w@entry=0x1925a18, force_p=force_p@entry=true) at dispnew.c:3491
	paused_p = false
#18 0x000000000047865b in update_frame (f=f@entry=0x1925768, force_p=true, force_p@entry=false, inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3326
	paused_p = <optimized out>
	root_window = 0x1925a18
#19 0x00000000004bda3e in redisplay_internal () at xdisp.c:17468
	gcscrollbars = <optimized out>
	f_redisplay_flag = <optimized out>
	f = 0x1925768
	w = <optimized out>
	sw = <optimized out>
	fr = <optimized out>
	pending = <optimized out>
	must_finish = <optimized out>
	match_p = <optimized out>
	tlbufpos = {charpos = <optimized out>, bytepos = <optimized out>}
	tlendpos = {charpos = <optimized out>, bytepos = <optimized out>}
	number_of_visible_frames = <optimized out>
	sf = <optimized out>
	polling_stopped_here = true
	tail = 0x17449c3
	frame = <optimized out>
	hscroll_retries = <optimized out>
	garbaged_frame_retries = 0
	consider_all_windows_p = <optimized out>
	update_miniwindow_p = <optimized out>
	count = {bytes = <optimized out>}
	retry = <optimized out>
	retry_frame = <optimized out>
#20 0x00000000004beb45 in redisplay () at xdisp.c:16563
#21 0x000000000059558f in read_char (commandflag=1, map=map@entry=0x18d6403, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffdcab, end_time=end_time@entry=0x0) at keyboard.c:2678
	echo_current = true
	c = 0x0
	local_getcjmp = {{__jmpbuf = {25122933, 37728, 754, 1, 48000, 3, 1, 6859535}, __mask_was_saved = 0, __saved_mask = {__val = {140737256524659, 48000, 48000, 0, 4611686018528051200, 4611686019484352512, 3, 24638176, 6859535, 24638179, 4295015296, 48000, 140737260365637, 48000, 754, 188}}}}
	save_jump = {{__jmpbuf = {0, 6319211, 140737260365632, 140737488345616, 0, 0, 140737260365632, 0}, __mask_was_saved = 0, __saved_mask = {__val = {187, 189, 1, 0, 128, 128, 0, 0, 44256, 140737260365632, 6381652, 11, 140737258920056, 140737266663336, 6302047, 140737245512808}}}}
	tem = <optimized out>
	save = <optimized out>
	previous_echo_area_message = 0x0
	also_record = 0x0
	reread = false
	recorded = false
	polling_stopped_here = false
	orig_kboard = 0xe24710
	retry = <optimized out>
	jmpcount = {bytes = <optimized out>}
#22 0x000000000059968d in read_key_sequence (keybuf=keybuf@entry=0x7fffffffdde0, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, disable_text_conversion_p=false) at keyboard.c:10743
	interrupted_kboard = 0xe24710
	interrupted_frame = <optimized out>
	key = <optimized out>
	used_mouse_menu = false
	echo_local_start = 0
	last_real_key_start = <optimized out>
	keys_local_start = 0
	new_binding = <optimized out>
	count = {bytes = <optimized out>}
	t = <optimized out>
	echo_start = 0
	keys_start = 0
	current_binding = 0x18d6403
	first_unbound = 31
	mock_input = <optimized out>
	used_mouse_menu_history = {false <repeats 30 times>}
	fkey = {parent = 0x7ffff233d1a3, map = <optimized out>, start = 0, end = 0}
	keytran = {parent = 0x7ffff2c88cab, map = <optimized out>, start = 0, end = 0}
	indec = {parent = 0x7ffff233d193, map = <optimized out>, start = 0, end = 0}
	shift_translated = <optimized out>
	delayed_switch_frame = <optimized out>
	original_uppercase = <optimized out>
	original_uppercase_position = <optimized out>
	disabled_conversion = <optimized out>
	starting_buffer = <optimized out>
	fake_prefixed_keys = 0x0
	first_event = 0x0
	second_event = <optimized out>
#23 0x000000000059b276 in command_loop_1 () at keyboard.c:1429
	cmd = <optimized out>
	keybuf = {0x20000026, 0x16, 0x136b0, 0x7ffff2b93a84, 0x7ffff2b93a84, 0x136b0, 0x30, 0x0, 0x0, 0x7fffffffdee0, 0x80, 0x4000000012000000, 0x0, 0x6183d3 <eval_sub+2163>, 0x646e756f00000000, 0x7ffff27093e0, 0x0, 0x7ffff3ffcac0 <main_arena>, 0x12, 0x60, 0x60, 0x7ffff2338643, 0x0, 0xb2b0, 0x7fffffffe060, 0x616054 <unbind_to+244>, 0xb, 0xb2b0, 0x0, 0x7ffff2692745}
	i = <optimized out>
	last_pt = <optimized out>
	prev_modiff = 148
	prev_buffer = 0x7ffff2692740
#24 0x0000000000614cf7 in internal_condition_case (bfun=bfun@entry=0x59b0c0 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x58ea20 <cmd_error>) at eval.c:1613
	val = <optimized out>
	c = 0xe86470
#25 0x00000000005868f2 in command_loop_2 (handlers=handlers@entry=0x90) at keyboard.c:1168
	val = <optimized out>
#26 0x0000000000614c51 in internal_catch (tag=tag@entry=0x12270, func=func@entry=0x5868d0 <command_loop_2>, arg=arg@entry=0x90) at eval.c:1292
	val = <optimized out>
	c = 0xe86330
#27 0x000000000058688f in command_loop () at keyboard.c:1146
#28 0x000000000058e5c1 in recursive_edit_1 () at keyboard.c:754
	count = {bytes = <optimized out>}
	val = <optimized out>
#29 0x000000000058e94e in Frecursive_edit () at keyboard.c:837
	count = {bytes = <optimized out>}
	buffer = <optimized out>
#30 0x000000000046e192 in main (argc=<optimized out>, argv=<optimized out>) at emacs.c:2635
	stack_bottom_variable = 0x18
	old_argc = <optimized out>
	no_loadup = false
	junk = 0x0
	dname_arg = 0x0
	ch_to_dir = 0x0
	original_pwd = <optimized out>
	dump_mode = <optimized out>
	skip_args = 0
	temacs = 0x0
	attempt_load_pdump = <optimized out>
	only_version = false
	rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
	lc_all = <optimized out>
	sockfd = -1
	module_assertions = <optimized out>


In GNU Emacs 30.0.93 (build 2, x86_64-pc-linux-gnu) of 2024-12-30 built
 on vbox
Repository revision: d47a7d6f0feff57f52db79c3e7e0b7f51566a140
Repository branch: emacs-30
Windowing system distributor 'The X.Org Foundation', version 11.0.12101014
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-xft --without-cairo --with-x-toolkit=no'

Configured features:
DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBSELINUX
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TREE_SITTER X11 XDBE XFT XIM XINPUT2
XPM ZLIB

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: Debugger

Minor modes in effect:
  ws-butler-global-mode: t
  recentf-mode: t
  global-auto-revert-mode: t
  global-diff-hl-mode: t
  save-place-mode: t
  lin-global-mode: t
  corfu-popupinfo-mode: t
  corfu-history-mode: t
  nerd-icons-completion-mode: t
  marginalia-mode: t
  savehist-mode: t
  vertico-mode: t
  server-mode: t
  kill-ring-deindent-mode: t
  pulsar-global-mode: t
  pulsar-mode: t
  doom-modeline-mode: t
  global-dash-fontify-mode: t
  meow-global-mode: t
  meow-mode: t
  meow-normal-mode: t
  meow-esc-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/zhengyi/.emacs.d/straight/build-30.0.93/transient/transient hides /home/zhengyi/src/emacs/lisp/transient
/home/zhengyi/.emacs.d/straight/build-30.0.93/jsonrpc/jsonrpc hides /home/zhengyi/src/emacs/lisp/jsonrpc
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig hides /home/zhengyi/src/emacs/lisp/editorconfig
/home/zhengyi/.emacs.d/straight/build-30.0.93/external-completion/external-completion hides /home/zhengyi/src/emacs/lisp/external-completion
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig-tools hides /home/zhengyi/src/emacs/lisp/editorconfig-tools
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig-fnmatch hides /home/zhengyi/src/emacs/lisp/editorconfig-fnmatch
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig-core-handle hides /home/zhengyi/src/emacs/lisp/editorconfig-core-handle
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig-conf-mode hides /home/zhengyi/src/emacs/lisp/editorconfig-conf-mode
/home/zhengyi/.emacs.d/straight/build-30.0.93/editorconfig/editorconfig-core hides /home/zhengyi/src/emacs/lisp/editorconfig-core
/home/zhengyi/.emacs.d/straight/build-30.0.93/modus-themes/theme-loaddefs hides /home/zhengyi/src/emacs/lisp/theme-loaddefs
/home/zhengyi/.emacs.d/straight/build-30.0.93/xref/xref hides /home/zhengyi/src/emacs/lisp/progmodes/xref
/home/zhengyi/.emacs.d/straight/build-30.0.93/project/project hides /home/zhengyi/src/emacs/lisp/progmodes/project
/home/zhengyi/.emacs.d/straight/build-30.0.93/peg/peg hides /home/zhengyi/src/emacs/lisp/progmodes/peg
/home/zhengyi/.emacs.d/straight/build-30.0.93/eglot/eglot hides /home/zhengyi/src/emacs/lisp/progmodes/eglot
/home/zhengyi/.emacs.d/straight/build-30.0.93/flymake/flymake hides /home/zhengyi/src/emacs/lisp/progmodes/flymake
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-latex hides /home/zhengyi/src/emacs/lisp/org/ox-latex
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org hides /home/zhengyi/src/emacs/lisp/org/org
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-html hides /home/zhengyi/src/emacs/lisp/org/ox-html
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-persist hides /home/zhengyi/src/emacs/lisp/org/org-persist
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-table hides /home/zhengyi/src/emacs/lisp/org/org-table
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-lint hides /home/zhengyi/src/emacs/lisp/org/org-lint
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-agenda hides /home/zhengyi/src/emacs/lisp/org/org-agenda
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-macs hides /home/zhengyi/src/emacs/lisp/org/org-macs
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-indent hides /home/zhengyi/src/emacs/lisp/org/org-indent
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-goto hides /home/zhengyi/src/emacs/lisp/org/org-goto
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-loaddefs hides /home/zhengyi/src/emacs/lisp/org/org-loaddefs
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-clock hides /home/zhengyi/src/emacs/lisp/org/org-clock
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-feed hides /home/zhengyi/src/emacs/lisp/org/org-feed
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-attach hides /home/zhengyi/src/emacs/lisp/org/org-attach
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-element-ast hides /home/zhengyi/src/emacs/lisp/org/org-element-ast
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-compat hides /home/zhengyi/src/emacs/lisp/org/org-compat
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-python hides /home/zhengyi/src/emacs/lisp/org/ob-python
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-R hides /home/zhengyi/src/emacs/lisp/org/ob-R
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-processing hides /home/zhengyi/src/emacs/lisp/org/ob-processing
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-julia hides /home/zhengyi/src/emacs/lisp/org/ob-julia
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-core hides /home/zhengyi/src/emacs/lisp/org/ob-core
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-eshell hides /home/zhengyi/src/emacs/lisp/org/ol-eshell
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-clojure hides /home/zhengyi/src/emacs/lisp/org/ob-clojure
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-exp hides /home/zhengyi/src/emacs/lisp/org/ob-exp
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-element hides /home/zhengyi/src/emacs/lisp/org/org-element
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox hides /home/zhengyi/src/emacs/lisp/org/ox
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol hides /home/zhengyi/src/emacs/lisp/org/ol
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-publish hides /home/zhengyi/src/emacs/lisp/org/ox-publish
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-odt hides /home/zhengyi/src/emacs/lisp/org/ox-odt
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-org hides /home/zhengyi/src/emacs/lisp/org/ox-org
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-md hides /home/zhengyi/src/emacs/lisp/org/ox-md
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-man hides /home/zhengyi/src/emacs/lisp/org/ox-man
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-koma-letter hides /home/zhengyi/src/emacs/lisp/org/ox-koma-letter
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-beamer hides /home/zhengyi/src/emacs/lisp/org/ox-beamer
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-icalendar hides /home/zhengyi/src/emacs/lisp/org/ox-icalendar
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-ascii hides /home/zhengyi/src/emacs/lisp/org/ox-ascii
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-timer hides /home/zhengyi/src/emacs/lisp/org/org-timer
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-tempo hides /home/zhengyi/src/emacs/lisp/org/org-tempo
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-src hides /home/zhengyi/src/emacs/lisp/org/org-src
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-mobile hides /home/zhengyi/src/emacs/lisp/org/org-mobile
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-num hides /home/zhengyi/src/emacs/lisp/org/org-num
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-refile hides /home/zhengyi/src/emacs/lisp/org/org-refile
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-mouse hides /home/zhengyi/src/emacs/lisp/org/org-mouse
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-protocol hides /home/zhengyi/src/emacs/lisp/org/org-protocol
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-plot hides /home/zhengyi/src/emacs/lisp/org/org-plot
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-pcomplete hides /home/zhengyi/src/emacs/lisp/org/org-pcomplete
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-list hides /home/zhengyi/src/emacs/lisp/org/org-list
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-inlinetask hides /home/zhengyi/src/emacs/lisp/org/org-inlinetask
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-habit hides /home/zhengyi/src/emacs/lisp/org/org-habit
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-id hides /home/zhengyi/src/emacs/lisp/org/org-id
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-keys hides /home/zhengyi/src/emacs/lisp/org/org-keys
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-fold hides /home/zhengyi/src/emacs/lisp/org/org-fold
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-fold-core hides /home/zhengyi/src/emacs/lisp/org/org-fold-core
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-footnote hides /home/zhengyi/src/emacs/lisp/org/org-footnote
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-datetree hides /home/zhengyi/src/emacs/lisp/org/org-datetree
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-ctags hides /home/zhengyi/src/emacs/lisp/org/org-ctags
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-faces hides /home/zhengyi/src/emacs/lisp/org/org-faces
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-entities hides /home/zhengyi/src/emacs/lisp/org/org-entities
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-duration hides /home/zhengyi/src/emacs/lisp/org/org-duration
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-cycle hides /home/zhengyi/src/emacs/lisp/org/org-cycle
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-colview hides /home/zhengyi/src/emacs/lisp/org/org-colview
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-capture hides /home/zhengyi/src/emacs/lisp/org/org-capture
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-attach-git hides /home/zhengyi/src/emacs/lisp/org/org-attach-git
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-archive hides /home/zhengyi/src/emacs/lisp/org/org-archive
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-crypt hides /home/zhengyi/src/emacs/lisp/org/org-crypt
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-gnus hides /home/zhengyi/src/emacs/lisp/org/ol-gnus
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-w3m hides /home/zhengyi/src/emacs/lisp/org/ol-w3m
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-rmail hides /home/zhengyi/src/emacs/lisp/org/ol-rmail
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-man hides /home/zhengyi/src/emacs/lisp/org/ol-man
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-mhe hides /home/zhengyi/src/emacs/lisp/org/ol-mhe
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-irc hides /home/zhengyi/src/emacs/lisp/org/ol-irc
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-eww hides /home/zhengyi/src/emacs/lisp/org/ol-eww
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-info hides /home/zhengyi/src/emacs/lisp/org/ol-info
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-bibtex hides /home/zhengyi/src/emacs/lisp/org/ol-bibtex
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-docview hides /home/zhengyi/src/emacs/lisp/org/ol-docview
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-bbdb hides /home/zhengyi/src/emacs/lisp/org/ol-bbdb
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ol-doi hides /home/zhengyi/src/emacs/lisp/org/ol-doi
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc-natbib hides /home/zhengyi/src/emacs/lisp/org/oc-natbib
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc-csl hides /home/zhengyi/src/emacs/lisp/org/oc-csl
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-tangle hides /home/zhengyi/src/emacs/lisp/org/ob-tangle
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-sqlite hides /home/zhengyi/src/emacs/lisp/org/ob-sqlite
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc-bibtex hides /home/zhengyi/src/emacs/lisp/org/oc-bibtex
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc-biblatex hides /home/zhengyi/src/emacs/lisp/org/oc-biblatex
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc-basic hides /home/zhengyi/src/emacs/lisp/org/oc-basic
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-sql hides /home/zhengyi/src/emacs/lisp/org/ob-sql
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-table hides /home/zhengyi/src/emacs/lisp/org/ob-table
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-shell hides /home/zhengyi/src/emacs/lisp/org/ob-shell
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-sed hides /home/zhengyi/src/emacs/lisp/org/ob-sed
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-screen hides /home/zhengyi/src/emacs/lisp/org/ob-screen
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-scheme hides /home/zhengyi/src/emacs/lisp/org/ob-scheme
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-sass hides /home/zhengyi/src/emacs/lisp/org/ob-sass
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-ruby hides /home/zhengyi/src/emacs/lisp/org/ob-ruby
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-ref hides /home/zhengyi/src/emacs/lisp/org/ob-ref
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-fortran hides /home/zhengyi/src/emacs/lisp/org/ob-fortran
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-plantuml hides /home/zhengyi/src/emacs/lisp/org/ob-plantuml
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-perl hides /home/zhengyi/src/emacs/lisp/org/ob-perl
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-org hides /home/zhengyi/src/emacs/lisp/org/ob-org
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-maxima hides /home/zhengyi/src/emacs/lisp/org/ob-maxima
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-octave hides /home/zhengyi/src/emacs/lisp/org/ob-octave
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-ocaml hides /home/zhengyi/src/emacs/lisp/org/ob-ocaml
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-matlab hides /home/zhengyi/src/emacs/lisp/org/ob-matlab
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-makefile hides /home/zhengyi/src/emacs/lisp/org/ob-makefile
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-lua hides /home/zhengyi/src/emacs/lisp/org/ob-lua
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-lisp hides /home/zhengyi/src/emacs/lisp/org/ob-lisp
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-lob hides /home/zhengyi/src/emacs/lisp/org/ob-lob
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-lilypond hides /home/zhengyi/src/emacs/lisp/org/ob-lilypond
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-latex hides /home/zhengyi/src/emacs/lisp/org/ob-latex
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-C hides /home/zhengyi/src/emacs/lisp/org/ob-C
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-java hides /home/zhengyi/src/emacs/lisp/org/ob-java
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-js hides /home/zhengyi/src/emacs/lisp/org/ob-js
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-haskell hides /home/zhengyi/src/emacs/lisp/org/ob-haskell
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-gnuplot hides /home/zhengyi/src/emacs/lisp/org/ob-gnuplot
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-groovy hides /home/zhengyi/src/emacs/lisp/org/ob-groovy
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-forth hides /home/zhengyi/src/emacs/lisp/org/ob-forth
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-eshell hides /home/zhengyi/src/emacs/lisp/org/ob-eshell
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-emacs-lisp hides /home/zhengyi/src/emacs/lisp/org/ob-emacs-lisp
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-eval hides /home/zhengyi/src/emacs/lisp/org/ob-eval
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob hides /home/zhengyi/src/emacs/lisp/org/ob
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-dot hides /home/zhengyi/src/emacs/lisp/org/ob-dot
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-ditaa hides /home/zhengyi/src/emacs/lisp/org/ob-ditaa
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-css hides /home/zhengyi/src/emacs/lisp/org/ob-css
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-comint hides /home/zhengyi/src/emacs/lisp/org/ob-comint
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-calc hides /home/zhengyi/src/emacs/lisp/org/ob-calc
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ob-awk hides /home/zhengyi/src/emacs/lisp/org/ob-awk
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/ox-texinfo hides /home/zhengyi/src/emacs/lisp/org/ox-texinfo
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/oc hides /home/zhengyi/src/emacs/lisp/org/oc
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-macro hides /home/zhengyi/src/emacs/lisp/org/org-macro
/home/zhengyi/.emacs.d/straight/build-30.0.93/org/org-version hides /home/zhengyi/src/emacs/lisp/org/org-version
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-status-sidebar hides /home/zhengyi/src/emacs/lisp/erc/erc-status-sidebar
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-track hides /home/zhengyi/src/emacs/lisp/erc/erc-track
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-truncate hides /home/zhengyi/src/emacs/lisp/erc/erc-truncate
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-speedbar hides /home/zhengyi/src/emacs/lisp/erc/erc-speedbar
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-stamp hides /home/zhengyi/src/emacs/lisp/erc/erc-stamp
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-spelling hides /home/zhengyi/src/emacs/lisp/erc/erc-spelling
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-services hides /home/zhengyi/src/emacs/lisp/erc/erc-services
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-nicks hides /home/zhengyi/src/emacs/lisp/erc/erc-nicks
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-sasl hides /home/zhengyi/src/emacs/lisp/erc/erc-sasl
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-pcomplete hides /home/zhengyi/src/emacs/lisp/erc/erc-pcomplete
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-notify hides /home/zhengyi/src/emacs/lisp/erc/erc-notify
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc hides /home/zhengyi/src/emacs/lisp/erc/erc
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-match hides /home/zhengyi/src/emacs/lisp/erc/erc-match
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-networks hides /home/zhengyi/src/emacs/lisp/erc/erc-networks
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-log hides /home/zhengyi/src/emacs/lisp/erc/erc-log
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-join hides /home/zhengyi/src/emacs/lisp/erc/erc-join
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-imenu hides /home/zhengyi/src/emacs/lisp/erc/erc-imenu
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-loaddefs hides /home/zhengyi/src/emacs/lisp/erc/erc-loaddefs
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-goodies hides /home/zhengyi/src/emacs/lisp/erc/erc-goodies
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-fill hides /home/zhengyi/src/emacs/lisp/erc/erc-fill
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-ibuffer hides /home/zhengyi/src/emacs/lisp/erc/erc-ibuffer
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-button hides /home/zhengyi/src/emacs/lisp/erc/erc-button
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-backend hides /home/zhengyi/src/emacs/lisp/erc/erc-backend
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-common hides /home/zhengyi/src/emacs/lisp/erc/erc-common
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-compat hides /home/zhengyi/src/emacs/lisp/erc/erc-compat
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-xdcc hides /home/zhengyi/src/emacs/lisp/erc/erc-xdcc
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-sound hides /home/zhengyi/src/emacs/lisp/erc/erc-sound
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-ring hides /home/zhengyi/src/emacs/lisp/erc/erc-ring
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-replace hides /home/zhengyi/src/emacs/lisp/erc/erc-replace
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-page hides /home/zhengyi/src/emacs/lisp/erc/erc-page
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-netsplit hides /home/zhengyi/src/emacs/lisp/erc/erc-netsplit
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-menu hides /home/zhengyi/src/emacs/lisp/erc/erc-menu
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-lang hides /home/zhengyi/src/emacs/lisp/erc/erc-lang
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-list hides /home/zhengyi/src/emacs/lisp/erc/erc-list
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-identd hides /home/zhengyi/src/emacs/lisp/erc/erc-identd
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-dcc hides /home/zhengyi/src/emacs/lisp/erc/erc-dcc
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-ezbounce hides /home/zhengyi/src/emacs/lisp/erc/erc-ezbounce
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-desktop-notifications hides /home/zhengyi/src/emacs/lisp/erc/erc-desktop-notifications
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-capab hides /home/zhengyi/src/emacs/lisp/erc/erc-capab
/home/zhengyi/.emacs.d/straight/build-30.0.93/erc/erc-autoaway hides /home/zhengyi/src/emacs/lisp/erc/erc-autoaway
/home/zhengyi/.emacs.d/straight/build-30.0.93/track-changes/track-changes hides /home/zhengyi/src/emacs/lisp/emacs-lisp/track-changes
/home/zhengyi/.emacs.d/straight/build-30.0.93/let-alist/let-alist hides /home/zhengyi/src/emacs/lisp/emacs-lisp/let-alist
/home/zhengyi/.emacs.d/straight/build-30.0.93/compat/compat hides /home/zhengyi/src/emacs/lisp/emacs-lisp/compat
/home/zhengyi/.emacs.d/straight/build-30.0.93/seq/seq hides /home/zhengyi/src/emacs/lisp/emacs-lisp/seq
/home/zhengyi/.emacs.d/straight/build-30.0.93/eldoc/eldoc hides /home/zhengyi/src/emacs/lisp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny rfc822
mml mml-sec epa epg rfc6068 epg-config gnus-util mailabbrev gmm-utils
mailheader sendmail mail-utils gtags xref copyright consult
bookmark-extras bookmark quick-window popon ws-butler tramp-cache
time-stamp recentf tree-widget autorevert filenotify diff-hl vc-hg
vc-git log-view pcvs-util vc-dir ewoc diff-mode track-changes vc
vc-dispatcher bug-reference dynamic-highlight hi-lock cc-mode cc-fonts
cc-guess cc-menus cc-cmds buffer-env help-fns tramp-cmds compile
text-property-search saveplace tramp-sh tramp trampver tramp-integration
files-x tramp-message tramp-compat xdg parse-time iso8601
auth-source-pass url-parse url-vars auth-source eieio eieio-core
password-cache json map tramp-loaddefs show-font dired-aux
nerd-icons-multimodal dired-x lin hl-line face-remap gdb-mi bindat gud
corfu-popupinfo corfu-history corfu vertico-directory mule-util
nerd-icons-completion marginalia cursor-sensor savehist vertico-repeat
vertico paren-face breadcrumb cus-start project imenu goggles whitespace
hl-todo display-line-numbers display-fill-column-indicator elec-pair
init mastodon-autoloads tp-autoloads telega-autoloads
visual-fill-column-autoloads org-protocol org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src sh-script smie executable ob-comint
org-pcomplete org-list org-footnote org-faces org-entities time-date
noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs thingatpt find-func
cal-menu calendar cal-loaddefs org-compat org-version org-macs
format-spec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr with-editor shell pcomplete comint
ansi-osc ring server sgml-mode facemenu dom indent-aux ansi-color pulsar
pulse orderless doom-modeline doom-modeline-segments let-alist
doom-modeline-env doom-modeline-core comp comp-cstr warnings comp-run
comp-common shrink-path f s dash nerd-icons nerd-icons-faces
nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon
nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon
nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline
nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon
modus-vivendi-tritanopia-theme modus-vivendi-deuteranopia-theme
modus-vivendi-tinted-theme modus-vivendi-theme
modus-operandi-tritanopia-theme modus-operandi-deuteranopia-theme
modus-operandi-tinted-theme modus-operandi-theme cus-edit pp icons
wid-edit meow-tree-sitter treesit meow meow-tutor meow-cheatsheet
meow-cheatsheet-layout meow-core meow-shims meow-esc meow-command array
meow-thing meow-visual meow-keypad meow-beacon kmacro byte-opt
meow-helpers meow-util color meow-keymap meow-face meow-var delsel
cus-load modus-themes derived compat early-init dotemacs-core
yaml-mode-autoloads xterm-color-autoloads ws-butler-autoloads
vundo-autoloads vertico-autoloads vala-mode-autoloads cc-styles cc-align
cc-engine cc-vars cc-defs transducers-autoloads toml-mode-autoloads
systemd-mode-autoloads rx sly-autoloads show-font-autoloads
rust-mode-autoloads pyim-basedict-autoloads pyim-autoloads xr-autoloads
async-autoloads puni-autoloads pulsar-autoloads popper-autoloads
persist-autoloads pdf-tools-autoloads let-alist-autoloads
tablist-autoloads pcre2el-autoloads pass-autoloads
password-store-otp-autoloads password-store-autoloads
paren-face-autoloads outline-minor-faces-autoloads org-modern-autoloads
orderless-autoloads olivetti-autoloads nerd-icons-ibuffer-autoloads
nerd-icons-corfu-autoloads nerd-icons-completion-autoloads
modus-themes-autoloads meow-tree-sitter-autoloads meow-autoloads
marginalia-autoloads magit-autoloads with-editor-autoloads
magit-section-autoloads logos-autoloads lin-autoloads inf-ruby-autoloads
hl-todo-autoloads goggles-autoloads geiser-guile-autoloads
geiser-chicken-autoloads geiser-chez-autoloads geiser-autoloads
explain-pause-mode-autoloads erc-autoloads embark-consult-autoloads
embark-autoloads eglot-tempel-autoloads peg-autoloads tempel-autoloads
dpkg-dev-el-autoloads doom-modeline-autoloads shrink-path-autoloads
diff-hl-autoloads devdocs-autoloads mathjax-autoloads
debian-el-autoloads debian-el dired dired-loaddefs deadgrep-autoloads
spinner-autoloads corfu-terminal-autoloads corfu-autoloads
copilot-autoloads f-autoloads editorconfig-autoloads s-autoloads
consult-eglot-autoloads eglot-autoloads track-changes-autoloads
jsonrpc-autoloads flymake-autoloads external-completion-autoloads
eldoc-autoloads consult-dir-autoloads colorful-mode-autoloads
clipetty-autoloads cape-autoloads buffer-terminator-autoloads
buffer-env-autoloads browser-hist-autoloads breadcrumb-autoloads
project-autoloads xref-autoloads autocrypt-autoloads apheleia-autoloads
anaphora-autoloads adaptive-wrap-autoloads term-keys-autoloads
rime-autoloads posframe-autoloads popup-autoloads dash-autoloads
popon-autoloads p-search-autoloads heap-autoloads
nerd-icons-multimodal-autoloads nerd-icons-autoloads
image-slicing-autoloads gptel-quick-autoloads gptel-autoloads
transient-autoloads eldoc-diffstat-autoloads eat-autoloads
discourse-autoloads finder-inf markdown-mode-autoloads request-autoloads
consult-everything-autoloads consult-autoloads compat-autoloads
seq-autoloads cmake-mode-autoloads straight-autoloads cl-extra help-mode
straight info loaddefs-gen generate-lisp-file lisp-mnt radix-tree
easy-mmode cl-seq pcase subr-x cl-macs gv cl-loaddefs cl-lib bytecomp
byte-compile rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 894769 630234) (symbols 48 36634 3)
 (strings 32 151841 32702) (string-bytes 1 6251786) (vectors 16 59614)
 (vector-slots 8 1362770 215514) (floats 8 650 3618)
 (intervals 56 5933 2666) (buffers 992 20))





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: Acknowledgement (30.0.93; Emacs crashes when completing with corfu)
       [not found] ` <handler.75199.B.17355638041034.ack@debbugs.gnu.org>
@ 2024-12-30 14:25   ` Zhengyi Fu
  0 siblings, 0 replies; 12+ messages in thread
From: Zhengyi Fu @ 2024-12-30 14:25 UTC (permalink / raw)
  To: 75199

The error is probably caused by the width value of 0 passed to 
XCreatePixmapFromBitmapData().

It seems gui_intersect_rectangles() returns true even if the resulted 
rectangle is empty.  Is that correct behavior?






^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 13:02 bug#75199: 30.0.93; Emacs crashes when completing with corfu Zhengyi Fu
       [not found] ` <handler.75199.B.17355638041034.ack@debbugs.gnu.org>
@ 2024-12-30 14:40 ` Eli Zaretskii
  2024-12-30 15:04   ` Zhengyi Fu
  1 sibling, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2024-12-30 14:40 UTC (permalink / raw)
  To: Zhengyi Fu, Po Lu; +Cc: 75199

> From: Zhengyi Fu <i@fuzy.me>
> Date: Mon, 30 Dec 2024 21:02:59 +0800
> 
> Emacs built without Cairo steadily crashes when trying to complete
> symbols with Corfu.
> 
> Steps to reproduce:
> 
> 1. emacs -Q -l path/to/corfu.el
> 2. M-x corfu-mode
> 3. Try completing a simple by pressing C-M-i
> 
> I got the following backtrace from GDB by reproducing the bug after
> evaluating (x-synchronize t):
> 
> (gdb) br x_error_quitter
> Breakpoint 1 at 0x550530: file xterm.c, line 27111.
> (gdb) r
> Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l \~/.emacs.d/straight/repos/corfu/corfu.el
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> [New Thread 0x7ffff13fe6c0 (LWP 15400)]
> [New Thread 0x7ffff0a6e6c0 (LWP 15401)]
> [New Thread 0x7fffebfff6c0 (LWP 15402)]
> [New Thread 0x7fffeb66f6c0 (LWP 15403)]
> 
> Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
> 27111	  if (event->error_code == BadName)
> (gdb) bt full
> #0  x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
> 	buf = '\000' <repeats 255 times>
> 	buf1 = '\000' <repeats 272 times>...
> #1  0x000000000055076b in x_error_handler (display=0xe19910, event=0x7fffffffba70) at xterm.c:27090
> 	stack = <optimized out>
> 	dpyinfo = <optimized out>
> 	fail = <optimized out>
> 	last = <optimized out>

I don't understand how 'event', which was 0x7fffffffba70 in
x_error_handler became a NULL pointer inside x_error_quitter, which
x_error_handler calls.

Po Lu, any ideas?

Zhengyi Fu, can you configure Emacs 30.0.93 with --enable-checking and
compile it with -O0, and see if you get more detailed diagnostics?

Also, does disabling the X input method help in any way?  (I see you
are using fcitx.)





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 14:40 ` bug#75199: 30.0.93; Emacs crashes when completing with corfu Eli Zaretskii
@ 2024-12-30 15:04   ` Zhengyi Fu
  2024-12-30 15:24     ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Zhengyi Fu @ 2024-12-30 15:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Po Lu, 75199

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Zhengyi Fu <i@fuzy.me>
>> Date: Mon, 30 Dec 2024 21:02:59 +0800
>> 
>> Emacs built without Cairo steadily crashes when trying to complete
>> symbols with Corfu.
>> 
>> Steps to reproduce:
>> 
>> 1. emacs -Q -l path/to/corfu.el
>> 2. M-x corfu-mode
>> 3. Try completing a simple by pressing C-M-i
>> 
>> I got the following backtrace from GDB by reproducing the bug after
>> evaluating (x-synchronize t):
>> 
>> (gdb) br x_error_quitter
>> Breakpoint 1 at 0x550530: file xterm.c, line 27111.
>> (gdb) r
>> Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l \~/.emacs.d/straight/repos/corfu/corfu.el
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib64/libthread_db.so.1".
>> [New Thread 0x7ffff13fe6c0 (LWP 15400)]
>> [New Thread 0x7ffff0a6e6c0 (LWP 15401)]
>> [New Thread 0x7fffebfff6c0 (LWP 15402)]
>> [New Thread 0x7fffeb66f6c0 (LWP 15403)]
>> 
>> Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
>> 27111	  if (event->error_code == BadName)
>> (gdb) bt full
>> #0  x_error_quitter (display=0xe19910, event=0x0) at xterm.c:27111
>> 	buf = '\000' <repeats 255 times>
>> 	buf1 = '\000' <repeats 272 times>...
>> #1  0x000000000055076b in x_error_handler (display=0xe19910, event=0x7fffffffba70) at xterm.c:27090
>> 	stack = <optimized out>
>> 	dpyinfo = <optimized out>
>> 	fail = <optimized out>
>> 	last = <optimized out>
>
> I don't understand how 'event', which was 0x7fffffffba70 in
> x_error_handler became a NULL pointer inside x_error_quitter, which
> x_error_handler calls.
>
> Po Lu, any ideas?
>
> Zhengyi Fu, can you configure Emacs 30.0.93 with --enable-checking and
> compile it with -O0, and see if you get more detailed diagnostics?
>
> Also, does disabling the X input method help in any way?  (I see you
> are using fcitx.)

This the backtrace I got after rebuilding Emacs with --enable-checking
and -O0 and disabling fcitx:


(gdb) r
Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l \~/.emacs.d/straight/repos/corfu/corfu.el
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff1bfe6c0 (LWP 58332)]
[New Thread 0x7ffff126e6c0 (LWP 58333)]
[New Thread 0x7fffebfff6c0 (LWP 58334)]
[New Thread 0x7fffeb66f6c0 (LWP 58335)]
[Detaching after vfork from child process 58338]
[Detaching after vfork from child process 58343]
[Detaching after vfork from child process 58350]
[Detaching after vfork from child process 58351]
[Detaching after vfork from child process 58352]
[Detaching after vfork from child process 58353]
[Detaching after vfork from child process 58357]
[Detaching after vfork from child process 58361]
[Detaching after vfork from child process 58366]
[Detaching after vfork from child process 58370]
[Detaching after vfork from child process 58374]
[Detaching after vfork from child process 58379]

Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0x104d5d0, event=0x7fffffffb8c0) at xterm.c:27111
27111	  if (event->error_code == BadName)
(gdb) bt full
#0  x_error_quitter (display=0x104d5d0, event=0x7fffffffb8c0) at xterm.c:27111
	buf = '\000' <repeats 16 times>, "P\267\377\377\377\177\000\000\001\000\000\000\000\000\000\000\240\267\377\377\377\177", '\000' <repeats 26 times>, "\001\001. \000\000\000\000 ", '\000' <repeats 15 times>, "/#\305\367\377\177\000\000d\372\004\001\000\000\000\000 ", '\000' <repeats 15 times>, "\300\n\005\001", '\000' <repeats 12 times>, "\362\321\361\363\377\177\000\000d\372\004\001\000\000\000\000\000-cYwQ6n\240\271\377\377\377\177\000\000\001\000\000\000\000\000\000\000\360\371\004\001", '\000' <repeats 20 times>...
	buf1 = "p\350\004\001\000\000\000\000\300\n\005\001\000\000\000\000\360\371\004\001\000\000\000\000\377\377\377\377\377\377\377\377d\372\004\001\000\000\000\000\000\020", '\000' <repeats 22 times>, " \264\377\377\377\177\000\000\001\000\000\000\000\000\000\000p\264\377\377\377\177\000\000P", '\000' <repeats 15 times>, "\301\031\305\367\377\177\000\000 \v\005\001\000\000\000\000\360\371\004\001\000\000\000\000$ \000\000\000\000\000\000\260\265\377\377\377\177\000\000д\377\377\377\177\000\000\201\035\305\367\377\177\000\000\360\264\377\377\377\177\000\000\277.\305\367\377\177\000\000 \265\377\377\377\177\000\000\b\372\004\001\000\000\000\000\002\000\000\000\000\000\000\000\000"...
#1  0x00000000005d32de in x_error_handler (display=0x104d5d0, event=0x7fffffffb8c0) at xterm.c:27090
	stack = 0x0
	dpyinfo = 0x105f4d0
	fail = 0x0
	last = 0x104d5d0
#2  0x00007ffff7cc047b in _XError () at /lib64/libX11.so.6
#3  0x00007ffff7cc0577 in ??? () at /lib64/libX11.so.6
#4  0x00007ffff7cc062d in ??? () at /lib64/libX11.so.6
#5  0x00007ffff7cc22dd in _XReply () at /lib64/libX11.so.6
#6  0x00007ffff7cc265b in XSync () at /lib64/libX11.so.6
#7  0x00007ffff7cc26fb in ??? () at /lib64/libX11.so.6
#8  0x00007ffff7c9ae83 in XCreatePixmap () at /lib64/libX11.so.6
#9  0x00007ffff7c9f10b in XCreatePixmapFromBitmapData () at /lib64/libX11.so.6
#10 0x00000000005acef7 in x_draw_fringe_bitmap (w=0x1bf5f80, row=0x1c3c060, p=0x7fffffffbe60) at xterm.c:7993
	clipmask = 0
	image_rect = {x = 1, y = 18, width = 8, height = 0}
	px = 0
	pixmap = 4785737
	gcv = {function = -227767256, plane_mask = 140737488338224, foreground = 7102373, background = 140737260588072, line_width = -17072, line_style = 32767, cap_style = 7102479, join_style = 0, fill_style = 7092985, fill_rule = 0, arc_mode = -227767256, tile = 140737488338560, stipple = 7114578, ts_x_origin = 0, ts_y_origin = 0, font = 0, subwindow_mode = 15924032, graphics_exposures = 0, clip_x_origin = 0, clip_y_origin = 0, clip_mask = 15924080, dash_offset = 48, dashes = 10 '\n'}
	bg = {pixel = 4769435, red = 46245, green = 433, blue = 0, flags = 0 '\000', pad = 0 '\000'}
	picture = 0
	attrs = {repeat = 0, alpha_map = 0, alpha_x_origin = 0, alpha_y_origin = 0, clip_x_origin = 0, clip_y_origin = 0, clip_mask = 0, graphics_exposures = 0, subwindow_mode = 0, poly_edge = 0, poly_mode = 0, dither = 0, component_alpha = 0}
	py = 0
	drawable = 13631756
	bits = 0x1bf4120 ""
	depth = 32
	background = 4290834431
	dest = {x = 1, y = 18, width = 8, height = 0}
	pwidth = 8
	pheight = 0
	f = 0x1b1b4a0
	display = 0x104d5d0
	gc = 0x1ad5840
	face = 0x101b720
	clip_rect = {x = 1, y = 1, width = 256, height = 35}
#11 0x00000000007d4009 in draw_fringe_bitmap_1 (w=0x1bf5f80, row=0x1c3c060, left_p=1, overlay=0, which=26) at fringe.c:711
	f = 0x1b1b4a0
	p = {which = 26, bits = 0x1bf4120, wd = 8, h = 0, dh = 0, x = 1, y = 18, bx = 1, nx = 8, by = 1, ny = 35, cursor_p = false, overlay_p = false, face = 0x101b720}
	fb = 0x1bf4110
	period = 0
	face_id = 21
	offset = 0
	header_line_height = 0
#12 0x00000000007d471d in draw_fringe_bitmap (w=0x1bf5f80, row=0x1c3c060, left_p=1) at fringe.c:880
	overlay = 0
#13 0x00000000007d4829 in draw_row_fringe_bitmaps (w=0x1bf5f80, row=0x1c3c060) at fringe.c:901
#14 0x00000000007d4a6e in draw_window_fringes (w=0x1bf5f80, no_fringe_p=true) at fringe.c:949
	row = 0x1c3c060
	yb = 350
	nrows = 18
	y = 0
	rn = 0
	updated_p = false
	window_buffer = 0xfe567d
	oldbuf = 0x7ffff2856418
#15 0x000000000046dcad in gui_update_window_end (w=0x1bf5f80, cursor_on_p=true, mouse_face_overwritten_p=false) at dispnew.c:3948
	f = 0x1b1b4a0
#16 0x000000000046da27 in update_window (w=0x1bf5f80, force_p=true) at dispnew.c:3869
	end = 0x1af1820
	tab_line_row = 0x0
	mouse_face_overwritten_p = false
	n_updated = 0
	mode_line_row = 0x1af1820
	changed_p = true
	invisible_rows_marked = true
	row = 0x1af1820
	header_line_row = 0x0
	yb = 350
	desired_matrix = 0x1b191e0
	paused_p = false
	preempt_count = 9
	rif = 0x8df2a0 <x_redisplay_interface>
#17 0x000000000046cc71 in update_window_tree (w=0x1bf5f80, force_p=true) at dispnew.c:3491
	paused_p = false
#18 0x000000000046c61b in update_frame (f=0x1b1b4a0, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3326
	paused_p = false
	root_window = 0x1bf5f80
#19 0x00000000004c51b1 in redisplay_internal () at xdisp.c:17468
	gcscrollbars = true
	f_redisplay_flag = true
	f = 0x1b1b4a0
	w = 0x11d1690
	sw = 0x11d1690
	fr = 0x11d13e0
	pending = false
	must_finish = false
	match_p = true
	tlbufpos = {charpos = 180, bytepos = 184}
	tlendpos = {charpos = 0, bytepos = 0}
	number_of_visible_frames = 2
	sf = 0x11d13e0
	polling_stopped_here = true
	tail = 0x1a17043
	frame = 0x1b1b4a5
	hscroll_retries = 0
	garbaged_frame_retries = 0
	consider_all_windows_p = true
	update_miniwindow_p = false
	count = {bytes = 128}
#20 0x00000000004c2bab in redisplay () at xdisp.c:16563
#21 0x0000000000616041 in read_char (commandflag=1, map=0x1ba88f3, prev_event=0x0, used_mouse_menu=0x7fffffffd9ef, end_time=0x0) at keyboard.c:2678
	echo_current = true
	c = 0x0
	local_getcjmp = {{__jmpbuf = {140737259281624, 140737259281667, 140737488345056, 7102846, 48, 140737259281624, 15924032, 0}, __mask_was_saved = 0, __saved_mask = {__val = {140737488345104, 6496078, 140737267083907, 140737488345264, 6517891, 15924032, 0, 0, 140737488345168, 7233523, 26984432, 140737488345264, 7277134, 29001987, 128, 140737488345264}}}}
	save_jump = {{__jmpbuf = {140737488344944, 7120998, 140737262216221, 12658762781, 0, 44256, 140737488345136, 140737267219456}, __mask_was_saved = -226139107, __saved_mask = {__val = {746, 0, 44256, 15968288, 44256, 140737488344944, 55850543136, 140737262216221, 140737488344960, 7101566, 140737262216221, 140737488344992, 7101662, 7092985, 140737262216221, 140737488345056}}}}
	tem = 0x1a77dd0
	save = 0x1ba88f3
	previous_echo_area_message = 0x0
	also_record = 0x0
	reread = false
	recorded = false
	polling_stopped_here = false
	orig_kboard = 0x104f640
	jmpcount = {bytes = 0}
#22 0x000000000062a235 in read_key_sequence (keybuf=0x7fffffffdc10, prompt=0x0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false, disable_text_conversion_p=false) at keyboard.c:10743
	interrupted_kboard = 0x104f640
	interrupted_frame = 0x11d13e0
	key = 0x30
	used_mouse_menu = false
	echo_local_start = 0
	last_real_key_start = 0
	keys_local_start = 0
	new_binding = 0xba
	count = {bytes = 96}
	t = 0
	echo_start = 0
	keys_start = 0
	current_binding = 0x1ba88f3
	first_unbound = 31
	mock_input = 0
	used_mouse_menu_history = {false <repeats 30 times>}
	fkey = {parent = 0x7ffff24c7983, map = 0x7ffff24c7983, start = 0, end = 0}
	keytran = {parent = 0x7ffff2cef743, map = 0x7ffff2cef743, start = 0, end = 0}
	indec = {parent = 0x7ffff24c7973, map = 0x7ffff24c7973, start = 0, end = 0}
	shift_translated = false
	delayed_switch_frame = 0x0
	original_uppercase = 0x0
	original_uppercase_position = -1
	disabled_conversion = false
	starting_buffer = 0x7ffff2856418
	fake_prefixed_keys = 0x0
	first_event = 0x0
	second_event = 0x0
#23 0x0000000000612514 in command_loop_1 () at keyboard.c:1429
	cmd = 0x7ffff175a428
	keybuf = {0x20000026, 0x16, 0x2ffffdca0, 0x0, 0x0, 0xb2b0, 0x7ffff3e0b018, 0x7ffff2d1bc30, 0x0, 0xb2b0, 0x7ffff2856418, 0x0, 0x0, 0xf3adf0 <lispsym+45744>, 0x6c3af9 <builtin_lisp_symbol+44>, 0x0, 0x7fffffffdd20, 0x6ca866 <set_default_internal+914>, 0x7ffff285641d, 0x2006ed6c1, 0x0, 0xb2b0, 0x7ffff2d1bc30, 0x7ffff2d1bc30, 0x0, 0x0, 0x7fffffffdd60, 0xb2b0, 0xf3adf0 <lispsym+45744>, 0xb2b0}
	i = 1
	last_pt = 184
	prev_modiff = 110
	prev_buffer = 0x7ffff2856418
#24 0x00000000006eac73 in internal_condition_case (bfun=0x6120ef <command_loop_1>, handlers=0x90, hfun=0x6115f7 <cmd_error>) at eval.c:1613
	val = 0x60e5cf <builtin_lisp_symbol+44>
	c = 0x102b850
#25 0x0000000000611cf7 in command_loop_2 (handlers=0x90) at keyboard.c:1168
	val = 0x90
#26 0x00000000006ea0cb in internal_catch (tag=0x12270, func=0x611cd4 <command_loop_2>, arg=0x90) at eval.c:1292
	val = 0x7fffffffdf20
	c = 0x102b710
#27 0x0000000000611c90 in command_loop () at keyboard.c:1146
#28 0x00000000006110d0 in recursive_edit_1 () at keyboard.c:754
	count = {bytes = 32}
	val = 0x6f02e8 <record_unwind_protect+114>
#29 0x00000000006112e3 in Frecursive_edit () at keyboard.c:837
	count = {bytes = 0}
	buffer = 0x0
#30 0x000000000060cf48 in main (argc=4, argv=0x7fffffffe238) at emacs.c:2635
	stack_bottom_variable = 0x53
	old_argc = 4
	dump_file = 0x0
	no_loadup = false
	junk = 0x0
	dname_arg = 0x0
	ch_to_dir = 0x0
	original_pwd = 0x0
	dump_mode = 0x0
	skip_args = 0
	temacs = 0x0
	attempt_load_pdump = true
	only_version = false
	rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
	lc_all = 0x0
	sockfd = -1
	module_assertions = false
(gdb) 





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 15:04   ` Zhengyi Fu
@ 2024-12-30 15:24     ` Eli Zaretskii
  2024-12-30 15:45       ` Zhengyi Fu
  2024-12-30 15:55       ` Zhengyi Fu
  0 siblings, 2 replies; 12+ messages in thread
From: Eli Zaretskii @ 2024-12-30 15:24 UTC (permalink / raw)
  To: Zhengyi Fu; +Cc: luangruo, 75199

> From: Zhengyi Fu <i@fuzy.me>
> Cc: Po Lu <luangruo@yahoo.com>,  75199@debbugs.gnu.org
> Date: Mon, 30 Dec 2024 23:04:44 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I don't understand how 'event', which was 0x7fffffffba70 in
> > x_error_handler became a NULL pointer inside x_error_quitter, which
> > x_error_handler calls.
> >
> > Po Lu, any ideas?
> >
> > Zhengyi Fu, can you configure Emacs 30.0.93 with --enable-checking and
> > compile it with -O0, and see if you get more detailed diagnostics?
> >
> > Also, does disabling the X input method help in any way?  (I see you
> > are using fcitx.)
> 
> This the backtrace I got after rebuilding Emacs with --enable-checking
> and -O0 and disabling fcitx:
> 
> 
> (gdb) r
> Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l \~/.emacs.d/straight/repos/corfu/corfu.el
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> [New Thread 0x7ffff1bfe6c0 (LWP 58332)]
> [New Thread 0x7ffff126e6c0 (LWP 58333)]
> [New Thread 0x7fffebfff6c0 (LWP 58334)]
> [New Thread 0x7fffeb66f6c0 (LWP 58335)]
> [Detaching after vfork from child process 58338]
> [Detaching after vfork from child process 58343]
> [Detaching after vfork from child process 58350]
> [Detaching after vfork from child process 58351]
> [Detaching after vfork from child process 58352]
> [Detaching after vfork from child process 58353]
> [Detaching after vfork from child process 58357]
> [Detaching after vfork from child process 58361]
> [Detaching after vfork from child process 58366]
> [Detaching after vfork from child process 58370]
> [Detaching after vfork from child process 58374]
> [Detaching after vfork from child process 58379]
> 
> Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0x104d5d0, event=0x7fffffffb8c0) at xterm.c:27111
> 27111	  if (event->error_code == BadName)

Thanks, but now it doesn't seem to be a crash?  What is the value of
event->error_code?

Earlier you wrote:

> The error is probably caused by the width value of 0 passed to 
> XCreatePixmapFromBitmapData().
> 
> It seems gui_intersect_rectangles() returns true even if the resulted 
> rectangle is empty.  Is that correct behavior?

Can you tell how this happens?  Is corfu doing something special with
the fringes?





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 15:24     ` Eli Zaretskii
@ 2024-12-30 15:45       ` Zhengyi Fu
  2024-12-30 15:55       ` Zhengyi Fu
  1 sibling, 0 replies; 12+ messages in thread
From: Zhengyi Fu @ 2024-12-30 15:45 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, 75199

On 2024-12-30 23:24, Eli Zaretskii wrote:
>> From: Zhengyi Fu <i@fuzy.me>
>> Cc: Po Lu <luangruo@yahoo.com>,  75199@debbugs.gnu.org
>> Date: Mon, 30 Dec 2024 23:04:44 +0800
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > I don't understand how 'event', which was 0x7fffffffba70 in
>> > x_error_handler became a NULL pointer inside x_error_quitter, which
>> > x_error_handler calls.
>> >
>> > Po Lu, any ideas?
>> >
>> > Zhengyi Fu, can you configure Emacs 30.0.93 with --enable-checking and
>> > compile it with -O0, and see if you get more detailed diagnostics?
>> >
>> > Also, does disabling the X input method help in any way?  (I see you
>> > are using fcitx.)
>> 
>> This the backtrace I got after rebuilding Emacs with --enable-checking
>> and -O0 and disabling fcitx:
>> 
>> 
>> (gdb) r
>> Starting program: /home/zhengyi/src/emacs/src/emacs -Q -l 
>> \~/.emacs.d/straight/repos/corfu/corfu.el
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib64/libthread_db.so.1".
>> [New Thread 0x7ffff1bfe6c0 (LWP 58332)]
>> [New Thread 0x7ffff126e6c0 (LWP 58333)]
>> [New Thread 0x7fffebfff6c0 (LWP 58334)]
>> [New Thread 0x7fffeb66f6c0 (LWP 58335)]
>> [Detaching after vfork from child process 58338]
>> [Detaching after vfork from child process 58343]
>> [Detaching after vfork from child process 58350]
>> [Detaching after vfork from child process 58351]
>> [Detaching after vfork from child process 58352]
>> [Detaching after vfork from child process 58353]
>> [Detaching after vfork from child process 58357]
>> [Detaching after vfork from child process 58361]
>> [Detaching after vfork from child process 58366]
>> [Detaching after vfork from child process 58370]
>> [Detaching after vfork from child process 58374]
>> [Detaching after vfork from child process 58379]
>> 
>> Thread 1 "emacs" hit Breakpoint 1, x_error_quitter (display=0x104d5d0, 
>> event=0x7fffffffb8c0) at xterm.c:27111
>> 27111	  if (event->error_code == BadName)
> 
> Thanks, but now it doesn't seem to be a crash?  What is the value of
> event->error_code?

It does crash if running asynchronously.  The error code is 2 
(BadValue).
With (x-synchrozie t), Emacs freezes after entering x_error_quitter.


> Earlier you wrote:
> 
>> The error is probably caused by the width value of 0 passed to
>> XCreatePixmapFromBitmapData().
>> 
>> It seems gui_intersect_rectangles() returns true even if the resulted
>> rectangle is empty.  Is that correct behavior?
> 
> Can you tell how this happens?  Is corfu doing something special with
> the fringes?

Sorry, by "width" I mean "height".

I'm not familiar enough with corfu implemantation to give any clue.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 15:24     ` Eli Zaretskii
  2024-12-30 15:45       ` Zhengyi Fu
@ 2024-12-30 15:55       ` Zhengyi Fu
  2024-12-30 18:00         ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 12+ messages in thread
From: Zhengyi Fu @ 2024-12-30 15:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, 75199

On 2024-12-30 23:24, Eli Zaretskii wrote:

> Earlier you wrote:
> 
>> The error is probably caused by the width value of 0 passed to
>> XCreatePixmapFromBitmapData().
>> 
>> It seems gui_intersect_rectangles() returns true even if the resulted
>> rectangle is empty.  Is that correct behavior?
> 
> Can you tell how this happens?  Is corfu doing something special with
> the fringes?

I noticed the following calls in corfu--popup-show before the error:

* define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
* define-fringe-bitmap(corfu--nil [])





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 15:55       ` Zhengyi Fu
@ 2024-12-30 18:00         ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-30 18:28           ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-30 18:00 UTC (permalink / raw)
  To: Zhengyi Fu; +Cc: luangruo, 75199, Eli Zaretskii

Zhengyi Fu <i@fuzy.me> writes:

> On 2024-12-30 23:24, Eli Zaretskii wrote:
>
>> Earlier you wrote:
>> 
>>> The error is probably caused by the width value of 0 passed to
>>> XCreatePixmapFromBitmapData().
>>> It seems gui_intersect_rectangles() returns true even if the resulted
>>> rectangle is empty.  Is that correct behavior?
>> Can you tell how this happens?  Is corfu doing something special with
>> the fringes?
>
> I noticed the following calls in corfu--popup-show before the error:
>
> * define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
> * define-fringe-bitmap(corfu--nil [])

I've adjusted the second call to the following, also for compatibility
with older Emacs versions.

(define-fringe-bitmap 'corfu--nil [0] 1 1)

For the future, maybe `define-fringe-bitmap' should either check its
argument carefully and disallow empty bitmaps, or empty bitmaps should
be explicitly allowed? I've not seen reports about crashes on other
builds, e.g., X11+Cairo or the NS and Carbon builds for Mac. These
builds seem to support empty fringe bitmaps.

Daniel





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 18:00         ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-30 18:28           ` Eli Zaretskii
  2024-12-30 18:43             ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2024-12-30 18:28 UTC (permalink / raw)
  To: Daniel Mendler; +Cc: i, luangruo, 75199

> From: Daniel Mendler <mail@daniel-mendler.de>
> Cc: Eli Zaretskii <eliz@gnu.org>,  luangruo@yahoo.com,  75199@debbugs.gnu.org
> Date: Mon, 30 Dec 2024 19:00:45 +0100
> 
> Zhengyi Fu <i@fuzy.me> writes:
> 
> > On 2024-12-30 23:24, Eli Zaretskii wrote:
> >
> >> Earlier you wrote:
> >> 
> >>> The error is probably caused by the width value of 0 passed to
> >>> XCreatePixmapFromBitmapData().
> >>> It seems gui_intersect_rectangles() returns true even if the resulted
> >>> rectangle is empty.  Is that correct behavior?
> >> Can you tell how this happens?  Is corfu doing something special with
> >> the fringes?
> >
> > I noticed the following calls in corfu--popup-show before the error:
> >
> > * define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
> > * define-fringe-bitmap(corfu--nil [])
> 
> I've adjusted the second call to the following, also for compatibility
> with older Emacs versions.
> 
> (define-fringe-bitmap 'corfu--nil [0] 1 1)

Doesn't

  (define-fringe-bitmap 'corfu--nil [0])

work as well?  If it doesn't, I guess the doc string is inaccurate?

> For the future, maybe `define-fringe-bitmap' should either check its
> argument carefully and disallow empty bitmaps, or empty bitmaps should
> be explicitly allowed?

Adding such argument-checking is fine by me, patches welcome.

Thanks.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 18:28           ` Eli Zaretskii
@ 2024-12-30 18:43             ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-12-30 19:17               ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-30 18:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: i, luangruo, 75199

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Daniel Mendler <mail@daniel-mendler.de>
>> Cc: Eli Zaretskii <eliz@gnu.org>,  luangruo@yahoo.com,  75199@debbugs.gnu.org
>> Date: Mon, 30 Dec 2024 19:00:45 +0100
>> 
>> Zhengyi Fu <i@fuzy.me> writes:
>> 
>> > On 2024-12-30 23:24, Eli Zaretskii wrote:
>> >
>> >> Earlier you wrote:
>> >> 
>> >>> The error is probably caused by the width value of 0 passed to
>> >>> XCreatePixmapFromBitmapData().
>> >>> It seems gui_intersect_rectangles() returns true even if the resulted
>> >>> rectangle is empty.  Is that correct behavior?
>> >> Can you tell how this happens?  Is corfu doing something special with
>> >> the fringes?
>> >
>> > I noticed the following calls in corfu--popup-show before the error:
>> >
>> > * define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
>> > * define-fringe-bitmap(corfu--nil [])
>> 
>> I've adjusted the second call to the following, also for compatibility
>> with older Emacs versions.
>> 
>> (define-fringe-bitmap 'corfu--nil [0] 1 1)
>
> Doesn't
>
>   (define-fringe-bitmap 'corfu--nil [0])
>
> work as well?  If it doesn't, I guess the doc string is inaccurate?

Yes. If I understand [info:elisp#Customizing Bitmaps] correctly, in this
case the HEIGHT would be 1, but the WIDTH would be 8. This is slightly
different from the above, but it should work just as well given that the
bitmap is all zero. The corfu--nil bitmap is just a placeholder for the
empty fringe.

Daniel





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 18:43             ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-12-30 19:17               ` Eli Zaretskii
  2024-12-30 19:47                 ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2024-12-30 19:17 UTC (permalink / raw)
  To: Daniel Mendler; +Cc: i, luangruo, 75199

> From: Daniel Mendler <mail@daniel-mendler.de>
> Cc: i@fuzy.me,  luangruo@yahoo.com,  75199@debbugs.gnu.org
> Date: Mon, 30 Dec 2024 19:43:34 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Daniel Mendler <mail@daniel-mendler.de>
> >> Cc: Eli Zaretskii <eliz@gnu.org>,  luangruo@yahoo.com,  75199@debbugs.gnu.org
> >> Date: Mon, 30 Dec 2024 19:00:45 +0100
> >> 
> >> Zhengyi Fu <i@fuzy.me> writes:
> >> 
> >> > On 2024-12-30 23:24, Eli Zaretskii wrote:
> >> >
> >> >> Earlier you wrote:
> >> >> 
> >> >>> The error is probably caused by the width value of 0 passed to
> >> >>> XCreatePixmapFromBitmapData().
> >> >>> It seems gui_intersect_rectangles() returns true even if the resulted
> >> >>> rectangle is empty.  Is that correct behavior?
> >> >> Can you tell how this happens?  Is corfu doing something special with
> >> >> the fringes?
> >> >
> >> > I noticed the following calls in corfu--popup-show before the error:
> >> >
> >> > * define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
> >> > * define-fringe-bitmap(corfu--nil [])
> >> 
> >> I've adjusted the second call to the following, also for compatibility
> >> with older Emacs versions.
> >> 
> >> (define-fringe-bitmap 'corfu--nil [0] 1 1)
> >
> > Doesn't
> >
> >   (define-fringe-bitmap 'corfu--nil [0])
> >
> > work as well?  If it doesn't, I guess the doc string is inaccurate?
> 
> Yes. If I understand [info:elisp#Customizing Bitmaps] correctly, in this
> case the HEIGHT would be 1, but the WIDTH would be 8. This is slightly
> different from the above, but it should work just as well given that the
> bitmap is all zero. The corfu--nil bitmap is just a placeholder for the
> empty fringe.

OK, thanks.  So we can conclude that this is a bug in Corfu, and in
addition install on master a check for arguments of
define-fringe-bitmap, for even more waterproof fix?





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#75199: 30.0.93; Emacs crashes when completing with corfu
  2024-12-30 19:17               ` Eli Zaretskii
@ 2024-12-30 19:47                 ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 12+ messages in thread
From: Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-12-30 19:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: i, luangruo, 75199

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Daniel Mendler <mail@daniel-mendler.de>
>> Cc: i@fuzy.me,  luangruo@yahoo.com,  75199@debbugs.gnu.org
>> Date: Mon, 30 Dec 2024 19:43:34 +0100
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Daniel Mendler <mail@daniel-mendler.de>
>> >> Cc: Eli Zaretskii <eliz@gnu.org>,  luangruo@yahoo.com,  75199@debbugs.gnu.org
>> >> Date: Mon, 30 Dec 2024 19:00:45 +0100
>> >> 
>> >> Zhengyi Fu <i@fuzy.me> writes:
>> >> 
>> >> > On 2024-12-30 23:24, Eli Zaretskii wrote:
>> >> >
>> >> >> Earlier you wrote:
>> >> >> 
>> >> >>> The error is probably caused by the width value of 0 passed to
>> >> >>> XCreatePixmapFromBitmapData().
>> >> >>> It seems gui_intersect_rectangles() returns true even if the resulted
>> >> >>> rectangle is empty.  Is that correct behavior?
>> >> >> Can you tell how this happens?  Is corfu doing something special with
>> >> >> the fringes?
>> >> >
>> >> > I noticed the following calls in corfu--popup-show before the error:
>> >> >
>> >> > * define-fringe-bitmap(corfu--bar [-241] 1 8 (top periodic))
>> >> > * define-fringe-bitmap(corfu--nil [])
>> >> 
>> >> I've adjusted the second call to the following, also for compatibility
>> >> with older Emacs versions.
>> >> 
>> >> (define-fringe-bitmap 'corfu--nil [0] 1 1)
>> >
>> > Doesn't
>> >
>> >   (define-fringe-bitmap 'corfu--nil [0])
>> >
>> > work as well?  If it doesn't, I guess the doc string is inaccurate?
>> 
>> Yes. If I understand [info:elisp#Customizing Bitmaps] correctly, in this
>> case the HEIGHT would be 1, but the WIDTH would be 8. This is slightly
>> different from the above, but it should work just as well given that the
>> bitmap is all zero. The corfu--nil bitmap is just a placeholder for the
>> empty fringe.
>
> OK, thanks.  So we can conclude that this is a bug in Corfu, and in
> addition install on master a check for arguments of
> define-fringe-bitmap, for even more waterproof fix?

Yes. From my perspective it is sufficient to check the expected argument
value ranges. Ideally these ranges are also documented in the
docstring/manual.

Daniel





^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-12-30 19:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-30 13:02 bug#75199: 30.0.93; Emacs crashes when completing with corfu Zhengyi Fu
     [not found] ` <handler.75199.B.17355638041034.ack@debbugs.gnu.org>
2024-12-30 14:25   ` bug#75199: Acknowledgement (30.0.93; Emacs crashes when completing with corfu) Zhengyi Fu
2024-12-30 14:40 ` bug#75199: 30.0.93; Emacs crashes when completing with corfu Eli Zaretskii
2024-12-30 15:04   ` Zhengyi Fu
2024-12-30 15:24     ` Eli Zaretskii
2024-12-30 15:45       ` Zhengyi Fu
2024-12-30 15:55       ` Zhengyi Fu
2024-12-30 18:00         ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-30 18:28           ` Eli Zaretskii
2024-12-30 18:43             ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-12-30 19:17               ` Eli Zaretskii
2024-12-30 19:47                 ` Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors

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).