From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [bug?][ob-core] using remove-if Date: Mon, 29 Jul 2013 18:28:43 -0600 Message-ID: <87fvuwuc04.fsf@gmail.com> References: <87d2q07vsk.fsf@gmx.us> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46123) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V3xqn-0006t1-Gh for emacs-orgmode@gnu.org; Mon, 29 Jul 2013 20:31:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V3xqi-0004RC-Sz for emacs-orgmode@gnu.org; Mon, 29 Jul 2013 20:31:41 -0400 Received: from mail-pb0-x230.google.com ([2607:f8b0:400e:c01::230]:55562) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V3xqi-0004R7-NP for emacs-orgmode@gnu.org; Mon, 29 Jul 2013 20:31:36 -0400 Received: by mail-pb0-f48.google.com with SMTP id ma3so1718085pbc.35 for ; Mon, 29 Jul 2013 17:31:36 -0700 (PDT) In-Reply-To: <87d2q07vsk.fsf@gmx.us> (rasmus@gmx.us's message of "Tue, 30 Jul 2013 02:09:47 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Rasmus Cc: emacs-orgmode@gnu.org Rasmus writes: > Hi, > > Regarding this commit: > > commit 3142297d69f6063221215757a3ba9c74adcf3e43 > Author: Eric Schulte > Date: Fri Jul 26 11:48:51 2013 -0600. > > remove-if is introduced in ob-core.el: > > (setf (cdr (assoc param params)) > (remove-if (lambda (pair) (equal (car pair) name)) > (cdr (assoc param params)))) > (setf params (remove-if (lambda (pair) (and (equal (car pair) param) > (null (cdr pair)))) > > I personally don't care too much if Org depends on cl, but it breaks > async export since cl is usually not loaded. > > Thus, I guess it should (i) either be changed to org-remove-if or > there should be an autoload to remove-if. I don't feel very > comfortable about messing with ob-core ob-core and I don't know if > org-remove-if is a drop-in replacement of remove-if so I havne't made > a patch. > > =E2=80=93Rasmus Thanks for catching this, I've just pushed up a fix. To complain to no-one in particular for a second... The exclusion of the cl functions from Emacs packages including both functions like `remove-if', and basic macros like `flet', has one of two possible consequences. Either (1) authors work around the missing functionality by contorting the logic of their code so as to not need this functionality, or (2) the function is re-implemented with a package specific prefix and often slightly different semantics. I know I've had to do both in my own Org-mode coding, and I believe most major packages do both of these [1]. Best, Footnotes:=20 [1] ,----[M-x apropos remove-if RET] | Type RET on a type label to view its full documentation. |=20 | cl-remove-if | Function: Remove all items satisfying PREDICATE in SEQ. | Properties: autoload | cl-remove-if-not | Function: Remove all items not satisfying PREDICATE in SEQ. | Properties: autoload | ert--remove-if-not | Function: A reimplementation of `remove-if-not'. | gnus-remove-if | Function: Return a copy of SEQUENCE with all items satisfying | PREDICATE removed. | gnus-remove-if-not | Function: Return a copy of SEQUENCE with all items not satisfying | PREDICATE removed. | org-remove-if | Function: Remove everything from SEQ that fulfills PREDICATE. | org-remove-if-not | Function: Remove everything from SEQ that does not fulfill | PREDICATE. | recentf-remove-if-non-kept | Function: Remove FILENAME from the recent list, if file is not kep= t. | Properties: byte-optimizer | remove-if | Function: Remove all items satisfying PREDICATE in SEQ. | remove-if-not | Function: Remove all items not satisfying PREDICATE in SEQ. | widget-remove-if | Function: (not documented) `---- --=20 Eric Schulte http://cs.unm.edu/~eschulte PGP fingerprint: FA8D C2C3 E8A0 A749 34CD 9DCF 3C1B 8581 614C A05D