Skip to content

chore(deps): update dependency microsoft/stl to v17.14 (maint-28) #9967

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

Open
wants to merge 1 commit into
base: maint-28
Choose a base branch
from

Conversation

renovate-bot
Copy link
Contributor

@renovate-bot renovate-bot commented Jun 17, 2025

This PR contains the following updates:

Package Update Change
microsoft/STL minor 17.13 -> 17.14

Release Notes

microsoft/STL (microsoft/STL)

v17.14: VS 2022 17.14

Compare Source

  • Merged C++26 features:
  • Merged partial C++26 features:
    • P3471R4 #​5274 Standard Library Hardening
      • Currently disabled by default.
      • This can be enabled (for any Standard mode) by defining _MSVC_STL_HARDENING to 1 project-wide.
      • As C++26 Contracts are not yet implemented, this defaults to calling __fastfail() for hardened precondition violations.
  • Related behavior enhancement:
    • Implemented "destructor tombstones" to mitigate use-after-free mistakes. #​5318
      • Currently disabled by default.
      • This can be enabled by defining _MSVC_STL_DESTRUCTOR_TOMBSTONES to 1 project-wide.
  • Merged LWG issue resolutions:
  • Merged proposed resolutions for LWG issues (not yet accepted for the C++ Working Draft, but we've chosen to implement this speculatively):
  • Fixed bugs:
    • Fixed system_category().message() to prefer US English, followed by the system locale, with an ultimate fallback of FormatMessageA's behavior for dwLanguageId == 0. #​5104
      • This is consistent with generic_category().message() (which always returns US English in our implementation) and has the best chance of returning something intelligible instead of "unknown error" or "???".
      • This fixed a regression that was introduced by #​2669 in VS 2022 17.3.
    • Fixed regex's behavior:
      • To reject bogus character class ranges like R"([\d-e])". #​5158
      • For negated character class escapes (\D for non-digits, \S for non-whitespace, \W for non-words) when matching against Unicode characters:
        • Outside square-bracket character classes. #​5160
        • Inside square-bracket character classes (partially fixed). #​5214
      • For character ranges in case-insensitive mode. #​5164
      • For the basic grammar to parse a single digit for backreferences. #​5167
      • For its internal buffers to grow geometrically. #​5175
      • For the special character . (dot). #​5192
      • For its constructor to accept (null, zero) arguments. #​5211
    • Fixed filesystem::equivalent() to return correct results when shared folders are involved. #​5130
    • Fixed chrono::weekday's constructor to avoid integer overflow for extreme inputs. #​5156
    • Fixed push_range() for stack, queue, and priority_queue to forward the range to c.append_range() when possible, exactly as depicted in the Standard. #​5168
    • Fixed code to call ranges::begin and ranges::end exactly as depicted in the Standard:
    • Fixed compiler errors in range_formatter involving highly unusual contiguous ranges. #​5187
    • Fixed heterogeneous lookup for unordered containers to follow the Standard, allowing braced initializer lists to be used as arguments. #​5208
    • Fixed compiler errors in views::counted involving highly unusual types. #​5223
    • Fixed integer overflow in this_thread::sleep_for() with extremely small units (e.g. picoseconds). #​5237
    • Fixed basic_string::reserve()'s ASan annotations to detect writes to its unused capacity. #​5252
    • Fixed how <format> handles field width for alternate form general floating-point. #​5261
    • Fixed compiler errors when constructing a basic_ispanstream from a modifiable basic_string. #​5309
      • This fixed a regression that was introduced by #​4938 in VS 2022 17.13.
    • Fixed compiler errors when using <format> in a CUDA project, by adding a compiler bug workaround. #​5335
    • Fixed compiler errors when converting between different specializations of basic_const_iterator. #​5325
  • Improved performance:
    • Added vectorized implementations of:
      • basic_string::find() for a character. #​5101
    • Improved the vectorized implementations of:
      • basic_string::find_first_of() and basic_string::find_last_of(). #​5029
    • regex_traits::translate() is now an identity function, as required by the Standard, instead of an expensive locale operation. #​5209
    • The STL now takes advantage of compiler support for C++23 P1169R4 static operator() in earlier Standard modes, slightly improving codegen. #​5284 #​5312
    • Optimized the minstd_rand and minstd_rand0 random number engines by avoiding constant divisions. #​5256
    • Slightly improved move_only_function's constructors to do less work when setting the object to be empty. #​5328
  • Enhanced behavior:
    • std::expected, std::unexpected, and all STL exception types are now marked [[nodiscard]]. #​5174
      • This affects all user-defined functions returning these types by value. It also affects any directly constructed temporaries that are immediately discarded.
    • Deprecated the non-Standard locale::empty() static member function. #​5197
    • Changed the STL to avoid using is_trivial, which is being deprecated in C++26. #​5202
    • Improved the STL's debug checks with better messages and fewer branches. #​5270
  • Improved debugger visualization:
    • Improved the visualizers for basic_string_view and its iterators by suppressing irrelevant pointer values. #​5176
    • Dramatically simplified how the visualizers for basic_string and its iterators are implemented. #​5177
  • Improved test coverage:
    • Simplified the test harness by dropping ctest. Now we always directly invoke stl-lit.py. #​5169
    • Improved the test harness to warn only once when a compiler is missing. #​5199
    • Categorized libcxx test failures. #​5231
    • Updated our LLVM submodule, including new tests. #​5235
    • Added test coverage for the ASan annotations in basic_string::reserve() and vector::reserve(). #​5241
    • Skipped libcxx tests in response to a new compiler warning C5321, which warns when the resolution to CWG-1656 affects a u8 string literal. #​5283
  • Code cleanups:
  • Infrastructure improvements:
    • Updated dependencies. #​5186 #​5247 #​5257 #​5284 #​5335
      • Updated build compiler to VS 2022 17.14 Preview 2 (now required).
      • Updated Clang to 19.1.5 (now required).
      • Updated Google Benchmark to 1.9.1.
      • Updated Python to 3.13.2.
      • Updated VMs to compute-optimized F32as_v6.
  • Updated _MSVC_STL_UPDATE. #​5162 #​5217 #​5264 #​5323

Configuration

📅 Schedule: Branch creation - "after 2am on monday" (UTC), Automerge - At any time (no schedule defined).

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@forking-renovate forking-renovate bot added the team:VM Assigned to OTP team VM label Jun 17, 2025
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Contributor

CT Test Results

Tests are running... https://github.com/erlang/otp/actions/runs/15703277597

Results for commit c4d612f

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

  • No CT logs found
  • No HTML docs found
  • No Windows Installer found

// Erlang/OTP Github Action Bot

@garazdawi garazdawi removed their assignment Jun 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team:VM Assigned to OTP team VM
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants