haskell / deepseq

Deep evaluation of data structures
http://hackage.haskell.org/package/deepseq
Other
40 stars 29 forks source link

Changelog for 1.4.5.0 seems wrong #72

Closed phadej closed 2 years ago

phadej commented 2 years ago

The changelog for 1.4.5.0 has:

Set infixr 0 for deepseq Makes infix use of 'deepseq' parse the same way as infix use of 'seq'

entry,

However:

% ghci-9.0.1
GHCi, version 9.0.1: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/phadej/.ghci
Prelude> :m +Control.DeepSeq 
Prelude Control.DeepSeq> :i deepseq
deepseq :: NFData a => a -> b -> b  -- Defined in ‘Control.DeepSeq’

and

deepseq-1.4.5.0 % cabal repl -w ghc-8.6.5
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - deepseq-1.4.5.0 (lib) (first run)
Configuring library for deepseq-1.4.5.0..
Preprocessing library for deepseq-1.4.5.0..
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/phadej/.ghci
[1 of 2] Compiling Control.DeepSeq  ( Control/DeepSeq.hs, interpreted )
[2 of 2] Compiling Control.DeepSeq.BackDoor ( Control/DeepSeq/BackDoor.hs, interpreted )
Ok, two modules loaded.
*Control.DeepSeq> :i de
decodeFloat  deepseq      denominator
*Control.DeepSeq> :i deepseq
deepseq :: NFData a => a -> b -> b
    -- Defined at Control/DeepSeq.hs:235:1

but for 1.4.6.0:

deepseq-1.4.6.0 % cabal repl -w ghc-8.6.5  
Resolving dependencies...
Build profile: -w ghc-8.6.5 -O1
In order, the following will be built (use -v for more details):
 - deepseq-1.4.6.0 (lib) (first run)
Configuring library for deepseq-1.4.6.0..
Preprocessing library for deepseq-1.4.6.0..
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/phadej/.ghci
[1 of 2] Compiling Control.DeepSeq  ( Control/DeepSeq.hs, interpreted )
[2 of 2] Compiling Control.DeepSeq.BackDoor ( Control/DeepSeq/BackDoor.hs, interpreted )
Ok, two modules loaded.
*Control.DeepSeq> :i deepseq 
deepseq :: NFData a => a -> b -> b
    -- Defined at Control/DeepSeq.hs:241:1
infixr 0 `deepseq`
mixphix commented 2 years ago

Thanks Oleg, this has been fixed.

This commit history is well and truly tangled :D

mixphix commented 2 years ago

It seems this fix wasn't as easy as I had first thought. The breaking change slipped into v1.4.6.0 which got uploaded to Hackage, but doesn't appear in the pseudo-1.4.6.0 that was forked and subsequently pinned into GHC. I've rectified the situation in v1.4.6.1.

phadej commented 2 years ago

It's not a breaking change (EDIT: worth a major release alone). See #74

mixphix commented 2 years ago

I believe the change log has been adequately rearranged despite the confusing recent history.