GNU bug report logs - #20149
Cannot byte-compile 'undo-tree' since commit 801eda8a2

Previous Next

Package: emacs;

Reported by: Vladimir Lomov <lomov.vl <at> gmail.com>

Date: Fri, 20 Mar 2015 05:16:02 UTC

Severity: normal

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: Tassilo Horn <tsdh <at> gnu.org>
To: Vladimir Lomov <lomov.vl <at> gmail.com>
Cc: 20149 <at> debbugs.gnu.org
Subject: bug#20149: Cannot byte-compile 'undo-tree' since commit 801eda8a2
Date: Fri, 20 Mar 2015 09:56:38 +0100
Vladimir Lomov <lomov.vl <at> 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 <at> 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.

undo-tree is here: http://www.dr-qubit.org/git/undo-tree.git

The definition of the constructor is this:

--8<---------------cut here---------------start------------->8---
(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)
--8<---------------cut here---------------end--------------->8---

The error location (which looks strange to me) is this:

--8<---------------cut here---------------start------------->8---
(defun undo-tree-register-data-p (data)  ;; <== HERE
  (and (vectorp data)
       (= (length data) 2)
       (undo-tree-node-p (undo-tree-register-data-node data))))
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo




This bug report was last modified 10 years and 69 days ago.

Previous Next


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