summaryrefslogtreecommitdiff
path: root/hask-io/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'hask-io/Makefile')
-rw-r--r--hask-io/Makefile46
1 files changed, 46 insertions, 0 deletions
diff --git a/hask-io/Makefile b/hask-io/Makefile
new file mode 100644
index 0000000..e6e1da6
--- /dev/null
+++ b/hask-io/Makefile
@@ -0,0 +1,46 @@
+#
+# Some GHC flags explained
+#
+# -v verbose mode
+# -O2 level 2 optimizations
+# -rtsopts allow +RTS flags
+# -prof enable basic time and allocation profiling
+# -auto-all cost centers on all top level functions
+# (you can also add them via the SCC pragma)
+# -caf-all generate data for CAFs (constant applicative forms)
+# t
+# -fforce-recomp force recompilation
+#
+# Notes: you will obtain the profiling versions of dependancies via:
+# stack install --profile [libraryname]
+#
+# -fprof-auto replaced -auto-all
+# -fprof-cafs replaced -caf-all
+#
+
+build-prof:
+ stack ghc --profile -- -rtsopts -prof -fprof-auto -fprof-cafs -O2 base64.hs
+
+#
+# Some +RTS flags
+#
+# -p profiling
+# -K set stack limit
+# -hc extract heap profile
+# -hy allocation by type
+# -hd allocation by constructor
+# -iN sampling frequency in seconds. e.g. -i0.01
+# -ddump-simpl generate core version
+#
+# Note: render the heap profile as graph with: hp2ps -e8in -c file.hp
+#
+
+run-prof:
+ cat random.bin | ./base64 +RTS -p -K100M > /dev/null
+
+
+test-mini-hask:
+ #stack ghc -- -rtsopts -prof -fprof-auto -fprof-cafs -O mini.hs -o mini_hask_exe
+ stack ghc -- -O mini.hs -o mini_hask_exe
+test-mini-c:
+ gcc -O3 mini.c -o mini_c_exe