From 6cd647b946a4c21576edd5929ebb544772755a502b366d88c8296f99db754fe2 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Tue, 1 Sep 2020 01:01:41 +0000 Subject: [PATCH 1/3] osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-lens revision:14, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-lens?expand=0&rev=30 --- ghc-lens.changes | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ghc-lens.changes b/ghc-lens.changes index f32d5b1..28b0bfa 100644 --- a/ghc-lens.changes +++ b/ghc-lens.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Aug 31 09:34:39 UTC 2020 - psimons@suse.com + +- Update lens to version 4.19.2 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + ------------------------------------------------------------------- Tue Aug 18 10:45:18 UTC 2020 - Peter Simons From 940a18a447e4ce78bdc8fc54c26370c65b98221e5e28c91be653da85acfc8936 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 4 Sep 2020 15:03:39 +0000 Subject: [PATCH 2/3] osc copypac from project:devel:languages:haskell:ghc-8.6.x package:ghc-lens revision:12, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-lens?expand=0&rev=31 --- ghc-lens.changes | 50 ----- ghc-lens.spec | 10 +- lens-4.18.1.tar.gz | 3 + lens-4.19.2.tar.gz | 3 - lens.cabal | 546 --------------------------------------------- 5 files changed, 8 insertions(+), 604 deletions(-) create mode 100644 lens-4.18.1.tar.gz delete mode 100644 lens-4.19.2.tar.gz delete mode 100644 lens.cabal diff --git a/ghc-lens.changes b/ghc-lens.changes index 28b0bfa..d159325 100644 --- a/ghc-lens.changes +++ b/ghc-lens.changes @@ -1,53 +1,3 @@ -------------------------------------------------------------------- -Mon Aug 31 09:34:39 UTC 2020 - psimons@suse.com - -- Update lens to version 4.19.2 revision 1. - Upstream has revised the Cabal build instructions on Hackage. - -------------------------------------------------------------------- -Tue Aug 18 10:45:18 UTC 2020 - Peter Simons - -- Replace %setup -q with the more modern %autosetup macro. - -------------------------------------------------------------------- -Tue Jun 16 11:14:19 UTC 2020 - Peter Simons - -- Re-generate file with latest version of spec-cleaner. - -------------------------------------------------------------------- -Wed May 6 06:54:11 UTC 2020 - psimons@suse.com - -- Update lens to version 4.19.2. - 4.19.2 [2020.04.15] - ------------------- - * Remove the test suite's dependency on `test-framework-th`. - -------------------------------------------------------------------- -Thu Feb 27 14:17:53 UTC 2020 - psimons@suse.com - -- Update lens to version 4.19.1. - 4.19.1 [2020.02.13] - ------------------- - * Fix a bug introduced in 4.19 where using `_TupE` to `preview` a value would - always fail. - -------------------------------------------------------------------- -Fri Feb 7 08:04:19 UTC 2020 - psimons@suse.com - -- Update lens to version 4.19. - 4.19 [2020.02.03] - ----------------- - * Support building with GHC 8.10. - * The types of `_TupE` and `_UnboxedTupE` are now `Prism' Exp [Maybe Exp]` - when built against `template-haskell-2.16` or later to reflect the new - types of `TupE` and `UnboxedTupE`. - * Add `_ForallVisT` and `_BytesPrimL` prisms when building against - `template-haskell-2.16` or later. - * Make `<>~` and `<>=` and their ` diff --git a/ghc-lens.spec b/ghc-lens.spec index bdda920..0227f32 100644 --- a/ghc-lens.spec +++ b/ghc-lens.spec @@ -1,7 +1,7 @@ # # spec file for package ghc-lens # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,13 +19,12 @@ %global pkg_name lens %bcond_with tests Name: ghc-%{pkg_name} -Version: 4.19.2 +Version: 4.18.1 Release: 0 Summary: Lenses, Folds and Traversals License: BSD-2-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-array-devel BuildRequires: ghc-base-orphans-devel @@ -54,6 +53,7 @@ BuildRequires: ghc-text-devel BuildRequires: ghc-th-abstraction-devel BuildRequires: ghc-transformers-compat-devel BuildRequires: ghc-transformers-devel +BuildRequires: ghc-type-equality-devel BuildRequires: ghc-unordered-containers-devel BuildRequires: ghc-vector-devel %if %{with tests} @@ -69,6 +69,7 @@ BuildRequires: ghc-simple-reflect-devel BuildRequires: ghc-test-framework-devel BuildRequires: ghc-test-framework-hunit-devel BuildRequires: ghc-test-framework-quickcheck2-devel +BuildRequires: ghc-test-framework-th-devel %endif %description @@ -166,8 +167,7 @@ Requires(postun): ghc-compiler = %{ghc_version} This package provides the Haskell %{pkg_name} library development files. %prep -%autosetup -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal +%setup -q -n %{pkg_name}-%{version} %build %ghc_lib_build diff --git a/lens-4.18.1.tar.gz b/lens-4.18.1.tar.gz new file mode 100644 index 0000000..a0b3546 --- /dev/null +++ b/lens-4.18.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3107a3d5165a9762269d7c9e39205d2c4c2aaebc1900ff44a0066c31a492bdd2 +size 703677 diff --git a/lens-4.19.2.tar.gz b/lens-4.19.2.tar.gz deleted file mode 100644 index 551a5d0..0000000 --- a/lens-4.19.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52f858ae3971a5104cdba5e81a27d154fda11fe65a54a4ac328c85904bdec23b -size 705314 diff --git a/lens.cabal b/lens.cabal deleted file mode 100644 index 3b735ef..0000000 --- a/lens.cabal +++ /dev/null @@ -1,546 +0,0 @@ -name: lens -category: Data, Lenses, Generics -version: 4.19.2 -x-revision: 1 -license: BSD2 -cabal-version: 1.18 -license-file: LICENSE -author: Edward A. Kmett -maintainer: Edward A. Kmett -stability: provisional -homepage: http://github.com/ekmett/lens/ -bug-reports: http://github.com/ekmett/lens/issues -copyright: Copyright (C) 2012-2016 Edward A. Kmett -build-type: Custom --- build-tools: cpphs -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.3 - , GHC == 8.10.1 -synopsis: Lenses, Folds and Traversals -description: - This package comes \"Batteries Included\" with many useful lenses for the types - commonly used from the Haskell Platform, and with tools for automatically - generating lenses and isomorphisms for user-supplied data types. - . - The combinators in @Control.Lens@ provide a highly generic toolbox for composing - families of getters, folds, isomorphisms, traversals, setters and lenses and their - indexed variants. - . - An overview, with a large number of examples can be found in the . - . - An introductory video on the style of code used in this library by Simon Peyton Jones is available from . - . - A video on how to use lenses and how they are constructed is available on . - . - Slides for that second talk can be obtained from . - . - More information on the care and feeding of lenses, including a brief tutorial and motivation - for their types can be found on the . - . - A small game of @pong@ and other more complex examples that manage their state using lenses can be found in the . - . - /Lenses, Folds and Traversals/ - . - With some signatures simplified, the core of the hierarchy of lens-like constructions looks like: - . - . - <> - . - - . - You can compose any two elements of the hierarchy above using @(.)@ from the @Prelude@, and you can - use any element of the hierarchy as any type it linked to above it. - . - The result is their lowest upper bound in the hierarchy (or an error if that bound doesn't exist). - . - For instance: - . - * You can use any 'Traversal' as a 'Fold' or as a 'Setter'. - . - * The composition of a 'Traversal' and a 'Getter' yields a 'Fold'. - . - /Minimizing Dependencies/ - . - If you want to provide lenses and traversals for your own types in your own libraries, then you - can do so without incurring a dependency on this (or any other) lens package at all. - . - /e.g./ for a data type: - . - > data Foo a = Foo Int Int a - . - You can define lenses such as - . - > -- bar :: Lens' (Foo a) Int - > bar :: Functor f => (Int -> f Int) -> Foo a -> f (Foo a) - > bar f (Foo a b c) = fmap (\a' -> Foo a' b c) (f a) - . - > -- quux :: Lens (Foo a) (Foo b) a b - > quux :: Functor f => (a -> f b) -> Foo a -> f (Foo b) - > quux f (Foo a b c) = fmap (Foo a b) (f c) - . - without the need to use any type that isn't already defined in the @Prelude@. - . - And you can define a traversal of multiple fields with 'Control.Applicative.Applicative': - . - > -- traverseBarAndBaz :: Traversal' (Foo a) Int - > traverseBarAndBaz :: Applicative f => (Int -> f Int) -> Foo a -> f (Foo a) - > traverseBarAndBaz f (Foo a b c) = Foo <$> f a <*> f b <*> pure c - . - What is provided in this library is a number of stock lenses and traversals for - common haskell types, a wide array of combinators for working them, and more - exotic functionality, (/e.g./ getters, setters, indexed folds, isomorphisms). - -extra-source-files: - .travis.yml - .gitignore - .hlint.yaml - .vim.custom - cabal.project - examples/LICENSE - examples/lens-examples.cabal - examples/*.hs - examples/*.lhs - examples/.hlint.yaml - include/*.h - lens-properties/.hlint.yaml - lens-properties/CHANGELOG.markdown - lens-properties/LICENSE - lens-properties/Setup.hs - lens-properties/lens-properties.cabal - travis/cabal-apt-install - travis/config - Warning.hs - AUTHORS.markdown - CHANGELOG.markdown - README.markdown - SUPPORT.markdown -extra-doc-files: - images/*.png - -source-repository head - type: git - location: https://github.com/ekmett/lens.git - -custom-setup - setup-depends: - Cabal >= 1.10 && <3.3, - base >= 4.5 && <5, - cabal-doctest >= 1 && <1.1, - filepath - --- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid --- the extra dependency. --- --- > cabal configure --enable-benchmarks -fbenchmark-uniplate && cabal build && cabal bench -flag benchmark-uniplate - default: False - manual: True - --- Generate inline pragmas when using template-haskell. This defaults to enabled, but you can --- --- > cabal install lens -f-inlining --- --- to shut it off to benchmark the relative performance impact, or as last ditch effort to address compile --- errors resulting from the myriad versions of template-haskell that all purport to be 2.8. -flag inlining - manual: True - default: True - --- Some 7.6.1-rc1 users report their TH still uses old style inline pragmas. This lets them turn on inlining. -flag old-inline-pragmas - default: False - manual: True - --- Make the test suites dump their template-haskell splices. -flag dump-splices - default: False - manual: True - --- You can disable the doctests test suite with -f-test-doctests -flag test-doctests - default: True - manual: True - --- You can disable the hunit test suite with -f-test-hunit -flag test-hunit - default: True - manual: True - --- Build the properties test if we're building tests -flag test-properties - default: True - manual: True - -flag test-templates - default: True - manual: True - --- Disallow unsafeCoerce -flag safe - default: False - manual: True - --- Assert that we are trustworthy when we can -flag trustworthy - default: True - manual: True - --- Attempt a parallel build with GHC 7.8 -flag j - default: False - manual: True - -library - build-depends: - array >= 0.3.0.2 && < 0.6, - base >= 4.5 && < 5, - base-orphans >= 0.5.2 && < 1, - bifunctors >= 5.1 && < 6, - bytestring >= 0.9.2.1 && < 0.11, - call-stack >= 0.1 && < 0.3, - comonad >= 4 && < 6, - contravariant >= 1.3 && < 2, - containers >= 0.4.0 && < 0.7, - distributive >= 0.3 && < 1, - filepath >= 1.2.0.0 && < 1.5, - free >= 4 && < 6, - ghc-prim, - hashable >= 1.1.2.3 && < 1.4, - kan-extensions >= 5 && < 6, - exceptions >= 0.1.1 && < 1, - mtl >= 2.0.1 && < 2.3, - parallel >= 3.1.0.1 && < 3.3, - profunctors >= 5.2.1 && < 6, - reflection >= 2.1 && < 3, - semigroupoids >= 5 && < 6, - tagged >= 0.4.4 && < 1, - template-haskell >= 2.4 && < 2.17, - th-abstraction >= 0.3 && < 0.4, - text >= 0.11 && < 1.3, - transformers >= 0.2 && < 0.6, - transformers-compat >= 0.4 && < 1, - unordered-containers >= 0.2.4 && < 0.3, - vector >= 0.9 && < 0.13 - - if !impl(ghc >= 8.0) - build-depends: - generic-deriving >= 1.10 && < 2, - semigroups >= 0.8.4 && < 1 - - if !impl(ghc >= 7.10) - build-depends: - nats >= 0.1 && < 1.2, - void >= 0.5 && < 1 - - if !impl(ghc >= 7.8) - build-depends: - type-equality >= 1 && < 2 - - exposed-modules: - Control.Exception.Lens - Control.Lens - Control.Lens.At - Control.Lens.Combinators - Control.Lens.Cons - Control.Lens.Each - Control.Lens.Empty - Control.Lens.Equality - Control.Lens.Extras - Control.Lens.Fold - Control.Lens.Getter - Control.Lens.Indexed - Control.Lens.Internal - Control.Lens.Internal.Bazaar - Control.Lens.Internal.ByteString - Control.Lens.Internal.Coerce - Control.Lens.Internal.Context - Control.Lens.Internal.CTypes - Control.Lens.Internal.Deque - Control.Lens.Internal.Exception - Control.Lens.Internal.FieldTH - Control.Lens.Internal.PrismTH - Control.Lens.Internal.Fold - Control.Lens.Internal.Getter - Control.Lens.Internal.Indexed - Control.Lens.Internal.Instances - Control.Lens.Internal.Iso - Control.Lens.Internal.Level - Control.Lens.Internal.List - Control.Lens.Internal.Magma - Control.Lens.Internal.Prism - Control.Lens.Internal.Review - Control.Lens.Internal.Setter - Control.Lens.Internal.TH - Control.Lens.Internal.Typeable - Control.Lens.Internal.Zoom - Control.Lens.Iso - Control.Lens.Lens - Control.Lens.Level - Control.Lens.Operators - Control.Lens.Plated - Control.Lens.Prism - Control.Lens.Reified - Control.Lens.Review - Control.Lens.Setter - Control.Lens.TH - Control.Lens.Traversal - Control.Lens.Tuple - Control.Lens.Type - Control.Lens.Unsound - Control.Lens.Wrapped - Control.Lens.Zoom - Control.Monad.Error.Lens - Control.Parallel.Strategies.Lens - Control.Seq.Lens - Data.Array.Lens - Data.Bits.Lens - Data.ByteString.Lens - Data.ByteString.Strict.Lens - Data.ByteString.Lazy.Lens - Data.Complex.Lens - Data.Data.Lens - Data.Dynamic.Lens - Data.HashSet.Lens - Data.IntSet.Lens - Data.List.Lens - Data.Map.Lens - Data.Sequence.Lens - Data.Set.Lens - Data.Text.Lens - Data.Text.Strict.Lens - Data.Text.Lazy.Lens - Data.Tree.Lens - Data.Typeable.Lens - Data.Vector.Lens - Data.Vector.Generic.Lens - GHC.Generics.Lens - System.Exit.Lens - System.FilePath.Lens - System.IO.Error.Lens - Language.Haskell.TH.Lens - Numeric.Lens - Numeric.Natural.Lens - - other-modules: - Control.Lens.Internal.Prelude - Paths_lens - - if flag(safe) - cpp-options: -DSAFE=1 - - if flag(trustworthy) && impl(ghc>=7.2) - other-extensions: Trustworthy - cpp-options: -DTRUSTWORTHY=1 - - if flag(old-inline-pragmas) && impl(ghc>=7.6.0.20120810) - cpp-options: -DOLD_INLINE_PRAGMAS=1 - - if flag(inlining) - cpp-options: -DINLINING - - if impl(ghc<7.4) - ghc-options: -fno-spec-constr-count - - if impl(ghc >= 7.10) - ghc-options: -fno-warn-trustworthy-safe - - if impl(ghc >= 8) - ghc-options: -Wno-missing-pattern-synonym-signatures - ghc-options: -Wno-redundant-constraints - - if flag(j) && impl(ghc>=7.8) - ghc-options: -j4 - - ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10 - - hs-source-dirs: src - - include-dirs: include - - default-language: Haskell2010 - --- Verify that Template Haskell expansion works -test-suite templates - type: exitcode-stdio-1.0 - main-is: templates.hs - other-modules: T799 - ghc-options: -Wall -threaded - hs-source-dirs: tests - default-language: Haskell2010 - - if flag(dump-splices) - ghc-options: -ddump-splices - - if !flag(test-templates) - buildable: False - else - build-depends: base, lens - --- Verify the properties of lenses with QuickCheck -test-suite properties - type: exitcode-stdio-1.0 - main-is: properties.hs - other-modules: - Control.Lens.Properties - ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N - hs-source-dirs: - tests - lens-properties/src - include-dirs: include - default-language: Haskell2010 - if !flag(test-properties) - buildable: False - else - build-depends: - base, - lens, - QuickCheck >= 2.4, - test-framework >= 0.6, - test-framework-quickcheck2 >= 0.2, - transformers - -test-suite hunit - type: exitcode-stdio-1.0 - main-is: hunit.hs - ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N - hs-source-dirs: tests - default-language: Haskell2010 - - if !flag(test-hunit) - buildable: False - else - build-depends: - base, - containers, - HUnit >= 1.2, - lens, - mtl, - test-framework >= 0.6, - test-framework-hunit >= 0.2 - --- Verify the results of the examples -test-suite doctests - type: exitcode-stdio-1.0 - main-is: doctests.hs - ghc-options: -Wall -threaded - hs-source-dirs: tests - default-language: Haskell2010 - x-doctest-options: --fast - - if flag(trustworthy) && impl(ghc>=7.2) - other-extensions: Trustworthy - cpp-options: -DTRUSTWORTHY=1 - - if !flag(test-doctests) - buildable: False - else - build-depends: - base, - bytestring, - containers, - directory >= 1.0, - deepseq, - doctest >= 0.11.4 && < 0.12 || >= 0.13 && < 0.18, - filepath, - generic-deriving, - lens, - mtl, - nats, - parallel, - semigroups >= 0.9, - simple-reflect >= 0.3.1, - text, - unordered-containers, - vector - --- Basic benchmarks for the uniplate-style combinators -benchmark plated - type: exitcode-stdio-1.0 - main-is: plated.hs - ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields - hs-source-dirs: benchmarks - default-language: Haskell2010 - build-depends: - base, - base-compat >=0.11.0 && <0.12, - comonad, - criterion, - deepseq, - generic-deriving, - lens, - transformers - - if flag(benchmark-uniplate) - build-depends: uniplate >= 1.6.7 && < 1.7 - cpp-options: -DBENCHMARK_UNIPLATE - --- Benchmarking alongside variants -benchmark alongside - type: exitcode-stdio-1.0 - main-is: alongside.hs - ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields - hs-source-dirs: benchmarks - default-language: Haskell2010 - build-depends: - base, - comonad >= 4, - criterion, - deepseq, - lens, - transformers - --- Benchmarking folds -benchmark folds - type: exitcode-stdio-1.0 - main-is: folds.hs - ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields - hs-source-dirs: benchmarks - default-language: Haskell2010 - build-depends: - base, - criterion, - containers, - bytestring, - unordered-containers, - vector, - lens - --- Benchmarking traversals -benchmark traversals - type: exitcode-stdio-1.0 - main-is: traversals.hs - ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields - hs-source-dirs: benchmarks - default-language: Haskell2010 - build-depends: - base, - criterion, - containers, - deepseq, - bytestring, - unordered-containers, - vector, - lens - --- Benchmarking unsafe implementation strategies -benchmark unsafe - type: exitcode-stdio-1.0 - main-is: unsafe.hs - ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields - hs-source-dirs: benchmarks - default-language: Haskell2010 - build-depends: - base, - comonad >= 4, - criterion >= 1, - deepseq, - generic-deriving, - lens, - transformers From b925e38335934e474c9fb7a058738fec127fc0d5aa43ca374e17c4b802b12e1e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 4 Sep 2020 15:11:04 +0000 Subject: [PATCH 3/3] osc copypac from project:devel:languages:haskell:ghc-8.10.x package:ghc-lens revision:14, using keep-link OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-lens?expand=0&rev=32 --- ghc-lens.changes | 50 +++++ ghc-lens.spec | 10 +- lens-4.18.1.tar.gz | 3 - lens-4.19.2.tar.gz | 3 + lens.cabal | 546 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 604 insertions(+), 8 deletions(-) delete mode 100644 lens-4.18.1.tar.gz create mode 100644 lens-4.19.2.tar.gz create mode 100644 lens.cabal diff --git a/ghc-lens.changes b/ghc-lens.changes index d159325..28b0bfa 100644 --- a/ghc-lens.changes +++ b/ghc-lens.changes @@ -1,3 +1,53 @@ +------------------------------------------------------------------- +Mon Aug 31 09:34:39 UTC 2020 - psimons@suse.com + +- Update lens to version 4.19.2 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Tue Aug 18 10:45:18 UTC 2020 - Peter Simons + +- Replace %setup -q with the more modern %autosetup macro. + +------------------------------------------------------------------- +Tue Jun 16 11:14:19 UTC 2020 - Peter Simons + +- Re-generate file with latest version of spec-cleaner. + +------------------------------------------------------------------- +Wed May 6 06:54:11 UTC 2020 - psimons@suse.com + +- Update lens to version 4.19.2. + 4.19.2 [2020.04.15] + ------------------- + * Remove the test suite's dependency on `test-framework-th`. + +------------------------------------------------------------------- +Thu Feb 27 14:17:53 UTC 2020 - psimons@suse.com + +- Update lens to version 4.19.1. + 4.19.1 [2020.02.13] + ------------------- + * Fix a bug introduced in 4.19 where using `_TupE` to `preview` a value would + always fail. + +------------------------------------------------------------------- +Fri Feb 7 08:04:19 UTC 2020 - psimons@suse.com + +- Update lens to version 4.19. + 4.19 [2020.02.03] + ----------------- + * Support building with GHC 8.10. + * The types of `_TupE` and `_UnboxedTupE` are now `Prism' Exp [Maybe Exp]` + when built against `template-haskell-2.16` or later to reflect the new + types of `TupE` and `UnboxedTupE`. + * Add `_ForallVisT` and `_BytesPrimL` prisms when building against + `template-haskell-2.16` or later. + * Make `<>~` and `<>=` and their ` diff --git a/ghc-lens.spec b/ghc-lens.spec index 0227f32..bdda920 100644 --- a/ghc-lens.spec +++ b/ghc-lens.spec @@ -1,7 +1,7 @@ # # spec file for package ghc-lens # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,12 +19,13 @@ %global pkg_name lens %bcond_with tests Name: ghc-%{pkg_name} -Version: 4.18.1 +Version: 4.19.2 Release: 0 Summary: Lenses, Folds and Traversals License: BSD-2-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-array-devel BuildRequires: ghc-base-orphans-devel @@ -53,7 +54,6 @@ BuildRequires: ghc-text-devel BuildRequires: ghc-th-abstraction-devel BuildRequires: ghc-transformers-compat-devel BuildRequires: ghc-transformers-devel -BuildRequires: ghc-type-equality-devel BuildRequires: ghc-unordered-containers-devel BuildRequires: ghc-vector-devel %if %{with tests} @@ -69,7 +69,6 @@ BuildRequires: ghc-simple-reflect-devel BuildRequires: ghc-test-framework-devel BuildRequires: ghc-test-framework-hunit-devel BuildRequires: ghc-test-framework-quickcheck2-devel -BuildRequires: ghc-test-framework-th-devel %endif %description @@ -167,7 +166,8 @@ Requires(postun): ghc-compiler = %{ghc_version} This package provides the Haskell %{pkg_name} library development files. %prep -%setup -q -n %{pkg_name}-%{version} +%autosetup -n %{pkg_name}-%{version} +cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build diff --git a/lens-4.18.1.tar.gz b/lens-4.18.1.tar.gz deleted file mode 100644 index a0b3546..0000000 --- a/lens-4.18.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3107a3d5165a9762269d7c9e39205d2c4c2aaebc1900ff44a0066c31a492bdd2 -size 703677 diff --git a/lens-4.19.2.tar.gz b/lens-4.19.2.tar.gz new file mode 100644 index 0000000..551a5d0 --- /dev/null +++ b/lens-4.19.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52f858ae3971a5104cdba5e81a27d154fda11fe65a54a4ac328c85904bdec23b +size 705314 diff --git a/lens.cabal b/lens.cabal new file mode 100644 index 0000000..3b735ef --- /dev/null +++ b/lens.cabal @@ -0,0 +1,546 @@ +name: lens +category: Data, Lenses, Generics +version: 4.19.2 +x-revision: 1 +license: BSD2 +cabal-version: 1.18 +license-file: LICENSE +author: Edward A. Kmett +maintainer: Edward A. Kmett +stability: provisional +homepage: http://github.com/ekmett/lens/ +bug-reports: http://github.com/ekmett/lens/issues +copyright: Copyright (C) 2012-2016 Edward A. Kmett +build-type: Custom +-- build-tools: cpphs +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.3 + , GHC == 8.10.1 +synopsis: Lenses, Folds and Traversals +description: + This package comes \"Batteries Included\" with many useful lenses for the types + commonly used from the Haskell Platform, and with tools for automatically + generating lenses and isomorphisms for user-supplied data types. + . + The combinators in @Control.Lens@ provide a highly generic toolbox for composing + families of getters, folds, isomorphisms, traversals, setters and lenses and their + indexed variants. + . + An overview, with a large number of examples can be found in the . + . + An introductory video on the style of code used in this library by Simon Peyton Jones is available from . + . + A video on how to use lenses and how they are constructed is available on . + . + Slides for that second talk can be obtained from . + . + More information on the care and feeding of lenses, including a brief tutorial and motivation + for their types can be found on the . + . + A small game of @pong@ and other more complex examples that manage their state using lenses can be found in the . + . + /Lenses, Folds and Traversals/ + . + With some signatures simplified, the core of the hierarchy of lens-like constructions looks like: + . + . + <> + . + + . + You can compose any two elements of the hierarchy above using @(.)@ from the @Prelude@, and you can + use any element of the hierarchy as any type it linked to above it. + . + The result is their lowest upper bound in the hierarchy (or an error if that bound doesn't exist). + . + For instance: + . + * You can use any 'Traversal' as a 'Fold' or as a 'Setter'. + . + * The composition of a 'Traversal' and a 'Getter' yields a 'Fold'. + . + /Minimizing Dependencies/ + . + If you want to provide lenses and traversals for your own types in your own libraries, then you + can do so without incurring a dependency on this (or any other) lens package at all. + . + /e.g./ for a data type: + . + > data Foo a = Foo Int Int a + . + You can define lenses such as + . + > -- bar :: Lens' (Foo a) Int + > bar :: Functor f => (Int -> f Int) -> Foo a -> f (Foo a) + > bar f (Foo a b c) = fmap (\a' -> Foo a' b c) (f a) + . + > -- quux :: Lens (Foo a) (Foo b) a b + > quux :: Functor f => (a -> f b) -> Foo a -> f (Foo b) + > quux f (Foo a b c) = fmap (Foo a b) (f c) + . + without the need to use any type that isn't already defined in the @Prelude@. + . + And you can define a traversal of multiple fields with 'Control.Applicative.Applicative': + . + > -- traverseBarAndBaz :: Traversal' (Foo a) Int + > traverseBarAndBaz :: Applicative f => (Int -> f Int) -> Foo a -> f (Foo a) + > traverseBarAndBaz f (Foo a b c) = Foo <$> f a <*> f b <*> pure c + . + What is provided in this library is a number of stock lenses and traversals for + common haskell types, a wide array of combinators for working them, and more + exotic functionality, (/e.g./ getters, setters, indexed folds, isomorphisms). + +extra-source-files: + .travis.yml + .gitignore + .hlint.yaml + .vim.custom + cabal.project + examples/LICENSE + examples/lens-examples.cabal + examples/*.hs + examples/*.lhs + examples/.hlint.yaml + include/*.h + lens-properties/.hlint.yaml + lens-properties/CHANGELOG.markdown + lens-properties/LICENSE + lens-properties/Setup.hs + lens-properties/lens-properties.cabal + travis/cabal-apt-install + travis/config + Warning.hs + AUTHORS.markdown + CHANGELOG.markdown + README.markdown + SUPPORT.markdown +extra-doc-files: + images/*.png + +source-repository head + type: git + location: https://github.com/ekmett/lens.git + +custom-setup + setup-depends: + Cabal >= 1.10 && <3.3, + base >= 4.5 && <5, + cabal-doctest >= 1 && <1.1, + filepath + +-- Enable benchmarking against Neil Mitchell's uniplate library for comparative performance analysis. Defaults to being turned off to avoid +-- the extra dependency. +-- +-- > cabal configure --enable-benchmarks -fbenchmark-uniplate && cabal build && cabal bench +flag benchmark-uniplate + default: False + manual: True + +-- Generate inline pragmas when using template-haskell. This defaults to enabled, but you can +-- +-- > cabal install lens -f-inlining +-- +-- to shut it off to benchmark the relative performance impact, or as last ditch effort to address compile +-- errors resulting from the myriad versions of template-haskell that all purport to be 2.8. +flag inlining + manual: True + default: True + +-- Some 7.6.1-rc1 users report their TH still uses old style inline pragmas. This lets them turn on inlining. +flag old-inline-pragmas + default: False + manual: True + +-- Make the test suites dump their template-haskell splices. +flag dump-splices + default: False + manual: True + +-- You can disable the doctests test suite with -f-test-doctests +flag test-doctests + default: True + manual: True + +-- You can disable the hunit test suite with -f-test-hunit +flag test-hunit + default: True + manual: True + +-- Build the properties test if we're building tests +flag test-properties + default: True + manual: True + +flag test-templates + default: True + manual: True + +-- Disallow unsafeCoerce +flag safe + default: False + manual: True + +-- Assert that we are trustworthy when we can +flag trustworthy + default: True + manual: True + +-- Attempt a parallel build with GHC 7.8 +flag j + default: False + manual: True + +library + build-depends: + array >= 0.3.0.2 && < 0.6, + base >= 4.5 && < 5, + base-orphans >= 0.5.2 && < 1, + bifunctors >= 5.1 && < 6, + bytestring >= 0.9.2.1 && < 0.11, + call-stack >= 0.1 && < 0.3, + comonad >= 4 && < 6, + contravariant >= 1.3 && < 2, + containers >= 0.4.0 && < 0.7, + distributive >= 0.3 && < 1, + filepath >= 1.2.0.0 && < 1.5, + free >= 4 && < 6, + ghc-prim, + hashable >= 1.1.2.3 && < 1.4, + kan-extensions >= 5 && < 6, + exceptions >= 0.1.1 && < 1, + mtl >= 2.0.1 && < 2.3, + parallel >= 3.1.0.1 && < 3.3, + profunctors >= 5.2.1 && < 6, + reflection >= 2.1 && < 3, + semigroupoids >= 5 && < 6, + tagged >= 0.4.4 && < 1, + template-haskell >= 2.4 && < 2.17, + th-abstraction >= 0.3 && < 0.4, + text >= 0.11 && < 1.3, + transformers >= 0.2 && < 0.6, + transformers-compat >= 0.4 && < 1, + unordered-containers >= 0.2.4 && < 0.3, + vector >= 0.9 && < 0.13 + + if !impl(ghc >= 8.0) + build-depends: + generic-deriving >= 1.10 && < 2, + semigroups >= 0.8.4 && < 1 + + if !impl(ghc >= 7.10) + build-depends: + nats >= 0.1 && < 1.2, + void >= 0.5 && < 1 + + if !impl(ghc >= 7.8) + build-depends: + type-equality >= 1 && < 2 + + exposed-modules: + Control.Exception.Lens + Control.Lens + Control.Lens.At + Control.Lens.Combinators + Control.Lens.Cons + Control.Lens.Each + Control.Lens.Empty + Control.Lens.Equality + Control.Lens.Extras + Control.Lens.Fold + Control.Lens.Getter + Control.Lens.Indexed + Control.Lens.Internal + Control.Lens.Internal.Bazaar + Control.Lens.Internal.ByteString + Control.Lens.Internal.Coerce + Control.Lens.Internal.Context + Control.Lens.Internal.CTypes + Control.Lens.Internal.Deque + Control.Lens.Internal.Exception + Control.Lens.Internal.FieldTH + Control.Lens.Internal.PrismTH + Control.Lens.Internal.Fold + Control.Lens.Internal.Getter + Control.Lens.Internal.Indexed + Control.Lens.Internal.Instances + Control.Lens.Internal.Iso + Control.Lens.Internal.Level + Control.Lens.Internal.List + Control.Lens.Internal.Magma + Control.Lens.Internal.Prism + Control.Lens.Internal.Review + Control.Lens.Internal.Setter + Control.Lens.Internal.TH + Control.Lens.Internal.Typeable + Control.Lens.Internal.Zoom + Control.Lens.Iso + Control.Lens.Lens + Control.Lens.Level + Control.Lens.Operators + Control.Lens.Plated + Control.Lens.Prism + Control.Lens.Reified + Control.Lens.Review + Control.Lens.Setter + Control.Lens.TH + Control.Lens.Traversal + Control.Lens.Tuple + Control.Lens.Type + Control.Lens.Unsound + Control.Lens.Wrapped + Control.Lens.Zoom + Control.Monad.Error.Lens + Control.Parallel.Strategies.Lens + Control.Seq.Lens + Data.Array.Lens + Data.Bits.Lens + Data.ByteString.Lens + Data.ByteString.Strict.Lens + Data.ByteString.Lazy.Lens + Data.Complex.Lens + Data.Data.Lens + Data.Dynamic.Lens + Data.HashSet.Lens + Data.IntSet.Lens + Data.List.Lens + Data.Map.Lens + Data.Sequence.Lens + Data.Set.Lens + Data.Text.Lens + Data.Text.Strict.Lens + Data.Text.Lazy.Lens + Data.Tree.Lens + Data.Typeable.Lens + Data.Vector.Lens + Data.Vector.Generic.Lens + GHC.Generics.Lens + System.Exit.Lens + System.FilePath.Lens + System.IO.Error.Lens + Language.Haskell.TH.Lens + Numeric.Lens + Numeric.Natural.Lens + + other-modules: + Control.Lens.Internal.Prelude + Paths_lens + + if flag(safe) + cpp-options: -DSAFE=1 + + if flag(trustworthy) && impl(ghc>=7.2) + other-extensions: Trustworthy + cpp-options: -DTRUSTWORTHY=1 + + if flag(old-inline-pragmas) && impl(ghc>=7.6.0.20120810) + cpp-options: -DOLD_INLINE_PRAGMAS=1 + + if flag(inlining) + cpp-options: -DINLINING + + if impl(ghc<7.4) + ghc-options: -fno-spec-constr-count + + if impl(ghc >= 7.10) + ghc-options: -fno-warn-trustworthy-safe + + if impl(ghc >= 8) + ghc-options: -Wno-missing-pattern-synonym-signatures + ghc-options: -Wno-redundant-constraints + + if flag(j) && impl(ghc>=7.8) + ghc-options: -j4 + + ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10 + + hs-source-dirs: src + + include-dirs: include + + default-language: Haskell2010 + +-- Verify that Template Haskell expansion works +test-suite templates + type: exitcode-stdio-1.0 + main-is: templates.hs + other-modules: T799 + ghc-options: -Wall -threaded + hs-source-dirs: tests + default-language: Haskell2010 + + if flag(dump-splices) + ghc-options: -ddump-splices + + if !flag(test-templates) + buildable: False + else + build-depends: base, lens + +-- Verify the properties of lenses with QuickCheck +test-suite properties + type: exitcode-stdio-1.0 + main-is: properties.hs + other-modules: + Control.Lens.Properties + ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N + hs-source-dirs: + tests + lens-properties/src + include-dirs: include + default-language: Haskell2010 + if !flag(test-properties) + buildable: False + else + build-depends: + base, + lens, + QuickCheck >= 2.4, + test-framework >= 0.6, + test-framework-quickcheck2 >= 0.2, + transformers + +test-suite hunit + type: exitcode-stdio-1.0 + main-is: hunit.hs + ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N + hs-source-dirs: tests + default-language: Haskell2010 + + if !flag(test-hunit) + buildable: False + else + build-depends: + base, + containers, + HUnit >= 1.2, + lens, + mtl, + test-framework >= 0.6, + test-framework-hunit >= 0.2 + +-- Verify the results of the examples +test-suite doctests + type: exitcode-stdio-1.0 + main-is: doctests.hs + ghc-options: -Wall -threaded + hs-source-dirs: tests + default-language: Haskell2010 + x-doctest-options: --fast + + if flag(trustworthy) && impl(ghc>=7.2) + other-extensions: Trustworthy + cpp-options: -DTRUSTWORTHY=1 + + if !flag(test-doctests) + buildable: False + else + build-depends: + base, + bytestring, + containers, + directory >= 1.0, + deepseq, + doctest >= 0.11.4 && < 0.12 || >= 0.13 && < 0.18, + filepath, + generic-deriving, + lens, + mtl, + nats, + parallel, + semigroups >= 0.9, + simple-reflect >= 0.3.1, + text, + unordered-containers, + vector + +-- Basic benchmarks for the uniplate-style combinators +benchmark plated + type: exitcode-stdio-1.0 + main-is: plated.hs + ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields + hs-source-dirs: benchmarks + default-language: Haskell2010 + build-depends: + base, + base-compat >=0.11.0 && <0.12, + comonad, + criterion, + deepseq, + generic-deriving, + lens, + transformers + + if flag(benchmark-uniplate) + build-depends: uniplate >= 1.6.7 && < 1.7 + cpp-options: -DBENCHMARK_UNIPLATE + +-- Benchmarking alongside variants +benchmark alongside + type: exitcode-stdio-1.0 + main-is: alongside.hs + ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields + hs-source-dirs: benchmarks + default-language: Haskell2010 + build-depends: + base, + comonad >= 4, + criterion, + deepseq, + lens, + transformers + +-- Benchmarking folds +benchmark folds + type: exitcode-stdio-1.0 + main-is: folds.hs + ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields + hs-source-dirs: benchmarks + default-language: Haskell2010 + build-depends: + base, + criterion, + containers, + bytestring, + unordered-containers, + vector, + lens + +-- Benchmarking traversals +benchmark traversals + type: exitcode-stdio-1.0 + main-is: traversals.hs + ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields + hs-source-dirs: benchmarks + default-language: Haskell2010 + build-depends: + base, + criterion, + containers, + deepseq, + bytestring, + unordered-containers, + vector, + lens + +-- Benchmarking unsafe implementation strategies +benchmark unsafe + type: exitcode-stdio-1.0 + main-is: unsafe.hs + ghc-options: -Wall -O2 -threaded -fdicts-cheap -funbox-strict-fields + hs-source-dirs: benchmarks + default-language: Haskell2010 + build-depends: + base, + comonad >= 4, + criterion >= 1, + deepseq, + generic-deriving, + lens, + transformers