[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20149: Cannot byte-compile 'undo-tree' since commit 801eda8a2
From: |
Tassilo Horn |
Subject: |
bug#20149: Cannot byte-compile 'undo-tree' since commit 801eda8a2 |
Date: |
Fri, 20 Mar 2015 12:06:53 +0100 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux) |
Tassilo Horn <tsdh@gnu.org> writes:
> Vladimir Lomov <lomov.vl@gmail.com> writes:
>
>> In undo-tree-update-menu-bar:
>> undo-tree.el:1232:7:Warning: reference to free variable `undo-tree-mode'
>> undo-tree.el:1481:1:Error: Symbol's function definition is void:
>> undo-tree-make-node
>>
>> I tracked down to the commit when Emacs was able to compile the
>> 'undo-tree' package, this is commit f925fc93 but starting from next
>> commit, 801eda8a2, the package isn't byte-compiled. Actually, I wasn't
>> able to compile Emacs taking source from commit 801eda8a2 and next three
>> ones.
>>
>>> Could you please verify that compiling undo-tree works again with the
>>> current emacs git version? If so, feel free to close this bug by
>>> replying to 20149-done@debbugs.gnu.org.
>>
>> I did fresh Emacs build (commit 395a76a) and I see the same message when
>> byte-compile 'undo-tree' package.
>
> Ok, I see, and I confirm the compile error. `undo-tree-make-node' is an
> undo-tree-node constructor. So it seems to be another problem with
> Stefan's latest cl-defstruct changes. I've added him to Cc.
Ups, of course I didn't. ;-) So now he is.
> undo-tree is here: http://www.dr-qubit.org/git/undo-tree.git
>
> The definition of the constructor is this:
>
> (defstruct
> (undo-tree-node
> (:type vector) ; create unnamed struct
> (:constructor nil)
> (:constructor undo-tree-make-node
> (previous undo
> &optional redo
> &aux
> (timestamp (current-time))
> (branch 0)))
> (:constructor undo-tree-make-node-backwards
> (next-node undo
> &optional redo
> &aux
> (next (list next-node))
> (timestamp (current-time))
> (branch 0)))
> (:copier nil))
> previous next undo redo timestamp branch meta-data)
>
>
> The error location (which looks strange to me) is this:
>
> (defun undo-tree-register-data-p (data) ;; <== HERE
> (and (vectorp data)
> (= (length data) 2)
> (undo-tree-node-p (undo-tree-register-data-node data))))
>
> Bye,
> Tassilo