Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 18

ghc-doc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Distribution.PackageDescription.Check</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Distribution-PackageDescription-Check.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>Cabal-1.6.0.3: A framework for packaging Haskell software</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Distribution.PackageDescription.Check</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>cabal-devel@haskell.org</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>Package Checking
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Checking package contents
</A
></DT
></DL
></DD
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
>This has code for checking for various problems in packages. There is one
 set of checks that just looks at a <TT
><A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
></TT
> in isolation and
 another set of checks that also looks at files in the package. Some of the
 checks are basic sanity checks, others are portability standards that we'd
 like to encourage. There is a <TT
><A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
></TT
> type that distinguishes the
 different kinds of check so we can see which ones are appropriate to report
 in different situations. This code gets uses when configuring a package when
 we consider only basic problems. The higher standard is uses when when
 preparing a source tarball and by hackage when uploading new packages. The
 reason for this is that we want to hold packages that are expected to be
 distributed to a higher standard than packages that are only ever expected
 to be used on the author's own environment.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3APackageCheck"
>PackageCheck</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3APackageBuildImpossible"
>PackageBuildImpossible</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aexplanation"
>explanation</A
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3APackageBuildWarning"
>PackageBuildWarning</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aexplanation"
>explanation</A
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3APackageDistSuspicious"
>PackageDistSuspicious</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aexplanation"
>explanation</A
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3APackageDistInexcusable"
>PackageDistInexcusable</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3Aexplanation"
>explanation</A
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
>}</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckPackage"
>checkPackage</A
> :: <A HREF="Distribution-PackageDescription.html#t%3AGenericPackageDescription"
>GenericPackageDescription</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckConfiguredPackage"
>checkConfiguredPackage</A
> :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckPackageFiles"
>checkPackageFiles</A
> :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckPackageContent"
>checkPackageContent</A
> :: <A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Distribution-PackageDescription-Check.html#t%3ACheckPackageContentOps"
>CheckPackageContentOps</A
> m -&gt; <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; m [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ACheckPackageContentOps"
>CheckPackageContentOps</A
> m = <A HREF="#v%3ACheckPackageContentOps"
>CheckPackageContentOps</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AdoesFileExist"
>doesFileExist</A
> :: <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; m <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AdoesDirectoryExist"
>doesDirectoryExist</A
> :: <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; m <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AcheckPackageFileNames"
>checkPackageFileNames</A
> :: [<A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
>] -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Package Checking
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:PackageCheck"
><A NAME="t%3APackageCheck"
></A
></A
><B
>PackageCheck</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Results of some kind of failed package check.
</P
><P
>There are a range of severities, from merely dubious to totally insane.
 All of them come with a human readable explanation. In future we may augment
 them with more machine readable explanations, for example to help an IDE
 suggest automatic corrections.
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:PackageBuildImpossible"
><A NAME="v%3APackageBuildImpossible"
></A
></A
><B
>PackageBuildImpossible</B
></TD
><TD CLASS="rdoc"
>This package description is no good. There's no way it's going to
 build sensibly. This should give an error at configure time.
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:explanation"
><A NAME="v%3Aexplanation"
></A
></A
><B
>explanation</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:PackageBuildWarning"
><A NAME="v%3APackageBuildWarning"
></A
></A
><B
>PackageBuildWarning</B
></TD
><TD CLASS="rdoc"
>A problem that is likely to affect building the package, or an
 issue that we'd like every package author to be aware of, even if
 the package is never distributed.
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:explanation"
><A NAME="v%3Aexplanation"
></A
></A
><B
>explanation</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:PackageDistSuspicious"
><A NAME="v%3APackageDistSuspicious"
></A
></A
><B
>PackageDistSuspicious</B
></TD
><TD CLASS="rdoc"
>An issue that might not be a problem for the package author but
 might be annoying or determental when the package is distributed to
 users. We should encourage distributed packages to be free from these
 issues, but occasionally there are justifiable reasons so we cannot
 ban them entirely.
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:explanation"
><A NAME="v%3Aexplanation"
></A
></A
><B
>explanation</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:PackageDistInexcusable"
><A NAME="v%3APackageDistInexcusable"
></A
></A
><B
>PackageDistInexcusable</B
></TD
><TD CLASS="rdoc"
>An issue that is ok in the author's environment but is almost
 certain to be a portability problem for other environments. We can
 quite legitimately refuse to publicly distribute packages with these
 problems.
</TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:explanation"
><A NAME="v%3Aexplanation"
></A
></A
><B
>explanation</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:PackageCheck')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:PackageCheck" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkPackage"
><A NAME="v%3AcheckPackage"
></A
></A
><B
>checkPackage</B
> :: <A HREF="Distribution-PackageDescription.html#t%3AGenericPackageDescription"
>GenericPackageDescription</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>Check for common mistakes and problems in package descriptions.
</P
><P
>This is the standard collection of checks covering all apsects except
 for checks that require looking at files within the package. For those
 see <TT
><A HREF="Distribution-PackageDescription-Check.html#v%3AcheckPackageFiles"
>checkPackageFiles</A
></TT
>.
</P
><P
>It requires the <TT
><A HREF="Distribution-PackageDescription.html#t%3AGenericPackageDescription"
>GenericPackageDescription</A
></TT
> and optionally a particular
 configuration of that package. If you pass <TT
><A HREF="../base/Data-Maybe.html#v%3ANothing"
>Nothing</A
></TT
> then we just check
 a version of the generic description using <TT
><A HREF="Distribution-PackageDescription-Configuration.html#v%3AflattenPackageDescription"
>flattenPackageDescription</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkConfiguredPackage"
><A NAME="v%3AcheckConfiguredPackage"
></A
></A
><B
>checkConfiguredPackage</B
> :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Checking package contents
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkPackageFiles"
><A NAME="v%3AcheckPackageFiles"
></A
></A
><B
>checkPackageFiles</B
> :: <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="../base/System-IO.html#t%3AIO"
>IO</A
> [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Sanity check things that requires IO. It looks at the files in the
 package and expects to find the package unpacked in at the given filepath.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkPackageContent"
><A NAME="v%3AcheckPackageContent"
></A
></A
><B
>checkPackageContent</B
> :: <A HREF="../base/Control-Monad.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Distribution-PackageDescription-Check.html#t%3ACheckPackageContentOps"
>CheckPackageContentOps</A
> m -&gt; <A HREF="Distribution-PackageDescription.html#t%3APackageDescription"
>PackageDescription</A
> -&gt; m [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>Sanity check things that requires looking at files in the package.
 This is a generalised version of <TT
><A HREF="Distribution-PackageDescription-Check.html#v%3AcheckPackageFiles"
>checkPackageFiles</A
></TT
> that can work in any
 monad for which you can provide <TT
><A HREF="Distribution-PackageDescription-Check.html#t%3ACheckPackageContentOps"
>CheckPackageContentOps</A
></TT
> operations.
</P
><P
>The point of this extra generality is to allow doing checks in some virtual
 file system, for example a tarball in memory.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:CheckPackageContentOps"
><A NAME="t%3ACheckPackageContentOps"
></A
></A
><B
>CheckPackageContentOps</B
> m </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A record of operations needed to check the contents of packages.
 Used by <TT
><A HREF="Distribution-PackageDescription-Check.html#v%3AcheckPackageContent"
>checkPackageContent</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:CheckPackageContentOps"
><A NAME="v%3ACheckPackageContentOps"
></A
></A
><B
>CheckPackageContentOps</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:doesFileExist"
><A NAME="v%3AdoesFileExist"
></A
></A
><B
>doesFileExist</B
> :: <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; m <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:doesDirectoryExist"
><A NAME="v%3AdoesDirectoryExist"
></A
></A
><B
>doesDirectoryExist</B
> :: <A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
> -&gt; m <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:checkPackageFileNames"
><A NAME="v%3AcheckPackageFileNames"
></A
></A
><B
>checkPackageFileNames</B
> :: [<A HREF="../base/System-IO.html#t%3AFilePath"
>FilePath</A
>] -&gt; [<A HREF="Distribution-PackageDescription-Check.html#t%3APackageCheck"
>PackageCheck</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Check the names of all files in a package for portability problems. This
 should be done for example when creating or validating a package tarball.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>