[project @ 2002-04-30 16:23:47 by simonmar]
[ghc-hetmet.git] / ghc / docs / users_guide / 5-02-notes.sgml
index 2d1d7d7..8a64c07 100644 (file)
@@ -5,6 +5,14 @@
     <title>User-visible compiler changes</title>
 
     <itemizedlist>
+
+      <listitem>
+       <para>Majorly improved support for Windows platforms.  Binary
+       builds are now entirely freestanding.  There is no longer any
+       need to install Cygwin or Mingwin to use it.  It's a
+       one-click-install-and-off-you-go story now.</para>
+      </listitem>
+
       <listitem>
        <para>Several small changes to bring GHC into line with the
        newest Haskell&nbsp;98 report.</para>
@@ -27,7 +35,8 @@
        <para>Thanks to the heroic efforts of Ken Shan
        <email>ken@digitas.harvard.edu</email>, GHC now works again on
        the Alpha architecture (just Tru64 at the moment), and many
-       (all?) of the 64-bit bugs have been shaken out.</para>
+       64-bit bugs have been shaken out.  Interactive mode and the
+        native code generator do not currently work, sorry.</para>
       </listitem>
 
       <listitem>
        to omit code generation and all future compilation stages (see
        <xref linkend="options-codegen">).</para>
       </listitem>
+
+      <listitem>
+        <para>New option <option>-package-conf
+        <replaceable>file</replaceable></option>.  This makes GHC read
+        additional package descriptions from
+        <replaceable>file</replaceable>.  See <xref
+        linkend="using-local-packages">.</para>
+      </listitem>
+
+      <listitem>
+       <para><option>+RTS
+          -i<replaceable>seconds</replaceable></option> flag reinstated for heap
+          profiling.  See <xref linkend="rts-options-heap-prof">.</para>
+      </listitem>
+
+      <listitem>
+       <para><option>-funbox-strict-fields</option> now works
+       correctly.  See <xref linkend="options-f">.</para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Many bug fixes related to implicit-parameter support.</para>
+      </listitem>
+
+      <listitem>
+       <para>
+        Data declarations with no constructors are allowed.  This
+        facilitates types whose only value is bottom, and which have
+        no representation.</para>
+      </listitem>
+
+      <listitem>
+       <para>
+        You can disconnect numeric syntax from the Prelude syntax.
+        Doing this means you can define your own arithmetic.  The
+        relevant flag is <option>-fno-implicit-prelude</option>.  See
+        <xref linkend="options-language">.
+        </para>
+      </listitem>
+
     </itemizedlist>
   </sect2>
 
   <sect2>
-    <title>New experimental features</title>
+    <title>User-visible interpreter (GHCi) changes</title>
 
     <itemizedlist>
-      <!-- don't forget: 31-bit support -->
+      <listitem>
+         <para>GHCi now works on Windows.</para>
+      </listitem>
 
       <listitem>
-       <para>A compacting garbage collector has been added.  It isn't
-       on by default, because it is somewhat slower than the existing
-       copying collector, but can be automatically enabled when
-       memory gets tight by setting the maximum heap size (see <xref
-       linkend="rts-options-gc">).  Compaction works together with
-       the existing generational scheme: it is only used on the
-       oldest generation.</para>
+       <para>Partial FFI support in GHCi.  At the moment, foreign
+        import (static and dynamic) are supported on x86 and sparc
+        platforms.</para>
+      </listitem>
+
+      <listitem>
+       <para>New interpreter command <literal>:add</literal>, to add
+       modules to the current bunch.  See
+        <xref linkend="ghci-commands">.</para>
       </listitem>
+
+      <listitem>
+       <para>New interpreter command <literal>:info</literal>, to provide
+       information on values, types and classes, a la Hugs.  See
+        <xref linkend="ghci-commands">.</para>
+      </listitem>
+
+      <listitem>
+       <para>Multiple target modules are supported.  You may specify
+       multiple modules for the <literal>:add</literal> and
+       <literal>:load</literal> commands.  From the command line, you
+       may specify multiple modules when starting GHCi and when
+       compiling in <option>&ndash;&ndash;make</option> mode.  See
+        <xref linkend="ghci-commands">.</para>
+      </listitem>
+
+      <listitem>
+       <para>New flags <option>-ignore-dot-ghci</option> and
+       <option>-read-dot-ghci</option>.  See
+        <xref linkend="ghci-dot-files">.</para>
+      </listitem>
+
+      <listitem>
+       <para>When starting GHCi from the command line, you may now
+       use the flags
+       <option>-L<replaceable>library-path</replaceable></option> and
+       <option>-l<replaceable>library-name</replaceable></option> to
+       specify libraries to be loaded into the interactive
+       session.  See <xref linkend="ghci-invokation">.</para>
+      </listitem>
+
     </itemizedlist>
   </sect2>
 
   </sect2>
 
   <sect2>
+    <title>New experimental features</title>
+
+    <itemizedlist>
+      <!-- don't forget: 31-bit support -->
+
+      <listitem>
+       <para>Partial support for hierarchical module names.</para>
+      </listitem>
+
+      <listitem>
+         <para>Mucho hacking on the .NET code generator, including
+         some FFI extensions for .NET interop.  It's still
+         severely b0rk3d, so won't do anything useful.  Yet.</para>
+      </listitem>
+
+      <listitem>
+         <para>Emission of external Core format.  The goal is for
+         other tools to be able to grab the Core resulting from GHC's
+         front end manglings and optimisations.  Core format is
+         formally defined by the document <ulink url="http://www.haskell.org/ghc/docs/papers/core.ps.gz"
+         <citetitle>An External Representation for the GHC Core Language</citetitle></ulink>.
+         We also have sample
+         tools for reading, writing and typechecking external Core,
+         available in the source distribution directory <literal>/fptools/ghc/utils/ext-core</literal>.
+         Ultimately we plan that Core files can also be read by
+         GHC.  The relevant flag is <option>-fext-core</option>.
+         </para>
+      </listitem>
+
+      <listitem>
+       <para>A compacting garbage collector has been added.  It isn't
+       on by default, because it is somewhat slower than the existing
+       copying collector, but can be automatically enabled when
+       memory gets tight by setting the maximum heap size (see <xref
+       linkend="rts-options-gc">).  Compaction works together with
+       the existing generational scheme: it is only used on the
+       oldest generation.  Despite the "experimental"
+       classification, we've jumped up and down quite significantly
+       on this code, and it seems stable.</para>
+      </listitem>
+    </itemizedlist>
+  </sect2>
+
+  <sect2>
     <title>Internal changes</title>
     <itemizedlist>
       <listitem>
        by one written using the FFI.  No externally visible
        changes.</para>
       </listitem>
+
+      <listitem>
+       <para>The compiler has a new strictness-and-absence analyser,
+        which is alleged to help it generate better code.</para>
+      </listitem>
+
     </itemizedlist>
   </sect2>