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 @@ -[](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
