Files
boost_endian/doc/mini_review_topics.html
T

109 lines
4.9 KiB
HTML

<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Endian Mini-Review</title>
</head>
<link href="styles.css" rel="stylesheet">
<body>
<p>Here is what needs to be done to get the library ready for a mini-review:
</p>
<p><b>Common use case scenarios should be developed.</b></p>
<blockquote>
<p>Done. See <a href="index.html#Use-cases">Use cases</a>.</p>
</blockquote>
<p><b>Example programs should be developed for the common use case scenarios.</b></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<p><b>Documentation should illuminate the differences between endian
integer/float type and endian conversion approaches to the common use
case scenarios, and provide guidelines for choosing the most appropriate
approach in user's applications.</b></p>
<blockquote>
<p>Done. See <a href="index.html#Choosing">Choosing between endian conversion
functions, endian buffer types, and endian arithmetic types</a>.</p>
</blockquote>
<p><b>Conversion functions supplying results via return should be provided.</b></p>
<blockquote>
<p>Done. See <a href="conversion.html">conversion docs</a>.</p>
</blockquote>
<p><b>Platform specific performance enhancements such as use of compiler intrinsics or relaxed alignment requirements should be supported.</b></p>
<blockquote>
<p>Done. Compiler (Clang, GCC, VisualC++, etc.) intrinsics and built-in
functions are used in the implementation where appropriate, as requested. See
<a href="index.html#Intrinsic">Built-in support for Intrinsics</a>. See
<a href="index.html#Timings">Timings for Example 2</a> to gauge the impact of
intrinsics.</p>
</blockquote>
<p><b>Endian integer (and floating) types should be implemented via the
conversion functions. If that can't be done efficiently, consideration
should be given to expanding the conversion function signatures to
resolve the inefficiencies.</b></p>
<blockquote>
<p>Done. For the endian types, the implementation uses the endian conversion
functions, and thus the intrinsics, as requested.</p>
</blockquote>
<p><b>Benchmarks that measure performance should be provided. It should be
possible to compare platform specific performance enhancements against
portable base implementations, and to compare endian integer approaches
against endian conversion approaches for the common use case scenarios.</b></p>
<blockquote>
<p>Done. See <a href="index.html#Timings">Timings for Example 2</a>. The <code>endian/test</code> directory
also contains several additional benchmark and speed test programs.</p>
</blockquote>
<p><b>Float (32-bits) and double (64-bits) should be supported. IEEE 754 is
the primary use case.</b></p>
<blockquote>
<p>Done. The <a href="buffers.html">endian buffer types</a>,&nbsp;
<a href="arithmetic.html">endian arithmetic types</a> and
<a href="conversion.html">endian conversion functions</a> now support 32-bit (<code>float)</code>
and 64-bit <code>(double)</code> floating point, as requested.</p>
</blockquote>
<p><b>Support for user defined types (UDTs) is desirable, and should be
provided where there would be no conflict with the other concerns.</b></p>
<blockquote>
<p>Done. See <a href="conversion.html#Requirements">conversion requirements</a>.</p>
</blockquote>
<p><b>There is some concern that endian integer/float arithmetic operations
might used inadvertently or inappropriately. The impact of adding an endian_buffer
class without arithmetic operations should be investigated.</b></p>
<blockquote>
<p>Done. The endian types have been decomposed into class template <code>
<a href="buffers.html">endian_buffer</a></code> and class template <code>
<a href="arithmetic.html">endian_arithmetic</a></code>. Class
<code>endian_buffer</code> is a public base class for <code>endian_arithmetic</code>,
and can also be used by users as a stand-alone class.</p>
</blockquote>
<p><b>Stream insertion and extraction of the endian integer/float types should
be documented and included in the test coverage.</b></p>
<blockquote>
<p>Done. See <a href="types.html#Stream-inserter">Stream inserter</a> and
<a href="types.html#Stream-extractor">Stream extractor</a>.</p>
</blockquote>
<p><b>Binary I/O support that was investigated during development of the Endian
library should be put up for mini-review for inclusion in the Boost I/O
library.</b></p>
<blockquote>
<p>&nbsp;</p>
</blockquote>
<hr>
<p>Last revised:
<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->17 December, 2014<!--webbot bot="Timestamp" endspan i-checksum="38647" --></p>
<p>© Copyright Beman Dawes, 2014</p>
<p>Distributed under the Boost Software License, Version 1.0. See
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/ LICENSE_1_0.txt</a></p>
</body>
</html>