Hello community,
here is the log from the commit of package ghc-profunctors for openSUSE:Factory
checked in at 2019-10-18 14:34:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-profunctors (Old)
and /work/SRC/openSUSE:Factory/.ghc-profunctors.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-profunctors"
Fri Oct 18 14:34:33 2019 rev:11 rq:737210 version:5.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-profunctors/ghc-profunctors.changes
2019-05-17 23:42:56.989919848 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-profunctors.new.2352/ghc-profunctors.changes
2019-10-18 14:34:33.996062326 +0200
@@ -1,0 +2,9 @@
+Sat Sep 7 02:01:38 UTC 2019 - [email protected]
+
+- Update profunctors to version 5.5.
+ 5.5 [2019.09.06]
+ ----------------
+ * Change the type of `roam` to make it actually useful.
+ * Add a `Cochoice` instance for `Forget`.
+
+-------------------------------------------------------------------
Old:
----
profunctors-5.4.tar.gz
New:
----
profunctors-5.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-profunctors.spec ++++++
--- /var/tmp/diff_new_pack.8Rc7kJ/_old 2019-10-18 14:34:34.636060659 +0200
+++ /var/tmp/diff_new_pack.8Rc7kJ/_new 2019-10-18 14:34:34.636060659 +0200
@@ -18,7 +18,7 @@
%global pkg_name profunctors
Name: ghc-%{pkg_name}
-Version: 5.4
+Version: 5.5
Release: 0
Summary: Profunctors
License: BSD-3-Clause
++++++ profunctors-5.4.tar.gz -> profunctors-5.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.4/.travis.yml
new/profunctors-5.5/.travis.yml
--- old/profunctors-5.4/.travis.yml 2001-09-09 03:46:40.000000000 +0200
+++ new/profunctors-5.5/.travis.yml 2001-09-09 03:46:40.000000000 +0200
@@ -4,7 +4,7 @@
#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
-# version: 0.3.20190425
+# version: 0.4
#
language: c
dist: xenial
@@ -35,34 +35,32 @@
include:
- compiler: ghc-8.8.1
addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
- env: GHCHEAD=true
- compiler: ghc-8.6.5
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-3.0"]}}
- compiler: ghc-8.4.4
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-3.0"]}}
- compiler: ghc-8.2.2
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0"]}}
- compiler: ghc-8.0.2
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0"]}}
- compiler: ghc-7.10.3
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-3.0"]}}
- compiler: ghc-7.8.4
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}}
+ addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-3.0"]}}
- compiler: ghc-head
addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
- env: GHCHEAD=true
allow_failures:
- compiler: ghc-head
- - compiler: ghc-8.8.1
before_install:
- HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
+ - WITHCOMPILER="-w $HC"
- HCPKG="$HC-pkg"
- unset CC
- CABAL=/opt/ghc/bin/cabal
- CABALHOME=$HOME/.cabal
- export PATH="$CABALHOME/bin:$PATH"
- TOP=$(pwd)
- - HCNUMVER=$(( $(${HC} --numeric-version|sed -E
's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
+ - "HCNUMVER=$(${HC} --numeric-version|perl -ne
'/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 ==
0 ? $5 != 1 : $3))')"
- echo $HCNUMVER
- CABAL="$CABAL -vnormal+nowrap+markoutput"
- set -o pipefail
@@ -89,11 +87,13 @@
- echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2>
/dev/null || echo '?')]"
- TEST=--enable-tests
- BENCH=--enable-benchmarks
- - GHCHEAD=${GHCHEAD-false}
+ - HEADHACKAGE=false
+ - if [ $HCNUMVER -gt 80801 ] ; then HEADHACKAGE=true ; fi
- rm -f $CABALHOME/config
- |
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
echo "remote-build-reporting: anonymous" >> $CABALHOME/config
+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
echo "world-file: $CABALHOME/world" >> $CABALHOME/config
@@ -107,36 +107,34 @@
echo "repository hackage.haskell.org" >> $CABALHOME/config
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
- |
- if $GHCHEAD; then
+ if $HEADHACKAGE; then
echo "allow-newer: $($HCPKG list --simple-output | sed -E
's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
-
- echo "repository head.hackage"
>> $CABALHOME/config
- echo " url: http://head.hackage.haskell.org/"
>> $CABALHOME/config
+ echo "repository head.hackage.ghc.haskell.org"
>> $CABALHOME/config
+ echo " url: https://ghc.gitlab.haskell.org/head.hackage/"
>> $CABALHOME/config
echo " secure: True"
>> $CABALHOME/config
- echo " root-keys:
07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740" >>
$CABALHOME/config
- echo "
2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb" >>
$CABALHOME/config
- echo "
8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e" >>
$CABALHOME/config
+ echo " root-keys:
7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >>
$CABALHOME/config
+ echo "
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >>
$CABALHOME/config
+ echo "
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >>
$CABALHOME/config
echo " key-threshold: 3"
>> $CABALHOME/config
fi
- cat $CABALHOME/config
- rm -fv cabal.project cabal.project.local cabal.project.freeze
- travis_retry ${CABAL} v2-update -v
- - if [ $HCNUMVER -eq 80801 ] ; then ${CABAL} v2-install -w ${HC} -j2 hlint
--constraint='hlint ==2.1.*' | color_cabal_output ; fi
+ - if [ $HCNUMVER -ge 80800 ] && [ $HCNUMVER -lt 80802 ] ; then (cd /tmp &&
${CABAL} v2-install $WITHCOMPILER -j2 hlint --constraint='hlint ==2.1.*' |
color_cabal_output) ; fi
# Generate cabal.project
- rm -rf cabal.project cabal.project.local cabal.project.freeze
- touch cabal.project
- |
- echo 'packages: "."' >> cabal.project
+ echo "packages: ." >> cabal.project
- |
- echo "write-ghc-environment-files: always" >> cabal.project
- - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | grep -vE -- '^(profunctors)$' | sed 's/^/constraints: /' | sed
's/$/ installed/' >> cabal.project.local; done"
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | (grep -vE -- '^(profunctors)$' || true) | sed 's/^/constraints:
/' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
- if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
- - ${CABAL} v2-freeze -w ${HC} ${TEST} ${BENCH} | color_cabal_output
+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output
- "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed
's/any.//'"
- rm cabal.project.freeze
- - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all |
color_cabal_output
+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all |
color_cabal_output
script:
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
# Packaging...
@@ -144,26 +142,27 @@
# Unpacking...
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
- cd ${DISTDIR} || false
- - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \;
+ - PKGDIR_profunctors="$(find . -maxdepth 1 -type d -regex
'.*/profunctors-[0-9.]*')"
# Generate cabal.project
- rm -rf cabal.project cabal.project.local cabal.project.freeze
- touch cabal.project
- |
- echo 'packages: "profunctors-*/*.cabal"' >> cabal.project
+ echo "packages: ${PKGDIR_profunctors}" >> cabal.project
- |
- echo "write-ghc-environment-files: always" >> cabal.project
- - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | grep -vE -- '^(profunctors)$' | sed 's/^/constraints: /' | sed
's/$/ installed/' >> cabal.project.local; done"
+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | (grep -vE -- '^(profunctors)$' || true) | sed 's/^/constraints:
/' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
# Building with tests and benchmarks...
# build & run tests, build benchmarks
- - ${CABAL} v2-build -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
# HLint..
- - if [ $HCNUMVER -eq 80801 ] ; then (cd profunctors-* && hlint --cpp-ansi
--cpp-define=HLINT src) ; fi
+ - if [ $HCNUMVER -ge 80800 ] && [ $HCNUMVER -lt 80802 ] ; then (cd
${PKGDIR_profunctors} && hlint src) ; fi
# cabal check...
- - (cd profunctors-* && ${CABAL} -vnormal check)
+ - (cd ${PKGDIR_profunctors} && ${CABAL} -vnormal check)
# haddock...
- - ${CABAL} v2-haddock -w ${HC} ${TEST} ${BENCH} all | color_cabal_output
+ - ${CABAL} v2-haddock $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
# REGENDATA
["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]
# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.4/CHANGELOG.markdown
new/profunctors-5.5/CHANGELOG.markdown
--- old/profunctors-5.4/CHANGELOG.markdown 2001-09-09 03:46:40.000000000
+0200
+++ new/profunctors-5.5/CHANGELOG.markdown 2001-09-09 03:46:40.000000000
+0200
@@ -1,3 +1,8 @@
+5.5 [2019.09.06]
+----------------
+* Change the type of `roam` to make it actually useful.
+* Add a `Cochoice` instance for `Forget`.
+
5.4 [2019.05.10]
----------------
* Add `wander`-like combinator `roam` to `Mapping`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.4/profunctors.cabal
new/profunctors-5.5/profunctors.cabal
--- old/profunctors-5.4/profunctors.cabal 2001-09-09 03:46:40.000000000
+0200
+++ new/profunctors-5.5/profunctors.cabal 2001-09-09 03:46:40.000000000
+0200
@@ -1,6 +1,6 @@
name: profunctors
category: Control, Categories
-version: 5.4
+version: 5.5
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.4/src/Data/Profunctor/Choice.hs
new/profunctors-5.5/src/Data/Profunctor/Choice.hs
--- old/profunctors-5.4/src/Data/Profunctor/Choice.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.5/src/Data/Profunctor/Choice.hs 2001-09-09
03:46:40.000000000 +0200
@@ -73,8 +73,8 @@
-- assocE ('Right' c) = 'Right' ('Right' c)
-- unassocE :: 'Either' a ('Either' b c) -> 'Either' ('Either' a b) c
-- unassocE ('Left' a) = 'Left' ('Left' a)
- -- unassocE ('Right' ('Left' b) = 'Left' ('Right' b)
- -- unassocE ('Right' ('Right' c)) = 'Right' c)
+ -- unassocE ('Right' ('Left' b)) = 'Left' ('Right' b)
+ -- unassocE ('Right' ('Right' c)) = 'Right' c
-- @
left' :: p a b -> p (Either a c) (Either b c)
left' = dimap (either Right Left) (either Right Left) . right'
@@ -94,8 +94,8 @@
-- assocE ('Right' c) = 'Right' ('Right' c)
-- unassocE :: 'Either' a ('Either' b c) -> 'Either' ('Either' a b) c
-- unassocE ('Left' a) = 'Left' ('Left' a)
- -- unassocE ('Right' ('Left' b) = 'Left' ('Right' b)
- -- unassocE ('Right' ('Right' c)) = 'Right' c)
+ -- unassocE ('Right' ('Left' b)) = 'Left' ('Right' b)
+ -- unassocE ('Right' ('Right' c)) = 'Right' c
-- @
right' :: p a b -> p (Either c a) (Either c b)
right' = dimap (either Right Left) (either Right Left) . left'
@@ -297,8 +297,8 @@
-- assocE ('Right' c) = 'Right' ('Right' c)
-- unassocE :: 'Either' a ('Either' b c) -> 'Either' ('Either' a b) c
-- unassocE ('Left' a) = 'Left' ('Left' a)
- -- unassocE ('Right' ('Left' b) = 'Left' ('Right' b)
- -- unassocE ('Right' ('Right' c)) = 'Right' c)
+ -- unassocE ('Right' ('Left' b)) = 'Left' ('Right' b)
+ -- unassocE ('Right' ('Right' c)) = 'Right' c
-- @
unleft :: p (Either a d) (Either b d) -> p a b
unleft = unright . dimap (either Right Left) (either Right Left)
@@ -318,8 +318,8 @@
-- assocE ('Right' c) = 'Right' ('Right' c)
-- unassocE :: 'Either' a ('Either' b c) -> 'Either' ('Either' a b) c
-- unassocE ('Left' a) = 'Left' ('Left' a)
- -- unassocE ('Right' ('Left' b) = 'Left' ('Right' b)
- -- unassocE ('Right' ('Right' c)) = 'Right' c)
+ -- unassocE ('Right' ('Left' b)) = 'Left' ('Right' b)
+ -- unassocE ('Right' ('Right' c)) = 'Right' c
-- @
unright :: p (Either d a) (Either d b) -> p a b
unright = unleft . dimap (either Right Left) (either Right Left)
@@ -349,6 +349,10 @@
unleft (Pair p q) = Pair (unleft p) (unleft q)
unright (Pair p q) = Pair (unright p) (unright q)
+instance Cochoice (Forget r) where
+ unleft (Forget f) = Forget (f . Left)
+ unright (Forget f) = Forget (f . Right)
+
----------------------------------------------------------------------------
-- * CotambaraSum
----------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.4/src/Data/Profunctor/Mapping.hs
new/profunctors-5.5/src/Data/Profunctor/Mapping.hs
--- old/profunctors-5.4/src/Data/Profunctor/Mapping.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.5/src/Data/Profunctor/Mapping.hs 2001-09-09
03:46:40.000000000 +0200
@@ -47,45 +47,51 @@
-- 'dimap' 'Data.Functor.Identity.Identity'
'Data.Functor.Identity.runIdentity' '.' 'map'' ≡ 'id'
-- @
map' :: Functor f => p a b -> p (f a) (f b)
- map' = roam collect
+ map' = roam fmap
- roam :: (forall f. (Distributive f, Applicative f)
- => (a -> f b) -> s -> f t)
+ roam :: ((a -> b) -> s -> t)
-> p a b -> p s t
- roam f = dimap (\s -> Bar $ \afb -> f afb s) lent . map'
+ roam f = dimap (\s -> Bar $ \ab -> f ab s) lent . map'
newtype Bar t b a = Bar
- { runBar :: forall f. (Distributive f, Applicative f)
- => (a -> f b) -> f t }
+ { runBar :: (a -> b) -> t }
deriving Functor
lent :: Bar t a a -> t
-lent m = runIdentity (runBar m Identity)
+lent m = runBar m id
instance Mapping (->) where
map' = fmap
- roam f g = runIdentity #. f (Identity #. g)
+ roam f = f
instance (Monad m, Distributive m) => Mapping (Kleisli m) where
map' (Kleisli f) = Kleisli (collect f)
#if __GLASGOW_HASKELL__ >= 710
- roam f = Kleisli #. f .# runKleisli
+ roam f = Kleisli #. genMap f .# runKleisli
+#else
+ -- We could actually use this implementation everywhere, but it's kind of a
+ -- warty mess, and there have been rumblings of WrappedMonad deprecation.
+ -- If/when GHC 7.8 moves out of the support window, this will vanish in a
+ -- puff of cleanup.
+ roam f = (Kleisli . (unwrapMonad .)) #. genMapW f .# ((WrapMonad .) .
runKleisli)
+ where
+ genMapW
+ :: (Monad m, Distributive m)
+ => ((a -> b) -> s -> t)
+ -> (a -> WrappedMonad m b) -> s -> WrappedMonad m t
+ genMapW abst amb s = WrapMonad $ (\ab -> abst ab s) <$> distribute
(unwrapMonad #. amb)
#endif
-{-
-For earlier versions, we'd like to use something like
- roam f = (Kleisli . (unwrapMonad .)) #. f .# ((WrapMonad .) . runKleisli)
-
-but it seems WrappedMonad doesn't have a Distributive instance.
--}
+genMap :: Distributive f => ((a -> b) -> s -> t) -> (a -> f b) -> s -> f t
+genMap abst afb s = fmap (\ab -> abst ab s) (distribute afb)
-- see <https://github.com/ekmett/distributive/issues/12>
instance (Applicative m, Distributive m) => Mapping (Star m) where
map' (Star f) = Star (collect f)
- roam f = Star #. f .# runStar
+ roam f = Star #. genMap f .# runStar
wanderMapping :: Mapping p => (forall f. Applicative f => (a -> f b) -> s -> f
t) -> p a b -> p s t
-wanderMapping f = roam f
+wanderMapping f = roam ((runIdentity .) #. f .# (Identity .))
traverseMapping :: (Mapping p, Functor f) => p a b -> p (f a) (f b)
traverseMapping = map'
@@ -111,15 +117,14 @@
instance Profunctor p => Traversing (CofreeMapping p) where
traverse' = map'
- wander f = roam f
+ wander f = roam $ (runIdentity .) #. f .# (Identity .)
instance Profunctor p => Mapping (CofreeMapping p) where
-- !@(#*&() Compose isn't representational in its second arg or we could use
#. and .#
map' (CofreeMapping p) = CofreeMapping (dimap Compose getCompose p)
roam f (CofreeMapping p) =
CofreeMapping $
- dimap (Compose #. fmap (\s -> Bar $ \afb -> f afb s))
- (fmap lent .# getCompose) p
+ dimap (Compose #. fmap (\s -> Bar $ \ab -> f ab s)) (fmap lent .#
getCompose) p
instance ProfunctorFunctor CofreeMapping where
promap f (CofreeMapping p) = CofreeMapping (f p)
@@ -150,7 +155,7 @@
instance Traversing (FreeMapping p) where
traverse' = map'
- wander f = roam f
+ wander f = roam ((runIdentity .) #. f .# (Identity .))
instance Mapping (FreeMapping p) where
map' (FreeMapping l m r) = FreeMapping (fmap l .# getCompose) m (Compose #.
fmap r)