summaryrefslogtreecommitdiff
path: root/libraries/containers
Commit message (Collapse)AuthorAgeFilesLines
* Generalise reallyUnsafePtrEquality# and use itsheaf2021-07-231-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #9192 and #17126 updates containers submodule 1. Changes the type of the primop `reallyUnsafePtrEquality#` to the most general version possible (heterogeneous as well as levity-polymorphic): > reallyUnsafePtrEquality# > :: forall {l :: Levity} {k :: Levity} > (a :: TYPE (BoxedRep l)) (b :: TYPE (BoxedRep k)) > . a -> b -> Int# 2. Adds a new internal module, `GHC.Ext.PtrEq`, which contains pointer equality operations that are now subsumed by `reallyUnsafePtrEquality#`. These functions are then re-exported by `GHC.Exts` (so that no function goes missing from the export list of `GHC.Exts`, which is user-facing). More specifically, `GHC.Ext.PtrEq` defines: - A new function: * reallyUnsafePtrEquality :: forall (a :: Type). a -> a -> Int# - Library definitions of ex-primops: * `sameMutableArray#` * `sameSmallMutableArray` * `sameMutableByteArray#` * `sameMutableArrayArray#` * `sameMutVar#` * `sameTVar#` * `sameMVar#` * `sameIOPort#` * `eqStableName#` - New functions for comparing non-mutable arrays: * `sameArray#` * `sameSmallArray#` * `sameByteArray#` * `sameArrayArray#` These were requested in #9192. Generally speaking, existing libraries that use `reallyUnsafePtrEquality#` will continue to work with the new, levity-polymorphic version. But not all! Some (`containers`, `unordered-containers`, `dependent-map`) contain the following: > unsafeCoerce# reallyUnsafePtrEquality# a b If we make `reallyUnsafePtrEquality#` levity-polymorphic, this code fails the current GHC representation-polymorphism checks. We agreed that the right solution here is to modify the library; in this case by deleting the call to `unsafeCoerce#`, since `reallyUnsafePtrEquality#` is now type-heterogeneous too.
* Revert "Make reallyUnsafePtrEquality# levity-polymorphic"Matthew Pickering2021-06-271-0/+0
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit d1f59540e8b7be96b55ab4b286539a70bc75416c. This commit breaks the build of unordered-containers ``` [3 of 9] Compiling Data.HashMap.Internal.Array ( Data/HashMap/Internal/Array.hs, dist/build/Data/HashMap/Internal/Array.o, dist/build/Data/HashMap/Internal/Array.dyn_o ) *** Parser [Data.HashMap.Internal.Array]: Parser [Data.HashMap.Internal.Array]: alloc=21043544 time=13.621 *** Renamer/typechecker [Data.HashMap.Internal.Array]: Renamer/typechecker [Data.HashMap.Internal.Array]: alloc=151218672 time=187.083 *** Desugar [Data.HashMap.Internal.Array]: ghc: panic! (the 'impossible' happened) GHC version 9.3.20210625: expectJust splitFunTy CallStack (from HasCallStack): error, called at compiler/GHC/Data/Maybe.hs:68:27 in ghc:GHC.Data.Maybe expectJust, called at compiler/GHC/Core/Type.hs:1247:14 in ghc:GHC.Core.Type ``` Revert containers submodule update
* Make reallyUnsafePtrEquality# levity-polymorphicsheaf2021-06-251-0/+0
| | | | fixes #17126, updates containers submodule
* Fix array and cleanup conversion primops (#19026)Sylvain Henry2021-03-031-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first change makes the array ones use the proper fixed-size types, which also means that just like before, they can be used without explicit conversions with the boxed sized types. (Before, it was Int# / Word# on both sides, now it is fixed sized on both sides). For the second change, don't use "extend" or "narrow" in some of the user-facing primops names for conversions. - Names like `narrowInt32#` are misleading when `Int` is 32-bits. - Names like `extendInt64#` are flat-out wrong when `Int is 32-bits. - `narrow{Int,Word}<N>#` however map a type to itself, and so don't suffer from this problem. They are left as-is. These changes are batched together because Alex happend to use the array ops. We can only use released versions of Alex at this time, sadly, and I don't want to have to have a release thatwon't work for the final GHC 9.2. So by combining these we get all the changes for Alex done at once. Bump hackage state in a few places, and also make that workflow slightly easier for the future. Bump minimum Alex version Bump Cabal, array, bytestring, containers, text, and binary submodules
* submodule update: containers and stmTom Ellis2020-12-171-0/+0
| | | | | | Needed for https://gitlab.haskell.org/ghc/ghc/-/issues/15656 as it stops the packages triggering incomplete-uni-patterns and incomplete-record-updates
* Implement -Woperator-whitespace (#18834)Vladislav Zavialov2020-10-191-0/+0
| | | | | | | | | | | | | | This patch implements two related warnings: -Woperator-whitespace-ext-conflict warns on uses of infix operators that would be parsed differently were a particular GHC extension enabled -Woperator-whitespace warns on prefix, suffix, and tight infix uses of infix operators Updates submodules: haddock, containers.
* Update containers to v0.6.4.1Simon Jakobi2020-10-091-0/+0
| | | | Updates containers submodule.
* Bump containers submodule to v0.6.2.1Ben Gamari2019-06-251-0/+0
|
* Bump containers submoduleBen Gamari2018-11-231-0/+0
|
* containers: Bump to 0.6.0.1Ben Gamari2018-06-201-0/+0
| | | | Bumps containers submodule, among others.
* Revert "containers: Bump to 0.6.0.1"Ben Gamari2018-06-191-0/+0
| | | | | | | | This reverts commit 50e7bff7514ebbd74976c1a9fa0db7a8275178ae. Reverts submodule changes. Sigh, the haskeline commit isn't quite upstream yet.
* containers: Bump to 0.6.0.1Ben Gamari2018-06-191-0/+0
| | | | Bumps containers submodule, among others.
* Upgrade containers submoduleDavid Feuer2018-02-021-0/+0
| | | | | | | | Reviewers: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4340
* Reexport Semigroup's <> operator from Prelude (#14191)Herbert Valerio Riedel2017-09-221-0/+0
| | | | | | | This completes the 2nd phase of the Semigroup=>Monoid Proposal (SMP) initiated in 8ae263ceb3566a7c82336400b09cb8f381217405. This updates a couple submodules to address <> naming clashes.
* Update containers submodule to official 0.5.10.2David Feuer2017-04-021-0/+0
| | | | | | | | | | Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3406
* Update containers againDavid Feuer2017-02-281-0/+0
| | | | | | | | | | | | submodule update Get the version with `COMPLETE` pragmas for `Data.Sequence`. Reviewers: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3249
* Try submodule bumps againBen Gamari2017-02-281-0/+0
| | | | | | Bumps containers, time, and unix submodules. This reverts commit c347a121b07d22fb91172337407986b6541e319d.
* Revert recent submodule bumpsBen Gamari2017-02-221-0/+0
| | | | | | | | They broke everything and the solution will be non-trivial. This reverts commit 8ccbc2e5252abd4fa67d155d4fff489ee9929906. This reverts commit c8d995db5d743358b0583fe97f8113bf9047641e. This reverts commit 7153370288e6075c4f8c996ff02227e48805da06.
* Bump Cabal and containers submodulesBen Gamari2017-02-211-0/+0
|
* Testsuite: delete compiler_lt/le/gt/ge setup functionsThomas Miedema2016-02-171-0/+0
| | | | | | | | Since we're not consisently keeping track of which tests should pass with which compiler versions, there is no point in keeping these functions. Update submodules containers, hpc and stm.
* Update containers submodule to v0.5.7.1 release tagHerbert Valerio Riedel2015-12-201-0/+0
| | | | | | | | This is the new designated release to go with GHC 8.0.1 This is only a meta-data change relative to v0.5.7.0 /cc @foxik
* Update containers submodule to v0.5.7.0 releaseHerbert Valerio Riedel2015-12-181-0/+0
| | | | | | | | | This is the designated release to go with GHC 8.0.1 This release doesn't need any warning-suppression flags anymore, so remove those from mk/warnings.mk /cc @foxik
* Update containers submoduleHerbert Valerio Riedel2015-11-291-0/+0
| | | | Differential Revision: https://phabricator.haskell.org/D1545
* Update containers submodule to 0.5.6.2 releaseHerbert Valerio Riedel2014-12-221-0/+0
|
* update containers submodules to 0.5.6.1 releaseHerbert Valerio Riedel2014-12-161-0/+0
|
* Update to (unreleased) `deepseq-1.4.0.0`Herbert Valerio Riedel2014-11-151-0/+0
| | | | | | | | | | | | | | | | | | | This pulls in the new `Generic`-based `-XDefaultSignature`-based default implementation for `rnf`[1], and will be interesting to use in combination with the soon to be merged `-XDeriveAnyClass` extension. This requires updating several other submodules as well in order to relax the upper bound on `deepseq` and/or in a few cases to avoid relying on the default method implementation of `rnf`: - `Cabal` - `bytestring` - `containers` - `parallel` - `process` - `time` [1]: http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/23031
* Sync up `containers` submodule to latest `master`-tipHerbert Valerio Riedel2014-10-201-0/+0
| | | | | | | | | This updates `containers` to provide more specialised `Foldable` instance methods, see also https://github.com/haskell/containers/issues/56 for more details.
* Extend `Foldable` class with `length` and `null` methodsHerbert Valerio Riedel2014-09-281-0/+0
| | | | | | | | | | | | | This completes the `Foldable` class by two important operations which this way can be optimised for the underlying structure more easily. A minor fix for the `containers` submodule was needed to due name clash Addresses #9621 Reviewed By: ekmett, dfeuer, austin Differential Revision: https://phabricator.haskell.org/D250
* ghc: Update containers submoduleAustin Seipp2014-05-181-0/+0
| | | | | | Also update a few tests, since containers now has IsList instances. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Update to containers-0.5.5.1Herbert Valerio Riedel2014-03-141-0/+0
| | | | | | This fixes a wrong #if around role annotations (see #8718) Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update to containers-0.5.5.0Herbert Valerio Riedel2014-03-131-0/+0
| | | | | | This adds role annotations to Map and Set and therefore addresses #8718 Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update to `containers-0.5.4.0`Herbert Valerio Riedel2014-01-161-0/+0
| | | | Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Update `containers` to 0.5.3.1 releaseHerbert Valerio Riedel2013-09-041-0/+0
|
* Update containers to 0.5.2.1 releaseHerbert Valerio Riedel2013-08-301-0/+0
| | | | (+ local fix for PolyTypeable)
* Typeable changes to containers while waiting for the upstream to updateJose Pedro Magalhaes2013-02-121-0/+0
|
* Use submodules for repositories with upstreamsIan Lynagh2012-11-251-0/+0