[ESS] ess-16.10 / Error 2

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Tue Jan 10 09:11:31 CET 2017


>>>>> Eric Lindblad via ESS-help <ess-help using r-project.org>
>>>>>     on Mon, 9 Jan 2017 21:36:40 +0000 writes:

    > Dear Martin Mächler,
    > System: Slackware Linux (version 14.0)
    > CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
    > GNU Emacs 24.2.1

    >> Your emacs version 24.2 (2012)  is relatively old.
    >> The oldest version I have had access relatively quickly, is 24.3
    >> and if I type
    >> C-h f  defvar-local

    >> there, I get a "positive" result.

    >> What happens if you start emacs and ask for  'defvar-local' (as
    >> I did above)?

    > Describe function: defvar-local [No match]

ok, i.e., "not present yet in that version of emacs"

    > Running 'make' again after the patch was applied resulted in the following output.

    > sh-4.2$ cd ess-16.10
    > sh-4.2$ make
    > cd etc; make all
    > make[1]: Entering directory `/home/eric/ess-16.10/etc'
    > make[1]: Nothing to be done for `all'.
    > make[1]: Leaving directory `/home/eric/ess-16.10/etc'
    > cd lisp; make all
    > make[1]: Entering directory `/home/eric/ess-16.10/lisp'
    > emacs -batch -no-site-file -no-init-file -l ./ess-comp.el -f batch-byte-compile ess-custom.el
    > loading 'ess-compat ..
    > loading 'ess-custom ..
    > loading 'ess ..
    > loading 'ess-site ..
    > [ess-site:] ess-lisp-directory = '/home/eric/ess-16.10/lisp'
    > [ess-site:] require 'ess   *ITSELF* ...
    > [ess-site:] .. after requiring 'ess ...
    > [ess-site:] Before requiring dialect 'ess-*-d ....
    > [ess-site:] require 'ess-r-d ...
    > [ess-r-d:] (require 'ess-s-l)
    > [ess-s-l:] (def** ) only ...
    > Cannot open load file: cl-lib
    > make[1]: *** [ess-custom.elc] Error 255
    > make[1]: Leaving directory `/home/eric/ess-16.10/lisp'
    > make: *** [all] Error 2
    > sh-4.2$  

    > Checking the emacs-lisp directory it appears that cl-lib.el was not included in version 24.2.1, though it's presence is noted in emacs-24.3.



    > sh-4.2$ ls /usr/share/emacs/24.2/lisp/emacs-lisp/cl*
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-extra.el.gz
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-extra.elc
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-indent.el.gz
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-indent.elc
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-loaddefs.el
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-macs.el.gz
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-macs.elc
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-seq.el.gz
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-seq.elc
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl-specs.el
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl.el.gz
    > /usr/share/emacs/24.2/lisp/emacs-lisp/cl.elc
    > sh-4.2$ 

I see, thank you for checking.

The cl-* files -- bringing a subset(?) of common lisp to emacs
lisp, have been part of emacs for a long while but seem to have
been reorganized  in the transition 24.2 --> 24.3.

OTOH, almost always we have  (require 'cl) in the ESS sources,
with the one exception where we use 'cl-lib.

Let's try one more patch -- Eric, please :

--- a/lisp/ess-r-syntax.el
+++ b/lisp/ess-r-syntax.el
@@ -28,7 +28,8 @@
 ;;; Code:
 
 (require 'regexp-opt)
-(require 'cl-lib)
+(unless (require 'cl-lib nil 'no-error)
+  (require 'cl)); as 'cl-lib is not yet in emacs 24.2
 
 

 ;;*;; Utils




More information about the ESS-help mailing list