GNU bug report logs - #60644
30.0.50; eval-defun: in specific case finds wrong function below the current one

Previous Next

Package: emacs;

Reported by: Jean Louis <bugs <at> gnu.support>

Date: Sun, 8 Jan 2023 06:21:01 UTC

Severity: wishlist

Found in version 30.0.50

To reply to this bug, email your comments to 60644 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 06:21:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jean Louis <bugs <at> gnu.support>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 08 Jan 2023 06:21:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jean Louis <bugs <at> gnu.support>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50;
 eval-defun: in specific case finds wrong function below the current
 one
Date: Sun, 08 Jan 2023 09:19:05 +0300
[Message part 1 (text/plain, inline)]
Find in the file two functions, go somewhere in the middle of
`hyperscope-tag-hyperdocuments-by-type' and try invoking C-M-x and you
will see `rcd-db-recurse-on-table' instead of
`hyperscope-tag-hyperdocuments-by-type'. In general I can't instrument
this function interactively.

[test.el (text/plain, attachment)]
[Message part 3 (text/plain, inline)]


In GNU Emacs 30.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.17.6, Xaw3d scroll bars) of 2023-01-08 built on
 protected.rcdrun.com
Repository revision: 5d1e14bd8b9a11ab860937d3ab97248ddeef30b1
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Parabola GNU/Linux-libre

Configured using:
 'configure --with-x-toolkit=lucid --with-mailutils'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ
JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: 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:
None found.

Features:
(shadow mailalias emacsbug message yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util text-property-search time-date mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils hyperbole-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
url-vars cl-loaddefs cl-lib 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 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 lcms2 dynamic-setting system-font-setting
font-render-setting cairo x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 56113 8712)
 (symbols 48 6869 0)
 (strings 32 20665 973)
 (string-bytes 1 617054)
 (vectors 16 14338)
 (vector-slots 8 199567 9406)
 (floats 8 29 36)
 (intervals 56 341 0)
 (buffers 984 10))


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 10:37:01 GMT) Full text and rfc822 format available.

Message #8 received at 60644 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jean Louis <bugs <at> gnu.support>
Cc: 60644 <at> debbugs.gnu.org
Subject: Re: bug#60644: 30.0.50;
 eval-defun: in specific case finds wrong function below the current
 one
Date: Sun, 08 Jan 2023 12:37:07 +0200
> Date: Sun, 08 Jan 2023 09:19:05 +0300
> From: Jean Louis <bugs <at> gnu.support>
> 
> Find in the file two functions, go somewhere in the middle of
> `hyperscope-tag-hyperdocuments-by-type' and try invoking C-M-x and you
> will see `rcd-db-recurse-on-table' instead of
> `hyperscope-tag-hyperdocuments-by-type'. In general I can't instrument
> this function interactively.

Its indentation is wrong.  Reindent the line where you have
"(interactive)", and your problems will likely disappear.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 11:49:02 GMT) Full text and rfc822 format available.

Message #11 received at 60644 <at> debbugs.gnu.org (full text, mbox):

From: Jean Louis <bugs <at> gnu.support>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 60644 <at> debbugs.gnu.org
Subject: Re: bug#60644: 30.0.50; eval-defun: in specific case finds wrong
 function below the current one
