| Cabal-1.6.0.0: A framework for packaging Haskell software | Contents | Index |
|
Distribution.Simple.Compiler | Portability | portable | Maintainer | cabal-devel@haskell.org |
|
|
|
|
|
Description |
This should be a much more sophisticated abstraction than it is. Currently
it's just a bit of data about the compiler, like it's flavour and name and
version. The reason it's just data is because currently it has to be in
Read and Show so it can be saved along with the LocalBuildInfo. The
only interesting bit of info it contains is a mapping between language
extensions and compiler command line flags. This module also defines a
PackageDB type which is used to refer to package databases. Most compilers
only know about a single global package collection but GHC has a global and
per-user one and it lets you create arbitrary other package databases. We do
not yet fully support this latter feature.
|
|
Synopsis |
|
|
|
|
Haskell implementations
|
|
module Distribution.Compiler |
|
data Compiler |
Constructors | | Instances | |
|
|
showCompilerId :: Compiler -> String |
|
compilerFlavor :: Compiler -> CompilerFlavor |
|
compilerVersion :: Compiler -> Version |
|
Support for package databases
|
|
data PackageDB |
Some compilers have a notion of a database of available packages.
For some there is just one global db of packages, other compilers
support a per-user or an arbitrary db specified at some location in
the file system. This can be used to build isloated environments of
packages, for example to build a collection of related packages
without installing them globally.
| Constructors | GlobalPackageDB | | UserPackageDB | | SpecificPackageDB FilePath | |
| Instances | |
|
|
Support for optimisation levels
|
|
data OptimisationLevel |
Some compilers support optimising. Some have different levels.
For compliers that do not the level is just capped to the level
they do support.
| Constructors | NoOptimisation | | NormalOptimisation | | MaximumOptimisation | |
| Instances | |
|
|
flagToOptimisationLevel :: Maybe String -> OptimisationLevel |
|
Support for language extensions
|
|
type Flag = String |
|
extensionsToFlags :: Compiler -> [Extension] -> [Flag] |
For the given compiler, return the flags for the supported extensions.
|
|
unsupportedExtensions :: Compiler -> [Extension] -> [Extension] |
For the given compiler, return the extensions it does not support.
|
|
Produced by Haddock version 0.8 |