From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.bugs Subject: bug#25627: 25.1; `help-make-xrefs' loads `cl-extra.el' now Date: Tue, 07 Feb 2017 22:29:36 +0000 Message-ID: References: <82c8d359-fd05-4bff-9dba-29d2738d435d@default> <87d1euolzv.fsf@users.sourceforge.net> <5f457952-82ca-4a77-8061-1b2e366fcfb2@default> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a113ac6b61bcb1d0547f849e8 X-Trace: blaine.gmane.org 1486506621 28786 195.159.176.226 (7 Feb 2017 22:30:21 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 7 Feb 2017 22:30:21 +0000 (UTC) Cc: 25627@debbugs.gnu.org To: Drew Adams , npostavs@users.sourceforge.net Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Feb 07 23:30:14 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbEH4-0006vP-Bb for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Feb 2017 23:30:10 +0100 Original-Received: from localhost ([::1]:56717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbEHA-0000K0-1G for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Feb 2017 17:30:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cbEH0-0000GY-9L for bug-gnu-emacs@gnu.org; Tue, 07 Feb 2017 17:30:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cbEGx-0007hP-5b for bug-gnu-emacs@gnu.org; Tue, 07 Feb 2017 17:30:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:32933) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cbEGx-0007h9-2U for bug-gnu-emacs@gnu.org; Tue, 07 Feb 2017 17:30:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cbEGw-00057r-Lj for bug-gnu-emacs@gnu.org; Tue, 07 Feb 2017 17:30:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Philipp Stephani Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 07 Feb 2017 22:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25627 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 25627-submit@debbugs.gnu.org id=B25627.148650659619670 (code B ref 25627); Tue, 07 Feb 2017 22:30:02 +0000 Original-Received: (at 25627) by debbugs.gnu.org; 7 Feb 2017 22:29:56 +0000 Original-Received: from localhost ([127.0.0.1]:59365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbEGp-00057C-Ne for submit@debbugs.gnu.org; Tue, 07 Feb 2017 17:29:55 -0500 Original-Received: from mail-oi0-f53.google.com ([209.85.218.53]:36529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbEGn-00056y-85 for 25627@debbugs.gnu.org; Tue, 07 Feb 2017 17:29:53 -0500 Original-Received: by mail-oi0-f53.google.com with SMTP id u143so73232457oif.3 for <25627@debbugs.gnu.org>; Tue, 07 Feb 2017 14:29:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=l85n2ghD7O9ksGwHJU7Ad4O6c31UDtxO0AWi90PNBYs=; b=FeSVeJjbYbko/HWMwZGR9TuQLNGdYjAsN2e5w7ykw2qalEKu5vASvXjoKz5E6MTcSN nKsQsqlNF4PEsgs/joecYtmHueW6LA5DA/ixRRXoSai0P688jehXFQdINOwfDQnQSOXo lKVVCsmkQHcXi2kMcFbYFhOBz2x4eCDfolMkM4yq6z5toDrtOU4glilHWvSYIkkH4v5p 18NYxjwGxEJNXNqx5Fwruj4ypjRvt171Hm4SWMsU2Upx6EsVuyyynSDWD1svMNosLdRI lNaMFitBPxFisVtSJyxf7f7f7YTanDhHjp4jY/GQk2tj930I0wn4Pb5udhjHFuL00cuh +6Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=l85n2ghD7O9ksGwHJU7Ad4O6c31UDtxO0AWi90PNBYs=; b=FC3r51DYDoxBXpiwyQLblpskD6NZBinIrIzfEaGgJOKV41tzOhlB06OQ9uQSp6JvxC HoyKTx85U8ToZdw/Pkwjt4Wj0WmvcwbuxEhCZdqHMSo0KcPKjB2hUPfPi125gwVxIDiX K0dezECaWXQGlEu+yDo3bRPXZuomGAikxjDhrxtqbRALzmMSCJkni3tHtgtBA7BgN5/s j4y48pAYpvRQiGRLC133E9KFLLFHp6AbDyLxBXZgnArX2pnoIXSJGyrUqbhWKXXjUnA1 8kRKp265q5Dy2nOsc/XsfmNhCFuP88+qRwXyz9tmsmS7QF3rEmUWFhTcCLxBFOF+vkZk dtTw== X-Gm-Message-State: AMke39m/7xwJMkrdey2MQKyMP8HaACpnZuD44XWxCtPjKLibOy0HUED5VZQmFw3G9EekO7jegM1VsSP+89rFWg== X-Received: by 10.202.87.211 with SMTP id l202mr8337565oib.112.1486506587570; Tue, 07 Feb 2017 14:29:47 -0800 (PST) In-Reply-To: <5f457952-82ca-4a77-8061-1b2e366fcfb2@default> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:129104 Archived-At: --001a113ac6b61bcb1d0547f849e8 Content-Type: text/plain; charset=UTF-8 Drew Adams schrieb am Di., 7. Feb. 2017 um 03:23 Uhr: > > > I thought that the point of creating `cl-lib.el' was to give people a > > > library of the most-used CL constructs and still let them avoid loading > > > all of `cl.el'. If we are, in effect, loading `cl-extra.el' now nearly > > > by default then what's the point of separating out `cl-lib.el'? > > > > AFAIK, the point of cl-lib is to have the CL constructs in a separate > > namespace, so that loading cl-lib doesn't change the semantics of > > existing code that might not expect it (unlike cl.el). > > What part of `cl.el' changes the semantics of existing [non-cl.el] > code? Loading cl.el modifies the observable behavior of dolist. For example, insert the following into /tmp/dolist.el: ;;; -*- lexical-binding: t; -*- (eval-when-compile (require 'cl-lib)) (message "Without cl.el") (cl-dolist (i '(1 2 3)) (dolist (j '(a b c)) (message "i = %s, j = %s" i j) (when (= i 2) (cl-return)))) (message "\nWith cl.el") (eval-when-compile (require 'cl)) (cl-dolist (i '(1 2 3)) (dolist (j '(a b c)) (message "i = %s, j = %s" i j) (when (= i 2) (cl-return)))) And then run: $ emacs -Q -batch -l /tmp/dolist.el Without cl.el i = 1, j = a i = 1, j = b i = 1, j = c i = 2, j = a With cl.el i = 1, j = a i = 1, j = b i = 1, j = c i = 2, j = a i = 3, j = a i = 3, j = b i = 3, j = c --001a113ac6b61bcb1d0547f849e8 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Drew A= dams <drew.adams@oracle.com= > schrieb am Di., 7. Feb. 2017 um 03:23=C2=A0Uhr:
> > I thought that the point of creating `cl-lib.el= ' was to give people a
> > library of the most-used CL constructs and still let them avoid l= oading
> > all of `cl.el'.=C2=A0 If we are, in effect, loading `cl-extra= .el' now nearly
> > by default then what's the point of separating out `cl-lib.el= '?
>
> AFAIK, the point of cl-lib is to have the CL constructs in a separate<= br class=3D"gmail_msg"> > namespace, so that loading cl-lib doesn't change the semantics of<= br class=3D"gmail_msg"> > existing code that might not expect it (unlike cl.el).

