[project @ 2003-07-23 13:08:22 by simonpj]
[ghc-hetmet.git] / ghc / docs / users_guide / intro.sgml
index 175a5e9..b41f3ab 100644 (file)
@@ -41,8 +41,8 @@
   details.</para>
 
   <para>GHC comes with a large collection of libraries, with
-  everything from parser combinators to networking.  These are all
-  described in <xref linkend="book-hslibs">.</para>
+  everything from parser combinators to networking.  The libraries are
+  described in separate documentation.</para>
 
   <Sect1 id="mailing-lists-GHC">
     <Title>Meta-information: Web sites, mailing lists, etc.</Title>
@@ -79,8 +79,9 @@
       <varlistentry>
        <term>glasgow-haskell-users:</term>
        <listitem>
-         <para>This list is for GHC users to chat among
-         themselves.</para>
+         <para>This list is for GHC users to chat among themselves.
+         If you have a specific question about GHC, please check the
+         FAQ first (<xref linkend="faq">).</para>
 
          <variablelist>
            <varlistentry>
 
   </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. </para>
+
+    <para>To report a bug, either:</para>
+
+    <itemizedlist>
+      <listitem>
+       <para>Go to the <ulink
+    url="http://sourceforge.net/projects/ghc/">SoureForge GHC
+    page</ulink>, go to the <quote>bugs</quote> section, click on
+    <quote>submit</quote>, and enter your bug report.  You can also
+    check the outstanding bugs here and search the archives to make
+    sure it hasn't already been reported.  Or:</para>
+      </listitem>
+      <listitem>
+       <para>Email your bug report to
+    <Email>glasgow-haskell-bugs@haskell.org</Email>. </para>
+      </listitem>
+    </itemizedlist>
+
+    <sect2>
+      <title>How do I tell if I should report my bug?</title>
+
+      <para>Take a look at the FAQ (<xref linkend="faq">) and <xref
+      linkend="wrong">, which will give you some guidance as to
+      whether the behaviour you're seeing is really a bug or
+      not.</para>
+
+      <para>If it is a bug, then it might have been reported before:
+      try searching the mailing list archives.  The archives don't
+      have a built-in search facility, but we find that <ulink
+      url="http://www.google.com/">Google</ulink>'s site search works
+      pretty well: enter
+      <quote><literal>site:www.haskell.org</literal></quote> followed
+      by your search term into Google.</para>
+
+      <para>If in doubt, just report it.</para>
+    </sect2>
+
+    <sect2>
+      <title>What to put in a bug report</title>
+      <indexterm><primary>bug reports</primary><secondary>contents</secondary></indexterm>
+
+      <para>The name of the bug-reporting game is: facts, facts,
+      facts.  Don't omit them because &ldquo;Oh, they won't be
+      interested&hellip;&rdquo;</para>
+
+      <orderedlist>
+       <listitem>
+         <para>What kind of machine are you running on, and exactly
+          what version of the operating system are you using?
+          (on a Unix system, <Command>uname -a</Command> or <Command>cat
+          /etc/motd</Command> will show the desired information.)</para>
+       </listitem>
+
+       <listitem>
+         <para> What version of GCC are you using? <Command>gcc
+         -v</Command> will tell you.</para>
+       </listitem>
+
+       <listitem>
+         <para> Run the sequence of compiles/runs that caused the
+          offending behaviour, capturing all the input/output in a
+          &ldquo;script&rdquo; (a UNIX command) or in an Emacs shell
+          window.  We'd prefer to see the whole thing.</para>
+       </listitem>
+
+       <listitem>
+         <para> Be sure any Haskell compilations are run with a
+          <Option>-v</Option> (verbose) flag, so we can see exactly
+          what was run, what versions of things you have, etc.</para>
+       </listitem>
+
+       <listitem>
+         <para> What is the program behaviour that is wrong, in your
+         opinion?</para>
+       </listitem>
+
+       <listitem>
+         <para> If practical, please send enough source files for us
+          to duplicate the problem.</para>
+       </listitem>
+
+       <listitem>
+         <para> If you are a Hero and track down the problem in the
+          compilation-system sources, please send us patches relative
+          to a known released version of GHC, or whole files if you
+          prefer.</para>
+       </listitem>
+      </orderedlist>
+    </sect2>
+  </sect1>
+
   <sect1 id="version-numbering">
     <title>GHC version numbering policy</title>
     <indexterm><primary>version, of ghc</primary></indexterm>
 
-    <para>As of GHC version 4.08, we have adopted the following
-    policy for numbering GHC versions:</para>
+    <para>As of GHC version 6.0, we have adopted the following policy
+    for numbering GHC versions:</para>
 
     <variablelist>
       <varlistentry>
        <term>Stable Releases</term>
        <listitem>
-         <para>These are numbered <literal>x.yy.z</literal>, where
-         <literal>yy</literal> is <emphasis>even</emphasis>, and
-         <literal>z</literal> is the patchlevel number (the trailing
-         <literal>.z</literal> can be omitted if <literal>z</literal>
+         <para>These are numbered <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable></literal>, where
+         <replaceable>y</replaceable> is <emphasis>even</emphasis>, and
+         <replaceable>z</replaceable> is the patchlevel number (the trailing
+         <literal>.<replaceable>z</replaceable></literal> can be omitted if <replaceable>z</replaceable>
          is zero).  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
 
          <para>The value of <literal>__GLASGOW_HASKELL__</literal>
          (see <xref linkend="c-pre-processor">) for a major release
-         <literal>x.yy.z</literal> is the integer
-         <literal>xyy</literal>.</para>
+         <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.2 of GHC,
+         <literal>__GLASGOW_HASKELL__==602</literal>).</para>
          <indexterm>
            <primary><literal>__GLASGOW_HASKELL__</literal></primary>
          </indexterm>
          <para>We may make snapshot releases of the current
          development sources from time to time, and the current
          sources are always available via the CVS repository (see the
-         GHC web site for details).</para>
+         <ulink url="http://www.haskell.org/ghc/">GHC web
+         site</ulink> for details).</para>
 
          <para>Snapshot releases are named
-         <literal>x.yy.YYYYMMDD</literal> where <literal>yy</literal>
-         is <emphasis>odd</emphasis>, and <literal>YYYYMMDD</literal>
-         is the date of the sources from which the snapshot was
-         built.  In theory, you can check out the exact same sources
-         from the CVS repository using this date.</para>
+         <literal><replaceable>x</replaceable>.<replaceable>y</replaceable>.YYYYMMDD</literal>
+         where <literal>y</literal> is <emphasis>odd</emphasis>, and
+         <literal>YYYYMMDD</literal> is the date of the sources from
+         which the snapshot was built.  In theory, you can check out
+         the exact same sources from the CVS repository using this
+         date.</para>
 
          <para>The value of <literal>__GLASGOW_HASKELL__</literal>
          for a snapshot release is the integer
-         <literal>xyy</literal>.  You should never write any
+         <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
     
     <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
+    <literal>&ndash;&ndash;version</literal> flag (see <xref
     linkend="options-help">).</para>
   </sect1>
 
 
-&relnotes
+&relnotes;
 
 </Chapter>