]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/endian/doc/mini_review_topics.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / endian / doc / mini_review_topics.html
1 <html>
2
3 <head>
4 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
5 <meta name="ProgId" content="FrontPage.Editor.Document">
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <title>Endian Mini-Review</title>
8 </head>
9 <link href="styles.css" rel="stylesheet">
10 <body>
11
12 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
13 <tr>
14 <td width="339">
15 <a href="../../../index.html">
16 <img src="../../../boost.png" alt="Boost logo" align="middle" border="0" width="277" height="86"></a></td>
17 <td align="middle" width="1253">
18 <b>
19 <font size="6">Endian </font></b><font size="6"><b>Mini-Review</b></font></td>
20 </tr>
21 </table>
22
23 <table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse"
24 bordercolor="#111111" bgcolor="#D7EEFF" width="100%">
25 <tr>
26 <td><b>
27 <a href="index.html">Endian Home</a>&nbsp;&nbsp;&nbsp;&nbsp;
28 <a href="conversion.html">Conversion Functions</a>&nbsp;&nbsp;&nbsp;&nbsp;
29 <a href="arithmetic.html">Arithmetic Types</a>&nbsp;&nbsp;&nbsp;&nbsp;
30 <a href="buffers.html">Buffer Types</a>&nbsp;&nbsp;&nbsp;&nbsp;
31 <a href="choosing_approach.html">Choosing Approach</a></b></td>
32 </tr>
33 </table>
34 <p></p>
35
36 <p>The results of the Boost.Endian formal review included a list of issues to be
37 resolved before a mini-review.</p>
38
39 <p>The issues are shown in <b>bold</b> below, with the resolution indicated.</p>
40
41 <p><b>1. Common use case scenarios should be developed.</b></p>
42 <blockquote>
43
44 <p>Done. The documentation have been refactored. A page is now devoted to
45 <a href="choosing_approach.html">Choosing the Approach</a> to endianness. See
46 <a href="choosing_approach.html#Use-cases">Use cases</a> for use case
47 scenarios.</p>
48 </blockquote>
49 <p><b>2. Example programs should be developed for the common use case scenarios.</b></p>
50 <blockquote>
51 <p>Done. See <a href="choosing_approach.html">Choosing the Approach</a>.
52 Example code has been added throughout.</p>
53 </blockquote>
54 <p><b>3. Documentation should illuminate the differences between endian
55 integer/float type and endian conversion approaches to the common use
56 case scenarios, and provide guidelines for choosing the most appropriate
57 approach in user's applications.</b></p>
58 <blockquote>
59 <p>Done. See <a href="choosing_approach.html">Choosing the Approach</a>.</p>
60 </blockquote>
61 <p><b>4 .Conversion functions supplying results via return should be provided.</b></p>
62 <blockquote>
63 <p>Done. See <a href="conversion.html">ConversionFunctions</a>.</p>
64 </blockquote>
65 <p><b>5. Platform specific performance enhancements such as use of compiler intrinsics or relaxed alignment requirements should be supported.</b></p>
66 <blockquote>
67 <p>Done. Compiler (Clang, GCC, VisualC++, etc.) intrinsics and built-in
68 functions are used in the implementation where appropriate, as requested. See
69 <a href="index.html#Intrinsic">Built-in support for Intrinsics</a>. See
70 <a href="index.html#Timings">Timings for Example 2</a> to gauge the impact of
71 intrinsics.</p>
72 </blockquote>
73 <p><b>6. Endian integer (and floating) types should be implemented via the
74 conversion functions. If that can't be done efficiently, consideration
75 should be given to expanding the conversion function signatures to
76 resolve the inefficiencies.</b></p>
77 <blockquote>
78 <p>Done. For the endian types, the implementation uses the endian conversion
79 functions, and thus the intrinsics, as requested.</p>
80 </blockquote>
81 <p><b>7. Benchmarks that measure performance should be provided. It should be
82 possible to compare platform specific performance enhancements against
83 portable base implementations, and to compare endian integer approaches
84 against endian conversion approaches for the common use case scenarios.</b></p>
85 <blockquote>
86 <p>Done. See <a href="index.html#Timings">Timings for Example 2</a>. The <code>endian/test</code> directory
87 also contains several additional benchmark and speed test programs.</p>
88 </blockquote>
89 <p><b>8. Float (32-bits) and double (64-bits) should be supported. IEEE 754 is
90 the primary use case.</b></p>
91 <blockquote>
92 <p>Done. The <a href="buffers.html">endian buffer types</a>,&nbsp;
93 <a href="arithmetic.html">endian arithmetic types</a> and
94 <a href="conversion.html">endian conversion functions</a> now support 32-bit (<code>float)</code>
95 and 64-bit <code>(double)</code> floating point, as requested.</p>
96 </blockquote>
97 <p><b>9. Support for user defined types (UDTs) is desirable, and should be
98 provided where there would be no conflict with the other concerns.</b></p>
99 <blockquote>
100 <p>Done. See <a href="conversion.html#Customization-points">Customization
101 points for user-defined types (UDTs)</a>.</p>
102 </blockquote>
103 <p><b>10. There is some concern that endian integer/float arithmetic operations
104 might used inadvertently or inappropriately. The impact of adding an endian_buffer
105 class without arithmetic operations should be investigated.</b></p>
106 <blockquote>
107 <p>Done. The endian types have been decomposed into class template <code>
108 <a href="buffers.html">endian_buffer</a></code> and class template <code>
109 <a href="arithmetic.html">endian_arithmetic</a></code>. Class
110 <code>endian_buffer</code> is a public base class for <code>endian_arithmetic</code>,
111 and can also be used by users as a stand-alone class.</p>
112 </blockquote>
113 <p><b>11. Stream insertion and extraction of the endian integer/float types should
114 be documented and included in the test coverage.</b></p>
115 <blockquote>
116 <p>Done. See <a href="buffers.html#Stream-inserter">Stream inserter</a> and
117 <a href="buffers.html#Stream-extractor">Stream extractor</a>.</p>
118 </blockquote>
119 <p><b>12. Binary I/O support that was investigated during development of the Endian
120 library should be put up for mini-review for inclusion in the Boost I/O
121 library.</b></p>
122
123 <blockquote>
124 <p>Not done yet. Will be handled as a separate min-review soon after the
125 Endian mini-review.</p>
126
127 </blockquote>
128 <p><b>13. Other requested changes.</b></p>
129
130 <blockquote>
131 <ul>
132 <li>In addition to the named-endianness conversion functions, functions that perform
133 compile-time (via template) and run-time (via function argument) dispatch
134 are now provided.</li>
135 <li><code>order::native</code> is now a synonym for <code>order::big</code>
136 or <code>order::little</code> according to the endianness of the platform. This reduces the number of template specializations required.</li>
137 <li>Headers have been reorganized to make them easier to read,
138 with a synopsis at the front and implementation following.</li>
139 </ul>
140 </blockquote>
141 <hr>
142 <p>Last revised:
143 <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->19 January, 2015<!--webbot bot="Timestamp" endspan i-checksum="38903" --></p>
144 <p>© Copyright Beman Dawes, 2014</p>
145 <p>Distributed under the Boost Software License, Version 1.0. See
146 <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/ LICENSE_1_0.txt</a></p>
147
148 </body>
149
150 </html>