fix: add and leverage helper functions for [safely] setting capacity#2318
Merged
egibs merged 1 commit intochainguard-dev:mainfrom Jan 29, 2026
Merged
fix: add and leverage helper functions for [safely] setting capacity#2318egibs merged 1 commit intochainguard-dev:mainfrom
egibs merged 1 commit intochainguard-dev:mainfrom
Conversation
Signed-off-by: egibs <20933572+egibs@users.noreply.github.com>
stevebeattie
approved these changes
Jan 29, 2026
Member
stevebeattie
left a comment
There was a problem hiding this comment.
Nice, thanks for adding unit tests.
jonjohnsonjr
added a commit
to jonjohnsonjr/melange
that referenced
this pull request
Jan 30, 2026
…apacity (chainguard-dev#2318)" This reverts commit ae3c12f. This package adds unnecessary noise around a very common operation. If a melange program actually has anywhere close to `math.MaxInt` values of anything, we're never going to actually finish executing it, or we'll run out of memory pretty quickly. Go is a memory safe language. If you attempt to allocate a slice with negative capacity, it will panic, which is the only reasonable thing to do. Attempting to "safely" allocate, instead, `math.MaxInt` of anything just delays the problem very slightly. If we actually need that capacity, we're not going to be able to execute the program. Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
jonjohnsonjr
added a commit
that referenced
this pull request
Jan 30, 2026
…apacity (#2318)" (#2320) This reverts commit ae3c12f. This package adds unnecessary noise around a very common operation. If a melange program actually has anywhere close to `math.MaxInt` values of anything, we're never going to actually finish executing it, or we'll run out of memory pretty quickly. Go is a memory safe language. If you attempt to allocate a slice with negative capacity, it will panic, which is the only reasonable thing to do. Attempting to "safely" allocate, instead, `math.MaxInt` of anything just delays the problem very slightly. If we actually need that capacity, we're not going to be able to execute the program. Signed-off-by: Jon Johnson <jon.johnson@chainguard.dev>
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.
Follow-up for #2317
When setting slice capacity, we usually try to anticipate this by using the length of another map/slice value. While these are usually closer to zero as opposed to
math.MaxInt, we should still have a convenient way of doing this safely that doesn't involve copy-pasted boilerplate for each instance.