summaryrefslogtreecommitdiff
path: root/docs/users_guide/intro.xml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/users_guide/intro.xml')
-rw-r--r--docs/users_guide/intro.xml319
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&nbsp;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 &ldquo;cost centre
- stacks&rdquo;: 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: ***
- -->