From c53357ca925a134e064b12e3c4619c99dfddbb29 Mon Sep 17 00:00:00 2001 From: Jack Henahan Date: Wed, 24 Jul 2019 08:35:44 -0400 Subject: [PATCH] Add performance instructions to README (#185) --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index df7ebd7..fa9ae22 100644 --- a/README.md +++ b/README.md @@ -214,3 +214,20 @@ You're going to want to stick all of this into your `package.yaml` file. - TypeOperators - TypeFamilies ``` + +## Stellar Engineering - Aligning the stars to optimize `polysemy` away + +Several things need to be in place to fully realize our performance goals: + +- GHC Version + - GHC 8.9+ +- Your code + - The module you want to be optimized needs to import `Polysemy.Internal` somewhere in its dependency tree (sufficient to `import Polysemy`) +- GHC Flags + - `-O` or `-O2` + - `-flate-specialise` (this should be automatically turned on by the plugin, but it's worth mentioning) +- Plugin + - `-fplugin=Polysemy.Plugin` +- Additional concerns: + - additional core passes (turned on by the plugin) +