<html>
  <head>
    <title>Old Expat News</title>
    <link rel="STYLESHEET" href="style.css" type="text/css" />
  </head>
  <body marginwidth="0" marginheight="0">
    <table cellspacing="0" cellpadding="0" width="100%">
      <tr>
        <td class="corner"><img src="expat.png" /></td>
        <td class="banner"><h2>Old Expat News</h2></td>
      </tr>
      <tr>
        <td class="navbar">
        </td>
        <td class="content">

<p><a href="./index.html#news">Current news</a></p>

<dl>
  <dt><em>27 December 2005</em>,
      Final Expat 2.0 pre-release snapshot made available.
    </dt>
  <dd>
    <p>This <a href="http://www.libexpat.org/expat-2005-12-27.tar.gz" >
    pre-release distribution</a> is based on the feedback we got from the
    Dec. 23 snapshot and represents the final opportunity for
    feedback before the actual release goes out.</p>
    <p>We plan to release after the New Year.</p>
    </dd>
  <dt><em>23 December 2005</em>,
      Expat 2.0 pre-release snapshot (another one) made available.
    </dt>
  <dd>
    <p>As nothing happened here for a long time, we've posted another
    <a href="http://www.libexpat.org/expat-2005-12-23.tar.gz" >pre-release
    distribution snapshot</a> of the code currently in CVS on
    libexpat.org.  Please try this out and report any problems you
    have. We'd like to get Expat 2.0 out soon.</p>
    <p>A late addition was the new (optional) <code>XML_LARGE_SIZE</code>
    feature to enable 64-bit integers on some API members. Please check
    how it builds and works for you.</p>
    </dd>
  <dt><em>28 January 2005</em>,
      Expat pre-release snapshot made available.
    </dt>
  <dd>
    <p>We've posted a <a href=
    "http://www.libexpat.org/expat-2005-01-28.tar.gz" >pre-release
    distribution snapshot</a> of the code currently in CVS on
    libexpat.org.  Please try this out and report any problems you
    have. We'd like to get a release out soon.</p>
    <p>The coming release will either be 1.95.9 or 2.0, depending
    primarily on the response to this snapshot. If we do decide to
    make this 1.95.9, then we'll try to follow up with 2.0 in about a
    month.</p>
    </dd>
  <dt><em>23 July 2004</em>,
      Expat 1.95.8 released.
    </dt>
  <dd>
    <p>The release schedule described in the previous news item didn't
    work out.  As a compensation, we've fixed a number of the
    nuissance warnings generated on many platforms, and added a nice
    new suspend/resume feature to the parser.</p>
    <p><ul>
      <li> Major new feature: suspend/resume.  Handlers can now request
           that a parse be suspended for later resumption or aborted
           altogether.  See "Temporarily Stopping Parsing" in the
           documentation for more details. </li>
      <li> Some mostly minor bug fixes, but compilation should no
           longer generate warnings on most platforms.  SF issues
           include: 827319, 840173, 846309, 888329, 896188, 923913,
           928113, 961698, 985192.</li>
    </ul></p>
    </dd>
  <dt><em>20 October 2003</em>,
      Expat 1.95.7 released.
    </dt>
  <dd>
    <p><ul>
      <li> Fixed <code>enum XML_Status</code> issue (reported on
           SourceForge many times), so compilers that are properly
           picky will be happy. </li>
      <li> Introduced an <code>XMLCALL</code> macro to control the
           calling convention used by the Expat API; this macro should
           be used to annotate prototypes and definitions of callback
           implementations in code compiled with a calling convention
           other than the default convention for the host
           platform. </li>
      <li> Improved ability to build without the
           <b>configure</b>-generated <span
           class="filename">expat_config.h</span> header.  This is
           useful for applications which embed Expat rather than
           linking in the library. </li>
      <li> Fixed a variety of bugs: see SF issues 458907, 609603,
           676844, 679754, 692878, 692964, 695401, 699323, 699487,
           820946. </li>
      <li> Improved hash table lookups. </li>
      <li> Added more regression tests and improved documentation. </li>
    </ul></p>
    <p>Our plan is to wait for a short while and re-release this
    version as the long-awaited Expat 2.0 if no major problems are
    identified.  If significant problems are found, additional
    iterative releases will be made as fixes are made.</p>
    </dd>
  <dt><em>15 October 2003</em>,
      Upcoming release.
    </dt>
  <dd>
    <p>We're working on getting the long-delayed Expat 1.95.7 out the
      door.  A snapshot of the current source code is available as
      expat-2003-10-15.tar.gz (no longer available);
      please give this a try on your platform and report how it works
      for you to the <a href=
      "http://mail.libexpat.org/mailman/listinfo/expat-discuss"
      >expat-discuss</a> mailing list.  Our goals for this release are
      portability and stability.
      </p>
    </dd>
  <dt><em>28 January 2003</em>,
      Expat 1.95.6 released.
    </dt>
  <dd>
    <ul>
      <li> Added <code>XML_FreeContentModel()</code>. </li>
      <li> Added <code>XML_MemMalloc()</code>,
           <code>XML_MemRealloc()</code>,
           <code>XML_MemFree()</code>. </li>
      <li> Fixed a variety of bugs: see SF issues 615606, 616863,
           618199, 653180, 673791. </li>
      <li> Enhanced the regression test suite. </li>
      <li> Man page improvements: includes SF issue 632146. </li>
    </ul>
    <p />
    </dd>
  <dt><em>6 September 2002</em>,
      Expat 1.95.5 released.
    </dt>
  <dd>
    <ul>
      <li> Added <code>XML_UseForeignDTD()</code> for improved SAX2
           support. </li>
      <li> Added <code>XML_GetFeatureList()</code>. </li>
      <li> Defined <code>XML_Bool</code> type and the values
           <code>XML_TRUE</code> and <code>XML_FALSE</code>. </li>
      <li> Use an incomplete struct instead of a <code>void*</code>
           for the parser. </li>
      <li> Fixed UTF-8 decoding bug that caused legal UTF-8 to be
           rejected. </li>
      <li> Finally fixed bug where default handler would report DTD
           events that were already handled by another handler.
           Initial patch contributed by Darryl Miles. </li>
      <li> Removed unnecessary <code>DllMain()</code> function that
           caused static linking into a DLL to be difficult. </li>
      <li> Added VC++ projects for building static libraries. </li>
      <li> Reduced line-length for all source code and headers to be
           no longer than 80 characters, to help with AS/400
           support. </li>
      <li> Reduced memory copying during parsing (SF patch #600964). </li>
      <li> Fixed a variety of bugs: see SF issues 580793, 434664,
           483514, 580503, 581069, 584041, 584183, 584832, 585537,
           596555, 596678, 598352, 598944, 599715, 600479, 600971. </li>
    </ul>
    <p />
    </dd>
  <dt><em>4 September 2002</em>,
      <a href="dev/roadmap.html">Development roadmap</a> published.
    </dt>
  <dd>
    <ul>
      <li> The initial version of the development roadmap was released
           for comment. </li>
    </ul>
    <p />
    </dd>
  <dt><em>12 July 2002</em>,
      Expat 1.95.4 released.
    </dt>
  <dd>
    <ul>
      <li> Added support for VMS, contributed by Craig Berry.  See
	   vms/README.vms in the distrubution for more information. </li>
      <li> Added Mac OS (classic) support, with a makefile for MPW,
	   contributed by Thomas Wegner and Daryle Walker. </li>
      <li> Added Borland C++ Builder 5 / BCC 5.5 support, contributed
	   by Patrick McConnell (SF patch #538032). </li>
      <li> Fixed a variety of bugs: see SF issues 441449, 563184,
	   564342, 566334, 566901, 569461, 570263, 575168, 579196. </li>
      <li> Made skippedEntityHandler conform to SAX2 (see source
	   comment). </li>
      <li> Re-implemented WFC: Entity Declared from XML 1.0 spec and
	   added a new error "entity declared in parameter entity":
	   see SF bug report 569461 and SF patch 578161. </li>
      <li> Re-implemented section 5.1 from XML 1.0 spec:
	   see SF bug report 570263 and SF patch 578161. </li>
    </ul>
    Expat 1.95.3 is being withdrawn due to <a href=
    "http://sourceforge.net/tracker/index.php?func=detail&amp;aid=566334&amp;group_id=10127&amp;atid=110127"
    >bug #566334</a>.  If you are currently using Expat 1.95.3, please
    update to 1.95.4.
    <p />
    </dd>
  <dt><em>3 June 2002</em>,
      Expat 1.95.3 released.
    </dt>
  <dd>
    <ul>
      <li> Changed the name of the Windows DLLs from expat.dll to
	   libexpat.dll; this fixes SF bug #432456.  This is a problem
	   only known to affect the Perl XML::Parser::Expat extension,
	   but is very important for that extension.</li>
      <li> Added a project to the MSVC workspace to create a wchar_t
	   version of the library; the DLLs are named libexpatw.dll.
	   (Note the addition of the "w" character in the file name.)
	   </li>
      <li> Added the XML_ParserReset() API function.  This allows a
           parser to be re-used, reducing the number of memory
           allocations needed to set up a parser.  This can be a
           substantial benefit when parsing a large number of small
           documents. </li>
      <li> Fixed XML_SetReturnNSTriplet() to work for element names.
           This is now a usable feature. </li>
      <li> Made the XML_UNICODE builds usable (thanks, Karl!). </li>
      <li> Allow xmlwf to read from standard input. </li>
      <li> Install a man page for xmlwf on Unix systems. </li>
      <li> Fixed many bugs; see SF bug reports 231864, 461380, 464837,
	   466885, 469226, 477667, 484419, 487840, 494749, 496505,
	   547350.  Other bugs which we can't test as easily may also
	   have been fixed, especially in the area of build support. </li>
    </ul>
    </dd>
</dl>

        </td>
      </tr>
      <tr>
        <td class="corner">
          <a href="http://sourceforge.net">
            <img src="http://sflogo.sourceforge.net/sflogo.php?group_id=10127&amp;type=2"
              width="125" height="37" border="0" alt="SourceForge.net Logo" />
          </a>
        </td>
      </tr>
    </table>
  </body>
</html>
