Skip to content

compliance fixes for vector - #77

Open
pauldreik wants to merge 6 commits into
mainfrom
vector_compliance_fixes
Open

compliance fixes for vector#77
pauldreik wants to merge 6 commits into
mainfrom
vector_compliance_fixes

Conversation

@pauldreik

Copy link
Copy Markdown
Owner

No description provided.

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

rdfind build-time diff (configure / compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 5 per configuration.

rdfind build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 0.3%.

No significant changes (🟡 3 within noise).

🟡 3 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 700.6ms 742.5ms 🟡 +6.0% [-5.5, +7.0] 2.5x
configure 1200.7ms 1200.5ms 🟡 -0.0% [-0.3, +0.2] 1.0x
run tests 1291.2ms 1281.5ms 🟡 -0.8% [-3.3, +0.2] 1.1x

Reproduce this on your machine: scripts/compare_realworld.py rdfind --build-type debug --reps 5

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

eigen build-time diff (compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 2 per configuration.

eigen build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 3.7%.

No significant changes (🟡 2 within noise).

🟡 2 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 17244.6ms 17344.8ms 🟡 +0.6% [+0.0, +1.2] 1.7x
run tests 35.0ms 35.5ms 🟡 +1.4% [+1.3, +1.6] 1.3x

Reproduce this on your machine: scripts/compare_realworld.py eigen --build-type debug --reps 2

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

fmt build-time diff (compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 3 per configuration.

fmt build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 1.5%.

No significant changes (🟡 2 within noise).

🟡 2 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 32223.6ms 32535.0ms 🟡 +1.0% [+0.6, +2.0] 1.5x
run tests 222.6ms 229.8ms 🟡 +3.2% [-3.9, +5.5] 1.7x

Reproduce this on your machine: scripts/compare_realworld.py fmt --build-type debug --reps 3

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

catch2 build-time diff (compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 3 per configuration.

catch2 build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 12.3%.

No significant changes (🟡 2 within noise).

🟡 2 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 16830.2ms 17487.8ms 🟡 +3.9% [+3.7, +4.9] 3.2x
run tests 4165.8ms 4195.6ms 🟡 +0.7% [-2.9, +1.5] 0.8x

Reproduce this on your machine: scripts/compare_realworld.py catch2 --build-type debug --reps 3

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

Compile-time performance diff

Compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

psychicstd compile time, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 1.3%.

🔴 11 slower · 🟡 52 within noise.

benchmark main PR Δ (95% CI) vs system
ios 104.2ms 118.1ms 🔴 +13.4% [+11.8, +14.8] 2.2x
system_error 103.9ms 113.8ms 🔴 +9.5% [+8.2, +11.2] 2.3x
regex 94.6ms 103.4ms 🔴 +9.4% [+8.1, +11.0] 17.2x
iomanip 185.6ms 201.5ms 🔴 +8.6% [+7.5, +9.6] 1.8x
iostream 254.6ms 276.3ms 🔴 +8.5% [+8.2, +9.1] 1.4x
istream 187.9ms 203.1ms 🔴 +8.1% [+6.3, +9.7] 1.7x
sstream 181.9ms 195.8ms 🔴 +7.6% [+5.3, +8.2] 1.6x
thread 237.2ms 253.8ms 🔴 +7.0% [+5.6, +9.5] 2.2x
filesystem 205.9ms 219.9ms 🔴 +6.8% [+3.2, +8.9] 3.1x
fstream 182.7ms 192.6ms 🔴 +5.5% [+4.4, +6.0] 1.7x
variant 124.9ms 131.6ms 🔴 +5.3% [+4.6, +8.2] 3.5x
🟡 52 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
algorithm 224.3ms 223.1ms 🟡 -0.6% [-1.3, +0.2] 3.3x
all-headers 22.3ms 22.2ms 🟡 -0.3% [-79.7, +1.7] 2.6x
any 45.4ms 44.2ms 🟡 -2.7% [-5.0, -0.7] 1.5x
array 26.0ms 26.0ms 🟡 -0.2% [-2.6, +2.2] 2.6x
atomic 104.3ms 106.1ms 🟡 +1.8% [-32.5, +4.4] 4.3x
bench/cstddef 13.1ms 13.0ms 🟡 -0.4% [-3.8, +0.4] 1.2x
bench/cstdint 14.3ms 13.7ms 🟡 -4.1% [-6.7, +0.3] 1.1x
bench/numeric 20.5ms 20.4ms 🟡 -0.2% [-3.4, +1.2] 2.7x
bitset 35.0ms 35.3ms 🟡 +0.9% [-2.3, +2.7] 6.5x
chrono 71.4ms 71.8ms 🟡 +0.6% [-1.4, +1.3] 11.8x
cmath 51.1ms 52.6ms 🟡 +2.9% [+0.5, +4.4] 2.9x
complex 54.9ms 54.2ms 🟡 -1.3% [-6.0, +1.2] 7.0x
concepts 23.5ms 23.4ms 🟡 -0.3% [-3.1, +1.4] 1.2x
cstddef 18.2ms 19.2ms 🟡 +5.3% [+4.2, +6.4] 1.0x
cstdint 14.7ms 15.3ms 🟡 +4.2% [-0.5, +8.8] 1.1x
cstdlib 25.5ms 25.2ms 🟡 -1.3% [-4.7, +3.5] 1.1x
cstdlib_order 22.4ms 22.8ms 🟡 +1.6% [-0.2, +4.1] 1.1x
deque 79.5ms 81.2ms 🟡 +2.1% [-1.3, +3.3] 3.2x
exception 23.3ms 23.9ms 🟡 +2.5% [+0.6, +4.5] 1.7x
forward_list 33.3ms 33.2ms 🟡 -0.2% [-2.5, +4.4] 4.1x
functional 43.7ms 42.0ms 🟡 -4.0% [-5.0, -2.6] 6.1x
future 101.8ms 102.8ms 🟡 +1.0% [+0.0, +2.6] 7.5x
initializer_list 17.3ms 18.1ms 🟡 +5.1% [+3.3, +6.7] 1.1x
iterator 51.8ms 51.2ms 🟡 -1.2% [-3.3, +1.1] 5.6x
limits 18.9ms 19.1ms 🟡 +1.1% [-1.6, +2.9] 1.3x
list 61.0ms 60.3ms 🟡 -1.1% [-2.6, -0.6] 3.2x
locale 160.7ms 167.3ms 🟡 +4.1% [+1.9, +6.7] 2.0x
map 180.0ms 183.0ms 🟡 +1.7% [-0.2, +8.9] 2.2x
memory 201.7ms 203.0ms 🟡 +0.7% [-0.7, +3.5] 3.8x
mutex 112.9ms 113.7ms 🟡 +0.7% [-7.8, +2.2] 4.4x
new 16.2ms 17.0ms 🟡 +5.0% [+4.0, +8.8] 1.1x
numeric 22.2ms 23.2ms 🟡 +4.3% [+1.5, +5.0] 2.5x
optional 51.9ms 54.5ms 🟡 +5.0% [+3.6, +6.3] 2.0x
queue 108.9ms 110.0ms 🟡 +1.0% [-0.7, +3.3] 2.8x
random 104.1ms 102.8ms 🟡 -1.3% [-4.6, -0.2] 4.4x
ranges 52.5ms 52.1ms 🟡 -0.7% [-2.2, +1.6] 7.7x
ratio 21.2ms 21.7ms 🟡 +2.4% [+0.1, +8.6] 1.4x
set 112.5ms 112.1ms 🟡 -0.3% [-1.6, +0.5] 2.5x
span 63.4ms 63.8ms 🟡 +0.6% [-0.2, +1.8] 4.1x
stack 49.8ms 49.1ms 🟡 -1.4% [-2.2, +0.5] 3.6x
stdexcept 64.9ms 67.6ms 🟡 +4.1% [+2.8, +5.9] 3.4x
stop_token 67.7ms 67.9ms 🟡 +0.2% [-1.4, +1.0] 5.9x
string_view 93.7ms 95.5ms 🟡 +1.9% [+1.3, +2.5] 2.6x
tuple 74.8ms 75.3ms 🟡 +0.6% [+0.1, +2.1] 2.8x
type_traits 18.0ms 17.9ms 🟡 -0.6% [-1.2, +0.2] 1.5x
typeinfo 78.2ms 81.0ms 🟡 +3.6% [+2.8, +5.4] 2.9x
uchar 16.0ms 16.5ms 🟡 +3.3% [+0.7, +4.7] 1.0x
unordered_map 74.2ms 74.5ms 🟡 +0.5% [-0.9, +1.3] 3.6x
unordered_set 45.8ms 46.2ms 🟡 +1.0% [-0.9, +1.6] 4.6x
utility 22.6ms 22.6ms 🟡 +0.0% [-0.7, +0.5] 1.9x
valarray 21.9ms 21.8ms 🟡 -0.1% [-4.7, +3.5] 12.0x
wordcounter 235.7ms 243.3ms 🟡 +3.2% [+1.5, +5.4] 2.4x

Reproduce this on your machine: scripts/compare_performance.py --reps 5 g++ origin/main

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

simdutf build-time diff (compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 1 per configuration.

simdutf build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 1.6%.

No significant changes (🟡 2 within noise).

🟡 2 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 15643.4ms 16025.0ms 🟡 +2.4% 1.9x
run tests 27913.1ms 28089.3ms 🟡 +0.6% 1.0x

Reproduce this on your machine: scripts/compare_realworld.py simdutf --build-type debug --reps 1

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

Sanitizer diff (ASan/UBSan)

🟢 2 header(s) improved.

header before after Δ
numeric 3/25 4/25 🟢 +1
string 1/25 3/25 🟢 +2
61 header(s) unchanged
header passes/sampled
algorithm 6/25
any 6/18
array 16/25
atomic 13/25
cassert 2/9
cctype 2/5
cerrno 4/25
cfloat 4/25
chrono 0/25
ciso646 4/25
climits 11/25
clocale 4/25
cmath 1/12
compare 5/14
complex 9/25
concepts 2/25
csignal 4/25
cstddef 13/21
cstdint 3/5
cstdio 4/25
cstdlib 2/9
cstring 2/5
ctime 4/25
cwchar 4/25
deque 17/25
exception 11/21
forward_list 5/25
fstream 4/25
functional 5/25
initializer_list 0/0
iomanip 12/25
iostream 0/1
istream 9/25
iterator 4/25
limits 24/25
list 4/25
map 7/25
memory 4/25
mutex 5/25
new 6/25
optional 7/25
ostream 18/25
random 1/25
ranges 0/25
ratio 7/13
regex 1/25
set 0/25
sstream 4/25
stack 9/25
stdexcept 9/9
streambuf 17/25
string_view 8/25
thread 3/25
tuple 7/25
type_traits 13/25
typeinfo 1/5
unordered_map 10/25
unordered_set 7/25
utility 6/25
valarray 0/25
vector 18/25

Reproduce this on your machine: LLVM_ROOT=$PWD/llvm-project cp sanitize_base_cache.json .compliance_cache.sanitize.json && python3 tools/compliance.py --sanitize --recheck

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

Compliance diff

🟢 2 header(s) improved.

header before after Δ
numeric 4/40 5/40 🟢 +1
string 2/40 7/40 🟢 +5
61 header(s) unchanged
header passes/sampled
algorithm 11/40
any 9/18
array 26/40
atomic 17/40
cassert 2/9
cctype 2/5
cerrno 5/29
cfloat 5/29
chrono 1/40
ciso646 5/29
climits 15/40
clocale 5/29
cmath 1/12
compare 5/14
complex 14/40
concepts 2/35
csignal 5/29
cstddef 13/21
cstdint 3/5
cstdio 5/29
cstdlib 2/9
cstring 2/5
ctime 5/29
cwchar 5/29
deque 29/40
exception 11/21
forward_list 8/40
fstream 7/40
functional 5/40
initializer_list 0/0
iomanip 21/40
iostream 0/1
istream 22/40
iterator 5/40
limits 36/37
list 6/40
map 13/40
memory 7/40
mutex 5/40
new 17/40
optional 10/40
ostream 31/40
random 1/40
ranges 0/40
ratio 7/13
regex 3/40
set 1/40
sstream 6/40
stack 16/36
stdexcept 9/9
streambuf 28/37
string_view 13/40
thread 4/40
tuple 10/40
type_traits 20/40
typeinfo 1/5
unordered_map 15/40
unordered_set 12/40
utility 7/40
valarray 1/40
vector 29/40

Reproduce this on your machine: LLVM_ROOT=$PWD/llvm-project cp base_cache.json .compliance_cache.json && python3 tools/compliance.py --recheck

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown

cppcheck build-time diff (compile / run tests)

Compiler: c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0.

Repetitions: 2 per configuration.

cppcheck build time with psychicstd, main vs this PR (same runner). 🟢 faster · 🔴 slower · 🟡 within noise. A change is colored only when its bootstrap 95% CI excludes 0 and it clears ±5% / 3ms. vs system is this PR's speedup over system libstdc++, for context -- a regression is less alarming if psychicstd is still far ahead. Median system-time drift (noise proxy): 0.2%.

🟢 1 faster · 🟡 1 within noise.

benchmark main PR Δ (95% CI) vs system
run tests 75125.3ms 71043.1ms 🟢 -5.4% [-6.2, -4.7] 1.1x
🟡 1 benchmark(s) within noise
benchmark main PR Δ (95% CI) vs system
compile 52567.4ms 53546.4ms 🟡 +1.9% [+0.1, +3.6] 1.9x

Reproduce this on your machine: scripts/compare_realworld.py cppcheck --build-type debug --reps 2

Add constexpr string operations, allocator-aware pointer handling, required bounds errors, and safe self-referential modifiers. Cover the new behavior with focused system and psychicstd tests.
Declare the allocator operations required by libc++ so the system-library pointer alias test also compiles on macOS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant