chore(cabal): update haskell language edition to GHC2021
This includes a good set of default language extensions that are often used by us. It frees us of explicitly importing common extensions. Ref: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html#extension-GHC2021 Signed-off-by: Taimoor Zaeem <taimoorzaeem@gmail.com>
This commit is contained in:
+5
-8
@@ -38,10 +38,9 @@ flag hpc
|
|||||||
description: Enable HPC (dev only)
|
description: Enable HPC (dev only)
|
||||||
|
|
||||||
library
|
library
|
||||||
default-language: Haskell2010
|
default-language: GHC2021
|
||||||
default-extensions: OverloadedStrings
|
default-extensions: OverloadedStrings
|
||||||
NoImplicitPrelude
|
NoImplicitPrelude
|
||||||
NumericUnderscores
|
|
||||||
hs-source-dirs: src/library
|
hs-source-dirs: src/library
|
||||||
exposed-modules: PostgREST.Admin
|
exposed-modules: PostgREST.Admin
|
||||||
PostgREST.App
|
PostgREST.App
|
||||||
@@ -193,7 +192,7 @@ library
|
|||||||
unix
|
unix
|
||||||
|
|
||||||
executable postgrest
|
executable postgrest
|
||||||
default-language: Haskell2010
|
default-language: GHC2021
|
||||||
default-extensions: OverloadedStrings
|
default-extensions: OverloadedStrings
|
||||||
NoImplicitPrelude
|
NoImplicitPrelude
|
||||||
hs-source-dirs: src/executable
|
hs-source-dirs: src/executable
|
||||||
@@ -217,11 +216,10 @@ executable postgrest
|
|||||||
|
|
||||||
test-suite spec
|
test-suite spec
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
default-language: Haskell2010
|
default-language: GHC2021
|
||||||
default-extensions: OverloadedStrings
|
default-extensions: OverloadedStrings
|
||||||
QuasiQuotes
|
QuasiQuotes
|
||||||
NoImplicitPrelude
|
NoImplicitPrelude
|
||||||
NumericUnderscores
|
|
||||||
hs-source-dirs: test/spec
|
hs-source-dirs: test/spec
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
other-modules: Feature.Auth.AsymmetricJwtSpec
|
other-modules: Feature.Auth.AsymmetricJwtSpec
|
||||||
@@ -318,11 +316,10 @@ test-suite spec
|
|||||||
|
|
||||||
test-suite observability
|
test-suite observability
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
default-language: Haskell2010
|
default-language: GHC2021
|
||||||
default-extensions: OverloadedStrings
|
default-extensions: OverloadedStrings
|
||||||
QuasiQuotes
|
QuasiQuotes
|
||||||
NoImplicitPrelude
|
NoImplicitPrelude
|
||||||
NumericUnderscores
|
|
||||||
hs-source-dirs: test/observability
|
hs-source-dirs: test/observability
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
other-modules: ObsHelper
|
other-modules: ObsHelper
|
||||||
@@ -353,7 +350,7 @@ test-suite observability
|
|||||||
|
|
||||||
test-suite doctests
|
test-suite doctests
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
default-language: Haskell2010
|
default-language: GHC2021
|
||||||
hs-source-dirs: test/doc
|
hs-source-dirs: test/doc
|
||||||
main-is: Main.hs
|
main-is: Main.hs
|
||||||
build-depends: base >= 4.9 && < 4.22
|
build-depends: base >= 4.9 && < 4.22
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
--
|
--
|
||||||
-- This module is in charge of parsing all the querystring values in an url, e.g.
|
-- This module is in charge of parsing all the querystring values in an url, e.g.
|
||||||
-- the select, id, order in `/projects?select=id,name&id=eq.1&order=id,name.desc`.
|
-- the select, id, order in `/projects?select=id,name&id=eq.1&order=id,name.desc`.
|
||||||
{-# LANGUAGE LambdaCase #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE TupleSections #-}
|
|
||||||
module PostgREST.ApiRequest.QueryParams
|
module PostgREST.ApiRequest.QueryParams
|
||||||
( parse
|
( parse
|
||||||
, QueryParams(..)
|
, QueryParams(..)
|
||||||
|
|||||||
@@ -9,12 +9,10 @@ Some of its functionality includes:
|
|||||||
- Producing HTTP Headers according to RFCs.
|
- Producing HTTP Headers according to RFCs.
|
||||||
- Content Negotiation
|
- Content Negotiation
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE LambdaCase #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
{-# LANGUAGE ViewPatterns #-}
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
|
||||||
{-# LANGUAGE ViewPatterns #-}
|
|
||||||
module PostgREST.App
|
module PostgREST.App
|
||||||
( postgrest
|
( postgrest
|
||||||
, run
|
, run
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ Authentication should always be implemented in an external service.
|
|||||||
In the test suite there is an example of simple login function that can be used for a
|
In the test suite there is an example of simple login function that can be used for a
|
||||||
very simple authentication system inside the PostgreSQL database.
|
very simple authentication system inside the PostgreSQL database.
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
|
||||||
module PostgREST.Auth
|
module PostgREST.Auth
|
||||||
( getAuthResult )
|
( getAuthResult )
|
||||||
where
|
where
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ Description : PostgREST JWT support functions.
|
|||||||
|
|
||||||
This module provides functions to deal with JWT parsing and validation (http://jwt.io).
|
This module provides functions to deal with JWT parsing and validation (http://jwt.io).
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
|
||||||
{-# LANGUAGE ImpredicativeTypes #-}
|
{-# LANGUAGE ImpredicativeTypes #-}
|
||||||
{-# LANGUAGE LambdaCase #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
|
|||||||
@@ -4,13 +4,9 @@ Description : PostgREST JWT validation results Cache.
|
|||||||
|
|
||||||
This module provides functions to deal with the JWT cache.
|
This module provides functions to deal with the JWT cache.
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE ExistentialQuantification #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
{-# LANGUAGE StrictData #-}
|
||||||
{-# LANGUAGE LambdaCase #-}
|
|
||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
|
||||||
{-# LANGUAGE StrictData #-}
|
|
||||||
|
|
||||||
module PostgREST.Auth.JwtCache
|
module PostgREST.Auth.JwtCache
|
||||||
( init
|
( init
|
||||||
|
|||||||
@@ -8,11 +8,9 @@ This module provides implementation of a mutable cache on Sieve algorithm.
|
|||||||
{-# LANGUAGE GADTs #-}
|
{-# LANGUAGE GADTs #-}
|
||||||
{-# LANGUAGE LambdaCase #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE PolyKinds #-}
|
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
{-# LANGUAGE RecursiveDo #-}
|
{-# LANGUAGE RecursiveDo #-}
|
||||||
{-# LANGUAGE StrictData #-}
|
{-# LANGUAGE StrictData #-}
|
||||||
{-# LANGUAGE TupleSections #-}
|
|
||||||
|
|
||||||
module PostgREST.Cache.Sieve (
|
module PostgREST.Cache.Sieve (
|
||||||
Cache
|
Cache
|
||||||
|
|||||||
@@ -3,13 +3,10 @@ Module : PostgREST.Config
|
|||||||
Description : Manages PostgREST configuration type and parser.
|
Description : Manages PostgREST configuration type and parser.
|
||||||
|
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
{-# LANGUAGE LambdaCase #-}
|
|
||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
|
||||||
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
|
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
|
|
||||||
module PostgREST.Config
|
module PostgREST.Config
|
||||||
( AppConfig (..)
|
( AppConfig (..)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
module PostgREST.Config.PgVersion
|
module PostgREST.Config.PgVersion
|
||||||
( PgVersion(..)
|
( PgVersion(..)
|
||||||
, minimumPgVersion
|
, minimumPgVersion
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
{-# LANGUAGE DuplicateRecordFields #-}
|
{-# LANGUAGE DuplicateRecordFields #-}
|
||||||
{-# OPTIONS_GHC -Wno-unused-do-bind #-}
|
{-# OPTIONS_GHC -Wno-unused-do-bind #-}
|
||||||
module PostgREST.MediaType
|
module PostgREST.MediaType
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
{-|
|
{-|
|
||||||
Module : PostgREST.Observation
|
Module : PostgREST.Observation
|
||||||
Description : This module holds an Observation type which is the core of Observability for PostgREST.
|
Description : This module holds an Observation type which is the core of Observability for PostgREST.
|
||||||
|
|||||||
@@ -8,15 +8,10 @@ The schema cache is necessary for resource embedding, foreign keys are used for
|
|||||||
|
|
||||||
These queries are executed once at startup or when PostgREST is reloaded.
|
These queries are executed once at startup or when PostgREST is reloaded.
|
||||||
-}
|
-}
|
||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
{-# LANGUAGE RecordWildCards #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
|
||||||
{-# LANGUAGE QuasiQuotes #-}
|
|
||||||
{-# LANGUAGE RecordWildCards #-}
|
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
|
||||||
{-# LANGUAGE TypeSynonymInstances #-}
|
|
||||||
|
|
||||||
module PostgREST.SchemaCache
|
module PostgREST.SchemaCache
|
||||||
( SchemaCache(..)
|
( SchemaCache(..)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
|
|
||||||
module PostgREST.SchemaCache.Identifiers
|
module PostgREST.SchemaCache.Identifiers
|
||||||
( FieldName
|
( FieldName
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
|
|
||||||
module PostgREST.SchemaCache.Relationship
|
module PostgREST.SchemaCache.Relationship
|
||||||
( Cardinality(..)
|
( Cardinality(..)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
|
|
||||||
module PostgREST.SchemaCache.Representations
|
module PostgREST.SchemaCache.Representations
|
||||||
( DataRepresentation(..)
|
( DataRepresentation(..)
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
{-# LANGUAGE StandaloneDeriving #-}
|
|
||||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||||
|
|
||||||
module PostgREST.SchemaCache.Routine
|
module PostgREST.SchemaCache.Routine
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
|
||||||
|
|
||||||
module PostgREST.SchemaCache.Table
|
module PostgREST.SchemaCache.Table
|
||||||
( Column(..)
|
( Column(..)
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
{-# LANGUAGE AllowAmbiguousTypes #-}
|
{-# LANGUAGE AllowAmbiguousTypes #-}
|
||||||
{-# LANGUAGE DeriveAnyClass #-}
|
{-# LANGUAGE DeriveAnyClass #-}
|
||||||
{-# LANGUAGE ExistentialQuantification #-}
|
{-# LANGUAGE LambdaCase #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
|
||||||
{-# LANGUAGE FlexibleInstances #-}
|
|
||||||
{-# LANGUAGE LambdaCase #-}
|
|
||||||
{-# LANGUAGE RankNTypes #-}
|
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
|
||||||
{-# LANGUAGE TupleSections #-}
|
|
||||||
{-# LANGUAGE TypeApplications #-}
|
|
||||||
{-# LANGUAGE TypeOperators #-}
|
|
||||||
module ObsHelper where
|
module ObsHelper where
|
||||||
|
|
||||||
import qualified Data.ByteString as BS
|
import qualified Data.ByteString as BS
|
||||||
@@ -175,7 +167,7 @@ accumulateUntilTimeout t f start act = do
|
|||||||
-- mask to make sure TimeoutException is not thrown before starting the loop
|
-- mask to make sure TimeoutException is not thrown before starting the loop
|
||||||
mask $ \unmask -> do
|
mask $ \unmask -> do
|
||||||
-- start timeout thread unmasking exceptions
|
-- start timeout thread unmasking exceptions
|
||||||
ttid <- forkIOWithUnmask ($ (threadDelay t *> throwTo tid TimeoutException))
|
ttid <- forkIOWithUnmask (\unmask' -> unmask' (threadDelay t *> throwTo tid TimeoutException))
|
||||||
-- unmask effect
|
-- unmask effect
|
||||||
unmask (fix (\loop accum -> (act >>= loop . f accum) `onTimeout` pure accum) start)
|
unmask (fix (\loop accum -> (act >>= loop . f accum) `onTimeout` pure accum) start)
|
||||||
-- make sure we catch timeout if happens before entering the loop
|
-- make sure we catch timeout if happens before entering the loop
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{-# LANGUAGE DataKinds #-}
|
{-# LANGUAGE DataKinds #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE TypeApplications #-}
|
|
||||||
module Observation.JwtCache where
|
module Observation.JwtCache where
|
||||||
|
|
||||||
import Network.Wai (Application)
|
import Network.Wai (Application)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
{-# LANGUAGE DataKinds #-}
|
{-# LANGUAGE DataKinds #-}
|
||||||
{-# LANGUAGE FlexibleContexts #-}
|
|
||||||
{-# LANGUAGE MonadComprehensions #-}
|
{-# LANGUAGE MonadComprehensions #-}
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
{-# LANGUAGE NamedFieldPuns #-}
|
||||||
{-# LANGUAGE TypeApplications #-}
|
|
||||||
|
|
||||||
module Observation.MetricsSpec where
|
module Observation.MetricsSpec where
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{-# LANGUAGE BangPatterns #-}
|
|
||||||
module Feature.Auth.JwtCacheSpec where
|
module Feature.Auth.JwtCacheSpec where
|
||||||
|
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE UndecidableInstances #-}
|
||||||
{-# LANGUAGE UndecidableInstances #-}
|
|
||||||
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
{-# OPTIONS_GHC -fno-warn-orphans #-}
|
||||||
module Feature.ConcurrentSpec where
|
module Feature.ConcurrentSpec where
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{-# LANGUAGE TupleSections #-}
|
|
||||||
module SpecHelper where
|
module SpecHelper where
|
||||||
|
|
||||||
import qualified Data.Aeson as JSON
|
import qualified Data.Aeson as JSON
|
||||||
|
|||||||
Reference in New Issue
Block a user