Skip to content

Publish coverage information to GitHub Pages - #2800

Merged
jviotti merged 5 commits into
mainfrom
coverage-website
Sep 8, 2026
Merged

Publish coverage information to GitHub Pages#2800
jviotti merged 5 commits into
mainfrom
coverage-website

Conversation

@jviotti

@jviotti jviotti commented Sep 8, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Sep 8, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR extends the GitHub Pages build to publish source-coverage information alongside the API reference.

Changes:

  • Replaces the documentation-only CMake invocation in both website workflows with a shared contrib/website.sh entry point.
  • Builds the complete project with Clang coverage instrumentation and runs its test suite to generate an LLVM coverage report.
  • Places the generated report under build/website/coverage, while Doxygen continues to emit the API site at the website root.
  • Enables documentation during coverage configuration so both outputs share a single build tree.
  • Excludes the downstream find_package packaging tests because they require an installation and are not instrumented.
  • Allows coverage.sh callers to pass extra CMake options after its required directories.
  • Adds Fedora dependencies for Clang/LLVM, ccache, static C++ linking, and script support.
  • Adds ccache restore/save steps to the website build and deployment workflows, mirroring the main CI cache strategy.
  • Runs the website build as an unprivileged user so permission-sensitive tests behave as expected.
Technical Notes: Coverage assets are copied into the Pages artifact before deployment; documentation generation runs last so it does not overwrite the coverage subtree.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 4 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread contrib/coverage.sh Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 053d94b Previous: 555819e Ratio
JOSE_VerifySignature_RS256 22105.689853324508 ns/iter 22199.178690693803 ns/iter 1.00
JOSE_VerifySignature_ES512 581850.6064891065 ns/iter 582185.5303407911 ns/iter 1.00
GZIP_Compress_ISO_Language_Set_3_Locations 36506464.73684111 ns/iter 36577386.73684052 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 4256873.393938859 ns/iter 4225141.757396382 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Schema 2026772.5101447192 ns/iter 2028508.031884175 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 382118.6770322025 ns/iter 383016.4519650614 ns/iter 1.00
HTML_Build_Table_100000 54448304.49999926 ns/iter 55231357.16666635 ns/iter 0.99
HTML_Render_Table_100000 1781517.8658229113 ns/iter 1971801.3304843183 ns/iter 0.90
JSONLD_Catalog_Annotation_List_Populate 691544.8466076643 ns/iter 681710.3820662452 ns/iter 1.01
JSONLD_Catalog_Materialize 3487567.810945317 ns/iter 3427494.2352940277 ns/iter 1.02
JSONL_Parse_Large 9677286.999999208 ns/iter 9698965.291666659 ns/iter 1.00
JSONL_Parse_Large_GZIP 11148588.142857209 ns/iter 11082498.42857168 ns/iter 1.01
URITemplateRouter_Create 21143.70516259105 ns/iter 21677.862140736783 ns/iter 0.98
URITemplateRouter_Match 151.4581285123488 ns/iter 157.25068484694128 ns/iter 0.96
URITemplateRouter_Match_BasePath 191.6354636164474 ns/iter 185.6627858723671 ns/iter 1.03
URITemplateRouterView_Restore 8351.170632358951 ns/iter 8169.105486198556 ns/iter 1.02
URITemplateRouterView_Match 124.57628209476668 ns/iter 123.91196633172345 ns/iter 1.01
URITemplateRouterView_Match_BasePath 146.94859383244267 ns/iter 143.67037440049597 ns/iter 1.02
URITemplateRouterView_Arguments 479.5212863293888 ns/iter 470.9737439235091 ns/iter 1.02
JSONPath_Descendant_Filter_Nested 1628.4085220560082 ns/iter 1720.8698097198653 ns/iter 0.95
Pointer_Object_Traverse 23.07971691445211 ns/iter 23.45762671138364 ns/iter 0.98
Pointer_Object_Try_Traverse 25.891396413082774 ns/iter 25.874136869719983 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 129.67395522295493 ns/iter 138.65586206015692 ns/iter 0.94
Pointer_Walker_Schema_ISO_Language 1432361.045929151 ns/iter 1453606.9491869537 ns/iter 0.99
Pointer_Maybe_Tracked_Deeply_Nested/0 1235882.7517484005 ns/iter 1228559.3391915523 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1690710.9638554812 ns/iter 1689891.4086538663 ns/iter 1.00
Pointer_Position_Tracker_Get_Deeply_Nested 582.5105733253888 ns/iter 591.693642477538 ns/iter 0.98
JSON_Array_Of_Objects_Unique 465.28362109756955 ns/iter 472.0656455724077 ns/iter 0.99
JSON_Parse_1 5302.30995237773 ns/iter 5760.459654155055 ns/iter 0.92
JSON_Parse_Real 5553.815274398442 ns/iter 5514.760872294666 ns/iter 1.01
JSON_Parse_Decimal 10397.647004567221 ns/iter 10450.560674324328 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 3640979.156250168 ns/iter 3709992.786096405 ns/iter 0.98
JSON_Parse_Integer 3727.6735602641124 ns/iter 3711.9333934833608 ns/iter 1.00
JSON_Parse_String_NonSSO_Plain 3495.2919860660895 ns/iter 3472.304039006226 ns/iter 1.01
JSON_Parse_String_SSO_Plain 2904.5747468334234 ns/iter 2890.879894689917 ns/iter 1.00
JSON_Parse_String_Escape_Heavy 16828.26938362597 ns/iter 16928.224732662853 ns/iter 0.99
JSON_Parse_Object_Short_Keys 8671.730813034608 ns/iter 9039.778636138442 ns/iter 0.96
JSON_Parse_Object_Scalar_Properties 4357.200813089626 ns/iter 4502.055171434254 ns/iter 0.97
JSON_Parse_Object_Array_Properties 6796.669277172908 ns/iter 6820.649205926245 ns/iter 1.00
JSON_Parse_Object_Object_Properties 6592.129726611956 ns/iter 6970.474276223207 ns/iter 0.95
JSON_Parse_Nested_Containers 40286.737588243835 ns/iter 42687.83868599499 ns/iter 0.94
JSON_From_String_Copy 8.83861045046636 ns/iter 8.556112805043234 ns/iter 1.03
JSON_From_String_Temporary 7.641149290673915 ns/iter 7.5119760828557665 ns/iter 1.02
JSON_Number_To_Double 20.061777818946158 ns/iter 19.970188907057913 ns/iter 1.00
JSON_Object_At_Last_Key/8 5.611522146379411 ns/iter 5.644407301844453 ns/iter 0.99
JSON_Object_At_Last_Key/32 22.7082879561367 ns/iter 21.593454529232446 ns/iter 1.05
JSON_Object_At_Last_Key/128 87.8117106092731 ns/iter 87.87989097165043 ns/iter 1.00
JSON_Object_At_Last_Key/512 394.75169852063857 ns/iter 392.64105012253657 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 75.83215600042595 ns/iter 76.45934707386516 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 156.33934157035813 ns/iter 147.8597826795034 ns/iter 1.06
JSON_Divisible_By_Decimal 282.37398884916536 ns/iter 283.6206232236688 ns/iter 1.00
JSON_String_Equal/10 5.065749232851792 ns/iter 5.091486437733636 ns/iter 0.99
JSON_String_Equal/100 5.687707294935667 ns/iter 5.686092763186142 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6235434533696033 ns/iter 0.6235575206540038 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.203817557312465 ns/iter 25.201938589536123 ns/iter 1.00
JSON_String_Fast_Hash/10 3.1600435386203976 ns/iter 3.164016135124279 ns/iter 1.00
JSON_String_Fast_Hash/100 3.164603476886244 ns/iter 3.168276834908971 ns/iter 1.00
JSON_String_Key_Hash/10 1.2461999086998687 ns/iter 1.2473805023327644 ns/iter 1.00
JSON_String_Key_Hash/100 12.457407807913878 ns/iter 12.45748434139855 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.112453906481634 ns/iter 3.1158221485072515 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.4250497930273767 ns/iter 3.4272431046124723 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1125207413182103 ns/iter 3.1139503034135996 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.6226792795103705 ns/iter 0.624139799115197 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.623354062476429 ns/iter 0.6227867137950087 ns/iter 1.00
Regex_Period_Asterisk 0.6228469201935177 ns/iter 0.6229114721130125 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.6231341410793432 ns/iter 0.6249142447311579 ns/iter 1.00
Regex_Period_Plus 0.6228511101178956 ns/iter 0.6241405892499292 ns/iter 1.00
Regex_Period 0.6227837754310648 ns/iter 0.6230901270288682 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.6229564667492394 ns/iter 0.622564194492994 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.6230006114184022 ns/iter 0.623482970492494 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.627111347777274 ns/iter 0.6232456961808833 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6227481542480822 ns/iter 0.6228930344146915 ns/iter 1.00
Regex_Caret_X_Hyphen 3.7380588313320424 ns/iter 3.747026400424785 ns/iter 1.00
Regex_Period_Md_Dollar 27.946591609510623 ns/iter 29.283825103391816 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 4.045540697815975 ns/iter 4.046516835693438 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.2446381295225832 ns/iter 1.2461868530172622 ns/iter 1.00
Regex_Nested_Backtrack 37.74437716673476 ns/iter 37.57410491500315 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 053d94b Previous: 555819e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.8444372967397995 ns/iter 2.520648313810275 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.81642313832254 ns/iter 2.492154963350404 ns/iter 1.13
Regex_Period_Asterisk 2.8141683248556135 ns/iter 2.4902046571565455 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 2.8127139336694302 ns/iter 2.501630343684446 ns/iter 1.12
Regex_Period_Plus 4.224333454417799 ns/iter 2.8174989155061447 ns/iter 1.50
Regex_Period 4.23167251779907 ns/iter 2.8330627582731767 ns/iter 1.49
Regex_Caret_Period_Plus_Dollar 4.222322485380591 ns/iter 2.8010359334416286 ns/iter 1.51
Regex_Caret_Group_Period_Plus_Group_Dollar 4.224898194749544 ns/iter 2.801961206642616 ns/iter 1.51
Regex_Caret_Period_Asterisk_Dollar 3.17446156886206 ns/iter 2.502478164288797 ns/iter 1.27
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1752465671910213 ns/iter 2.5044749035807654 ns/iter 1.27
Regex_Caret_X_Hyphen 5.991953919913482 ns/iter 5.921639383531097 ns/iter 1.01
Regex_Period_Md_Dollar 26.172249138742437 ns/iter 27.464516393882672 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 7.043674628524593 ns/iter 6.537251297352928 ns/iter 1.08
Regex_Caret_Period_Range_Dollar 4.573027598429948 ns/iter 4.411904434545961 ns/iter 1.04
Regex_Nested_Backtrack 39.38154322305267 ns/iter 43.824185832633255 ns/iter 0.90
JSON_Array_Of_Objects_Unique 474.2524506756757 ns/iter 450.796854207979 ns/iter 1.05
JSON_Parse_1 4274.846429940184 ns/iter 4451.3365265583525 ns/iter 0.96
JSON_Parse_Real 4865.966999125974 ns/iter 5055.3781307402 ns/iter 0.96
JSON_Parse_Decimal 7108.902184043318 ns/iter 7345.52291139373 ns/iter 0.97
JSON_Parse_Schema_ISO_Language 3325842.1857142583 ns/iter 3211731.301369818 ns/iter 1.04
JSON_Parse_Integer 3954.835817546658 ns/iter 3651.892651176413 ns/iter 1.08
JSON_Parse_String_NonSSO_Plain 3170.158607097122 ns/iter 2994.7084026979505 ns/iter 1.06
JSON_Parse_String_SSO_Plain 2725.6144059035687 ns/iter 2573.5800502841503 ns/iter 1.06
JSON_Parse_String_Escape_Heavy 12242.464023879455 ns/iter 12029.601750283697 ns/iter 1.02
JSON_Parse_Object_Short_Keys 7838.371956066541 ns/iter 7963.33893093405 ns/iter 0.98
JSON_Parse_Object_Scalar_Properties 4000.005378275821 ns/iter 4071.0306102235672 ns/iter 0.98
JSON_Parse_Object_Array_Properties 5316.550377204112 ns/iter 5321.643962344553 ns/iter 1.00
JSON_Parse_Object_Object_Properties 5308.754863724948 ns/iter 5239.872622366402 ns/iter 1.01
JSON_Parse_Nested_Containers 34171.198760792526 ns/iter 34842.482095853506 ns/iter 0.98
JSON_From_String_Copy 12.409004458275852 ns/iter 11.406957521221914 ns/iter 1.09
JSON_From_String_Temporary 11.201303182818988 ns/iter 9.961338588913934 ns/iter 1.12
JSON_Number_To_Double 22.500724433835785 ns/iter 22.778843880494577 ns/iter 0.99
JSON_Object_At_Last_Key/8 4.009850875394875 ns/iter 3.92907237672441 ns/iter 1.02
JSON_Object_At_Last_Key/32 13.053722959493353 ns/iter 12.292281569407479 ns/iter 1.06
JSON_Object_At_Last_Key/128 55.98522096333495 ns/iter 49.23623050406591 ns/iter 1.14
JSON_Object_At_Last_Key/512 304.5153652036146 ns/iter 383.0596007056043 ns/iter 0.79
JSON_Fast_Hash_Helm_Chart_Lock 66.10371881156809 ns/iter 54.461439509967846 ns/iter 1.21
JSON_Equality_Helm_Chart_Lock 159.5749814494876 ns/iter 158.04620006100575 ns/iter 1.01
JSON_Divisible_By_Decimal 246.676434339267 ns/iter 246.2580835865277 ns/iter 1.00
JSON_String_Equal/10 5.633950201041281 ns/iter 5.925140503570389 ns/iter 0.95
JSON_String_Equal/100 6.332343367953019 ns/iter 6.5486340532325125 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0568192627073172 ns/iter 0.9351937273035424 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.373646977378034 ns/iter 10.58156944575262 ns/iter 1.17
JSON_String_Fast_Hash/10 2.109836710512782 ns/iter 2.179923742940718 ns/iter 0.97
JSON_String_Fast_Hash/100 2.1099741952006803 ns/iter 2.191173555307514 ns/iter 0.96
JSON_String_Key_Hash/10 2.4615724902300764 ns/iter 2.1912189442173005 ns/iter 1.12
JSON_String_Key_Hash/100 7.73316502979818 ns/iter 6.537577110730131 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 4.219583863589525 ns/iter 3.4231515819273732 ns/iter 1.23
JSON_Object_Defines_Miss_Too_Small 3.2036956183573997 ns/iter 2.9600628339169317 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Large 2.9744858538074537 ns/iter 2.6331304569709664 ns/iter 1.13
Pointer_Object_Traverse 30.672957735717546 ns/iter 28.605666730383266 ns/iter 1.07
Pointer_Object_Try_Traverse 32.8090417789678 ns/iter 30.6243315015192 ns/iter 1.07
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.3484085517509 ns/iter 147.68477194804254 ns/iter 1.07
Pointer_Walker_Schema_ISO_Language 1488608.3056768063 ns/iter 1494137.0521739211 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 1278524.9744524662 ns/iter 1282689.450367691 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 2109477.6349692727 ns/iter 1660481.3301662563 ns/iter 1.27
Pointer_Position_Tracker_Get_Deeply_Nested 703.3757848540779 ns/iter 630.438380242883 ns/iter 1.12
JSONPath_Descendant_Filter_Nested 1513.1654284451115 ns/iter 1536.284042403736 ns/iter 0.98
URITemplateRouter_Create 21781.166828018493 ns/iter 24235.400436803076 ns/iter 0.90
URITemplateRouter_Match 181.38412666405242 ns/iter 170.91962414079666 ns/iter 1.06
URITemplateRouter_Match_BasePath 222.09101121410234 ns/iter 202.86433681123563 ns/iter 1.09
URITemplateRouterView_Restore 9916.67512640903 ns/iter 8537.283897801648 ns/iter 1.16
URITemplateRouterView_Match 143.31068497126685 ns/iter 142.1560817622488 ns/iter 1.01
URITemplateRouterView_Match_BasePath 167.23081459097273 ns/iter 162.59289095636248 ns/iter 1.03
URITemplateRouterView_Arguments 452.7219202084236 ns/iter 431.0586211049741 ns/iter 1.05
JSONL_Parse_Large 8518438.353658622 ns/iter 9302274.973684257 ns/iter 0.92
JSONL_Parse_Large_GZIP 10163846.405796317 ns/iter 10757300.646153785 ns/iter 0.94
JSONLD_Catalog_Annotation_List_Populate 610112.2834782611 ns/iter 594543.5211505886 ns/iter 1.03
JSONLD_Catalog_Materialize 3572221.469999874 ns/iter 3439991.803921623 ns/iter 1.04
HTML_Build_Table_100000 66449703.900002524 ns/iter 57518887.54545576 ns/iter 1.16
HTML_Render_Table_100000 1961005.2704226137 ns/iter 1931662.4831460486 ns/iter 1.02
GZIP_Compress_ISO_Language_Set_3_Locations 35623421.09999861 ns/iter 32525619.7272717 ns/iter 1.10
GZIP_Decompress_ISO_Language_Set_3_Locations 4263579.4573172005 ns/iter 4050534.947674313 ns/iter 1.05
GZIP_Compress_ISO_Language_Set_3_Schema 2121386.465256781 ns/iter 1866862.0773332806 ns/iter 1.14
GZIP_Decompress_ISO_Language_Set_3_Schema 276865.02840236604 ns/iter 355628.1414090288 ns/iter 0.78
JOSE_VerifySignature_RS256 63583.981798325294 ns/iter 60289.425559380565 ns/iter 1.05
JOSE_VerifySignature_ES512 2691112.3678161064 ns/iter 2421156.055363302 ns/iter 1.11

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 053d94b Previous: 555819e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.01879067076314 ns/iter 5.196571000000176 ns/iter 0.97
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.05742053571469 ns/iter 5.134384000000409 ns/iter 0.99
Regex_Period_Asterisk 5.297809000000484 ns/iter 5.125398999999788 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 5.0284209999995255 ns/iter 5.109294999999747 ns/iter 0.98
Regex_Period_Plus 5.017439285714329 ns/iter 5.063436000000365 ns/iter 0.99
Regex_Period 5.012072999999759 ns/iter 5.160768750000346 ns/iter 0.97
Regex_Caret_Period_Plus_Dollar 5.0851460000001225 ns/iter 5.098738000000367 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 5.024025000000165 ns/iter 5.113770000000386 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 5.058346999999799 ns/iter 5.128291999999419 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.017746999999986 ns/iter 5.042024000000538 ns/iter 1.00
Regex_Caret_X_Hyphen 8.235501116071424 ns/iter 8.274241034489503 ns/iter 1.00
Regex_Period_Md_Dollar 46.52386041347866 ns/iter 46.502543750001735 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.978687500000017 ns/iter 8.056178571428214 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 5.694359000000304 ns/iter 5.6438716517856085 ns/iter 1.01
Regex_Nested_Backtrack 59.251741071426935 ns/iter 59.110437499997815 ns/iter 1.00
JSON_Array_Of_Objects_Unique 565.2972999999974 ns/iter 570.1220535713551 ns/iter 0.99
JSON_Parse_1 8958.14750827014 ns/iter 9799.220312499912 ns/iter 0.91
JSON_Parse_Real 16141.468750000397 ns/iter 16151.67579247314 ns/iter 1.00
JSON_Parse_Decimal 11817.182142857113 ns/iter 11830.706250000489 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 7399871.111110517 ns/iter 7590548.888889417 ns/iter 0.97
JSON_Parse_Integer 6265.0562500000515 ns/iter 6202.336607142708 ns/iter 1.01
JSON_Parse_String_NonSSO_Plain 8750.356918050107 ns/iter 8466.82738023562 ns/iter 1.03
JSON_Parse_String_SSO_Plain 3816.3756850434265 ns/iter 3882.6612723217936 ns/iter 0.98
JSON_Parse_String_Escape_Heavy 22065.821874999612 ns/iter 22028.450000000532 ns/iter 1.00
JSON_Parse_Object_Short_Keys 13120.292857143413 ns/iter 13507.305357143603 ns/iter 0.97
JSON_Parse_Object_Scalar_Properties 6766.182142857449 ns/iter 6869.27053571448 ns/iter 0.98
JSON_Parse_Object_Array_Properties 11871.537500000251 ns/iter 11662.47656249908 ns/iter 1.02
JSON_Parse_Object_Object_Properties 12021.078571428185 ns/iter 12021.453571427239 ns/iter 1.00
JSON_Parse_Nested_Containers 81329.5758928602 ns/iter 85130.293290484 ns/iter 0.96
JSON_From_String_Copy 64.45783928571456 ns/iter 66.43072321427975 ns/iter 0.97
JSON_From_String_Temporary 58.32689285714566 ns/iter 66.13100000001688 ns/iter 0.88
JSON_Number_To_Double 120.44255357142423 ns/iter 144.23194642854958 ns/iter 0.84
JSON_Object_At_Last_Key/8 7.610160714285489 ns/iter 9.314357101273604 ns/iter 0.82
JSON_Object_At_Last_Key/32 23.32240312499856 ns/iter 23.212161571289652 ns/iter 1.00
JSON_Object_At_Last_Key/128 89.4292058290468 ns/iter 92.35356284134443 ns/iter 0.97
JSON_Object_At_Last_Key/512 425.1321250000118 ns/iter 428.8776496014228 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 103.06563825599498 ns/iter 103.69431249998229 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 209.15503125001678 ns/iter 212.22690624995266 ns/iter 0.99
JSON_Divisible_By_Decimal 310.9328125000183 ns/iter 316.8144642857433 ns/iter 0.98
JSON_String_Equal/10 10.3583124999993 ns/iter 10.597331250000508 ns/iter 0.98
JSON_String_Equal/100 11.633317857142549 ns/iter 11.880607142858578 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5769382142856654 ns/iter 2.519640357143414 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.214236320472983 ns/iter 14.290382748701328 ns/iter 0.99
JSON_String_Fast_Hash/10 6.741727678571254 ns/iter 6.617723214288012 ns/iter 1.02
JSON_String_Fast_Hash/100 6.580322321428562 ns/iter 6.676488839284035 ns/iter 0.99
JSON_String_Key_Hash/10 5.387039285714426 ns/iter 5.363341071427742 ns/iter 1.00
JSON_String_Key_Hash/100 11.93310714285697 ns/iter 11.908358928573243 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 4.705139175157208 ns/iter 4.753614733203681 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 4.723283715900283 ns/iter 4.723260335875886 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.766449286778296 ns/iter 4.757612287405826 ns/iter 1.00
Pointer_Object_Traverse 70.70781249999872 ns/iter 70.96480357142404 ns/iter 1.00
Pointer_Object_Try_Traverse 71.27180803571268 ns/iter 71.51566964286157 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 184.55996290713225 ns/iter 195.50446175251093 ns/iter 0.94
Pointer_Walker_Schema_ISO_Language 10539760.937500197 ns/iter 10577984.375000682 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 2457922.8813558887 ns/iter 2420414.2857139944 ns/iter 1.02
Pointer_Maybe_Tracked_Deeply_Nested/1 3642935.8288771673 ns/iter 3674164.1711220695 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 574.5623883928503 ns/iter 560.5082589286476 ns/iter 1.03
JSONPath_Descendant_Filter_Nested 2391.2029116038693 ns/iter 2446.1614285712585 ns/iter 0.98
URITemplateRouter_Create 40331.31138392955 ns/iter 40709.341288491145 ns/iter 0.99
URITemplateRouter_Match 235.46110095298914 ns/iter 240.89860034610035 ns/iter 0.98
URITemplateRouter_Match_BasePath 265.33887208307965 ns/iter 272.45062600223565 ns/iter 0.97
URITemplateRouterView_Restore 32608.85951343107 ns/iter 32919.579993435866 ns/iter 0.99
URITemplateRouterView_Match 179.86978391693347 ns/iter 180.6122321428611 ns/iter 1.00
URITemplateRouterView_Match_BasePath 209.15841253756588 ns/iter 206.30067605802722 ns/iter 1.01
URITemplateRouterView_Arguments 533.1117857142686 ns/iter 538.2943749998909 ns/iter 0.99
JSONL_Parse_Large 33706357.142856784 ns/iter 33122600.00000476 ns/iter 1.02
JSONL_Parse_Large_GZIP 33683976.19047549 ns/iter 33655776.19048227 ns/iter 1.00
JSONLD_Catalog_Annotation_List_Populate 3182196.428571363 ns/iter 3078333.928571502 ns/iter 1.03
JSONLD_Catalog_Materialize 8045719.999999947 ns/iter 7966831.111111282 ns/iter 1.01
HTML_Build_Table_100000 93607128.57142875 ns/iter 92791542.85712008 ns/iter 1.01
HTML_Render_Table_100000 7925965.555555573 ns/iter 7584588.888888296 ns/iter 1.05
GZIP_Compress_ISO_Language_Set_3_Locations 37402749.99999984 ns/iter 36836947.368424505 ns/iter 1.02
GZIP_Decompress_ISO_Language_Set_3_Locations 9886716.00000013 ns/iter 9950712.500000237 ns/iter 0.99
GZIP_Compress_ISO_Language_Set_3_Schema 2109450.6249999865 ns/iter 2127060.579710235 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Schema 616008.6000000433 ns/iter 641757.7678571921 ns/iter 0.96
JOSE_VerifySignature_RS256 21299.503801287734 ns/iter 21652.62187500616 ns/iter 0.98
JOSE_VerifySignature_ES512 1381729.919678633 ns/iter 1389756.4257029875 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 053d94b Previous: 555819e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.030717896884704 ns/iter 1.8764544462607737 ns/iter 1.08
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.9416315190260405 ns/iter 1.8523876600535336 ns/iter 1.05
Regex_Period_Asterisk 2.2550746150047254 ns/iter 1.979928752368713 ns/iter 1.14
Regex_Group_Period_Asterisk_Group 2.0548387670039068 ns/iter 1.9396399973352507 ns/iter 1.06
Regex_Period_Plus 3.071935805051519 ns/iter 2.3118838578917345 ns/iter 1.33
Regex_Period 2.74245672401921 ns/iter 2.2644054622325585 ns/iter 1.21
Regex_Caret_Period_Plus_Dollar 2.569753560121499 ns/iter 2.3860045944539796 ns/iter 1.08
Regex_Caret_Group_Period_Plus_Group_Dollar 2.835524431782049 ns/iter 2.227797364641488 ns/iter 1.27
Regex_Caret_Period_Asterisk_Dollar 2.543241025895593 ns/iter 1.8400281751882706 ns/iter 1.38
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.1132009903309847 ns/iter 2.0185613843550634 ns/iter 1.05
Regex_Caret_X_Hyphen 7.875347561277297 ns/iter 7.295261542223797 ns/iter 1.08
Regex_Period_Md_Dollar 27.332589035772273 ns/iter 23.64120284044929 ns/iter 1.16
Regex_Caret_Slash_Period_Asterisk 7.335075927875597 ns/iter 4.9482427784847465 ns/iter 1.48
Regex_Caret_Period_Range_Dollar 3.031938164243174 ns/iter 2.1223790279703882 ns/iter 1.43
Regex_Nested_Backtrack 45.25982863876585 ns/iter 32.88852192446522 ns/iter 1.38
JSON_Array_Of_Objects_Unique 522.3479160000579 ns/iter 403.3651659573707 ns/iter 1.29
JSON_Parse_1 4393.881356454471 ns/iter 3493.6326159078785 ns/iter 1.26
JSON_Parse_Real 8510.128893737497 ns/iter 5743.340042833094 ns/iter 1.48
JSON_Parse_Decimal 7649.015649673881 ns/iter 6291.313644438914 ns/iter 1.22
JSON_Parse_Schema_ISO_Language 2633413.2602228727 ns/iter 2219229.164335378 ns/iter 1.19
JSON_Parse_Integer 3953.0477588555464 ns/iter 3543.023575163489 ns/iter 1.12
JSON_Parse_String_NonSSO_Plain 4916.342898868443 ns/iter 3166.763882407422 ns/iter 1.55
JSON_Parse_String_SSO_Plain 2373.9193492716904 ns/iter 2375.4144746364655 ns/iter 1.00
JSON_Parse_String_Escape_Heavy 20726.45068394635 ns/iter 19373.389458152396 ns/iter 1.07
JSON_Parse_Object_Short_Keys 7727.006132952218 ns/iter 5923.994363750124 ns/iter 1.30
JSON_Parse_Object_Scalar_Properties 3911.913831610438 ns/iter 2792.172313154382 ns/iter 1.40
JSON_Parse_Object_Array_Properties 5572.188942431634 ns/iter 3743.210868752348 ns/iter 1.49
JSON_Parse_Object_Object_Properties 4697.669421587795 ns/iter 4488.7886193308495 ns/iter 1.05
JSON_Parse_Nested_Containers 28342.62765766628 ns/iter 28272.612995384665 ns/iter 1.00
JSON_From_String_Copy 15.366437993892223 ns/iter 11.96505995236014 ns/iter 1.28
JSON_From_String_Temporary 8.74610931636707 ns/iter 6.715896828475788 ns/iter 1.30
JSON_Number_To_Double 57.70865268915823 ns/iter 37.22129735651696 ns/iter 1.55
JSON_Object_At_Last_Key/8 5.756749076453154 ns/iter 4.73089248378541 ns/iter 1.22
JSON_Object_At_Last_Key/32 16.148849530455315 ns/iter 14.079435638681678 ns/iter 1.15
JSON_Object_At_Last_Key/128 62.079200666414266 ns/iter 73.83569085154896 ns/iter 0.84
JSON_Object_At_Last_Key/512 247.6030438072702 ns/iter 207.88735678609112 ns/iter 1.19
JSON_Fast_Hash_Helm_Chart_Lock 82.78225356799652 ns/iter 65.08394949580317 ns/iter 1.27
JSON_Equality_Helm_Chart_Lock 242.66188328720594 ns/iter 192.6724510070779 ns/iter 1.26
JSON_Divisible_By_Decimal 235.52540490216307 ns/iter 199.09530457133138 ns/iter 1.18
JSON_String_Equal/10 7.949639489337363 ns/iter 7.1612913959623015 ns/iter 1.11
JSON_String_Equal/100 9.610387571387344 ns/iter 7.587493371745841 ns/iter 1.27
JSON_String_Equal_Small_By_Perfect_Hash/10 0.40784697423502403 ns/iter 0.3698955868657911 ns/iter 1.10
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.161386260189129 ns/iter 3.6627113277068073 ns/iter 1.14
JSON_String_Fast_Hash/10 3.5426282713478354 ns/iter 2.7587290523442225 ns/iter 1.28
JSON_String_Fast_Hash/100 3.5539888277993965 ns/iter 2.200204528259719 ns/iter 1.62
JSON_String_Key_Hash/10 2.0945248943452017 ns/iter 1.7875733336898645 ns/iter 1.17
JSON_String_Key_Hash/100 2.5715197213671717 ns/iter 2.805596526014281 ns/iter 0.92
JSON_Object_Defines_Miss_Same_Length 3.598472471201857 ns/iter 3.1364627956815543 ns/iter 1.15
JSON_Object_Defines_Miss_Too_Small 3.6629466149508847 ns/iter 3.839534529649303 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Large 3.562916678848897 ns/iter 2.929311861825142 ns/iter 1.22
Pointer_Object_Traverse 27.400195037437246 ns/iter 21.631146989176596 ns/iter 1.27
Pointer_Object_Try_Traverse 38.415305965986086 ns/iter 35.52099688537521 ns/iter 1.08
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.9272070306258 ns/iter 164.80852860068757 ns/iter 1.08
Pointer_Walker_Schema_ISO_Language 1534903.3180778483 ns/iter 1698128.9264369227 ns/iter 0.90
Pointer_Maybe_Tracked_Deeply_Nested/0 932162.9084880062 ns/iter 963645.4190341033 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/1 1247310.7351350845 ns/iter 1236215.968404396 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 397.3077152379511 ns/iter 503.3201117274184 ns/iter 0.79
JSONPath_Descendant_Filter_Nested 1350.8176709904217 ns/iter 1369.3401778616355 ns/iter 0.99
URITemplateRouter_Create 20413.231857625127 ns/iter 26735.343389126 ns/iter 0.76
URITemplateRouter_Match 183.30031150624467 ns/iter 216.6225196278499 ns/iter 0.85
URITemplateRouter_Match_BasePath 212.03934268432226 ns/iter 264.684934868866 ns/iter 0.80
URITemplateRouterView_Restore 11616.961003977041 ns/iter 15439.065988250639 ns/iter 0.75
URITemplateRouterView_Match 169.41403353069566 ns/iter 198.14987513449262 ns/iter 0.85
URITemplateRouterView_Match_BasePath 178.20469403795525 ns/iter 205.20228851792322 ns/iter 0.87
URITemplateRouterView_Arguments 571.7233572025358 ns/iter 707.8763377177683 ns/iter 0.81
JSONL_Parse_Large 8205879.361905014 ns/iter 10148534.935484027 ns/iter 0.81
JSONL_Parse_Large_GZIP 8286533.8000008 ns/iter 10243555.343750544 ns/iter 0.81
JSONLD_Catalog_Annotation_List_Populate 525295.2407825718 ns/iter 815454.8026634965 ns/iter 0.64
JSONLD_Catalog_Materialize 2498663.7760251598 ns/iter 3740666.884816893 ns/iter 0.67
HTML_Build_Table_100000 48716627.99999805 ns/iter 60020080.07692439 ns/iter 0.81
HTML_Render_Table_100000 1737199.0238611717 ns/iter 2771965.924398735 ns/iter 0.63
GZIP_Compress_ISO_Language_Set_3_Locations 30816030.318181798 ns/iter 38855109.68421171 ns/iter 0.79
GZIP_Decompress_ISO_Language_Set_3_Locations 3574495.223958252 ns/iter 5141677.16030512 ns/iter 0.70
GZIP_Compress_ISO_Language_Set_3_Schema 1953077.3492959554 ns/iter 2217620.487261281 ns/iter 0.88
GZIP_Decompress_ISO_Language_Set_3_Schema 329079.79261506937 ns/iter 402426.13765176485 ns/iter 0.82
JOSE_VerifySignature_RS256 25020.998508655237 ns/iter 33875.141368764766 ns/iter 0.74
JOSE_VerifySignature_ES512 1026444.0388889776 ns/iter 1420132.0873563867 ns/iter 0.72

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 4 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="contrib/website.sh">

