GNU bug report logs - #16353
24.3.50; cl-position fails in 23.4.1

Previous Next

Package: emacs;

Reported by: joaotavora <at> gmail.com (João Távora)

Date: Sun, 5 Jan 2014 18:43:02 UTC

Severity: minor

Found in version 24.3.50

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #23 received at 16353 <at> debbugs.gnu.org (full text, mbox):

From: joaotavora <at> gmail.com (João Távora)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: Glenn Morris <rgm <at> gnu.org>, 16353 <at> debbugs.gnu.org
Subject: Re: bug#16353: 24.3.50; cl-position fails in 23.4.1
Date: Tue, 07 Jan 2014 09:21:48 +0000
Stefan Monnier <monnier <at> iro.umontreal.ca> writes:

>>>>> This is GNU Emacs 23.4.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10)
>>>>> of 2012-09-08 on trouble, modified by Debian
>>>>> Using that emacs and cl-lib-0.3.el this fails
>>>>> /usr/bin/emacs --batch -Q -l cl-lib.el \
>>>>> --eval "(princ (cl-position 2 '(1 2 3)))"
>>>> Namespace clash. cl-seq.el used to contain an internal function called
>>>> "cl-position". It was renamed to cl--position in 24.3.
>>> Indeed, thanks.  We need to adjust elpa's cl-lib.el accordingly (not
>>> sure how best to do that, tho).
>> Can it be done so that it I can still use cl-position in emacs 23.4.1?
>
> That would be best, yes.
>
>> Maybe by including in cl-lib-0.4 some byte-recompilation of the
>> cl-seq.el functions that Glenn mentions:
>
> Could be.

Can it be done without including the full definitions, e.g. via some
bytecode-changing trick? I'm asking because I could include this
workaround

> It'd be good to first get a list of the all conflicting functions.

Here's what I found

using cl-position:

   (defun remove* (cl-item cl-seq &rest cl-keys)
   (defun delete* (cl-item cl-seq &rest cl-keys)
   (defun cl-delete-duplicates (cl-seq cl-keys cl-copy)
   (defun cl-delete-duplicates (cl-seq cl-keys cl-copy)
   (defun cl-delete-duplicates (cl-seq cl-keys cl-copy)
   (defun substitute (cl-new cl-old cl-seq &rest cl-keys)
   (defun position (cl-item cl-seq &rest cl-keys)
   (defun search (cl-seq1 cl-seq2 &rest cl-keys)

these are all in cl-seq.el. using cl-adoing:
    
   (defun adjoin (cl-item cl-list &rest cl-keys)    in cl.el

using cl-delete-duplicates:

   (defun remove-duplicates (cl-seq &rest cl-keys) in cl-seq.el
   (defun delete-duplicates (cl-seq &rest cl-keys) in cl-seq.el

There are more internal functions prefixed with "cl-", but I don't think
they clash with aliases exported by cl-lib.

There's cl-macroexpand and cl-macroexpand-all, but I think these were
exported functions even back in 23.4.1.

João







This bug report was last modified 11 years and 168 days ago.

Previous Next


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