GNU bug report logs - #40688
28.0.50; Advice And ByteCompile Behavior Change

Previous Next

Package: emacs;

Reported by: "T.V Raman" <raman <at> google.com>

Date: Fri, 17 Apr 2020 20:36:01 UTC

Severity: minor

Tags: moreinfo

Found in version 28.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: "T.V Raman" <raman <at> google.com>
Cc: 40688 <at> debbugs.gnu.org
Subject: bug#40688: 28.0.50; Advice And ByteCompile Behavior Change
Date: Sun, 03 May 2020 16:42:38 -0400
> I didn't mean the -j bit in building emacs, conjecture is that emacspeak
> breaks if -j is used.

I was pointing out that Emacs's own use of `-j` to build the `lisp`
subdir indicates that it's OK to have missing dependencies on the `.elc`
files (and hence sometimes the .el file is loaded and sometimes the
`.elc`, depending on the compilation order; or even the `.el` file is
loaded while the corresponding `.elc` file is being generated).

Of course, if your `.el` files are generated by makefile rules that's
a completely different question.


        Stefan


>>> 4. As mentioned in this bug report at the outset I started seeing
>>> strange behavior (that also appeared non-deterministic across builds)
>>> where it felt like some of the advice was not defined (incidentally when
>>> the bug bit yesterday, C-h o still indicated the functions were
>>> adviced).
>>
>> If it bites again, could you try and post (to the extent possible,
>> obviously) the function name, the output of (symbol-function
>> <thefunction>) along with as much as possible a concrete and detailed
>> description of an actual call's behavior on that function where we see
>> that the advice wasn't called?
>>
>>> So wild conjecture:  Given make -j (the Makefile does impose some
>>> dependency order but not all)
>>> is it possible that things go south if something that is needed during
>>> the build of module-a.el gets byte-compiled *after* module-a.el?
>>
>> In theory, no.  I (and many other people) build Emacs's `lisp` subdir in
>> parallel, and there are basically no dependencies in the makefile to try
>> and make sure files get compiled before they're used.  We've had some
>> corner case problems with it, but all the ones I know have been fixed.
>>
>>
>>         Stefan
>>
>>
>>> Stefan Monnier <monnier <at> iro.umontreal.ca> writes:
>>>
>>>> IIUC after recompiling everything the problem disappeared.  If you
>>>> can't reproduce it any more, than I guess we can only close this
>>>> bug.
>>>>
>>>>> As an example, Module emacspeak-advice.el advices vc-next-action --- and
>>>>> this module (emacspeak-advice) is loaded early on during emacspeak
>>>>> initialization.
>>>>>
>>>>> When I later call vc-next-action during an emacs session and the
>>>>> autoload pulls in vc.el, the advice definition loaded earlier is not
>>>>> activated -- I have to explicitly reload module emacspeak-advice.
>>>>
>>>> In case you can still reproduce the problem, please show us what
>>>> `C-h o vc-next-action` tells you when you think it should have the
>>>> advice applied yet its behavior doesn't seem to be affected.
>>>>
>>>>
>>>>         Stefan
>>>>
>>





This bug report was last modified 5 years and 19 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.