<violation number="1" location="contrib/website.sh:39">
P1: When the supplied build directory was configured with GCC, CMake ignores these newly exported compiler variables and applies the LLVM-only flags to the cached compiler. Require a clean Clang-configured build or detect and replace incompatible cached compilers before configuring coverage.</violation>

<violation number="2" location="contrib/website.sh:259">
P2: On a reused build directory, removed or no-longer-generated coverage pages remain published because neither the LLVM HTML output directory nor the coverage destination is cleaned before copying. Clean both report trees before generating or publishing the new report.</violation>

<violation number="3" location="contrib/website.sh:271">
P2: The authoritative coverage summary is never published: it remains under `build/coverage`, while the Pages workflow uploads only `build/website`. Because the generated HTML can undercount the cases called out above, copy the summary into the site and expose it, or generate the HTML from the merged trace.</violation>
</file>

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread contrib/website.sh

# The kind of coverage this produces is an LLVM feature, so the toolchain is
# not a choice the caller gets to make
CC=clang

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: When the supplied build directory was configured with GCC, CMake ignores these newly exported compiler variables and applies the LLVM-only flags to the cached compiler. Require a clean Clang-configured build or detect and replace incompatible cached compilers before configuring coverage.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At contrib/website.sh, line 39:

<comment>When the supplied build directory was configured with GCC, CMake ignores these newly exported compiler variables and applies the LLVM-only flags to the cached compiler. Require a clean Clang-configured build or detect and replace incompatible cached compilers before configuring coverage.</comment>

