OverloadedRecordFields
Adam Gundry
adam at well-typed.com
Fri Apr 18 16:38:32 UTC 2014
Hi folks,
Apropos of nothing, I will be talking about OverloadedRecordFields in
London on Monday 28th April at 6:30pm:
https://skillsmatter.com/meetups/6345-overloaded-record-fields-for-haskell
I've updated my OverloadedRecordFields branches to HEAD as of today.
Validate on linux x86_64 is currently failing with a few perf failures,
but several appear to be intermittently present on master (see below for
details). How worried should I be about these? I'd like to get this
reviewed/merged as soon as possible because the changes are quite
wide-ranging so they tend to bitrot quickly.
The code is in the following three repositories:
https://github.com/adamgundry/ghc
https://github.com/adamgundry/packages-base
https://github.com/adamgundry/haddock
The overloaded-record-fields branches have the history (rather messy,
I'm afraid) and the orf-squashed branches have everything squashed into
one commit per branch. More general information is on the wiki:
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields
Cheers,
Adam
The perf failures on my branch are:
perf/compiler T1969 [stat not good enough] (normal)
perf/compiler T3064 [stat not good enough] (normal)
perf/compiler T5030 [stat not good enough] (normal)
perf/compiler T5837 [stat not good enough] (normal)
perf/compiler T6048 [stat not good enough] (optasm)
perf/haddock haddock.Cabal [stat not good enough] (normal)
perf/haddock haddock.base [stat not good enough] (normal)
perf/haddock haddock.compiler [stat not good enough] (normal)
Those on master are:
perf/compiler T1969 [stat not good enough] (normal)
perf/compiler T3064 [stat not good enough] (normal)
perf/compiler T5837 [stat not good enough] (normal)
perf/compiler T6048 [stat not good enough] (optasm)
perf/haddock haddock.Cabal [stat not good enough] (normal)
Details of failures on my branch:
=====> haddock.base(normal) 201 of 3977 [0, 0, 0]
bytes allocated value is too high:
Expected bytes allocated: 7128342344 +/-5%
Lower bound bytes allocated: 6771925226
Upper bound bytes allocated: 7484759462
Actual bytes allocated: 7638726640
*** unexpected failure for haddock.base(normal)
=====> haddock.Cabal(normal) 202 of 3977 [0, 1, 0]
max_bytes_used value is too high:
Expected max_bytes_used: 95356616 +/-15%
Lower bound max_bytes_used: 81053123
Upper bound max_bytes_used: 109660109
Actual max_bytes_used: 131046008
peak_megabytes_allocated value is too high:
Expected peak_megabytes_allocated: 278 +/-10%
Lower bound peak_megabytes_allocated: 250
Upper bound peak_megabytes_allocated: 306
Actual peak_megabytes_allocated: 326
bytes allocated value is too high:
Expected bytes allocated: 3979151552 +/-5%
Lower bound bytes allocated: 3780193974
Upper bound bytes allocated: 4178109130
Actual bytes allocated: 4752508984
*** unexpected failure for haddock.Cabal(normal)
=====> haddock.compiler(normal) 203 of 3977 [0, 2, 0]
bytes allocated value is too high:
Expected bytes allocated: 28708374824 +/-10%
Lower bound bytes allocated: 25837537341
Upper bound bytes allocated: 31579212307
Actual bytes allocated: 32010912664
*** unexpected failure for haddock.compiler(normal)
=====> T1969(normal) 204 of 3977 [0, 3, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T1969.hs +RTS -V0 -tT1969.comp.stats
--machine-readable -RTS -dcore-lint -static >T1969.comp.stderr 2>&1
max_bytes_used value is too high:
Expected max_bytes_used: 11000000 +/-20%
Lower bound max_bytes_used: 8800000
Upper bound max_bytes_used: 13200000
Actual max_bytes_used: 13787248
*** unexpected failure for T1969(normal)
=====> T3064(normal) 207 of 3977 [0, 4, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T3064.hs +RTS -V0 -tT3064.comp.stats
--machine-readable -RTS >T3064.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 308422280 +/-5%
Lower bound bytes allocated: 293001166
Upper bound bytes allocated: 323843394
Actual bytes allocated: 351270952
*** unexpected failure for T3064(normal)
=====> T5030(normal) 209 of 3977 [0, 5, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T5030.hs -fcontext-stack=300 +RTS -V0
-tT5030.comp.stats --machine-readable -RTS >T5030.comp.stderr 2>&1
=====> T5631(normal) 210 of 3977 [0, 5, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T5631.hs +RTS -V0 -tT5631.comp.stats
--machine-readable -RTS >T5631.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 397672152 +/-10%
Lower bound bytes allocated: 357904936
Upper bound bytes allocated: 437439368
Actual bytes allocated: 474229448
*** unexpected failure for T5030(normal)
=====> T5837(normal) 216 of 3977 [0, 6, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T5837.hs -ftype-function-depth=50 +RTS
-V0 -tT5837.comp.stats --machine-readable -RTS >T5837.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 86795752 +/-10%
Lower bound bytes allocated: 78116176
Upper bound bytes allocated: 95475328
Actual bytes allocated: 96210584
*** unexpected failure for T5837(normal)
=====> T6048(optasm) 217 of 3977 [0, 7, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T6048.hs -O -fasm +RTS -V0
-tT6048.comp.stats --machine-readable -RTS >T6048.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 110646312 +/-10%
Lower bound bytes allocated: 99581680
Upper bound bytes allocated: 121710944
Actual bytes allocated: 125707864
*** unexpected failure for T6048(optasm)
Details of failures on master:
=====> haddock.Cabal(normal) 202 of 3954 [0, 0, 0]
bytes allocated value is too high:
Expected bytes allocated: 3979151552 +/-5%
Lower bound bytes allocated: 3780193974
Upper bound bytes allocated: 4178109130
Actual bytes allocated: 4212057304
*** unexpected failure for haddock.Cabal(normal)
=====> T1969(normal) 204 of 3954 [0, 1, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate-master/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T1969.hs +RTS -V0 -tT1969.comp.stats
--machine-readable -RTS -dcore-lint -static >T1969.comp.stderr 2>&1
max_bytes_used value is too high:
Expected max_bytes_used: 11000000 +/-20%
Lower bound max_bytes_used: 8800000
Upper bound max_bytes_used: 13200000
Actual max_bytes_used: 13662736
*** unexpected failure for T1969(normal)
=====> T3064(normal) 207 of 3954 [0, 2, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate-master/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T3064.hs +RTS -V0 -tT3064.comp.stats
--machine-readable -RTS >T3064.comp.stderr 2>&1
=====> T4007(normal) 208 of 3954 [0, 2, 0]
cd ./perf/compiler && $MAKE -s --no-print-directory T4007 </dev/null
>T4007.run.stdout 2>T4007.run.stderr
bytes allocated value is too high:
Expected bytes allocated: 308422280 +/-5%
Lower bound bytes allocated: 293001166
Upper bound bytes allocated: 323843394
Actual bytes allocated: 331042056
*** unexpected failure for T3064(normal)
=====> T5837(normal) 216 of 3954 [0, 3, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate-master/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T5837.hs -ftype-function-depth=50 +RTS
-V0 -tT5837.comp.stats --machine-readable -RTS >T5837.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 86795752 +/-10%
Lower bound bytes allocated: 78116176
Upper bound bytes allocated: 95475328
Actual bytes allocated: 95994280
*** unexpected failure for T5837(normal)
=====> T6048(optasm) 217 of 3954 [0, 4, 0]
cd ./perf/compiler &&
'/home/adam/Documents/Strathclyde/Code/GHC/ghc-validate-master/bindisttest/install
dir/bin/ghc' -fforce-recomp -dno-debug-output -no-user-package-db
-rtsopts -fno-ghci-history -c T6048.hs -O -fasm +RTS -V0
-tT6048.comp.stats --machine-readable -RTS >T6048.comp.stderr 2>&1
bytes allocated value is too high:
Expected bytes allocated: 110646312 +/-10%
Lower bound bytes allocated: 99581680
Upper bound bytes allocated: 121710944
Actual bytes allocated: 124431616
*** unexpected failure for T6048(optasm)
On 25/02/14 16:18, Simon Peyton Jones wrote:
> Adam
>
> I'm very happy to hear that... good stuff.
>
> I'm under water with ICFP submissions (deadline Sat). Moreover I think it is clearly too later to put this into 7.8; RC1 is out and I expect RC2 any day.
>
> So I suggest we plan to merge after 7.8 is out.
>
> Are the wiki pages up to date?
> Records/OverloadedRecordFields
> Records/OverloadedRecordFields/Implementation
> Records/OverloadedRecordFields/Plan
>
> The first does not point to the latter two; "Plan" may mean "Design"... I feel some rationalisation may make sense
>
> Simon
>
> | -----Original Message-----
> | From: Adam Gundry [mailto:adam at well-typed.com]
> | Sent: 24 February 2014 08:37
> | To: Simon Peyton Jones
> | Subject: Re: OverloadedRecordFields
> |
> | Hi Simon,
> |
> | My OverloadedRecordFields branches[1,2,3] are up to date with HEAD as of
> | last Saturday. Validate on linux x86_64 reports only one failure, the
> | haddock.Cabal perf test, which might well be due to my Haddock changes,
> | and I will investigate. I'm not sure how to run the Haddock test suite?
> |
> | I am keen to get the code reviewed and into HEAD as soon as is
> | convenient, but I'm aware these are substantial changes, and don't want
> | to rush things. In particular, I would understand if you'd rather hold
> | them back until after the 7.8 final release.
> |
> | How would you like to proceed?
> |
> | Adam
> |
> | [1] https://github.com/adamgundry/ghc
> | [2] https://github.com/adamgundry/packages-base
> | [3] https://github.com/adamgundry/haddock
--
Adam Gundry, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com/
More information about the ghc-devs
mailing list