[GHC] #13313: cabal08 broken

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[GHC] #13313: cabal08 broken

GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
           Reporter:  bgamari        |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  high           |         Milestone:  8.2.1
          Component:  Compiler       |           Version:  8.0.1
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Upon updating the `Cabal` submodule from
 19c278feb732f5797256ff28eb671440f5511c6c to
 e4c36b9dd51820f2380ce7a66f980c4e7b2e96fc the `cabal08` testcase broke.
 I've marked it as `expect_broken` for now.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by ezyang):

 How did it break?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 I'm in the middle of another build to verify this, but this is what
 happened last time,
 {{{
 diff --git a/testsuite/tests/cabal/cabal08/cabal08.stdout
 b/testsuite/tests/cabal/cabal08/cabal08.stdout
 index 8f97cd409f..bf196e0629 100644
 --- a/testsuite/tests/cabal/cabal08/cabal08.stdout
 +++ b/testsuite/tests/cabal/cabal08/cabal08.stdout
 @@ -1,6 +1,6 @@
  [1 of 1] Compiling Main             ( Main.hs, Main.o )
  Linking Main ...
 -p2
 +p1
  [1 of 1] Compiling Main             ( Main.hs, Main.o )
  Linking Main ...
 -p2
 +p1
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Indeed I can reliably reproduce this. I've marked the test as broken in
 8ccbc2e5252abd4fa67d155d4fff489ee9929906.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  ezyang
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by bgamari):

 * owner:  (none) => ezyang


Comment:

 ezyang, are you aware of this?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  ezyang
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by ezyang):

 Yes, I've diagnosed the problem.

 The trouble is that the new algorithm for computing package shadowing
 doesn't remember the order packages were specified in package databases,
 so it doesn't respect the flag ordering; instead, it relies entirely on
 the (deterministic) comparison of unit identifiers. Probably the reason
 why this wobbled is because Cabal was allocating different unit
 identifiers on different platforms, causing the (deterministic) comparison
 to wobble, so that we picked one or another.

 It would be very good to fix this in time for GHC 8.2. However, fixing
 this seems a bit annoying in the current algorithm, because there isn't
 really a good way to remember the package ordering after we suck all the
 packages into an InstalledPackageIndex. I'll work on a fix this weekend.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  ezyang
            Type:  bug               |               Status:  patch
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3369
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by ezyang):

 * status:  new => patch
 * differential:   => Phab:D3369


--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  ezyang
            Type:  bug               |               Status:  patch
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3369
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Edward Z. Yang <ezyang@…>):

 In [changeset:"e0eaea918c32b3aa445708656876d1e2aef94a13/ghc"
 e0eaea91/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="e0eaea918c32b3aa445708656876d1e2aef94a13"
 Correctly account for -package-db ordering when picking packages.

 Summary:
 When I originally implemented ABI-based shadowing as per
 ee4e1654c31b9c6f6ad9b19ece25f040bbbcbd72, I switched our strategy
 from pasting together lists to creating a map of all units first,
 and then selecting packages from this.  However, what I did
 not realize when doing this was that we actually depended
 on the *ordering* of these lists later, when we selected
 a preferred package to use.

 The crux is if I have -package-db db1 -package-db db2 -package p-0.1,
 and p-0.1 is provided by both db1 and db2, which one does the
 -package flag select?  Previously, this was undetermined; now
 we always select the instance from the LATEST package database.
 (If p-0.1 shows up multiple times in the same database, once again
 the chosen package is undefined.)

 The reason why cabal08 intermittently failed was that, in practice,
 we were sorting on the UnitId, so when we bumped version numbers,
 that often wibbled the UnitIds so that they compared oppositely.
 I've extended the test so that we check that the relation is
 antisymmetric.

 Fixes #13313

 Signed-off-by: Edward Z. Yang <[hidden email]>

 Test Plan: validate

 Reviewers: bgamari, austin

 Subscribers: rwbarton, thomie

 Differential Revision: https://phabricator.haskell.org/D3369
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [GHC] #13313: cabal08 broken

GHC - devs mailing list
In reply to this post by GHC - devs mailing list
#13313: cabal08 broken
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  ezyang
            Type:  bug               |               Status:  closed
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.0.1
      Resolution:  fixed             |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3369
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by bgamari):

 * status:  patch => closed
 * resolution:   => fixed


Comment:

 Merged to `ghc-8.2` as 1682980d7f5262fb42c0d11e8366bde6bc98c792.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13313#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-tickets
Loading...