unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Artur Malabarba <bruce.connor.am@gmail.com>
Cc: 19390@debbugs.gnu.org, Dmitry Gutov <dgutov@yandex.ru>
Subject: bug#19390: 25.0.50; `package-activate' is too slow
Date: Thu, 18 Dec 2014 23:31:30 -0500	[thread overview]
Message-ID: <jwvd27gi7uw.fsf-monnier+emacsbugs@gnu.org> (raw)
In-Reply-To: <CAAdUY-JSRij9VisS-rj5LSKSDHVmdUnbLYiob1rvX68w+86krQ@mail.gmail.com> (Artur Malabarba's message of "Thu, 18 Dec 2014 17:13:31 -0200")

> `require' is only ever called as part of loading package (or doing
> some other processing).

There are a few places where we `require' inside a function that can be
called repeatedly, on the assumption that in most cases, this `require'
will be "instantaneous".  I'd rather not re-consider this
performance choice.

I'm OK with slowing down require like you suggested (that was actually
my original suggestion to handle the byte-compilation breakage during
package upgrade), but then we'd only want to do it in some specific
contexts (during byte-compilation) rather than all the time.

> When `autoload' is called, if the function in question is completely
> defined (instead of not defined or just autoloaded), `autoload' will
> check if the file it was given is a different file from the one the
> function was defined in (when we know that file).
> If it is then all is fine, if it wasn't then it loads the new file.

So we first add handling for `require', then another for `autoload',
... in the end I can't believe it can be simpler than what we have
(which has 0 cost in normal use, and a very small extra cost during
package upgrade).


        Stefan





  reply	other threads:[~2014-12-19  4:31 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-15 17:34 bug#19390: 25.0.50; `package-activate' is too slow Dmitry Gutov
     [not found] ` <handler.19390.B.14186649209005.ack@debbugs.gnu.org>
2014-12-16  0:41   ` bug#19390: Acknowledgement (25.0.50; `package-activate' is too slow) Dmitry Gutov
2014-12-16 12:32 ` bug#19390: 25.0.50; `package-activate' is too slow Dmitry Gutov
2014-12-16 13:26   ` Artur Malabarba
2014-12-16 13:42     ` Artur Malabarba
2014-12-16 14:31       ` Dmitry Gutov
2014-12-16 21:35         ` Artur Malabarba
2014-12-16 23:16           ` Stefan Monnier
2014-12-16 23:27             ` Dmitry Gutov
2014-12-16 23:55               ` Stefan Monnier
2014-12-17  0:40                 ` Artur Malabarba
2014-12-17  1:17                   ` Dmitry Gutov
2014-12-17 14:33                     ` Artur Malabarba
2014-12-17  2:41                   ` Dmitry Gutov
2014-12-17 10:47                     ` Artur Malabarba
2014-12-18  0:14                       ` Dmitry Gutov
2014-12-18  1:38                         ` Stefan Monnier
2014-12-18  2:11                           ` Artur Malabarba
2014-12-18 10:37                             ` Dmitry Gutov
2014-12-18 14:30                               ` Stefan Monnier
2014-12-18 14:47                                 ` Dmitry Gutov
2014-12-18 15:39                                   ` Artur Malabarba
2014-12-18 15:47                                     ` Artur Malabarba
2014-12-18 16:15                                       ` Dmitry Gutov
2014-12-18 17:50                                         ` Artur Malabarba
2014-12-18 17:54                                           ` Dmitry Gutov
2014-12-18 18:40                                             ` Stefan Monnier
2014-12-18 19:13                                               ` Artur Malabarba
2014-12-19  4:31                                                 ` Stefan Monnier [this message]
2014-12-19 12:08                                                   ` Artur Malabarba
2014-12-18 18:37                                       ` Stefan Monnier
2014-12-18 15:49                                     ` Dmitry Gutov
2014-12-18 16:45                                     ` Dmitry Gutov
2014-12-18 16:14                                   ` Artur Malabarba
2014-12-18 15:15                               ` Artur Malabarba
2014-12-18 15:45                                 ` Dmitry Gutov
2014-12-18 17:39                                   ` Artur Malabarba
2014-12-18 17:52                                     ` Dmitry Gutov
2014-12-18 19:01                                       ` Artur Malabarba
2014-12-18 19:49                                         ` Dmitry Gutov
2014-12-18 18:42                                   ` Stefan Monnier
2014-12-18 18:45                                     ` Dmitry Gutov
2014-12-16 16:53       ` Dmitry Gutov
2014-12-16 22:00         ` Artur Malabarba
2014-12-17  1:05           ` Dmitry Gutov
2014-12-16 23:19         ` Stefan Monnier
2014-12-16 23:40           ` Dmitry Gutov
2014-12-16 23:56             ` Stefan Monnier

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=jwvd27gi7uw.fsf-monnier+emacsbugs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=19390@debbugs.gnu.org \
    --cc=bruce.connor.am@gmail.com \
    --cc=dgutov@yandex.ru \
    /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).