From 4f23016e547830c46eb83b04c0896f288d84c26c Mon Sep 17 00:00:00 2001 From: "L. S. Leary" Date: Sat, 21 Jul 2018 22:02:13 +1200 Subject: [PATCH 1/3] GHC 7.8 compatibility: * Explicitly import pure, (<$>), (<*>) and (<$) from Control.Applicative. * Use DeriveDataTypeable pragma. * Remove type signature from pattern synonym. --- XMonad/Actions/SwapPromote.hs | 3 +++ XMonad/Layout/NoBorders.hs | 5 +++-- XMonad/Layout/Spacing.hs | 2 +- XMonad/Layout/StateFull.hs | 3 +-- XMonad/Util/Stack.hs | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/XMonad/Actions/SwapPromote.hs b/XMonad/Actions/SwapPromote.hs index 8256c4ef..e8fc41aa 100644 --- a/XMonad/Actions/SwapPromote.hs +++ b/XMonad/Actions/SwapPromote.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE DeriveDataTypeable #-} + ----------------------------------------------------------------------------- -- | -- Module : XMonad.Actions.SwapPromote @@ -63,6 +65,7 @@ import qualified Data.Set as S import Data.List import Data.Maybe import Control.Arrow +import Control.Applicative ((<$>),(<*>)) import Control.Monad diff --git a/XMonad/Layout/NoBorders.hs b/XMonad/Layout/NoBorders.hs index b7f73fa1..0997ed69 100644 --- a/XMonad/Layout/NoBorders.hs +++ b/XMonad/Layout/NoBorders.hs @@ -1,5 +1,5 @@ -{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, TypeSynonymInstances #-} -{-# LANGUAGE PatternGuards #-} +{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-} +{-# LANGUAGE TypeSynonymInstances, PatternGuards, DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- | @@ -42,6 +42,7 @@ import Data.List import Data.Monoid import qualified Data.Map as M import Data.Function (on) +import Control.Applicative ((<$>),(<*>),pure) import Control.Monad (guard) diff --git a/XMonad/Layout/Spacing.hs b/XMonad/Layout/Spacing.hs index c103c356..e4efdd10 100644 --- a/XMonad/Layout/Spacing.hs +++ b/XMonad/Layout/Spacing.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-} +{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, DeriveDataTypeable #-} ----------------------------------------------------------------------------- -- | diff --git a/XMonad/Layout/StateFull.hs b/XMonad/Layout/StateFull.hs index 476255e5..ceacad1c 100644 --- a/XMonad/Layout/StateFull.hs +++ b/XMonad/Layout/StateFull.hs @@ -34,7 +34,7 @@ import qualified XMonad.StackSet as W import XMonad.Util.Stack (findZ) import Data.Maybe (fromMaybe) -import Control.Applicative ((<|>)) +import Control.Applicative ((<|>),(<$>)) import Control.Monad (join) -- $Usage @@ -67,7 +67,6 @@ type StateFull = FocusTracking Full -- | A pattern synonym for the primary use case of the @FocusTracking@ -- transformer; using @Full@. -pattern StateFull :: StateFull a pattern StateFull = FocusTracking Nothing Full instance LayoutClass l Window => LayoutClass (FocusTracking l) Window where diff --git a/XMonad/Util/Stack.hs b/XMonad/Util/Stack.hs index b774bc17..953de723 100644 --- a/XMonad/Util/Stack.hs +++ b/XMonad/Util/Stack.hs @@ -80,7 +80,7 @@ module XMonad.Util.Stack ( -- * Usage ) where import qualified XMonad.StackSet as W -import Control.Applicative ((<|>)) +import Control.Applicative ((<|>),(<$>),(<$)) import Control.Monad (guard,liftM) import Data.List (sortBy) From 259c170ac9f697de2efe09210ebc6e06aa0f4444 Mon Sep 17 00:00:00 2001 From: "L. S. Leary" Date: Sat, 21 Jul 2018 22:12:59 +1200 Subject: [PATCH 2/3] Travis-CI: * don't constrain to precise * add libxrandr dependency * test against new GHC versions * install xmonad from git before cabal can install it from hackage --- .travis.yml | 53 +++++++++++++++++++++++++++++--------------- xmonad-contrib.cabal | 2 +- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 89106311..8bb315d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ # This file has been generated -- see https://github.com/hvr/multi-ghc-travis language: c sudo: false -dist: precise cache: directories: @@ -14,27 +13,42 @@ before_cache: matrix: include: - - env: CABALVER=1.16 GHCVER=7.6.3 - compiler: ": #GHC 7.6.3" - addons: {apt: {packages: [cabal-install-1.16,ghc-7.6.3], sources: [hvr-ghc]}} - - env: CABALVER=1.18 GHCVER=7.8.4 - compiler: ": #GHC 7.8.4" - addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}} - - env: CABALVER=1.22 GHCVER=7.10.3 - compiler: ": #GHC 7.10.3" - addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}} - - env: CABALVER=1.24 GHCVER=8.0.1 + - env: GHCVER=8.4.3 CABALVER=2.2 + compiler: ": #GHC 8.4.3" + addons: { apt: { packages: [cabal-install-2.2, ghc-8.4.3, libxrandr-dev] + , sources: [hvr-ghc] + } } + - env: GHCVER=8.2.2 CABALVER=2.0 + compiler: ": #GHC 8.2.2" + addons: { apt: { packages: [cabal-install-2.0, ghc-8.2.2, libxrandr-dev] + , sources: [hvr-ghc] + } } + - env: GHCVER=8.0.1 CABALVER=1.24 compiler: ": #GHC 8.0.1" - addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1], sources: [hvr-ghc]}} + addons: { apt: { packages: [cabal-install-1.24, ghc-8.0.1, libxrandr-dev] + , sources: [hvr-ghc] + } } + - env: GHCVER=7.10.3 CABALVER=1.22 + compiler: ": #GHC 7.10.3" + addons: { apt: { packages: [cabal-install-1.22, ghc-7.10.3, libxrandr-dev] + , sources: [hvr-ghc] + } } + - env: GHCVER=7.8.4 CABALVER=1.18 + compiler: ": #GHC 7.8.4" + addons: { apt: { packages: [cabal-install-1.18, ghc-7.8.4, libxrandr-dev] + , sources: [hvr-ghc] + } } + - env: GHCVER=7.6.3 CABALVER=1.16 + compiler: ": #GHC 7.6.3" + addons: { apt: { packages: [cabal-install-1.16, ghc-7.6.3, libxrandr-dev] + , sources: [hvr-ghc] + } } before_install: - unset CC - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH install: - # build xmonad from HEAD - - git clone https://github.com/xmonad/xmonad.git - - cabal --version - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]" - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ]; @@ -43,6 +57,11 @@ install: $HOME/.cabal/packages/hackage.haskell.org/00-index.tar; fi - travis_retry cabal update -v + + # build xmonad from HEAD + - git clone https://github.com/xmonad/xmonad.git + - cabal install xmonad/ + - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config - cabal install --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt @@ -58,8 +77,8 @@ install: echo "cabal build-cache MISS"; rm -rf $HOME/.cabsnap; mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin; - cabal install --only-dependencies --enable-tests --enable-benchmarks; fi + - cabal install --only-dependencies --enable-tests --enable-benchmarks; # snapshot package-db on cache miss - if [ ! -d $HOME/.cabsnap ]; @@ -70,8 +89,6 @@ install: cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/; fi - - cabal install xmonad/ - # Here starts the actual work to be performed for the package under test; # any command which exits with a non-zero exit code causes the build to fail. script: diff --git a/xmonad-contrib.cabal b/xmonad-contrib.cabal index 13cfcf02..05947ede 100644 --- a/xmonad-contrib.cabal +++ b/xmonad-contrib.cabal @@ -36,7 +36,7 @@ cabal-version: >= 1.6 build-type: Simple bug-reports: https://github.com/xmonad/xmonad-contrib/issues -tested-with: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.1, GHC==8.2.2, GHC==8.4.1 +tested-with: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.1, GHC==8.2.2, GHC==8.4.3 source-repository head type: git From fdc3f78588c24c3e5b3d99ea480b15872d9ab9de Mon Sep 17 00:00:00 2001 From: "L. S. Leary" Date: Sat, 28 Jul 2018 05:13:09 +1200 Subject: [PATCH 3/3] Drop GHC 7.6 compatibility. --- .travis.yml | 5 ----- xmonad-contrib.cabal | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8bb315d1..e54691b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,11 +38,6 @@ matrix: addons: { apt: { packages: [cabal-install-1.18, ghc-7.8.4, libxrandr-dev] , sources: [hvr-ghc] } } - - env: GHCVER=7.6.3 CABALVER=1.16 - compiler: ": #GHC 7.6.3" - addons: { apt: { packages: [cabal-install-1.16, ghc-7.6.3, libxrandr-dev] - , sources: [hvr-ghc] - } } before_install: - unset CC diff --git a/xmonad-contrib.cabal b/xmonad-contrib.cabal index 05947ede..63f3746a 100644 --- a/xmonad-contrib.cabal +++ b/xmonad-contrib.cabal @@ -36,7 +36,7 @@ cabal-version: >= 1.6 build-type: Simple bug-reports: https://github.com/xmonad/xmonad-contrib/issues -tested-with: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.1, GHC==8.2.2, GHC==8.4.3 +tested-with: GHC==7.8.4, GHC==7.10.3, GHC==8.0.1, GHC==8.2.2, GHC==8.4.3 source-repository head type: git