Improve the situation with the stimes cycle
Currently the Semigroup stimes cycle is resolved in GHC.Base by importing stimes implementations from a hs-boot file. Resolve the cycle using hs-boot files for required classes (Num, Integral) instead. Now stimes can be defined directly in GHC.Base, making inlining and specialization possible. This leads to some new boot files for `GHC.Num` and `GHC.Real`, the methods for those are only used to implement `stimes` so it doesn't appear that these boot files will introduce any new performance traps. Metric Decrease: T13386 T8095 Metric Increase: T13253 T13386 T18698a T18698b T19695 T8095
Showing
- libraries/base/Data/Semigroup/Internal.hs 1 addition, 33 deletionslibraries/base/Data/Semigroup/Internal.hs
- libraries/base/Data/Semigroup/Internal.hs-boot 0 additions, 13 deletionslibraries/base/Data/Semigroup/Internal.hs-boot
- libraries/base/GHC/Base.hs 67 additions, 11 deletionslibraries/base/GHC/Base.hs
- libraries/base/GHC/Enum.hs-boot 10 additions, 0 deletionslibraries/base/GHC/Enum.hs-boot
- libraries/base/GHC/Num.hs-boot 24 additions, 0 deletionslibraries/base/GHC/Num.hs-boot
- libraries/base/GHC/Real.hs-boot 31 additions, 2 deletionslibraries/base/GHC/Real.hs-boot
- libraries/base/changelog.md 1 addition, 0 deletionslibraries/base/changelog.md
- testsuite/tests/simplCore/should_compile/T23074.hs 14 additions, 0 deletionstestsuite/tests/simplCore/should_compile/T23074.hs
- testsuite/tests/simplCore/should_compile/T23074.stderr 8 additions, 0 deletionstestsuite/tests/simplCore/should_compile/T23074.stderr
- testsuite/tests/simplCore/should_compile/all.T 1 addition, 1 deletiontestsuite/tests/simplCore/should_compile/all.T
Loading
Please register or sign in to comment