feat(std): xxHash32/64 and the LZ4 frame format (step 2 of #121) #782
No reviewers
Labels
No labels
loop
queue/failed
queue/queued
ready
status/parked
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
torbscript/language!782
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/781-xxhash-lz4-frame"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
std/digest:Bytes.xxHash32(seed)andBytes.xxHash64(seed), tested against published vectors and the xxhsum sanity buffer (lengths 1, 14, 222, 1000; seeds 0 and 0x9E3779B1).std/compression:Bytes.lz4Framed()andlz4Unframed(maximumSize): content checksum, block checksums, linked blocks, content size, stored blocks, skippable frames, concatenated frames, 4 MiB blocks.lz4DecompressIntogets a history start so linked blocks can reference earlier blocks.Fail(CompressionError)with an offset: bad magic, header checksum, flipped content checksum, truncated block, output overmaximumSize, reserved bits, version, block size.docs/standard-library/compression.md, regeneratedskills/, FIRST-PARTY.md gap 26.Evidence
torb test std/compression std/digest: 92 passed.torb format --check: clean. Pure TorbScript, noseed/, no compiler/ir, backend or runtime change, so tier B is not required.Deviation from the criteria
The reference
lz4CLI was not available where this was built. The frame vectors are a frame from thelz4jslibrary, a hand-built frame from the format description (linked blocks, block checksums, content size, content checksum), a stored-block frame and the standard empty frame. Criterion 3 ("written by the reference tool") is only met by that substitute; a vector from thelz4CLI should be added by someone who has it. HenceRefs, notCloses.Bootstrap, gates and LTO builds were not run locally; CI only.
Refs #781
CI red on
6ea11b7:ci / tier A (linux-x64)failed after 38m19s, andci / gatesfailed after 0s (most likely because it needs tier A). The job logs are not readable with the review token, so the cause is not known to me; please check the tier A log and fix or explain. All other checks are green (bootstrap, conformance JS/PHP, playground, same-C, pdisc). This is not a review: it will run again on the next CI result for this PR.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.