Skip to content

The "Hacking Agenda" #428

@MaximilianAlgehed

Description

@MaximilianAlgehed

Involving @koengit @nick8325 @UlfNorell and @Rewbert:

Instances

  • Arbitrary instances for everything in base (and other qc dependencies)
  • Super clever TH magic to find all the types and generate properties
    • Enumerate all modules in base and get all the data types
    • Minimal: type check arbitrary @TheType
    • Better: Monomorphise and generate a properties to test the arbitrary instance
    • Manually exclude modules/types (to avoid writing clever rules for which
      types to support)
  • See CollectDataTypes.hs and RunCollectDataTypes.hs.

Parallel fork

  • Robert gives a nice presentation of what's going on

  • We should decide on some design principles:

    • we care only about locally minimal counterexamples
    • we want the features module
    • we don't care about parallel quickcheck exploring sizes
      deterministically
    • we do care about sizes being explored in order small to big

API for test runners

  • Tasty and HSpec install their own callbacks
    • Can we make PRs for them using Robert's new API?
    • Robert has the code, but needs some version juggling to work with different
      versions of QuickCheck.

Cleanup

  • Drop ghc 7 support
  • Clean up flag mess in cabal file
  • Add MicroHs support
    • Lennart: "needs random numbers, this is hard!"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions