GNU bug report logs -
#56746
29.0.50; Probable bug with native compilation
Previous Next
Reported by: Kenneth Stuart <kstuart <at> hotmail.co.uk>
Date: Sun, 24 Jul 2022 16:46:01 UTC
Severity: normal
Found in version 29.0.50
Done: Andrea Corallo <acorallo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #20 received at 56746 <at> debbugs.gnu.org (full text, mbox):
Kenneth Stuart <kstuart <at> hotmail.co.uk> writes:
> Andrea Corallo <akrl <at> sdf.org> writes:
>
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>
>>>> From: Kenneth Stuart <kstuart <at> hotmail.co.uk>
>>>> Date: Sun, 24 Jul 2022 15:16:42 +0100
>>>>
>>>> Note that I'm not using 'emacs -Q' as a later version of Org is
>>>> required, however the issue strongly appears to be with emacs native
>>>> compilation as it does not occur from a build without native
>>>> compilation.
>>>>
>>>> org-mode commit: 127e7fee4959ceb33dba2e442b72189f3c25eaa1
>>>>
>>>> Steps to reproduce:
>>>>
>>>> 1. Create an org-mode buffer and insert a clocktable dynamic block with a
>>>> `tstart` option.
>>>>
>>>> #+BEGIN: clocktable :scope file :maxlevel 2 :tstart "2020-01-01"
>>>> #+END:
>>>>
>>>> 2. Evaluate the clocktable (C-c C-c on the #+BEGIN line)
>>>>
>>>> Result: `Invalid function: org-encode-time`
>>>> Expected: No error, clocktable updated successfully
>>>>
>>>> Notes:
>>>>
>>>> References:
>>>> https://mail.gnu.org/archive/html/emacs-orgmode/2022-07/msg00738.html
>>>> https://mail.gnu.org/archive/html/emacs-orgmode/2022-07/msg00696.html
>>>>
>>>> In early April Org introduced a new macro `org-encode-time` which is
>>>> used in the `let` special form of function `org-matcher-time`
>>>>
>>>> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/tree/lisp/org-macs.el#n1395
>>>> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/tree/lisp/org-macs.el#n1463
>>>>
>>>> Function `org-matcher-time` is used by the clocktable dynamic block
>>>> options, for example adding a `tstart` option and evaluation the
>>>> clocktable emits the error "Invalid function: org-encode-time".
>>>>
>>>> If then going to the source for `org-matcher-time` and evaluating the
>>>> defun, the clocktable can then be evaluated without error.
>>>>
>>>> As previously stated this issue does not occur when not using native
>>>> compilation.
>>>
>>> Andrea, could you please look into this bug report? It sounds like
>>> 'defmacro' in a conditional code is mis-compiled somehow?
>>
>> I'm currently on holiday so I've only time to check the mails and reply
>> when necessary. I won't have time to look into this before next week
>> *but*... if it's a macro issue it might be some missing require in the
>> org code, we have seen this kind of issue is the most common.
>>
>> Is this org async compiled? If so Kenneth have we verifed the emitted
>> warnings?
>>
>> Thanks!
>>
>> Andrea
>
> During async compile there are a couple of warnings emitted:
>
> In end of data:
> org-macs.el:1463:29: Warning: the function ‘org-encode-time’ is not known to be defined.
> org-macs.el:1361:10: Warning: the function ‘org-time-string-to-seconds’ is not known to be defined.
Nice, those are clear markers of this issue.
> However org-encode-time is earlier defined in org-macs.el (within 'if' statement).
Okay, I can't read the code now but I guess should be easy to
investigate why during async compilation this 'if' is not triggered.
> Also interesting, if I touch org-macs.el and synchronously compile, I see no issue:
This is because compiling synchronously the definition of those macros
is most likely loaded and already present in the environment.
Andrea
This bug report was last modified 1 year and 345 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.