yesodweb / yesodweb/persistent

Unable to run Template Haskell benchmarks - Can't do `isExtEnabled` in the IO monad

Open
#923 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Haskell
Stars
486
Forks
306
PR merge metrics
No merged PRs in 30d

Description

I was having a look at the benchmarks for persistent-template in /bench, however when I run stack bench I get:

persistent-template  > benchmarks
./persistent-template.cabal has been changed. Re-configuring with most
recently used options. If this fails, please run configure manually.
Configuring persistent-template-2.7.0...
Running 1 benchmarks...          
Benchmark persistent-th-bench: RUNNING...
benchmarking mkPersist/From File 
Template Haskell error: Can't do `isExtEnabled' in the IO monad
persistent-th-bench: user error (Template Haskell failure)
Benchmark persistent-th-bench: ERROR
Completed 6 action(s).           

If I rollback to ccb6dcec then running the stack bench is fine, this was the last commit before the call to isExtEnabled was added.

Are these benchmarks meant to be runnable currently? I notice some of the older ones are commented out.

I'm be keen to do some of my own poking around in the persistent-template package in order to bring some of the TH build times down if possible, as I work on a Yesod/Persistent app, where the bulk of the build time is spent in TH generating entities.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the /bench directory and compare the benchmark setup at ccb6dcec with the current version, focusing on the added isExtEnabled call. Run stack bench to reproduce the Template Haskell failure. Done means the persistent-th-bench benchmark runs successfully and its existing measurements are produced.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
performance, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.