diff options
author | Bartosz Nitka <niteria@gmail.com> | 2016-06-09 08:50:32 -0700 |
---|---|---|
committer | Bartosz Nitka <niteria@gmail.com> | 2016-06-22 07:28:58 -0700 |
commit | 348f2dbb835b1208f601bb1e8daa1d1d54507eda (patch) | |
tree | adaf0e779936e0d86fceb7041920ac6f2eb8044b /testsuite/tests/overloadedrecflds | |
parent | 93f40cb9b93b0308b211eaf4ad8f2fee6cb1b5aa (diff) | |
download | haskell-348f2dbb835b1208f601bb1e8daa1d1d54507eda.tar.gz |
Make the Ord Module independent of Unique order (2nd try)
The `Ord Module` instance currently uses `Unique`s for comparison.
We don't want to use the `Unique` order because it can introduce
nondeterminism.
This switches `Ord ModuleName` and `Ord UnitId` to use lexicographic
ordering making `Ord Module` deterministic transitively.
I've run `nofib` and it doesn't make a measurable difference.
See also Note [ModuleEnv determinism and performance].
This fixes #12191 - the regression, that the previous version of this
patch had.
Test Plan:
./validate
run nofib: P112
Reviewers: simonmar, bgamari, austin
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2354
GHC Trac Issues: #4012, #12191
Diffstat (limited to 'testsuite/tests/overloadedrecflds')
-rw-r--r-- | testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail10.stderr | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail10.stderr b/testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail10.stderr index 9d8e8bd6c3..9be384b500 100644 --- a/testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail10.stderr +++ b/testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail10.stderr @@ -1,6 +1,6 @@ [1 of 4] Compiling OverloadedRecFldsFail10_A ( OverloadedRecFldsFail10_A.hs, OverloadedRecFldsFail10_A.o ) -[2 of 4] Compiling OverloadedRecFldsFail10_C ( OverloadedRecFldsFail10_C.hs, OverloadedRecFldsFail10_C.o ) -[3 of 4] Compiling OverloadedRecFldsFail10_B ( OverloadedRecFldsFail10_B.hs, OverloadedRecFldsFail10_B.o ) +[2 of 4] Compiling OverloadedRecFldsFail10_B ( OverloadedRecFldsFail10_B.hs, OverloadedRecFldsFail10_B.o ) +[3 of 4] Compiling OverloadedRecFldsFail10_C ( OverloadedRecFldsFail10_C.hs, OverloadedRecFldsFail10_C.o ) [4 of 4] Compiling Main ( overloadedrecfldsfail10.hs, overloadedrecfldsfail10.o ) overloadedrecfldsfail10.hs:6:20: error: |