Add State monad benchmarks by Andras Kovacs
ClosedPublic

Authored by mpickering on Jun 29 2017, 10:41 AM.

Details

Reviewers
michalt
simonpj
bgamari
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Commits
rNOFIBc7e6c9074511: Add State monad benchmarks by Andras Kovacs
Summary

They are originally from
https://github.com/AndrasKovacs/misc-stuff/blob/master/haskell/Eff/EffBench.hs

They show interesting interactions with call arity, spec constr and SAT.

Diff Detail

Repository
rNOFIB nofib
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
mpickering created this revision.Jun 29 2017, 10:41 AM
Owners added a reviewer: Restricted Owners Package.Jun 29 2017, 10:41 AM

Interesting stuff.

I have a meta question: I noticed that these benchmarks require a very recent GHC to run. In particular it requires GHC 8.0 or later (due to the uses of TypeApplications), which is even more recent that the earliest supported version of GHC that you can use to bootstrap GHC HEAD (7.10). Perhaps we ought to make a note of this somewhere in nofib?

real/eff/VSM/Makefile
7

In a similar vein, if we're going to require a recent GHC to run nofib, it feels silly to use -fglasgow-exts here, since it's long been deprecated. (I realize that -fglasgow-exts is used pervasively in other parts of nofib too. It would also be nice to remove those, perhaps in a separate patch.)

bgamari edited edge metadata.Jun 29 2017, 3:58 PM

Interesting stuff.

I have a meta question: I noticed that these benchmarks require a very recent GHC to run. In particular it requires GHC 8.0 or later (due to the uses of TypeApplications), which is even more recent that the earliest supported version of GHC that you can use to bootstrap GHC HEAD (7.10). Perhaps we ought to make a note of this somewhere in nofib?

Beyond that, I think we should probably have logic ensure that we only attempt to run it if we are compiling with a capable compiler. @michalt, do you know of any easy way we could accomplish this?

michalt edited edge metadata.Jul 1 2017, 10:30 AM

Interesting stuff.

I have a meta question: I noticed that these benchmarks require a very recent GHC to run. In particular it requires GHC 8.0 or later (due to the uses of TypeApplications), which is even more recent that the earliest supported version of GHC that you can use to bootstrap GHC HEAD (7.10). Perhaps we ought to make a note of this somewhere in nofib?

Beyond that, I think we should probably have logic ensure that we only attempt to run it if we are compiling with a capable compiler. @michalt, do you know of any easy way we could accomplish this?

Sadly, I'm not aware of anything that would allow this ATM. I'm guessing that's one of the reasons why the trac documentation recommends running with make -k.

real/eff/CSD/EffBench.hs
11

Seems unused?

real/eff/FS/EffBench.hs
11

This seems to be unnecessary?

real/eff/VS/EffBench.hs
11

Seems unused

mpickering updated this revision to Diff 13002.Jul 3 2017, 12:31 PM
  • Remove type applications
  • Cleanup unused code and comments
mpickering marked 2 inline comments as done.Jul 3 2017, 12:33 PM

I removed the type applications and cleaned up some other parts of the code.

bgamari accepted this revision.Jul 7 2017, 10:21 AM

Looks reasonable to me.

This revision is now accepted and ready to land.Jul 7 2017, 10:21 AM
This revision was automatically updated to reflect the committed changes.