summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
4d401b9)
Print the list of strings that are accepted in a LANGUAGE pragma,
or as a -XFoo flag. (No can be prepended to any of the strings).
- machdepCCOpts, picCCOpts
+ machdepCCOpts, picCCOpts,
+ supportedLanguages,
) where
#include "HsVersions.h"
) where
#include "HsVersions.h"
( "allow-incoherent-instances", Opt_IncoherentInstances )
]
( "allow-incoherent-instances", Opt_IncoherentInstances )
]
+supportedLanguages :: [String]
+supportedLanguages = map fst xFlags
-- These -X<blah> flags can all be reversed with -XNo<blah>
xFlags :: [(String, DynFlag)]
-- These -X<blah> flags can all be reversed with -XNo<blah>
xFlags :: [(String, DynFlag)]
import DriverPhases ( Phase(..), isSourceFilename, anyHsc,
startPhase, isHaskellSrcFilename )
import StaticFlags
import DriverPhases ( Phase(..), isSourceFilename, anyHsc,
startPhase, isHaskellSrcFilename )
import StaticFlags
-import DynFlags ( defaultDynFlags )
import BasicTypes ( failed )
import ErrUtils ( putMsg )
import FastString ( getFastStringTable, isZEncoded, hasZEncoding )
import BasicTypes ( failed )
import ErrUtils ( putMsg )
import FastString ( getFastStringTable, isZEncoded, hasZEncoding )
-- to find out what version of GHC it's using before package.conf
-- exists, so starting the session fails.
case cli_mode of
-- to find out what version of GHC it's using before package.conf
-- exists, so starting the session fails.
case cli_mode of
- ShowVersion -> do showVersion
- exitWith ExitSuccess
- ShowNumVersion -> do putStrLn cProjectVersion
- exitWith ExitSuccess
- _ -> return ()
+ ShowSupportedLanguages -> do showSupportedLanguages
+ exitWith ExitSuccess
+ ShowVersion -> do showVersion
+ exitWith ExitSuccess
+ ShowNumVersion -> do putStrLn cProjectVersion
+ exitWith ExitSuccess
+ _ -> return ()
-- start our GHC session
session <- GHC.newSession mbMinusB
-- start our GHC session
session <- GHC.newSession mbMinusB
---------------- Final sanity checking -----------
checkOptions cli_mode dflags srcs objs
---------------- Final sanity checking -----------
checkOptions cli_mode dflags srcs objs
- ---------------- Do the business -----------
+ ---------------- Do the business -----------
+ let alreadyHandled = panic (show cli_mode ++
+ " should already have been handled")
- ShowUsage -> showGhcUsage dflags cli_mode
- PrintLibdir -> putStrLn (topDir dflags)
- ShowVersion -> panic "ShowVersion should already have been handled"
- ShowNumVersion -> panic "ShowNumVersion should already have been handled"
- ShowInterface f -> doShowIface dflags f
- DoMake -> doMake session srcs
- DoMkDependHS -> doMkDependHS session (map fst srcs)
- StopBefore p -> oneShot dflags p srcs
- DoInteractive -> interactiveUI session srcs Nothing
- DoEval expr -> interactiveUI session srcs (Just expr)
+ ShowUsage -> showGhcUsage dflags cli_mode
+ PrintLibdir -> putStrLn (topDir dflags)
+ ShowSupportedLanguages -> alreadyHandled
+ ShowVersion -> alreadyHandled
+ ShowNumVersion -> alreadyHandled
+ ShowInterface f -> doShowIface dflags f
+ DoMake -> doMake session srcs
+ DoMkDependHS -> doMkDependHS session (map fst srcs)
+ StopBefore p -> oneShot dflags p srcs
+ DoInteractive -> interactiveUI session srcs Nothing
+ DoEval expr -> interactiveUI session srcs (Just expr)
dumpFinalStats dflags
exitWith ExitSuccess
dumpFinalStats dflags
exitWith ExitSuccess
data CmdLineMode
= ShowUsage -- ghc -?
| PrintLibdir -- ghc --print-libdir
data CmdLineMode
= ShowUsage -- ghc -?
| PrintLibdir -- ghc --print-libdir
+ | ShowSupportedLanguages -- ghc --supported-languages
| ShowVersion -- ghc -V/--version
| ShowNumVersion -- ghc --numeric-version
| ShowInterface String -- ghc --show-iface
| ShowVersion -- ghc -V/--version
| ShowNumVersion -- ghc --numeric-version
| ShowInterface String -- ghc --show-iface
, ( "V" , PassFlag (setMode ShowVersion))
, ( "-version" , PassFlag (setMode ShowVersion))
, ( "-numeric-version", PassFlag (setMode ShowNumVersion))
, ( "V" , PassFlag (setMode ShowVersion))
, ( "-version" , PassFlag (setMode ShowVersion))
, ( "-numeric-version", PassFlag (setMode ShowNumVersion))
+ , ( "-supported-languages", PassFlag (setMode ShowSupportedLanguages))
------- interfaces ----------------------------------------------------
, ( "-show-iface" , HasArg (\f -> setMode (ShowInterface f)
------- interfaces ----------------------------------------------------
, ( "-show-iface" , HasArg (\f -> setMode (ShowInterface f)
hPutStr stderr " booted by GHC version "
hPutStrLn stderr cBooterVersion
hPutStr stderr " booted by GHC version "
hPutStrLn stderr cBooterVersion
+showSupportedLanguages :: IO ()
+showSupportedLanguages = do mapM_ putStrLn supportedLanguages
+ exitWith ExitSuccess
+
showVersion :: IO ()
showVersion = do
putStrLn (cProjectName ++ ", version " ++ cProjectVersion)
showVersion :: IO ()
showVersion = do
putStrLn (cProjectName ++ ", version " ++ cProjectVersion)
<entry>-</entry>
</row>
<row>
<entry>-</entry>
</row>
<row>
+ <entry><option>––supported-languages</option></entry>
+ <entry>display the supported language extensions</entry>
+ <entry>mode</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>––version</option></entry>
<entry>display GHC version</entry>
<entry>mode</entry>
<entry><option>––version</option></entry>
<entry>display GHC version</entry>
<entry>mode</entry>
<varlistentry>
<term>
<cmdsynopsis>
<varlistentry>
<term>
<cmdsynopsis>
+ <command>ghc --supported-languages</command>
+ </cmdsynopsis>
+ <indexterm><primary><option>––supported-languages</option></primary></indexterm>
+ </term>
+ <listitem>
+ <para>Print the supported language extensions.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <cmdsynopsis>
<command>ghc --version</command>
<command>ghc -V</command>
</cmdsynopsis>
<command>ghc --version</command>
<command>ghc -V</command>
</cmdsynopsis>