Libraries installed by rust 1.94.0 take 4.5x disk space compared to 1.93.1
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
I'm not really sure if there's any issue but raising this issue to double check below behavior is indeed expected.
Taking aarch64-unknown-linux-gnu target as an example, artifacts built and installed by rust 1.94.0 grew significantly compared to 1.93.1:
rust 1.93.1:
$ du -hs /usr/lib/rustlib/aarch64-unknown-linux-gnu/lib
113M /usr/lib/rustlib/aarch64-unknown-linux-gnu/lib
rust 1.94.0:
$ du -hs /usr/lib/rustlib/aarch64-unknown-linux-gnu/lib
506M /usr/lib/rustlib/aarch64-unknown-linux-gnu/lib
That's mainly attributed to many libs which were not present in 1.93.1 which account for 369M:
New libraries
libaho_corasick-* liballocator_api2-* libannotate_snippets-* libanstream-* libanstyle-* libanstyle_parse-* libanstyle_query-* libar_archive_writer-* libarrayref-* libarrayvec-* libbitflags-* libblake3-* libblock_buffer-* libbstr-* libcolorchoice-* libconstant_time_eq-* libcpufeatures-* libcrc32fast-* libcrossbeam_deque-* libcrossbeam_epoch-* libcrossbeam_utils-* libcrypto_common-* libctrlc-* libdarling_macro-* libdatafrog-* libderive_setters-* libderive_where-* libdigest-* libdisplaydoc-* libdyn_clone-* libeither-* libelsa-* libena-* libequivalent-* libfallible_iterator-* libfastrand-* libfind_msvc_tools-* libflate2-* libfluent_bundle-* libfluent_langneg-* libfluent_syntax-* libfoldhash-* libgeneric_array-* libgetrandom-* libgsgdt-* libicu_collections-* libicu_list-* libicu_locale-* libicu_locale_core-* libicu_locale_data-* libicu_provider-* libindexmap-* libintl_memoizer-* libintl_pluralrules-* libis_terminal_polyfill-* libitertools-* libitoa-* libjiff-* libjobserver-* liblazy_static-* libleb128-* liblibloading-* liblinux_raw_sys-* liblitemap-* liblock_api-* liblog-* libmatchers-* libmd5-* libmeasureme-* libmemmap2-* libnix-* libnu_ansi_term-* libodht-* libonce_cell-* libparking_lot-* libparking_lot_core-* libpathdiff-* libpin_project_lite-* libpolonius_engine-* libpotential_utf-* libppv_lite86-* libproc_macro_hack-* libpsm-* libpulldown_cmark-* libpulldown_cmark_escape-* libpunycode-* librand-* librand_chacha-* librand_core-* librand_xoshiro-* libref_cast-* libref_cast_impl-* libregex-* libregex_automata-* libregex_syntax-* librustc_abi-* librustc_apfloat-* librustc_arena-* librustc_ast-* librustc_ast_ir-* librustc_ast_lowering-* librustc_ast_passes-* librustc_ast_pretty-* librustc_attr_parsing-* librustc_baked_icu_data-* librustc_borrowck-* librustc_builtin_macros-* librustc_codegen_llvm-* librustc_codegen_ssa-* librustc_const_eval-* librustc_data_structures-* librustc_driver-* librustc_driver_impl-* librustc_error_codes-* librustc_error_messages-* librustc_errors-* librustc_expand-* librustc_feature-* librustc_fluent_macro-* librustc_fs_util-* librustc_graphviz-* librustc_hash-* librustc_hashes-* librustc_hir-* librustc_hir_analysis-* librustc_hir_id-* librustc_hir_pretty-* librustc_hir_typeck-* librustc_incremental-* librustc_index-* librustc_index_macros-* librustc_infer-* librustc_interface-* librustc_lexer-* librustc_lint-* librustc_lint_defs-* librustc_llvm-* librustc_log-* librustc_macros-* librustc_metadata-* librustc_middle-* librustc_mir_build-* librustc_mir_dataflow-* librustc_mir_transform-* librustc_monomorphize-* librustc_next_trait_solver-* librustc_parse-* librustc_parse_format-* librustc_passes-* librustc_pattern_analysis-* librustc_privacy-* librustc_proc_macro-* librustc_public-* librustc_public_bridge-* librustc_query_impl-* librustc_query_system-* librustc_resolve-* librustc_sanitizers-* librustc_serialize-* librustc_session-* librustc_span-* librustc_stable_hash-* librustc_symbol_mangling-* librustc_target-* librustc_thread_pool-* librustc_traits-* librustc_trait_selection-* librustc_transmute-* librustc_type_ir-* librustc_type_ir_macros-* librustc_ty_utils-* librustix-* libruzstd-* libryu-* libschemars-* libschemars_derive-* libscoped_tls-* libscopeguard-* libself_cell-* libserde-* libserde_core-* libserde_derive-* libserde_json-* libserde_path_to_error-* libsha1-* libsha2-* libsharded_slab-* libshlex-* libsimd_adler32-* libsmallvec-* libstable_deref_trait-* libstacker-* libstatic_assertions-* libtempfile-* libtermize-* libthin_vec-* libthiserror-* libthiserror_impl-* libthorin-* libthread_local-* libtinystr-* libtinyvec-* libtinyvec_macros-* libtracing-* libtracing_attributes-* libtracing_core-* libtracing_log-* libtracing_subscriber-* libtracing_tree-* libtwox_hash-* libtype_map-* libtypenum-* libunicase-* libunic_langid-* libunic_langid_impl-* libunic_langid_macros-* libunic_langid_macros_impl-* libunicode_ident-* libunicode_normalization-* libunicode_properties-* libunicode_script-* libunicode_security-* libunicode_width-* libutf8parse-* libwasm_encoder-* libwasmparser-* libwriteable-* libyoke-* libyoke_derive-* libzerocopy-* libzerofrom-* libzerofrom_derive-* libzerotrie-* libzerovec-* libzerovec_derive-*Although those present in 1.93.1 grew too:
$ du -hsc libaddr2line-* libadler2-* liballoc-* libcfg_if-* libcompiler_builtins-* libcore-* libgetopts-* libgimli-* libhashbrown-* liblibc-* libmemchr-* libminiz_oxide-* libobject-* libpanic_abort-* libpanic_unwind-* libproc_macro-* librustc_demangle-* librustc_literal_escaper-* librustc_std_workspace_alloc-* librustc_std_workspace_core-* librustc_std_workspace_std-* libstd-* libstd_detect-* libsysroot-* libtest-* libunwind-* | tail -n1
138M total
Could you confirm it aligns with expectations?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the installed rustlib directories and library lists reported for Rust 1.93.1 and 1.94.0 on the aarch64-unknown-linux-gnu target. Determine whether the additional libraries and size increase are expected release contents or a regression; done means documenting the cause and confirming the expected behavior or identifying a reproducible issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100