1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
# Begone!
This package was absorbed into `persistent` with the 2.12.0.1 release.
## persistent-template
Provides Template Haskell helpers for persistent. For more information, see
[the chapter in the Yesod book](http://www.yesodweb.com/book/persistent).
### code organization
The TH.hs module contains code generators.
persistent-template uses `EntityDef`s that it gets from the quasi-quoter.
The quasi-quoter is in persistent Quasi.hs
Similarly many of the types come from the persistent library
### Development tips
To get a better idea of what code you're generating, you can output the content of Template Haskell expressions to a file:
```
stack test persistent-template --ghc-options='-ddump-splices -ddump-to-file'
```
The output will be in the `.stack-work` directory. The exact path will depend on your specific setup, but if you search for files ending in `.dump-splices` you'll find the output (`find .stack-work -type f -name '*.dump-splices'`)
If you make changes to the generated code, it is highly recommended to compare the output with your changes to output from `master` (even better if this diff is included in your PR!). Seemingly small changes can have dramatic changes on the generated code.
For example, embedding an `EntityDef` in a function that was called for every field of that `Entity` made the number of generated lines O(N^2) for that function—very bad!
|