packages feed

unique 0 → 0.0.1

raw patch · 5 files changed

+47/−121 lines, 5 filesdep −ghc-primdep ~hashablenew-uploader

Dependencies removed: ghc-prim

Dependency ranges changed: hashable

Files

− .travis.yml
@@ -1,112 +0,0 @@-# This file has been generated -- see https://github.com/hvr/multi-ghc-travis-language: c-sudo: false--cache:-  directories:-    - $HOME/.cabsnap-    - $HOME/.cabal/packages-    - $HOME/.stack--before_cache:-  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log-  - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar--matrix:-  include:-    - env: CABALVER=1.16 GHCVER=7.4.2 BUILD=cabal-      compiler: ": #GHC 7.4.2"-      addons: {apt: {packages: [cabal-install-1.16,ghc-7.4.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.16 GHCVER=7.6.3 BUILD=cabal-      compiler: ": #GHC 7.6.3"-      addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.18 GHCVER=7.8.4 BUILD=cabal-      compiler: ": #GHC 7.8.4"-      addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.22 GHCVER=7.10.1 BUILD=cabal-      compiler: ": #GHC 7.10.1"-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.1,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: CABALVER=1.22 GHCVER=7.10.2 BUILD=cabal-      compiler: ": #GHC 7.10.2"-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: BUILD=stack STACK_OPTIONS=--skip-ghc-check-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.2,alex-3.1.4,happy-1.19.5], sources: [hvr-ghc]}}-    - env: BUILD=stack-      os: osx---before_install:- - unset CC- - case "$BUILD" in-     stack)-       export STACK_VERSION=0.1.3.0;-       export PATH=~/bin:$PATH;-       mkdir -p ~/bin;-       travis_retry curl -L https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-x86_64-$TRAVIS_OS_NAME.gz | gunzip > ~/bin/stack;-       chmod a+x ~/bin/stack;-       scripts/travis_long stack --no-terminal setup;;-     cabal)-       export HAPPYVER=1.19.5-       export ALEXVER=3.1.4-       export PATH=~/.cabal/bin:/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:/opt/happy/$HAPPYVER/bin:/opt/alex/$ALEXVER/bin:$PATH;;-   esac-install:- - case "$BUILD" in-     stack)-       scripts/travis_long stack --no-terminal $STACK_OPTIONS build --only-snapshot -j2;;-     cabal)-       echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"-       cabal --version;-       if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];-       then-         zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >-              $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;-       fi;-       travis_retry cabal update;-       cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt;-       sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt;-       if diff -u installplan.txt $HOME/.cabsnap/installplan.txt; then-         echo "cabal build-cache HIT";-         rm -rfv .ghc;-         cp -a $HOME/.cabsnap/ghc $HOME/.ghc;-         cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;-       else-         echo "cabal build-cache MISS";-         rm -rf $HOME/.cabsnap;-         mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;-         cabal install --only-dependencies --enable-tests --enable-benchmarks;-         if [ "$GHCVER" = "7.10.1" ]; then cabal install Cabal-1.22.4.0; fi;-       fi;-       if [ ! -d $HOME/.cabsnap ]; then-         echo "snapshotting package-db to build-cache";-         mkdir $HOME/.cabsnap;-         cp -a $HOME/.ghc $HOME/.cabsnap/ghc;-         cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;-       fi;;-   esac--# snapshot package-db on cache miss--# Here starts the actual work to be performed for the package under test;-# any command which exits with a non-zero exit code causes the build to fail.-script:- - case "$BUILD" in-     stack)-       scripts/travis_long stack --no-terminal $STACK_OPTIONS build -j2;;-     cabal)-       cabal configure --enable-tests -v2;-       cabal build;-       cabal test;-       cabal bench || true;-       cabal sdist || true;-       SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz && (cd dist && cabal install --force-reinstalls "$SRC_TGZ");;-   esac--notifications:-  irc:-    channels:-      - "irc.freenode.org#haskell-lens"-    skip_join: true-    template:-      - "\x0313unique\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f %{message} \x0302\x1f%{build_url}\x0f"-# EOF
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+## 0.0.1++* GHC-9.0 compatibility+* Mark `Control.Concurrent.Unique` as `Trustworthy`+ ## 0  * Repository initialized
README.markdown view
@@ -1,7 +1,8 @@ unique ============== -[![Hackage](https://img.shields.io/hackage/v/unique.svg)](https://hackage.haskell.org/package/unique) [![Build Status](https://secure.travis-ci.org/ekmett/unique.png?branch=master)](http://travis-ci.org/ekmett/unique)+[![Hackage](https://img.shields.io/hackage/v/unique.svg)](https://hackage.haskell.org/package/unique) [![Build Status](https://github.com/ekmett/unique/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/unique/actions?query=workflow%3AHaskell-CI)+  This package provides a version of Data.Unique that is fully concurrent. 
src/Control/Concurrent/Unique.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE MagicHash #-}+{-# LANGUAGE Trustworthy #-}  -- | An abstract interface to a concurrent unique symbol generator. --@@ -9,14 +10,35 @@   ( Unique, newUnique   ) where -import Data.Hashable+import Data.Hashable (Hashable (..)) import GHC.IO-import GHC.Prim-import GHC.Types+import GHC.Exts +-- $setup+-- >>> import Data.Hashable+ -- | Unique identifiers are created by creating heap objects in kind # that -- can be compared for value equality and then hashing them using their initial allocation -- address.+--+-- >>> x <- newUnique+-- >>> y <- newUnique+-- >>> z <- newUnique+--+-- >>> [x == x, y == y, z == z]+-- [True,True,True]+--+-- >>> [x == y, y == z, z == x]+-- [False,False,False]+--+-- The hashes could be same, in theory, but in practice they are different+-- as well.+--+-- >>> [ hash x == hash x, hash y == hash y, hash z == hash z]+-- [True,True,True]+--+-- >>> [ hash x == hash y, hash y == hash z, hash z == hash x]+-- [False,False,False]  -- TODO: If, due to a small heap size we find we have high collision rate on initial allocation location -- we might consider upgrading this initial hash with something fast and volatile, e.g. rdtsc
unique.cabal view
@@ -1,6 +1,6 @@ name:          unique category:      Concurrency, Data-version:       0+version:       0.0.1 license:       BSD3 cabal-version: >= 1.10 license-file:  LICENSE@@ -11,10 +11,21 @@ bug-reports:   http://github.com/ekmett/unique/issues copyright:     Copyright (C) 2015 Edward A. Kmett synopsis:      Fully concurrent unique identifiers-description:   Fully concurrent unique identifiers+description:   Fully concurrent unique identifiers. build-type:    Simple-extra-source-files: .travis.yml CHANGELOG.markdown README.markdown stack.yaml+extra-source-files: CHANGELOG.markdown README.markdown stack.yaml +tested-with:   GHC == 7.4.2+             , 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.4+             , GHC == 8.10.3+ source-repository head   type: git   location: git://github.com/ekmett/unique.git@@ -27,5 +38,4 @@   ghc-options: -Wall   build-depends:     base     >= 4.5 && < 5,-    hashable >= 1.1 && < 1.3,-    ghc-prim >= 0.2 && < 0.5+    hashable >= 1.1 && < 1.4