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

Extend rustc -Zls #115735

Merged
merged 7 commits into from Sep 13, 2023
Merged

Extend rustc -Zls #115735

merged 7 commits into from Sep 13, 2023

Conversation

bjorn3
Copy link
Member

@bjorn3 bjorn3 commented Sep 10, 2023

This makes it show a lot more things and thus a lot more useful.

@rustbot
Copy link
Collaborator

rustbot commented Sep 10, 2023

r? @compiler-errors

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 10, 2023
@bjorn3
Copy link
Member Author

bjorn3 commented Sep 10, 2023

Related to https://github.com/bjorn3/rust_read_rlib which has been bitrotting for years. The exact subset of crate metadata contents I am printing partially overlaps with rust_read_rlib, but neither is a subset of the other. In the future everything rust_read_rlib could be added to rustc -Zls and a lot more can be shown. Example:

$ ./build/host/stage1/bin/rustc -Zls=all ./build/host/stage1/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-*.rlib
Crate info:
name alloc-e67bb54ecec111f4
hash c282134fde28ab2278f38a2f18514913 stable_crate_id StableCrateId(10831256092331474683)
proc_macro false
triple aarch64-unknown-linux-gnu
edition 2021
symbol_mangling_version Legacy
required_panic_strategy None panic_in_drop_strategy Unwind
has_global_allocator false has_alloc_error_handler false has_panic_handler false has_default_lib_allocator false
compiler_builtins false needs_allocator true needs_panic_runtime false no_builtins false panic_runtime false profiler_runtime false
=External Dependencies=
1 core-3f87a9c32d25ec14 hash 47efed02676e1975687a83cac03f2df4 host_hash None kind Explicit public
2 compiler_builtins-743ea5a6b007d61d hash a1b0673ae79624ebfb30102f57ca431b host_hash None kind Explicit public
3 rustc_std_workspace_core-3a5d24fbcee0e4fd hash 160c8db13eeba0b0f4405fde1c13f9c6 host_hash None kind Explicit public

=Lang items=
exchange_malloc = crate::alloc::exchange_malloc
owned_box = crate::boxed::Box
String = crate::string::String
eh_personality = <missing>

