From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nix Newsgroups: gmane.emacs.devel Subject: Re: CL package serious deficiencies Date: Tue, 07 Feb 2012 21:23:55 +0000 Message-ID: <87r4y6bams.fsf@spindle.srvr.nix> References: <33271707.post@talk.nabble.com> <87fwemcwlx.fsf@spindle.srvr.nix> <87zkcubbfc.fsf@spindle.srvr.nix> <87vcnibb9t.fsf@spindle.srvr.nix> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1328649846 31677 80.91.229.3 (7 Feb 2012 21:24:06 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 7 Feb 2012 21:24:06 +0000 (UTC) Cc: egnarts-ms , Stefan Monnier , Drew Adams , Emacs-devel@gnu.org To: Lennart Borgman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Feb 07 22:24:05 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RusWC-0004we-P0 for ged-emacs-devel@m.gmane.org; Tue, 07 Feb 2012 22:24:04 +0100 Original-Received: from localhost ([::1]:35478 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RusWC-0003OR-6N for ged-emacs-devel@m.gmane.org; Tue, 07 Feb 2012 16:24:04 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:40077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RusW8-0003OH-PM for Emacs-devel@gnu.org; Tue, 07 Feb 2012 16:24:02 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RusW7-0007ln-LW for Emacs-devel@gnu.org; Tue, 07 Feb 2012 16:24:00 -0500 Original-Received: from icebox.esperi.org.uk ([81.187.191.129]:38999 helo=mail.esperi.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RusW7-0007lU-98 for Emacs-devel@gnu.org; Tue, 07 Feb 2012 16:23:59 -0500 Original-Received: from esperi.org.uk (nix@spindle.srvr.nix [192.168.14.15]) by mail.esperi.org.uk (8.14.5/8.14.5) with ESMTP id q17LNtbx000694; Tue, 7 Feb 2012 21:23:55 GMT Original-Received: (from nix@localhost) by esperi.org.uk (8.14.5/8.14.5/Submit) id q17LNtwW022610; Tue, 7 Feb 2012 21:23:55 GMT Emacs: don't try this at home, kids! In-Reply-To: (Lennart Borgman's message of "Tue, 7 Feb 2012 22:12:44 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.93 (gnu/linux) X-DCC-URT-Metrics: spindle 1060; Body=5 Fuz1=5 Fuz2=5 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 81.187.191.129 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:148319 Archived-At: On 7 Feb 2012, Lennart Borgman spake thusly: > On Tue, Feb 7, 2012 at 22:10, Nix wrote: >>> But no one has said that cl.el should not be used. I have not seen any >>> problems when the instructions for its use are followed. >> >> Since those instructions amount to 'don't use it except at compile- >> time', this is not incredibly surprising. > > I think you are misundering.. ;-) -- or am I misunderstanding you... > > The code that uses cl.el must be compiled. Is that a very sever limitation? Er, yeah, it's that you can't do (require 'cl) without getting moaned at by the byte-compiler and rejected from inclusion into Emacs, a limitation true of no other elisp package in existence (not even apel, which really *did* break things back in the day, perhaps because it was last maintained in 1996). Yeah, you can do (eval-when-compile (require 'cl)) or (require 'cl-macs) but those do not do the same thing. So as a result, if one of us wants to use `cadr' in ordinary Lisp functions that are part of Emacs, we can, but if we want to use `caddr', we can't. Now does that restriction make any sense at all? I'd say it doesn't: if there are bugs preventing the whole byte-compile-cl-warn mess being dropped from bytecomp.el, then those bugs should be fixed. (Obviously, `caddr' is hardly essential -- I used it only for rhetorical purposes, becuase it is quite clear that it is no more reasonable to ban its use at runtime than it is to ban use of 'car' -- but some things in cl and especially cl-extra really are useful and pointless to reimplement: random* for example, or the extra mapping functions.) (FWIW, the *last* time I asked about this, many years ago, I was told that runtime use of cl was out of the question because it used too much memory. I presume that this argument is obsolete :) ) -- NULL && (void)