Commit Graph

  • 321d5a087a For X86 and X64 architectures, which permit unaligned loads and stores, unaligned little endian buffer and arithmetic types use regular loads and stores when the size is exact. This makes unaligned little endian buffer and arithmetic types significantly more efficient on these architectures.(Pull request from Jeremy Maitin-Shepard) Docs updated, but timing results have not yet been updated. Beman 2015-01-06 16:57:53 -0500
  • 0cdcb5f048 Rename build directory to benchmark so will not automatically be built by b2 in boost-root. Beman 2015-01-05 07:16:49 -0500
  • c440b3b7da Update modification date. Explicit updated needed because of FrontPage bug. Beman 2015-01-04 09:26:49 -0500
  • a32c13451b Remove Release History details that are already covered by Mini-review page. Add FAQ for C++03 compiler support. Beman 2015-01-04 09:15:28 -0500
  • 08b5a27461 Add examples. Beman 2015-01-04 09:13:15 -0500
  • 04d079fa61 Refactor "Choosing the approach" into its own page. It was dominating the main home page, yet is really a topic for study after other material is absorbed. Beman 2015-01-02 10:46:53 -0500
  • ca8b904502 Minor edits. Update TOC. Beman 2014-12-31 10:32:47 -0500
  • 48f7363cd7 Minor wording refinements. Beman 2014-12-31 10:15:47 -0500
  • 4669f1b04b Add design patterns section Beman 2014-12-31 09:57:16 -0500
  • 25143c6b9a Clear Inspection Report problems. Beman 2014-12-17 17:48:54 -0500
  • 48ea9cc333 Beef up index.html TOC, add msg to publish.bat. Beman 2014-12-17 16:26:33 -0500
  • 79709fe054 Add additional use case Beman 2014-12-17 11:57:35 -0500
  • 25a00586a2 Replace local ref to boost.png with full URL so works for gh-pages and other environments where local ref is not available. Beman 2014-12-17 09:21:28 -0500
  • c1e46997c8 Initial commit Beman 2014-12-17 09:19:16 -0500
  • 5407a099d3 Add use cases Beman 2014-12-16 11:45:22 -0500
  • fb87b21a0d Minor edits. Beman 2014-12-16 10:17:40 -0500
  • d15b2fdb1c Refined rationale for choice of exact-length types for conversion support. Beman 2014-12-16 08:49:01 -0500
  • 6de2f69b77 Get MSVC 64-builds working under Visual Studio. Beman 2014-12-15 20:20:16 -0500
  • f3d0496fae Remove name_changes.sed. It was a development artifact. Beman 2014-12-15 08:53:59 -0500
  • 05ea08995c Pass through index.html making corrections and editorial changes. Beman 2014-12-15 08:40:35 -0500
  • e8530e4563 Add FAQ entry for built-in integer names. Beman 2014-12-11 12:05:31 -0500
  • 971ba888d6 Decompose Reversible into EndianReversible and EndianReversibleInplace. Beman 2014-12-11 11:41:44 -0500
  • 6c173766e3 Eliminate gcc -Wconversion warnings. Beman 2014-12-10 15:03:06 -0500
  • dcde9463fc Do not define _SCL_SECURE_NO_WARNINGS or _CRT_SECURE_NO_WARNINGS if already defined (such as on the command line), plus related cleanups. Beman 2014-12-10 10:26:49 -0500
  • 66a7a0bfac Minor editing tweaks. Beman 2014-12-10 09:58:01 -0500
  • c201455c84 Change "in_place" to "inplace". Rationale: shortens names without impacting expressiveness. Beman 2014-12-10 09:39:03 -0500
  • 2cbcd6f7d3 Rename "runtime_conditional_reverse" to "conditional_reverse". The differing number of arguments is sufficient to disambiguate the compile-time and run-time overloads. Beman 2014-12-10 09:26:47 -0500
  • 51b990eb50 Add associated-files.vcxproj and related infrastructure so Visual Studio IDE find-in-files and replace-in-files works for associated files like headers and HTML files. Beman 2014-12-10 09:00:43 -0500
  • c8d4ab2d11 Add comment about Requirements so it won't be forgotten. Beman 2014-12-10 08:40:56 -0500
  • dcca2835a9 Rename "reverse_endianness" to "endian_reverse". Shorter but still plenty explicit. See bikeshed.txt for alternatives considered. Beman 2014-12-10 08:30:30 -0500
  • e4466edf4e Drop the _unless_big and _unless_little functions. KISS. They were confusing, and less confusing names were never found. Beman 2014-12-09 20:43:47 -0500
  • 55a65c3806 Revert to again supply the reverse_endianness_in_place template. This has the effect of providing a default reverse_endianness_in_place for user-defined types. Add error checking for UDT's to verify this works as desired. Provide a note in the conversion docs to that effect. Beman 2014-12-09 11:36:42 -0500
  • a0b5805b73 Minor namespace detail cleanup. Beman 2014-12-09 07:38:04 -0500
  • 7b86b251d7 Change example to use buffers as arithmetic is not needed. Beman 2014-12-09 07:13:55 -0500
  • 4b6019c82e Use hex in literal for value where octal is confusing. Beman 2014-12-09 07:10:25 -0500
  • f0532a3854 Improve comments. Beman 2014-12-09 07:08:41 -0500
  • 28fd6ef4b0 Bring docs in sync with implementation. Still somewhat incomplete. Beman 2014-12-09 07:04:48 -0500
  • f96cec4f17 Work-in-progress on endian_buffer docs. Beman 2014-12-06 08:16:35 -0500
  • 7a77827a71 Current very unstable state. Beman 2014-12-05 09:50:45 -0500
  • db16b51b41 Tweak comments. Beman 2014-12-05 09:05:05 -0500
  • b6c9150aea Doc tweeks. Beman 2014-12-05 09:03:17 -0500
  • 439207b388 Add conversion_use_case Beman 2014-12-05 09:01:59 -0500
  • e2045b7ffa Finalize buffer and arithmetic decomposition. Finalize name changes. Finalize test cases. Remove cruft. Docs still to do. Beman 2014-11-26 10:04:33 -0500
  • bb785ed8e0 UDT tests added. Passing on Windows, all local compilers. Beman 2014-11-25 11:31:30 -0500
  • 7b119ba0ee Add full set of modify in place tests. Beman 2014-11-25 09:58:59 -0500
  • 56103a7bc6 Finish conversion.hpp cleanup after name changes. conversion_test.cpp return-by-value tests reorganized and passing. UTD and in-place tests still to come. Add doc/bikeshed.txt to keep record of naming rationale. Beman 2014-11-24 10:04:23 -0500
  • 4197f996ac More conversion.hpp fixes. Some, but not all, conversion_test tests passing. Beman 2014-11-23 10:38:21 -0500
  • ce73f59741 Add "_endianness" to the names of the two customization points. These names must be defined in user namespaces (for ADL to work) and so must be much more explicit than names that are defined in namespace endian. Beman 2014-11-23 08:40:58 -0500
  • f9c562b4b4 Rework conversion.hpp: Make the UDT customization point for the value returning conversion functions much more explicit. Provide a separate UDT customization point for the in-place conversion functions, and reverse_in_place() overloads for the built-in arithmetic types. Eliminate the unsafe general-use reverse functions. With explicit customization points these are no longer needed. Complete the renaming of conversion functions started in the prior commit. The reverse and reverse_in_place names are much more meaningful and less likely to be misunderstood. The longer "reverse_in_place" name will hopefully at least slow users down before inappropriate (and possibly unsafe use, such as when trying to recover data after an exception). Beman 2014-11-22 16:27:11 -0500
  • 49a91c293a Rename endian_buffer typedefs. New names a bit longer, but also a bit more explicit and more obviously related to endian_arithmetic typedefs. Beman 2014-11-21 15:49:28 -0500
  • 84faaa7bbf Rename the conversion functions to discourage unthinking use of the in-place versions as these are unsafe in that they effectively break the type system by treating the buffer as an undescriminated union. Remove the synonym functions based on names popularized by BSD, OS X, and Linux since these are permitted to be implemented as macros, which would cause endless difficulties if encountered. Beman 2014-11-20 15:38:25 -0500
  • 8a9ea6747d Preliminary doc changes to reflect addition of buffers. Beman 2014-11-19 15:58:15 -0500
  • fc7733ade1 Major renaming. Class "endian" becomes class "endian_arithmetic" to mimic the C++ standard's description of such types as "arithmetic types". Rename header accordingly. The convenience typedefs have been changed shorten aligned names, as they are often being, but keeping the unaligned type names relatively short via a simple "_ut" suffix. Beman 2014-11-19 10:53:11 -0500
  • 61d9046348 Remove "operator value_type() const noexcept" from buffers. Make the buffer ctor explicit. Buffers were requested by people who do not want automatic conversions because they want full control over conversions, and are very concerned about "efficiency". Beman 2014-11-18 14:33:31 -0500
  • 221ad3c585 Add use_cases.cpp Beman 2014-11-18 10:05:45 -0500
  • e9f6d2c37c Re-implement the endian types by inheriting from endian_buffer. Beman 2014-11-15 21:04:19 -0500
  • 561d8f7070 Initial commit buffers.hpp and related infrastructure. A separate buffer class without arithmetic operators was requested during the formal review. Beman 2014-11-15 08:02:08 -0500
  • f8e60ae4e9 Switch to VC++ 2014, and clear a resulting shadow warning. Beman 2014-11-14 14:23:36 -0500
  • 31f930330d Refine "Choosing between endian types and endian conversion functions" docs. Beman 2014-11-14 09:52:44 -0500
  • fd1ab6daff Add additional ambiguity detection. Beman 2014-11-13 13:10:57 -0500
  • c755a6b6af Add overall css style sheet for more uniform presentation and ease of maintenance. Beman 2014-11-12 08:26:01 -0500
  • c41521cead For the endian types, add stream inserters and extractors as requested during the formal review. Beman 2014-11-11 21:08:08 -0500
  • a1be441f8f Initial commit Beman 2014-11-11 10:50:12 -0500
  • 4c58fc2efa Clear [-Wunused-parameter] warnings (Roger Leigh) Beman 2014-08-29 08:12:16 -0400
  • 2ebb04e1df Merge pull request #5 from danieljames/metadata Beman Dawes 2014-08-22 21:55:12 -0400
  • fff254cbc2 Add metadata file. Daniel James 2014-08-21 20:30:29 +0100
  • 72a9095a03 Fix tests that were backwards on big endian machines. Thanks to Lars Viklund for testing on three different big-endian systems. Beman 2014-08-15 18:07:12 -0400
  • 4cfeb52325 Fix broken link. Beman 2014-08-15 13:11:37 -0400
  • f1dc05db63 Replaced deprecated macro with BOOST_NO_CXX11_DEFAULTED_FUNCTIONS Beman 2014-08-15 13:10:58 -0400
  • e2e99a2e43 Rename to meet boost file name guidelines. Beman 2014-08-15 12:59:23 -0400
  • aaf862a370 Remove files left over from development. Beman 2014-08-15 12:56:56 -0400
  • e609015dd6 Some IDE generated files and directories violate boost guidelines, so ignore. Beman 2014-08-15 12:01:05 -0400
  • 49866e0784 Update the README for the boostorg repo. Beman 2014-08-15 11:12:19 -0400
  • 17ca240b10 Use boost/predef/detail/endian_compat.h to determine endianness. Beman 2014-08-15 10:59:49 -0400
  • ea44132749 Add native float tests. Beman 2014-08-13 14:02:09 -0400
  • f489fad5e0 Also add aligned float types. Add docs. No tests yet. Beman 2014-08-13 13:44:28 -0400
  • 8ea7d201f9 native_float32_t and native_float64_t, fixing issue #2. Beman 2014-08-13 13:23:11 -0400
  • 62943e150e Do a pass through docs, bringing up to date where needed. Beman 2014-08-12 10:34:37 -0400
  • 071099b656 Remove commented out code residue from treating native as a synonym for big or little. Beman 2014-08-12 08:29:24 -0400
  • d31caa413c Add types native synonyms. All tests now passing, at least on a little endian machine. Beman 2014-08-11 17:17:50 -0400
  • 8e5cd7dfc4 Treat "native" as synonym for "big" or "little" according to platform endianness, as suggested by Vicente J Botet. Converter_test working. Beman 2014-08-11 16:21:04 -0400
  • 108a0a6d90 Update to reflect Boost moving to git and GitHub. Beman 2014-08-11 10:12:53 -0400
  • f2dad97c44 Upgrade to msvc 2013. Rename msvc2012 to msvc so directory doesn't have to be renamed each msvc release. Beman 2014-08-11 10:01:24 -0400
  • 05ac935450 Update done list. Beman 2014-05-16 17:15:01 -0600
  • 8c36890e77 Test and doc updates for Pierre Talbot's int8_t/uint8_t reverse_value() and templated reverse() patch. Beman 2014-04-16 13:52:24 -0400
  • 11fc1ea374 Add overloads for int8_t and uint8_t (rational: useful with generic programming). Template the reverse function (same body in each overloads). Pierre Talbot 2014-01-22 18:09:50 +0100
  • d339470e6e Remove "explicit" from Endian type constructors. Rationale: Having to write "cntr.insert(big_int32_t(value))" instead of "cntr.insert(value)" gets old fast when you are writing application code and the use case arises more or less continuously. Additionally, the use of an endian type is an implementation detail that should not leak into the application code that needs to create values of the type. Furthermore, the ambiguities that caused the constructors to be made explicit no longer occur; they were eliminated when BOOST_MINIMAL_INTEGER_COVER_OPERATORS was introduced to removed a dependency on boost/operators.hpp. If an ambiguity does arise, it is easy to clear via a static_cast or a function-style cast. Beman 2013-09-06 10:36:54 -0400
  • 22728f62e2 Add breaking changes heads up Beman 2013-09-01 09:10:00 -0400
  • 79391248e0 Add the build .bat files as a maintenance aid. Beman 2013-09-01 08:44:27 -0400
  • 016d3b2e7c Rename the endian typedefs. Rationale: Subjective - during three months working on the B-tree library, the *un_t names were a constant source of irritation. Objective - the new scheme, which reverts the *un_t names to having no alignment decoration, provides consistent *_align* decoration for both FP and integer types. Also, the library now provides conversion functions which may reduce use of aligned endian types. Beman 2013-09-01 08:40:32 -0400
  • d1d62f3adc Use detail::reverse_value() to implement reverse_value() for float and double, thus eliminating type-punning warning from gcc. Beman 2013-06-07 15:46:14 -0400
  • a40d580782 Get 64-bit builds working. Update timings to reflect 64-bit build. Beman 2013-06-06 08:00:28 -0400
  • 944bf285fa Alignment of 64-bit integers on a 32-bit system may be to a 32-bit boundary! Beman 2013-05-30 10:07:43 -0400
  • 74b122c581 Alignment of 64-bit integers on a 32-bit system may be to a 32-bit boundary! Beman 2013-05-30 10:07:16 -0400
  • cd985897e6 By default use a shorter test, but add coverage of the aligned types. Beman 2013-05-30 09:19:42 -0400
  • 30c44461f6 Only do relational tests if signedness is the same, to quiet GCC warnings. Start using lightweight test. Beman 2013-05-30 08:57:09 -0400
  • 2fee60f99b Copy from README Beman 2013-05-29 10:37:44 -0400
  • db3864b3d4 Fix boo boos detected by inspect program. Beman 2013-05-29 09:40:35 -0400
  • 457ed73778 Add more UDT use examples. Link to UDT example in conversion function docs. Beman 2013-05-29 09:04:31 -0400
  • fbedc9bb9f Remove another bin_manip file. Note that all the bin-manip files have been copied to git@github.com:Beman/bin-manip.git Beman 2013-05-29 08:36:40 -0400