xmonad / xmonad-contrib

Contributed modules for xmonad
https://xmonad.org
BSD 3-Clause "New" or "Revised" License
584 stars 274 forks source link

X.Prelude: Compatibility with base-4.18.0.0 #829

Closed slotThe closed 1 year ago

slotThe commented 1 year ago

Will ship with GHC 9.8.

Fixes: https://github.com/xmonad/xmonad-contrib/issues/826

@geekosaur: Could you send me the warnings that are generated due to -Wx-partial? I'd like to fix at least some of them.

Checklist

geekosaur commented 1 year ago

Interesting. We now have a bigger problem: I had been able to build setlocale for xmonad the first time I did this with an --allow-newer, but now it fails with

[1 of 1] Compiling System.Locale.SetLocale ( dist/build/System/Locale/SetLocale.hs, dist/build/System/Locale/SetLocale.o, dist/build/System/Locale/SetLocale.dyn_o )

System/Locale/SetLocale.hsc:27:5: error: [GHC-54721]
    ‘typeOf’ is not a (visible) method of class ‘Typeable’
   |
27 |     typeOf _ = mkTyConApp (mkTyCon "System.Locale.SetLocale.Category") []
   |     ^^^^^^

So we won't be able to support 9.8 anyway unless I can figure out how Typeable changed. (This is preventing me from even reaching xmonad-contrib, so it has to be something new within the past week.)

liskin commented 1 year ago

This looks more like a GHC or hsc2hs bug. There's just a deriving Typeable in that source file: https://gitlab.com/Kritzefitz/haskell-setlocale/-/blob/master/System/Locale/SetLocale.hsc?ref_type=heads#L25-32, and you shouldn't need the (..) in import Data.Typeable (Typeable(..)) to be able to have GHC derive that.

And anyway, that's a problem of https://gitlab.com/Kritzefitz/haskell-setlocale, not ours. :-)

geekosaur commented 1 year ago

Wait, I just remembered you can't instance type of all at all anymore so that should have thrown a different error and it should have been throwing it since some 7.x release.

On Sun, Sep 17, 2023, 16:47 Tomáš Janoušek @.***> wrote:

This looks more like a GHC or hsc2hs bug. There's just a deriving Typeable in that source file: https://gitlab.com/Kritzefitz/haskell-setlocale/-/blob/master/System/Locale/SetLocale.hsc?ref_type=heads#L25-32, and you shouldn't need the (..) in import Data.Typeable (Typeable(..)) to be able to have GHC derive that.

And anyway, that's a problem of https://gitlab.com/Kritzefitz/haskell-setlocale, not ours. :-)

— Reply to this email directly, view it on GitHub https://github.com/xmonad/xmonad-contrib/pull/829#issuecomment-1722565310, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPRFICYAODHPXYL7QDGOBLX25OXDANCNFSM6AAAAAA43QQPBI . You are receiving this because you were mentioned.Message ID: @.***>

geekosaur commented 1 year ago

And it's the import because it doesn't expose the methods of Typeable. I wonder if there's a ghc gotcha or even bug there.

On Sun, Sep 17, 2023 at 4:56 PM Brandon Allbery @.***> wrote:

Wait, I just remembered you can't instance type of all at all anymore so that should have thrown a different error and it should have been throwing it since some 7.x release.

On Sun, Sep 17, 2023, 16:47 Tomáš Janoušek @.***> wrote:

This looks more like a GHC or hsc2hs bug. There's just a deriving Typeable in that source file: https://gitlab.com/Kritzefitz/haskell-setlocale/-/blob/master/System/Locale/SetLocale.hsc?ref_type=heads#L25-32, and you shouldn't need the (..) in import Data.Typeable (Typeable(..)) to be able to have GHC derive that.

And anyway, that's a problem of https://gitlab.com/Kritzefitz/haskell-setlocale, not ours. :-)

— Reply to this email directly, view it on GitHub https://github.com/xmonad/xmonad-contrib/pull/829#issuecomment-1722565310, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPRFICYAODHPXYL7QDGOBLX25OXDANCNFSM6AAAAAA43QQPBI . You are receiving this because you were mentioned.Message ID: @.***>

-- brandon s allbery kf8nh @.***

geekosaur commented 1 year ago

Import needed, (..) needed (or unqualified import), at least as of 9.8. I'll sort it later with Ben or someone in #ghc. Still have no idea how I got a successful build before though.

Also had to relax bounds on hsc2hs, need to ask Ben about that one too in case it needs to be fixed upstream (it should ship with ghc, I think?)

On Sun, Sep 17, 2023 at 5:10 PM Brandon Allbery @.***> wrote:

And it's the import because it doesn't expose the methods of Typeable. I wonder if there's a ghc gotcha or even bug there.

On Sun, Sep 17, 2023 at 4:56 PM Brandon Allbery @.***> wrote:

Wait, I just remembered you can't instance type of all at all anymore so that should have thrown a different error and it should have been throwing it since some 7.x release.

On Sun, Sep 17, 2023, 16:47 Tomáš Janoušek @.***> wrote:

This looks more like a GHC or hsc2hs bug. There's just a deriving Typeable in that source file: https://gitlab.com/Kritzefitz/haskell-setlocale/-/blob/master/System/Locale/SetLocale.hsc?ref_type=heads#L25-32, and you shouldn't need the (..) in import Data.Typeable (Typeable(..)) to be able to have GHC derive that.

And anyway, that's a problem of https://gitlab.com/Kritzefitz/haskell-setlocale, not ours. :-)

— Reply to this email directly, view it on GitHub https://github.com/xmonad/xmonad-contrib/pull/829#issuecomment-1722565310, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPRFICYAODHPXYL7QDGOBLX25OXDANCNFSM6AAAAAA43QQPBI . You are receiving this because you were mentioned.Message ID: @.***>

-- brandon s allbery kf8nh @.***

-- brandon s allbery kf8nh @.***

geekosaur commented 1 year ago

Okay, I have a successful build, so I can review now. And can collect those partiality warnings (they're all over, I'm afraid).