=Lib features=
alloc since 1.36.0
alloc_c_string since 1.64.0
alloc_ffi since 1.64.0
alloc_internals
alloc_module since 1.28.0
allocator_api
append since 1.4.0
arc_counts since 1.15.0
arc_error since 1.52.0
arc_into_inner since 1.70.0
arc_mutate_strong_count since 1.51.0
arc_new_cyclic since 1.60.0
arc_unique since 1.4.0
arc_unwrap_or_clone
arc_weak since 1.4.0
array_chunks
array_try_from_vec since 1.48.0
array_windows
as_c_str since 1.20.0
ascii_char
ascii_methods_on_intrinsics since 1.23.0
async_iterator
binary_heap_append since 1.11.0
binary_heap_as_slice
binary_heap_drain_sorted
binary_heap_extras_15 since 1.5.0
binary_heap_into_iter_sorted
binary_heap_peek_mut since 1.12.0
binary_heap_peek_mut_pop since 1.18.0
binary_heap_retain since 1.70.0
binaryheap_debug since 1.4.0
bool_to_string_specialization since 1.68.0
box_borrow since 1.1.0
box_error since 1.8.0
box_from_array since 1.45.0
box_from_c_str since 1.17.0
box_from_c_string since 1.20.0
box_from_cow since 1.45.0
box_from_slice since 1.17.0
box_from_str since 1.20.0
box_from_vec since 1.20.0
box_into_boxed_slice
box_into_inner
box_into_pin since 1.63.0
box_leak since 1.26.0
box_raw since 1.4.0
box_send_sync_any_downcast since 1.51.0
box_slice_clone since 1.3.0
box_str since 1.4.0
box_str2 since 1.45.0
boxed_array_try_from_vec since 1.66.0
boxed_closure_impls since 1.35.0
boxed_slice_from_iter since 1.32.0
boxed_slice_try_from since 1.43.0
boxed_str_conv since 1.19.0
btree_append since 1.11.0
btree_cursors
btree_drop since 1.7.0
btree_extract_if
btree_range since 1.17.0
btree_retain since 1.53.0
btree_split_off since 1.11.0
btree_unwindsafe since 1.64.0
btreemap_alloc
btreemap_remove_entry since 1.45.0
c_string_from_box since 1.18.0
catch_unwind since 1.9.0
char_to_string_specialization since 1.46.0
chunks_exact since 1.31.0
coerce_unsized
collection_debug since 1.17.0
const_alloc_error
const_box
const_btree_len
const_btree_new since 1.66.0
const_cow_is_borrowed
const_linked_list_new since 1.39.0
const_string_new since 1.39.0
const_vec_deque_new since 1.68.0
const_vec_new since 1.39.0
const_weak_new since 1.73.0
container_error_extra
cow_add since 1.14.0
cow_box_error since 1.22.0
cow_from_cstr since 1.28.0
cow_from_string_ref since 1.28.0
cow_from_vec since 1.8.0
cow_from_vec_ref since 1.28.0
cow_is_borrowed
cow_str_from_iter since 1.12.0
cow_str_to_string_specialization since 1.17.0
cstr_borrow since 1.3.0
cstr_default since 1.10.0
cstr_memory since 1.4.0
cstr_to_str since 1.4.0
cstring_asref since 1.7.0
cstring_drop since 1.13.0
cstring_from_cow_cstr since 1.28.0
cstring_from_vec_of_nonzerou8 since 1.43.0
cstring_from_vec_with_nul since 1.58.0
cstring_into since 1.7.0
debug_btree_map since 1.12.0
dedup_by since 1.16.0
default since 1.11.0
default_box_extra since 1.17.0
default_iters since 1.70.0
deque_extras since 1.16.0
deque_extras_15 since 1.5.0
deque_make_contiguous since 1.48.0
deque_range since 1.51.0
derefmut_for_string since 1.3.0
dispatch_from_dyn
downcast_unchecked
downgraded_weak since 1.10.0
drain since 1.6.0
drain_keep_rest
encode_utf16 since 1.8.0
entry_and_modify since 1.26.0
entry_or_default since 1.28.0
error_downcast since 1.3.0
extend_ref since 1.2.0
extend_string since 1.4.0
extract_if
fmt_arguments_to_string_specialization since 1.71.0
fmt_flags_align since 1.28.0
from_char_for_string since 1.46.0
from_for_ptrs since 1.6.0
from_mut_str_for_string since 1.44.0
from_ref since 1.28.0
from_ref_string since 1.35.0
from_string_for_vec_u8 since 1.14.0
from_utf8_error_as_bytes since 1.26.0
fused since 1.26.0
futures_api since 1.36.0
generator_trait
get_mut_unchecked
global_alloc since 1.28.0
herd_cows since 1.19.0
i8_to_string_specialization since 1.54.0
inclusive_range since 1.26.0
indirect_hasher_impl since 1.22.0
inherent_ascii_escape since 1.60.0
inplace_iteration
insert_str since 1.16.0
into_boxed_c_str since 1.20.0
liballoc_internals
linked_list_contains since 1.12.0
linked_list_cursors
linked_list_remove
map_entry_keys since 1.10.0
map_entry_recover_keys2 since 1.12.0
map_first_last since 1.66.0
map_get_key_value since 1.40.0
map_into_keys_values since 1.54.0
map_try_insert
map_values_mut since 1.10.0
more_box_slice_clone since 1.29.0
new_uninit
or_insert_with_key since 1.50.0
partialeq_vec_for_ref_slice since 1.46.0
partialeq_vec_for_slice since 1.48.0
pattern
pin since 1.33.0
ptr_eq since 1.17.0
ptr_internals
raw_vec_internals
rc_as_ptr since 1.45.0
rc_counts since 1.15.0
rc_downcast since 1.29.0
rc_into_inner since 1.70.0
rc_mutate_strong_count since 1.53.0
rc_raw since 1.17.0
rc_ref_unwind_safe since 1.58.0
rc_unique since 1.4.0
rc_weak since 1.4.0
rchunks since 1.31.0
receiver_trait
rename_connect_to_join since 1.3.0
repeat_generic_slice since 1.40.0
repeat_str since 1.16.0
rust1 since 1.0.0
set_recovery since 1.9.0
shared_from_cow since 1.45.0
shared_from_iter since 1.37.0
shared_from_slice since 1.21.0
shared_from_slice2 since 1.24.0
shared_from_str since 1.62.0
shrink_to since 1.56.0
slice_concat_ext
slice_concat_trait
slice_flatten
slice_from_ptr_range
slice_get_slice since 1.28.0
slice_group_by
slice_range
slice_rsplit since 1.27.0
slice_sort_by_cached_key since 1.34.0
slice_sort_by_key since 1.7.0
smart_ptr_as_ref since 1.5.0
splice since 1.27.0
split_ascii_whitespace since 1.34.0
split_inclusive since 1.51.0
split_off since 1.4.0
std_collections_from_array since 1.56.0
std_internals
str_box_extras since 1.20.0
str_escape since 1.34.0
str_parse_error since 1.5.0
str_replacen since 1.16.0
str_to_string_specialization since 1.9.0
string_as_mut since 1.43.0
string_as_str since 1.7.0
string_borrow_mut since 1.36.0
string_box_error since 1.6.0
string_drain_as_str since 1.55.0
string_extend_from_within
string_from_box since 1.18.0
string_from_cow_str since 1.14.0
string_from_iter_by_ref since 1.17.0
string_leak since 1.72.0
string_remove_matches
string_retain since 1.26.0
string_split_off since 1.16.0
string_to_string_specialization since 1.17.0
stringaddassign since 1.12.0
thin_box
toowned_clone_into since 1.63.0
trusted_len
trusted_random_access
try_reserve since 1.57.0
try_reserve_2 since 1.63.0
try_reserve_kind
u8_to_string_specialization since 1.54.0
unicode_case_mapping since 1.2.0
unique_rc_arc
utf8_chunks
vec_as_mut since 1.5.0
vec_as_ptr since 1.37.0
vec_as_slice since 1.7.0
vec_deque_contains since 1.12.0
vec_deque_partial_eq_slice since 1.17.0
vec_deque_retain since 1.4.0
vec_drain_as_slice since 1.46.0
vec_extend_from_slice since 1.6.0
vec_extend_from_within since 1.53.0
vec_from_array since 1.44.0
vec_from_box since 1.18.0
vec_from_cow_slice since 1.14.0
vec_from_mut since 1.19.0
vec_into_iter_as_slice since 1.15.0
vec_into_iter_clone since 1.8.0
vec_into_raw_parts
vec_intoiter_as_ref since 1.46.0
vec_intoiter_debug since 1.13.0
vec_leak since 1.47.0
vec_push_within_capacity
vec_resize since 1.5.0
vec_resize_with since 1.33.0
vec_retain_mut since 1.61.0
vec_spare_capacity since 1.60.0
vec_splice since 1.21.0
vec_split_at_spare
vecdeque_binary_search since 1.54.0
vecdeque_rotate since 1.36.0
vecdeque_vec_conversions since 1.10.0
wake_trait since 1.51.0
weak_counts since 1.41.0
weak_into_raw since 1.45.0
weak_ptr_eq since 1.39.0

