From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: storm@cua.dk (Kim F. Storm) Newsgroups: gmane.emacs.gnus.general,gmane.emacs.devel Subject: Re: require inside functions. (was: Changes in calendar/time-date.el) Date: Thu, 07 Apr 2005 23:45:31 +0200 Message-ID: References: <871x9w9dkn.fsf@xs4all.nl> <87mzsezu5f.fsf@xs4all.nl> <87hdimzou0.fsf@xs4all.nl> <87ll7uwy6m.fsf_-_@xs4all.nl> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1112910675 28999 80.91.229.2 (7 Apr 2005 21:51:15 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 7 Apr 2005 21:51:15 +0000 (UTC) Cc: emacs-devel@gnu.org, ding@gnus.org, Reiner Steib , miles@gnu.org Original-X-From: ding-owner+M8640@lists.math.uh.edu Thu Apr 07 23:51:13 2005 Return-path: Original-Received: from malifon.math.uh.edu ([129.7.128.13]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DJets-0001xy-LJ for ding-account@gmane.org; Thu, 07 Apr 2005 23:50:56 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu ident=lists) by malifon.math.uh.edu with smtp (Exim 3.20 #1) id 1DJepp-0001Ey-00; Thu, 07 Apr 2005 16:46:45 -0500 Original-Received: from util2.math.uh.edu ([129.7.128.23]) by malifon.math.uh.edu with esmtp (Exim 3.20 #1) id 1DJepk-0001Et-00 for ding@lists.math.uh.edu; Thu, 07 Apr 2005 16:46:40 -0500 Original-Received: from quimby.gnus.org ([80.91.224.244]) by util2.math.uh.edu with esmtp (Exim 4.30) id 1DJeph-0005AJ-4G for ding@lists.math.uh.edu; Thu, 07 Apr 2005 16:46:37 -0500 Original-Received: from pfepb.post.tele.dk ([195.41.46.236]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1DJeor-0004nV-00 for ; Thu, 07 Apr 2005 23:45:45 +0200 Original-Received: from kfs-l.imdomain.dk.cua.dk (0x503e2644.bynxx3.adsl-dhcp.tele.dk [80.62.38.68]) by pfepb.post.tele.dk (Postfix) with SMTP id 303AF5EE039; Thu, 7 Apr 2005 23:45:45 +0200 (CEST) Original-To: Lute Kamstra In-Reply-To: <87ll7uwy6m.fsf_-_@xs4all.nl> (Lute Kamstra's message of "Thu, 07 Apr 2005 14:47:45 +0200") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-Spam-Score: -4.9 (----) Precedence: bulk Original-Sender: ding-owner@lists.math.uh.edu Xref: news.gmane.org gmane.emacs.gnus.general:60113 gmane.emacs.devel:35714 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:35714 Lute Kamstra writes: > storm@cua.dk (Kim F. Storm) writes: > > [...] > >> Putting require into a function _does_ slow it down. > > I decided to test this. The speed effect is really minimal,=20 I guess it depends on how deep down in the require alist, the symbol is located. I.e. if the package was not loaded before you run your function, it will be first in the list, and so it doesn't have much impact. > (require 'ft) only loads a file if 'ft is not in features. However, > it unconditionally adds '(require . ft) to current-load-list. If you > call a function with require a million times, this eats up 16 MB of > memory. The problem seems to be that current-load-list is never truncated. But I don't quite understand what current-load-list is good for (outside the byte compiler). > > Should this be fixed somehow? I would think so... On my system, current-load-list contains the following after reading a few = mails and doing M-x grep a few times. current-load-list ((require . parse-time) (require . compile) (require . compile) (require . = parse-time) (require . parse-time) (require . parse-time) (require . parse-= time) (require . compile) (require . parse-time) (require . compile) (requi= re . parse-time) (require . parse-time) (require . compile) (require . pars= e-time) (require . compile) (require . parse-time) (require . parse-time) (= require . parse-time) (require . parse-time) (require . gnus-sum) (require = sort) (require . sort) (require . sort) (require . sort) (require . sort) = (require . sort) (require . sort) (require . sort) (require . sort) (requir= e . sort) (require . sort) (require . sort) (require . sort) (require . sor= t) (require . sort) (require . sort) (require . sort) (require . sort) (req= uire . sort) (require . sort) (require . sort) (require . nnml) (require . = message) (require . message) (require . message) (require . message) (requi= re . message) (require . message) (require . message) (require . message) (= require . message) (require . message) (require . message) (require . messa= ge) (require . mail-utils) (require . mail-utils) (require . message) (requ= ire . message) (require . message) (require . message) (require . message) = (require . message) (require . message) (require . message) (require . mess= age) (require . message) (require . message) (require . parse-time) (requir= e . parse-time) (require . mail-utils) (require . parse-time) (require . pa= rse-time) (require . gnus-sum) (defun . message-make-address) (defun . mess= age-make-sender) (require . parse-time) (require . parse-time) (require . t= ool-bar) (require . gnus-sum) (require . vc-cvs) (require . parse-time) (re= quire . sort) (require . sort) (require . tool-bar) (require . nnmail) (req= uire . nnmail) (require . nndoc) (require . nnmail) (require . nnmail) (req= uire . parse-time) (require . nnmail) (require . nnfolder) (defun . gnus-by= te-compile) (require . bytecomp) (require . byte-optimize) (require . nnml)= (require . nnmail) (require . nnmail) (require . nndraft) (require . nntp)= (provide . make-network-process)) --=20 Kim F. Storm http://www.cua.dk