Update dependency microsoft/STL to v17 (maint) - #11499
Conversation
|
|
CT Test Results 3 files 136 suites 50m 33s ⏱️ Results for commit eb5d577. ♻️ This comment has been updated with latest results. To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass. See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally. Artifacts
// Erlang/OTP Github Action Bot |
Renovate Ignore NotificationBecause you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR. |
This PR contains the following updates:
msvc-build-tools-14.50→17.14Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
microsoft/STL (microsoft/STL)
v17.14: VS 2022 17.14Compare Source
atomic<cv T>, Specifyatomic_ref<cv T>_MSVC_STL_HARDENINGto1project-wide.__fastfail()for hardened precondition violations._MSVC_STL_DESTRUCTOR_TOMBSTONESto1project-wide.optionalandexpected)co_yielding elements of an lvaluegeneratoris unnecessarily inefficientallocator_arg_toverloads ofgenerator::promise_type::operator newshould not be constrainedstd::uninitialized_move/_nand guaranteed copy elisionchrono::parseusesfrom_streamas a customization pointstd::subtract_with_carry_enginecodepossibly-const-rangeshould prefer returningconst R&std::fixedignoresstd::uppercasehas-arrowshould requireoperator->()to beconst-qualifiedgenerator::promise_type::yield_value(ranges::elements_of<R, Alloc>)'s nestedgeneratormay be ill-formedzoned_timewith resolution coarser than secondsstd::eraseforlistshould specify return type asboolunique_ptr<T&, D>std::atomic<T>'s default constructor should be constrainedunique_lockself-move-assignment is brokenoptional::value_orshould never return a cv-qualified typesystem_category().message()to prefer US English, followed by the system locale, with an ultimate fallback ofFormatMessageA's behavior fordwLanguageId == 0. #5104generic_category().message()(which always returns US English in our implementation) and has the best chance of returning something intelligible instead of"unknown error"or"???".regex's behavior:R"([\d-e])". #5158\Dfor non-digits,\Sfor non-whitespace,\Wfor non-words) when matching against Unicode characters:basicgrammar to parse a single digit for backreferences. #5167.(dot). #5192filesystem::equivalent()to return correct results when shared folders are involved. #5130chrono::weekday's constructor to avoid integer overflow for extreme inputs. #5156push_range()forstack,queue, andpriority_queueto forward the range toc.append_range()when possible, exactly as depicted in the Standard. #5168ranges::beginandranges::endexactly as depicted in the Standard:ranges::to. #5173range_formatter. #5178range_formatterinvolving highly unusual contiguous ranges. #5187views::countedinvolving highly unusual types. #5223this_thread::sleep_for()with extremely small units (e.g. picoseconds). #5237basic_string::reserve()'s ASan annotations to detect writes to its unused capacity. #5252<format>handles field width for alternate form general floating-point. #5261basic_ispanstreamfrom a modifiablebasic_string. #5309<format>in a CUDA project, by adding a compiler bug workaround. #5335basic_const_iterator. #5325basic_string::find()for a character. #5101basic_string::find_first_of()andbasic_string::find_last_of(). #5029regex_traits::translate()is now an identity function, as required by the Standard, instead of an expensive locale operation. #5209static operator()in earlier Standard modes, slightly improving codegen. #5284 #5312minstd_randandminstd_rand0random number engines by avoiding constant divisions. #5256move_only_function's constructors to do less work when setting the object to be empty. #5328std::expected,std::unexpected, and all STL exception types are now marked[[nodiscard]]. #5174locale::empty()static member function. #5197is_trivial, which is being deprecated in C++26. #5202basic_string_viewand its iterators by suppressing irrelevant pointer values. #5176basic_stringand its iterators are implemented. #5177ctest. Now we always directly invokestl-lit.py. #5169basic_string::reserve()andvector::reserve(). #5241libcxxtests in response to a new compiler warning C5321, which warns when the resolution to CWG-1656 affects au8string literal. #5283[[likely]]and[[unlikely]], which are discouraged by the compiler team. #5255_MSVC_STL_UPDATE. #5162 #5217 #5264 #5323v17.13: VS 2022 17.13Compare Source
<generator>: Synchronous Coroutine Generator For Rangespmr::generator<print>std::printMore Types Faster With Less Memorydeque::shrink_to_fit(). #4955unique_ptrs (storing fancy pointers) from unspeakably evil relics of the forgotten past. #4922ranges::inplace_mergewith certain combinations of elements, projections, and comparisons. #4927basic_ispanstream's constructor andbasic_ispanstream::span()takingReadOnlyRange&&with highly unusual types. #4938basic_stringandbasic_string_view'sfind_first_of()family of member functions for program-defined "unicorn" character types. #4951optionalfrom highly unusual types. #4961vector::emplace_back()) to avoid emitting "warning C5046: Symbol involving type with internal linkage not defined" for highly unusual types. #4963 #4980list/forward_list::remove/remove_if/unique(). #4975variant's converting constructor and converting assignment operator for certain types. #4966bitset's streaming operatoroperator>>(basic_istream<CharT, Traits>&, bitset<N>&)to use the stream'sTraitsto compare characters. #4970basic_stringandlist's internal constructors to avoid disrupting highly unusual scenarios. #4976packaged_taskfrom a move-only function object. #4946/fp:fast, fixed<cmath>and<limits>to avoid emitting-Wnan-infinity-disabledwarnings, except whennumeric_limits::infinity()/quiet_NaN()/signaling_NaN()are specifically called. #4990ranges::copy_nto properly handle negative values of n (as a no-op) when activating ourmemmove()optimization. #5046memmove()optimization (used bycopy_n(),ranges::copy_n, and more) to avoid emitting compiler warnings with certain iterators.filesystem::directory_entry::refresh()to avoid sporadically failing for nonexistent network paths on Windows 11 24H2. #5077basic_istream::get()andbasic_istream::getline()to never write a null terminator into zero-sized buffers, and to always write a null terminator otherwise. #5073assign_range()for sequence containers tostatic_assertthat the container elements are assignable from the range's reference type. #5086views::iotain certain scenarios. #5091basic_string::find_first_of(). #4744basic_string::find_last_of(). #4934basic_string::find()for a substring. #5048basic_string::rfind()for a substring. #5057basic_string::rfind()for a single character. #5087search(),ranges::search, anddefault_searcher, for 1-byte and 2-byte elements. #4745find_end()andranges::find_end, for 1-byte and 2-byte elements. #4943 #5041 #5042bitset's constructors from strings. #4839remove()andranges::remove. #4987ranges::minmax, now activated for 1-byte and 2-byte elements. #4913minmax_element()andminmax()algorithm families. #4917 #5016swap()andranges::swapfor arrays. #4991adjacent_difference(). #4958 #5061 #5079 #5097rangesalgorithms now unwrap output iterators, avoiding unnecessary checking. #5015 #5027bitset's streaming operators. #5008println(FILE*),println(ostream&), and nullaryprintln(). #4672arrayandvector's spaceship comparison operators to take advantage of the vectorized implementation oflexicographical_compare_three_way(). #5078filesystem::symlink_status()by avoiding unnecessary Windows API calls. #5071<ostream>(which drags in<format>) unless the Standard requires it. #4936<queue>,<stack>,<stacktrace>, and<thread>by not including all of<format>. #5003system_clock,high_resolution_clock, andchrono_literalsfrom a commonly-included internal header to<chrono>. #5105chronotypes likesystem_clockor UDLs like1729ms, you need to include<chrono>specifically, instead of assuming that headers like<thread>will drag it in.pairconstructor to beprivate. #4979memcpy()call in thefilesystemimplementation (that was intentionally performing a read overrun) with two cromulentmemcpy()calls. #4933system_clock::time_point. #5005vectormachinery to use scope guards instead ofthrow;, making debugging easier when exceptions are thrown. #4977regex_error::what()'s message forregex_constants::error_badbrace. #5025optional<T>::swap()'sstatic_assertmessages whenTisn't both move constructible and swappable. #5065locale::id's non-Standard constructor fromsize_tand implicit conversion operator tosize_t. #5067mutexassertions to distinguish "unlock of unowned mutex" from "unlock of mutex not owned by the current thread". #5099timed_mutextest. #4973psutilis installed, the test harness now supports apriorityparameter, defaulting toidle. #5032swap_ranges()benchmark by adding allocators to control alignment. #5043mismatch(),lexicographical_compare(), andlexicographical_compare_three_way()into a separate test. #5063packaged_task's defaulted move constructor and move assignment operator asnoexcept. #4940tuple-likeandpair-likeconcepts. #4983if constexprto simplifyeldritch horrors from beyond spacetimelocale facets. #5001basic_string::find_first_not_of()/find_last_not_of(). #5006bitset::to_string(). #5013list's move assignment operator. #5024_MSVC_STL_UPDATE. #4926 #4994 #5064v17.12: VS 2022 17.12Compare Source
generate_canonical()inoutexpectedspanstd::ignoreA First-Class Objectrange-default-formatter. #4716formatterfor the container adaptorsstack,queue, andpriority_queue. #4825charto sequences ofwchar_tstd::basic_format_contextbe default-constructible/copyable/movable?compatible-joinable-rangesis underconstrainedviews::as_rvalueshould reject non-input rangesviews::iota(views::iota(0))should be rejectedviews::adjacent<0>should reject non-forward rangesbasic_format_argsshould not be default-constructible<=>/W4 /analyzeclean, but does not yet attempt to be clean with respect to all additional static analysis rulesets.atomic_ref::is_lock_free()on x64 to returntruefor 1, 2, 4, 8, and 16 bytes only. #4729uniform_real_distribution<RealType>{min, max}to stay within the inclusive-exclusive range[min, max)and never generate themaxvalue exactly. #4740filesystem::weakly_canonical()to avoid failing on Windows 11 24H2 in certain scenarios. #4844condition_variable_any::wait_for()to consistently usesteady_clock. #4755ranges::view_interface. #4835move_iteratorto use the updated name of its internal data member. #4836expectedto conditionally delete its copy constructor and copy assignment operator as depicted in the Standard, which affects overload resolution in unusual scenarios. #4837time_put/put_time()to avoid crashing for:tmfields. (Now they're replaced with a?character.) #4883ranges::inplace_mergeandranges::minmaxin unusual scenarios. #4841conjunctionanddisjunctionwith non-bool_constantarguments. #4846ptrdiff_t. #4898array::size()and<mdspan>static analysis annotations, fixing warnings in some scenarios. #4856lexicographical_compare_three_way()to enforce the Standard's mandate that the comparison returns a comparison category type. #4878inclusive_scan(),exclusive_scan(),transform_inclusive_scan(), andtransform_exclusive_scan()when the intermediate and output types are different. #4701ranges::min,ranges::max, andranges::minmaxto return correct results for negative zeros. #4734constexprvariantscenarios by adding a compiler bug workaround. #4903<random>machinery (e.g.generate_canonical(),uniform_real_distribution) via Standard Library Modules or Standard Library Header Units by adding compiler bug workarounds. #4906<format>machinery in user-defined modules by adding compiler bug workarounds. #4919<format>to avoid crashing when formatting floating-point values with large precisions combined with the#(alternate form) orL(locale-specific form) options. #4907condition_variableandcondition_variable_any, improving their performance and simplifying their implementation. #4720condition_variable,timed_mutex, andrecursive_timed_mutexare now trivially destructible.search(),find_end(), and theirrangesforms by removing calls tomemcmp()that were surprisingly harmful. #4654 #4753popcount()by using new compiler intrinsics. #4695 #4733minmax_element()andminmax()algorithm families. #4659 #4739ranges::min,ranges::max, andranges::minmaxfor certain iterator types. #4775/arch:SSE2(which is the default) instead of/arch:IA32. #4741/arch(x86) on Microsoft Learn.<cmath>'s floating-point comparison functions for mixed types. #4648atomic_ref<16 bytes>now always uses the cmpxchg16b instruction. #4751bitsetto abasic_ostreamnow avoids dynamically allocating memory. #4818<atomic>. #4870char_traits<wchar_t/char16_t>::compare/find/length,find, andranges::findto callwmemcmp/wmemchr/wcslenwhen possible, which will improve performance after a future UCRT header update. #4873 #4894strings andstring_views. #4904<queue>and<stack>throughput by dragging in fewer headers. #4707variant's Converting Constructor/Assignment is now unconditionally active (i.e. in C++17 mode and above), instead of being restricted to C++20 mode and above. #4713map/setnodes to use scope guards instead ofthrow;, making debugging easier when exceptions are thrown. #4749gcd()andlcm()for precondition violations. #4776min,max,clamp,ranges::min,ranges::max, andranges::clamp, allowing MSVC code analysis and Clang-Wdanglingto detect dangling references in improper usage. #4838vector::pop_back()to be guarded by_CONTAINER_DEBUG_LEVEL. #4849views::iotaandviews::repeatto provide better IDE guidance. #4908operator newandoperator deleteoverloads in both release and debug mode. #4916<any>,<optional>, and<variant>. #4713std::views::repeatdoes not decay the argument". #4748bitset::to_string(). #4817libcxxtest suite. #4721 #4732 #4911ranges::ends_with's Returns misses difference casting". #4897rand(), which is considered harmful. #4921GetCurrentPackageId. #4742ranges::equalcompares sizes. #4864/Zc:preprocessorto build the STL with the conformant preprocessor. #4886_MSVC_STL_UPDATE. #4706 #4708 #4754 #4872v17.11: VS 2022 17.11Compare Source
polymorphic_allocator::destroyprintln()formatterforpairandtuple. #4438 #4631 #4681range_formatter. #4642codecvt<charN_t, char8_t, mbstate_t>incorrectly added to localeenumerate_viewmay invoke UB for sized common non-forward underlying rangesstd::basic_string_viewcomparison operators are overspecifiedranges::to's recursion branch may be ill-formedcommon_view::begin/endare missing thesimple-viewchecklazy_split_view::outer-iterator::value_typeshould not provide default constructorcontainer-insertablechecks do not match whatcontainer-inserterdoessingle_viewshould provideemptystd::views::repeatdoes not decay the argumentrepeat_viewshould repeat the viewcondition_variable::wait_until()andcondition_variable_any::wait_until()to consistently use the giventime_point's clock type, instead of also depending on the system clock. This also fixedcondition_variable::wait_for()to consistently usesteady_clock. #4457<format>to always perform compile-time format string checking forwchar_t, even when the narrow execution character set doesn't support it. #4459constexpr basic_stringinteracted with the undocumented compiler option/d1initall. #4474atomic_reffor 16-byte objects to correctly reportis_lock_free()andis_always_lock_freeon x64 (when the optional mode_STD_ATOMIC_ALWAYS_USE_CMPXCHG16Bis defined to be1) and ARM64 (always). #4478ranges::findwithunreachable_sentinelas it was fundamentally incompatible with ASan (Address Sanitizer). #4486ranges::find_lastfor certain combinations of value and element types. #4561/ZIcompiler option (debug info for Edit and Continue) is used. #4487pairandtuplemachinery. #4488make_from_tuple()to properly implement LWG-3528 with a constraint instead of astatic_assert. #4528<cmath>'s classification functionsfpclassify(),isfinite(),isinf(),isnan(),isnormal(), andsignbit(). #4537is_trivialto correctly handle unusual types. #4576__vectorcallfor ARM64EC, where it is not yet supported. #4600std.ixxto include<intrin.h>in the Global Module Fragment, fixing compiler errors withimport std;in certain scenarios. #4626formattercallsbasic_format_parse_context::next_arg_id()with an empty format-spec. #4640<expected>in/permissivemode. #4658/permissivemode is discouraged, it's currently supported for most STL components.expected's constructors in certain scenarios. #4664pair's self-swap()behavior to follow the Standard by self-swapping its elements. #4674atomic<void*>andatomic_ref<void*>to providedifference_type. #4689replace_copy(),replace_copy_if(),ranges::replace_copy, andranges::replace_copy_if. #4431iota(). #4627ranges::iota. #4647find_first_of()andranges::find_first_of. #4466 #4557 #4563 #4587 #4623mismatch()andranges::mismatch. #4495 #4538 #4584replace()andranges::replacefor 32-bit and 64-bit elements. #4554 #4584lexicographical_compare(),ranges::lexicographical_compare, andlexicographical_compare_three_way(). #4552count(),find(),ranges::count,ranges::find, andranges::find_last. #4570 #4614<cmath>'s floating-point classification and comparisonfunctions: #4612
isfinite(),isinf(),isnan(),isnormal()isgreater(),isgreaterequal(),isless(),islessequal(),islessgreater(),isunordered()normal_distribution::operator()(engine, param)by avoiding unnecessarily recomputing coefficients. #4618<mdspan>throughput by using short-circuitingconjunction_vinstead of fold expressions. #4559<string_view>throughput by no longer dragging in most of<string>'s contents. #4633formatter<UDT>::format()isn'tconst. [#&[erlc] Very long compilation time for nested record accesses in guards #8203Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.