From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Artur Malabarba Newsgroups: gmane.emacs.devel Subject: Re: New assoc-let package Date: Fri, 5 Dec 2014 20:28:29 +0000 Message-ID: References: <87mw72q5z2.fsf@lifelogs.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b3a84c07abeb005097deb03 X-Trace: ger.gmane.org 1417819429 20144 80.91.229.3 (5 Dec 2014 22:43:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 5 Dec 2014 22:43:49 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 05 23:43:44 2014 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 1Xx1bD-0007EZ-6M for ged-emacs-devel@m.gmane.org; Fri, 05 Dec 2014 23:43:43 +0100 Original-Received: from localhost ([::1]:52740 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xx1bC-00070W-Of for ged-emacs-devel@m.gmane.org; Fri, 05 Dec 2014 17:43:42 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:32998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XwzUO-0005B2-B0 for emacs-devel@gnu.org; Fri, 05 Dec 2014 15:28:34 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XwzUM-0006jr-Um for emacs-devel@gnu.org; Fri, 05 Dec 2014 15:28:32 -0500 Original-Received: from mail-la0-x22f.google.com ([2a00:1450:4010:c03::22f]:51433) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XwzUM-0006jQ-Hb for emacs-devel@gnu.org; Fri, 05 Dec 2014 15:28:30 -0500 Original-Received: by mail-la0-f47.google.com with SMTP id hz20so1326152lab.34 for ; Fri, 05 Dec 2014 12:28:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=js4/Z1jAHjRkkNDsVJhceydJH3cn7+jVsioeV26+IHU=; b=T1gaeoTL5AsxI4COGOLiwJ30F7M5AAHMXINpBOAl1BgiQjCrmnkQTqfsAtgxDqs0CE S3BXIwSGJPojdtG1zJgin3WEcMBHuY6+CxklgPp1EsD+cf7YASVSaZR2lgpzCabX8mDy GZ8ik72Pe2Y+7WnxxjL5+VyPANSyF8Diruokdc5Pl8CtKmt+JEzKxoEDZ5Rx2V/6HiTP 7IV0dmt8IBu9C8/E/mrnEcatQwfsRt5rHfT4ZRjbfH28pDNxABs3kVygW5W2S7KsiJ9C gSTSgZOxrJxMfxiQYNQjlWYroAZz5m8pig/uC7+in5HODqgmgiJwNeSkMwhcldSdsKFR 5UOg== X-Received: by 10.112.130.132 with SMTP id oe4mr4686317lbb.82.1417811309797; Fri, 05 Dec 2014 12:28:29 -0800 (PST) Original-Received: by 10.112.53.137 with HTTP; Fri, 5 Dec 2014 12:28:29 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::22f X-Mailman-Approved-At: Fri, 05 Dec 2014 17:43:19 -0500 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:179048 Archived-At: --047d7b3a84c07abeb005097deb03 Content-Type: text/plain; charset=UTF-8 And of course I forgot to attach. Artur Malabarba School of Physics, University of Bristol, UK (+44) 07450 374440 2014-12-05 20:27 GMT+00:00 Artur Malabarba : > On 5 Dec 2014 00:45, "Ted Zlatanov" wrote: >> >> Should it maybe use `lexical-let'? >> >> AM> Maybe. Do you foresee it behaving unexpectedly in a file with dynamic >> AM> scope? >> >> If you want to support older Emacsen, it's probably better. But it's up >> to you, and I don't know exactly what your code does. > >> >> I hope it can go into the core so it's available by default. >> >> AM> On the other hand, making it a package makes it a reliable dependency >> AM> available since 24.1 >> >> To me, a package seems overkill for a single useful macro, but I haven't >> seen the source so perhaps there's more to it. There was no URL in your >> post and I don't see an assoc-let package in any of the ELPA repos I >> know. > > Yes, when I sent that email I hadn't yet factored it out from the other > project where it was born. > > I've attached the file now. There isn't much more to it, it's really quite > simple. > > >> Anyhow, it's your code, please publish it however you wish. > > Of course, but all feedback is welcome. > > I'll be pushing this once I've written a test or two for it. > > > Cheers --047d7b3a84c07abeb005097deb03 Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="assoc-let.el" Content-Disposition: attachment; filename="assoc-let.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i3c08k5a0 Ozs7IGFzc29jLWxldC5lbCAtLS0gRWFzaWx5IGxldC1iaW5kIHZhbHVlcyBvZiBhbiBhbGlzdCBi eSB0aGVpciBuYW1lcy4KCjs7IENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KCjs7IEF1dGhvcjogQXJ0dXIgTWFsYWJhcmJhIDxicnVjZS5jb25ub3IuYW1A Z21haWwuY29tPgo7OyBNYWludGFpbmVyOiBBcnR1ciBNYWxhYmFyYmEgPGJydWNlLmNvbm5vci5h bUBnbWFpbC5jb20+Cjs7IFVSTDogaHR0cDovL2dpdGh1Yi5jb20vQnJ1Y2UtQ29ubm9yL2Fzc29j LWxldAo7OyBWZXJzaW9uOiAwLjEKOzsgS2V5d29yZHM6IGV4dGVuc2lvbnMgbGlzcAo7OyBQcmVm aXg6IGFzc29jLWxldAo7OyBTZXBhcmF0b3I6IC0KCjs7OyBDb21tZW50YXJ5Ogo7Owo7OyBUaGlz IHBhY2thZ2Ugb2ZmZXJzIGEgc2luZ2xlIG1hY3JvLCBgYXNzb2MtbGV0Jy4gVGhpcyBtYWNybyB0 YWtlcyBhCjs7IGZpcnN0IGFyZ3VtZW50ICh3aG9zZSB2YWx1ZSBtdXN0IGJlIGFuIGFsaXN0KSBh bmQgYSBib2R5Lgo7OyAKOzsgVGhlIG1hY3JvIGV4cGFuZHMgdG8gYSBsZXQgZm9ybSBjb250YWlu aW5nIGJvZHksIHdoZXJlIGVhY2ggZG90dGVkCjs7IHN5bWJvbCBpbnNpZGUgYm9keSBpcyBsZXQt Ym91bmQgdG8gdGhlaXIgY2RycyBpbiB0aGUgYWxpc3QuICBEb3R0ZWQKOzsgc3ltYm9sIGlzIGFu eSBzeW1ib2wgc3RhcnRpbmcgd2l0aCBhIGAuJy4gIE9ubHkgdGhvc2UgcHJlc2VudCBpbgo7OyB0 aGUgYm9keSBhcmUgbGV0LWJvdW5kIGFuZCB0aGlzIHNlYXJjaCBpcyBkb25lIGF0IGNvbXBpbGUg dGltZS4KOzsgCjs7IEZvciBpbnN0YW5jZSwgdGhlIGZvbGxvd2luZyBjb2RlCjs7IAo7OyAgIChh c3NvYy1sZXQgYWxpc3QKOzsgICAgIChpZiAoYW5kIC50aXRsZSAuYm9keSkgCjs7ICAgICAgICAg LmJvZHkKOzsgICAgICAgLnNpdGUpKQo7OyAKOzsgZXhwYW5kcyB0bwo7OyAKOzsgICAobGV0ICgo LnRpdGxlIChjZHIgKGFzc29jICd0aXRsZSBhbGlzdCkpKQo7OyAgICAgICAgICguYm9keSAoY2Ry IChhc3NvYyAnYm9keSBhbGlzdCkpKQo7OyAgICAgICAgICguc2l0ZSAoY2RyIChhc3NvYyAnc2l0 ZSBhbGlzdCkpKSkKOzsgICAgIChpZiAoYW5kIC50aXRsZSAuYm9keSkKOzsgICAgICAgICAuYm9k eQo7OyAgICAgICAuc2l0ZSkpCgo7OzsgTGljZW5zZToKOzsKOzsgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR05VIEVtYWNzLgo7Owo7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgo7 OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo7Owo7OyBHTlUgRW1hY3MgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKOzsgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQo7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo7 Owo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KCjs7OyBOZXdzOgo7OzsgQ29kZToKDAoKKGRlZnVu IGFzc29jLWxldC0tZGVlcC1kb3Qtc2VhcmNoIChkYXRhKQogICJSZXR1cm4gYWxpc3Qgb2Ygc3lt Ym9scyBpbnNpZGUgREFUQSB3aGljaCBzdGFydCB3aXRoIGEgYC4nLgpQZXJmb3JtIGEgZGVlcCBz ZWFyY2ggYW5kIHJldHVybiBhbiBhbGlzdCB3aGVyZSBlYWNoIGNhciBpcyB0aGUKc3ltYm9sLCBh bmQgZWFjaCBjZHIgaXMgdGhlIHNhbWUgc3ltYm9sIHdpdGhvdXQgdGhlIGAuJy4iCiAgKGNvbmQK ICAgKChzeW1ib2xwIGRhdGEpCiAgICAobGV0ICgobmFtZSAoc3ltYm9sLW5hbWUgZGF0YSkpKQog ICAgICAod2hlbiAoc3RyaW5nLW1hdGNoICJcXGBcXC4iIG5hbWUpCiAgICAgICAgOzsgUmV0dXJu IHRoZSBjb25zIGNlbGwgaW5zaWRlIGEgbGlzdCwgc28gaXQgY2FuIGJlIGFwcGVuZGVkCiAgICAg ICAgOzsgd2l0aCBvdGhlciByZXN1bHRzIGluIHRoZSBjbGF1c2UgYmVsb3cuCiAgICAgICAgKGxp c3QgKGNvbnMgZGF0YSAoaW50ZXJuIChyZXBsYWNlLW1hdGNoICIiIG5pbCBuaWwgbmFtZSkpKSkp KSkKICAgKChub3QgKGxpc3RwIGRhdGEpKSBuaWwpCiAgICh0IChhcHBseSAjJ2FwcGVuZAogICAg ICAgIChyZW1vdmUgbmlsIChtYXBjYXIgIydhc3NvYy1sZXQtLWRlZXAtZG90LXNlYXJjaCBkYXRh KSkpKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmbWFjcm8gYXNzb2MtbGV0IChhbGlzdCAmcmVzdCBi b2R5KQogICJMZXQtYmluZCBkb3R0ZWQgc3ltYm9scyB0byB0aGVpciBjZHJzIGluIEFMSVNUIGFu ZCBleGVjdXRlIEJPRFkuCkRvdHRlZCBzeW1ib2wgaXMgYW55IHN5bWJvbCBzdGFydGluZyB3aXRo IGEgYC4nLiAgT25seSB0aG9zZQpwcmVzZW50IGluIEJPRFkgYXJlIGxldC1ib3VuZCBhbmQgdGhp cyBzZWFyY2ggaXMgZG9uZSBhdCBjb21waWxlCnRpbWUuCgpGb3IgaW5zdGFuY2UsIHRoZSBmb2xs b3dpbmcgY29kZQoKICAoYXNzb2MtbGV0IGFsaXN0CiAgICAoaWYgKGFuZCAudGl0bGUgLmJvZHkp IAogICAgICAgIC5ib2R5CiAgICAgIC5zaXRlKSkKCmV4cGFuZHMgdG8KCiAgKGxldCAoKC50aXRs ZSAoY2RyIChhc3NvYyAndGl0bGUgYWxpc3QpKSkKICAgICAgICAoLmJvZHkgKGNkciAoYXNzb2Mg J2JvZHkgYWxpc3QpKSkKICAgICAgICAoLnNpdGUgKGNkciAoYXNzb2MgJ3NpdGUgYWxpc3QpKSkp CiAgICAoaWYgKGFuZCAudGl0bGUgLmJvZHkpCiAgICAgICAgLmJvZHkKICAgICAgLnNpdGUpKSIK ICAoZGVjbGFyZSAoaW5kZW50IDEpIChkZWJ1ZyB0KSkKICBgKGxldCAsKG1hcGNhciAobGFtYmRh ICh4KSBgKCwoY2FyIHgpIChjZHIgKGFzc29jICcsKGNkciB4KSAsYWxpc3QpKSkpCiAgICAgICAg ICAgICAgICAgKGRlbGV0ZS1kdXBzIChhc3NvYy1sZXQtLWRlZXAtZG90LXNlYXJjaCBib2R5KSkp CiAgICAgLEBib2R5KSkKCihwcm92aWRlICdhc3NvYy1sZXQpCjs7OyBhc3NvYy1sZXQuZWwgZW5k cyBoZXJlCgoKOzsgTG9jYWwgVmFyaWFibGVzOgo7OyBzZW50ZW5jZS1lbmQtZG91YmxlLXNwYWNl OiB0Cjs7IEVuZDoK --047d7b3a84c07abeb005097deb03--