Date: Sun, 8 Jan 2023 14:21:12 +0300
* Eli Zaretskii <eliz <at> gnu.org> [2023-01-08 13:37]:
> > Date: Sun, 08 Jan 2023 09:19:05 +0300
> > From: Jean Louis <bugs <at> gnu.support>
> > 
> > Find in the file two functions, go somewhere in the middle of
> > `hyperscope-tag-hyperdocuments-by-type' and try invoking C-M-x and you
> > will see `rcd-db-recurse-on-table' instead of
> > `hyperscope-tag-hyperdocuments-by-type'. In general I can't instrument
> > this function interactively.
> 
> Its indentation is wrong.  Reindent the line where you have
> "(interactive)", and your problems will likely disappear.

I get it, it works.

I was not aware that detection system should rely on indentation, but
rather on sexp.

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 12:03:02 GMT) Full text and rfc822 format available.

Message #14 received at 60644 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Jean Louis <bugs <at> gnu.support>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 60644 <at> debbugs.gnu.org
Subject: Re: bug#60644: 30.0.50; eval-defun: in specific case finds wrong
 function below the current one
Date: Sun, 08 Jan 2023 14:03:06 +0200
> Date: Sun, 8 Jan 2023 14:21:12 +0300
> From: Jean Louis <bugs <at> gnu.support>
> Cc: 60644 <at> debbugs.gnu.org
> 
> * Eli Zaretskii <eliz <at> gnu.org> [2023-01-08 13:37]:
> > > Date: Sun, 08 Jan 2023 09:19:05 +0300
> > > From: Jean Louis <bugs <at> gnu.support>
> > > 
> > > Find in the file two functions, go somewhere in the middle of
> > > `hyperscope-tag-hyperdocuments-by-type' and try invoking C-M-x and you
> > > will see `rcd-db-recurse-on-table' instead of
> > > `hyperscope-tag-hyperdocuments-by-type'. In general I can't instrument
> > > this function interactively.
> > 
> > Its indentation is wrong.  Reindent the line where you have
> > "(interactive)", and your problems will likely disappear.
> 
> I get it, it works.
> 
> I was not aware that detection system should rely on indentation, but
> rather on sexp.

AFAIU, the top-level form (which is what C-M-x is about) is detected
in a way that depends on indentation.

Stefan, any further comments, or should we close this?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 15:24:02 GMT) Full text and rfc822 format available.

Message #17 received at 60644 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Jean Louis <bugs <at> gnu.support>, 60644 <at> debbugs.gnu.org
Subject: Re: bug#60644: 30.0.50; eval-defun: in specific case finds wrong
 function below the current one
Date: Sun, 08 Jan 2023 10:23:41 -0500
> AFAIU, the top-level form (which is what C-M-x is about) is detected
> in a way that depends on indentation.
>
> Stefan, any further comments, or should we close this?

Nothing more to add, other than the fact that I'm also bitten by this
every once in a while.  I'm not sure what could be done about it, tho,
since I'm pretty sure I'd get bitten occasionally no matter what
semantics we pick.

Maybe C-M-x should display visually what it evaluated?

And maybe there sound be some way to force a particular choice (maybe
using the region)?


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60644; Package emacs. (Sun, 08 Jan 2023 15:30:03 GMT) Full text and rfc822 format available.

Message #20 received at 60644 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: bugs <at> gnu.support, 60644 <at> debbugs.gnu.org
Subject: Re: bug#60644: 30.0.50; eval-defun: in specific case finds wrong
 function below the current one
Date: Sun, 08 Jan 2023 17:30:01 +0200
severity 60644 wishlist
thanks

> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: Jean Louis <bugs <at> gnu.support>,  60644 <at> debbugs.gnu.org
> Date: Sun, 08 Jan 2023 10:23:41 -0500
> 
> > AFAIU, the top-level form (which is what C-M-x is about) is detected
> > in a way that depends on indentation.
> >
> > Stefan, any further comments, or should we close this?
> 
> Nothing more to add, other than the fact that I'm also bitten by this
> every once in a while.  I'm not sure what could be done about it, tho,
> since I'm pretty sure I'd get bitten occasionally no matter what
> semantics we pick.
> 
> Maybe C-M-x should display visually what it evaluated?
> 
> And maybe there sound be some way to force a particular choice (maybe
> using the region)?

Good ideas.  So I think I'll leave the bug open, in case someone would
like to implement these ideas, just make it a feature request.

Thanks.




Severity set to 'wishlist' from 'normal' Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Sun, 08 Jan 2023 15:30:03 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.