Dear Boost Community,I am very> happy to open the Formal Review> period for Candidate Boost.Int128> authored by Matt Borland, running> from today, July 22nd to July> 31st 2026. Here is my review of theproposed Boost.Int128. Thank you Matt for writing theproposed Int128 and Arnaud formanaging the review. **I recommend the proposed Int128to be unconditionally ACCEPTEDto Boost.** The proposed Boost.Int128 fillsan asymmetric gap in popular,existing compiler implementations.Today's patchwork support for128-bit integers is incomplete,and architecturally incompatibleamong platforms. Yet the datatype is very frequently used inengineering, scientific andmathematical domains. A fundamental component thatis widely used is not uniformlyunavailable at the moment.This may evolve in the future,but the gap at the moment existsand will cause discrepanciesfor years. The proposed Boost.Int128 evensout this asymmetry and providesa uniform, high performanceinterface to 128-bit integraltypes. The types attempt tobehave properly in the senseof intuitively mimicking thebehaviors of built-in integraltypes. This is done in a drop-in,convenient, header-only fashion. Evaluation of the design? The design is clear. It works.Care has been taken to separateindividual library parts forinclusion as needed. Platform-dependent optimizations(and these are definitely present)are well-separated and transparentto the consumer. The result is the intent - 128-bitsigned and unsigned integral typesthat behave as similarly as possibleto the behaviors of built-inintegral types. Evaluation of the implementation? The implementation is lucidlyclear. The component separationof the headers makes sense withinthe context of existing std libcomponents such as the types,charconv, functions, etc. Evaluation of the documentation? The documentation is complete,clear and is more than sufficientfor me. Evaluation of the usefulness? For me this lib is essential. This proposed library providesa uniform, portable, performant,platform-independent impl of(u)int128_t. It is designed to fill in onecrass, long-time, existing,uneven gap among popularcompiler impls. It does thisexcellently by providingcross-platform access to 128-bitintegral types. These types arepopular and used in numerousdomains. The library is in a relativelycomplete state. I feel confidentusing it and shipping it.As the library evolves, surelyedge-case weaknesses will bediscovered and corrected.But at the moment, it'sready-to-go. Use the library, effort?Knowledgeable about the domain? I've used the library activelyand deeply since its beginnings.I use it to fuzz and performstress-test comparisons withsome of my own separate,independent big integerimplementations. It is alsoinstrumental in the impl. ofBoost.Decimal, where edge-caseweaknesses have already beenfound and corrected. Specifically for this review,I set up a fun and educationalbenchmark: Boost.Int128 versuscomputer algebra, computingmillions of 128-bit prime numbers.This has stress-exercised binaryoperations, masking, shiftingand made heavy use of powm. As a final step I ported a fewsimple exercises to a bare-metal32-bit microcontroller systemhaving no OS and no inputoutput. What I tested workedfine.
I consider myself to be highlyknowledgeable in the domain. Further comments? There is already one 256-bitquery, and more or extendedqueries might follow. I suspect,however, that this library ispurposefully for 128-bit typesexclusively. Further typeswill probably need separateproposals. - Christopher Disclaimer: I'm multi-timecollaborator with the author.I am *not* affiliated withthe C++ Alliance. I havea few commits in Int128, butby no means consider myselfa co-author. On Wednesday, July 22, 2026 at 01:40:03 PM GMT+2, Arnaud Becheler via Boost <boost@lists.boost.org> wrote: Dear Boost Community, I am very happy to open the Formal Review period for Candidate Boost.Int128 authored by Matt Borland, running from today, July 22nd to July 31st 2026. Int128 is a portable C++14 implementation of signed and unsigned 128-bit integers. It has no dependencies, is header-only, and can be consumed as a module in C++20. You can find the library and its documentation here: - https://github.com/cppalliance/int128/tree/boost_review - https://develop.int128.cpp.al/overview.html I could make examples work in Compiler Explorer: https://godbolt.org/z/5aM6K9b4r Although possibly not faithful to Matt's implementation, this CE link will be handy if you are in a rush but want to play with the library. Candidate Boost.Int128 serves as a practical solution to the partial (resp. absent) support of 128-bit integers by gcc/clang (resp. msvc), and as an alternative to projects with a heavy dependency footprint. For example Boost.Multiprecision offers 128-bit integers but drags 25 Boost modules which may not be acceptable when only a single type is required. We can expect this new lightweight library to interest anyone manipulating integers beyond the 64bit numeric range, for simple problems like when summing many 64-bits integers in an accumulator, computing a*b/c where the intermediate product overflows 64 bits, or in complex fields like cryptography, hashing, random number generation, precision arithmetic... Note: Due to the Boost release cycle, the master branch is frozen on all Boost projects. This had the inconvenient effect of preventing Matt from operating a cross-repo PR to enable GPU support with Boost.Charconv. Due to the lack of a practical solution, the CI on master will remain red until 1.92 ships. We kindly ask reviewers to focus on the boost_review branch. As always, we welcome all reviews, from quick impressions to detailed analysis. Your feedback helps ensure that the library meets Boost's high standards for correctness, performance, documentation, and design. If you’re interested in contributing a review, please post to the Boost mailing list during the review period. In your review please state whether you recommend to REJECT or ACCEPT the library into Boost, and whether you suggest any conditions for acceptance. Other questions you might want to answer in your review are: - What is your evaluation of the design? - What is your evaluation of the implementation? - What is your evaluation of the documentation? - What is your evaluation of the potential usefulness of the library? - Did you try to use the library? With what compiler? Did you have any problems? - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? - Are you knowledgeable about the problems tackled by the library? Thank you for your time, Have a wonderful week, Arnaud Becheler, Review Manager Boost.Int128 _______________________________________________ Boost mailing list -- boost@lists.boost.org To unsubscribe send an email to boost-leave@lists.boost.org https://lists.boost.org/mailman3/lists/boost.lists.boost.org/ Archived at: https://lists.boost.org/archives/list/boost@lists.boost.org/message/GLZALH3W...