Repository navigation
cmdio: type-erase iterators in RenderIterator - #7072
Merged
Merged
Conversation
The pager and iterator renderers were generic over the element type and got instantiated once per SDK list type (~170 shapes, 2240 functions). Wrapping the iterator as listing.Iterator[any] makes them compile once. Stripped linux/amd64 release build: 55,840,928 -> 52,543,648 bytes (-3.30 MB). Co-authored-by: Isaac <no-reply@databricks.com>
Collaborator
Integration test reportCommit: 2191915
Top 6 slowest tests (at least 2 minutes):
|
shreyas-goenka
approved these changes
Oct 15, 2026
Collaborator
Integration test reportCommit: 923fd02
52 interesting tests: 52 FAIL
Top 50 slowest tests (at least 2 minutes):
|
Collaborator
Integration test reportCommit: 923fd02
85 interesting tests: 85 FAIL
Top 50 slowest tests (at least 2 minutes):
|
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.
Changes
RenderIterator[T]wraps the iterator aslisting.Iterator[any]and passes it to a non-generic renderer, so the pager and iterator renderers compile once instead of once per SDK list type (~170 shapes, 2240 functions).The type parameter was not used for anything type-specific: every renderer converted the element to
anyright afterNext(json.MarshalIndent,[]anybuffers fortemplate.Executeand the pager). The conversion now happens once inanyIterator[T].Next, so output is unchanged.Why
Binary size: the stripped linux/amd64 release build goes from 55.8 MB to 52.5 MB (-3.3 MB).
Tests
Existing cmdio unit tests and acceptance tests for workspace/account commands.
This pull request and its description were written by Isaac.