System.String_Hash provides a generic hash function that can be generally useful outside standard containers. This change make it available for users through a new renaming package: GNAT.String_Hash.
Tested on x86_64-pc-linux-gnu, committed on trunk 2015-11-18 Pierre-Marie de Rodat <dero...@adacore.com> * Makefile.rtl, impunit.adb: Add g-strhas.ads. * g-strhas.ads: New file. * s-strhas.ads: Add a comment to redirect users to g-strhas.ads.
Index: impunit.adb =================================================================== --- impunit.adb (revision 230522) +++ impunit.adb (working copy) @@ -312,6 +312,7 @@ ("g-sptabo", F), -- GNAT.Spitbol.Table_Boolean ("g-sptain", F), -- GNAT.Spitbol.Table_Integer ("g-sptavs", F), -- GNAT.Spitbol.Table_Vstring + ("g-strhas", F), -- GNAT.String_Hash ("g-string", F), -- GNAT.Strings ("g-strspl", F), -- GNAT.String_Split ("g-sse ", F), -- GNAT.SSE Index: g-strhas.ads =================================================================== --- g-strhas.ads (revision 0) +++ g-strhas.ads (revision 0) @@ -0,0 +1,43 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT COMPILER COMPONENTS -- +-- -- +-- G N A T . S T R I N G _ H A S H -- +-- -- +-- S p e c -- +-- -- +-- Copyright (C) 2015, Free Software Foundation, Inc. -- +-- -- +-- GNAT is free software; you can redistribute it and/or modify it under -- +-- terms of the GNU General Public License as published by the Free Soft- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This package provides a generic hashing function over strings, suitable for +-- use with a string keyed hash table. In particular, it is the basis for the +-- string hash functions in Ada.Containers. +-- +-- The algorithm used here is not appropriate for applications that require +-- cryptographically strong hashes, or for application which wish to use very +-- wide hash values as pseudo unique identifiers. In such cases please refer +-- to GNAT.SHA1 and GNAT.MD5. + +with System.String_Hash; + +package GNAT.String_Hash renames System.String_Hash; Index: s-strhas.ads =================================================================== --- s-strhas.ads (revision 230522) +++ s-strhas.ads (working copy) @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2009, Free Software Foundation, Inc. -- +-- Copyright (C) 2009-2015, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -37,6 +37,10 @@ -- cryptographically strong hashes, or for application which wish to use very -- wide hash values as pseudo unique identifiers. In such cases please refer -- to GNAT.SHA1 and GNAT.MD5. +-- +-- Note: this package is in the System hierarchy so that it can be directly +-- be used by other predefined packages. User access to this package is via +-- a renaming of this package in GNAT.String_Hash (file g-strhas.ads). package System.String_Hash is pragma Pure; Index: Makefile.rtl =================================================================== --- Makefile.rtl (revision 230522) +++ Makefile.rtl (working copy) @@ -455,6 +455,7 @@ g-sptabo$(objext) \ g-sptain$(objext) \ g-sptavs$(objext) \ + g-strhas$(objext) \ g-string$(objext) \ g-strspl$(objext) \ g-table$(objext) \