boostorg / boostorg/build

variant=release runtime-debugging=on does not enable assertions as stated in documentation

Open
#590 1 comment 0 reactions 0 assignees View on GitHub
transition
Dominant language
C++
Stars
251
Forks
63
PR merge metrics
No merged PRs in 30d

Description

The `runtime-debugging` says:
> Specifies whether produced object files, executables, and libraries should
include behavior useful only for debugging, **such as asserts**. Typically, the
value of this feature is implicitly set by the `variant` feature, but it can be
explicitly specified by the user. **The most common usage is to build release
variant with debugging output**.

https://github.com/boostorg/build/blob/7d9866256d1ce46abaf8355bb618cdebab9cfe62/src/tools/features/runtime-feature.jam#L13-L17

And I believed it because the `variant=release` documentation does not list `NDEBUG`
https://github.com/boostorg/build/blob/7d9866256d1ce46abaf8355bb618cdebab9cfe62/src/tools/features/variant-feature.jam#L24-L27
while in reality it expands to
https://github.com/boostorg/build/blob/7d9866256d1ce46abaf8355bb618cdebab9cfe62/src/tools/builtin.jam#L50-L51

Contributor guide

Open the contributing guide

Research direction

Compare the documented behavior in src/tools/features/runtime-feature.jam and src/tools/features/variant-feature.jam with the NDEBUG mapping in src/tools/builtin.jam. Start by tracing how variant=release and runtime-debugging=on expand, then verify that the documentation and actual assertion behavior agree.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.