base-compat-0.10.2: CHANGES.markdown
## Changes in 0.10.2 [2018.07.02]
- Sync with `base-4.12`/GHC 8.6
- Backport `RuntimeRep`-polymorphic versions of `($!)` and `throw` to
`Prelude.Compat` and `Control.Exception.Compat`, respectively
(if using `base-4.10`/GHC 8.2 or later).
- Introduce the `Data.Functor.Contravariant.Compat` module, which reexports
`Data.Functor.Contravariant` if using `base-4.12`/GHC 8.6 or later.
See `Data.Functor.Contravariant.Compat` in the corresponding
`base-compat-batteries` release for a version with a wider support window.
## Changes in 0.10.1 [2018.04.10]
- Add `Data.List.NonEmpty.Compat`.
- Reexport `(Data.Semigroup.<>)` from `Data.Monoid.Compat` back to `base-4.9`.
## Changes in 0.10.0 [2018.04.05]
- Sync with `base-4.11`/GHC 8.4
- Backport `Semigroup((<>))` to `Prelude.Compat`.
Note that the `Semigroup` class has only been in `base` since
`base-4.9`/GHC 8.0, so accordingly, this can only be backported back
to GHC 8.0. If you wish to have a version of `Prelude.Compat` that backports
`Semigroup` to older GHCs (by conditionally depending on the `semigroups`
library), use the `Prelude.Compat` module from the `base-compat-batteries`
package.
- Backport `(<&>)` to `Data.Functor.Compat`
- Backport `iterate'` to `Data.List.Compat`
- Backport `showHFloat` to `Numeric.Compat`
- Backport a `RuntimeRep`-polymorphic `withTypeable` function to
`Type.Reflection.Compat`. (This is only exported on `base-4.10`/GHC 8.2.)
- Introduce the following modules, back until the oldest version of `base`
that can support backporting them. If you wish to use them in conjunction
with older versions of `base`, use the `base-compat-batteries` package.
- `Control.Monad.Fail.Compat` (back until `base-4.9`/GHC 8.0)
- `Control.Monad.IO.Class.Compat` (back until `base-4.9`/GHC 8.0)
- `Data.Bifunctor` (back until `base-4.8`/GHC 7.10)
- `Data.Bifoldable` and `Data.Bitraversable` (back until `base-4.10`/GHC 8.2)
- `Data.Functor.Compose.Compat`, `Data.Functor.Product.Compat`, and
`Data.Functor.Sum.Compat` (back until `base-4.9`/GHC 8.0)
- `Data.Functor.Identity.Compat` (back until `base-4.8`/GHC 7.10)
- `Data.Semigroup.Compat` (back until `base-4.9`/GHC 8.0)
- `Data.Void.Compat` (back until `base-4.8`/GHC 7.10)
- `Numeric.Natural.Compat` (back until `base-4.8`/GHC 7.10)
- Introduce versions of modules with the suffix `.Repl`. These simply reexport
the contents of their counterparts without the `.Repl` suffix to provide
a globally unique namespace to import from in the event one wants to import
`base-compat` modules into GHCi. (In `base-compat-batteries`, the
corresponding suffix is `.Repl.Batteries`.)
## Changes in 0.9.3 [2017.04.10]
- Sync with `base-4.10`/GHC 8.2
- Backport `fromLeft`/`fromRight` to `Data.Either.Compat`
- Backport implementations of `maximumBy`/`minimumBy` which use constant stack
space to `Data.Foldable.Compat`
- Backport `asProxyTypeOf` with a generalized type signature to
`Data.Proxy.Compat`
- Backport `gcoerceWith` to `Data.Type.Coercion.Compat`
- Backport `plusForeignPtr` to `Foreign.ForeignPtr.Compat`
## Changes in 0.9.2
- Allow building on the HaLVM
## Changes in 0.9.1
- Use the more efficient version of `replicateM` and `replicateM_` introduced
in `base-4.9`
## Changes in 0.9.0
- Sync with `base-4.9`/GHC 8.0
- Weakened `RealFloat` constraints on `realPart`, `imagPart`, `conjugate`,
`mkPolar`, and `cis` in `Data.Complex.Compat`
- Backport `Foreign.ForeignPtr.Safe` and `Foreign.Marshal.Safe`
- Generalize `filterM`, `forever`, `mapAndUnzipM`, `zipWithM`, `zipWithM_`,
`replicateM`, and `replicateM_` in `Control.Monad` from `Monad` to
`Applicative`
- Backport `.Unsafe.Compat` modules (for `Control.Monad.ST`,
`Control.Monad.ST.Lazy`, `Foreign.ForeignPtr`, and `Foreign.Marshal`)
- Backport `forkFinally` and `forkOSWithUnmask` to `Control.Concurrent.Compat`
- Backport `Data.Functor.Const`
- Backport `modifyIORef'`, `atomicModifyIORef'` and `atomicWriteIORef` to
`Data.IORef.Compat`
- `Data.Ratio.{denominator,numerator}` have no `Integral` constraint anymore
- Backport `modifySTRef'` to `Data.STRef.Compat`
- Export `String`, `lines`, `words`, `unlines`, and `unwords` to
`Data.String.Compat`
- Generalize `Debug.Trace.{traceM, traceShowM}` from `Monad` to `Applicative`
- Backport `errorWithoutStackTrace` to `Prelude.Compat`
- Backport `unsafeFixIO` and `unsafeDupablePerformIO` to
`System.IO.Unsafe.Compat`
## Changes in 0.8.2
- Backport `bitDefault`, `testBitDefault`, and `popCountDefault` in
`Data.Bits.Compat` to all versions of `base`
- Backport `toIntegralSized` to `base-4.7`
- Backport `nub` and `nubBy` (as well as `union` and `unionBy`, which are
implemented in terms of them) to fix logic error in `Data.List.Compat`
- Backport `byteSwap16`, `byteSwap32`, and `byteSwap64` to `Data.Word.Compat`
- Backport `fillBytes` in `Foreign.Marshal.Utils.Compat`
- Backport `showFFloatAlt` and `showGFloatAlt` to `Numeric.Compat`
## Changes in 0.8.1.1
- Fixed Windows build
## Changes in 0.8.1
- Implement `setEnv` and `unsetEnv` in `System.Environment.Compat` (which were
ported from the `setenv` package). As a result, `base-compat` now depends
on `unix` on POSIX-like operating systems.
- Drop GHC 6.12 (and `base-4.2.0.0`) compatibility
## Changes in 0.8.0.1
- Retrospective version bump updating the changelog to reflect the changes
made in 0.8.0
## Changes 0.8.0
- All orphan instances were split off into a separate package,
[`base-orphans`](https://github.com/haskell-compat/base-orphans)
- `base-compat` no longer redefines the data types `Down` and `Alt`. See
[here](https://github.com/haskell-compat/base-compat/issues/17) for
the discussion that led to this change.
- Update `Control.Monad.Compat` for `base-4.8.0.0`
- Update `Data.List.Compat` for `base-4.8.0.0`
- Update `Data.Foldable.Compat` for `base-4.8.0.0`
## Changes in 0.7.1
- Backported `Alt` to `Data.Monoid.Compat`
- Backported `Down` to `Data.Ord.Compat`
## Changes in 0.7.0
- Add functions and orphan instances introduced by changes to
`base-4.7.0.0` and `base-4.8.0.0`
## Changes in 0.6.0
- Update `Prelude.Compat` for `base-4.8.0.0` and AMP
## Changes in 0.5.0
- Remove Control.Exception.Base.Compat and GHC.Exception.Compat
- Add System.Exit.Compat.die
- Compatibility with base-4.7.1
## Changes in 0.4.1
- Add `setEnv` and `unsetEnv` to `System.Environment.Compat`
## Changes in 0.4.0
- Major refactoring: base-compat no longer aims to replace all base,
only new code is included in module .Compat
- Removed stubbed modules
- Removed generation scripts
## Changes in 0.3
- Added functions from Base 4.7 (bool, isLeft, isRight)
- Added instances from Base 4.7 (Either Foldable, Traversable,...)
## Changes in 0.2.1
- Fix build on windows
## Changes in 0.2.0
- Re-export everything from base
- provides access to `VERSION_base` and `MIN_VERSION_base` CPP macros (with
`#include "base-compat.h"`)
- Do not re-export `System.IO.Error.catch` from `Prelude` for `base` < 4.6.0
- Add `Eq`/`Ord` instance for `ErrorCall`
- Remove `GHC.IOBase`, `GHC.Handle`, `Control.Concurrent.QSem`,
`Control.Concurrent.QSemN`, `Control.Concurrent.SampleVar`, `Data.HashTable`
## Changes in 0.1.0
- Remove getExecutablePath, it did not work with GHC < 7.2 (patches welcome!)
- Add `<>`