Repo: https://github.com/rtfeldman/elm-spa-example
noah@Noahs-MacBook-Pro ~/d/elm-spa-example> time elm-make src/Main.elm --output /dev/null
Success! Compiled 93 modules.
Successfully generated /dev/null
8.44 real 15.88 user 16.76 sys
noah@Noahs-MacBook-Pro ~/d/elm-spa-example> cloc .
242 text files.
233 unique files.
35 files ignored.
github.com/AlDanial/cloc v 1.72 T=1.14 s (182.2 files/s, 42179.3 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
HTML 1 1002 0 16862
Elm 122 5727 4610 11497
JavaScript 22 1036 243 5302
Markdown 27 367 0 880
JSON 28 0 0 498
YAML 4 11 0 75
Bourne Shell 4 13 0 34
-------------------------------------------------------------------------------
SUM: 208 8156 4853 35148
-------------------------------------------------------------------------------
This is the state of affairs after doing our best to refactor things. I have reduced the module count by about 100 and that has helped (but it was pretty painful and clearly the module count will increase again as the codebase grows).
Build from scratch
Build after touching Main.elm
Build after touching most imported module (seems to be worst case for incremental)
Despite trying to capture the best and worst case like this, we also see compile times much longer than this quite regularly but I cannot spot any pattern.
Note that we actually use windows. I have compiled these stats on a linux vm just to get consistency with others. The times are, however, quite representative with what we see on windows using elm-gulp as well.