Subject: Confusion about where 1value, noreturn are defined
From: Braun Gábor <[email-masked]>
To: [email-masked]
Date: Fri, 06 Dec 2019 22:57:49 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

After `emacs -Q' execute 'M-x find-function RET 1value RET'
and then 'C-h f 1value RET';
I have done it via the following keystrokes (copied from
the output of `C-h l'):

M-x [execute-extended-command]
 f [self-insert-command]
 i [self-insert-command]
 n [self-insert-command]
 d [self-insert-command]
 - [self-insert-command]
 f [self-insert-command]
 u [self-insert-command]
 n [self-insert-command]
 <tab> [minibuffer-complete]
 <return> [minibuffer-complete-and-exit]
 1 [self-insert-command]
 v [self-insert-command]
 a [self-insert-command]
 l [self-insert-command]
 u [self-insert-command]
 e [self-insert-command]
 <return> [minibuffer-complete-and-exit]
 C-h f [describe-function]
 <up> [previous-line-or-history-element]
 <return> [minibuffer-complete-and-exit]
 
At this point Emacs displays two windows: in the top window there is
Lisp code defining macro `1value' and the modeline displays `subr.el.gz'
as buffer name.

The bottom window display the *Help* buffer with the first line being:

1value is a Lisp macro in ‘ses.el’.

Clcking with the mouse on `ses.el' changes the top window
to display another definition of `1value' with
modeline now showing `ses.el.gz' as buffer name.

So Emacs is inconsistent on where 1value is defined: it claims both 
subr.el and ses.el.  The case is similar for macro `noreturn'.

IMHO, ses.el should redefine neither 1value nor noreturn, to adhere to 
the following tip from the Elisp manual:

QUOTE:
Redefining or advising an Emacs primitive is a bad idea.  It may do
the right thing for a particular program, but there is no telling
what other programs might break as a result.
ENDQUOTE

Best wishes,

     Gábor

In GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.5)
 of 2019-09-23, modified by Debian built on x86-grnet-01
Windowing system distributor 'The X.Org Foundation', version 
11.0.12004000
System Description:	Debian GNU/Linux 10 (buster)

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
uncompressing subr.el.gz...done
Note: file is write protected
Type C-x 1 to delete the help window.

Making completion list...

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-
lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/
usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-
lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/
usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes
 --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-StqULU/emacs-26.1+1=. -fstack-
protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LANG: hu_HU.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq gv dired
dired-loaddefs format-spec rfc822 mml mml-sec password-cache epa derived
epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils ses byte-opt
bytecomp byte-compile cconv unsafep help-fns radix-tree help-mode
easymenu cl-loaddefs cl-lib jka-compr thingatpt find-func elec-pair
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type 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 elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 104995 9175)
 (symbols 48 20912 1)
 (miscs 40 59 129)
 (strings 32 31904 1204)
 (string-bytes 1 811459)
 (vectors 16 15581)
 (vector-slots 8 506680 8152)
 (floats 8 63 192)
 (intervals 56 338 3)
 (buffers 992 14))