-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Two IntMap-related improvements #390
Conversation
It seems the only reason behind `IntMap ()` was the absense of `Data.IntMap.withoutKeys`, which was only added in `containers-0.5.8`.
At the moment we use `Data.IntMap` which is lazy in values, and we initialise values with thunks `testStatus <$> testActions`. This is outright silly: `testStatus` is just a selector for `TVar` field, forcing it to WHNF can do no harm. We also take an opportunity to replace `IntMap.fromList` with `IntMap.fromDistinctAscList`.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest to hold the changes that need a bump to containers
until we drop GHC 8.0.
@andreasabel good catch. I can put CPP of course, but I have no reason to keep compatibility with GHC < 8.6 (where 8.6 is only because of GHCJS). How do you feel about dropping earlier versions? |
Thinking it over, I guess it is fine to go ahead with this PR as-is. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally not a fan of fromDistinctAscList
as it is easy to break the precondition, but given that the ascending list is right behind it this LGTM.
FWIW, looks good to me too! :) Thank you for the improvements! |
launchTestTree
: useIntMap
strict in valuesAt the moment we use
Data.IntMap
which is lazy in values, and we initialise values with thunkstestStatus <$> testActions
. This is outright silly:testStatus
is just a selector forTVar
field, forcing it to WHNF can do no harm.We also take an opportunity to replace
IntMap.fromList
withIntMap.fromDistinctAscList
.statusMapResult
: useIntSet
instead ofIntMap ()
It seems the only reason behind
IntMap ()
was the absense ofData.IntMap.withoutKeys
, which was only added incontainers-0.5.8
.CC @martijnbastiaan for review