Subject: bug#15888: 24.3.50; Eval-after-load eval'ed twice

From: Nicolas Goaziou <[email-masked]>
Date: Wed, 04 Dec 2013 22:35:05 +0100

Hello,

"Sebastien Vauban" <[email-masked]> writes:

> You say that opening an Org file requires first `ob-lob' before *providing*
> `org', right? [1]

Correct.

> IIUC, here are all the steps involved:
>
> 1. an Org file is opened
> 2. org.el is required -- but not yet provided at all, so loaded a first time
> 3. when loading it, it requires first extra packages; among others (via some
>    call tree), ob-lob.el -- see [1]
> 4. ob-lob.el is then loaded, and in fine provided
> 5. eval-after-load "ob-lob" is run straight away, and tries to open an Org file
> 6. org.el is hence required -- but it still is not yet provided, so loaded a
>    second time
> 7. at some point, org.el is provided for real
> 8. Eval-after-load "org" is run a first time, so are hooks
> 9. Eval-after-load "org" is run a second time, as the file has been loaded
>    twice

That's right.

> IOW, isn't the problem that the `eval-after-load' is RUN AFTER EACH `provide' of
> some lib, not after the FIRST `provide' of that lib?

It seems to be a feature. See `after-load-alist' docstring.

Regards,

-- 
Nicolas Goaziou