1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<HTML> 3<HEAD> 4 <TITLE>Release Notes</TITLE> 5 <LINK REL="stylesheet" HREF="../../../boost.css"> 6 <LINK REL="stylesheet" HREF="theme/iostreams.css"> 7</HEAD> 8<BODY> 9 10<!-- Begin Banner --> 11 12 <H1 CLASS="title">Release Notes</H1> 13 <HR CLASS="banner"> 14 15<!-- End Banner --> 16 17<h4>1.46</h4> 18 19<ul> 20 <li> 21 Use <code>BOOST_ASSERT</code> instead of <code>assert</code>. 22 </li> 23 <li> 24 Fixed flush regression, see <a href="https://svn.boost.org/trac/boost/ticket/4590">#4590</a> 25 </li> 26</ul> 27 28<h4>1.44</h4> 29 30<p>Lots of fixes in this version, almost all are by Steven Watanabe.</p> 31 32<p>File descriptor fixes:</p> 33 34<ul> 35 <li> 36 <strong>Breaking change:</strong> 37 new constructors and <code>open</code> methods from file descriptors/handles for 38 <code>file_descriptor</code>, <code>file_descriptor_source</code> 39 and <code>file_descriptor_sink</code>. See 40 <a title="File descriptor devices referece" href="classes/file_descriptor.html">the documentation</a> 41 for details. The old methods are still available if you define 42 <code>BOOST_IOSTREAMS_USE_DEPRECATED</code> 43 (<a href="https://svn.boost.org/trac/boost/ticket/3517">#3517</a>). 44 </li> 45 <li> 46 Add <code>BOOST_IOSTREAMS_DECL</code> to 47 <code>file_descriptor_source</code> and 48 <code>file_descriptor_sink</code> fixing their use in dynamic libraries 49 (<a href="https://svn.boost.org/trac/boost/ticket/4335">#4335</a>). 50 </li> 51 <li> 52 Rejigger <code>file_descriptors</code> handling of 53 <code>std::ios_base::openmode</code> to match <code>std::fstream</code>. 54 In particular, truncate existing files, if 55 <code>std::ios_base::trunc</code> is passed 56 (<a href="https://svn.boost.org/trac/boost/ticket/3323">#3323</a>). 57 </li> 58 <li> 59 Open files in append mode on Windows instead of seeking to the end at every 60 write when <code>std::ios_base::app</code> is passed 61 (<a href="https://svn.boost.org/trac/boost/ticket/3323">#3323</a>). 62 </li> 63</ul> 64 65<p>Compression/decompression fixes:</p> 66 67<ul> 68 <li> 69 Don't end the stream produced by a reading through a symmetric_filter 70 prematurely 71 (<a href="https://svn.boost.org/trac/boost/ticket/2318">#2318</a>). 72 </li> 73 <li> 74 Allow building zlib 1.2.4+, using a glob to include only source files that 75 actually exist 76 (<a href="https://svn.boost.org/trac/boost/ticket/4091">#4091</a>). 77 </li> 78 <li> 79 Fix compressing an empty string. 80 </li> 81 <li> 82 Allow bzip2 filters to be closed even if no input has been read 83 (<a href="https://svn.boost.org/trac/boost/ticket/3348">#3348</a>). 84 </li> 85 <li> 86 Throw an exception on an unexpected end of file in 87 <code>bzip2_decompressor</code> instead of going into an infinite loop 88 (<a href="https://svn.boost.org/trac/boost/ticket/2783">#2783</a>). 89 </li> 90 <li> 91 Reset the crc for zlib when we reuse a filter. 92 </li> 93 <li> 94 Make <code>gzip_decompressor</code> a <code>DualUseFilter</code> 95 (<a href="https://svn.boost.org/trac/boost/ticket/1579">#1579</a>). 96 </li> 97 <li> 98 Allow <code>bzip2_decompressor</code> to process multiple concatenated 99 streams 100 (<a href="https://svn.boost.org/trac/boost/ticket/3853">#3853</a>). 101 </li> 102</ul> 103 104<p>Other fixes:</p> 105 106<ul> 107 <li> 108 Make <code>aggregate_filter</code> work with wide characters 109 (<a href="https://svn.boost.org/trac/boost/ticket/3851">#3851</a>). 110 </li> 111 <li> 112 Make <code>symmetric_filter</code> compile with <code>wchar_t</code> 113 (<a href="https://svn.boost.org/trac/boost/ticket/3279">#3279</a>). 114 </li> 115 <li> 116 Fix <code>boost/iostreams/detail/resolve.hpp</code> compilation on xlc. 117 </li> 118 <li> 119 Fix definition of <code>multichar_dual_use_filter_tag</code> 120 (<a href="https://svn.boost.org/trac/boost/ticket/3689">#3689</a>). 121 </li> 122 <li> 123 Make <code>concept_adapter</code> work with custom <code>char_traits</code> 124 (<a href="https://svn.boost.org/trac/boost/ticket/2356">#2356</a>). 125 </li> 126 <li> 127 On windows, open mapped files with just read/write permissions, rather than 128 full control - which might not be available 129 (<a href="https://svn.boost.org/trac/boost/ticket/2996">#2996</a>). 130 </li> 131 <li> 132 Make sure that <code>direct_streambuf</code> and 133 <code>indirect_streambuf</code> are reset correctly on open 134 (<a href="https://svn.boost.org/trac/boost/ticket/4102">#4102</a>). 135 </li> 136 <li> 137 Make <code>basic_file</code> and <code>basic_file_sync</code> 138 <code>Flushable</code> 139 (<a href="https://svn.boost.org/trac/boost/ticket/2998">#2998</a>). 140 </li> 141 <li> 142 Several documentation improvements, including 143 documenting private mapping with <code>mapped_file</code> 144 (<a href="https://svn.boost.org/trac/boost/ticket/1612">#1612</a>). 145 </li> 146 <li> 147 Make the tests more reliable by using Boost.Filesystem's 148 <code>unique_path</code> instead of <code>tmpnam</code> 149 (<a href="https://svn.boost.org/trac/boost/ticket/2325">#2325</a>). 150 </li> 151</ul> 152 153<h4>1.43</h4> 154 155<p> 156More fixes. 157</p> 158 159<ul> 160 <li> 161 Fix <code>write_device_impl<ostream_tag></code> 162 (<a href="https://svn.boost.org/trac/boost/ticket/3839">#3839</a>). 163 </li> 164 <li> 165 Fix error checks after calling SetFilePointer 166 (<a href="https://svn.boost.org/trac/boost/ticket/3953">#3953</a>). 167 </li> 168 <li> 169 Gzip filter shouldn't require its source to be peekable 170 (<a href="https://svn.boost.org/trac/boost/ticket/3723">#3723</a>). 171 </li> 172 <li> 173 In <code>position_to_offset</code>, only cast to 174 <code>stream_offset</code> after calculating <code>_Myoff</code> 175 (<a href="https://svn.boost.org/trac/boost/ticket/3969">#3969</a>). 176 </li> 177 <li> 178 <code>ptrdiff_t</code> is in <code>std</code> 179 (<a href="https://svn.boost.org/trac/boost/ticket/2505">#2505</a>). 180 </li> 181</ul> 182 183<h4>1.42</h4> 184 185<p> 186Fixed many outstanding issues. Thanks to Richard Smith for working on a lot 187of these changes. 188</p> 189 190<ul> 191 <li> 192 Allocate exceptions on the stack, not the heap (<a href="https://svn.boost.org/trac/boost/ticket/3612">#3612</a>). 193 </li> 194 <li> 195 Fix unthrown exceptions. (<a href="https://svn.boost.org/trac/boost/ticket/3311">#3311</a>). 196 </li> 197 <li> 198 Use <code>boost::throw_exception</code> to throw exceptions 199 (<a href="https://svn.boost.org/trac/boost/ticket/2094">#2094</a>). 200 </li> 201 <li> 202 Add missing include guard (<a href="https://svn.boost.org/trac/boost/ticket/3010">#3010</a>). 203 </li> 204 <li> 205 Use the correct type for buffer_size and pback_size parameters (<a href="https://svn.boost.org/trac/boost/ticket/2894">#2894</a>). 206 </li> 207 <li> 208 Support <code>boost::ref(std::istream)</code> in code_converter (<a href="https://svn.boost.org/trac/boost/ticket/3011">#3011</a>). 209 </li> 210 <li> 211 Fix CRC on x64 during gzip decompression (<a href="https://svn.boost.org/trac/boost/ticket/3352">#3352</a>). 212 </li> 213 <li> 214 Fix mapped file errors in windows (<a href="https://svn.boost.org/trac/boost/ticket/3505">#3505</a>). 215 </li> 216 <li> 217 Improved support for Visual C++ 2010. 218 </li> 219 <li> 220 Fix usage requirements in boost build. 221 </li> 222 <li> 223 Fix some boundary checks in <code>restrict</code> and <code>slice</code>. 224 </li> 225 <li> 226 Some minor documentation fixes. 227 </li> 228 <li> 229 Avoid Apple macro substitutions for <code>check</code>. 230 </li> 231</ul> 232 233<h4>1.41</h4> 234 235<p> 236Some old unreleased developments. There are still several open issues that 237should be fixed in the next version. 238</p> 239<ul> 240 <li> 241 Add a grep filter (<a href="https://svn.boost.org/trac/boost/ticket/1627">#1627</a>). 242 </li> 243 <li> 244 Support archives with multiple members (<a href="https://svn.boost.org/trac/boost/ticket/1896">#1896</a>). 245 </li> 246 <li> 247 Make <code><span class="identifier">tee</span></code> work with input 248 streams (<a href="https://svn.boost.org/trac/boost/ticket/791">#791</a>). 249 </li> 250 <li> 251 Improved filesystem interoperability. 252 </li> 253 <li> 254 Several warnings fixed or suppressed (including 255 <a href="https://svn.boost.org/trac/boost/ticket/1618">#1618</a>, 256 <a href="https://svn.boost.org/trac/boost/ticket/1875">#1875</a>, 257 <a href="https://svn.boost.org/trac/boost/ticket/2779">#2779</a>). 258 </li> 259 <li> 260 Various other fixes (including 261 <a href="https://svn.boost.org/trac/boost/ticket/1580">#1580</a>, 262 <a href="https://svn.boost.org/trac/boost/ticket/1671">#1671</a>). 263 </li> 264</ul> 265 266<h3>1.35</h3> 267 268<P>1. The semantics of <A HREF="functions/close.html"><CODE>close</CODE></A> has been modified:</P> 269 270<UL> 271<LI>Calling <CODE>close</CODE> with a <CODE>std::ios_base::openmode</CODE> other than <CODE>in</CODE> or <CODE>out</CODE> is deprecated.</LI> 272<LI>A new overload of <CODE>close</CODE> taking a single Device argument has been provided as a convenience.</LI> 273<LI><A HREF="concepts/dual_use_filter.html">DualUseFilters</A> receive only one closure notification.</LI> 274<LI><A HREF="guide/generic_streams.html">Generic streams and stream buffers</A> and <A HREF="guide/filtering_streams.html">filtering streams and stream buffers</A> are now <A HREF="concepts/closable.html">Closable</A>. For filtering streams and stream buffers, <CODE>close</CODE> calls <A HREF="classes/filtering_stream.html#pop"><CODE>pop</CODE></A>. 275</UL> 276 277<P><EM>These changes will break some existing code</EM>. They were necessary to resolve inconsistencies in the prior specification that resulted in a number of reported bugs.</P> 278 279<P>2. The function template <a href="functions/slice.html"><code>slice</code></a> has been introduced as an alias of <a href="functions/restrict.html"><code>restrict</code></a>, for platforms that treat <code>restrict</code> as a keyword.</P> 280 281<P>3. Numerous bugs have been fixed, many relating to <a href="functions/close.html"><code>close</code></a>, <a href="functions/copy.html"><code>copy</code></a>, and <a href="classes/file_descriptor.html">file descriptors</a>.</P> 282 283<!-- Begin Footer --> 284 285<HR> 286 287<P CLASS="copyright">© Copyright 2008 <a href="http://www.coderage.com/" target="_top">CodeRage, LLC</a><br/>© Copyright 2004-2007 <a href="https://www.boost.org/users/people/jonathan_turkanis.html" target="_top">Jonathan Turkanis</a></P> 288<P CLASS="copyright"> 289 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <A HREF="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>) 290</P> 291 292<!-- End Footer --> 293 294</BODY> 295