|
|
- ;;; 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)
|