From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Pogonyshev Newsgroups: gmane.emacs.devel Subject: Re: expose XHASH [patch] Date: Sat, 2 Apr 2016 13:52:50 +0200 Message-ID: References: <56FDA815.2090801@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113e1bd488dd86052f7f22f5 X-Trace: ger.gmane.org 1459597990 752 80.91.229.3 (2 Apr 2016 11:53:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 2 Apr 2016 11:53:10 +0000 (UTC) Cc: emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 02 13:53:09 2016 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 1amK73-0001v8-2I for ged-emacs-devel@m.gmane.org; Sat, 02 Apr 2016 13:53:09 +0200 Original-Received: from localhost ([::1]:49034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1amK72-0000Lg-7Z for ged-emacs-devel@m.gmane.org; Sat, 02 Apr 2016 07:53:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1amK6m-0000LN-Iv for emacs-devel@gnu.org; Sat, 02 Apr 2016 07:52:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1amK6l-0005T6-CM for emacs-devel@gnu.org; Sat, 02 Apr 2016 07:52:52 -0400 Original-Received: from mail-oi0-x233.google.com ([2607:f8b0:4003:c06::233]:36123) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1amK6l-0005Sv-5a for emacs-devel@gnu.org; Sat, 02 Apr 2016 07:52:51 -0400 Original-Received: by mail-oi0-x233.google.com with SMTP id r187so140547526oih.3 for ; Sat, 02 Apr 2016 04:52:50 -0700 (PDT) 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 :cc; bh=4zpo7peIIijVniEFNW+p1GGrUImlP6auh3Ul6HxS138=; b=vUvuZqdo0aCAafkN5zsclp+vFP/qrM5TJKTSbuqQutiQoInV/cWnQ7Pkh99PJpOK+J RB0897PX8ZoO0ZcevW1ncy/1NxdGjHZWShjMQFrXTk6BpeUUbaXrSmmgFoTX+KUUcU6f lCKJRdWw0YSOC4gZoQ0luu3+FyRi0tnQWVTy4B/ZYMU1ea1AF4nQ9iW92WpLGxl6VR/A x2I4J0w1/xn1FW8YZx6JVaITNgefvrYFj/+xHpUyrPJE/iMOTVgdDN9qrNO5ZKuJXZR1 4ZTMh5QuIZZEFBHW34FoDXBf1ChwwBqDdB1kdTBxJKFrMMnxuUFDeWuOfcRBNEZdi20L 9prw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=4zpo7peIIijVniEFNW+p1GGrUImlP6auh3Ul6HxS138=; b=IsYVEfogCWpWUMFju3T4XpF7KfbwbdXq2hGT1dJFOKIuR3QXcYr5i/dMdvMJtQ0UeQ 05ZVbMsp7YnRXXow5S4qF1LNAXkpkxWSEB8sdXfpz2w0My8jRl717Cjlr9SQyQfGmzRG 2HU/M5F+t2sNkLYJyuSXzDFesL804h1Ft+IuMAUgki927652cpjEQvYqmFPVBE/thdEH 5ReJZayk9Flqss7LemYYqUKfHvWgDnha9bS2L9XIbReqJ5lBrCPnzB7MoAURcLIiVAlA jUaoI1wStCWqczN88Z3ZJeTL0qHEt/wbwuECIeanboWhP1HY0Qx5uLYpn3mdibq5nk4H 84IA== X-Gm-Message-State: AD7BkJLUSRKm0zrCDx0qaPpGpImoLLbWVlyYppILPMl06h9rzmFJzolKIW8aRhrAB1DFTh11Y8xFJQ8UAf/A6A== X-Received: by 10.157.20.161 with SMTP id d30mr8179892ote.165.1459597970262; Sat, 02 Apr 2016 04:52:50 -0700 (PDT) Original-Received: by 10.202.197.148 with HTTP; Sat, 2 Apr 2016 04:52:50 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:4003:c06::233 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:202591 Archived-At: --001a113e1bd488dd86052f7f22f5 Content-Type: text/plain; charset=UTF-8 Second patch iteration, taking into account all comments by Paul Eggert. Paul * src/fns.c (Fsxhash_eq, Fsxhash_eql): New functions. * doc/lispref/hash.texi (Defining Hash): Document 'sxhash-eq' and 'sxhash-eql'. * etc/NEWS: Mention 'sxhash-eq' and 'sxhash-eql'. On 1 April 2016 at 11:44, Paul Pogonyshev wrote: > Paul Eggert wrote: >> The documentation for the new function should be next to the documentation for sxhash. > > I just skipped all the examples related to 'sxhash'. But I don't mind. > >> Shouldn't we expose hashfn_eq, not XHASH? After all, (make-hash-table :test 'eq ...) uses hashfn_eq, not XHASH. > > Probably you are right. I don't know the internal details well enough > to comment on this. > >> Should we also expose hashfn_eql, which is what make-hash-table uses by default? Or is that a waste of time since hashfn_eql is the default? > > I'd say expose it too, at least for the cases of composite hashing as > in my example. > >> Not sure I like the name xhash. Maybe sxhash-eq instead? That would let us use the name sxhash-eql for hashfn_eql. > > I tried to keep familiar names (at least for those who work on C > code), but if we change that to 'hashfn_eq' and additionally expose > something for 'eql', I guess your idea is better. > > I'll wait if more comments on these points appear before creating next > patch iteration. > > Paul --001a113e1bd488dd86052f7f22f5 Content-Type: text/plain; charset=US-ASCII; name="sxhash-eq[l].diff" Content-Disposition: attachment; filename="sxhash-eq[l].diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imj2xlwf0 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2hhc2gudGV4aSBiL2RvYy9saXNwcmVmL2hhc2gudGV4 aQppbmRleCA4Mzg5YzIxLi5hMTk3Mzk5IDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9oYXNoLnRl eGkKKysrIGIvZG9jL2xpc3ByZWYvaGFzaC50ZXhpCkBAIC0yNzMsMTMgKzI3MywzNCBAQCBUaGlz IGZ1bmN0aW9uIHJldHVybnMgYSBoYXNoIGNvZGUgZm9yIExpc3Agb2JqZWN0IEB2YXJ7b2JqfS4K IFRoaXMgaXMgYW4gaW50ZWdlciB3aGljaCByZWZsZWN0cyB0aGUgY29udGVudHMgb2YgQHZhcntv Ymp9CiBhbmQgdGhlIG90aGVyIExpc3Agb2JqZWN0cyBpdCBwb2ludHMgdG8uCiAKLUlmIHR3byBv YmplY3RzIEB2YXJ7b2JqMX0gYW5kIEB2YXJ7b2JqMn0gYXJlIGVxdWFsLCB0aGVuIEBjb2Rleyhz eGhhc2gKLUB2YXJ7b2JqMX0pfSBhbmQgQGNvZGV7KHN4aGFzaCBAdmFye29iajJ9KX0gYXJlIHRo ZSBzYW1lIGludGVnZXIuCitJZiB0d28gb2JqZWN0cyBAdmFye29iajF9IGFuZCBAdmFye29iajJ9 IGFyZSBAY29kZXtlcXVhbH0sIHRoZW4KK0Bjb2RleyhzeGhhc2ggQHZhcntvYmoxfSl9IGFuZCBA Y29kZXsoc3hoYXNoIEB2YXJ7b2JqMn0pfSBhcmUgdGhlIHNhbWUKK2ludGVnZXIuCisKK0lmIHRo ZSB0d28gb2JqZWN0cyBhcmUgbm90IEBjb2Rle2VxdWFsfSwgdGhlIHZhbHVlcyByZXR1cm5lZCBi eQorQGNvZGV7c3hoYXNofSBhcmUgdXN1YWxseSBkaWZmZXJlbnQsIGJ1dCBub3QgYWx3YXlzOyBv bmNlIGluIGEgcmFyZQord2hpbGUsIGJ5IGx1Y2ssIHlvdSB3aWxsIGVuY291bnRlciB0d28gZGlz dGluY3QtbG9va2luZyBvYmplY3RzIHRoYXQKK2dpdmUgdGhlIHNhbWUgcmVzdWx0IGZyb20gQGNv ZGV7c3hoYXNofS4KK0BlbmQgZGVmdW4KKworQGRlZnVuIHN4aGFzaC1lcSBvYmoKK1RoaXMgZnVu Y3Rpb24gcmV0dXJucyBhIGhhc2ggY29kZSBmb3IgTGlzcCBvYmplY3QgQHZhcntvYmp9LiAgSXRz CityZXN1bHQgcmVmbGVjdHMgaWRlbnRpdHkgb2YgQHZhcntvYmp9LCBidXQgbm90IGl0cyBjb250 ZW50cy4KKworSWYgdHdvIG9iamVjdHMgQHZhcntvYmoxfSBhbmQgQHZhcntvYmoyfSBhcmUgQGNv ZGV7ZXF9LCB0aGVuCitAY29kZXsoeGhhc2ggQHZhcntvYmoxfSl9IGFuZCBAY29kZXsoeGhhc2gg QHZhcntvYmoyfSl9IGFyZSB0aGUgc2FtZQoraW50ZWdlci4KK0BlbmQgZGVmdW4KKworQGRlZnVu IHN4aGFzaC1lcWwgb2JqCitUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBoYXNoIGNvZGUgZm9yIExp c3Agb2JqZWN0IEB2YXJ7b2JqfSBzdWl0YWJsZQorZm9yIEBjb2Rle2VxbH0gY29tcGFyaXNvbi4g IEkuZS4gaXQgcmVmbGVjdHMgaWRlbnRpdHkgb2YgQHZhcntvYmp9CitleGNlcHQgZm9yIHRoZSBj YXNlIHdoZXJlIHRoZSBvYmplY3QgaXMgYSBmbG9hdCBudW1iZXIsIGluIHdoaWNoIGNhc2UKK2hh c2ggY29kZSBpcyBnZW5lcmF0ZWQgZm9yIHRoZSB2YWx1ZS4KIAotSWYgdGhlIHR3byBvYmplY3Rz IGFyZSBub3QgZXF1YWwsIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgQGNvZGV7c3hoYXNofQotYXJl IHVzdWFsbHkgZGlmZmVyZW50LCBidXQgbm90IGFsd2F5czsgb25jZSBpbiBhIHJhcmUgd2hpbGUs IGJ5IGx1Y2ssCi15b3Ugd2lsbCBlbmNvdW50ZXIgdHdvIGRpc3RpbmN0LWxvb2tpbmcgb2JqZWN0 cyB0aGF0IGdpdmUgdGhlIHNhbWUKLXJlc3VsdCBmcm9tIEBjb2Rle3N4aGFzaH0uCitJZiB0d28g b2JqZWN0cyBAdmFye29iajF9IGFuZCBAdmFye29iajJ9IGFyZSBAY29kZXtlcWx9LCB0aGVuCitA Y29kZXsoeGhhc2ggQHZhcntvYmoxfSl9IGFuZCBAY29kZXsoeGhhc2ggQHZhcntvYmoyfSl9IGFy ZSB0aGUgc2FtZQoraW50ZWdlci4KIEBlbmQgZGVmdW4KIAogICBUaGlzIGV4YW1wbGUgY3JlYXRl cyBhIGhhc2ggdGFibGUgd2hvc2Uga2V5cyBhcmUgc3RyaW5ncyB0aGF0IGFyZQpkaWZmIC0tZ2l0 IGEvZXRjL05FV1MgYi9ldGMvTkVXUwppbmRleCA3MjZiNGI5Li4yZDkxMTY2IDEwMDY0NAotLS0g YS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtMjA4LDYgKzIwOCwxMiBAQCBwZXJtYW5lbnQg YW5kIGRvY3VtZW50ZWQsIGFuZCBtYXkgYmUgdXNlZCBieSBMaXNwIHByb2dyYW1zLiAgSXRzIHZh bHVlCiBpcyBhIGxpc3Qgb2YgY3VycmVudGx5IG9wZW4gcGFyZW50aGVzaXMgcG9zaXRpb25zLCBz dGFydGluZyB3aXRoIHRoZQogb3V0ZXJtb3N0IHBhcmVudGhlc2lzLgogCisrKysKKyoqIE5ldyBm dW5jdGlvbnMgJ3N4aGFzaC1lcScgYW5kICdzeGhhc2gtZXFsJyByZXR1cm4gaGFzaCBjb2RlcyBv ZiBhCitMaXNwIG9iamVjdCBzdWl0YWJsZSBmb3IgdXNlIHdpdGggJ2VxJyBhbmQgJ2VxbCcgY29y cmVzcG9uZGluZ2x5LiAgSWYKK3R3byBvYmplY3RzIGFyZSAnZXEnICgnZXFsJyksIHRoZW4gdGhl IHJlc3VsdCBvZiAnc3hoYXNoLWVxJworKCdzeGhhc2gtZXFsJykgb24gdGhlbSB3aWxsIGJlIHRo ZSBzYW1lLgorCiAMCiAqIENoYW5nZXMgaW4gRW1hY3MgMjUuMiBvbiBOb24tRnJlZSBPcGVyYXRp bmcgU3lzdGVtcwogCmRpZmYgLS1naXQgYS9zcmMvZm5zLmMgYi9zcmMvZm5zLmMKaW5kZXggMTE0 YTU1Ni4uODI1ZTQ0MyAxMDA2NDQKLS0tIGEvc3JjL2Zucy5jCisrKyBiL3NyYy9mbnMuYwpAQCAt NDQ1Nyw2ICs0NDU3LDI1IEBAIERFRlVOICgic3hoYXNoIiwgRnN4aGFzaCwgU3N4aGFzaCwgMSwg MSwgMCwKICAgcmV0dXJuIG1ha2VfbnVtYmVyIChoYXNoKTsKIH0KIAorREVGVU4gKCJzeGhhc2gt ZXEiLCBGc3hoYXNoX2VxLCBTc3hoYXNoX2VxLCAxLCAxLCAwLAorICAgICAgIGRvYzogLyogQ29t cHV0ZSBpZGVudGl0eSBoYXNoIGNvZGUgZm9yIE9CSiBhbmQgcmV0dXJuIGl0IGFzIGludGVnZXIu CitJbiBvdGhlciB3b3JkcywgaGFzaCBjb2RlcyBvZiB0d28gbm9uLWBlcScgbGlzdHMgd2lsbCBi ZSAobW9zdCBsaWtlbHkpCitkaWZmZXJlbnQsIGV2ZW4gaWYgdGhlIGxpc3RzIGNvbnRhaW4gdGhl IHNhbWUgZWxlbWVudHMuICovKQorICAoTGlzcF9PYmplY3Qgb2JqKQoreworICByZXR1cm4gbWFr ZV9udW1iZXIgKGhhc2hmbl9lcSAoTlVMTCwgb2JqKSk7Cit9CisKK0RFRlVOICgic3hoYXNoLWVx bCIsIEZzeGhhc2hfZXFsLCBTc3hoYXNoX2VxbCwgMSwgMSwgMCwKKyAgICAgICBkb2M6IC8qIENv bXB1dGUgaWRlbnRpdHkgaGFzaCBjb2RlIGZvciBPQkogYW5kIHJldHVybiBpdCBhcyBpbnRlZ2Vy LgorSW4gY29tcGFyaXNvbiB0byBgc3hoYXNoLWVxJywgaXQgaXMgYWxzbyBndWFyYW50ZWVkIHRo YXQgaGFzaCBjb2Rlcworb2YgZXF1YWwgZmxvYXQgbnVtYmVycyB3aWxsIGJlIHRoZSBzYW1lLCBl dmVuIGlmIHRoZSBudW1iZXJzIGFyZSBub3QKK3RoZSBzYW1lIExpc3Agb2JqZWN0LiAqLykKKyAg KExpc3BfT2JqZWN0IG9iaikKK3sKKyAgcmV0dXJuIG1ha2VfbnVtYmVyIChoYXNoZm5fZXFsIChO VUxMLCBvYmopKTsKK30KKwogCiBERUZVTiAoIm1ha2UtaGFzaC10YWJsZSIsIEZtYWtlX2hhc2hf dGFibGUsIFNtYWtlX2hhc2hfdGFibGUsIDAsIE1BTlksIDAsCiAgICAgICAgZG9jOiAvKiBDcmVh dGUgYW5kIHJldHVybiBhIG5ldyBoYXNoIHRhYmxlLgpAQCAtNTA2OCw2ICs1MDg3LDggQEAgc3lt c19vZl9mbnMgKHZvaWQpCiAgIERFRlNZTSAoUWtleV9hbmRfdmFsdWUsICJrZXktYW5kLXZhbHVl Iik7CiAKICAgZGVmc3ViciAoJlNzeGhhc2gpOworICBkZWZzdWJyICgmU3N4aGFzaF9lcSk7Cisg IGRlZnN1YnIgKCZTc3hoYXNoX2VxbCk7CiAgIGRlZnN1YnIgKCZTbWFrZV9oYXNoX3RhYmxlKTsK ICAgZGVmc3ViciAoJlNjb3B5X2hhc2hfdGFibGUpOwogICBkZWZzdWJyICgmU2hhc2hfdGFibGVf Y291bnQpOwo= --001a113e1bd488dd86052f7f22f5--