diff mbox

[Ada] Make System.String_Hash available through GNAT.String_Hash

Message ID 20151118135418.GA38714@adacore.com
State New
Headers show

Commit Message

Arnaud Charlet Nov. 18, 2015, 1:54 p.m. UTC
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  <derodat@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.
diff mbox

Patch

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) \