From d2d0e16d5333c28500bcee1ab6955c8097738219 Mon Sep 17 00:00:00 2001 From: Harendra Kumar Date: Wed, 10 Feb 2021 02:30:04 +0530 Subject: [PATCH] Add a ghc wrapper to invoke ghc on individual files With all the extensions used in streamly, optimization options and ddump-simpl options. This is useful for compiling standalone files, when inspecting core for perf issues. I wish cabal could invoke ghc with environment from the cabal file. Can it? --- bin/ghc.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ streamly.cabal | 1 + 2 files changed, 46 insertions(+) create mode 100755 bin/ghc.sh diff --git a/bin/ghc.sh b/bin/ghc.sh new file mode 100755 index 000000000..1a452fa0f --- /dev/null +++ b/bin/ghc.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +ghc -Wall \ + -Wcompat \ + -Wunrecognised-warning-flags \ + -Widentities \ + -Wincomplete-record-updates \ + -Wincomplete-uni-patterns \ + -Wredundant-constraints \ + -Wnoncanonical-monad-instances \ + -Rghc-timing \ + -XBangPatterns \ + -XCApiFFI \ + -XCPP \ + -XConstraintKinds \ + -XDeriveDataTypeable \ + -XDeriveGeneric \ + -XDeriveTraversable \ + -XExistentialQuantification \ + -XFlexibleContexts \ + -XFlexibleInstances \ + -XGeneralizedNewtypeDeriving \ + -XInstanceSigs \ + -XKindSignatures \ + -XLambdaCase \ + -XMagicHash \ + -XMultiParamTypeClasses \ + -XPatternSynonyms \ + -XRankNTypes \ + -XRecordWildCards \ + -XScopedTypeVariables \ + -XTupleSections \ + -XTypeFamilies \ + -XViewPatterns \ + -XNoMonoLocalBinds \ + -XTypeApplications \ + -XQuantifiedConstraints \ + -O2 \ + -fdicts-strict \ + -fspec-constr-recursive=16 \ + -fmax-worker-args=16 \ + -fplugin Fusion.Plugin \ + -ddump-to-file \ + -ddump-simpl \ + $* diff --git a/streamly.cabal b/streamly.cabal index 70c54171c..3e3cbbace 100644 --- a/streamly.cabal +++ b/streamly.cabal @@ -123,6 +123,7 @@ extra-source-files: bin/bench.sh bin/bench-exec-one.sh bin/build-lib.sh + bin/ghc.sh bin/mk-hscope.sh bin/mk-tags.sh bin/targets.sh