Subject: 26.0.50; Opening Mercurial-controlled file causes void function error
From: İ. Göktuğ Kayaalp <[email-masked]>
To: [email-masked]
Date: Sat, 22 Apr 2017 19:14:37 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Opening a file version-controlled under mercurial causes the following
error:

vc-hg--requirements-understood-p: Symbol’s function definition is void:
cl-set-difference

And the file is not opened.

Reproduction steps:

$ emacs -Q -file <a-hg-controlled-file>

In `vc-hg.el' `cl-lib' is required in compile time.  Requiring it in
evaluation seems to fix the problem.  Below is the patch that fixes the
problem.

8< --- begin patch --- >8

diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 5348341..37ea928 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -102,10 +102,11 @@
 ;;; Code:
 
 (eval-when-compile
-  (require 'cl-lib)
   (require 'vc)
   (require 'vc-dir))
 
+(require 'cl-lib)
+
 (declare-function vc-compilation-mode "vc-dispatcher" (backend))
 
 ;;; Customization options

8< --- end patch --- >8

In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-04-22 built on xi.bootis
Repository revision: eb52828a439f674733ba70844b795c6673733572
Windowing system distributor 'Fedora Project', version 11.0.11899901
Recent messages:
Saving file /home/g/co/GNU-Emacs/lisp/vc/vc-hg.el...
Wrote ‘/home/g/co/GNU-Emacs/lisp/vc/vc-hg.el’ (54898 characters)
Finding changes in /home/g/co/GNU-Emacs/lisp/vc/vc-hg.el...done
Saving file /home/g/co/GNU-Emacs/lisp/vc/vc-hg.el...
Wrote ‘/home/g/co/GNU-Emacs/lisp/vc/vc-hg.el’ (54840 characters)
Quit
Undo!
Mark set
Saving file /home/g/co/GNU-Emacs/lisp/vc/vc-hg.el...
Wrote ‘/home/g/co/GNU-Emacs/lisp/vc/vc-hg.el’ (54878 characters)

Configured using:
 'configure --prefix=/home/g/local --with-x-toolkit=gtk3 --with-modules
 --with-file-notification=yes --with-mailutils'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES

Important settings:
  value of $LC_MESSAGES: en_GB.UTF-8
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Shell

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message subr-x puny format-spec rfc822
mml mml-sec password-cache epa derived epg epg-config gnus-util rmail
rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils whitespace vc vc-dispatcher vc-git
diff-mode easy-mmode map seq byte-opt gv bytecomp byte-compile cconv
pcmpl-unix shell pcomplete comint ansi-color ring jka-compr find-func
thingatpt help-fns radix-tree help-mode easymenu cl-loaddefs cl-lib
vc-hg dired dired-loaddefs time-date mule-util warnings tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript case-table epa-hook jka-cmpr-hook help
simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote dbusbind inotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 145494 9482)
 (symbols 48 21718 1)
 (miscs 40 99 330)
 (strings 32 24013 4135)
 (string-bytes 1 760543)
 (vectors 16 15386)
 (vector-slots 8 488092 4593)
 (floats 8 63 292)
 (intervals 56 4203 0)
 (buffers 976 21))