packages feed

c2hs-0.15.1: doc/users_guide/release-notes.html

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Release Notes</title><link rel="stylesheet" href="fptools.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.70.1" /><link rel="start" href="index.html" title="The Binding Generator C➔Haskell" /><link rel="up" href="index.html" title="The Binding Generator C➔Haskell" /><link rel="prev" href="gfdl.html" title="GNU Free Documentation License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Release Notes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="gfdl.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="release-notes"></a>Release Notes</h2></div></div></div><p>
  Important changes (especially those affecting the semantics of the tool) are
  documented in the following.
  </p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316306"></a>Version 0.15.1 "Rainy Days"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
        New C parser that can parse all of C99 and GNU C
        </p></li><li><p>
        Make c2hs integrate better with Cabal (1.2 and later)
        </p></li><li><p>Adapted to GHC 6.8.</p></li><li><p>Now requires Cabal 1.2.</p></li><li><p>Lots and lots of old code removal</p></li><li><p>
        Several bug fixes and improvements from Udo Stenzel:
        </p><div class="itemizedlist"><ul type="circle"><li><p>allowing variadic functions in structures</p></li><li><p>allowing call and fun hooks for FunPtrs in C structs</p></li><li><p>embedded arrays size calculated correctly</p></li></ul></div><p>
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316375"></a>Version 0.14.5 "Travelling Lightly"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
        Added <code class="literal">nocode</code> directive to pointer hooks
        </p></li><li><p>
        Can use structs properly in pointer hooks now (contributed by Jelmer
        Vernooij)
      </p></li><li><p>
        <code class="literal">upcaseFirstLetter</code> and
        <code class="literal">downcaseFirstLetter</code>
        </p></li><li><p>Cross-compiling with <code class="literal">--platform</code> flag
        </p></li><li><p>
        Gcc's <code class="literal">asm</code> construct is supported (contributed by
        Duncan Coutts)
        </p></li><li><p>
        Hierarchical modules syntax in <code class="literal">import</code> hooks supported
        </p></li><li><p>
        No separately installed marshaling library anymore; as a result binary
        C➔Haskell packages and installations are now independent of the targeted
        Haskell system
        </p></li><li><p>
        New lexer and parser generated with Alex and Happy (contributed by
        Duncan Coutts)
        </p></li><li><p>Cabal build system</p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316483"></a>Version 0.13.6 "Pressing Forward"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Works with GHC 6.4 and Cabal packages
        </p></li><li><p>
        Strings may contain 8-bit characters (e.g., umlauts).
        </p></li><li><p>
        Identifier may optionally be put in single quotes.  (This is useful if
        they would otherwise collide with a C➔Haskell keyword.)
        </p></li><li><p>
        Some smaller bug fixes
        </p></li><li><p>
        C chars are treated as integral types for marshalling purposes.
        </p></li><li><p>
        If there is no explicit output file specified, the generated header
        file is put in the same directory as the binding file; otherwise, it
        goes in the directory where the output file is put.  Moreover, the
        <code class="literal">--output-dir</code> option enables the specification of
        directory where all generated files are to be put.
        </p></li><li><p>Foreign import declarations include the name of the header file
        generated by C➔Haskell (ie, it needs neither be passed to the Haskell
        compiler at the command line nor in an OPTIONS pragma).
        </p></li><li><p>
        We allow structs and unions with no declarations.
        </p></li><li><p>Headers including function bodies are now parsed correctly.
        </p></li><li><p>Duncan Coutts identified a space leak in the parser whose removal
        improved performance significantly.
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316574"></a>Version 0.12.1 "Springtime"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Removed support for deprecated <code class="literal">C2HS</code>
      interface and for old versions of the FFI libraries</p></li><li><p>Improved line pragma generation</p></li><li><p>Works with GHC 6.3</p></li><li><p>
        Builds on Mac OS X thanks to a patch by Sean Seefried
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316611"></a>Version 0.11.5 "Powder Snow"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes</p></li><li><p>Constant expression can now contain enumerators</p></li><li><p>
        <code class="literal">header</code> label removed from <code class="literal">context</code>
        hooks
        </p></li><li><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
          This version of <code class="literal">c2hs</code> may
          <span class="emphasis"><em>overwrite</em></span> C header files in the current
          directory. More precisely, if a binding module with the name
          <code class="literal">Foo.chs</code> is processed, a header file with the name 
          <code class="literal">Foo.h</code> is generated and will
          <span class="emphasis"><em>overwrite</em></span> any file of the same name in the
          current directory or the directory specified via the 
          <code class="literal">-o</code> option.
          </p></div></li><li><p>
        Added support for CPP directives, including special treatment of
        conditions, and for inline C code; specification of a header file as an
        argument to <code class="literal">c2hs</code> is now option.
        </p></li><li><p>
        GHC line pragmas are emitted into generated Haskell code
        </p></li><li><p>
        Swap the order of reading the binding module and the C header (i.e., we
        now read the binding module first)
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316723"></a>Version 0.10.17 "Altocumulus Stratiformis Perlucidus Undulatus"
    </h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Worked around a bug in GHC 5.04.1</p></li><li><p>Solaris-related fix</p></li><li><p>
        Marshalling support for bit masks represented as enumeration types
        </p></li><li><p>Added <code class="literal">fun</code> hooks</p></li><li><p>
        <code class="literal">as</code> aliases can use <code class="literal">^</code> convert the
        orignal identifier with underscore2case
        </p></li><li><p>
        In call hooks, the attributes `fun' was replaced by `pure' (`fun' is
        will still be recognised for a while to ensure backwards compatibility,
        but it's use is deprecated)
        </p></li><li><p>GHC's package system is now supported</p></li><li><p>
        If two import hooks add a type mapping for a pointer hook with the same
        name, the textual later one dominates.
      </p></li><li><p>Bug fixes</p></li><li><p>
        Support for bitfields (they are correctly handled when computing struct
        offsets and they can be accessed using <code class="literal">set</code> and
        <code class="literal">get</code> hooks)
       </p></li><li><p>
          Some more support for GNU C extensions ("alignof" and better support
        "__attribute__")
        </p></li><li><p>Added <code class="literal">class</code> hooks</p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316851"></a>Version 0.9.9 "Blue Ginger"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes</p></li><li><p>
        Library names in <code class="literal">foreign import</code>s have been removed
        until the convention of the new FFI is implemented (they are currently
        <span class="emphasis"><em>silently</em></span> omitted)
        </p></li><li><p>
        Added <code class="literal">sizeof</code> hooks; sizeof of type names is now also
        supported in constant expressions
        </p></li><li><p>
        Local prefix for <code class="literal">enum</code> hooks; courtesy of Armin Sander
        </p></li><li><p>
        Added <code class="literal">import</code> hooks</p></li><li><p>
        The documentation includes a description of binding hooks
        </p></li><li><p>
        Added <code class="literal">pointer</code> hooks, which were derived from code
        for a similar feature by Axel Simon; this includes proper treatment of
        parametrised pointers
        </p></li><li><p>
        Integrated <code class="literal">deriving</code> option for
        <code class="literal">enum</code> hooks, which was contributed by Axel Simon
        </p></li><li><p>Adapted to GHC 5.0</p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id316966"></a>Version 0.8.2 "Gentle Moon"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
        Adaptation layer for legacy <code class="literal">StablePtr</code> interface
        </p></li><li><p>
        Forgot to export <code class="literal">FunPtr</code> and associated functions
        from <code class="literal">C2HS</code>
        </p></li><li><p>
        Forgot to export some names in <code class="literal">C2HSDeprecated</code>
        </p></li><li><p>
        Added support for gcc's <code class="literal">__builtin_va_list</code>
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317032"></a>Version 0.8.1 "Gentle Moon"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Library adapted to New FFI; the old interface can still be used
        by importing <code class="literal">C2HSDeprecated</code>
        </p></li><li><p>
        FFI Library specification added to the documentation
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317062"></a>Version 0.7.10 "Afterthought"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
          CygWin support; based on suggestions by Anibal Maffioletti Rodrigues
          de DEUS <code class="email">&lt;<a href="mailto:anibaldedeus@email.com">anibaldedeus@email.com</a>&gt;</code>
        </p></li><li><p>
        <code class="literal">IntConv</code> instances for <code class="literal">Int8</code>,
        <code class="literal">Word8</code>, and <code class="literal">Char</code>
        </p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317113"></a>Version 0.7.9 "Afterthought"</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>
        Debugged the stripping of prefixes from enumerators; prefixes are now
        generally stripped, independent of whether they can be stripped from
        all enumerators of a given enumeration type
        </p></li><li><p>Comma now correctly required after
        <code class="literal">underscoreToCase</code>.
        </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>This breaks source compatibility with previous versions.
          </p></div></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317152"></a>Version 0.7.8</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Provisional support for GHC 4.08</p></li><li><p>Corrected constant folding</p></li></ul></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317171"></a>Version 0.7.7</h3></div></div></div><p>
    Ignores any occurrence of <code class="literal">#pragma</code>.
    </p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317187"></a>Version 0.7.6</h3></div></div></div><p>
    Bug fixes and support for <code class="literal">long long</code>.
    </p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="id317204"></a>Version 0.7.5</h3></div></div></div><p>
    This is mainly a bug fix release.  In particular, the space behaviour of
    C➔Haskell has been significantly improved.
    </p><p>
    IMPORTANT NOTE: From this release on, library names in
    <code class="literal">lib</code> tags in <code class="literal">context</code> hooks should
    <span class="emphasis"><em>not</em></span> contain a suffix (i.e., omit
    <code class="literal">.so</code> etc).
    </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="gfdl.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">GNU Free Documentation License </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>