unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
@ 2022-08-14 18:02 dick.r.chiang
  2022-08-14 18:39 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: dick.r.chiang @ 2022-08-14 18:02 UTC (permalink / raw)
  To: 57212

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


It's a bizarre policy to allow users to inject their personal hooks
willy-nilly.

To the extent I can incur further ill-will, I'll remind the maintainers
feature-flag proliferation is a programming tradition you should
work against, not encourage.  If you're convinced narrowing within
a critical section of redisplay is safe (and I suspect it is), do
it all the time, not just when "long_line_optimizations_p" is true.

Man up, is what I'm saying.  I wish I had your user base to vet my
larger changes.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Squashed-commit-of-the-following.patch --]
[-- Type: text/x-diff, Size: 2065 bytes --]

From 574fdca333678ccf67c6f403eff6ea27197af272 Mon Sep 17 00:00:00 2001
From: dickmao <dick.r.chiang@gmail.com>
Date: Sun, 14 Aug 2022 13:47:10 -0400
Subject: [PATCH] Squashed commit of the following:

commit e4e6e9b16bca6754ad1d3b176e065fccd72dca98
Author: dickmao <dick.r.chiang@gmail.com>
Date:   Sun Aug 14 13:46:36 2022 -0400

    Revert "Add variable end-of-defun-moves-to-eol"

    This reverts commit 50730a8b04ede381c958600a1400efe8d04d9dfc.

commit fa36e511b9f348e8f3b2555b010c00516c6602aa
Author: dickmao <dick.r.chiang@gmail.com>
Date:   Sun Aug 14 13:46:25 2022 -0400

    Revert "; * lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): Doc fix."

    This reverts commit 564571f712fcf0ffcb93eeca67f7716263c9def5.
(end-of-defun):
---
 lisp/emacs-lisp/lisp.el | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index acae1a0b0a9..4b85414943a 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -507,11 +507,6 @@ end-of-defun-function
 So the function can assume that point is at the beginning of the defun body.
 It should move point to the first position after the defun.")
 
