From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: missing autoload cookies for defcustom? Date: Sun, 9 Oct 2011 17:50:37 +0200 Message-ID: <325572BB-9F81-4717-88B1-BD6CE033BDDF@gmail.com> References: <87lisub39r.fsf@Rainer.invalid> Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:43502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RCveM-0000bb-Dy for emacs-orgmode@gnu.org; Sun, 09 Oct 2011 11:50:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RCveK-0006LF-Qd for emacs-orgmode@gnu.org; Sun, 09 Oct 2011 11:50:50 -0400 Received: from mail-wy0-f169.google.com ([74.125.82.169]:59306) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RCveK-0006L7-9p for emacs-orgmode@gnu.org; Sun, 09 Oct 2011 11:50:48 -0400 Received: by wyh15 with SMTP id 15so2208491wyh.0 for ; Sun, 09 Oct 2011 08:50:47 -0700 (PDT) In-Reply-To: <87lisub39r.fsf@Rainer.invalid> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Achim Gratz Cc: emacs-orgmode@gnu.org On 9.10.2011, at 17:20, Achim Gratz wrote: >=20 > While playing aroud with different configurations I've noticed that = you > can't customize some variables unless you've loaded org first and then > used a function from the file where they are defined. It's of course = a > bit difficult to know which function to use or file to load when all = you > want to do is customizing a variable that you've read about in the > manual or on Worg. Yes, this is an issue. >=20 > It seems that all defcustom forms that are not defined in org.el (and > maybe even those) should get an autoload cookie so that they are > collected into org-install.el and Emacs knows where to find them even = if > their source file had not been loaded yet. The following perl > invocation fixes all occurences of defcustom that aren't already = having > an autoload cookie set. >=20 > perl -i -p \ > -e 'BEGIN{$o=3D0;}' \ > -e 'if ( /^\s*\(defcustom/ ) {' \ > -e ' print ";;;###autoload\n" unless $o;' \ > -e '} else {' \ > -e ' $o=3D/^;;;###autoload/;' \ > -e '}' \ > lisp/*.el >=20 > (the \s* in the regex is for a mis-indented item in org-feed.el) >=20 > This should produce the following diffstat on current master: >=20 > lisp/ob-exp.el | 1 + > lisp/ob-js.el | 1 + > lisp/ob-lisp.el | 1 + > lisp/ob-lob.el | 1 + > lisp/ob-plantuml.el | 1 + > lisp/ob-scheme.el | 1 + > lisp/ob-sh.el | 1 + > lisp/ob-tangle.el | 6 ++ > lisp/ob.el | 2 + > lisp/org-agenda.el | 94 +++++++++++++++++++++ > lisp/org-archive.el | 7 ++ > lisp/org-ascii.el | 5 + > lisp/org-attach.el | 7 ++ > lisp/org-bbdb.el | 4 + > lisp/org-beamer.el | 9 ++ > lisp/org-bibtex.el | 9 ++ > lisp/org-capture.el | 3 + > lisp/org-clock.el | 26 ++++++ > lisp/org-crypt.el | 3 + > lisp/org-ctags.el | 3 + > lisp/org-docbook.el | 16 ++++ > lisp/org-entities.el | 2 + > lisp/org-exp-blocks.el | 4 + > lisp/org-exp.el | 43 ++++++++++ > lisp/org-faces.el | 8 ++ > lisp/org-feed.el | 7 ++ > lisp/org-footnote.el | 6 ++ > lisp/org-freemind.el | 2 + > lisp/org-gnus.el | 2 + > lisp/org-habit.el | 7 ++ > lisp/org-html.el | 35 ++++++++ > lisp/org-icalendar.el | 16 ++++ > lisp/org-id.el | 8 ++ > lisp/org-indent.el | 4 + > lisp/org-inlinetask.el | 3 + > lisp/org-jsinfo.el | 3 + > lisp/org-latex.el | 37 +++++++++ > lisp/org-list.el | 14 +++ > lisp/org-mac-message.el | 1 + > lisp/org-mew.el | 1 + > lisp/org-mhe.el | 1 + > lisp/org-mobile.el | 13 +++ > lisp/org-mouse.el | 2 + > lisp/org-protocol.el | 4 + > lisp/org-publish.el | 11 +++ > lisp/org-remember.el | 10 +++ > lisp/org-src.el | 9 ++ > lisp/org-table.el | 21 +++++ > lisp/org-taskjuggler.el | 8 ++ > lisp/org-timer.el | 2 + > lisp/org-wl.el | 6 ++ > lisp/org.el | 207 = +++++++++++++++++++++++++++++++++++++++++++++++ > 52 files changed, 698 insertions(+), 0 deletions(-) >=20 > This is obviously quite heavy-handed and there is vocal opposition = among > the Emacs maintainers towards autoloading defcustoms. While I partly > understand their rationale, I don't think it applies to org-mode = (these > autoloads only become effective when org-install is loaded). This is not correct for Org when it is distributed with Emacs. Emacs builds its own autoload files, and it would pull in all these = defcustoms. The work-around Org itself provides is to provide a command to load all the autolod files, so that then, the defcustoms will be available. The function is `org-require-autoloaded-modules'. Also, if you run `M-x org-customize', this will happen automatically. Maybe we just need to document this in a good place? - Carsten > Also, I > don't really see what the alternative should be, unless all those > defcustoms would be moved into separate files that would then be > required by org-install (I'm not suggesting to do that, BTW). Also it > appears that there is no way to autoload a defgroup form, so that one > would need to be handled in a different way, maybe by moving all > defgroups into org.el. Thoughts? >=20 >=20 > Regards, > Achim. > --=20 > +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ >=20 > SD adaptations for KORG EX-800 and Poly-800MkII V0.9: > http://Synth.Stromeko.net/Downloads.html#KorgSDada >=20 >=20