microsoft / microsoft/STL

STL: `_ITERATOR_DEBUG_LEVEL=1` must be destroyed

Open
#277 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement vNext
Dominant language
C++
Stars
11.1k
Forks
1.7k
Avg merge
4d 15h
Merged PRs (30d)
22

Description

In vNext, we should remove support for _ITERATOR_DEBUG_LEVEL being set to 1. This mode:

  • Hasn't been enabled by default in VS 2010 and later
  • Isn't manually enabled by any users we're aware of
  • Is expensive at runtime (up to 2x perf penalty), which is why we changed the default
  • Has significant implementation and testing costs
  • Is effectively superseded by STL Hardening (which doesn't try to harden iterators, but has the great advantages of being ABI-compatible and cheap enough to enable in production)

We should eradicate all of the _ITERATOR_DEBUG_LEVEL == 1 logic, and spend our energy on making STL Hardening better.

vNext note: Resolving this issue will require breaking binary compatibility. We won't be able to accept pull requests for this issue until the vNext branch is available. See #169 for more information.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This work is blocked until the vNext branch is available, as noted in the issue. Once available, inventory all _ITERATOR_DEBUG_LEVEL == 1 logic and its associated tests, then remove that mode without retaining compatibility paths. Done means the level-1 implementation and testing support are eradicated while the remaining modes continue to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.