| Types | RTS Opts | Compile time | Artifacts size |
|---|---|---|---|
| Yes | -A512M -H128M -n8m | 3m7s | 91M |
| Yes | -s | 6m14s | 93M |
| No | -A512M -H128M -n8m | 1m22s | 13M |
For the last one I removed all type declarations apart from our main function. I also had to remove a few files as I kept running into an issue with the type inference algorithm of elm-make: Unable to generalize a type variable, it is unranked.
$ cloc .
325 text files.
324 unique files.
25 files ignored.
github.com/AlDanial/cloc v 1.76 T=1.05 s (284.6 files/s, 158321.8 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
JavaScript 2 5 8 118011
Elm 198 6549 708 22933
CSS 16 372 80 6680
Sass 55 743 66 5384
HTML 12 351 2 2971
LESS 17 61 67 1896
-------------------------------------------------------------------------------
SUM: 300 8081 931 157875
-------------------------------------------------------------------------------
$ rm -r elm-stuff && elm-package install --yes
Starting downloads...
● NoRedInk/elm-decode-pipeline 3.0.0
● Zinggi/elm-webgl-math 1.0.6
● alpacaaa/elm-date-distance 1.1.0
● Skinney/murmur3 2.0.6
● avh4/elm-fifo 1.0.3
● elm-community/dict-extra 2.3.0
● elm-community/intdict 2.1.0
● elm-community/graph 4.1.0
● elm-community/list-extra 6.1.0
● elm-community/string-extra 1.4.0
● elm-lang/animation-frame 1.0.1
● elm-lang/core 5.1.1
● elm-lang/http 1.0.0
● elm-lang/html 2.0.0
● elm-lang/dom 1.1.1
● elm-lang/mouse 1.0.1
● elm-lang/navigation 2.1.0
● elm-lang/svg 2.0.0
● elm-lang/virtual-dom 2.0.4
● elm-lang/trampoline 1.0.1
● elm-lang/window 1.0.1
● elm-tools/parser 2.0.1
● elm-tools/parser-primitives 1.0.0
● eskimoblood/elm-color-extra 5.1.0
● evancz/url-parser 2.0.1
● folkertdev/elm-deque 2.0.0
● folkertdev/one-true-path-experiment 3.0.2
● folkertdev/svg-path-lowlevel 1.0.1
● fredcy/elm-parseint 2.0.0
● justinmimbs/elm-date-extra 2.1.1
● klaftertief/elm-heatmap 1.0.0
● jweir/elm-iso8601 3.0.2
● krisajenkins/elm-exts 27.4.0
● krisajenkins/remotedata 4.4.0
● mdgriffith/elm-style-animation 3.5.5
● mgold/elm-geojson 2.0.0
● mdgriffith/style-elements 4.3.0
● opensolid/geometry 2.1.0
● gampleman/elm-visualization 1.6.1
● supermario/elm-countries 1.0.2
● rtfeldman/hex 1.0.0
Packages configured successfully!
$ time elm-make +RTS -A512M -H128M -n8m -RTS src/elm/Main.elm --output /dev/null
Success! Compiled 447 modules.
Successfully generated /dev/null
real 3m7.904s
user 4m5.909s
sys 0m43.891s
$ du -h elm-stuff/build-artifacts/0.18.0/foo/bar/
91M elm-stuff/build-artifacts/0.18.0/foo/bar//1.0.0
91M elm-stuff/build-artifacts/0.18.0/foo/bar/
$ rm -r elm-stuff && elm-package install --yes
Starting downloads...
# (same packages...)
Packages configured successfully!
$ time elm-make +RTS -s -RTS src/elm/Main.elm --output /dev/null
Success! Compiled 447 modules.
Successfully generated /dev/null
242,122,653,200 bytes allocated in the heap
181,639,551,480 bytes copied during GC
718,209,888 bytes maximum residency (1003 sample(s))
20,109,768 bytes maximum slop
1978 MB total memory in use (0 MB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 461437 colls, 461436 par 944.174s 204.093s 0.0004s 0.0784s
Gen 1 1003 colls, 1003 par 216.620s 36.564s 0.0365s 0.5996s
Parallel GC work balance: 8.37% (serial 0%, perfect 100%)
TASKS: 18 (1 bound, 17 peak workers (17 total), using -N8)
SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)
INIT time 0.001s ( 0.001s elapsed)
MUT time 213.269s (133.163s elapsed)
GC time 1160.794s (240.657s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 1374.066s (373.822s elapsed)
Alloc rate 1,135,291,776 bytes per MUT second
Productivity 15.5% of total user, 57.1% of total elapsed
gc_alloc_block_sync: 13854752
whitehole_spin: 0
gen[0].sync: 356
gen[1].sync: 9277665
real 6m14.021s
user 22m54.066s
sys 7m53.766s
$ du -h elm-stuff/build-artifacts/0.18.0/foo/bar/
93M elm-stuff/build-artifacts/0.18.0/foo/bar//1.0.0
93M elm-stuff/build-artifacts/0.18.0/foo/bar/
$ rm -r elm-stuff && elm-package install --yes
Starting downloads...
# (same packages...)
Packages configured successfully!
$ time elm-make +RTS -A512M -H128M -n8m -RTS src/elm/Main.elm --output /dev/null
Success! Compiled 443 modules.
Successfully generated /dev/null
real 1m31.936s
user 1m22.255s
sys 0m11.761s
$ du -h elm-stuff/build-artifacts/0.18.0/foo/bar/
13M elm-stuff/build-artifacts/0.18.0/foo/bar//1.0.0
13M elm-stuff/build-artifacts/0.18.0/foo/bar/