What part of `cl.el' changes the semantics of existing [non-cl.el]
code?

Loading cl.el modifies the observable= behavior of dolist.=C2=A0 For example, insert the following into /tmp/doli= st.el:

;;; -*- lexical-binding: t; -*-
(= eval-when-compile (require 'cl-lib))
(message "Witho= ut cl.el")
(cl-dolist (i '(1 2 3))
=C2= =A0 (dolist (j '(a b c))
=C2=A0 =C2=A0 (message "i =3D %= s, j =3D %s" i j)
=C2=A0 =C2=A0 (when (=3D i 2) (cl-return))= ))
(message "\nWith cl.el")
(eval-when-co= mpile (require 'cl))
(cl-dolist (i '(1 2 3))
=C2=A0 (dolist (j '(a b c))
=C2=A0 =C2=A0 (message &quo= t;i =3D %s, j =3D %s" i j)
=C2=A0 =C2=A0 (when (=3D i 2) (cl= -return))))

And then run:

$ emacs -Q -batch -l /tmp/dolist.el=C2=A0
Without cl.el
i =3D 1, j =3D a
i =3D 1, j =3D b
i =3D 1, j =3D= c
i =3D 2, j =3D a

With cl.el
i =3D 1, j =3D a
i =3D 1, j =3D b
i =3D 1, j =3D c
i =3D 2, j =3D a
i =3D 3, j =3D a
i =3D 3, j =3D= b
i =3D 3, j =3D c
--001a113ac6b61bcb1d0547f849e8--