perf(state): skip base64 forks for empty subshell-context fields#768
Merged
Conversation
Extract encode_field, which returns an empty field for empty input without forking base64 (base64 of "" is "" anyway, so the wire format is unchanged). A passing test's title, hook message and output are all empty, so this removes three forks per test. Also short-circuit decode_base64 on empty input. No behaviour change. Closes #762.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤔 Background
Related #762
Every test base64-encoded its title, hook message and output when exporting subshell context, forking
base64three times even though a passing test leaves all three empty.💡 Changes
encode_field, which returns an empty field for empty input with no fork;base64of""is"", so the wire format is byte-identical. Also short-circuitdecode_base64on empty input.base64101 -> 1 (three encodes + the output decode removed per test). Platform-independent win.export_subshell_contextcharacterization tests (empty and non-empty fields) plus new round-trip tests (empty, plain, multiline, ANSI) pass; full suite green sequential and--parallel.