Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id w5M7j8Gi009370 for ; Fri, 22 Jun 2018 09:45:09 +0200 Received: from relay2.uni-heidelberg.de ([129.206.119.212]) by mx-ha.gmx.net (mxgmx012 [212.227.15.9]) with ESMTPS (Nemesis) id 0LwmkK-1gGN2k2bIO-016Pgv for ; Fri, 22 Jun 2018 09:45:02 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.15.2/8.15.2) with ESMTP id w5M7j0BM006287; Fri, 22 Jun 2018 09:45:01 +0200 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 861CB126DBE; Fri, 22 Jun 2018 09:45:00 +0200 (CEST) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 27391181 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 22 Jun 2018 09:45:00 +0200 Delivered-To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.119.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 71CDB126561 for ; Fri, 22 Jun 2018 09:45:00 +0200 (CEST) Received: from eggs.gnu.org (eggs.gnu.org [208.118.235.92]) by relay2.uni-heidelberg.de (8.15.2/8.15.2) with ESMTPS id w5M7is0O006228 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 22 Jun 2018 09:44:58 +0200 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fWGkS-0008Nv-4m for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 22 Jun 2018 03:44:53 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34786) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fWGkS-0008Nn-17; Fri, 22 Jun 2018 03:44:48 -0400 Received: from x4db660b4.dyn.telefonica.de ([77.182.96.180]:36184 helo=lola) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fWGkR-0004Tn-FS; Fri, 22 Jun 2018 03:44:47 -0400 References: <941aad2c-bc3d-ca7a-1757-470e7ed1d5b9@free.fr> <87bmc3ripu.fsf@fencepost.gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e Message-ID: <874lhvqn82.fsf@fencepost.gnu.org> Date: Fri, 22 Jun 2018 09:44:45 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Kastrup Subject: Re: Package registration To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: (Will Robertson's message of "Fri, 22 Jun 2018 16:46:41 +0930") Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-UI-Filterresults: notjunk:1;V01:K0:cCkQV2T17lQ=:A6ZEI1x1wB/OxAchKL+pDDTmFt P9/lwiZ7PoNKfzD4KLvhyOU3VQw2w58KQA5Tokl90wcdOtAyMynka0tQVy64m8fbsDGSv3oTa SvJv9UIQcfM1ZQbvcAG9CLpUYs8Tv89r+eMXYQuwmdtvnSS7yc1VEMIKspMcSYwtRHGzTeV5h Pb3ZBENzB9vIdTC7X2YUaeyRfD6He2+tgck93AtdIJQA7kN/qeEb//QDzaHe2DmLiMdCOYcjJ e7/72xx0gK+3jjLoLE9o3ccJpkpIHO0hrQKGOym7L1uEYdpubbOIOQ1SdD777S2Q1G9lT5zLN 0b/tKlxRAJCb3S4OfDhedXyYSQP8EMzfZHiYKvNza4cybzH2f8kYBO47yQwKBnLeqhXK0KSAt l97p5DtJo3l1TA3jA6KMnalkFC/3Pf6DjYEV4TwT3DCEoQQhsvWcM0/VZ5KZSNCQsLMdaXxEw PDzNdCNDQuJMT23ztQArsZWNMN4lpkm6E/am60+HgY46QBENwPLO24QpS4iQlL9jtYAU1itRX CMtBW41y0X93VBrHKF587Tn4zZBmMx6ZTOFVxa7YEe1tlf27vEzSJbea7nOqOX2IFCC437ht7 /aD0Co9SR75NPLH6Nc3wcUrFwESA4cdGwkCxkcsSLUSCVIBMNS0UR0h35Kl4rABrBz3odoYr4 VB9PfZ5zwGK2LnGm/W3EfFuzdItepJlcSY8imdRnkFsbpO4uonTuj06G/jiUr0aZBCZgvtkZj gR+MH27yQJCn8qN0y7UqNGWzbKDeuaigee8G53MQ92fNwNcPQXG/vuqAXH1ro21M22W1K2YnN NwUeC5dovsm/KC0wQPj3tUfhUxY38nIepNeuINJ3a4Tlxt5IN3L7CYiEvP7xkvDtuTRcq5slU 2ggwpJatM68RECMuwLmCM4xsoqVNS7JIl0q912VpFTTki+DD+S32vggW7SJK0z5mZwxUPZhGK pBvYNvmAn/YoNTIioU3SwW0LGs5zPswXd3AIiVjTOr3TDV3WZlzu67A5ocWEJwdkzoSA3TeQR QeKA+tgMyj1PRchK2TJsWE/5NO6aoMKu+cBm0WdiVZvZHB+Js4KAOt86IFNB2MlvDhGiNd8Dd Z3oItMUQL69h00tYmo8yCdHxZ3qvc4F6FdD+R9/0t89WssePbvOyhK2qh4SVt4ddd1zMG6K+Q VYsMM427DGWqwYLuNeQ4Gi5tPEdwptMotLmkglUHl14wRoi0GVJXHsZNoSmbA88uz5GDvOJ+C KVbugRwoJSNE1fih12TbvFq1/svO3MkTj3L1KN/13lgyOjXwuCDSKnw1s2GZUCyeFSD5VC9t1 8CMZv2dG8gt5LzhNvPDMHAiUJLsXcSyjLj2ZEPZd5Ffmr6YQpeEIdU3Px8YQPIPR33IupG8Z3 FH9A+mDBM/E6EoClS0kyURCysUR7RGwkzxVHEBWXPH5QBvo3Kf9gVIVTu7Lw/qijVaP+AUZFt gcuYoXIw0AtX9n4E4B0tXLIgFHTDQkmWMOP3SvwumPFaihdqKMVpdZk1hcP1U932GW3yPs0eO 9FZVCMEN91YKSbOX7uIw4mROsJyt5n5VqnXKz88kKEcKZHCwr+gbHK3vcubyYSXWDIkUecNxd /xUo6hxpoe6j05+4TE4SA5mDmXBEQsJPLt02e7bMAIdO/iZIafP/wsHZJQuBPinT7s3sKAZuq Gp/KyGThZlsEPVJ3a11VbkRGCA17ome6ZF94+KAIXAad68riVS/wpCDXaAUcMDazdCR53uUrh RlDrEKLbW+Rzyw7pKhGkpNHmIOysySJI9KvPrC8YiXnnki6OzadqbSi6DYvHwqKg8+rgC5Fkc C3QxK63n8dNUkJ+VWj9ijcfGPFnzAytmeYPupK+BZidIeWEAQplAUh24+PMGzQ1IGUaCoc5rF F8f0sdDZULz8QJmWfP1M6/ZDSdhlcP3MN+01Y7gk7yMQlm/tdDM94rMnwToV X-UI-Loop:V01:dZx1V8zg0wA=:t63l7ZaNvnd2EP2kDUEJ9jp9qMqJVzruKZzmSMlVigY= X-UI-Out-Filterresults: notjunk:1;V01:K0:TpmhiDLnE08=:Lo1h8rtsHdF+14c7a2IslM UKx0nEWpuY2e0hhLmKGeCZm5V/7H7WSP/hS02xp4aHitxjX46djIERI4d8pMzqW2lLlsw76mO aqHlfkceZLMDRUzDGYpYYBLHWRYn3zeo3AxdP33fLzU3KDWhiKGjG+6Vg7xw8/Bh0SDQ6yv5Z 7DXKfH3SWH5P9WCMRjekXpUkw2LkikmgARQPkLUd1PORRJkMluRkFYKKMrao5Y6CXRbttO5Q6 HJ/0kLN8+e4szPVxvYVMlqOpgOWmWX9c4eGmiZzHSVxL7K0Nvw9injFszUQUxSgNgd9+VNuBb CxqxmpCaZMrNLI2epwGmSrs/PM5sOP2nQE/sA9IDMOU6iHRAXJ11GjLQxV4gerKU4/qo8G3ch X8zexLslS01c9LoIZSZTD8EJODzAtXhLYJmpDWpKudt7zeKRMtGsu3+GlH9NQAdDwn++rctiz vmyvjoC0Y2+wvBVomwvdM4bJ9Vj4fkI= X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8054 Will Robertson writes: > On 22 Jun 2018, at 5:54 am, David Kastrup wrote: >> >> A stupid question that just occured to me: should we be discouraging >> registering prefixes that match another prefix' contribution to the >> overly simplistic hash function used in almost all TeX engines? > > Would it be easier to update the hash function in the engines? :) Probably. > What would be the easiest way to test for clashes? Well, the hash function is just @= h:=buffer[j]; for k:=j+1 to j+l-1 do begin h:=h+h+buffer[k]; while h>=hash_prime do h:=h-hash_prime; end So basically it's multiplying the ASCII codes by increasing powers of two from right to left before reducing modulo hash_prime. hash_prime will tend to stay around for a few years until getting bumped but there will be collisions even before the modulo operation. Prefixes will tend to be less than 20 letters, so any programming language offering 32bit integers should be fine for finding collisions even before reducing modulo hash_prime. -- David Kastrup