unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
@ 2017-11-27  1:21 Emanuel Berg
  2017-11-27  2:44 ` Michael Heerdegen
  2017-11-27 16:26 ` Eli Zaretskii
  0 siblings, 2 replies; 6+ messages in thread
From: Emanuel Berg @ 2017-11-27  1:21 UTC (permalink / raw)
  To: 29462


In (info "(elisp) Warning Tips"), it says

   * If you use many functions and variables
     from a certain file, you can add
     a ‘require’ for that package to avoid
     compilation warnings for them.
     For instance,

          (eval-when-compile
            (require 'foo))

However that won't mute the warnings.
Using (eval-when-compile (require 'cl-lib)) it says

    In end of data:
    wrap-search-cp.el:133:1:Warning: the
    function `cl-find-if' might not be defined
    at runtime.

Perhaps that should be `eval-and-compile', or
plain `require'?



In GNU Emacs 24.4.1 (arm-unknown-linux-gnueabihf, GTK+ Version 3.14.5)
 of 2015-03-10 on bm-wb-01, modified by Debian
System Description:	Raspbian GNU/Linux 8.0 (jessie)

Configured using:
 `configure --build arm-linux-gnueabihf
 --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp
 --build arm-linux-gnueabihf --prefix=/usr
 --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fstack-protector-strong -Wformat
 -Werror=format-security -Wall'
 CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-z,relro'

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

Major mode: Summary

Minor modes in effect:
  diff-auto-refine-mode: t
  show-paren-mode: t
  shell-dirtrack-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  transient-mark-mode: t

Recent input:
SPC DEL DEL DEL DEL DEL T i s p SPC DEL ) DEL " ) RET 
ESC : ESC p C-e C-b C-b C-b C-b C-d C-f s SPC a n d 
SPC G u i d DEL DEL DEL DEL DEL DEL DEL DEL DEL RET 
k k k k k C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n TAB RET Ď C-o i b i Ď RET C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p 
C-p C-p C-p C-p C-e C-e C-n C-e C-a C-a C-e C-a C-a 
ESC o C-l C-u 1 0 0 s C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-p C-p C-p 
C-p C-p C-p C-p C-n RET k RET k RET k RET i ESC o ESC 
p C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-@ C-n C-n 
C-n C-n C-n C-p C-n C-p C-e ESC w ဃ ESC o ESC o ESC 
o ESC p ESC o ESC x C-g ESC o ESC o ESC p ESC x r e 
p - DEL o r t - b u g RET

Recent messages:
Follow the link
(error "No buttons or fields found") in widget-move
Follow the link [4 times]
mouse-2: hide the MIME part; down-mouse-3: more options
No hit.
Saving file /home/incal/.newsrc-dribble...
Wrote /home/incal/.newsrc-dribble [2 times]
(user-error "No such node or anchor: Tisp") in user-error
nil
Mark set [2 times]

Load-path shadows:
/usr/share/emacs/24.4/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
~/.emacs.d/emacs-init/misc hides /usr/share/emacs/24.4/lisp/misc
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.4/lisp/md4
/usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.4/lisp/hex-util
~/.emacs.d/lisp/abbrev hides /usr/share/emacs/24.4/lisp/abbrev
~/.emacs.d/emacs-init/gnus/server hides /usr/share/emacs/24.4/lisp/server
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.4/lisp/textmodes/ispell
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.4/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.4/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.4/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.4/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.4/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.4/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.4/lisp/net/hmac-md5
/usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.4/lisp/net/sasl-digest

Features:
(shadow nnir emacsbug diff-mode mm-archive
mail-extr gnus-async gnus-bcklg qp tabify
sh-script smie executable gnus-dup gnus-ml
nnfolder pop3 nndraft nnmh nnml gnutls
network-stream starttls tls gnus-agent
nnvirtual nntp gnus-cache mule-util cl-macs gv
w3m-filter ffap paren xsel w3m-form
google-translate-core-ui ido
google-translate-core google-translate-tk url
url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util
url-parse url-vars json time-my tabs parse-time
tramp-sh netrc term disp-table ehelp my-faces
bibtex t-mouse man tex-mode iterate-files isbn
slime-presentations slime-repl slime-parse
bridge nroff-mode sgml-mode cobol-mode ada-mode
which-func imenu align find-file checkdoc
cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs
guile summary message-my moggle mail-to-many
mail smtpmail sendmail global-keys yank-my
wrap-search w3m-unisearch w3m-search spell-new
ispell sort-my sort slime etags arc-mode
archive-mode noutline outline easy-mmode
hyperspec shell-cli revert-buffer-my lisp-new
ielm linux-shell kill keys help-new debug
apropos help-mode dired-x compile-my mode-line
compile article gnus-cite dl bookmarks
w3m-bookmark file-write-to erc-my fill-new
erc-dcc quit gnus-my group group-summary
gnus-srvr gnus-score score-mode gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime
dig mailcap gnus-sum nnoo gnus-group gnus-undo
nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range gnus-win message rfc822 mml
mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader gnus gnus-ems
nnheader mail-utils info slime-autoloads
package epg-config edit dired-my w3m-my
w3m-tabs cus-edit cus-start cus-load
w3m-session w3m browse-url doc-view jka-compr
image-mode timezone w3m-hist w3m-fb
bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon
w3m-image w3m-proc w3m-util files-my tramp
tramp-compat tramp-loaddefs trampver shell
advice sudo-user-path find-command window-new
count get-search-string caps-back buffer-menu
switch-to-buffer super scroll error dired close
buc switch-to-buffer-regexp subr-x align-new
erc-list erc-menu easymenu erc-join erc-ring
erc-networks erc-pcomplete pcomplete comint
ansi-color ring erc-track erc-match erc-button
wid-edit cl-loaddefs cl-lib erc-fill erc-stamp
erc-netsplit erc-goodies erc erc-backend
erc-compat format-spec auth-source eieio
byte-opt bytecomp byte-compile cconv eieio-core
gnus-util time-date mm-util help-fns mail-prsvr
password-cache thingatpt pp my-string
search-regexp-in-files w3m-load tooltip
electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer 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 make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit
x multi-tty emacs)

Memory information:
((conses 8 469435 40357)
 (symbols 24 50602 0)
 (miscs 20 229 1144)
 (strings 16 132933 14298)
 (string-bytes 1 3852919)
 (vectors 8 43283)
 (vector-slots 4 823124 10990)
 (floats 8 395 639)
 (intervals 28 8487 0)
 (buffers 512 36)
 (heap 1024 30760 9225))

-- 
underground experts united
http://user.it.uu.se/~embe8573






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

* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
  2017-11-27  1:21 bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc Emanuel Berg
@ 2017-11-27  2:44 ` Michael Heerdegen
  2017-11-27  2:49   ` Emanuel Berg
  2017-11-27 16:29   ` Eli Zaretskii
  2017-11-27 16:26 ` Eli Zaretskii
  1 sibling, 2 replies; 6+ messages in thread
From: Michael Heerdegen @ 2017-11-27  2:44 UTC (permalink / raw)
  To: 29462

Emanuel Berg <moasen@zoho.com> writes:

> In (info "(elisp) Warning Tips"), it says
>
>    * If you use many functions and variables
>      from a certain file, you can add
>      a ‘require’ for that package to avoid
>      compilation warnings for them.
>      For instance,
>
>           (eval-when-compile
>             (require 'foo))

Thanks for the report.

I find this whole sentence confusing and misleading in general.  The
main purpose of `require' is not to silence warnings, and calling it is
very often something needed, not only something one "can" do.


Michael.





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

* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
  2017-11-27  2:44 ` Michael Heerdegen
@ 2017-11-27  2:49   ` Emanuel Berg
  2017-11-27 16:31     ` Eli Zaretskii
  2017-11-27 16:29   ` Eli Zaretskii
  1 sibling, 1 reply; 6+ messages in thread
From: Emanuel Berg @ 2017-11-27  2:49 UTC (permalink / raw)
  To: 29462

Michael Heerdegen wrote:

>> In (info "(elisp) Warning Tips"), it says *
>> If you use many functions and variables from
>> a certain file, you can add a ‘require’ for
>> that package to avoid compilation warnings
>> for them. For instance, (eval-when-compile
>> (require 'foo))
>
> Thanks for the report.
>
> I find this whole sentence confusing and
> misleading in general. The main purpose of
> `require' is not to silence warnings

It sure send mixed signals and as it stands one
gets the impression what you should do is find
ways of silencing warnings, instead of
improving the code so there is nothing to warn
about to begin with.

-- 
underground experts united
http://user.it.uu.se/~embe8573






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

* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
  2017-11-27  1:21 bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc Emanuel Berg
  2017-11-27  2:44 ` Michael Heerdegen
@ 2017-11-27 16:26 ` Eli Zaretskii
  1 sibling, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-11-27 16:26 UTC (permalink / raw)
  To: Emanuel Berg; +Cc: 29462-done

> From: Emanuel Berg <moasen@zoho.com>
> Date: Mon, 27 Nov 2017 02:21:53 +0100
> 
> 
> In (info "(elisp) Warning Tips"), it says
> 
>    * If you use many functions and variables
>      from a certain file, you can add
>      a ‘require’ for that package to avoid
>      compilation warnings for them.
>      For instance,
> 
>           (eval-when-compile
>             (require 'foo))
> 
> However that won't mute the warnings.
> Using (eval-when-compile (require 'cl-lib)) it says
> 
>     In end of data:
>     wrap-search-cp.el:133:1:Warning: the
>     function `cl-find-if' might not be defined
>     at runtime.

Thanks, fixed.





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

* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
  2017-11-27  2:44 ` Michael Heerdegen
  2017-11-27  2:49   ` Emanuel Berg
@ 2017-11-27 16:29   ` Eli Zaretskii
  1 sibling, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-11-27 16:29 UTC (permalink / raw)
  To: Michael Heerdegen; +Cc: 29462

> From: Michael Heerdegen <michael_heerdegen@web.de>
> Date: Mon, 27 Nov 2017 03:44:46 +0100
> 
> Emanuel Berg <moasen@zoho.com> writes:
> 
> > In (info "(elisp) Warning Tips"), it says
> >
> >    * If you use many functions and variables
> >      from a certain file, you can add
> >      a ‘require’ for that package to avoid
> >      compilation warnings for them.
> >      For instance,
> >
> >           (eval-when-compile
> >             (require 'foo))
> 
> Thanks for the report.
> 
> I find this whole sentence confusing and misleading in general.  The
> main purpose of `require' is not to silence warnings, and calling it is
> very often something needed, not only something one "can" do.

The above citation is from a section which explains how to avoid
warnings.  It is not the place where we document 'require' itself,
only its use to avoid warnings.  So reading that out of context as a
statement of the main purpose of 'require' is a mistake, as 'require'
is fully documented elsewhere in the manual.

In the context of avoiding warnings, I see no problem in mentioning
'require'.





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

* bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc
  2017-11-27  2:49   ` Emanuel Berg
@ 2017-11-27 16:31     ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2017-11-27 16:31 UTC (permalink / raw)
  To: Emanuel Berg; +Cc: 29462

> From: Emanuel Berg <moasen@zoho.com>
> Date: Mon, 27 Nov 2017 03:49:42 +0100
> 
> It sure send mixed signals and as it stands one
> gets the impression what you should do is find
> ways of silencing warnings, instead of
> improving the code so there is nothing to warn
> about to begin with.

In many real-life situations, there's no cleaner way of avoiding such
warnings, except to require the package which defines the features you
are warned about.  There's nothing wrong about doing that, which is
why you will find such uses all over the Emacs sources.





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

end of thread, other threads:[~2017-11-27 16:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-27  1:21 bug#29462: 24.4; eval-when-compile won't mute warning as says in info doc Emanuel Berg
2017-11-27  2:44 ` Michael Heerdegen
2017-11-27  2:49   ` Emanuel Berg
2017-11-27 16:31     ` Eli Zaretskii
2017-11-27 16:29   ` Eli Zaretskii
2017-11-27 16:26 ` 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).