From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48732) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eBRyb-0007eL-HE for guix-patches@gnu.org; Sun, 05 Nov 2017 15:57:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eBRyY-00038T-Fw for guix-patches@gnu.org; Sun, 05 Nov 2017 15:57:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:44006) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eBRyY-00038N-CC for guix-patches@gnu.org; Sun, 05 Nov 2017 15:57:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eBRyY-0000VJ-5V for guix-patches@gnu.org; Sun, 05 Nov 2017 15:57:02 -0500 Subject: [bug#29132] [PATCH] system: vm: Use 2^32 - 1 as hash size. Resent-Message-ID: References: <1509713344-16963-1-git-send-email-m.othacehe@gmail.com> <87bmkgo3ij.fsf@gnu.org> From: Mathieu Othacehe In-reply-to: <87bmkgo3ij.fsf@gnu.org> Date: Sun, 05 Nov 2017 21:56:13 +0100 Message-ID: <87shdsmolu.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 29132@debbugs.gnu.org Hey Ludo, > So I take it that you always get something in the range 0–2³²-1, no? Well I agree, but looking to hash code, we have : --8<---------------cut here---------------start------------->8--- #define FUNC_NAME s_scm_hash { unsigned long sz = scm_to_unsigned_integer (size, 1, ULONG_MAX); --8<---------------cut here---------------end--------------->8--- And 2^32 > ULONG_MAX == 2^32 - 1 on ARM. This results in this exception : --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (hash 'test (expt 2 32)) ERROR: In procedure hash: ERROR: Value out of range 1 to 4294967295: 4294967296 --8<---------------cut here---------------end--------------->8--- Mathieu