all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Sean Whitton <spwhitton@spwhitton.name>
Cc: 71929@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
Subject: bug#71929: 30.0.60; crash in mark_image_cache
Date: Thu, 04 Jul 2024 20:28:08 +0800	[thread overview]
Message-ID: <87a5ix4a07.fsf@yahoo.com> (raw)
In-Reply-To: <87h6d5xyyz.fsf@melete.silentflame.com> (Sean Whitton's message of "Thu, 04 Jul 2024 17:56:04 +0800")

Sean Whitton <spwhitton@spwhitton.name> writes:

> Hello,
>
> On Thu 04 Jul 2024 at 02:59pm +08, Po Lu wrote:
>
>> Sean Whitton <spwhitton@spwhitton.name> writes:
>>
>>> I don't know, but I will see if I can get information about these next
>>> time I observe the crash.
>>>
>>> I struggle to keep the Emacs instance running gdb around very long
>>> because it keeps crashing too :)
>>
>> What packages have you installed, and do they frequently create new
>> frames or adjust the font size of existing frames?
>
> The packages I have installed don't do that, but I have tonnes of custom
> code in my init.el to create new frames and adjust font sizes.
> I normally have >=three frames open for each of two instances of Emacs.
>
> I have two entries in window-size-change-functions:
>
> (defun spw/maybe-scale-basic-faces (frame)
>   "Entry for `window-size-change-functions' to increase font sizes,
> relative to those set by the call to `custom-theme-set-faces' above, for
> frames on wide monitors, except where doing so would itself prevent fitting
> two 80-column windows side-by-side in the frame."
>   (when (display-graphic-p frame)
>    (let ((wide-monitor-p (> (cadddr (assoc 'geometry
> 					   (frame-monitor-attributes frame)))
> 			    1635)))
>      (when (or wide-monitor-p
> 	       ;; Check whether a previous call made any changes we might need
> 	       ;; to undo if FRAME has moved to a smaller display.
> 	       (not (eq scroll-bar-mode
> 			(frame-parameter frame 'vertical-scroll-bars)))
> 	       (= (face-attribute 'default :height frame) 120)
> 	       (= (face-attribute 'variable-pitch :height frame) 151))
>        (let* (;; Above 1635 you can scale up and still fit two 80-col windows.
> 	      ;; Below 1315 you can't fit the two windows even w/o scaling up.
> 	      (medium-p (> 1635 (frame-pixel-width frame) 1315))
> 	      (scale-up-p (and wide-monitor-p (not medium-p))))
> 	 (modify-frame-parameters
> 	  frame
> 	  `(;; Can fit two 80-col windows only if we disable scroll bars.
> 	    (vertical-scroll-bars . ,(and (not (and wide-monitor-p medium-p))
> 					  scroll-bar-mode))))
> 	 ;; Check Emacs found the relevant font on this window system, else
> 	 ;; our height values might be invalid.
> 	 (when (find-font (font-spec :foundry "SRC" :family "Hack") frame)
> 	   (set-face-attribute 'default frame
> 			       :height (if scale-up-p 120 105)))
> 	 (when (find-font (font-spec :foundry "bitstream"
> 				     :family "Bitstream Charter")
> 			  frame)
> 	   (set-face-attribute 'variable-pitch frame
> 			       :height (if scale-up-p 151 120))))))))
>
>
> and
>
> (defun spw/maybe-toggle-split-after-resize (frame)
>   (when (and (framep frame)
> 	     (frame-size-changed-p frame)
> 	     (= (count-windows nil frame) 2))
>     (with-selected-frame frame
>       (cl-labels ((toggleable-window-p (window)
> 		    (with-current-buffer (window-buffer window)
> 		      (not (derived-mode-p 'gnus-summary-mode))))
> 		  (window-info (window)
> 		    (and (toggleable-window-p window)
> 			 (cons (window-buffer window)
> 			       (cons (window-prev-buffers window)
> 				     (window-next-buffers window)))))
> 		  (set-window-info (window info)
> 		    (set-window-buffer window (car info))
> 		    (set-window-prev-buffers window (cadr info))
> 		    (set-window-next-buffers window (cddr info))))
> 	(when-let* ((this-info (window-info (selected-window)))
> 		    (next-info (window-info (next-window)))
> 		    (width (frame-width))
> 		    (this-edges (window-edges (selected-window)))
> 		    (next-edges (window-edges (next-window))))
> 	  (when (or (and (< width split-width-threshold)
> 			 (/= (car this-edges) (car next-edges)))
> 		    (and (>= width split-width-threshold)
> 			 (/= (cadr this-edges) (cadr next-edges))))
> 	    ;; Ensure we start with a fresh window.
> 	    (split-window)
> 	    (other-window 1)
> 	    (delete-other-windows)
>
> 	    (if (and (<= (car this-edges) (car next-edges))
> 		     (<= (cadr this-edges) (cadr next-edges)))
> 		;; Want to use `pop-to-buffer' for the second window s.t. my
> 		;; rule for REPLs in `display-buffer-alist' takes effect.
> 		(progn (set-window-info (selected-window) this-info)
> 		       (save-selected-window
> 			 (pop-to-buffer (car next-info))
> 			 (set-window-info (selected-window) next-info)))
> 	      (set-window-info (selected-window) next-info)
> 	      (pop-to-buffer (car this-info))
> 	      (set-window-info (selected-window) this-info))))))))
>
> For completeness, though I doubt it is relevant, packages (installed
> from Debian) are:
>
> elpa-bongo
> elpa-dash
> elpa-debian-el
> elpa-dpkg-dev-el
> elpa-esxml
> elpa-ggtags
> elpa-git-annex
> elpa-git-commit
> elpa-git-modes
> elpa-gitattributes-mode
> elpa-gitconfig-mode
> elpa-gitignore-mode
> elpa-haskell-tab-indent
> elpa-htmlize
> elpa-ledger
> elpa-magit
> elpa-magit-section
> elpa-mailscripts
> elpa-markdown-mode
> elpa-message-templ
> elpa-notmuch
> elpa-nov
> elpa-org
> elpa-org-contrib
> elpa-org-d20
> elpa-orgalist
> elpa-paredit
> elpa-pod-mode
> elpa-rainbow-mode
> elpa-s
> elpa-seq
> elpa-taxy
> elpa-volume
> elpa-with-editor
> elpa-ws-butler
> elpa-yasnippet
> elpa-yasnippet-snippets

Thanks.  It may be of assistance if you were to run an Emacs configured
`--enable-checking=yes,all' for a while and report whether any
assertions fail.





  reply	other threads:[~2024-07-04 12:28 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-04  2:33 bug#71929: 30.0.60; crash in mark_image_cache Sean Whitton
2024-07-04  2:44 ` Sean Whitton
2024-07-04  5:53   ` Eli Zaretskii
2024-07-04  6:03     ` Eli Zaretskii
2024-07-04  6:17       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-04  6:42         ` Sean Whitton
2024-07-04  6:59           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-04  9:56             ` Sean Whitton
2024-07-04 12:28               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-07-05  7:52                 ` Sean Whitton
2024-07-04  7:40           ` Eli Zaretskii
2024-07-04  9:57             ` Sean Whitton
2024-07-04 12:48               ` Eli Zaretskii
2024-07-05  0:13       ` Sean Whitton
2024-07-05  6:27         ` Eli Zaretskii
2024-07-05  6:41           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05  7:37             ` Eli Zaretskii
2024-07-05  9:36               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 11:10                 ` Eli Zaretskii
2024-07-05 11:40                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-05 12:46                     ` Sean Whitton
2024-07-06  2:41                     ` Sean Whitton
2024-07-06  6:08                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07  2:40                         ` Sean Whitton
2024-07-07  2:43                         ` Sean Whitton
2024-07-07  2:46                           ` Sean Whitton
2024-07-07  4:04                             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07  4:54                               ` Sean Whitton
2024-07-07  7:08                                 ` Eli Zaretskii
2024-07-07  7:41                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 13:16                                     ` Sean Whitton
2024-07-07 13:47                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-07 14:45                                         ` Sean Whitton
2024-07-09  5:48                                         ` Sean Whitton
2024-07-09 11:37                                           ` Eli Zaretskii
2024-07-10  1:12                                             ` Sean Whitton
2024-07-09 12:13                                           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 13:44                                             ` Sean Whitton
2024-07-09 14:03                                               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 14:18                                                 ` Eli Zaretskii
2024-07-09 15:02                                                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 15:45                                                     ` Eli Zaretskii
2024-07-10  1:12                                                 ` Sean Whitton
2024-07-24 13:31                                                   ` Basil L. Contovounesios
2024-07-24 13:38                                                     ` Eli Zaretskii
2024-07-24 14:10                                                       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-06  6:40                       ` Eli Zaretskii
2024-07-07  2:39                         ` Sean Whitton

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=87a5ix4a07.fsf@yahoo.com \
    --to=bug-gnu-emacs@gnu.org \
    --cc=71929@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=luangruo@yahoo.com \
    --cc=spwhitton@spwhitton.name \
    /path/to/YOUR_REPLY

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

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

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

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