SHA256
1
0
forked from pool/ghc-lens
ghc-lens/ghc-lens.changes

253 lines
10 KiB
Plaintext
Raw Normal View History

-------------------------------------------------------------------
Thu Sep 2 08:32:21 UTC 2021 - psimons@suse.com
- Update lens to version 5.0.1 revision 2.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Mon May 17 12:25:17 UTC 2021 - psimons@suse.com
- Update lens to version 5.0.1 revision 1.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Wed Feb 24 18:57:20 UTC 2021 - psimons@suse.com
- Update lens to version 5.0.1.
5.0.1 [2021.02.24]
------------------
* Fix a bug in which `makeLenses` could produce ill kinded optics for
poly-kinded datatypes in certain situations.
-------------------------------------------------------------------
Fri Feb 19 23:03:14 UTC 2021 - psimons@suse.com
- Update lens to version 5.
5 [2021.02.17]
--------------
* Support building with GHC 9.0.
* Remove the `Swapped` type class in favor of `Swap` from the `assoc` package.
* Remove the `Strict` type class in favor of `Strict` from the `strict` package.
The `swapped`, `strict` and `lazy` isomorphisms are now defined using "new" type classes.
Users which define own instances of old type classes are advised to
define instances of the new ones.
```haskell
import qualified Data.Bifunctor.Swap as Swap
import qualified Control.Lens as Lens
instance Swap.Swap MyType where
swap = ...
#if !MIN_VERSION_lens(4,20,0)
instance Lens.Swapped MyType where
swapped = iso Swap.swap Swap.swap
#endif
```
* The `FunctorWithIndex`, `FoldableWithIndex` and `TraversableWithIndex` type classes
have been migrated to a new package,
[`indexed-traversable`](https://hackage.haskell.org/package/indexed-traversable).
The `imapped`, `ifolded` and `itraversed` methods are now top-level functions.
If you are not defining these methods in your instances,
you don't need to change your definitions.
Beware: the `optics-core` package (versions <0.4) defines similar classes,
and will also migrate to use `indexed-traversable` classes. Therefore, you
might get duplicate instance errors if your package defines both.
If you define your own `FunctorWithIndex` etc. instances,
we recommend that you depend directly on the `indexed-traversable` package.
If you want to continue support `lens-4` users, you may write
```haskell
-- from indexed-traversable
import Data.Functor.WithIndex
-- from lens
import qualified Control.Lens as L
-- your (indexed) container
data MySeq a = ...
-- indexed-traversable instance
instance FunctorWithIndex Int MySeq where imap = ...
instance FoldableWithIndex Int MySeq where ifoldMap = ...
instance TraversableWithIndex Int MySeq where itraverse = ...
-- lens <5 instance, note the !
#if !MIN_VERSION_lens(5,0,0)
instance L.FunctorWithIndex Int MySeq where imap = imap
instance L.FoldableWithIndex Int MySeq where ifoldMap = ifoldMap
instance L.TraversableWithIndex Int MySeq where itraverse = itraverse
#endif
```
In other words, always provide `indexed-traversable` instances.
If your package depends on `lens` and allows `lens-4`,
you should additionally provide instances for `lens-4` type classes
that can reuse the `indexed-traversable` instances.
* Make the functions in `Control.Lens.TH` work more robustly with poly-kinded
data types. This can cause a breaking change under certain situations:
* TH-generated optics for poly-kinded data types are now much more likely to
mention kind variables in their definitions, which will require enabling
the `PolyKinds` extension at use sites in order to typecheck.
* Because TH-generated optics now quantify more kind variables than they did
previously, this can affect the order of visible type applications.
* Generalize the types of `generic` and `generic1` to allow type-changing
updates. If you wish to use the old, more restricted types of these
functions, use `simple . generic` or `simple . generic1` instead.
* Add `Control.Lens.Profunctor` with conversion functions to and from
profunctor optic representation.
* Add `Control.Lens.Review.reviewing`, which is like `review` but with a more
polymorphic type.
* Mark `Control.Lens.Equality` as Trustworthy.
* The build-type has been changed from `Custom` to `Simple`.
To achieve this, the `doctests` test suite has been removed in favor of using [`cabal-docspec`](https://github.com/phadej/cabal-extras/tree/master/cabal-docspec) to run the doctests.
* Use `alterF` in `At (HashMap k)` instance implementation.
* Use `alterF` in `At` and `Contains` instances for `Set`, `IntSet`, and
`HashSet`.
* Avoid re-inserting keys already present in `ix` for `Set`, `IntSet`,
and `HashSet`. For `Set` and `HashSet`, this changes the semantics
slightly; if the user-supplied key is `==` to one already present in
the set, then the latter will not be replaced in the result.
* Consume `()` values lazily in `Control.Lens.At`.
-------------------------------------------------------------------
Mon Feb 8 19:13:43 UTC 2021 - psimons@suse.com
- Update lens to version 4.19.2 revision 5.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Sun Jan 31 13:49:07 UTC 2021 - psimons@suse.com
- Update lens to version 4.19.2 revision 4.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Wed Jan 20 08:35:33 UTC 2021 - psimons@suse.com
- Update lens to version 4.19.2 revision 3.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
- disable %{ix86} build
-------------------------------------------------------------------
Tue Oct 6 08:56:30 UTC 2020 - psimons@suse.com
- Update lens to version 4.19.2 revision 2.
Upstream has revised the Cabal build instructions on Hackage.
-------------------------------------------------------------------
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 <psimons@suse.com>
- Replace %setup -q with the more modern %autosetup macro.
-------------------------------------------------------------------
Tue Jun 16 11:14:19 UTC 2020 - Peter Simons <psimons@suse.com>
- 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 `<op` and `<<op` state variants require only
`Semigroup`, not `Monoid`.
* Add `{Functor,Foldable,Traversable}WithIndex` instances for
`Control.Applicative.Const` and `Data.Functor.Constant.Constant`.
-------------------------------------------------------------------
Fri Nov 8 16:14:07 UTC 2019 - Peter Simons <psimons@suse.com>
- Drop obsolete group attributes.
-------------------------------------------------------------------
Sat Sep 14 02:03:25 UTC 2019 - psimons@suse.com
- Update lens to version 4.18.1.
4.18.1 [2019.09.13]
-------------------
* Remove the use of `cpp-options: -traditional`. This should be unnecessary
on all versions of GHC that `lens` supports, as modern GHCs already use
`-traditional` internally during preprocessing. More critically, the use
of `cpp-options: -traditional` breaks profiling builds on GHC 8.8
(see https://gitlab.haskell.org/ghc/ghc/issues/17185).
-------------------------------------------------------------------
Sat Sep 7 02:01:29 UTC 2019 - psimons@suse.com
- Update lens to version 4.18.
Upstream has edited the change log file since the last release in
a non-trivial way, i.e. they did more than just add a new entry
at the top. You can review the file at:
http://hackage.haskell.org/package/lens-4.18/src/CHANGELOG.markdown
-------------------------------------------------------------------
Thu Aug 8 10:13:34 UTC 2019 - Peter Simons <psimons@suse.com>
- Update Cabal file to allow building with call-stack 0.2.x.
-------------------------------------------------------------------
Tue Jun 11 14:29:12 UTC 2019 - Peter Simons <psimons@suse.com>
- Update Cabal file for more accurate build dependencies.
-------------------------------------------------------------------
Tue Apr 30 09:23:06 UTC 2019 - psimons@suse.com
- Update lens to version 4.17.1.
4.17.1 [2019.04.26]
-------------------
* Support `th-abstraction-0.3.0.0` or later.
* Only incur `semigroups` and `void` dependencies on old GHCs.
* Add `holes1Of`.
* Add `locally` (https://github.com/ekmett/lens/pull/829).
* Add `ilocally` (https://github.com/ekmett/lens/pull/836).
* Add a third `Prism` law.
* Add `gplate1`.
* Add `Wrapped`/`Rewrapped` instances for `Data.Monoid.Ap`.
-------------------------------------------------------------------
Thu Aug 2 16:29:51 UTC 2018 - psimons@suse.com
- Add lens at version 4.17.