unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Martin Stjernholm <mast@lysator.liu.se>
Cc: Kenichi Handa <handa@m17n.org>, rms@gnu.org, emacs-devel@gnu.org
Subject: Re: cc-vars.el
Date: 19 Nov 2002 21:35:58 +0100	[thread overview]
Message-ID: <5badk5l2kx.fsf@lister.roxen.com> (raw)
In-Reply-To: <rzqr8dh7b3g.fsf@albion.dl.ac.uk>

Dave Love <d.love@dl.ac.uk> wrote:

> > An interesting angle is if something like the following can be used
> > (although I'd consider this too a workaround rather than a solution):
> > 
> >     (if (boundp 'fido)
> >         (symbol-value 'fido))
> >     (if (fboundp 'fred)
> >         (funcall 'fred ...))
> > 
> > Someone with insight in the inner workings of the compiler can perhaps
> > advice on how effectively it manages to optimize such things.
> 
> (equal (byte-compile (lambda () (if (fboundp 'fred) (funcall 'fred))))
>        (byte-compile (lambda () (if (fboundp 'fred) (fred)))))
>   => t

So simple. ;) This is a good trick to know, but the same doesn't hold
for variables. Of course, that's no proof that the symbol-value thing
is (measurably) slower. I doubt it is.

There are still warnings that aren't addressed by these tricks,
though: The one about obsolete variables, and the one about incorrect
number of arguments (which cc-bytecomp-defun doesn't solve either).

> I think CL used such a trick, but it's not (now) effective.

What is not effective about it?

> > Anyway, this is besides the point regarding cc-bytecomp, since that
> > one is necessary to keep it working and compiling without warnings on
> > both Emacs and XEmacs.
> 
> I don't see what the real difference is between cc-mode and Gnus in
> this respect, but then I'm not maintaining cc-mode.

I've not investigated Gnus so I don't know either. Perhaps they use
symbol-value and funcall everywhere. Besides, cc-bytecomp also solves
another matter, namely to make it compile cleanly even in the presence
of an earlier version of CC Mode being loaded (another issue that is
irrelevant when it's distributed with Emacs). From the look of it,
Gnus hasn't addressed that at all.

  reply	other threads:[~2002-11-19 20:35 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <E18CrrF-0005AT-00@fencepost.gnu.org>
     [not found] ` <rzqwunberel.fsf@albion.dl.ac.uk>
2002-11-18  0:57   ` cc-vars.el Kenichi Handa
2002-11-18 19:09     ` cc-vars.el Richard Stallman
2002-11-18 19:51     ` cc-vars.el Dave Love
2002-11-18 22:15       ` cc-vars.el Martin Stjernholm
2002-11-19  1:40         ` cc-vars.el Miles Bader
2002-11-19 15:45           ` cc-vars.el Martin Stjernholm
2002-11-19 16:57             ` cc-vars.el Miles Bader
2002-11-19 21:58               ` cc-vars.el Martin Stjernholm
2002-11-20  2:22                 ` cc-vars.el Miles Bader
2002-11-20 13:58                   ` cc-vars.el Stefan Monnier
2002-11-20 15:43                     ` cc-vars.el Kim F. Storm
2002-11-20 15:01                       ` cc-vars.el Stefan Monnier
2002-11-20 16:37                         ` cc-vars.el Kim F. Storm
2002-11-24 19:32                           ` cc-vars.el Dave Love
2002-11-24 19:30                         ` cc-vars.el Dave Love
2002-11-20 21:29                     ` cc-vars.el Miles Bader
2002-11-20 21:44                       ` cc-vars.el Stefan Monnier
2002-11-22  1:51                       ` cc-vars.el Martin Stjernholm
2002-11-21 17:12                     ` cc-vars.el Richard Stallman
2002-11-21 18:55                       ` cc-vars.el Stefan Monnier
2002-11-22  2:00                         ` cc-vars.el Martin Stjernholm
2002-11-20 16:40                 ` cc-vars.el Dave Love
2002-11-20 16:35             ` cc-vars.el Dave Love
2002-11-19 16:59           ` cc-vars.el Dave Love
2002-11-20 21:14             ` cc-vars.el Richard Stallman
2002-11-24 19:33               ` cc-vars.el Dave Love
2002-11-20 21:41             ` cc-vars.el Miles Bader
2002-11-24 19:36               ` cc-vars.el Dave Love
2002-11-19  7:49         ` cc-vars.el Kai Großjohann
2002-11-19 16:55         ` cc-vars.el Dave Love
2002-11-19 20:35           ` Martin Stjernholm [this message]
2002-11-20  9:46             ` cc-vars.el Kai Großjohann
2002-11-21 17:12               ` cc-vars.el Richard Stallman
2002-11-20 16:38             ` cc-vars.el Dave Love
2002-11-18 22:17       ` cc-vars.el Stefan Monnier
2002-11-19 17:01         ` cc-vars.el Dave Love

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=5badk5l2kx.fsf@lister.roxen.com \
    --to=mast@lysator.liu.se \
    --cc=emacs-devel@gnu.org \
    --cc=handa@m17n.org \
    --cc=rms@gnu.org \
    /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 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).