Hello community, here is the log from the commit of package ghc-free for openSUSE:Factory checked in at 2020-10-23 15:13:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-free (Old) and /work/SRC/openSUSE:Factory/.ghc-free.new.3463 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-free" Fri Oct 23 15:13:53 2020 rev:15 rq:842744 version:5.1.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-free/ghc-free.changes 2020-09-07 22:02:15.590074601 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-free.new.3463/ghc-free.changes 2020-10-23 15:13:53.990121281 +0200 @@ -1,0 +2,8 @@ +Tue Oct 6 08:56:01 UTC 2020 - [email protected] + +- Update free to version 5.1.4. + 5.1.4 [2020.10.01] + ------------------ + * Allow building with `template-haskell-2.17.0.0` (GHC 9.0). + +------------------------------------------------------------------- Old: ---- free-5.1.3.tar.gz free.cabal New: ---- free-5.1.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-free.spec ++++++ --- /var/tmp/diff_new_pack.rkIqzQ/_old 2020-10-23 15:13:54.718121632 +0200 +++ /var/tmp/diff_new_pack.rkIqzQ/_new 2020-10-23 15:13:54.718121632 +0200 @@ -18,13 +18,12 @@ %global pkg_name free Name: ghc-%{pkg_name} -Version: 5.1.3 +Version: 5.1.4 Release: 0 Summary: Monads for free 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/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-comonad-devel BuildRequires: ghc-containers-devel @@ -35,6 +34,7 @@ BuildRequires: ghc-rpm-macros BuildRequires: ghc-semigroupoids-devel BuildRequires: ghc-template-haskell-devel +BuildRequires: ghc-th-abstraction-devel BuildRequires: ghc-transformers-base-devel BuildRequires: ghc-transformers-devel @@ -70,7 +70,6 @@ %prep %autosetup -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build ++++++ free-5.1.3.tar.gz -> free-5.1.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/.travis.yml new/free-5.1.4/.travis.yml --- old/free-5.1.3/.travis.yml 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/.travis.yml 2001-09-09 03:46:40.000000000 +0200 @@ -2,9 +2,13 @@ # # haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci' 'cabal.project' # +# To regenerate the script (for example after adjusting tested-with) run +# +# haskell-ci regenerate +# # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.9.20191126 +# version: 0.10 # version: ~> 1.0 language: c @@ -19,7 +23,7 @@ - irc.freenode.org#haskell-lens skip_join: true template: - - "\"\\x0313free\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 %{build_url} %{message}\"" + - "\x0313free\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}" cache: directories: - $HOME/.cabal/packages @@ -37,41 +41,35 @@ jobs: include: - compiler: ghc-8.10.1 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}} os: linux - - compiler: ghc-8.8.1 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.1","cabal-install-3.0"]}} + - compiler: ghc-8.8.3 + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}} os: linux - compiler: ghc-8.6.5 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}} os: linux - compiler: ghc-8.4.4 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}} os: linux - compiler: ghc-8.2.2 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}} os: linux - compiler: ghc-8.0.2 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}} os: linux - compiler: ghc-7.10.3 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}} os: linux - compiler: ghc-7.8.4 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}} os: linux - compiler: ghc-7.6.3 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.6.3","cabal-install-3.0"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.6.3","cabal-install-3.2"]}} os: linux - compiler: ghc-7.4.2 - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.4.2","cabal-install-3.0"]}} - os: linux - - compiler: ghc-head - addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-head","cabal-install-head"]}} + addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.4.2","cabal-install-3.2"]}} os: linux - allow_failures: - - compiler: ghc-head - - compiler: ghc-8.10.1 before_install: - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//') - WITHCOMPILER="-w $HC" @@ -84,69 +82,31 @@ - TOP=$(pwd) - "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" + - CABAL="$CABAL -vnormal+nowrap" - set -o pipefail - - | - echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >> .colorful.awk - echo 'BEGIN { state = "output"; }' >> .colorful.awk - echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >> .colorful.awk - echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >> .colorful.awk - echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> .colorful.awk - echo ' if (state == "cabal") {' >> .colorful.awk - echo ' print blue($0)' >> .colorful.awk - echo ' } else {' >> .colorful.awk - echo ' print $0' >> .colorful.awk - echo ' }' >> .colorful.awk - echo '}' >> .colorful.awk - - cat .colorful.awk - - | - color_cabal_output () { - awk -f $TOP/.colorful.awk - } - - echo text | color_cabal_output -install: - - ${CABAL} --version - - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" - TEST=--enable-tests - BENCH=--enable-benchmarks - HEADHACKAGE=false - - if [ $HCNUMVER -ge 81000 ] ; 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 - echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config - echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config - echo "installdir: $CABALHOME/bin" >> $CABALHOME/config - echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config - echo "store-dir: $CABALHOME/store" >> $CABALHOME/config - echo "install-dirs user" >> $CABALHOME/config - echo " prefix: $CABALHOME" >> $CABALHOME/config - echo "repository hackage.haskell.org" >> $CABALHOME/config - echo " url: http://hackage.haskell.org/" >> $CABALHOME/config - echo " secure: True" >> $CABALHOME/config - echo " key-threshold: 3" >> $CABALHOME/config - echo " root-keys:" >> $CABALHOME/config - echo " fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0" >> $CABALHOME/config - echo " 1ea9ba32c526d1cc91ab5e5bd364ec5e9e8cb67179a471872f6e26f0ae773d42" >> $CABALHOME/config - echo " 2c6c3627bd6c982990239487f1abd02e08a02e6cf16edb105a8012d444d870c3" >> $CABALHOME/config - echo " 0a5c7ea47cd1b15f01f5f51a33adda7e655bc0f0b0615baa8e271f4c3351e21d" >> $CABALHOME/config - echo " 51f0161b906011b52c6613376b1ae937670da69322113a246a09f807c62f6921" >> $CABALHOME/config - - | - 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.ghc.haskell.org" >> $CABALHOME/config - echo " url: https://ghc.gitlab.haskell.org/head.hackage/" >> $CABALHOME/config - echo " secure: True" >> $CABALHOME/config - echo " root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >> $CABALHOME/config - echo " 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >> $CABALHOME/config - echo " f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> $CABALHOME/config - echo " key-threshold: 3" >> $CABALHOME/config - fi + 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 + echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config + echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config + echo "installdir: $CABALHOME/bin" >> $CABALHOME/config + echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config + echo "store-dir: $CABALHOME/store" >> $CABALHOME/config + echo "install-dirs user" >> $CABALHOME/config + echo " prefix: $CABALHOME" >> $CABALHOME/config + echo "repository hackage.haskell.org" >> $CABALHOME/config + echo " url: http://hackage.haskell.org/" >> $CABALHOME/config +install: + - ${CABAL} --version + - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" - | echo "program-default-options" >> $CABALHOME/config echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config @@ -159,6 +119,10 @@ - | echo "packages: ." >> cabal.project echo "packages: ./examples" >> cabal.project + - if [ $HCNUMVER -ge 80200 ] ; then echo 'package free' >> cabal.project ; fi + - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi" + - if [ $HCNUMVER -ge 80200 ] ; then echo 'package free-examples' >> cabal.project ; fi + - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi" - | echo "package free-examples" >> cabal.project echo " flags: -mandelbrot-iter" >> cabal.project @@ -167,14 +131,14 @@ - cat cabal.project.local || true - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi - if [ -f "./examples/configure.ac" ]; then (cd "./examples" && autoreconf -i); fi - - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output + - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'" - rm cabal.project.freeze - - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all | color_cabal_output + - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all script: - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) # Packaging... - - ${CABAL} v2-sdist all | color_cabal_output + - ${CABAL} v2-sdist all # Unpacking... - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/ - cd ${DISTDIR} || false @@ -188,6 +152,10 @@ - | echo "packages: ${PKGDIR_free}" >> cabal.project echo "packages: ${PKGDIR_free_examples}" >> cabal.project + - if [ $HCNUMVER -ge 80200 ] ; then echo 'package free' >> cabal.project ; fi + - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi" + - if [ $HCNUMVER -ge 80200 ] ; then echo 'package free-examples' >> cabal.project ; fi + - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options: -Werror=missing-methods' >> cabal.project ; fi" - | echo "package free-examples" >> cabal.project echo " flags: -mandelbrot-iter" >> cabal.project @@ -196,12 +164,12 @@ - cat cabal.project.local || true # Building with tests and benchmarks... # build & run tests, build benchmarks - - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output + - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all # cabal check... - (cd ${PKGDIR_free} && ${CABAL} -vnormal check) - (cd ${PKGDIR_free_examples} && ${CABAL} -vnormal check) # haddock... - - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all | color_cabal_output + - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all -# REGENDATA ("0.9.20191126",["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]) +# REGENDATA ("0.10",["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]) # EOF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/CHANGELOG.markdown new/free-5.1.4/CHANGELOG.markdown --- old/free-5.1.3/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/CHANGELOG.markdown 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,7 @@ +5.1.4 [2020.10.01] +------------------ +* Allow building with `template-haskell-2.17.0.0` (GHC 9.0). + 5.1.3 [2019.11.26] ------------------ * Allow building with `template-haskell-2.16` (GHC 8.10). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/doc/proof/Control/Comonad/Trans/Cofree/instance-Applicative-CofreeT.md new/free-5.1.4/doc/proof/Control/Comonad/Trans/Cofree/instance-Applicative-CofreeT.md --- old/free-5.1.3/doc/proof/Control/Comonad/Trans/Cofree/instance-Applicative-CofreeT.md 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/doc/proof/Control/Comonad/Trans/Cofree/instance-Applicative-CofreeT.md 2001-09-09 03:46:40.000000000 +0200 @@ -200,7 +200,7 @@ . ≡ (.) ``` -By repeteadly applying the Applicative laws for the underlying functor, we +By repeatedly applying the Applicative laws for the underlying functor, we get: ```haskell @@ -288,7 +288,7 @@ $W ≡ ($ star(C w)) ``` -By repeteadly applying composition law for w, we get: +By repeatedly applying composition law for w, we get: ```haskell diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/doc/proof/Control/Comonad/Trans/Cofree/instance-Monad-CofreeT.md new/free-5.1.4/doc/proof/Control/Comonad/Trans/Cofree/instance-Monad-CofreeT.md --- old/free-5.1.3/doc/proof/Control/Comonad/Trans/Cofree/instance-Monad-CofreeT.md 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/doc/proof/Control/Comonad/Trans/Cofree/instance-Monad-CofreeT.md 2001-09-09 03:46:40.000000000 +0200 @@ -20,7 +20,7 @@ This definition is equivalent to that of the Cofree module if 'w' is identity. -The tokens `CofreeT` and `runCofreeT` are abreviated as `C` and `unC`, +The tokens `CofreeT` and `runCofreeT` are abbreviated as `C` and `unC`, respectively, for readability. ## Left identity diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/examples/MandelbrotIter.lhs new/free-5.1.4/examples/MandelbrotIter.lhs --- old/free-5.1.3/examples/MandelbrotIter.lhs 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/examples/MandelbrotIter.lhs 2001-09-09 03:46:40.000000000 +0200 @@ -1,18 +1,15 @@ -Compiling to an executable file with the @-O2@ optimization level is recomended. +Compiling to an executable file with the @-O2@ optimization level is recommended. For example: @ghc -o 'mandelbrot_iter' -O2 MandelbrotIter.lhs ; ./mandelbrot_iter@ > {-# LANGUAGE PackageImports #-} -> import Control.Arrow +> import Control.Arrow hiding (loop) > import Control.Monad.Trans.Iter > import "mtl" Control.Monad.Reader -> import "mtl" Control.Monad.List -> import "mtl" Control.Monad.Identity -> import Control.Monad.IO.Class > import Data.Complex > import Graphics.HGL (runGraphics, Window, withPen, -> line, RGB (RGB), RedrawMode (Unbuffered, DoubleBuffered), openWindowEx, +> line, RGB (RGB), RedrawMode (DoubleBuffered), openWindowEx, > drawInWindow, mkPen, Style (Solid)) Some fractals can be defined by infinite sequences of complex numbers. For example, @@ -20,11 +17,11 @@ the following sequence is generated for each point @c@ in the complex plane: @ -z₀ = c +z₀ = c -z₁ = z₀² + c +z₁ = z₀² + c -z₂ = z₁² + c +z₂ = z₁² + c … @ @@ -96,7 +93,7 @@ Drawing a point is equivalent to drawing a line of length one. > drawPoint :: RGB -> (Int,Int) -> FractalM () -> drawPoint color p@(x,y) = do +> drawPoint color (x,y) = do > w <- asks window > let point = line (x,y) (x+1, y+1) > liftIO $ drawInWindow w $ mkPen Solid 1 color (flip withPen point) @@ -133,6 +130,6 @@ > runGraphics $ do > w <- openWindowEx "Mandelbrot" Nothing (windowWidth, windowHeight) > DoubleBuffered (Just 1) > let canvas = Canvas windowWidth windowHeight w -> runFractalM' 100 canvas drawMandelbrot +> _ <- runFractalM' 100 canvas drawMandelbrot > putStrLn $ "Fin" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/examples/free-examples.cabal new/free-5.1.4/examples/free-examples.cabal --- old/free-5.1.3/examples/free-examples.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/examples/free-examples.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -18,7 +18,7 @@ , GHC == 8.2.2 , GHC == 8.4.4 , GHC == 8.6.5 - , GHC == 8.8.1 + , GHC == 8.8.3 , GHC == 8.10.1 synopsis: Monads for free description: Examples projects using @free@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/free.cabal new/free-5.1.4/free.cabal --- old/free-5.1.3/free.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/free.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,6 +1,6 @@ name: free category: Control, Monads -version: 5.1.3 +version: 5.1.4 license: BSD3 cabal-version: 1.18 license-file: LICENSE @@ -18,7 +18,7 @@ , GHC == 8.2.2 , GHC == 8.4.4 , GHC == 8.6.5 - , GHC == 8.8.1 + , GHC == 8.8.3 , GHC == 8.10.1 synopsis: Monads for free description: @@ -87,9 +87,10 @@ mtl >= 2.0.1.0 && < 2.3, profunctors >= 4 && < 6, semigroupoids >= 4 && < 6, + th-abstraction >= 0.4 && < 0.5, transformers >= 0.2.0 && < 0.6, transformers-base >= 0.4 && < 0.5, - template-haskell >= 2.7.0.0 && < 3, + template-haskell >= 2.7.0.0 && < 2.18, exceptions >= 0.6 && < 0.11, containers < 0.7 @@ -133,6 +134,9 @@ -- See https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#base-4.9.0.0 if impl(ghc >= 8.0) - ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances + ghc-options: -Wcompat -Wnoncanonical-monad-instances + + if !impl(ghc >= 8.8) + ghc-options: -Wnoncanonical-monadfail-instances else build-depends: fail == 4.9.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/src/Control/Comonad/Cofree.hs new/free-5.1.4/src/Control/Comonad/Cofree.hs --- old/free-5.1.3/src/Control/Comonad/Cofree.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/src/Control/Comonad/Cofree.hs 2001-09-09 03:46:40.000000000 +0200 @@ -91,7 +91,7 @@ -- -- For instance, -- --- * @'Cofree' 'Maybe'@ forms the a comonad for a non-empty list. +-- * @'Cofree' 'Maybe'@ forms the comonad for a non-empty list. -- -- * @'Cofree' ('Const' b)@ is a product. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-5.1.3/src/Control/Monad/Free/TH.hs new/free-5.1.4/src/Control/Monad/Free/TH.hs --- old/free-5.1.3/src/Control/Monad/Free/TH.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/free-5.1.4/src/Control/Monad/Free/TH.hs 2001-09-09 03:46:40.000000000 +0200 @@ -36,7 +36,8 @@ import Control.Monad import Data.Char (toLower) import Data.List ((\\), nub) -import Language.Haskell.TH +import Language.Haskell.TH.Datatype.TyVarBndr +import Language.Haskell.TH.Ppr (pprint) import Language.Haskell.TH.Syntax #if !(MIN_VERSION_base(4,8,0)) @@ -63,10 +64,6 @@ zipExprs ps (c:cs) (Captured _ _ : as) = c : zipExprs ps cs as zipExprs _ _ _ = [] -tyVarBndrName :: TyVarBndr -> Name -tyVarBndrName (PlainTV name) = name -tyVarBndrName (KindedTV name _) = name - findTypeOrFail :: String -> Q Name findTypeOrFail s = lookupTypeName s >>= maybe (fail $ s ++ " is not in scope") return @@ -86,7 +83,7 @@ usesTV n (VarT name) = n == name usesTV n (AppT t1 t2) = any (usesTV n) [t1, t2] usesTV n (SigT t _ ) = usesTV n t -usesTV n (ForallT bs _ t) = usesTV n t && n `notElem` map tyVarBndrName bs +usesTV n (ForallT bs _ t) = usesTV n t && n `notElem` map tvName bs usesTV _ _ = False -- | Analyze constructor argument. @@ -184,10 +181,7 @@ , unlines (map (pprint . fst) xs) ] extractVars :: Type -> [Name] -extractVars (ForallT bs _ t) = extractVars t \\ map bndrName bs - where - bndrName (PlainTV n) = n - bndrName (KindedTV n _) = n +extractVars (ForallT bs _ t) = extractVars t \\ map tvName bs extractVars (VarT n) = [n] extractVars (AppT x y) = extractVars x ++ extractVars y #if MIN_VERSION_template_haskell(2,8,0) @@ -202,7 +196,7 @@ #endif extractVars _ = [] -liftCon' :: Bool -> [TyVarBndr] -> Cxt -> Type -> Type -> [Type] -> Name -> [Type] -> Q [Dec] +liftCon' :: Bool -> [TyVarBndrSpec] -> Cxt -> Type -> Type -> [Type] -> Name -> [Type] -> Q [Dec] liftCon' typeSig tvbs cx f n ns cn ts = do -- prepare some names opName <- mkName <$> mkOpName (nameBase cn) @@ -225,7 +219,7 @@ exprs = zipExprs (map VarE xs) es args -- this is what ctor would be applied to fval = foldl AppE (ConE cn) exprs -- this is RHS without liftF ns' = nub (concatMap extractVars ns) - q = filter nonNext tvbs ++ map PlainTV (qa ++ m : ns') + q = filter nonNext tvbs ++ map plainTVSpecified (qa ++ m : ns') qa = case retType of VarT b | a == b -> [a]; _ -> [] f' = foldl AppT f ns return $ concat @@ -238,11 +232,10 @@ else [] , [ FunD opName [ Clause pat (NormalB $ AppE (VarE liftF) fval) [] ] ] ] where - nonNext (PlainTV pn) = VarT pn /= n - nonNext (KindedTV kn _) = VarT kn /= n + nonNext tv = VarT (tvName tv) /= n -- | Provide free monadic actions for a single value constructor. -liftCon :: Bool -> [TyVarBndr] -> Cxt -> Type -> Type -> [Type] -> Maybe [Name] -> Con -> Q [Dec] +liftCon :: Bool -> [TyVarBndrSpec] -> Cxt -> Type -> Type -> [Type] -> Maybe [Name] -> Con -> Q [Dec] liftCon typeSig ts cx f n ns onlyCons con | not (any (`melem` onlyCons) (constructorNames con)) = return [] | otherwise = case con of @@ -264,15 +257,21 @@ _ -> fail $ "Unsupported constructor type: `" ++ pprint con ++ "'" #if MIN_VERSION_template_haskell(2,11,0) -splitAppT :: Type -> [Type] -splitAppT (AppT x y) = splitAppT x ++ [y] -splitAppT t = [t] +splitAppT :: Type -> (Type, [Type]) +splitAppT ty = go ty ty [] + where + go :: Type -> Type -> [Type] -> (Type, [Type]) + go _ (AppT ty1 ty2) args = go ty1 ty1 (ty2:args) + go origTy (SigT ty' _) args = go origTy ty' args + go origTy (InfixT ty1 n ty2) args = go origTy (ConT n `AppT` ty1 `AppT` ty2) args + go origTy (ParensT ty') args = go origTy ty' args + go origTy _ args = (origTy, args) -liftGadtC :: Name -> [BangType] -> Type -> Bool -> [TyVarBndr] -> Cxt -> Type -> Q [Dec] +liftGadtC :: Name -> [BangType] -> Type -> Bool -> [TyVarBndrSpec] -> Cxt -> Type -> Q [Dec] liftGadtC cName fields resType typeSig ts cx f = liftCon typeSig ts cx f nextTy (init tys) Nothing (NormalC cName fields) where - (_f : tys) = splitAppT resType + (_f, tys) = splitAppT resType nextTy = last tys #endif @@ -305,7 +304,7 @@ | null tyVarBndrs = fail $ "Type constructor " ++ pprint tyName ++ " needs at least one type parameter" | otherwise = concat <$> mapM (liftCon typeSig [] [] con nextTy (init tys) onlyCons) cons where - tys = map (VarT . tyVarBndrName) tyVarBndrs + tys = map (VarT . tvName) tyVarBndrs nextTy = last tys con = ConT tyName liftDec _ _ dec = fail $ unlines