-(defvar end-of-defun-moves-to-eol t
-  "Whether `end-of-defun' moves to eol before doing anything else.
-Set this to nil if this movement adversely affects the buffer's
-major mode's decisions about context.")
-
 (defun buffer-end (arg)
   "Return the \"far end\" position of the buffer, in direction ARG.
 If ARG is positive, that's the end of the buffer.
@@ -543,9 +538,7 @@ end-of-defun
         (push-mark))
     (if (or (null arg) (= arg 0)) (setq arg 1))
     (let ((pos (point))
-          (beg (progn (when end-of-defun-moves-to-eol
-                        (end-of-line 1))
-                      (beginning-of-defun-raw 1) (point)))
+          (beg (progn (end-of-line 1) (beginning-of-defun-raw 1) (point)))
 	  (skip (lambda ()
 		  ;; When comparing point against pos, we want to consider that
 		  ;; if point was right after the end of the function, it's
-- 
2.36.1


[-- Attachment #3: Type: text/plain, Size: 13518 bytes --]




In Commercial Emacs 0.3.1snapshot ef359a6 in dev (upstream 29.0.50, x86_64-pc-linux-gnu) built on dick
Repository revision: ef359a65022fc814c2cf51fa5ebd3743356f2da3
Repository branch: dev
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Ubuntu 20.04.4 LTS

Configured using:
 'configure WERROR_CFLAGS=-Werror --prefix=/home/dick/.local
 --with-tree-sitter'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
TREE_SITTER LCMS2 LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM
XINPUT2 XPM GTK3 ZLIB
Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  projectile-mode: t
  flx-ido-mode: t
  override-global-mode: t
  global-hl-line-mode: t
  hl-line-mode: t
  winner-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/.emacs.d/elpa/go-rename-20190805.2101/go-rename hides /home/dick/.emacs.d/elpa/go-mode-1.6.0/go-rename
/home/dick/.emacs.d/elpa/go-guru-20181012.330/go-guru hides /home/dick/.emacs.d/elpa/go-mode-1.6.0/go-guru
/home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal
/home/dick/.emacs.d/elpa/request-deferred-0.2.0/request-deferred hides /home/dick/.emacs.d/elpa/request-0.3.3/request-deferred
/home/dick/.emacs.d/elpa/chess-2.0.5/_pkg hides /home/dick/.local/share/emacs/site-lisp/_pkg
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-pos hides /home/dick/.local/share/emacs/site-lisp/chess-pos
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-module hides /home/dick/.local/share/emacs/site-lisp/chess-module
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ucb hides /home/dick/.local/share/emacs/site-lisp/chess-ucb
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-scid hides /home/dick/.local/share/emacs/site-lisp/chess-scid
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-puzzle hides /home/dick/.local/share/emacs/site-lisp/chess-puzzle
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-irc hides /home/dick/.local/share/emacs/site-lisp/chess-irc
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-network hides /home/dick/.local/share/emacs/site-lisp/chess-network
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-autosave hides /home/dick/.local/share/emacs/site-lisp/chess-autosave
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-engine hides /home/dick/.local/share/emacs/site-lisp/chess-engine
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-tutorial hides /home/dick/.local/share/emacs/site-lisp/chess-tutorial
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-german hides /home/dick/.local/share/emacs/site-lisp/chess-german
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-file hides /home/dick/.local/share/emacs/site-lisp/chess-file
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-random hides /home/dick/.local/share/emacs/site-lisp/chess-random
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-stockfish hides /home/dick/.local/share/emacs/site-lisp/chess-stockfish
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-pgn hides /home/dick/.local/share/emacs/site-lisp/chess-pgn
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-kibitz hides /home/dick/.local/share/emacs/site-lisp/chess-kibitz
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-eco hides /home/dick/.local/share/emacs/site-lisp/chess-eco
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-display hides /home/dick/.local/share/emacs/site-lisp/chess-display
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-var hides /home/dick/.local/share/emacs/site-lisp/chess-var
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-test hides /home/dick/.local/share/emacs/site-lisp/chess-test
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ply hides /home/dick/.local/share/emacs/site-lisp/chess-ply
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-message hides /home/dick/.local/share/emacs/site-lisp/chess-message
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics1 hides /home/dick/.local/share/emacs/site-lisp/chess-ics1
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-phalanx hides /home/dick/.local/share/emacs/site-lisp/chess-phalanx
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-game hides /home/dick/.local/share/emacs/site-lisp/chess-game
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-log hides /home/dick/.local/share/emacs/site-lisp/chess-log
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-plain hides /home/dick/.local/share/emacs/site-lisp/chess-plain
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-perft hides /home/dick/.local/share/emacs/site-lisp/chess-perft
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-glaurung hides /home/dick/.local/share/emacs/site-lisp/chess-glaurung
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ai hides /home/dick/.local/share/emacs/site-lisp/chess-ai
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-fruit hides /home/dick/.local/share/emacs/site-lisp/chess-fruit
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-uci hides /home/dick/.local/share/emacs/site-lisp/chess-uci
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-epd hides /home/dick/.local/share/emacs/site-lisp/chess-epd
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-database hides /home/dick/.local/share/emacs/site-lisp/chess-database
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-link hides /home/dick/.local/share/emacs/site-lisp/chess-link
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-transport hides /home/dick/.local/share/emacs/site-lisp/chess-transport
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-none hides /home/dick/.local/share/emacs/site-lisp/chess-none
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-polyglot hides /home/dick/.local/share/emacs/site-lisp/chess-polyglot
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-crafty hides /home/dick/.local/share/emacs/site-lisp/chess-crafty
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-chat hides /home/dick/.local/share/emacs/site-lisp/chess-chat
/home/dick/.emacs.d/elpa/chess-2.0.5/chess hides /home/dick/.local/share/emacs/site-lisp/chess
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-images hides /home/dick/.local/share/emacs/site-lisp/chess-images
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-gnuchess hides /home/dick/.local/share/emacs/site-lisp/chess-gnuchess
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-fen hides /home/dick/.local/share/emacs/site-lisp/chess-fen
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics hides /home/dick/.local/share/emacs/site-lisp/chess-ics
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-ics2 hides /home/dick/.local/share/emacs/site-lisp/chess-ics2
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-common hides /home/dick/.local/share/emacs/site-lisp/chess-common
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-input hides /home/dick/.local/share/emacs/site-lisp/chess-input
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-announce hides /home/dick/.local/share/emacs/site-lisp/chess-announce
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-clock hides /home/dick/.local/share/emacs/site-lisp/chess-clock
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-sound hides /home/dick/.local/share/emacs/site-lisp/chess-sound
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-sjeng hides /home/dick/.local/share/emacs/site-lisp/chess-sjeng
/home/dick/.emacs.d/elpa/chess-2.0.5/chess-algebraic hides /home/dick/.local/share/emacs/site-lisp/chess-algebraic
/home/dick/.emacs.d/elpa/transient-0.3.7snapshot/transient hides /home/dick/.local/share/emacs/0.3.1/lisp/transient

Features:
(shadow bbdb-message footnote emacsbug nndoc display-line-numbers
debbugs-gnu debbugs-compat debbugs soap-client rng-xsd rng-dt rng-util
xsd-regexp shortdoc mule-util shr-color gravatar dns vc cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
ag vc-svn find-dired jka-compr pulse elpaso elpaso-admin elpaso-milky
elpaso-defs google-translate gnus-html url-queue help-fns radix-tree
rect qp sort smiley flow-fill mm-archive mail-extr textsec uni-scripts
idna-mapping ucs-normalize uni-confusable textsec-check gnus-async
gnus-ml blamer a magit-extras goto-addr face-remap gnus-notifications
gnus-fun notifications gnus-kill gnus-dup disp-table utf-7 url-cache
benchmark nnrss nnfolder nndiscourse rbenv nnhackernews nntwitter
nntwitter-api bbdb-gnus gnus-demon nntp nnmairix nnml nnreddit
gnus-topic url-http url-auth url-gw network-stream nsm request
virtualenvwrapper gud s json-rpc python gnus-score score-mode gnus-bcklg
gnus-srvr gnus-cite anaphora bbdb-mua bbdb-com bbdb bbdb-site timezone
gnus-delay gnus-draft gnus-cache gnus-agent gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill
kinsoku url-file svg dom nndraft nnmh gnus-group mm-url gnus-undo
use-package use-package-delight use-package-diminish gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win magit-patch-changelog magit-patch
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
edebug debug backtrace magit-diff smerge-mode diff git-commit log-edit
message sendmail yank-media puny dired-x dired dired-loaddefs rfc822 mml
mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils
mailheader pcvs-util add-log magit-core magit-margin magit-transient
magit-process with-editor server magit-mode transient misearch
multi-isearch vc-git diff-mode vc-dispatcher bug-reference tramp-archive
tramp-gvfs tramp-cache time-stamp zeroconf dbus xml tramp tramp-loaddefs
trampver tramp-integration cus-start files-x tramp-compat shell
pcomplete parse-time iso8601 ls-lisp paredit-ext paredit inf-ruby
ruby-mode smie company pcase haskell-interactive-mode
haskell-presentation-mode haskell-process haskell-session
haskell-compile haskell-mode haskell-cabal haskell-utils
haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme haskell-align-imports
haskell-complete-module haskell-ghc-support noutline outline
flymake-proc flymake warnings etags fileloop generator dabbrev
haskell-customize hydra lv use-package-ensure solarized-theme
solarized-definitions projectile lisp-mnt ibuf-ext ibuffer
ibuffer-loaddefs thingatpt magit-autorevert autorevert filenotify
magit-git magit-base magit-section format-spec crm dash rx compat-27
compat-26 compat grep compile comint ansi-color gnus nnheader range
mail-utils mm-util mail-prsvr gnus-util text-property-search time-date
flx-ido flx google-translate-default-ui google-translate-core-ui
facemenu color ido google-translate-core google-translate-tk
google-translate-backend use-package-bind-key bind-key auto-complete
easy-mmode advice edmacro kmacro popup cus-edit pp cus-load icons
wid-edit emms-player-mplayer emms-player-simple emms emms-compat
cl-extra help-mode xref project use-package-core derived hl-line winner
ring consult-autoloads debbugs-autoloads eglot-autoloads
elpaso-disc-autoloads elpaso-autoloads find-func finder-inf
go-mode-autoloads json-reformat-autoloads json-snatcher-autoloads
magit-autoloads projectile-autoloads sml-mode-autoloads epl-autoloads
tornado-template-mode-autoloads typescript-mode-autoloads
request-autoloads info wordnut-autoloads package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile cconv cldefs url-vars cl-loaddefs
cl-lib rmc iso-transl tooltip eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type tree-sitter-elisp-mode elisp-mode mwheel
term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tree-sitter-prog-mode tree-sitter 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 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 lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 1526309 215676)
 (symbols 48 48001 1)
 (strings 32 240875 57500)
 (string-bytes 1 6950128)
 (vectors 16 147043)
 (vector-slots 8 3292476 186650)
 (floats 8 1514 3369)
 (intervals 56 144853 2308)
 (buffers 1000 70))

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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-14 18:02 bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol dick.r.chiang
@ 2022-08-14 18:39 ` Eli Zaretskii
  2022-08-14 20:49   ` dick
  2022-08-15  7:06 ` Lars Ingebrigtsen
  2022-08-15 19:44 ` Gregory Heytings
  2 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2022-08-14 18:39 UTC (permalink / raw)
  To: dick.r.chiang; +Cc: 57212

> From: dick.r.chiang@gmail.com
> Date: Sun, 14 Aug 2022 14:02:55 -0400
> 
> To the extent I can incur further ill-will, I'll remind the maintainers
> feature-flag proliferation is a programming tradition you should
> work against, not encourage.  If you're convinced narrowing within
> a critical section of redisplay is safe (and I suspect it is), do
> it all the time, not just when "long_line_optimizations_p" is true.

If you'd read the code guarded by that flag and understand what it
does, you wouldn't have made such nonsensical proposals.  Safety has
nothing to do with that flag, nothing at all.  The reason is even
spelled out in the documentation and in some comments to the code, if
the code itself is too obscure to grasp.

(And what does this have to do with end-of-defun-moves-to-eol,
anyway??)





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-14 18:39 ` Eli Zaretskii
@ 2022-08-14 20:49   ` dick
  0 siblings, 0 replies; 8+ messages in thread
From: dick @ 2022-08-14 20:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 57212

> (And what does this have to do with end-of-defun-moves-to-eol,
> anyway??)

I consider end-of-defun-moves-to-eol and long_line_optimizations_p
two additional states that multiply the number of possible
outcomes by 4.  And obfuscatory.

Just answering your question.  It's not clear why you asked since
my responses have always been gibberish to you.





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-14 18:02 bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol dick.r.chiang
  2022-08-14 18:39 ` Eli Zaretskii
@ 2022-08-15  7:06 ` Lars Ingebrigtsen
  2022-08-15 19:44 ` Gregory Heytings
  2 siblings, 0 replies; 8+ messages in thread
From: Lars Ingebrigtsen @ 2022-08-15  7:06 UTC (permalink / raw)
  To: dick.r.chiang; +Cc: 57212

dick.r.chiang@gmail.com writes:

> -(defvar end-of-defun-moves-to-eol t
> -  "Whether `end-of-defun' moves to eol before doing anything else.
> -Set this to nil if this movement adversely affects the buffer's
> -major mode's decisions about context.")

I'm not much in favour of this variable either, but it fixes a real
problem (that end-of-defun is basically misdesigned -- we move point
before end-of-defun-function, which is just way too DWIM and doesn't
allow you to make end-of-defun-function behave).

A complete redesign would have been better, but I think we're not going
to do that, so I'm closing this bug report.





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-14 18:02 bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol dick.r.chiang
  2022-08-14 18:39 ` Eli Zaretskii
  2022-08-15  7:06 ` Lars Ingebrigtsen
@ 2022-08-15 19:44 ` Gregory Heytings
  2022-08-16  2:29   ` Eli Zaretskii
  2 siblings, 1 reply; 8+ messages in thread
From: Gregory Heytings @ 2022-08-15 19:44 UTC (permalink / raw)
  To: dick.r.chiang; +Cc: 57212


>
> If you're convinced narrowing within a critical section of redisplay is 
> safe (and I suspect it is), do it all the time, not just when 
> "long_line_optimizations_p" is true.
>

That might indeed be what Emacs could do in the long term, once we have 
enough experience with it.  But it is way too soon to do that now.  FYI, 
you can already do it unconditionally by setting long-line-threshold to 0.





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-15 19:44 ` Gregory Heytings
@ 2022-08-16  2:29   ` Eli Zaretskii
  2022-08-16  8:14     ` Gregory Heytings
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2022-08-16  2:29 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: 57212, dick.r.chiang

> Cc: 57212@debbugs.gnu.org
> Date: Mon, 15 Aug 2022 19:44:32 +0000
> From: Gregory Heytings <gregory@heytings.org>
> 
> > If you're convinced narrowing within a critical section of redisplay is 
> > safe (and I suspect it is), do it all the time, not just when 
> > "long_line_optimizations_p" is true.
> 
> That might indeed be what Emacs could do in the long term, once we have 
> enough experience with it.

No, it shouldn't, because of the adverse effects of that on some
aspects of the Emacs behavior.





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-16  2:29   ` Eli Zaretskii
@ 2022-08-16  8:14     ` Gregory Heytings
  2022-08-16 12:59       ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Gregory Heytings @ 2022-08-16  8:14 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 57212, dick.r.chiang


>>> If you're convinced narrowing within a critical section of redisplay 
>>> is safe (and I suspect it is), do it all the time, not just when 
>>> "long_line_optimizations_p" is true.
>>
>> That might indeed be what Emacs could do in the long term, once we have 
>> enough experience with it.
>
> No, it shouldn't, because of the adverse effects of that on some aspects 
> of the Emacs behavior.
>

Indeed.  I should have added something like "if we find a way to cope with 
these adverse effects".





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

* bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol
  2022-08-16  8:14     ` Gregory Heytings
@ 2022-08-16 12:59       ` Eli Zaretskii
  0 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2022-08-16 12:59 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: 57212, dick.r.chiang

> Date: Tue, 16 Aug 2022 08:14:46 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: dick.r.chiang@gmail.com, 57212@debbugs.gnu.org
> 
> >>> If you're convinced narrowing within a critical section of redisplay 
> >>> is safe (and I suspect it is), do it all the time, not just when 
> >>> "long_line_optimizations_p" is true.
> >>
> >> That might indeed be what Emacs could do in the long term, once we have 
> >> enough experience with it.
> >
> > No, it shouldn't, because of the adverse effects of that on some aspects 
> > of the Emacs behavior.
> 
> Indeed.  I should have added something like "if we find a way to cope with 
> these adverse effects".

I agree, but I have hard time imagining that miracle, not without
completely redesigning the display engine (and maybe some other parts
of Emacs, like buffer text) based on very different principles.  Most
of the "optimizations" we made are actually shortcuts which ignore
certain aspects of display that we decided were less important than
reasonable response time.





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

end of thread, other threads:[~2022-08-16 12:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-14 18:02 bug#57212: 29.0.50; [PATCH] Citizen's arrest of end-of-defun-moves-to-eol dick.r.chiang
2022-08-14 18:39 ` Eli Zaretskii
2022-08-14 20:49   ` dick
2022-08-15  7:06 ` Lars Ingebrigtsen
2022-08-15 19:44 ` Gregory Heytings
2022-08-16  2:29   ` Eli Zaretskii
2022-08-16  8:14     ` Gregory Heytings
2022-08-16 12:59       ` Eli Zaretskii

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