Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-vault for openSUSE:Factory 
checked in at 2026-01-02 15:11:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-vault (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-vault.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-vault"

Fri Jan  2 15:11:18 2026 rev:15 rq:1325046 version:0.3.1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-vault/ghc-vault.changes      2025-03-17 
22:23:05.052245797 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-vault.new.1928/ghc-vault.changes    
2026-01-02 15:11:20.466356759 +0100
@@ -1,0 +2,14 @@
+Thu Dec 25 13:30:17 UTC 2025 - Peter Simons <[email protected]>
+
+- Update vault to version 0.3.1.6.
+  **0.3.1.6**
+
+  Added
+
+  * Add support for MicroHs
+
+  Removed
+
+  * Dropped support for `GHC < 8.4`
+
+-------------------------------------------------------------------

Old:
----
  vault-0.3.1.5.tar.gz
  vault.cabal

New:
----
  vault-0.3.1.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-vault.spec ++++++
--- /var/tmp/diff_new_pack.Lpjup0/_old  2026-01-02 15:11:22.942458901 +0100
+++ /var/tmp/diff_new_pack.Lpjup0/_new  2026-01-02 15:11:22.954459396 +0100
@@ -19,13 +19,12 @@
 %global pkg_name vault
 %global pkgver %{pkg_name}-%{version}
 Name:           ghc-%{pkg_name}
-Version:        0.3.1.5
+Version:        0.3.1.6
 Release:        0
 Summary:        A persistent store for values of arbitrary types
 License:        BSD-3-Clause
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/10.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-base-devel
 BuildRequires:  ghc-base-prof
@@ -40,12 +39,10 @@
 
 %description
 A /vault/ is a persistent store for values of arbitrary types. It's like having
-first-class access to the storage space behind IORefs.
-
-The data structure is analogous to a bank vault, where you can access different
-bank boxes with different keys; hence the name.
-
-Also provided is a /locker/ type, representing a store for a single element.
+first-class access to the storage space behind IORefs. . The data structure is
+analogous to a bank vault, where you can access different bank boxes with
+different keys; hence the name. . Also provided is a /locker/ type,
+representing a store for a single element.
 
 %package devel
 Summary:        Haskell %{pkg_name} library development files
@@ -75,7 +72,6 @@
 
 %prep
 %autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ vault-0.3.1.5.tar.gz -> vault-0.3.1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/CHANGELOG.md 
new/vault-0.3.1.6/CHANGELOG.md
--- old/vault-0.3.1.5/CHANGELOG.md      2001-09-09 03:46:40.000000000 +0200
+++ new/vault-0.3.1.6/CHANGELOG.md      2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,15 @@
 ## Changelog for the `vault` package
 
+**0.3.1.6**
+
+Added
+
+* Add support for MicroHs
+
+Removed
+
+* Dropped support for `GHC < 8.4`
+
 **0.3.1.5**
 
 * Compatibility with GHC-9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/README.md new/vault-0.3.1.6/README.md
--- old/vault-0.3.1.5/README.md 2001-09-09 03:46:40.000000000 +0200
+++ new/vault-0.3.1.6/README.md 2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,3 @@
-[![Build 
Status](https://travis-ci.org/HeinrichApfelmus/vault.png)](https://travis-ci.org/HeinrichApfelmus/vault)
-
-
 *Vault* is a tiny library that provides a single data structure called *vault*.
 
 A *vault* is a type-safe, persistent storage for values of arbitrary types. 
Like `IORef`, I want to be able to store values of any type in it, but unlike 
`IORef`, I want the storage space to behave like a persistent, first-class data 
structure, as appropriate for a purely functional language.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/src/Data/Unique/Really.hs 
new/vault-0.3.1.6/src/Data/Unique/Really.hs
--- old/vault-0.3.1.5/src/Data/Unique/Really.hs 2001-09-09 03:46:40.000000000 
+0200
+++ new/vault-0.3.1.6/src/Data/Unique/Really.hs 2001-09-09 03:46:40.000000000 
+0200
@@ -3,14 +3,12 @@
     Unique, newUnique, hashUnique,
     ) where
 
-import Control.Applicative ((<$>))
-import Data.Hashable
+import           Data.Hashable
 
 #if UseGHC
-
-import Control.Exception (evaluate)
+import           Control.Exception (evaluate)
 import qualified Data.Unique
-import System.Mem.StableName
+import           System.Mem.StableName
 
 -- | An abstract unique value.
 -- Values of type 'Unique' may be compared for equality
@@ -52,6 +50,8 @@
 
 #endif
 
+instance Hashable Unique where hashWithSalt s = hashWithSalt s . hashUnique
+
 -- | Creates a new object of type 'Unique'.
 -- The value returned will not compare equal to any other
 -- value of type 'Unique' returned by previous calls to 'newUnique'.
@@ -62,5 +62,3 @@
 -- Two Uniques may hash to the same value, although in practice this is 
unlikely.
 -- The 'Int' returned makes a good hash key.
 hashUnique :: Unique -> Int
-
-instance Hashable Unique where hashWithSalt s = hashWithSalt s . hashUnique
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/src/Data/Vault/IO.h 
new/vault-0.3.1.6/src/Data/Vault/IO.h
--- old/vault-0.3.1.5/src/Data/Vault/IO.h       2001-09-09 03:46:40.000000000 
+0200
+++ new/vault-0.3.1.6/src/Data/Vault/IO.h       2001-09-09 03:46:40.000000000 
+0200
@@ -12,7 +12,6 @@
 import Control.Monad.ST
 import qualified Data.Vault.ST.LAZINESS as ST
 
-
 {-----------------------------------------------------------------------------
     Vault
 ------------------------------------------------------------------------------}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/src/Data/Vault/ST/ST.h 
new/vault-0.3.1.6/src/Data/Vault/ST/ST.h
--- old/vault-0.3.1.5/src/Data/Vault/ST/ST.h    2001-09-09 03:46:40.000000000 
+0200
+++ new/vault-0.3.1.6/src/Data/Vault/ST/ST.h    2001-09-09 03:46:40.000000000 
+0200
@@ -12,12 +12,9 @@
     lock, unlock,
     ) where
 
-import Data.Monoid (Monoid(..))
-import Data.Semigroup (Semigroup((<>)))
 import Prelude hiding (lookup)
-import Control.Applicative ((<$>))
 import Control.Monad.ST
-import Control.Monad.ST.Unsafe as STUnsafe
+import Control.Monad.ST.Unsafe (unsafeIOToST)
 
 import Data.Unique.Really
 
@@ -44,7 +41,6 @@
 
 instance Monoid (Vault s) where
     mempty = empty
-    mappend = union
 
 -- | The empty vault.
 empty :: Vault s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/src/Data/Vault/ST/backends/GHC.h 
new/vault-0.3.1.6/src/Data/Vault/ST/backends/GHC.h
--- old/vault-0.3.1.5/src/Data/Vault/ST/backends/GHC.h  2001-09-09 
03:46:40.000000000 +0200
+++ new/vault-0.3.1.6/src/Data/Vault/ST/backends/GHC.h  2001-09-09 
03:46:40.000000000 +0200
@@ -23,7 +23,7 @@
 type role Key nominal nominal
 #endif
 
-newKey = STUnsafe.unsafeIOToST $ Key <$> newUnique
+newKey = unsafeIOToST $ Key <$> newUnique
 
 lookup (Key k) (Vault m) = fromAny <$> Map.lookup k m
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/src/Data/Vault/ST/backends/IORef.hs 
new/vault-0.3.1.6/src/Data/Vault/ST/backends/IORef.hs
--- old/vault-0.3.1.5/src/Data/Vault/ST/backends/IORef.hs       1970-01-01 
01:00:00.000000000 +0100
+++ new/vault-0.3.1.6/src/Data/Vault/ST/backends/IORef.hs       2001-09-09 
03:46:40.000000000 +0200
@@ -0,0 +1,40 @@
+import Data.IORef
+import System.IO.Unsafe (unsafePerformIO)
+
+import qualified Data.Map.LAZINESS as Map
+type Map = Map.Map
+
+{-----------------------------------------------------------------------------
+    Locker
+------------------------------------------------------------------------------}
+data Key s a  = Key    !Unique (IORef (Maybe a))
+data Locker s = Locker !Unique (IO ())
+
+#if IsStrict
+lock (Key u ref) x = x `seq` (Locker u $ writeIORef ref $ Just x)
+#else
+lock (Key u ref) x = Locker u $ writeIORef ref $ Just x
+#endif
+
+unlock (Key k ref) (Locker k' m)
+    | k == k' = unsafePerformIO $ do
+        m
+        readIORef ref     -- FIXME: race condition!
+    | otherwise = Nothing
+
+{-----------------------------------------------------------------------------
+    Vault
+------------------------------------------------------------------------------}
+-- implemented as a collection of lockers
+newtype Vault s = Vault (Map Unique (Locker s))
+
+newKey = unsafeIOToST $ Key <$> newUnique <*> newIORef Nothing
+
+lookup key@(Key k _)   (Vault m) = unlock key =<< Map.lookup k m
+
+insert key@(Key k _) x (Vault m) = Vault $ Map.insert k (lock key x) m
+
+adjust f key@(Key k _) (Vault m) = Vault $ Map.update f' k m
+    where f' = fmap (lock key . f) . unlock key
+
+delete (Key k _) (Vault m)  = Vault $ Map.delete k m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vault-0.3.1.5/vault.cabal 
new/vault-0.3.1.6/vault.cabal
--- old/vault-0.3.1.5/vault.cabal       2001-09-09 03:46:40.000000000 +0200
+++ new/vault-0.3.1.6/vault.cabal       2001-09-09 03:46:40.000000000 +0200
@@ -1,7 +1,8 @@
-Name:               vault
-Version:            0.3.1.5
-Synopsis:           a persistent store for values of arbitrary types
-Description:
+cabal-version:      3.4
+name:               vault
+version:            0.3.1.6
+synopsis:           a persistent store for values of arbitrary types
+description:
   A /vault/ is a persistent store for values of arbitrary types.
   It's like having first-class access to the storage space behind IORefs.
   .
@@ -11,61 +12,64 @@
   .
   Also provided is a /locker/ type, representing a store for a single element.
 
-Category:           Data
-License:            BSD3
-License-file:       LICENSE
-Author:             Heinrich Apfelmus, Elliott Hird
-Maintainer:         Heinrich Apfelmus <apfelmus at quantentunnel de>
-Homepage:           https://github.com/HeinrichApfelmus/vault
-Copyright:          (c) Heinrich Apfelmus 2011-2013
-
-build-type:         Simple
-cabal-version:      >= 1.10
-Tested-With:         GHC == 7.6.3
-                    ,GHC == 7.8.4
-                    ,GHC == 7.10.3
-                    ,GHC == 8.0.2
-                    ,GHC == 8.2.2
-                    ,GHC == 8.4.4
-                    ,GHC == 8.6.5
-                    ,GHC == 8.8.3
-                    ,GHC == 8.10.1
+category:           Data
+license:            BSD-3-Clause
+license-file:       LICENSE
+author:             Heinrich Apfelmus, Elliott Hird
+maintainer:         Heinrich Apfelmus <apfelmus at quantentunnel de>
+homepage:           https://github.com/HeinrichApfelmus/vault
+copyright:          (c) Heinrich Apfelmus 2011-2026
+tested-with:
+  GHC ==8.4.4
+   || ==8.6.5
+   || ==8.8.4
+   || ==8.10.7
+   || ==9.0.2
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.7
+   || ==9.8.4
+   || ==9.10.2
+   || ==9.12.2
 
 extra-source-files:
-    CHANGELOG.md
-    README.md
-    src/Data/Vault/IO.h
-    src/Data/Vault/ST/ST.h
-    src/Data/Vault/ST/backends/GHC.h
+  src/Data/Vault/IO.h
+  src/Data/Vault/ST/backends/GHC.h
+  src/Data/Vault/ST/backends/IORef.hs
+  src/Data/Vault/ST/ST.h
+extra-doc-files:
+  CHANGELOG.md
+  README.md
 
 source-repository head
-    type:           git
-    location:       git://github.com/HeinrichApfelmus/vault.git
+  type:     git
+  location: https://github.com/HeinrichApfelmus/vault.git
 
 flag UseGHC
-    description: Use GHC-specific packages and extensions.
-    default:     True
+  description: Use GHC-specific packages and extensions.
+  default:     True
 
-Library
-    hs-source-dirs:     src
-    build-depends:      base >= 4.5 && < 4.16,
-                        containers >= 0.4 && < 0.7,
-                        unordered-containers >= 0.2.3.0 && < 0.3,
-                        hashable >= 1.1.2.5 && < 1.4
-
-    if impl(ghc < 8.0)
-        build-depends:  semigroups >= 0.1 && < 1.0
-
-    default-language:   Haskell2010
-    default-extensions: CPP
-    ghc-options:        -Wall -fno-warn-missing-signatures
-
-    exposed-modules:
-                        Data.Vault.Lazy,
-                        Data.Vault.Strict,
-                        Data.Vault.ST.Lazy,
-                        Data.Vault.ST.Strict,
-                        Data.Unique.Really
-
-    if impl(ghc) && flag(UseGHC)
-        CPP-options:    -DUseGHC
+library
+  default-language:   Haskell2010
+  default-extensions: CPP
+  build-depends:
+    , base                  >=4.11    && <4.23
+    , containers            >=0.5     && <0.9
+    , hashable              >=1.1.2.5 && <1.6
+    , unordered-containers  >=0.2.3.0 && <0.3
+
+  ghc-options:        -Wall -fno-warn-missing-signatures
+  hs-source-dirs:     src
+  exposed-modules:
+    Data.Unique.Really
+    Data.Vault.Lazy
+    Data.Vault.ST.Lazy
+    Data.Vault.ST.Strict
+    Data.Vault.Strict
+
+  if (impl(ghc) && flag(useghc))
+    cpp-options: -DUseGHC
+
+  if impl(mhs)
+    build-depends:
+      , unordered-containers >= 0.2.21

Reply via email to