-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merging format #1821
Merging format #1821
Conversation
feature/format: Merge VS 2019 16.8 Preview 1 toolset update
feature/format: Merge Standard_D16as_v4 VM update
feature/format: Merge VS 2019 16.8 Preview 2 toolset update
Merge master into feature/format.
feature/format: Merge toolset update
… classes (microsoft#1232) * add format header * add tests to build * add format_arg_value and custom_value. * more format parser * parse align * fill/align parsing tests. * arg_id and width * tests for arg_id, quite basic right now * correct a spelling error * add <format> to other required files * resolve some review comments * respond to review comments * start conversion to string_view * some tests for width * enable wchar_t * constexprify tests. * tests for non-parsing is todo * forgot a bit of named args that needed removal. * remove a requires clause and use brief syntax. * newlines * use concepts_matrix. * some review comments were hiding from me * fix wchar_t misparse bug * Apply suggestions from code review Co-authored-by: Casey Carter <cartec69@gmail.com> * Apply suggestions from code review Co-authored-by: Casey Carter <cartec69@gmail.com> * move test coverage todo * more review comments * fix test string numbering * comment on narrowing test case * fix minor issues Co-authored-by: Charles Barto <barto.charlie@gmail.com> Co-authored-by: Casey Carter <cartec69@gmail.com>
Hand-correct trivial conflict in `tests/std/tests.lst` due to the addition of tests at the same place in both branches.
feature/format: Merge CI update to pick up microsoft#1337. There was a minor merge conflict in `test/std/test.lst` due to the addition of tests on both branches.
* add parse_precision. * adopt style review comments. * add more tests for exceptions. * test constexpr precision too * address some more review comments Co-authored-by: Charles Barto <barto.charlie@gmail.com>
feature/format: Merge toolset update
feature/format: Merge toolset update
* add parse_precision. * adopt style review comments. * add parse format spec * add tests for parse_format_specs * actually call the test functions. * fix tests. * test the return value of _Parse_format_specs * added more tests for parse_format_specs. * address review comments. * make "we're not done yet" a precondition for _Parse_align. * remove test that voilates new preconditions on _Parse_align. Co-authored-by: Charles Barto <barto.charlie@gmail.com>
feature/format: Merge toolset update
feature/format: Merge toolset update
feature/format: Merge CI update
Merge master into feature/format
feature/format: Merge toolset update
feature/format: Merge LLVM update
* charconv internal functions for wchar_t buffers * fill_n for zero filling * code review feedback - actually call wide Ryu functions - Widen __[df]2s_buffered_n - Don't wrap memcpy calls. - Use ternary operator and cast for static widen. - Restore _CSTD memcpy. * Test digit pairs with a static table. Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
* Noralize next_arg_id * Add precondition check to basic_format_parse_context::advance_to and debug optimization * ensure basic_format_parse_context::check_arg_id is not a constant expression * Add tests for basic_format_parse_context * Fix constant expression check * windsdk is bad * Use a non constexpr function call with a better name Co-authored-by: S. B. Tam <cpplearner@outlook.com> * Reverse the polarity Co-authored-by: S. B. Tam <cpplearner@outlook.com> Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Pack format_arg_store tightly. * Noralize next_arg_id * Add precondition check to basic_format_parse_context::advance_to and debug optimization * ensure basic_format_parse_context::check_arg_id is not a constant expression * Add tests for basic_format_parse_context * Fix constant expression check * Use a non constexpr function call with a better name Co-authored-by: S. B. Tam <cpplearner@outlook.com> * Create a packed _Format_arg_store * We want bits not bytes * Dont use friendship * Remove all int128 code * Who doesnt hate max/min * Copy&Paste does not like ODR * Address review comments Co-authored by: Casey Carter <cacarter@microsoft.com> * Minor fixes * Move make_format_args down * Use auto * Some more fixes * Everyone can be a wchar_t if he just believe in it * Add {unsigned} long tests * Int is in our hearts * Remove duplication * Move _CharType alias into function to unblock the build * First round of review comments * Use variable template rather than a function * Add warning * Make a proper constructor of _Format_arg_store * Use a single contiguous array to store the `_Format_arg_store` data * Specialize empty `_Format_arg_store` * More review comments * Fix uninitialized memory * Properly initialize the first Index Co-authored-by: S. B. Tam <cpplearner@outlook.com>
feature/format: Merge toolset update
feature/format: Merge VMSS update
* add parse_precision. * adopt style review comments. * actually call the test functions. * add parse_precision. * adopt style review comments. * add parse format spec * add tests for parse_format_specs * initial commit for string_parsing * remove duplicate test frunctions * on_text and some on_format_specs * add basic_format_specs and the formatter dispatcher. * forgot a semicolon. * now we need to do _Write... :| * more work on format checkers * add _Format_arg_type_to_enum * add char* writer * make it compile * flesh out format_args_store. * don't need overloaded * get rid of a bunch of declvals. * compile vformat (does not link) * make width and precision unsigned int internally (instead of int) * add some comments for shat the various helpery classes actually do. * formatting (heh) fixes. * uncomment and fix requirement for _Parse_replacement_field_callbacks * don't write out the entire format string when encountering a replacement field. * resolve some code review comments * fix merge artifacts, convert from _Type to _Basic_format_arg_type * address code review comments * alphabatize test.lst * static_cast<unsigned int>(0) instead of unsigned{} * remove dead _STL_INTERNAL_CHECK and find in the correct range Co-authored-by: Charles Barto <barto.charlie@gmail.com>
* add tests for various escaped curlies and simple text. * better comment in _Parse_format_string Co-authored-by: Casey Carter <cartec69@gmail.com>
…icrosoft#1675) * intial replacement field tests (and numeric arg indexing)
I've pushed a merge with |
Thanks to everyone who worked on implementing this major feature! 🎉 😻 🚀 |
Thank you everyone! I've been waiting for that |
Belated approval: everything looks acceptable to me (which is no great surprise, since I've reviewed most of this already, and worked on some of it). |
<format>