;deps: a better fix for nubSortBy with ghc 7.10, 8.0

nubSortBy and nub . sortBy are not equivalent, it seems.
I didn't notice the failing valuation func tests.
This commit is contained in:
Simon Michael 2019-07-13 00:13:33 -07:00
parent 87ab586629
commit 6f2f8d7638
5 changed files with 9 additions and 9 deletions

View File

@ -27,7 +27,7 @@ import Data.Decimal (roundTo)
import Data.Function (on) import Data.Function (on)
import Data.Graph.Inductive (Gr, Node, NodeMap, mkMapGraph, mkNode, lab, out, sp) import Data.Graph.Inductive (Gr, Node, NodeMap, mkMapGraph, mkNode, lab, out, sp)
import Data.List import Data.List
-- import Data.List.Extra (nubSortBy) import Data.List.Extra (nubSortBy)
import qualified Data.Map as M import qualified Data.Map as M
import Data.Maybe import Data.Maybe
import qualified Data.Text as T import qualified Data.Text as T
@ -120,9 +120,7 @@ pricesAtDate pricedirectives d = PriceGraph{prGraph=g, prNodemap=m, prDeclaredPa
-- get the latest (on or before date d) declared price for each commodity pair -- get the latest (on or before date d) declared price for each commodity pair
declaredprices :: [MarketPrice] = declaredprices :: [MarketPrice] =
dbg5 "declaredprices" $ dbg5 "declaredprices" $
-- XXX Data.List.Extra.nubSortBy might be more efficient (n Log n vs n^2 ?) nubSortBy (compare `on` (\(MarketPrice{..})->(mpfrom,mpto))) $ -- keep only the first (ie newest and latest parsed) price for each pair
-- but is not in ghc 7.10, 8.0 stackage snapshots
nub $ sortBy (compare `on` (\(MarketPrice{..})->(mpfrom,mpto))) $ -- keep only the first (ie newest and latest parsed) price for each pair
map snd $ -- discard the parse order label map snd $ -- discard the parse order label
sortBy (flip compare `on` (\(parseorder,mp)->(mpdate mp,parseorder))) $ -- sort with newest dates and latest parse order first sortBy (flip compare `on` (\(parseorder,mp)->(mpdate mp,parseorder))) $ -- sort with newest dates and latest parse order first
zip [1..] $ -- label with parse order zip [1..] $ -- label with parse order

View File

@ -4,7 +4,7 @@ cabal-version: 1.12
-- --
-- see: https://github.com/sol/hpack -- see: https://github.com/sol/hpack
-- --
-- hash: 940be6dde18cf33cca2096d9176100b9ba178418eea2f1427d94fc5ffe58e783 -- hash: 4cfc4e9879ec711800e91c2cfe108a99c36d80ccb81b59e1df314915e94d5523
name: hledger-lib name: hledger-lib
version: 1.14.99 version: 1.14.99
@ -120,7 +120,7 @@ library
, deepseq , deepseq
, directory , directory
, easytest >=0.2.1 && <0.3 , easytest >=0.2.1 && <0.3
, extra , extra >=1.6.3
, fgl >=5.5.4.0 , fgl >=5.5.4.0
, file-embed >=0.0.10 , file-embed >=0.0.10
, filepath , filepath
@ -223,7 +223,7 @@ test-suite doctests
, directory , directory
, doctest >=0.16 , doctest >=0.16
, easytest >=0.2.1 && <0.3 , easytest >=0.2.1 && <0.3
, extra , extra >=1.6.3
, fgl >=5.5.4.0 , fgl >=5.5.4.0
, file-embed >=0.0.10 , file-embed >=0.0.10
, filepath , filepath
@ -325,7 +325,7 @@ test-suite easytests
, deepseq , deepseq
, directory , directory
, easytest >=0.2.1 && <0.3 , easytest >=0.2.1 && <0.3
, extra , extra >=1.6.3
, fgl >=5.5.4.0 , fgl >=5.5.4.0
, file-embed >=0.0.10 , file-embed >=0.0.10
, filepath , filepath

View File

@ -76,7 +76,7 @@ dependencies:
- transformers >=0.2 - transformers >=0.2
- uglymemo - uglymemo
- utf8-string >=0.3.5 - utf8-string >=0.3.5
- extra - extra >=1.6.3
- Glob >= 0.9 - Glob >= 0.9
# for ledger-parse: # for ledger-parse:
#- parsers >=0.5 #- parsers >=0.5

View File

@ -35,6 +35,7 @@ extra-deps:
- directory-1.2.7.0 - directory-1.2.7.0
- doctest-0.16.0 - doctest-0.16.0
- exceptions-0.10.0 - exceptions-0.10.0
- extra-1.6.17
- fgl-5.5.4.0 - fgl-5.5.4.0
- free-5.0.2 - free-5.0.2
- generics-sop-0.3.2.0 - generics-sop-0.3.2.0

View File

@ -24,6 +24,7 @@ extra-deps:
- config-ini-0.2.3.0 - config-ini-0.2.3.0
- criterion-1.4.1.0 - criterion-1.4.1.0
- doctest-0.16.0 - doctest-0.16.0
- extra-1.6.17
- fgl-5.5.4.0 - fgl-5.5.4.0
- generics-sop-0.3.2.0 - generics-sop-0.3.2.0
- hashable-1.2.7.0 - hashable-1.2.7.0