<file context>
@@ -15,19 +23,251 @@ then
+
+# The kind of coverage this produces is an LLVM feature, so the toolchain is
+# not a choice the caller gets to make
+CC=clang
+CXX=clang++
+export CC
</file context>

Comment thread contrib/website.sh
# by entry, and only the entries about to be written are cleared, so that the
# destination is never removed wholesale
for ENTRY in "$OUTPUT_DIRECTORY"/html/*
for ENTRY in "$WORK_DIRECTORY"/html/*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: On a reused build directory, removed or no-longer-generated coverage pages remain published because neither the LLVM HTML output directory nor the coverage destination is cleaned before copying. Clean both report trees before generating or publishing the new report.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At contrib/website.sh, line 259:

<comment>On a reused build directory, removed or no-longer-generated coverage pages remain published because neither the LLVM HTML output directory nor the coverage destination is cleaned before copying. Clean both report trees before generating or publishing the new report.</comment>

<file context>
@@ -15,19 +23,251 @@ then
+# Whatever the report generator emitted is taken as is rather than named entry
+# by entry, and only the entries about to be written are cleared, so that the
+# destination is never removed wholesale
+for ENTRY in "$WORK_DIRECTORY"/html/*
+do
+  TARGET="$REPORT_DIRECTORY/$(basename "$ENTRY")"
</file context>

Comment thread contrib/website.sh
cmake --build "$BUILD_DIRECTORY" --config Debug --target doxygen

grep TOTAL "$WORK_DIRECTORY/summary.txt"
echo "Coverage summary: $WORK_DIRECTORY/summary.txt"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The authoritative coverage summary is never published: it remains under build/coverage, while the Pages workflow uploads only build/website. Because the generated HTML can undercount the cases called out above, copy the summary into the site and expose it, or generate the HTML from the merged trace.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At contrib/website.sh, line 271:

<comment>The authoritative coverage summary is never published: it remains under `build/coverage`, while the Pages workflow uploads only `build/website`. Because the generated HTML can undercount the cases called out above, copy the summary into the site and expose it, or generate the HTML from the merged trace.</comment>

<file context>
@@ -15,19 +23,251 @@ then
 cmake --build "$BUILD_DIRECTORY" --config Debug --target doxygen
 
+grep TOTAL "$WORK_DIRECTORY/summary.txt"
+echo "Coverage summary: $WORK_DIRECTORY/summary.txt"
+echo "Coverage trace: $WORK_DIRECTORY/coverage.lcov"
 echo "Website: $SITE_DIRECTORY/index.html"
</file context>

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
jviotti merged commit 7308581 into main Sep 8, 2026
15 checks passed
@jviotti
jviotti deleted the coverage-website branch September 8, 2026 22:39
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