=Items=
Public Mod crate {
    Restricted("crate") Mod macros {
    }
    Restricted("crate") Mod raw_vec {
        Restricted("crate::raw_vec") Enum AllocInit {
            Restricted("crate::raw_vec") Variant Uninitialized {}
            Restricted("crate::raw_vec") Ctor(Variant, Const) ??? {}
            Restricted("crate::raw_vec") Variant Zeroed {}
            Restricted("crate::raw_vec") Ctor(Variant, Const) ??? {}
        }
        Restricted("crate") Struct RawVec {}
        Restricted("crate::raw_vec") Fn finish_grow {}
        Restricted("crate::raw_vec") Fn handle_reserve {}
        Restricted("crate::raw_vec") Fn alloc_guard {}
        Restricted("crate::raw_vec") Fn capacity_overflow {}
    }
    Public Mod alloc {
        Restricted("crate::alloc") Fn __rust_alloc {}
        Restricted("crate::alloc") Fn __rust_dealloc {}
        Restricted("crate::alloc") Fn __rust_realloc {}
        Restricted("crate::alloc") Fn __rust_alloc_zeroed {}
        Restricted("crate::alloc") Static(Not) __rust_no_alloc_shim_is_unstable {}
        Public Fn alloc {}
        Public Fn dealloc {}
        Public Fn realloc {}
        Public Fn alloc_zeroed {}
        Restricted("crate::alloc") Fn exchange_malloc {}
        Restricted("crate::alloc") Fn __rust_alloc_error_handler {}
        Public Fn handle_alloc_error {}
        Public Mod __alloc_error_handler {
            Public Fn __rdl_oom {}
        }
        Restricted("crate") Trait WriteCloneIntoRaw {
            Restricted("crate") AssocFn write_clone_into_raw {}
        }
        Public Struct Global {}
        Public Ctor(Struct, Const) ??? {}
    }
    Public Mod boxed {
        Restricted("crate::boxed") Mod thin {
            Public Struct ThinBox {}
            Restricted("crate::boxed::thin") Struct WithHeader {}
            Restricted("crate::boxed::thin") Ctor(Struct, Fn) ??? {}
            Restricted("crate::boxed::thin") Struct WithOpaqueHeader {}
            Restricted("crate::boxed::thin") Ctor(Struct, Fn) ??? {}
        }
        Public Struct Box {}
        Restricted("crate::boxed") Ctor(Struct, Fn) ??? {}
        Restricted("crate::boxed") Trait BoxFromSlice {
            Restricted("crate::boxed") AssocFn from_slice {}
        }
        Restricted("crate::boxed") Fn boxed_slice_as_array_unchecked {}
        Restricted("crate::boxed") Trait BoxIter {
            Restricted("crate::boxed") AssocTy Item {}
            Restricted("crate::boxed") AssocFn last {}
        }
    }
    Public Mod borrow {
        Public Trait ToOwned {
            Public AssocTy Owned {}
            Public AssocFn to_owned {}
            Public AssocFn clone_into {}
        }
        Public Enum Cow {
            Public Variant Borrowed {}
            Public Ctor(Variant, Fn) ??? {}
            Public Variant Owned {}
            Public Ctor(Variant, Fn) ??? {}
        }
    }
    Public Mod collections {
        Public Mod binary_heap {
            Public Struct BinaryHeap {}
            Public Struct PeekMut {}
            Restricted("crate::collections::binary_heap") Struct RebuildOnDrop {}
            Restricted("crate::collections::binary_heap") Struct Hole {}
            Public Struct Iter {}
            Public Struct IntoIter {}
            Public Struct IntoIterSorted {}
            Public Struct Drain {}
            Public Struct DrainSorted {}
        }
        Restricted("crate::collections") Mod btree {
            Restricted("crate::collections::btree") Mod append {
                Restricted("crate::collections::btree::append") Struct MergeIter {}
                Restricted("crate::collections::btree::append") Ctor(Struct, Fn) ??? {}
            }
            Restricted("crate::collections::btree") Mod borrow {
                Public Struct DormantMutRef {}
            }
            Restricted("crate::collections::btree") Mod dedup_sorted_iter {
                Public Struct DedupSortedIter {}
            }
            Restricted("crate::collections::btree") Mod fix {
            }
            Public Mod map {
                Restricted("crate::collections::btree::map") Mod entry {
                    Public Enum Entry {
                        Public Variant Vacant {}
                        Public Ctor(Variant, Fn) ??? {}
                        Public Variant Occupied {}
                        Public Ctor(Variant, Fn) ??? {}
                    }
                    Public Struct VacantEntry {}
                    Public Struct OccupiedEntry {}
                    Public Struct OccupiedError {}
                }
                Restricted("crate::collections::btree") Const MIN_LEN {}
                Public Struct BTreeMap {}
                Public Struct Iter {}
                Public Struct IterMut {}
                Public Struct IntoIter {}
                Public Struct Keys {}
                Public Struct Values {}
                Public Struct ValuesMut {}
                Public Struct IntoKeys {}
                Public Struct IntoValues {}
                Public Struct Range {}
                Public Struct RangeMut {}
                Public Struct ExtractIf {}
                Restricted("crate::collections::btree") Struct ExtractIfInner {}
                Public Struct Cursor {}
                Public Struct CursorMut {}
            }
            Restricted("crate::collections::btree") Mod mem {
                Public Fn take_mut {}
                Public Fn replace {}
            }
            Restricted("crate::collections::btree") Mod merge_iter {
                Public Struct MergeIterInner {}
                Restricted("crate::collections::btree::merge_iter") Enum Peeked {
                    Restricted("crate::collections::btree::merge_iter") Variant A {}
                    Restricted("crate::collections::btree::merge_iter") Ctor(Variant, Fn) ??? {}
                    Restricted("crate::collections::btree::merge_iter") Variant B {}
                    Restricted("crate::collections::btree::merge_iter") Ctor(Variant, Fn) ??? {}
                }
            }
            Restricted("crate::collections::btree") Mod navigate {
                Public Struct LeafRange {}
                Restricted("crate::collections::btree::navigate") Enum LazyLeafHandle {
                    Restricted("crate::collections::btree::navigate") Variant Root {}
                    Restricted("crate::collections::btree::navigate") Ctor(Variant, Fn) ??? {}
                    Restricted("crate::collections::btree::navigate") Variant Edge {}
                    Restricted("crate::collections::btree::navigate") Ctor(Variant, Fn) ??? {}
                }
                Public Struct LazyLeafRange {}
                Restricted("crate::collections::btree::navigate") Fn full_range {}
                Public Enum Position {
                    Public Variant Leaf {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant Internal {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant InternalKV {}
                    Public Ctor(Variant, Fn) ??? {}
                }
            }
            Restricted("crate::collections::btree") Mod node {
                Restricted("crate::collections::btree::node") Const B {}
                Public Const CAPACITY {}
                Public Const MIN_LEN_AFTER_SPLIT {}
                Restricted("crate::collections::btree::node") Const KV_IDX_CENTER {}
                Restricted("crate::collections::btree::node") Const EDGE_IDX_LEFT_OF_CENTER {}
                Restricted("crate::collections::btree::node") Const EDGE_IDX_RIGHT_OF_CENTER {}
                Restricted("crate::collections::btree::node") Struct LeafNode {}
                Restricted("crate::collections::btree::node") Struct InternalNode {}
                Restricted("crate::collections::btree::node") TyAlias { lazy: false } BoxedNode {}
                Public Struct NodeRef {}
                Public TyAlias { lazy: false } Root {}
                Public Struct Handle {}
                Public Enum LeftOrRight {
                    Public Variant Left {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant Right {}
                    Public Ctor(Variant, Fn) ??? {}
                }
                Restricted("crate::collections::btree::node") Fn splitpoint {}
                Public Struct BalancingContext {}
                Public Enum ForceResult {
                    Public Variant Leaf {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant Internal {}
                    Public Ctor(Variant, Fn) ??? {}
                }
                Public Struct SplitResult {}
                Public Mod marker {
                    Public Enum Leaf {
                    }
                    Public Enum Internal {
                    }
                    Public Enum LeafOrInternal {
                    }
                    Public Enum Owned {
                    }
                    Public Enum Dying {
                    }
                    Public Enum DormantMut {
                    }
                    Public Struct Immut {}
                    Restricted("crate::collections::btree::node::marker") Ctor(Struct, Fn) ??? {}
                    Public Struct Mut {}
                    Restricted("crate::collections::btree::node::marker") Ctor(Struct, Fn) ??? {}
                    Public Struct ValMut {}
                    Restricted("crate::collections::btree::node::marker") Ctor(Struct, Fn) ??? {}
                    Public Trait BorrowType {
                        Public AssocConst TRAVERSAL_PERMIT {}
                    }
                    Public Enum KV {
                    }
                    Public Enum Edge {
                    }
                }
                Restricted("crate::collections::btree::node") Fn slice_insert {}
                Restricted("crate::collections::btree::node") Fn slice_remove {}
                Restricted("crate::collections::btree::node") Fn slice_shl {}
                Restricted("crate::collections::btree::node") Fn slice_shr {}
                Restricted("crate::collections::btree::node") Fn move_to_slice {}
            }
            Restricted("crate::collections::btree") Mod remove {
            }
            Restricted("crate::collections::btree") Mod search {
                Public Enum SearchBound {
                    Public Variant Included {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant Excluded {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant AllIncluded {}
                    Public Ctor(Variant, Const) ??? {}
                    Public Variant AllExcluded {}
                    Public Ctor(Variant, Const) ??? {}
                }
                Public Enum SearchResult {
                    Public Variant Found {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant GoDown {}
                    Public Ctor(Variant, Fn) ??? {}
                }
                Public Enum IndexResult {
                    Public Variant KV {}
                    Public Ctor(Variant, Fn) ??? {}
                    Public Variant Edge {}
                    Public Ctor(Variant, Fn) ??? {}
                }
            }
            Public Mod set {
                Public Struct BTreeSet {}
                Public Struct Iter {}
                Public Struct Difference {}
                Restricted("crate::collections::btree::set") Enum DifferenceInner {
                    Restricted("crate::collections::btree::set") Variant Stitch {}
                    Restricted("crate::collections::btree::set") Variant Search {}
                    Restricted("crate::collections::btree::set") Variant Iterate {}
                    Restricted("crate::collections::btree::set") Ctor(Variant, Fn) ??? {}
                }
                Public Struct SymmetricDifference {}
                Restricted("crate::collections::btree::set") Ctor(Struct, Fn) ??? {}
                Public Struct Intersection {}
                Restricted("crate::collections::btree::set") Enum IntersectionInner {
                    Restricted("crate::collections::btree::set") Variant Stitch {}
                    Restricted("crate::collections::btree::set") Variant Search {}
                    Restricted("crate::collections::btree::set") Variant Answer {}
                    Restricted("crate::collections::btree::set") Ctor(Variant, Fn) ??? {}
                }
                Public Struct Union {}
                Restricted("crate::collections::btree::set") Ctor(Struct, Fn) ??? {}
                Restricted("crate::collections::btree::set") Const ITER_PERFORMANCE_TIPPING_SIZE_DIFF {}
                Public Struct ExtractIf {}
                Public Struct IntoIter {}
                Public Struct Range {}
            }
            Restricted("crate::collections::btree") Mod set_val {
                Public Trait IsSetVal {
                    Public AssocFn is_set_val {}
                }
                Public Struct SetValZST {}
                Public Ctor(Struct, Const) ??? {}
            }
            Restricted("crate::collections::btree") Mod split {
            }
            Restricted("crate::collections::btree") Trait Recover {
                Restricted("crate::collections::btree") AssocTy Key {}
                Restricted("crate::collections::btree") AssocFn get {}
                Restricted("crate::collections::btree") AssocFn take {}
                Restricted("crate::collections::btree") AssocFn replace {}
            }
        }
        Public Mod linked_list {
            Public Struct LinkedList {}
            Restricted("crate::collections::linked_list") Struct Node {}
            Public Struct Iter {}
            Public Struct IterMut {}
            Public Struct Cursor {}
            Public Struct CursorMut {}
            Public Struct ExtractIf {}
            Restricted("crate::collections::linked_list") Fn assert_covariance {}
            Public Struct IntoIter {}
        }
        Public Mod vec_deque {
            Restricted("crate::collections::vec_deque") Mod macros {
            }
            Restricted("crate::collections::vec_deque") Mod drain {
                Public Struct Drain {}
            }
            Restricted("crate::collections::vec_deque") Mod iter_mut {
                Public Struct IterMut {}
            }
            Restricted("crate::collections::vec_deque") Mod into_iter {
                Public Struct IntoIter {}
            }
            Restricted("crate::collections::vec_deque") Mod iter {
                Public Struct Iter {}
            }
            Restricted("crate::collections::vec_deque") Mod spec_extend {
                Restricted("crate::collections::vec_deque") Trait SpecExtend {
                    Restricted("crate::collections::vec_deque") AssocFn spec_extend {}
                }
            }
            Restricted("crate::collections::vec_deque") Mod spec_from_iter {
                Restricted("crate::collections::vec_deque") Trait SpecFromIter {
                    Restricted("crate::collections::vec_deque") AssocFn spec_from_iter {}
                }
            }
            Public Struct VecDeque {}
            Restricted("crate::collections::vec_deque") Fn wrap_index {}
        }
        Public Mod btree_map {
        }
        Public Mod btree_set {
        }
        Restricted("crate::collections") Trait SpecExtend {
            Restricted("crate::collections") AssocFn spec_extend {}
        }
        Public Struct TryReserveError {}
        Public Enum TryReserveErrorKind {
            Public Variant CapacityOverflow {}
            Public Ctor(Variant, Const) ??? {}
            Public Variant AllocError {}
        }
    }
    Public Mod ffi {
        Restricted("crate::ffi") Mod c_str {
            Public Struct FromVecWithNulError {}
            Public Struct CString {}
            Public Struct IntoStringError {}
            Public Struct NulError {}
            Restricted("crate::ffi::c_str") Ctor(Struct, Fn) ??? {}
            Restricted("crate::ffi::c_str") Enum FromBytesWithNulErrorKind {
                Restricted("crate::ffi::c_str") Variant InteriorNul {}
                Restricted("crate::ffi::c_str") Ctor(Variant, Fn) ??? {}
                Restricted("crate::ffi::c_str") Variant NotNulTerminated {}
                Restricted("crate::ffi::c_str") Ctor(Variant, Const) ??? {}
            }
        }
    }
    Public Mod fmt {
        Public Fn format {}
    }
    Public Mod rc {
        Restricted("crate::rc") Struct RcBox {}
        Restricted("crate::rc") Fn rcbox_layout_for_value_layout {}
        Public Struct Rc {}
        Restricted("crate::rc") Trait RcFromSlice {
            Restricted("crate::rc") AssocFn from_slice {}
        }
        Restricted("crate::rc") Trait RcEqIdent {
            Restricted("crate::rc") AssocFn eq {}
            Restricted("crate::rc") AssocFn ne {}
        }
        Restricted("crate") Trait MarkerEq {
        }
        Restricted("crate::rc") Trait ToRcSlice {
            Restricted("crate::rc") AssocFn to_rc_slice {}
        }
        Public Struct Weak {}
        Restricted("crate") Fn is_dangling {}
        Restricted("crate::rc") Struct WeakInner {}
        Restricted("crate::rc") Trait RcInnerPtr {
            Restricted("crate::rc") AssocFn weak_ref {}
            Restricted("crate::rc") AssocFn strong_ref {}
            Restricted("crate::rc") AssocFn strong {}
            Restricted("crate::rc") AssocFn inc_strong {}
            Restricted("crate::rc") AssocFn dec_strong {}
            Restricted("crate::rc") AssocFn weak {}
            Restricted("crate::rc") AssocFn inc_weak {}
            Restricted("crate::rc") AssocFn dec_weak {}
        }
        Restricted("crate::rc") Fn data_offset {}
        Restricted("crate::rc") Fn data_offset_align {}
        Public Struct UniqueRc {}
    }
    Public Mod slice {
        Restricted("crate") Mod hack {
            Public Fn into_vec {}
            Public Fn to_vec {}
            Public Trait ConvertVec {
                Public AssocFn to_vec {}
            }
        }
        Public Trait Concat {
            Public AssocTy Output {}
            Public AssocFn concat {}
        }
        Public Trait Join {
            Public AssocTy Output {}
            Public AssocFn join {}
        }
        Restricted("crate") Trait SpecCloneIntoVec {
            Restricted("crate") AssocFn clone_into {}
        }
        Restricted("crate::slice") Fn stable_sort {}
    }
    Public Mod str {
        Restricted("crate::str") Fn join_generic_copy {}
        Public Fn from_boxed_utf8_unchecked {}
        Restricted("crate::str") Fn convert_while_ascii {}
    }
    Public Mod string {
        Public TyAlias { lazy: false } ParseError {}
        Public Trait ToString {
            Public AssocFn to_string {}
        }
        Public Struct Drain {}
        Public Struct String {}
        Public Struct FromUtf8Error {}
        Public Struct FromUtf16Error {}
        Restricted("crate::string") Ctor(Struct, Fn) ??? {}
    }
    Public Mod sync {
        Restricted("crate::sync") Const MAX_REFCOUNT {}
        Restricted("crate::sync") Const INTERNAL_OVERFLOW_ERROR {}
        Public Struct Arc {}
        Public Struct Weak {}
        Restricted("crate::sync") Struct ArcInner {}
        Restricted("crate::sync") Fn arcinner_layout_for_value_layout {}
        Restricted("crate::sync") Trait ArcFromSlice {
            Restricted("crate::sync") AssocFn from_slice {}
        }
        Restricted("crate::sync") Struct WeakInner {}
        Restricted("crate::sync") Trait ArcEqIdent {
            Restricted("crate::sync") AssocFn eq {}
            Restricted("crate::sync") AssocFn ne {}
        }
        Restricted("crate::sync") Trait ToArcSlice {
            Restricted("crate::sync") AssocFn to_arc_slice {}
        }
        Restricted("crate::sync") Fn data_offset {}
        Restricted("crate::sync") Fn data_offset_align {}
    }
    Public Mod task {
        Public Trait Wake {
            Public AssocFn wake {}
            Public AssocFn wake_by_ref {}
        }
        Restricted("crate::task") Fn raw_waker {}
    }
    Public Mod vec {
        Restricted("crate::vec") Mod extract_if {
            Public Struct ExtractIf {}
        }
        Restricted("crate::vec") Mod splice {
            Public Struct Splice {}
        }
        Restricted("crate::vec") Mod drain {
            Public Struct Drain {}
        }
        Restricted("crate::vec") Mod cow {
        }
        Restricted("crate::vec") Mod into_iter {
            Public Struct IntoIter {}
            Public Trait NonDrop {
            }
        }
        Restricted("crate::vec") Mod is_zero {
            Restricted("crate::vec") Trait IsZero {
                Restricted("crate::vec") AssocFn is_zero {}
            }
        }
        Restricted("crate::vec") Mod in_place_collect {
            Restricted("crate::vec") Trait InPlaceIterableMarker {
            }
            Restricted("crate::vec::in_place_collect") Fn write_in_place_with_drop {}
            Restricted("crate::vec::in_place_collect") Trait SpecInPlaceCollect {
                Restricted("crate::vec::in_place_collect") AssocFn collect_in_place {}
            }
            Restricted("crate") Trait AsVecIntoIter {
                Restricted("crate") AssocTy Item {}
                Restricted("crate") AssocFn as_into_iter {}
            }
        }
        Restricted("crate::vec") Mod partial_eq {
        }
        Restricted("crate::vec") Mod spec_from_elem {
            Restricted("crate::vec") Trait SpecFromElem {
                Restricted("crate::vec") AssocFn from_elem {}
            }
        }
        Restricted("crate::vec") Mod set_len_on_drop {
            Restricted("crate::vec") Struct SetLenOnDrop {}
        }
        Restricted("crate::vec") Mod in_place_drop {
            Restricted("crate::vec") Struct InPlaceDrop {}
            Restricted("crate::vec") Struct InPlaceDstBufDrop {}
        }
        Restricted("crate::vec") Mod spec_from_iter_nested {
            Restricted("crate::vec") Trait SpecFromIterNested {
                Restricted("crate::vec") AssocFn from_iter {}
            }
        }
        Restricted("crate::vec") Mod spec_from_iter {
            Restricted("crate::vec") Trait SpecFromIter {
                Restricted("crate::vec") AssocFn from_iter {}
            }
        }
        Restricted("crate::vec") Mod spec_extend {
            Restricted("crate::vec") Trait SpecExtend {
                Restricted("crate::vec") AssocFn spec_extend {}
            }
        }
        Public Struct Vec {}
        Public Fn from_elem {}
        Public Fn from_elem_in {}
        Restricted("crate::vec") Trait ExtendFromWithinSpec {
            Restricted("crate::vec") AssocFn spec_extend_from_within {}
        }
    }
    Public Mod __export {
    }
}

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@wesleywiser
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Sep 12, 2023

📌 Commit 026faca has been approved by wesleywiser

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 12, 2023
@bors
Copy link
Contributor

bors commented Sep 12, 2023

⌛ Testing commit 026faca with merge db693ab...

bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 12, 2023
…=wesleywiser

Extend rustc -Zls

This makes it show a lot more things and thus a lot more useful.
@bors
Copy link
Contributor

bors commented Sep 12, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 12, 2023
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@bjorn3
Copy link
Member Author

bjorn3 commented Sep 12, 2023

@bors retry spurious apple timeout

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 12, 2023
@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Sep 12, 2023
@bors
Copy link
Contributor

bors commented Sep 12, 2023

⌛ Testing commit 026faca with merge 971f462...

bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 12, 2023
…=wesleywiser

Extend rustc -Zls

This makes it show a lot more things and thus a lot more useful.
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling serde_json v1.0.99
   Compiling rustdoc-json-types v0.1.0 (/checkout/src/rustdoc-json-types)
[RUSTC-TIMING] serde test:false 9.774
[RUSTC-TIMING] bincode test:false 1.148
##[error]The runner has received a shutdown signal. This can happen when the runner service is stopped, or a manually started runner is canceled.
##[group]Clock drift check
  local time: Wed Sep 13 00:01:46 UTC 2023
  network time: Wed, 13 Sep 2023 00:01:46 GMT
##[endgroup]
##[endgroup]
Session terminated, killing shell...[RUSTC-TIMING] serde_json test:false 2.988
 ...killed.
##[error]The operation was canceled.

@bors
Copy link
Contributor

bors commented Sep 13, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 13, 2023
@bjorn3
Copy link
Member Author

bjorn3 commented Sep 13, 2023

@bors retry spurious abort of aarch64-gnu job?

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 13, 2023
@bors
Copy link
Contributor

bors commented Sep 13, 2023

⌛ Testing commit 026faca with merge 7e0261e...

@bors
Copy link
Contributor

bors commented Sep 13, 2023

☀️ Test successful - checks-actions
Approved by: wesleywiser
Pushing 7e0261e to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 13, 2023
@bors bors merged commit 7e0261e into rust-lang:master Sep 13, 2023
12 checks passed
@rustbot rustbot added this to the 1.74.0 milestone Sep 13, 2023
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (7e0261e): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.5% [1.7%, 3.3%] 2
Improvements ✅
(primary)
-2.4% [-2.4%, -2.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.4% [-2.4%, -2.4%] 1

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 632.253s -> 633.201s (0.15%)
Artifact size: 317.88 MiB -> 318.02 MiB (0.04%)

@bjorn3 bjorn3 deleted the better_list_crate_metadata branch September 13, 2023 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants