Skip to content

chore: dedup ZDICT sample-flattening (Sonar gate)#24

Merged
dfa1 merged 1 commit into
mainfrom
chore/dedup-dictionary-training
Jun 26, 2026
Merged

chore: dedup ZDICT sample-flattening (Sonar gate)#24
dfa1 merged 1 commit into
mainfrom
chore/dedup-dictionary-training

Conversation

@dfa1

@dfa1 dfa1 commented Jun 26, 2026

Copy link
Copy Markdown
Owner

The Sonar quality gate went red on a single condition — new_duplicated_lines_density = 9.5% — localized entirely to ZstdDictionary. train / optimize / finalizeFrom each repeated the block that flattens the samples into one native buffer + a parallel size_t[] of lengths, plus the same produced-size check / copy-out tail. The null-validation edits (#22) touched these methods, so the long-standing duplication started counting as new-code duplication.

Extract three private helpers — flatten(arena, samples) -> FlatSamples, toDictionary(dictBuf, produced, what), and requireNonEmpty(samples, verb) — shared by the three trainers. No behaviour or message changes.

Test

./mvnw -pl zstd,integration-tests -am test -Dtest=ZstdDictionaryTest,GoldenCorpusTest — green (incl. golden-dictionaries interop), checkstyle clean.

🤖 Generated with Claude Code

train / optimize / finalizeFrom each repeated the same block that packs
the samples into one native buffer plus a parallel size_t[] of lengths,
and the same produced-size error-check/copy-out tail. The recent
null-validation edits marked these methods as "new code", so Sonar's
quality gate failed on new_duplicated_lines_density (9.5%).

Extract flatten() -> FlatSamples, toDictionary(), and requireNonEmpty();
the three trainers now share them. Behaviour and messages unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dfa1 dfa1 merged commit 0c74b4c into main Jun 26, 2026
1 check passed
@dfa1 dfa1 deleted the chore/dedup-dictionary-training branch June 26, 2026 21:16
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