From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Josh Newsgroups: gmane.emacs.devel Subject: Re: About `--' (was Re: filenotify.el) Date: Thu, 27 Jun 2013 16:19:39 -0700 Message-ID: References: <87d2ra9z4x.fsf@gmx.de> <1383316.4Bc292dOgY@descartes> <87vc52yq04.fsf@gmx.de> <4199085.Bycd8r9Vun@descartes> <8761x12x4k.fsf@gmx.de> <878v1x71lb.fsf_-_@rosalinde.fritz.box> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: ger.gmane.org 1372375214 25038 80.91.229.3 (27 Jun 2013 23:20:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 27 Jun 2013 23:20:14 +0000 (UTC) Cc: =?ISO-8859-1?Q?R=FCdiger_Sonderfeld?= , Michael Albinus , emacs-devel@gnu.org To: Stephen Berman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 28 01:20:16 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UsLU7-0001vS-2P for ged-emacs-devel@m.gmane.org; Fri, 28 Jun 2013 01:20:15 +0200 Original-Received: from localhost ([::1]:56629 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsLU6-0006VC-In for ged-emacs-devel@m.gmane.org; Thu, 27 Jun 2013 19:20:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55035) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsLU3-0006UG-K1 for emacs-devel@gnu.org; Thu, 27 Jun 2013 19:20:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UsLU2-0000QH-E6 for emacs-devel@gnu.org; Thu, 27 Jun 2013 19:20:11 -0400 Original-Received: from mail-qc0-f181.google.com ([209.85.216.181]:53790) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UsLU2-0000QB-AD for emacs-devel@gnu.org; Thu, 27 Jun 2013 19:20:10 -0400 Original-Received: by mail-qc0-f181.google.com with SMTP id u12so941148qcx.26 for ; Thu, 27 Jun 2013 16:20:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :x-gm-message-state; bh=JHnEOf5R+5LlkUjQhKP9Stokyli1c7TrnYNWzcAItCI=; b=Bi2yiAs48MZVPR+XBi1SEbrct6R4MDnf5IjqO9OdugW7K1h1mXFNx4uitGR8bS1mlk KcA9ldjgefgXncR/AE/G//YWXO9ZM9wqfSdKj/o5dangIAfulrOVABvvKIk6TaJYoQMN T4g7+LioHBQ/Ye4+tlrjJcNvcZkw4mMjeA0xhi2BLlulvWOvYjvX+wdJmVrFjf+WX9JN ++lmcsnTHRDc+NYRzn3wv6ve5dnGR83d5qn0DF7FzLBoVwnuh7hkyuVNjn5XLXNYHyb6 QqV2sQADWI0h0Ob7jhCqc9yEIDcAwpzWgPqfISxhRXLE5LK7Dweev2AsFPmESIKdOloR LNEA== X-Received: by 10.224.25.76 with SMTP id y12mr14607629qab.45.1372375209610; Thu, 27 Jun 2013 16:20:09 -0700 (PDT) Original-Received: by 10.49.17.136 with HTTP; Thu, 27 Jun 2013 16:19:39 -0700 (PDT) In-Reply-To: <878v1x71lb.fsf_-_@rosalinde.fritz.box> X-Google-Sender-Auth: trl0QSnve3uTAMGJlie2l3fiEaA X-Gm-Message-State: ALoCoQmQlSBxBuDiUN1SougoMnS5Wz2nf93Q1bGM8xyN3se9kHp6s6Ot+BDHF1fRuwanKPQ5kugC X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.216.181 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:161159 Archived-At: On Wed, Jun 26, 2013 at 12:50 AM, Stephen Berman wrote: > [...] On > the other hand, it does contain some internal functions and variables of > a rather general character, needed to implement parts of the UI, which I > included because Emacs doesn't have them (e.g. a powerset function), and > these certainly could be used by other packages, but more likely they > would be reimplemented using the package prefix. Coincidentally enough, I needed a power set function just yesterday. After fruitlessly grepping for one on my system I ended up writing my own. I wish I had procrastinated a bit longer so I could have used yours :) It would be great if more of these generally useful functions were "promoted" from the libraries where they originated into the core of Emacs, stripped of package prefixes and properly documented in the Emacs or Elisp info manuals in order to make them more discoverable for use elsewhere. Doubtless many wheels have been reinvented after failed searches for functionality that already ships with Emacs. For example, I have implemented and later stumbled across existing implementations of anaphora (later found in lisp/ibuf-macs.el) and a recursive directory-files function (later found in lisp/gnus/gnus-util.el). I'd expect discoverability to worsen as libraries continue to move out of grep's reach in the core to GNU ELPA, Marmalade, Github, etc., which in turn would result in greater duplication of effort as well as proliferation of similar but subtly incompatible implementations of general-purpose functions. Users' interest in a richer set of elisp building blocks is evident from the existence and popularity of libraries such as Magnar Sveen's dash[0] ("a modern list library for emacs") and s[1] ("the long lost Emacs string manipulation library"). IMO it would be a worthwhile goal to move toward shipping canonical implementations of these building blocks with Emacs. What do others think? Josh [0] https://github.com/magnars/dash.el [1] https://github.com/magnars/s.el