Settings

Theme

UB? In My Lexer? [pdf]

open-std.org

8 points by weirdsmiley 3 years ago · 3 comments

Reader

weirdsmileyOP 3 years ago

“UB? In my lexer?” by Corentin Jabot removes the possibility that just tokenizing C++ code can be a source of undefined behavior in a C++ compiler itself. (Did you know it could be UB? Now it can’t.) Note however that this does not remove all possible UB during compilation; future papers may address more of those compile-time UB sources. ~ Herb Sutter

josephcsible 3 years ago

> Further work will be needed to remove all undefined behavior in [cpp].

The inclusion of this sentence makes me seriously question the author's qualifications. Removing all UB from C++ would be a terrible thing to do that would greatly slow down all C++ programs. If people using C++ were okay with such a slowdown, they'd be using a higher-level language already instead.

  • valleyer 3 years ago

    > The inclusion of this sentence makes me seriously question the author's qualifications. Removing all UB from C++ would be a terrible thing to do [...]

    So, "[cpp]" here refers not to the C++ language as a whole but rather to the section of the ISO C++ standard governing the behavior of the preprocessor (which is commonly referred to by shorthand as "cpp").

    The [cpp] chapter is part of what is amended by this very proposal, and part of the context that the author includes shows another instance of UB in [cpp]. That is what the author is referring to here.

    It's just my opinion, but your "qualifications" comment seems needlessly harsh in light of that.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection