diff options
Diffstat (limited to 'docs/users_guide/intro.xml')
-rw-r--r-- | docs/users_guide/intro.xml | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/docs/users_guide/intro.xml b/docs/users_guide/intro.xml deleted file mode 100644 index 85c91ba0f4..0000000000 --- a/docs/users_guide/intro.xml +++ /dev/null @@ -1,319 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<chapter id="introduction-GHC"> - <title>Introduction to GHC</title> - - <para>This is a guide to using the Glasgow Haskell Compiler (GHC): - an interactive and batch compilation system for the <ulink - url="http://www.haskell.org/">Haskell 98</ulink> - language.</para> - - <para>GHC has two main components: an interactive Haskell - interpreter (also known as GHCi), described in <xref - linkend="ghci"/>, and a batch compiler, described throughout <xref - linkend="using-ghc"/>. In fact, GHC consists of a single program - which is just run with different options to provide either the - interactive or the batch system.</para> - - <para>The batch compiler can be used alongside GHCi: compiled - modules can be loaded into an interactive session and used in the - same way as interpreted code, and in fact when using GHCi most of - the library code will be pre-compiled. This means you get the best - of both worlds: fast pre-compiled library code, and fast compile - turnaround for the parts of your program being actively - developed.</para> - - <para>GHC supports numerous language extensions, including - concurrency, a foreign function interface, exceptions, type system - extensions such as multi-parameter type classes, local universal and - existential quantification, functional dependencies, scoped type - variables and explicit unboxed types. These are all described in - <xref linkend="ghc-language-features"/>.</para> - - <para>GHC has a comprehensive optimiser, so when you want to Really - Go For It (and you've got time to spare) GHC can produce pretty fast - code. Alternatively, the default option is to compile as fast as - possible while not making too much effort to optimise the generated - code (although GHC probably isn't what you'd describe as a fast - compiler :-).</para> - - <para>GHC's profiling system supports “cost centre - stacks”: a way of seeing the profile of a Haskell program in a - call-graph like structure. See <xref linkend="profiling"/> for more - details.</para> - - <para>GHC comes with a number of libraries. These are - described in separate documentation.</para> - - <sect1 id="getting"> - <title>Obtaining GHC</title> - - <para>Go to the <ulink url="http://www.haskell.org/ghc/">GHC home - page</ulink> and follow the "download" link to download GHC - for your platform.</para> - - <para>Alternatively, if you want to build GHC yourself, head on - over to the - <ulink url="http://ghc.haskell.org/trac/ghc/wiki/Building">GHC - Building Guide</ulink> to find out how to get the sources, and - build it on your system. Note that GHC itself is written in - Haskell, so you will still need to install GHC in order to - build it.</para> - </sect1> - - <sect1 id="mailing-lists-GHC"> - <title>Meta-information: Web sites, mailing lists, etc.</title> - - <indexterm><primary>mailing lists, Glasgow Haskell</primary></indexterm> - <indexterm><primary>Glasgow Haskell mailing lists</primary></indexterm> - - <para>On the World-Wide Web, there are several URLs of likely - interest:</para> - - <itemizedlist> - <listitem> - <para><ulink url="http://www.haskell.org/ghc/">GHC home - page</ulink></para> - </listitem> - - <listitem> - <para><ulink url="http://ghc.haskell.org/trac/ghc/">GHC - Developers Home</ulink> (developer documentation, wiki, and - bug tracker)</para> - </listitem> - </itemizedlist> - - <para>We run the following mailing lists about GHC. - We encourage you to join, as you feel is appropriate.</para> - - <variablelist> - <varlistentry> - <term>glasgow-haskell-users:</term> - <listitem> - <para>This list is for GHC users to chat among themselves. - If you have a specific question about GHC, please check the - <ulink - url="http://www.haskell.org/haskellwiki/GHC/FAQ">FAQ</ulink> - first.</para> - - <variablelist> - <varlistentry> - <term>list email address:</term> - <listitem> - <para><email>glasgow-haskell-users@haskell.org</email></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>subscribe at:</term> - <listitem> - <para><ulink - url="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users"><literal>http://www.haskell.org/mailman/listinfo/glasgow-haskell-users</literal></ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>admin email address:</term> - <listitem> - <para><email>glasgow-haskell-users-admin@haskell.org</email></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>list archives:</term> - <listitem> - <para><ulink - url="http://www.haskell.org/pipermail/glasgow-haskell-users/"><literal>http://www.haskell.org/pipermail/glasgow-haskell-users/</literal></ulink></para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - - <varlistentry> - <term>ghc-devs:</term> - <listitem> - <para>The hardcore GHC developers hang out here.</para> - - <variablelist> - <varlistentry> - <term>list email address:</term> - <listitem> - <para><email>ghc-devs@haskell.org</email></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>subscribe at:</term> - <listitem> - <para><ulink - url="http://www.haskell.org/mailman/listinfo/ghc-devs"><literal>http://www.haskell.org/mailman/listinfo/ghc-devs</literal></ulink>.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term>admin email address:</term> - <listitem> - <para><email>ghc-devs-admin@haskell.org</email></para> - </listitem> - </varlistentry> - - <varlistentry> - <term>list archives:</term> - <listitem> - <para><ulink - url="http://www.haskell.org/pipermail/ghc-devs/"><literal>http://www.haskell.org/pipermail/ghc-devs/</literal></ulink></para> - </listitem> - </varlistentry> - </variablelist> - </listitem> - </varlistentry> - </variablelist> - - <para>There are several other Haskell and GHC-related mailing - lists served by <literal>www.haskell.org</literal>. Go to <ulink - url="http://www.haskell.org/mailman/listinfo/"><literal>http://www.haskell.org/mailman/listinfo/</literal></ulink> - for the full list.</para> - - <para>Some Haskell-related discussion also takes place in the - Usenet newsgroup <literal>comp.lang.functional</literal>.</para> - - </sect1> - - <sect1 id="bug-reporting"> - <title>Reporting bugs in GHC</title> - <indexterm><primary>bugs</primary><secondary>reporting</secondary> - </indexterm> - <indexterm><primary>reporting bugs</primary> - </indexterm> - - <para> - Glasgow Haskell is a changing system so there are sure to be - bugs in it. If you find one, please see - <ulink url="http://ghc.haskell.org/trac/ghc/wiki/ReportABug">this wiki page</ulink> - for information on how to report it. - </para> - - </sect1> - - <sect1 id="version-numbering"> - <title>GHC version numbering policy</title> - <indexterm><primary>version, of ghc</primary></indexterm> - - <para>As of GHC version 6.8, we have adopted the following policy - for numbering GHC versions:</para> - - <variablelist> - <varlistentry> - <term>Stable Releases</term> - <listitem> - <para>Stable branches are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable></literal>, where - <replaceable>y</replaceable> is <emphasis>even</emphasis>. - Releases on the stable branch <literal><replaceable>x</replaceable>.<replaceable>y</replaceable></literal> are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal>, where - <replaceable>z</replaceable> (>= 1) is the patchlevel number. - Patchlevels are bug-fix releases only, and never - change the programmer interface to any system-supplied code. - However, if you install a new patchlevel over an old one you - will need to recompile any code that was compiled against the - old libraries.</para> - - <para>The value of <literal>__GLASGOW_HASKELL__</literal> - (see <xref linkend="c-pre-processor"/>) for a major release - <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal> - is the integer <replaceable>xyy</replaceable> (if - <replaceable>y</replaceable> is a single digit, then a leading zero - is added, so for example in version 6.8.2 of GHC we would have - <literal>__GLASGOW_HASKELL__==608</literal>).</para> - <indexterm> - <primary><literal>__GLASGOW_HASKELL__</literal></primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry> - <term>Stable snapshots</term> - <listitem> - <para> - We may make snapshot releases of the current stable branch <ulink - url="http://www.haskell.org/ghc/dist/stable/dist/">available for - download</ulink>, and the latest sources are available from <ulink - url="http://ghc.haskell.org/trac/ghc/wiki/Repositories">the git - repositories</ulink>. - </para> - - <para>Stable snapshot releases are named - <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>.<replaceable>YYYYMMDD</replaceable></literal>. - where <literal><replaceable>YYYYMMDD</replaceable></literal> is the date of the sources - from which the snapshot was built, and <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z+1</replaceable></literal> is the next release to be made on that branch. - For example, <literal>6.8.1.20040225</literal> would be a - snapshot of the <literal>6.8</literal> branch during the development - of <literal>6.8.2</literal>.</para> - - <para>The value of <literal>__GLASGOW_HASKELL__</literal> - for a snapshot release is the integer - <replaceable>xyy</replaceable>. You should never write any - conditional code which tests for this value, however: since - interfaces change on a day-to-day basis, and we don't have - finer granularity in the values of - <literal>__GLASGOW_HASKELL__</literal>, you should only - conditionally compile using predicates which test whether - <literal>__GLASGOW_HASKELL__</literal> is equal to, later - than, or earlier than a given major release.</para> - <indexterm> - <primary><literal>__GLASGOW_HASKELL__</literal></primary> - </indexterm> - </listitem> - </varlistentry> - - <varlistentry> - <term>Unstable snapshots</term> - <listitem> - <para> - We may make snapshot releases of the HEAD <ulink - url="http://www.haskell.org/ghc/dist/current/dist/">available for - download</ulink>, and the latest sources are available from <ulink - url="http://ghc.haskell.org/trac/ghc/wiki/Repositories">the git - repositories</ulink>. - </para> - - <para>Unstable snapshot releases are named - <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>YYYYMMDD</replaceable></literal>. - where <literal><replaceable>YYYYMMDD</replaceable></literal> is the date of the sources - from which the snapshot was built. - For example, <literal>6.7.20040225</literal> would be a - snapshot of the HEAD before the creation of the - <literal>6.8</literal> branch.</para> - - <para>The value of <literal>__GLASGOW_HASKELL__</literal> - for a snapshot release is the integer - <replaceable>xyy</replaceable>. You should never write any - conditional code which tests for this value, however: since - interfaces change on a day-to-day basis, and we don't have - finer granularity in the values of - <literal>__GLASGOW_HASKELL__</literal>, you should only - conditionally compile using predicates which test whether - <literal>__GLASGOW_HASKELL__</literal> is equal to, later - than, or earlier than a given major release.</para> - <indexterm> - <primary><literal>__GLASGOW_HASKELL__</literal></primary> - </indexterm> - </listitem> - </varlistentry> - </variablelist> - - <para>The version number of your copy of GHC can be found by - invoking <literal>ghc</literal> with the - <literal>--version</literal> flag (see <xref - linkend="options-help"/>).</para> - </sect1> - - -&relnotes1; - -</chapter> - -<!-- Emacs stuff: - ;;; Local Variables: *** - ;;; sgml-parent-document: ("users_guide.xml" "book" "chapter") *** - ;;; ispell-local-dictionary: "british" *** - ;;; End: *** - --> |