diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180601.143/haskell-ghc-support.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180601.143/haskell-ghc-support.el | 1344 |
1 files changed, 1344 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180601.143/haskell-ghc-support.el b/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180601.143/haskell-ghc-support.el new file mode 100644 index 000000000000..93690170c6da --- /dev/null +++ b/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180601.143/haskell-ghc-support.el @@ -0,0 +1,1344 @@ +;;; haskell-ghc-support.el --- GHC specific code -*- coding: utf-8; lexical-binding: t -*- + +;; Copyright © 2016 Haskell Mode +;; Author: 2016 Gracjan Polak + +;; This file is not part of GNU Emacs. + +;; This file is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; This file is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; This file containt GHC specific constants and information. + +;;; Code: + +(defvar haskell-ghc-supported-extensions + '( + ;;; BEGIN haskell-ghc-supported-extensions + "AllowAmbiguousTypes" + "AlternativeLayoutRule" + "AlternativeLayoutRuleTransitional" + "ApplicativeDo" + "Arrows" + "AutoDeriveTypeable" + "BangPatterns" + "BinaryLiterals" + "CApiFFI" + "CPP" + "ConstrainedClassMethods" + "ConstraintKinds" + "DataKinds" + "DatatypeContexts" + "DefaultSignatures" + "DeriveAnyClass" + "DeriveDataTypeable" + "DeriveFoldable" + "DeriveFunctor" + "DeriveGeneric" + "DeriveLift" + "DeriveTraversable" + "DisambiguateRecordFields" + "DoAndIfThenElse" + "DoRec" + "DuplicateRecordFields" + "EmptyCase" + "EmptyDataDecls" + "ExistentialQuantification" + "ExplicitForAll" + "ExplicitNamespaces" + "ExtendedDefaultRules" + "FlexibleContexts" + "FlexibleInstances" + "ForeignFunctionInterface" + "FunctionalDependencies" + "GADTSyntax" + "GADTs" + "GHCForeignImportPrim" + "GeneralizedNewtypeDeriving" + "Haskell2010" + "Haskell98" + "ImplicitParams" + "ImplicitPrelude" + "ImpredicativeTypes" + "IncoherentInstances" + "InstanceSigs" + "InterruptibleFFI" + "JavaScriptFFI" + "KindSignatures" + "LambdaCase" + "LiberalTypeSynonyms" + "MagicHash" + "MonadComprehensions" + "MonadFailDesugaring" + "MonoLocalBinds" + "MonoPatBinds" + "MonomorphismRestriction" + "MultiParamTypeClasses" + "MultiWayIf" + "NPlusKPatterns" + "NamedFieldPuns" + "NamedWildCards" + "NegativeLiterals" + "NoAllowAmbiguousTypes" + "NoAlternativeLayoutRule" + "NoAlternativeLayoutRuleTransitional" + "NoApplicativeDo" + "NoArrows" + "NoAutoDeriveTypeable" + "NoBangPatterns" + "NoBinaryLiterals" + "NoCApiFFI" + "NoCPP" + "NoConstrainedClassMethods" + "NoConstraintKinds" + "NoDataKinds" + "NoDatatypeContexts" + "NoDefaultSignatures" + "NoDeriveAnyClass" + "NoDeriveDataTypeable" + "NoDeriveFoldable" + "NoDeriveFunctor" + "NoDeriveGeneric" + "NoDeriveLift" + "NoDeriveTraversable" + "NoDisambiguateRecordFields" + "NoDoAndIfThenElse" + "NoDoRec" + "NoDuplicateRecordFields" + "NoEmptyCase" + "NoEmptyDataDecls" + "NoExistentialQuantification" + "NoExplicitForAll" + "NoExplicitNamespaces" + "NoExtendedDefaultRules" + "NoFlexibleContexts" + "NoFlexibleInstances" + "NoForeignFunctionInterface" + "NoFunctionalDependencies" + "NoGADTSyntax" + "NoGADTs" + "NoGHCForeignImportPrim" + "NoGeneralizedNewtypeDeriving" + "NoImplicitParams" + "NoImplicitPrelude" + "NoImpredicativeTypes" + "NoIncoherentInstances" + "NoInstanceSigs" + "NoInterruptibleFFI" + "NoJavaScriptFFI" + "NoKindSignatures" + "NoLambdaCase" + "NoLiberalTypeSynonyms" + "NoMagicHash" + "NoMonadComprehensions" + "NoMonadFailDesugaring" + "NoMonoLocalBinds" + "NoMonoPatBinds" + "NoMonomorphismRestriction" + "NoMultiParamTypeClasses" + "NoMultiWayIf" + "NoNPlusKPatterns" + "NoNamedFieldPuns" + "NoNamedWildCards" + "NoNegativeLiterals" + "NoNondecreasingIndentation" + "NoNullaryTypeClasses" + "NoNumDecimals" + "NoOverlappingInstances" + "NoOverloadedLabels" + "NoOverloadedLists" + "NoOverloadedStrings" + "NoPackageImports" + "NoParallelArrays" + "NoParallelListComp" + "NoPartialTypeSignatures" + "NoPatternGuards" + "NoPatternSignatures" + "NoPatternSynonyms" + "NoPolyKinds" + "NoPolymorphicComponents" + "NoPostfixOperators" + "NoQuasiQuotes" + "NoRank2Types" + "NoRankNTypes" + "NoRebindableSyntax" + "NoRecordPuns" + "NoRecordWildCards" + "NoRecursiveDo" + "NoRelaxedLayout" + "NoRelaxedPolyRec" + "NoRoleAnnotations" + "NoScopedTypeVariables" + "NoStandaloneDeriving" + "NoStaticPointers" + "NoStrict" + "NoStrictData" + "NoTemplateHaskell" + "NoTemplateHaskellQuotes" + "NoTraditionalRecordSyntax" + "NoTransformListComp" + "NoTupleSections" + "NoTypeApplications" + "NoTypeFamilies" + "NoTypeFamilyDependencies" + "NoTypeInType" + "NoTypeOperators" + "NoTypeSynonymInstances" + "NoUnboxedTuples" + "NoUndecidableInstances" + "NoUndecidableSuperClasses" + "NoUnicodeSyntax" + "NoUnliftedFFITypes" + "NoViewPatterns" + "NondecreasingIndentation" + "NullaryTypeClasses" + "NumDecimals" + "OverlappingInstances" + "OverloadedLabels" + "OverloadedLists" + "OverloadedStrings" + "PackageImports" + "ParallelArrays" + "ParallelListComp" + "PartialTypeSignatures" + "PatternGuards" + "PatternSignatures" + "PatternSynonyms" + "PolyKinds" + "PolymorphicComponents" + "PostfixOperators" + "QuasiQuotes" + "Rank2Types" + "RankNTypes" + "RebindableSyntax" + "RecordPuns" + "RecordWildCards" + "RecursiveDo" + "RelaxedLayout" + "RelaxedPolyRec" + "RoleAnnotations" + "Safe" + "ScopedTypeVariables" + "StandaloneDeriving" + "StaticPointers" + "Strict" + "StrictData" + "TemplateHaskell" + "TemplateHaskellQuotes" + "TraditionalRecordSyntax" + "TransformListComp" + "Trustworthy" + "TupleSections" + "TypeApplications" + "TypeFamilies" + "TypeFamilyDependencies" + "TypeInType" + "TypeOperators" + "TypeSynonymInstances" + "UnboxedTuples" + "UndecidableInstances" + "UndecidableSuperClasses" + "UnicodeSyntax" + "UnliftedFFITypes" + "Unsafe" + "ViewPatterns" + ;;; END haskell-ghc-supported-extensions + ) + "List of language extensions supported by any known version of GHC. + +This list should be updated by running `haskell-update-ghc-support'.") + +(defvar haskell-ghc-supported-options + '( + ;;; BEGIN haskell-ghc-supported-options + "-#include" + "--abi-hash" + "--frontend" + "--help" + "--info" + "--interactive" + "--make" + "--numeric-version" + "--print-booter-version" + "--print-build-platform" + "--print-c-compiler-flags" + "--print-c-compiler-link-flags" + "--print-debug-on" + "--print-gcc-linker-flags" + "--print-global-package-db" + "--print-have-interpreter" + "--print-have-native-code-generator" + "--print-host-platform" + "--print-ld-flags" + "--print-ld-linker-flags" + "--print-leading-underscore" + "--print-libdir" + "--print-object-splitting-supported" + "--print-project-git-commit-id" + "--print-project-version" + "--print-rts-ways" + "--print-stage" + "--print-support-smp" + "--print-tables-next-to-code" + "--print-target-platform" + "--print-unregisterised" + "--show-iface" + "--show-options" + "--show-packages" + "--supported-extensions" + "--supported-languages" + "--version" + "-?" + "-C" + "-D" + "-E" + "-F" + "-H" + "-I" + "-L" + "-M" + "-O" + "-Odph" + "-Onot" + "-Rghc-timing" + "-S" + "-U" + "-V" + "-W" + "-Wall" + "-Wall-missed-specialisations" + "-Walternative-layout-rule-transitional" + "-Wamp" + "-Wauto-orphans" + "-Wcompat" + "-Wcontext-quantification" + "-Wdefault" + "-Wdeferred-type-errors" + "-Wdeprecated-flags" + "-Wdeprecations" + "-Wderiving-typeable" + "-Wdodgy-exports" + "-Wdodgy-foreign-imports" + "-Wdodgy-imports" + "-Wduplicate-constraints" + "-Wduplicate-exports" + "-Wempty-enumerations" + "-Werror" + "-Weverything" + "-Wextra" + "-Whi-shadowing" + "-Widentities" + "-Wimplicit-prelude" + "-Wincomplete-patterns" + "-Wincomplete-record-updates" + "-Wincomplete-uni-patterns" + "-Winline-rule-shadowing" + "-Wmissed-specialisations" + "-Wmissing-exported-signatures" + "-Wmissing-exported-sigs" + "-Wmissing-fields" + "-Wmissing-import-lists" + "-Wmissing-local-signatures" + "-Wmissing-local-sigs" + "-Wmissing-methods" + "-Wmissing-monadfail-instances" + "-Wmissing-pattern-synonym-signatures" + "-Wmissing-signatures" + "-Wmonomorphism-restriction" + "-Wname-shadowing" + "-Wno-all" + "-Wno-all-missed-specialisations" + "-Wno-alternative-layout-rule-transitional" + "-Wno-amp" + "-Wno-auto-orphans" + "-Wno-compat" + "-Wno-context-quantification" + "-Wno-default" + "-Wno-deferred-type-errors" + "-Wno-deprecated-flags" + "-Wno-deprecations" + "-Wno-deriving-typeable" + "-Wno-dodgy-exports" + "-Wno-dodgy-foreign-imports" + "-Wno-dodgy-imports" + "-Wno-duplicate-constraints" + "-Wno-duplicate-exports" + "-Wno-empty-enumerations" + "-Wno-everything" + "-Wno-extra" + "-Wno-hi-shadowing" + "-Wno-identities" + "-Wno-implicit-prelude" + "-Wno-incomplete-patterns" + "-Wno-incomplete-record-updates" + "-Wno-incomplete-uni-patterns" + "-Wno-inline-rule-shadowing" + "-Wno-missed-specialisations" + "-Wno-missing-exported-signatures" + "-Wno-missing-exported-sigs" + "-Wno-missing-fields" + "-Wno-missing-import-lists" + "-Wno-missing-local-signatures" + "-Wno-missing-local-sigs" + "-Wno-missing-methods" + "-Wno-missing-monadfail-instances" + "-Wno-missing-pattern-synonym-signatures" + "-Wno-missing-signatures" + "-Wno-monomorphism-restriction" + "-Wno-name-shadowing" + "-Wno-noncanonical-monad-instances" + "-Wno-noncanonical-monadfail-instances" + "-Wno-noncanonical-monoid-instances" + "-Wno-orphans" + "-Wno-overflowed-literals" + "-Wno-overlapping-patterns" + "-Wno-partial-type-signatures" + "-Wno-redundant-constraints" + "-Wno-safe" + "-Wno-semigroup" + "-Wno-tabs" + "-Wno-trustworthy-safe" + "-Wno-type-defaults" + "-Wno-typed-holes" + "-Wno-unrecognised-pragmas" + "-Wno-unrecognised-warning-flags" + "-Wno-unsafe" + "-Wno-unsupported-calling-conventions" + "-Wno-unsupported-llvm-version" + "-Wno-unticked-promoted-constructors" + "-Wno-unused-binds" + "-Wno-unused-do-bind" + "-Wno-unused-foralls" + "-Wno-unused-imports" + "-Wno-unused-local-binds" + "-Wno-unused-matches" + "-Wno-unused-pattern-binds" + "-Wno-unused-top-binds" + "-Wno-unused-type-patterns" + "-Wno-warnings-deprecations" + "-Wno-wrong-do-bind" + "-Wnoncanonical-monad-instances" + "-Wnoncanonical-monadfail-instances" + "-Wnoncanonical-monoid-instances" + "-Wnot" + "-Worphans" + "-Woverflowed-literals" + "-Woverlapping-patterns" + "-Wpartial-type-signatures" + "-Wredundant-constraints" + "-Wsafe" + "-Wsemigroup" + "-Wtabs" + "-Wtrustworthy-safe" + "-Wtype-defaults" + "-Wtyped-holes" + "-Wunrecognised-pragmas" + "-Wunrecognised-warning-flags" + "-Wunsafe" + "-Wunsupported-calling-conventions" + "-Wunsupported-llvm-version" + "-Wunticked-promoted-constructors" + "-Wunused-binds" + "-Wunused-do-bind" + "-Wunused-foralls" + "-Wunused-imports" + "-Wunused-local-binds" + "-Wunused-matches" + "-Wunused-pattern-binds" + "-Wunused-top-binds" + "-Wunused-type-patterns" + "-Wwarn" + "-Wwarnings-deprecations" + "-Wwrong-do-bind" + "-XAllowAmbiguousTypes" + "-XAlternativeLayoutRule" + "-XAlternativeLayoutRuleTransitional" + "-XApplicativeDo" + "-XArrows" + "-XAutoDeriveTypeable" + "-XBangPatterns" + "-XBinaryLiterals" + "-XCApiFFI" + "-XCPP" + "-XConstrainedClassMethods" + "-XConstraintKinds" + "-XDataKinds" + "-XDatatypeContexts" + "-XDefaultSignatures" + "-XDeriveAnyClass" + "-XDeriveDataTypeable" + "-XDeriveFoldable" + "-XDeriveFunctor" + "-XDeriveGeneric" + "-XDeriveLift" + "-XDeriveTraversable" + "-XDisambiguateRecordFields" + "-XDoAndIfThenElse" + "-XDoRec" + "-XDuplicateRecordFields" + "-XEmptyCase" + "-XEmptyDataDecls" + "-XExistentialQuantification" + "-XExplicitForAll" + "-XExplicitNamespaces" + "-XExtendedDefaultRules" + "-XFlexibleContexts" + "-XFlexibleInstances" + "-XForeignFunctionInterface" + "-XFunctionalDependencies" + "-XGADTSyntax" + "-XGADTs" + "-XGHCForeignImportPrim" + "-XGeneralizedNewtypeDeriving" + "-XGenerics" + "-XHaskell2010" + "-XHaskell98" + "-XImplicitParams" + "-XImplicitPrelude" + "-XImpredicativeTypes" + "-XIncoherentInstances" + "-XInstanceSigs" + "-XInterruptibleFFI" + "-XJavaScriptFFI" + "-XKindSignatures" + "-XLambdaCase" + "-XLiberalTypeSynonyms" + "-XMagicHash" + "-XMonadComprehensions" + "-XMonadFailDesugaring" + "-XMonoLocalBinds" + "-XMonoPatBinds" + "-XMonomorphismRestriction" + "-XMultiParamTypeClasses" + "-XMultiWayIf" + "-XNPlusKPatterns" + "-XNamedFieldPuns" + "-XNamedWildCards" + "-XNegativeLiterals" + "-XNoAllowAmbiguousTypes" + "-XNoAlternativeLayoutRule" + "-XNoAlternativeLayoutRuleTransitional" + "-XNoApplicativeDo" + "-XNoArrows" + "-XNoAutoDeriveTypeable" + "-XNoBangPatterns" + "-XNoBinaryLiterals" + "-XNoCApiFFI" + "-XNoCPP" + "-XNoConstrainedClassMethods" + "-XNoConstraintKinds" + "-XNoDataKinds" + "-XNoDatatypeContexts" + "-XNoDefaultSignatures" + "-XNoDeriveAnyClass" + "-XNoDeriveDataTypeable" + "-XNoDeriveFoldable" + "-XNoDeriveFunctor" + "-XNoDeriveGeneric" + "-XNoDeriveLift" + "-XNoDeriveTraversable" + "-XNoDisambiguateRecordFields" + "-XNoDoAndIfThenElse" + "-XNoDoRec" + "-XNoDuplicateRecordFields" + "-XNoEmptyCase" + "-XNoEmptyDataDecls" + "-XNoExistentialQuantification" + "-XNoExplicitForAll" + "-XNoExplicitNamespaces" + "-XNoExtendedDefaultRules" + "-XNoFlexibleContexts" + "-XNoFlexibleInstances" + "-XNoForeignFunctionInterface" + "-XNoFunctionalDependencies" + "-XNoGADTSyntax" + "-XNoGADTs" + "-XNoGHCForeignImportPrim" + "-XNoGeneralizedNewtypeDeriving" + "-XNoGenerics" + "-XNoImplicitParams" + "-XNoImplicitPrelude" + "-XNoImpredicativeTypes" + "-XNoIncoherentInstances" + "-XNoInstanceSigs" + "-XNoInterruptibleFFI" + "-XNoJavaScriptFFI" + "-XNoKindSignatures" + "-XNoLambdaCase" + "-XNoLiberalTypeSynonyms" + "-XNoMagicHash" + "-XNoMonadComprehensions" + "-XNoMonadFailDesugaring" + "-XNoMonoLocalBinds" + "-XNoMonoPatBinds" + "-XNoMonomorphismRestriction" + "-XNoMultiParamTypeClasses" + "-XNoMultiWayIf" + "-XNoNPlusKPatterns" + "-XNoNamedFieldPuns" + "-XNoNamedWildCards" + "-XNoNegativeLiterals" + "-XNoNondecreasingIndentation" + "-XNoNullaryTypeClasses" + "-XNoNumDecimals" + "-XNoOverlappingInstances" + "-XNoOverloadedLabels" + "-XNoOverloadedLists" + "-XNoOverloadedStrings" + "-XNoPackageImports" + "-XNoParallelArrays" + "-XNoParallelListComp" + "-XNoPartialTypeSignatures" + "-XNoPatternGuards" + "-XNoPatternSignatures" + "-XNoPatternSynonyms" + "-XNoPolyKinds" + "-XNoPolymorphicComponents" + "-XNoPostfixOperators" + "-XNoQuasiQuotes" + "-XNoRank2Types" + "-XNoRankNTypes" + "-XNoRebindableSyntax" + "-XNoRecordPuns" + "-XNoRecordWildCards" + "-XNoRecursiveDo" + "-XNoRelaxedLayout" + "-XNoRelaxedPolyRec" + "-XNoRoleAnnotations" + "-XNoScopedTypeVariables" + "-XNoStandaloneDeriving" + "-XNoStaticPointers" + "-XNoStrict" + "-XNoStrictData" + "-XNoTemplateHaskell" + "-XNoTemplateHaskellQuotes" + "-XNoTraditionalRecordSyntax" + "-XNoTransformListComp" + "-XNoTupleSections" + "-XNoTypeApplications" + "-XNoTypeFamilies" + "-XNoTypeFamilyDependencies" + "-XNoTypeInType" + "-XNoTypeOperators" + "-XNoTypeSynonymInstances" + "-XNoUnboxedTuples" + "-XNoUndecidableInstances" + "-XNoUndecidableSuperClasses" + "-XNoUnicodeSyntax" + "-XNoUnliftedFFITypes" + "-XNoViewPatterns" + "-XNondecreasingIndentation" + "-XNullaryTypeClasses" + "-XNumDecimals" + "-XOverlappingInstances" + "-XOverloadedLabels" + "-XOverloadedLists" + "-XOverloadedStrings" + "-XPackageImports" + "-XParallelArrays" + "-XParallelListComp" + "-XPartialTypeSignatures" + "-XPatternGuards" + "-XPatternSignatures" + "-XPatternSynonyms" + "-XPolyKinds" + "-XPolymorphicComponents" + "-XPostfixOperators" + "-XQuasiQuotes" + "-XRank2Types" + "-XRankNTypes" + "-XRebindableSyntax" + "-XRecordPuns" + "-XRecordWildCards" + "-XRecursiveDo" + "-XRelaxedLayout" + "-XRelaxedPolyRec" + "-XRoleAnnotations" + "-XSafe" + "-XScopedTypeVariables" + "-XStandaloneDeriving" + "-XStaticPointers" + "-XStrict" + "-XStrictData" + "-XTemplateHaskell" + "-XTemplateHaskellQuotes" + "-XTraditionalRecordSyntax" + "-XTransformListComp" + "-XTrustworthy" + "-XTupleSections" + "-XTypeApplications" + "-XTypeFamilies" + "-XTypeFamilyDependencies" + "-XTypeInType" + "-XTypeOperators" + "-XTypeSynonymInstances" + "-XUnboxedTuples" + "-XUndecidableInstances" + "-XUndecidableSuperClasses" + "-XUnicodeSyntax" + "-XUnliftedFFITypes" + "-XUnsafe" + "-XViewPatterns" + "-auto" + "-auto-all" + "-c" + "-caf-all" + "-clear-package-db" + "-cpp" + "-dannot-lint" + "-dasm-lint" + "-dcmm-lint" + "-dcore-lint" + "-ddump-asm" + "-ddump-asm-conflicts" + "-ddump-asm-expanded" + "-ddump-asm-liveness" + "-ddump-asm-native" + "-ddump-asm-regalloc" + "-ddump-asm-regalloc-stages" + "-ddump-asm-stats" + "-ddump-bcos" + "-ddump-call-arity" + "-ddump-cmm" + "-ddump-cmm-cbe" + "-ddump-cmm-cfg" + "-ddump-cmm-cps" + "-ddump-cmm-info" + "-ddump-cmm-proc" + "-ddump-cmm-procmap" + "-ddump-cmm-raw" + "-ddump-cmm-sink" + "-ddump-cmm-sp" + "-ddump-cmm-split" + "-ddump-cmm-switch" + "-ddump-core-stats" + "-ddump-cs-trace" + "-ddump-cse" + "-ddump-debug" + "-ddump-deriv" + "-ddump-ds" + "-ddump-file-prefix" + "-ddump-foreign" + "-ddump-hi" + "-ddump-hi-diffs" + "-ddump-hpc" + "-ddump-if-trace" + "-ddump-inlinings" + "-ddump-llvm" + "-ddump-minimal-imports" + "-ddump-mod-cycles" + "-ddump-mod-map" + "-ddump-occur-anal" + "-ddump-opt-cmm" + "-ddump-parsed" + "-ddump-prep" + "-ddump-rn" + "-ddump-rn-stats" + "-ddump-rn-trace" + "-ddump-rtti" + "-ddump-rule-firings" + "-ddump-rule-rewrites" + "-ddump-rules" + "-ddump-simpl" + "-ddump-simpl-iterations" + "-ddump-simpl-stats" + "-ddump-simpl-trace" + "-ddump-spec" + "-ddump-splices" + "-ddump-stg" + "-ddump-str-signatures" + "-ddump-stranal" + "-ddump-strsigs" + "-ddump-tc" + "-ddump-tc-trace" + "-ddump-ticked" + "-ddump-to-file" + "-ddump-types" + "-ddump-vect" + "-ddump-view-pattern-commoning" + "-ddump-vt-trace" + "-ddump-worker-wrapper" + "-debug" + "-dep-makefile" + "-dep-suffix" + "-dfaststring-stats" + "-dinitial-unique" + "-distrust" + "-distrust-all-packages" + "-dno-debug-output" + "-dno-llvm-mangler" + "-dno-ppr-case-as-let" + "-dno-ppr-ticks" + "-dno-suppress-coercions" + "-dno-suppress-idinfo" + "-dno-suppress-module-prefixes" + "-dno-suppress-type-applications" + "-dno-suppress-type-signatures" + "-dno-suppress-unfoldings" + "-dno-suppress-uniques" + "-dno-suppress-var-kinds" + "-dppr-case-as-let" + "-dppr-cols" + "-dppr-debug" + "-dppr-ticks" + "-dppr-user-length" + "-dshow-passes" + "-dsource-stats" + "-dstg-lint" + "-dstg-stats" + "-dsuppress-all" + "-dsuppress-coercions" + "-dsuppress-idinfo" + "-dsuppress-module-prefixes" + "-dsuppress-type-applications" + "-dsuppress-type-signatures" + "-dsuppress-unfoldings" + "-dsuppress-uniques" + "-dsuppress-var-kinds" + "-dth-dec-file" + "-dtrace-level" + "-dumpdir" + "-dunique-increment" + "-dverbose-core2core" + "-dverbose-stg2stg" + "-dylib-install-name" + "-dynamic" + "-dynamic-too" + "-dynhisuf" + "-dynload" + "-dyno" + "-dynosuf" + "-e" + "-eventlog" + "-exclude-module" + "-fPArr" + "-fPIC" + "-fallow-incoherent-instances" + "-fallow-overlapping-instances" + "-fallow-undecidable-instances" + "-farrows" + "-fasm" + "-fbang-patterns" + "-fbuilding-cabal-package" + "-fbyte-code" + "-fcall-arity" + "-fcase-merge" + "-fcmm-elim-common-blocks" + "-fcmm-sink" + "-fconstraint-solver-iterations" + "-fcontext-stack" + "-fcpr-anal" + "-fcpr-off" + "-fcross-module-specialise" + "-fcse" + "-fdefer-type-errors" + "-fdefer-typed-holes" + "-fdicts-cheap" + "-fdicts-strict" + "-fdmd-tx-dict-sel" + "-fdo-eta-reduction" + "-fdo-lambda-eta-expansion" + "-feager-blackholing" + "-fembed-manifest" + "-fenable-rewrite-rules" + "-ferror-spans" + "-fexcess-precision" + "-fexpose-all-unfoldings" + "-fext-core" + "-fextended-default-rules" + "-fexternal-interpreter" + "-fffi" + "-ffi" + "-fflat-cache" + "-ffloat-all-lams" + "-ffloat-in" + "-ffloat-lam-args" + "-fforce-recomp" + "-ffrontend-opt" + "-ffull-laziness" + "-ffun-to-thunk" + "-fgen-manifest" + "-fghci-history" + "-fghci-sandbox" + "-fglasgow-exts" + "-fhelpful-errors" + "-fhistory-size" + "-fhpc" + "-fhpc-no-auto" + "-fignore-asserts" + "-fignore-interface-pragmas" + "-fimplicit-params" + "-fimplicit-prelude" + "-firrefutable-tuples" + "-fkill-absence" + "-fkill-one-shot" + "-flate-dmd-anal" + "-fliberate-case" + "-fliberate-case-threshold" + "-fllvm" + "-floopification" + "-fmax-inline-alloc-size" + "-fmax-inline-memcpy-insns" + "-fmax-inline-memset-insns" + "-fmax-pmcheck-iterations" + "-fmax-relevant-binds" + "-fmax-simplifier-iterations" + "-fmax-worker-args" + "-fmono-pat-binds" + "-fmonomorphism-restriction" + "-fno-PArr" + "-fno-PIC" + "-fno-allow-incoherent-instances" + "-fno-allow-overlapping-instances" + "-fno-allow-undecidable-instances" + "-fno-arrows" + "-fno-bang-patterns" + "-fno-building-cabal-package" + "-fno-call-arity" + "-fno-case-merge" + "-fno-cmm-elim-common-blocks" + "-fno-cmm-sink" + "-fno-code" + "-fno-cpr-anal" + "-fno-cross-module-specialise" + "-fno-cse" + "-fno-defer-type-errors" + "-fno-defer-typed-holes" + "-fno-dicts-cheap" + "-fno-dicts-strict" + "-fno-dmd-tx-dict-sel" + "-fno-do-eta-reduction" + "-fno-do-lambda-eta-expansion" + "-fno-eager-blackholing" + "-fno-embed-manifest" + "-fno-enable-rewrite-rules" + "-fno-error-spans" + "-fno-excess-precision" + "-fno-expose-all-unfoldings" + "-fno-ext-core" + "-fno-extended-default-rules" + "-fno-external-interpreter" + "-fno-ffi" + "-fno-fi" + "-fno-flat-cache" + "-fno-float-in" + "-fno-force-recomp" + "-fno-full-laziness" + "-fno-fun-to-thunk" + "-fno-gen-manifest" + "-fno-ghci-history" + "-fno-ghci-sandbox" + "-fno-glasgow-exts" + "-fno-helpful-errors" + "-fno-hpc" + "-fno-hpc-no-auto" + "-fno-ignore-asserts" + "-fno-ignore-interface-pragmas" + "-fno-implicit-params" + "-fno-implicit-prelude" + "-fno-irrefutable-tuples" + "-fno-kill-absence" + "-fno-kill-one-shot" + "-fno-late-dmd-anal" + "-fno-liberate-case" + "-fno-liberate-case-threshold" + "-fno-loopification" + "-fno-max-relevant-binds" + "-fno-mono-pat-binds" + "-fno-monomorphism-restriction" + "-fno-omit-interface-pragmas" + "-fno-omit-yields" + "-fno-opt-coercion" + "-fno-parr" + "-fno-pedantic-bottoms" + "-fno-pre-inlining" + "-fno-print-equality-relations" + "-fno-print-expanded-synonyms" + "-fno-print-explicit-coercions" + "-fno-print-explicit-foralls" + "-fno-print-explicit-kinds" + "-fno-print-explicit-runtime-reps" + "-fno-print-potential-instances" + "-fno-print-typechecker-elaboration" + "-fno-print-unicode-syntax" + "-fno-prof-auto" + "-fno-prof-cafs" + "-fno-prof-count-entries" + "-fno-regs-graph" + "-fno-regs-iterative" + "-fno-reverse-errors" + "-fno-rewrite-rules" + "-fno-safe-infer" + "-fno-scoped-type-variables" + "-fno-shared-implib" + "-fno-show-warning-groups" + "-fno-simple-list-literals" + "-fno-spec-constr" + "-fno-spec-constr-count" + "-fno-spec-constr-threshold" + "-fno-specialise" + "-fno-specialise-aggressively" + "-fno-state-hack" + "-fno-static-argument-transformation" + "-fno-strictness" + "-fno-th" + "-fno-unbox-small-strict-fields" + "-fno-unbox-strict-fields" + "-fno-use-rpaths" + "-fno-vectorisation-avoidance" + "-fno-vectorise" + "-fno-version-macros" + "-fno-warn-" + "-fno-warn-alternative-layout-rule-transitional" + "-fno-warn-amp" + "-fno-warn-auto-orphans" + "-fno-warn-context-quantification" + "-fno-warn-deprecated-flags" + "-fno-warn-deprecations" + "-fno-warn-deriving-typeable" + "-fno-warn-dodgy-exports" + "-fno-warn-dodgy-foreign-imports" + "-fno-warn-dodgy-imports" + "-fno-warn-duplicate-constraints" + "-fno-warn-duplicate-exports" + "-fno-warn-empty-enumerations" + "-fno-warn-hi-shadowing" + "-fno-warn-identities" + "-fno-warn-implicit-prelude" + "-fno-warn-incomplete-patterns" + "-fno-warn-incomplete-record-updates" + "-fno-warn-incomplete-uni-patterns" + "-fno-warn-inline-rule-shadowing" + "-fno-warn-missing-exported-sigs" + "-fno-warn-missing-fields" + "-fno-warn-missing-import-lists" + "-fno-warn-missing-local-sigs" + "-fno-warn-missing-methods" + "-fno-warn-missing-signatures" + "-fno-warn-monomorphism-restriction" + "-fno-warn-name-shadowing" + "-fno-warn-orphans" + "-fno-warn-overflowed-literals" + "-fno-warn-overlapping-patterns" + "-fno-warn-partial-type-signatures" + "-fno-warn-pointless-pragmas" + "-fno-warn-safe" + "-fno-warn-tabs" + "-fno-warn-trustworthy-safe" + "-fno-warn-type-defaults" + "-fno-warn-typed-holes" + "-fno-warn-unrecognised-pragmas" + "-fno-warn-unsafe" + "-fno-warn-unsupported-calling-conventions" + "-fno-warn-unsupported-llvm-version" + "-fno-warn-unticked-promoted-constructors" + "-fno-warn-unused-binds" + "-fno-warn-unused-do-bind" + "-fno-warn-unused-imports" + "-fno-warn-unused-matches" + "-fno-warn-warnings-deprecations" + "-fno-warn-wrong-do-bind" + "-fno-worker-wrapper" + "-fno-write-interface" + "-fobject-code" + "-fomit-interface-pragmas" + "-fomit-yields" + "-fpackage-trust" + "-fparr" + "-fpedantic-bottoms" + "-fplugin" + "-fplugin-opt" + "-fpre-inlining" + "-fprint-equality-relations" + "-fprint-expanded-synonyms" + "-fprint-explicit-coercions" + "-fprint-explicit-foralls" + "-fprint-explicit-kinds" + "-fprint-explicit-runtime-reps" + "-fprint-potential-instances" + "-fprint-typechecker-elaboration" + "-fprint-unicode-syntax" + "-fprof-auto" + "-fprof-auto-calls" + "-fprof-auto-exported" + "-fprof-auto-top" + "-fprof-cafs" + "-fprof-count-entries" + "-framework" + "-framework-path" + "-freduction-depth" + "-fregs-graph" + "-fregs-iterative" + "-freverse-errors" + "-frewrite-rules" + "-frule-check" + "-fscoped-type-variables" + "-fshared-implib" + "-fshow-warning-groups" + "-fsimpl-tick-factor" + "-fsimple-list-literals" + "-fsimplifier-phases" + "-fspec-constr" + "-fspec-constr-count" + "-fspec-constr-recursive" + "-fspec-constr-threshold" + "-fspecialise" + "-fspecialise-aggressively" + "-fstatic-argument-transformation" + "-fstrictness" + "-fstrictness-before" + "-fth" + "-ftype-function-depth" + "-funbox-small-strict-fields" + "-funbox-strict-fields" + "-funfolding-creation-threshold" + "-funfolding-dict-discount" + "-funfolding-fun-discount" + "-funfolding-keeness-factor" + "-funfolding-use-threshold" + "-fuse-rpaths" + "-fvectorisation-avoidance" + "-fvectorise" + "-fversion-macros" + "-fvia-C" + "-fvia-c" + "-fwarn-" + "-fwarn-alternative-layout-rule-transitional" + "-fwarn-amp" + "-fwarn-auto-orphans" + "-fwarn-context-quantification" + "-fwarn-deprecated-flags" + "-fwarn-deprecations" + "-fwarn-deriving-typeable" + "-fwarn-dodgy-exports" + "-fwarn-dodgy-foreign-imports" + "-fwarn-dodgy-imports" + "-fwarn-duplicate-constraints" + "-fwarn-duplicate-exports" + "-fwarn-empty-enumerations" + "-fwarn-hi-shadowing" + "-fwarn-identities" + "-fwarn-implicit-prelude" + "-fwarn-incomplete-patterns" + "-fwarn-incomplete-record-updates" + "-fwarn-incomplete-uni-patterns" + "-fwarn-inline-rule-shadowing" + "-fwarn-missing-exported-sigs" + "-fwarn-missing-fields" + "-fwarn-missing-import-lists" + "-fwarn-missing-local-sigs" + "-fwarn-missing-methods" + "-fwarn-missing-signatures" + "-fwarn-monomorphism-restriction" + "-fwarn-name-shadowing" + "-fwarn-orphans" + "-fwarn-overflowed-literals" + "-fwarn-overlapping-patterns" + "-fwarn-partial-type-signatures" + "-fwarn-pointless-pragmas" + "-fwarn-safe" + "-fwarn-tabs" + "-fwarn-trustworthy-safe" + "-fwarn-type-defaults" + "-fwarn-typed-holes" + "-fwarn-unrecognised-pragmas" + "-fwarn-unsafe" + "-fwarn-unsupported-calling-conventions" + "-fwarn-unsupported-llvm-version" + "-fwarn-unticked-promoted-constructors" + "-fwarn-unused-binds" + "-fwarn-unused-do-bind" + "-fwarn-unused-imports" + "-fwarn-unused-matches" + "-fwarn-warnings-deprecations" + "-fwarn-wrong-do-bind" + "-fworker-wrapper" + "-fwrite-interface" + "-g" + "-global-package-db" + "-gransim" + "-haddock" + "-haddock-opts" + "-hcsuf" + "-hide-all-packages" + "-hide-all-plugin-packages" + "-hide-package" + "-hidir" + "-hisuf" + "-hpcdir" + "-i" + "-ignore-package" + "-include-pkg-deps" + "-j" + "-keep-hc-file" + "-keep-hc-files" + "-keep-llvm-file" + "-keep-llvm-files" + "-keep-s-file" + "-keep-s-files" + "-keep-tmp-files" + "-l" + "-main-is" + "-mavx" + "-mavx2" + "-mavx512cd" + "-mavx512er" + "-mavx512f" + "-mavx512pf" + "-msse" + "-msse2" + "-msse3" + "-msse4" + "-msse4.2" + "-n" + "-ndp" + "-no-auto" + "-no-auto-all" + "-no-auto-link-packages" + "-no-caf-all" + "-no-global-package-db" + "-no-hs-main" + "-no-link" + "-no-recomp" + "-no-rtsopts" + "-no-rtsopts-suggestions" + "-no-user-package-conf" + "-no-user-package-db" + "-o" + "-odir" + "-ohi" + "-optF" + "-optL" + "-optP" + "-opta" + "-optc" + "-opti" + "-optl" + "-optlc" + "-optlo" + "-optwindres" + "-osuf" + "-outputdir" + "-package" + "-package-conf" + "-package-db" + "-package-env" + "-package-id" + "-package-key" + "-package-name" + "-parallel" + "-pgmF" + "-pgmL" + "-pgmP" + "-pgma" + "-pgmc" + "-pgmdll" + "-pgmi" + "-pgml" + "-pgmlc" + "-pgmlibtool" + "-pgmlo" + "-pgms" + "-pgmwindres" + "-plugin-package" + "-plugin-package-id" + "-prof" + "-rdynamic" + "-recomp" + "-relative-dynlib-paths" + "-rtsopts" + "-rtsopts=all" + "-rtsopts=none" + "-rtsopts=some" + "-shared" + "-sig-of" + "-smp" + "-split-objs" + "-split-sections" + "-static" + "-staticlib" + "-stubdir" + "-syslib" + "-this-package-key" + "-this-unit-id" + "-threaded" + "-ticky" + "-ticky-LNE" + "-ticky-allocd" + "-ticky-dyn-thunk" + "-tmpdir" + "-trust" + "-user-package-db" + "-v" + "-w" + "-with-rtsopts" + ;;; END haskell-ghc-supported-options + ) + "List of options supported by any known version of GHC. + +This list should be updated by running `haskell-update-ghc-support'.") + + +(defun haskell-update-ghc-support (ghc-path) + "Update `haskell-ghc-supported-options' and `haskell-ghc-supported-extensions'. + +This command should be run once a GHC is released. It will use +--show-options and --supported-extensions to source the +information from GHC-PATH. Then it will update source code to +include newly found options. Old options are never removed and +are retained to support old versions of the compiler. + +Options and extension are kept in ascending order." + (interactive + (list + (read-shell-command "GHC command: " nil nil + (let ((filename + (cond + (buffer-file-name) + ((eq major-mode 'dired-mode) + (when (fboundp 'dired-get-filename) + ;; silence the checker + (dired-get-filename nil t)))))) + (and filename (file-relative-name filename)))))) + + + (let ((extentions (split-string (shell-command-to-string (concat ghc-path " --supported-extensions")))) + (options (split-string (shell-command-to-string (concat ghc-path " --show-options"))))) + (with-current-buffer + (find-file-noselect (replace-regexp-in-string "\\.elc$" ".el" (symbol-file 'haskell-ghc-supported-options))) + (save-excursion + (goto-char (point-min)) + (re-search-forward "BEGIN haskell-ghc-supported-extensions") + (forward-line 1) + (let ((point (point))) + (re-search-forward "END haskell-ghc-supported-extensions") + (goto-char (line-beginning-position)) + (delete-region point (point))) + (setq haskell-ghc-supported-extensions + (delete-dups (sort (append extentions haskell-ghc-supported-extensions) #'string<))) + (dolist (item haskell-ghc-supported-extensions) + (insert " \"" item "\"\n")) + (re-search-forward "BEGIN haskell-ghc-supported-options") + (forward-line 1) + (let ((point (point))) + (re-search-forward "END haskell-ghc-supported-options") + (goto-char (line-beginning-position)) + (delete-region point (point))) + (setq haskell-ghc-supported-options + (delete-dups (sort (append options haskell-ghc-supported-options) #'string<))) + (dolist (item haskell-ghc-supported-options) + (insert " \"" item "\"\n")))))) + +(provide 'haskell-ghc-support) |