Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize binstalk-{manifest, types} #610

Merged
merged 10 commits into from
Dec 21, 2022
Merged

Conversation

NobodyXu
Copy link
Member

@NobodyXu NobodyXu commented Dec 17, 2022

  • Add new dep maybe-owned v0.3.4 to binstalk-types with features serde

  • Re-export maybe_owned in binstalk-types

  • Optimize CrateSource::url: Use MaybeOwned<'static, Url>
    to avoid cloning in CrateSource::cratesio_registry

  • Optimize Source: Use MaybeOwned<'static, Url>
    to avoid cloning in Source::cratesio_registry and
    impl From<&CrateSource> for Source.

  • Optimize Source: Add lifetime <'a> to avoid cloning
    in impl<'a> From<&'a CrateSource> for Source<'a>

  • Optimize CratesToml::append_to_path: Avoid cloning
    caused by CrateVersionSource::from by manually format! name, version
    and source into string.

  • Add new dep beef v0.5.2 to binstalk-manifests with features impl_serde

  • Optimize CratesToml::append_to_path: Eliminate metadata.bins.clone() by using Cow

  • Replace dep toml_edit with toml v0.5.10 in binstalk-manifests
    to speed up compilation and reduce bloat.

    Previously we switch to toml_edit because it is unmaintained, but now
    with it moved into toml-rs/toml as a workspace, it is now under active
    maintenance again, thus we switch back to it.

Signed-off-by: Jiahao XU [email protected]

@NobodyXu NobodyXu marked this pull request as ready for review December 17, 2022 12:47
@NobodyXu NobodyXu enabled auto-merge (squash) December 17, 2022 12:48
@NobodyXu
Copy link
Member Author

The debug CI has shown that this PR indeed reduces the size of the binary.

with features serde

Signed-off-by: Jiahao XU <[email protected]>
to avoid cloning in `CrateSource::cratesio_registry`

Signed-off-by: Jiahao XU <[email protected]>
to avoid cloning in `Source::cratesio_registry` and
`impl From<&CrateSource> for Source`.

Signed-off-by: Jiahao XU <[email protected]>
in `impl<'a> From<&'a CrateSource> for Source<'a>`

Signed-off-by: Jiahao XU <[email protected]>
caused by `CrateVersionSource::from` by manually `format!` name, version
and source into string.

Signed-off-by: Jiahao XU <[email protected]>
with features impl_serde

Signed-off-by: Jiahao XU <[email protected]>
to speed up compilation and reduce bloat.

Previously we switch to toml_edit because it is unmaintained, but now
with it moved into toml-rs/toml as a workspace, it is now under active
maintenance again, thus we switch back to it.

Signed-off-by: Jiahao XU <[email protected]>
@NobodyXu NobodyXu force-pushed the optimize/avoid-cloning-in-manifest branch from 90eb5ed to 3adc4a2 Compare December 19, 2022 08:01
@NobodyXu NobodyXu merged commit fef8bb6 into main Dec 21, 2022
@NobodyXu NobodyXu deleted the optimize/avoid-cloning-in-manifest branch December 21, 2022 06:07
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.

2 participants