From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: compilation issues of new export framework Date: Sun, 10 Feb 2013 13:53:19 +0100 Message-ID: <87k3qgfhz4.fsf@gmail.com> References: <876229nrxf.fsf@gmail.com> <87a9rd3odf.fsf@Rainer.invalid> <87y5ex5rwa.fsf_-_@Rainer.invalid> <877gmhs7f4.fsf@gmail.com> <87txpko3cr.fsf@Rainer.invalid> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:46515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U4WPa-0003l7-Q9 for emacs-orgmode@gnu.org; Sun, 10 Feb 2013 07:53:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U4WPZ-00073d-4b for emacs-orgmode@gnu.org; Sun, 10 Feb 2013 07:53:38 -0500 Received: from mail-wg0-f46.google.com ([74.125.82.46]:60225) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U4WPY-00073W-UA for emacs-orgmode@gnu.org; Sun, 10 Feb 2013 07:53:37 -0500 Received: by mail-wg0-f46.google.com with SMTP id fg15so3987842wgb.1 for ; Sun, 10 Feb 2013 04:53:36 -0800 (PST) In-Reply-To: <87txpko3cr.fsf@Rainer.invalid> (Achim Gratz's message of "Sun, 10 Feb 2013 11:44:20 +0100") 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 Achim Gratz writes: > It comes from the two autoloads, or probably only the second one as the > first is later declare-function'ed anyway. If you declare these, then > the defsubst get sometimes compiled as function calls and sometimes as > inlined functions (the normal mode of compilation inlines them). Strange, these autoloads were already there before the merge. > If instead you really want them always replaced with the definition of > the defsubst (on the assumption that this is indeed faster than a > function call or permits better optimization by the bytecompiler), then > these would need to be moved to org.el and their declarations removed. Speed is the whole point, indeed. A quick profiling with and without defsubst gives me: | defsubst | org-element-parse-buffer | 10 | 16.252699 | 1.6252699 | | defun | org-element-parse-buffer | 10 | 19.812426 | 1.9812425999 | It is about 20 % faster. > Alternatively the defsubsts could go into a separate file that is then > required from both org.el and org-element.el None of these options solve > the larger problem of the circular dependencies. Moving `org-element-type' and al. into org.el would be out of context. We may be able to require org-element from the beginning of org.el, but I think there's some serious work involved. > PS: > If compiled single, four Babel tests fail; three of them with an > "(invalid-function org-export-with-buffer-copy)". The function it > complains about is actually a macro in ox.el that is used in > org-export-as before its definition. Not cool, it must be moved before > org-export-as. The tests then pass with a single-compiled version of > org. Fixed. Thank you. Regards, -- Nicolas Goaziou