diff --git a/flamegraph.svg b/flamegraph.svg new file mode 100644 index 0000000..9c3b2f0 --- /dev/null +++ b/flamegraph.svg @@ -0,0 +1,491 @@ +Flame Graph Reset ZoomSearch __GI___tunables_init (74,000 samples, 0.04%)brk (127,532 samples, 0.07%)[unknown] (127,532 samples, 0.07%)_dl_lookup_symbol_x (49,527 samples, 0.03%)do_lookup_x (49,527 samples, 0.03%)check_match (49,527 samples, 0.03%)strcmp (49,527 samples, 0.03%)_dl_new_object (111,901 samples, 0.07%)_dl_map_new_object (112,510 samples, 0.07%)_dl_map_object_from_fd (112,510 samples, 0.07%)_dl_map_object_deps (132,090 samples, 0.08%)_dl_catch_exception (132,090 samples, 0.08%)openaux (132,090 samples, 0.08%)_dl_map_object (19,580 samples, 0.01%)_dl_new_object (77,604 samples, 0.05%)dl_main (3,224,078 samples, 1.89%)d.._dl_relocate_object (2,964,857 samples, 1.74%)_dl_relocate_object_no_relro (2,964,857 samples, 1.74%)_dl_lookup_symbol_x (2,314,772 samples, 1.36%)do_lookup_x (1,299,666 samples, 0.76%)check_match (833,011 samples, 0.49%)strcmp (619,706 samples, 0.36%)handle_amd (87,293 samples, 0.05%)[ (3,542,126 samples, 2.08%)[_start (3,542,126 samples, 2.08%)_.._dl_start (3,542,118 samples, 2.08%)_.._dl_sysdep_start (3,535,570 samples, 2.07%)_..init_cpu_features.constprop.0 (109,960 samples, 0.06%)update_active.constprop.0 (22,667 samples, 0.01%)_dl_debug_change_state (111,926 samples, 0.07%)_dl_map_object_deps (136,399 samples, 0.08%)_dl_catch_exception (136,399 samples, 0.08%)openaux (136,399 samples, 0.08%)_dl_map_object (136,399 samples, 0.08%)_dl_lookup_map (136,399 samples, 0.08%)_dl_name_match_p (136,399 samples, 0.08%)strcmp (136,399 samples, 0.08%)cut (1,241,591 samples, 0.73%)_start (1,241,591 samples, 0.73%)_dl_start (1,241,591 samples, 0.73%)_dl_sysdep_start (1,241,591 samples, 0.73%)dl_main (1,241,591 samples, 0.73%)_dl_relocate_object (993,266 samples, 0.58%)_dl_relocate_object_no_relro (993,266 samples, 0.58%)_dl_lookup_symbol_x (993,266 samples, 0.58%)cmd_diff (4,533,803 samples, 2.66%)cm..run_diff_files (4,533,803 samples, 2.66%)ru..diff_flush (4,533,803 samples, 2.66%)di..compute_diffstat (4,533,803 samples, 2.66%)co..builtin_diffstat (4,533,803 samples, 2.66%)bu..xdi_diff_outf (4,533,803 samples, 2.66%)xd..xdi_diff (4,533,803 samples, 2.66%)xd..xdl_diff (4,533,803 samples, 2.66%)xd..xdl_do_diff (4,533,803 samples, 2.66%)xd..xdl_prepare_env (4,533,803 samples, 2.66%)xd..xdl_prepare_ctx (4,533,803 samples, 2.66%)xd..xdl_hash_record_verbatim (4,533,803 samples, 2.66%)xd..cmd_rev_parse (735,838 samples, 0.43%)setup_git_directory_gently (735,838 samples, 0.43%)setup_git_env_internal (735,838 samples, 0.43%)repo_set_gitdir (735,838 samples, 0.43%)odb_new (735,838 samples, 0.43%)xstrfmt (735,838 samples, 0.43%)__libc_start_main@@GLIBC_2.34 (6,094,764 samples, 3.57%)__li..__libc_start_call_main (6,094,764 samples, 3.57%)__li..main (6,094,764 samples, 3.57%)maincmd_main (6,094,764 samples, 3.57%)cmd_..handle_builtin (6,094,764 samples, 3.57%)hand..cmd_status (825,123 samples, 0.48%)status_init_config (825,123 samples, 0.48%)sequencer_determine_whence (825,123 samples, 0.48%)refs_ref_exists (825,123 samples, 0.48%)refs_resolve_ref_unsafe (825,123 samples, 0.48%)files_read_raw_ref (825,123 samples, 0.48%)read_ref_internal (825,123 samples, 0.48%)packed_read_raw_ref (825,123 samples, 0.48%)get_snapshot (825,123 samples, 0.48%)stat_validity_update (825,123 samples, 0.48%)__fstat64 (825,123 samples, 0.48%)[unknown] (825,123 samples, 0.48%)[unknown] (825,123 samples, 0.48%)__GI___tunables_init (159,599 samples, 0.09%)__rtld_malloc_init_real (285,880 samples, 0.17%)lookup_malloc_symbol (285,880 samples, 0.17%)_dl_lookup_symbol_x (285,880 samples, 0.17%)do_lookup_x (285,880 samples, 0.17%)fstatat64 (126,728 samples, 0.07%)[unknown] (126,728 samples, 0.07%)_dl_map_object_deps (232,653 samples, 0.14%)_dl_catch_exception (232,653 samples, 0.14%)openaux (232,653 samples, 0.14%)_dl_map_new_object (232,653 samples, 0.14%)open_path (231,514 samples, 0.14%)open_verify.constprop.0 (104,786 samples, 0.06%)__GI___pread64_nocancel (104,786 samples, 0.06%)[unknown] (104,786 samples, 0.06%)git (6,811,234 samples, 3.99%)git_start (6,811,234 samples, 3.99%)_sta.._dl_start (716,466 samples, 0.42%)_dl_sysdep_start (714,126 samples, 0.42%)dl_main (554,527 samples, 0.33%)_dl_receive_error (35,994 samples, 0.02%)version_check_doit (35,994 samples, 0.02%)_dl_check_all_versions (35,994 samples, 0.02%)_dl_check_map_versions (35,994 samples, 0.02%)strcmp (35,994 samples, 0.02%)insert_module (2,192,601 samples, 1.29%)__strcmp_evex (2,192,601 samples, 1.29%)__getdelim (799,929 samples, 0.47%)__libc_start_main@@GLIBC_2.34 (5,373,424 samples, 3.15%)__l..__libc_start_call_main (5,373,424 samples, 3.15%)__l..main (5,373,424 samples, 3.15%)maininit_localeinfo (5,373,424 samples, 3.15%)ini..rpl_mbrtoc32 (5,373,424 samples, 3.15%)rpl..__mbrtowc (5,373,424 samples, 3.15%)__m..__wcsmbs_load_conv (5,373,424 samples, 3.15%)__w..__gconv_find_transform (5,373,424 samples, 3.15%)__g..pthread_once@GLIBC_2.2.5 (5,373,424 samples, 3.15%)pth..__pthread_once_slow.isra.0 (5,373,424 samples, 3.15%)__p..__gconv_read_conf (5,373,424 samples, 3.15%)__g..read_conf_file.isra.0 (3,180,823 samples, 1.86%)r..add_module (2,380,894 samples, 1.40%)insert_module (2,380,894 samples, 1.40%)__strcmp_evex (2,380,894 samples, 1.40%)grep (5,788,336 samples, 3.39%)grep_start (5,788,336 samples, 3.39%)_st.._dl_start (414,912 samples, 0.24%)_dl_sysdep_start (414,912 samples, 0.24%)init_cpu_features.constprop.0 (414,912 samples, 0.24%)handle_amd (414,912 samples, 0.24%)[libc.so.6] (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::Tk> (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::Span> (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::string::String> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (66,068 samples, 0.04%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (66,068 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::deallocate (66,068 samples, 0.04%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (66,068 samples, 0.04%)alloc::alloc::dealloc (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::Tk> (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::Span> (66,068 samples, 0.04%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::string::String> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (66,068 samples, 0.04%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (66,068 samples, 0.04%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (66,068 samples, 0.04%)alloc::raw_vec::RawVecInner<A>::deallocate (66,068 samples, 0.04%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (66,068 samples, 0.04%)alloc::alloc::dealloc (66,068 samples, 0.04%)_int_free_chunk (66,068 samples, 0.04%)[unknown] (66,068 samples, 0.04%)[unknown] (878,959 samples, 0.52%)_int_malloc (870,283 samples, 0.51%)[unknown] (870,283 samples, 0.51%)__libc_start_call_main (499,254 samples, 0.29%)main (499,254 samples, 0.29%)std::rt::lang_start_internal (499,254 samples, 0.29%)std::rt::lang_start::{{closure}} (499,254 samples, 0.29%)std::sys::backtrace::__rust_begin_short_backtrace (499,254 samples, 0.29%)core::ops::function::FnOnce::call_once (499,254 samples, 0.29%)shed::main (499,254 samples, 0.29%)shed::shed_interactive (499,254 samples, 0.29%)shed::readline::ShedVi::new (499,254 samples, 0.29%)shed::readline::Prompt::refresh (499,254 samples, 0.29%)shed::expand::expand_prompt (499,254 samples, 0.29%)shed::expand::expand_cmd_sub (499,254 samples, 0.29%)shed::parse::execute::exec_input (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::begin_dispatch (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_conjunction (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_pipeline (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_cmd (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_func (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_brc_grp (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_conjunction (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_pipeline (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_cmd (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_builtin (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_builtin (499,254 samples, 0.29%)shed::builtin::varcmds::local (499,254 samples, 0.29%)shed::expand::<impl shed::parse::lex::Tk>::expand (499,254 samples, 0.29%)shed::expand::Expander::expand (499,254 samples, 0.29%)shed::expand::expand_raw (499,254 samples, 0.29%)shed::expand::expand_var (499,254 samples, 0.29%)shed::expand::expand_cmd_sub (499,254 samples, 0.29%)shed::parse::execute::exec_input (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::begin_dispatch (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_conjunction (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_pipeline (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_cmd (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_func (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_brc_grp (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_conjunction (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_pipeline (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_node (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_cmd (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::exec_builtin (499,254 samples, 0.29%)shed::parse::execute::Dispatcher::dispatch_builtin (499,254 samples, 0.29%)shed::builtin::varcmds::local (499,254 samples, 0.29%)shed::expand::<impl shed::parse::lex::Tk>::expand (499,254 samples, 0.29%)shed::expand::Expander::expand (499,254 samples, 0.29%)shed::expand::expand_raw (499,254 samples, 0.29%)shed::expand::expand_var (499,254 samples, 0.29%)shed::expand::expand_cmd_sub (499,254 samples, 0.29%)shed::parse::execute::exec_input (499,254 samples, 0.29%)shed::state::read_logic (499,254 samples, 0.29%)std::thread::local::LocalKey<T>::with (499,254 samples, 0.29%)std::thread::local::LocalKey<T>::try_with (499,254 samples, 0.29%)shed::state::read_logic::{{closure}} (499,254 samples, 0.29%)shed::parse::execute::exec_input::{{closure}} (499,254 samples, 0.29%)<shed::state::LogTab as core::clone::Clone>::clone (499,254 samples, 0.29%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (499,254 samples, 0.29%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (499,254 samples, 0.29%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (499,254 samples, 0.29%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (499,254 samples, 0.29%)hashbrown::raw::RawTable<T,A>::clone_from_impl (499,254 samples, 0.29%)core::clone::Clone::clone (499,254 samples, 0.29%)<shed::state::ShFunc as core::clone::Clone>::clone (499,254 samples, 0.29%)<shed::parse::Node as core::clone::Clone>::clone (499,254 samples, 0.29%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (499,254 samples, 0.29%)alloc::slice::<impl [T]>::to_vec_in (499,254 samples, 0.29%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (499,254 samples, 0.29%)<shed::parse::lex::Tk as core::clone::Clone>::clone (499,254 samples, 0.29%)<shed::parse::lex::Span as core::clone::Clone>::clone (499,254 samples, 0.29%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (499,254 samples, 0.29%)<alloc::string::String as core::clone::Clone>::clone (499,254 samples, 0.29%)__libc_malloc2 (499,254 samples, 0.29%)_int_malloc (499,254 samples, 0.29%)__readlink (71,537 samples, 0.04%)[unknown] (71,537 samples, 0.04%)_int_free_create_chunk (889,625 samples, 0.52%)[unknown] (889,625 samples, 0.52%)_int_free_merge_chunk (23,109 samples, 0.01%)_int_free_create_chunk (23,109 samples, 0.01%)[unknown] (23,109 samples, 0.01%)_int_malloc (44,836 samples, 0.03%)[unknown] (44,836 samples, 0.03%)exit (1,286,194 samples, 0.75%)__run_exit_handlers (1,286,194 samples, 0.75%)__call_tls_dtors (1,286,194 samples, 0.75%)std::sys::thread_local::native::lazy::destroy (1,286,194 samples, 0.75%)std::sys::thread_local::abort_on_dtor_unwind (1,286,194 samples, 0.75%)std::sys::thread_local::native::lazy::destroy::{{closure}} (1,286,194 samples, 0.75%)core::mem::maybe_uninit::MaybeUninit<T>::assume_init_drop (1,286,194 samples, 0.75%)core::ptr::drop_in_place<shed::state::Shed> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::LogTab>> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::LogTab>> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<shed::state::LogTab> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (1,286,194 samples, 0.75%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,286,194 samples, 0.75%)hashbrown::raw::RawTableInner::drop_inner_table (1,286,194 samples, 0.75%)hashbrown::raw::RawTableInner::drop_elements (1,286,194 samples, 0.75%)hashbrown::raw::Bucket<T>::drop (1,286,194 samples, 0.75%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (1,286,194 samples, 0.75%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<shed::state::ShFunc> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<shed::parse::Node> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,286,194 samples, 0.75%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<shed::parse::lex::Tk>> (1,286,194 samples, 0.75%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,286,194 samples, 0.75%)alloc::raw_vec::RawVecInner<A>::deallocate (1,286,194 samples, 0.75%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,286,194 samples, 0.75%)alloc::alloc::dealloc (1,286,194 samples, 0.75%)_int_free_chunk (1,286,194 samples, 0.75%)_int_free_maybe_consolidate.part.0 (1,286,194 samples, 0.75%)malloc_consolidate (1,286,194 samples, 0.75%)unlink_chunk.isra.0 (1,286,194 samples, 0.75%)core::ptr::drop_in_place<alloc::vec::Vec<i8>> (24,000 samples, 0.01%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<i8>> (24,000 samples, 0.01%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (24,000 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::deallocate (24,000 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (24,000 samples, 0.01%)alloc::alloc::dealloc (24,000 samples, 0.01%)cfree@GLIBC_2.2.5 (24,000 samples, 0.01%)shed::kickstart_lazy_evals (24,597 samples, 0.01%)shed::state::read_vars (24,597 samples, 0.01%)std::thread::local::LocalKey<T>::with (24,597 samples, 0.01%)std::thread::local::LocalKey<T>::try_with (24,597 samples, 0.01%)core::ops::function::FnOnce::call_once (24,597 samples, 0.01%)shed::state::SHED::{{constant}}::{{closure}} (24,597 samples, 0.01%)std::sys::thread_local::native::lazy::Storage<T,D>::get_or_init (24,597 samples, 0.01%)std::sys::thread_local::native::lazy::Storage<T,D>::get_or_init_slow (24,597 samples, 0.01%)core::option::Option<T>::unwrap_or_else (24,597 samples, 0.01%)core::ops::function::FnOnce::call_once (24,597 samples, 0.01%)shed::state::SHED::__rust_std_internal_init_fn (24,597 samples, 0.01%)shed::state::Shed::new (24,597 samples, 0.01%)shed::state::ScopeStack::new (24,597 samples, 0.01%)shed::state::VarTab::new (24,597 samples, 0.01%)shed::state::VarTab::init_env (24,597 samples, 0.01%)nix::unistd::User::from_uid (24,597 samples, 0.01%)nix::unistd::User::from_anything (24,597 samples, 0.01%)core::ptr::drop_in_place<shed::state::LogTab> (47,884 samples, 0.03%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (47,884 samples, 0.03%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (47,884 samples, 0.03%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (47,884 samples, 0.03%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (47,884 samples, 0.03%)hashbrown::raw::RawTableInner::drop_inner_table (47,884 samples, 0.03%)hashbrown::raw::RawTableInner::drop_elements (47,884 samples, 0.03%)hashbrown::raw::Bucket<T>::drop (47,884 samples, 0.03%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (47,884 samples, 0.03%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::state::ShFunc> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::Node> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::NdRule> (47,884 samples, 0.03%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (47,884 samples, 0.03%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (47,884 samples, 0.03%)core::ptr::drop_in_place<[shed::parse::Node]> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::Node> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::NdRule> (47,884 samples, 0.03%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (47,884 samples, 0.03%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (47,884 samples, 0.03%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (47,884 samples, 0.03%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::Node> (47,884 samples, 0.03%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (47,884 samples, 0.03%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (47,884 samples, 0.03%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::lex::Tk> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::lex::Span> (47,884 samples, 0.03%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (47,884 samples, 0.03%)core::ptr::drop_in_place<alloc::sync::Arc<alloc::string::String>> (47,884 samples, 0.03%)<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop (47,884 samples, 0.03%)<shed::parse::Node as core::clone::Clone>::clone (91,378 samples, 0.05%)<shed::parse::NdRule as core::clone::Clone>::clone (91,378 samples, 0.05%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (91,378 samples, 0.05%)<alloc::vec::Vec<T,A> as core::ops::deref::Deref>::deref (91,378 samples, 0.05%)alloc::vec::Vec<T,A>::as_slice (91,378 samples, 0.05%)shed::parse::execute::Dispatcher::begin_dispatch (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::exec_conjunction (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::exec_pipeline (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_cmd (99,588 samples, 0.06%)shed::parse::execute::Dispatcher::exec_func (99,588 samples, 0.06%)shed::parse::execute::exec_input (465,815 samples, 0.27%)shed::state::read_logic (318,343 samples, 0.19%)std::thread::local::LocalKey<T>::with (318,343 samples, 0.19%)std::thread::local::LocalKey<T>::try_with (318,343 samples, 0.19%)shed::state::read_logic::{{closure}} (318,343 samples, 0.19%)shed::parse::execute::exec_input::{{closure}} (318,343 samples, 0.19%)<shed::state::LogTab as core::clone::Clone>::clone (318,343 samples, 0.19%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (318,343 samples, 0.19%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (318,343 samples, 0.19%)hashbrown::raw::RawTable<T,A>::clone_from_impl (318,343 samples, 0.19%)core::clone::Clone::clone (318,343 samples, 0.19%)<shed::state::ShFunc as core::clone::Clone>::clone (318,343 samples, 0.19%)<shed::parse::Node as core::clone::Clone>::clone (318,343 samples, 0.19%)<shed::parse::NdRule as core::clone::Clone>::clone (318,343 samples, 0.19%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)alloc::slice::<impl [T]>::to_vec_in (318,343 samples, 0.19%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (318,343 samples, 0.19%)<shed::parse::Node as core::clone::Clone>::clone (318,343 samples, 0.19%)<shed::parse::NdRule as core::clone::Clone>::clone (318,343 samples, 0.19%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)alloc::slice::<impl [T]>::to_vec_in (318,343 samples, 0.19%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (318,343 samples, 0.19%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (318,343 samples, 0.19%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)<T as core::clone::CloneToUninit>::clone_to_uninit (318,343 samples, 0.19%)<T as core::clone::uninit::CopySpec>::clone_one (318,343 samples, 0.19%)<shed::parse::Node as core::clone::Clone>::clone (318,343 samples, 0.19%)<shed::parse::NdRule as core::clone::Clone>::clone (318,343 samples, 0.19%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)alloc::slice::<impl [T]>::to_vec_in (318,343 samples, 0.19%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (318,343 samples, 0.19%)<shed::parse::Node as core::clone::Clone>::clone (318,343 samples, 0.19%)<shed::parse::NdRule as core::clone::Clone>::clone (318,343 samples, 0.19%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (318,343 samples, 0.19%)alloc::slice::<impl [T]>::to_vec_in (318,343 samples, 0.19%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (318,343 samples, 0.19%)alloc::vec::Vec<T,A>::with_capacity_in (318,343 samples, 0.19%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (318,343 samples, 0.19%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (318,343 samples, 0.19%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (318,343 samples, 0.19%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (318,343 samples, 0.19%)alloc::alloc::Global::alloc_impl (318,343 samples, 0.19%)alloc::alloc::alloc (318,343 samples, 0.19%)__libc_malloc2 (318,343 samples, 0.19%)_int_malloc (318,343 samples, 0.19%)core::option::Option<T>::map (481,904 samples, 0.28%)shed::readline::Prompt::new::{{closure}} (481,904 samples, 0.28%)shed::expand::expand_prompt (481,904 samples, 0.28%)shed::expand::expand_cmd_sub (481,904 samples, 0.28%)__libc_malloc2 (22,186 samples, 0.01%)_int_malloc (22,186 samples, 0.01%)[unknown] (22,186 samples, 0.01%)<T as alloc::string::ToString>::to_string (40,104 samples, 0.02%)<str as alloc::string::SpecToString>::spec_to_string (40,104 samples, 0.02%)<alloc::string::String as core::convert::From<&str>>::from (40,104 samples, 0.02%)alloc::str::<impl alloc::borrow::ToOwned for str>::to_owned (40,104 samples, 0.02%)alloc::slice::<impl alloc::borrow::ToOwned for [T]>::to_owned (40,104 samples, 0.02%)alloc::slice::<impl [T]>::to_vec (40,104 samples, 0.02%)alloc::slice::<impl [T]>::to_vec_in (40,104 samples, 0.02%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (40,104 samples, 0.02%)alloc::vec::Vec<T,A>::with_capacity_in (40,104 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (40,104 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (40,104 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (40,104 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (40,104 samples, 0.02%)alloc::alloc::Global::alloc_impl (40,104 samples, 0.02%)alloc::alloc::alloc (40,104 samples, 0.02%)__rustc::__rust_alloc (17,918 samples, 0.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (509,334 samples, 0.30%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (509,334 samples, 0.30%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (509,334 samples, 0.30%)core::ptr::drop_in_place<shed::parse::lex::Tk> (509,334 samples, 0.30%)core::ptr::drop_in_place<shed::parse::lex::Span> (509,334 samples, 0.30%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (509,334 samples, 0.30%)core::ptr::drop_in_place<alloc::string::String> (509,334 samples, 0.30%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (509,334 samples, 0.30%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (509,334 samples, 0.30%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (509,334 samples, 0.30%)alloc::raw_vec::RawVecInner<A>::deallocate (509,334 samples, 0.30%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (509,334 samples, 0.30%)alloc::alloc::dealloc (509,334 samples, 0.30%)cfree@GLIBC_2.2.5 (509,334 samples, 0.30%)core::ptr::drop_in_place<shed::state::LogTab> (903,595 samples, 0.53%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (903,595 samples, 0.53%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (903,595 samples, 0.53%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (903,595 samples, 0.53%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (903,595 samples, 0.53%)hashbrown::raw::RawTableInner::drop_inner_table (903,595 samples, 0.53%)hashbrown::raw::RawTableInner::drop_elements (903,595 samples, 0.53%)hashbrown::raw::Bucket<T>::drop (903,595 samples, 0.53%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (903,595 samples, 0.53%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::state::ShFunc> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::Node> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::NdRule> (903,595 samples, 0.53%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (903,595 samples, 0.53%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (903,595 samples, 0.53%)core::ptr::drop_in_place<[shed::parse::Node]> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::Node> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::NdRule> (903,595 samples, 0.53%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (903,595 samples, 0.53%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (903,595 samples, 0.53%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (903,595 samples, 0.53%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::Node> (903,595 samples, 0.53%)core::ptr::drop_in_place<shed::parse::NdRule> (394,261 samples, 0.23%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (394,261 samples, 0.23%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (394,261 samples, 0.23%)core::ptr::drop_in_place<[shed::parse::Node]> (394,261 samples, 0.23%)core::ptr::drop_in_place<shed::parse::Node> (394,261 samples, 0.23%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (394,261 samples, 0.23%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (394,261 samples, 0.23%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (394,261 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::Tk> (394,261 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::Span> (394,261 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (394,261 samples, 0.23%)core::ptr::drop_in_place<alloc::sync::Arc<alloc::string::String>> (394,261 samples, 0.23%)<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop (394,261 samples, 0.23%)core::ptr::drop_in_place<core::option::Option<shed::state::ShFunc>> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::state::ShFunc> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::Node> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::NdRule> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (30,781 samples, 0.02%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (30,781 samples, 0.02%)core::ptr::drop_in_place<[shed::parse::Node]> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::Node> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::NdRule> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (30,781 samples, 0.02%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (30,781 samples, 0.02%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::Node> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::NdRule> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (30,781 samples, 0.02%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (30,781 samples, 0.02%)core::ptr::drop_in_place<[shed::parse::Node]> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::Node> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::NdRule> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (30,781 samples, 0.02%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (30,781 samples, 0.02%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::lex::Tk> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::lex::Span> (30,781 samples, 0.02%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (30,781 samples, 0.02%)core::ptr::drop_in_place<alloc::sync::Arc<alloc::string::String>> (30,781 samples, 0.02%)<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop (30,781 samples, 0.02%)shed::parse::Node::propagate_context (79,754 samples, 0.05%)shed::parse::Node::walk_tree (79,754 samples, 0.05%)shed::parse::Node::walk_tree (79,754 samples, 0.05%)<core::slice::iter::IterMut<T> as core::iter::traits::iterator::Iterator>::next (79,754 samples, 0.05%)<core::ptr::non_null::NonNull<T> as core::cmp::PartialEq>::eq (79,754 samples, 0.05%)shed::parse::Node::get_span (37,822 samples, 0.02%)shed::parse::lex::Span::range (37,822 samples, 0.02%)<shed::parse::lex::Span as core::clone::Clone>::clone (40,323 samples, 0.02%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (40,323 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (40,323 samples, 0.02%)__memmove_avx512_unaligned_erms (40,323 samples, 0.02%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (156,872 samples, 0.09%)alloc::slice::<impl [T]>::to_vec_in (156,872 samples, 0.09%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (156,872 samples, 0.09%)alloc::vec::Vec<T,A>::with_capacity_in (156,872 samples, 0.09%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (156,872 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (156,872 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (156,872 samples, 0.09%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (156,872 samples, 0.09%)alloc::alloc::Global::alloc_impl (156,872 samples, 0.09%)alloc::alloc::alloc (156,872 samples, 0.09%)malloc (156,872 samples, 0.09%)<T as core::clone::CloneToUninit>::clone_to_uninit (36,326 samples, 0.02%)<T as core::clone::uninit::CopySpec>::clone_one (36,326 samples, 0.02%)<shed::parse::Node as core::clone::Clone>::clone (36,326 samples, 0.02%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (36,326 samples, 0.02%)alloc::slice::<impl [T]>::to_vec_in (36,326 samples, 0.02%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (36,326 samples, 0.02%)<shed::parse::lex::Tk as core::clone::Clone>::clone (36,326 samples, 0.02%)<shed::parse::lex::Span as core::clone::Clone>::clone (36,326 samples, 0.02%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (36,326 samples, 0.02%)<alloc::string::String as core::clone::Clone>::clone (36,326 samples, 0.02%)__libc_malloc2 (36,326 samples, 0.02%)_int_malloc (36,326 samples, 0.02%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (871,000 samples, 0.51%)hashbrown::raw::RawTable<T,A>::clone_from_impl (871,000 samples, 0.51%)core::clone::Clone::clone (871,000 samples, 0.51%)<shed::state::ShFunc as core::clone::Clone>::clone (871,000 samples, 0.51%)<shed::parse::Node as core::clone::Clone>::clone (871,000 samples, 0.51%)<shed::parse::NdRule as core::clone::Clone>::clone (714,128 samples, 0.42%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (714,128 samples, 0.42%)alloc::slice::<impl [T]>::to_vec_in (714,128 samples, 0.42%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (714,128 samples, 0.42%)<shed::parse::Node as core::clone::Clone>::clone (714,128 samples, 0.42%)<shed::parse::NdRule as core::clone::Clone>::clone (714,128 samples, 0.42%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (714,128 samples, 0.42%)alloc::slice::<impl [T]>::to_vec_in (714,128 samples, 0.42%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (714,128 samples, 0.42%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (714,128 samples, 0.42%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (714,128 samples, 0.42%)alloc::boxed::Box<T,A>::new_uninit_in (677,802 samples, 0.40%)alloc::boxed::Box<T,A>::try_new_uninit_in (677,802 samples, 0.40%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (677,802 samples, 0.40%)alloc::alloc::Global::alloc_impl (677,802 samples, 0.40%)alloc::alloc::alloc (677,802 samples, 0.40%)__libc_malloc2 (677,802 samples, 0.40%)shed::parse::execute::exec_input (906,023 samples, 0.53%)shed::state::read_logic (906,023 samples, 0.53%)std::thread::local::LocalKey<T>::with (906,023 samples, 0.53%)std::thread::local::LocalKey<T>::try_with (906,023 samples, 0.53%)shed::state::read_logic::{{closure}} (906,023 samples, 0.53%)shed::parse::execute::exec_input::{{closure}} (906,023 samples, 0.53%)<shed::state::LogTab as core::clone::Clone>::clone (906,023 samples, 0.53%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (906,023 samples, 0.53%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (906,023 samples, 0.53%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (906,023 samples, 0.53%)hashbrown::raw::RawTable<T,A>::new_uninitialized (35,023 samples, 0.02%)hashbrown::raw::RawTableInner::new_uninitialized (35,023 samples, 0.02%)hashbrown::raw::alloc::inner::do_alloc (35,023 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (35,023 samples, 0.02%)alloc::alloc::Global::alloc_impl (35,023 samples, 0.02%)alloc::alloc::alloc (35,023 samples, 0.02%)__libc_malloc2 (35,023 samples, 0.02%)_int_malloc (35,023 samples, 0.02%)malloc_consolidate (35,023 samples, 0.02%)__memmove_avx512_unaligned_erms (22,236 samples, 0.01%)[unknown] (22,236 samples, 0.01%)[unknown] (22,236 samples, 0.01%)[unknown] (22,236 samples, 0.01%)[unknown] (22,236 samples, 0.01%)[unknown] (22,236 samples, 0.01%)shed::procio::IoStack::push_frame (35,448 samples, 0.02%)alloc::vec::Vec<T,A>::push (22,660 samples, 0.01%)alloc::vec::Vec<T,A>::push_mut (22,660 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::grow_one (22,660 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::grow_one (22,660 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::grow_amortized (22,660 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::finish_grow (22,660 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::grow (22,660 samples, 0.01%)alloc::alloc::Global::grow_impl (22,660 samples, 0.01%)alloc::alloc::realloc (22,660 samples, 0.01%)realloc (22,660 samples, 0.01%)_int_realloc (22,660 samples, 0.01%)shed::parse::execute::Dispatcher::begin_dispatch (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::dispatch_node (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::exec_conjunction (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::dispatch_node (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::exec_pipeline (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::dispatch_node (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::dispatch_cmd (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::exec_func (1,201,486 samples, 0.70%)shed::parse::execute::Dispatcher::exec_brc_grp (1,077,045 samples, 0.63%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,077,045 samples, 0.63%)shed::parse::execute::Dispatcher::dispatch_node (1,039,223 samples, 0.61%)shed::parse::execute::Dispatcher::exec_conjunction (1,039,223 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,039,223 samples, 0.61%)shed::parse::execute::Dispatcher::exec_pipeline (1,022,788 samples, 0.60%)shed::parse::execute::Dispatcher::dispatch_node (1,022,788 samples, 0.60%)shed::parse::execute::Dispatcher::dispatch_cmd (1,022,788 samples, 0.60%)shed::parse::execute::Dispatcher::exec_builtin (1,022,788 samples, 0.60%)shed::parse::execute::Dispatcher::dispatch_builtin (1,022,788 samples, 0.60%)shed::builtin::varcmds::local (1,022,788 samples, 0.60%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,022,788 samples, 0.60%)shed::expand::Expander::expand (982,465 samples, 0.58%)shed::expand::expand_raw (982,465 samples, 0.58%)shed::expand::expand_var (982,465 samples, 0.58%)shed::expand::expand_cmd_sub (982,465 samples, 0.58%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (719,363 samples, 0.42%)alloc::slice::<impl [T]>::to_vec_in (719,363 samples, 0.42%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (719,363 samples, 0.42%)<shed::parse::lex::Tk as core::clone::Clone>::clone (719,363 samples, 0.42%)<shed::parse::lex::Span as core::clone::Clone>::clone (719,363 samples, 0.42%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (719,363 samples, 0.42%)<shed::parse::CaseNode as core::clone::Clone>::clone (659,436 samples, 0.39%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (659,436 samples, 0.39%)alloc::slice::<impl [T]>::to_vec_in (659,436 samples, 0.39%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (659,436 samples, 0.39%)<shed::parse::Node as core::clone::Clone>::clone (659,436 samples, 0.39%)<shed::parse::NdRule as core::clone::Clone>::clone (659,436 samples, 0.39%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (659,436 samples, 0.39%)alloc::slice::<impl [T]>::to_vec_in (659,436 samples, 0.39%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (659,436 samples, 0.39%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (659,436 samples, 0.39%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (659,436 samples, 0.39%)<T as core::clone::CloneToUninit>::clone_to_uninit (659,436 samples, 0.39%)<T as core::clone::uninit::CopySpec>::clone_one (659,436 samples, 0.39%)<shed::parse::Node as core::clone::Clone>::clone (659,436 samples, 0.39%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (659,436 samples, 0.39%)alloc::slice::<impl [T]>::to_vec_in (659,436 samples, 0.39%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (659,436 samples, 0.39%)<shed::parse::lex::Tk as core::clone::Clone>::clone (659,436 samples, 0.39%)<shed::parse::lex::Span as core::clone::Clone>::clone (659,436 samples, 0.39%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (659,436 samples, 0.39%)<alloc::string::String as core::clone::Clone>::clone (659,436 samples, 0.39%)__rustc::__rust_alloc (659,436 samples, 0.39%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,045,282 samples, 0.61%)alloc::slice::<impl [T]>::to_vec_in (1,045,282 samples, 0.61%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,045,282 samples, 0.61%)<shed::parse::Node as core::clone::Clone>::clone (385,846 samples, 0.23%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (385,846 samples, 0.23%)alloc::slice::<impl [T]>::to_vec_in (385,846 samples, 0.23%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (385,846 samples, 0.23%)<shed::parse::lex::Tk as core::clone::Clone>::clone (385,846 samples, 0.23%)<shed::parse::lex::Span as core::clone::Clone>::clone (385,846 samples, 0.23%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (385,846 samples, 0.23%)<alloc::string::String as core::clone::Clone>::clone (385,846 samples, 0.23%)__libc_malloc2 (385,846 samples, 0.23%)_int_malloc (385,846 samples, 0.23%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (264,054 samples, 0.15%)<T as core::clone::CloneToUninit>::clone_to_uninit (264,054 samples, 0.15%)<T as core::clone::uninit::CopySpec>::clone_one (264,054 samples, 0.15%)<shed::parse::Node as core::clone::Clone>::clone (264,054 samples, 0.15%)<shed::parse::NdRule as core::clone::Clone>::clone (264,054 samples, 0.15%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (264,054 samples, 0.15%)alloc::slice::<impl [T]>::to_vec_in (264,054 samples, 0.15%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (264,054 samples, 0.15%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (264,054 samples, 0.15%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (264,054 samples, 0.15%)alloc::boxed::Box<T,A>::new_uninit_in (264,054 samples, 0.15%)alloc::boxed::Box<T,A>::try_new_uninit_in (264,054 samples, 0.15%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (264,054 samples, 0.15%)alloc::alloc::Global::alloc_impl (264,054 samples, 0.15%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (264,054 samples, 0.15%)shed::parse::execute::exec_input (4,383,611 samples, 2.57%)sh..shed::state::read_logic (2,278,530 samples, 1.34%)std::thread::local::LocalKey<T>::with (2,278,530 samples, 1.34%)std::thread::local::LocalKey<T>::try_with (2,278,530 samples, 1.34%)shed::state::read_logic::{{closure}} (2,278,530 samples, 1.34%)shed::parse::execute::exec_input::{{closure}} (2,278,530 samples, 1.34%)<shed::state::LogTab as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (2,278,530 samples, 1.34%)hashbrown::raw::RawTable<T,A>::clone_from_impl (2,278,530 samples, 1.34%)core::clone::Clone::clone (2,278,530 samples, 1.34%)<shed::state::ShFunc as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<shed::parse::Node as core::clone::Clone>::clone (2,278,530 samples, 1.34%)<shed::parse::NdRule as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,559,167 samples, 0.91%)alloc::slice::<impl [T]>::to_vec_in (1,559,167 samples, 0.91%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,559,167 samples, 0.91%)<shed::parse::Node as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<shed::parse::NdRule as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,559,167 samples, 0.91%)alloc::slice::<impl [T]>::to_vec_in (1,559,167 samples, 0.91%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,559,167 samples, 0.91%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,559,167 samples, 0.91%)<T as core::clone::uninit::CopySpec>::clone_one (1,559,167 samples, 0.91%)<shed::parse::Node as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<shed::parse::NdRule as core::clone::Clone>::clone (1,559,167 samples, 0.91%)<shed::parse::CondNode as core::clone::Clone>::clone (513,885 samples, 0.30%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (249,831 samples, 0.15%)alloc::slice::<impl [T]>::to_vec_in (249,831 samples, 0.15%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (249,831 samples, 0.15%)<shed::parse::Node as core::clone::Clone>::clone (249,831 samples, 0.15%)<shed::parse::NdRule as core::clone::Clone>::clone (249,831 samples, 0.15%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (249,831 samples, 0.15%)alloc::slice::<impl [T]>::to_vec_in (249,831 samples, 0.15%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (249,831 samples, 0.15%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (249,831 samples, 0.15%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (249,831 samples, 0.15%)alloc::boxed::Box<T,A>::new_uninit_in (249,831 samples, 0.15%)alloc::boxed::Box<T,A>::try_new_uninit_in (249,831 samples, 0.15%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (249,831 samples, 0.15%)alloc::alloc::Global::alloc_impl (249,831 samples, 0.15%)alloc::alloc::alloc (249,831 samples, 0.15%)__libc_malloc2 (249,831 samples, 0.15%)shed::procio::IoStack::push_frame (29,804 samples, 0.02%)alloc::vec::Vec<T,A>::push (29,804 samples, 0.02%)alloc::vec::Vec<T,A>::push_mut (29,804 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (29,804 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_one (29,804 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_amortized (29,804 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::finish_grow (29,804 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::grow (29,804 samples, 0.02%)alloc::alloc::Global::grow_impl (29,804 samples, 0.02%)alloc::alloc::realloc (29,804 samples, 0.02%)realloc (29,804 samples, 0.02%)shed::parse::execute::Dispatcher::exec_builtin (4,471,274 samples, 2.62%)sh..shed::parse::execute::Dispatcher::dispatch_builtin (4,471,274 samples, 2.62%)sh..shed::builtin::varcmds::local (4,471,274 samples, 2.62%)sh..shed::expand::<impl shed::parse::lex::Tk>::expand (4,471,274 samples, 2.62%)sh..shed::expand::Expander::expand (4,471,274 samples, 2.62%)sh..shed::expand::expand_raw (4,471,274 samples, 2.62%)sh..shed::expand::expand_var (4,471,274 samples, 2.62%)sh..shed::expand::expand_cmd_sub (4,471,274 samples, 2.62%)sh..shed::readline::Prompt::new (5,253,986 samples, 3.08%)she..shed::expand::expand_prompt (4,772,082 samples, 2.80%)sh..shed::expand::expand_cmd_sub (4,772,082 samples, 2.80%)sh..shed::parse::execute::exec_input (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::begin_dispatch (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::exec_conjunction (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::exec_pipeline (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::dispatch_cmd (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::exec_func (4,772,082 samples, 2.80%)sh..shed::parse::execute::Dispatcher::exec_brc_grp (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::exec_conjunction (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::exec_pipeline (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::dispatch_node (4,759,792 samples, 2.79%)sh..shed::parse::execute::Dispatcher::dispatch_cmd (4,759,792 samples, 2.79%)sh..shed::parse::execute::is_func (288,518 samples, 0.17%)shed::state::read_logic (288,518 samples, 0.17%)std::thread::local::LocalKey<T>::with (288,518 samples, 0.17%)std::thread::local::LocalKey<T>::try_with (288,518 samples, 0.17%)shed::state::read_logic::{{closure}} (288,518 samples, 0.17%)shed::parse::execute::is_func::{{closure}} (288,518 samples, 0.17%)shed::state::LogTab::get_func (288,518 samples, 0.17%)std::collections::hash::map::HashMap<K,V,S>::get (288,518 samples, 0.17%)hashbrown::map::HashMap<K,V,S,A>::get (288,518 samples, 0.17%)hashbrown::raw::RawTable<T,A>::get (288,518 samples, 0.17%)hashbrown::raw::RawTable<T,A>::find (288,518 samples, 0.17%)hashbrown::raw::RawTableInner::find_inner (288,518 samples, 0.17%)hashbrown::control::group::sse2::Group::match_tag (288,518 samples, 0.17%)core::core_arch::x86::sse2::_mm_movemask_epi8 (288,518 samples, 0.17%)<shed::readline::complete::FuzzyCompleter as core::default::Default>::default (24,267 samples, 0.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (395,957 samples, 0.23%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (395,957 samples, 0.23%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (395,957 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::Tk> (395,957 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::Span> (395,957 samples, 0.23%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (395,957 samples, 0.23%)core::ptr::drop_in_place<alloc::string::String> (395,957 samples, 0.23%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (395,957 samples, 0.23%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (395,957 samples, 0.23%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (395,957 samples, 0.23%)alloc::raw_vec::RawVecInner<A>::deallocate (395,957 samples, 0.23%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (395,957 samples, 0.23%)alloc::alloc::dealloc (395,957 samples, 0.23%)_int_free_chunk (395,957 samples, 0.23%)[unknown] (395,957 samples, 0.23%)[unknown] (395,957 samples, 0.23%)[unknown] (395,957 samples, 0.23%)[unknown] (395,957 samples, 0.23%)[unknown] (395,957 samples, 0.23%)core::ptr::drop_in_place<shed::state::LogTab> (716,124 samples, 0.42%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (716,124 samples, 0.42%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (716,124 samples, 0.42%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (716,124 samples, 0.42%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (716,124 samples, 0.42%)hashbrown::raw::RawTableInner::drop_inner_table (716,124 samples, 0.42%)hashbrown::raw::RawTableInner::drop_elements (716,124 samples, 0.42%)hashbrown::raw::Bucket<T>::drop (716,124 samples, 0.42%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (716,124 samples, 0.42%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (716,124 samples, 0.42%)core::ptr::drop_in_place<shed::state::ShFunc> (716,124 samples, 0.42%)core::ptr::drop_in_place<shed::parse::Node> (716,124 samples, 0.42%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::Node]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::Node> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::Node> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::CondNode>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::CondNode]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::CondNode> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::Node> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::Node> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::Node]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::Node> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::NdRule> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (320,167 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::lex::Tk> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::lex::Span> (320,167 samples, 0.19%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::string::String> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (320,167 samples, 0.19%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (320,167 samples, 0.19%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (320,167 samples, 0.19%)alloc::raw_vec::RawVecInner<A>::deallocate (320,167 samples, 0.19%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (320,167 samples, 0.19%)alloc::alloc::dealloc (320,167 samples, 0.19%)__rustc::__rust_dealloc (320,167 samples, 0.19%)[unknown] (17,238 samples, 0.01%)nix::unistd::fork (22,876 samples, 0.01%)__libc_fork (22,876 samples, 0.01%)core::ptr::drop_in_place<shed::state::LogTab> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (1,007,409 samples, 0.59%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,007,409 samples, 0.59%)hashbrown::raw::RawTableInner::drop_inner_table (1,007,409 samples, 0.59%)hashbrown::raw::RawTableInner::drop_elements (1,007,409 samples, 0.59%)hashbrown::raw::Bucket<T>::drop (1,007,409 samples, 0.59%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (1,007,409 samples, 0.59%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<shed::state::ShFunc> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<shed::parse::Node> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,007,409 samples, 0.59%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,007,409 samples, 0.59%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<shed::parse::lex::Tk> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<shed::parse::lex::Span> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<alloc::string::String> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (1,007,409 samples, 0.59%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (1,007,409 samples, 0.59%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,007,409 samples, 0.59%)alloc::raw_vec::RawVecInner<A>::deallocate (1,007,409 samples, 0.59%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,007,409 samples, 0.59%)alloc::alloc::dealloc (1,007,409 samples, 0.59%)_int_free_chunk (1,007,409 samples, 0.59%)[unknown] (1,007,409 samples, 0.59%)[unknown] (1,007,409 samples, 0.59%)[unknown] (1,007,409 samples, 0.59%)[unknown] (1,007,409 samples, 0.59%)[unknown] (1,007,409 samples, 0.59%)shed::libsh::guards::scope_guard (114,476 samples, 0.07%)shed::state::write_vars (114,476 samples, 0.07%)std::thread::local::LocalKey<T>::with (114,476 samples, 0.07%)std::thread::local::LocalKey<T>::try_with (56,264 samples, 0.03%)shed::state::write_vars::{{closure}} (56,264 samples, 0.03%)shed::libsh::guards::scope_guard::{{closure}} (56,264 samples, 0.03%)shed::state::ScopeStack::descend (56,264 samples, 0.03%)shed::state::VarTab::new (56,264 samples, 0.03%)shed::state::VarTab::init_env (56,264 samples, 0.03%)std::env::set_var (42,417 samples, 0.02%)std::sys::env::unix::setenv (42,417 samples, 0.02%)std::sys::env::unix::setenv::{{closure}}::{{closure}} (42,417 samples, 0.02%)__add_to_environ (42,417 samples, 0.02%)__tfind (42,417 samples, 0.02%)shed::parse::execute::Dispatcher::exec_if (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::exec_if::{{closure}} (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::exec_pipeline (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_cmd (20,685 samples, 0.01%)shed::parse::execute::Dispatcher::exec_cmd (20,685 samples, 0.01%)core::ptr::drop_in_place<alloc::string::String> (26,387 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (26,387 samples, 0.02%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (26,387 samples, 0.02%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (26,387 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::deallocate (26,387 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (26,387 samples, 0.02%)alloc::alloc::dealloc (26,387 samples, 0.02%)_int_free_chunk (26,387 samples, 0.02%)[unknown] (26,387 samples, 0.02%)[unknown] (26,387 samples, 0.02%)[unknown] (26,387 samples, 0.02%)core::ptr::drop_in_place<shed::parse::ParsedSrc> (1,392,459 samples, 0.82%)core::ptr::drop_in_place<alloc::collections::vec_deque::VecDeque<(shed::parse::lex::SpanSource,ariadne::Label<shed::parse::lex::Span>)>> (1,392,459 samples, 0.82%)<alloc::collections::vec_deque::VecDeque<T,A> as core::ops::drop::Drop>::drop (1,392,459 samples, 0.82%)alloc::collections::vec_deque::VecDeque<T,A>::as_mut_slices (1,392,459 samples, 0.82%)alloc::collections::vec_deque::VecDeque<T,A>::slice_ranges (1,392,459 samples, 0.82%)shed::parse::execute::exec_input (1,460,822 samples, 0.86%)shed::state::read_logic (68,363 samples, 0.04%)std::thread::local::LocalKey<T>::with (68,363 samples, 0.04%)std::thread::local::LocalKey<T>::try_with (68,363 samples, 0.04%)shed::state::read_logic::{{closure}} (68,363 samples, 0.04%)shed::parse::execute::exec_input::{{closure}} (68,363 samples, 0.04%)<shed::state::LogTab as core::clone::Clone>::clone (68,363 samples, 0.04%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (68,363 samples, 0.04%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (68,363 samples, 0.04%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (68,363 samples, 0.04%)hashbrown::raw::RawTable<T,A>::new_uninitialized (68,363 samples, 0.04%)hashbrown::raw::RawTableInner::new_uninitialized (68,363 samples, 0.04%)hashbrown::raw::alloc::inner::do_alloc (68,363 samples, 0.04%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (68,363 samples, 0.04%)alloc::alloc::Global::alloc_impl (68,363 samples, 0.04%)alloc::alloc::alloc (68,363 samples, 0.04%)__libc_malloc2 (68,363 samples, 0.04%)_int_malloc (68,363 samples, 0.04%)malloc_consolidate (68,363 samples, 0.04%)shed::parse::execute::Dispatcher::exec_builtin (1,538,387 samples, 0.90%)shed::parse::execute::Dispatcher::dispatch_builtin (1,538,387 samples, 0.90%)shed::builtin::varcmds::local (1,538,387 samples, 0.90%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,538,387 samples, 0.90%)shed::expand::Expander::expand (1,538,387 samples, 0.90%)shed::expand::expand_raw (1,512,000 samples, 0.89%)shed::expand::expand_var (1,512,000 samples, 0.89%)shed::expand::expand_cmd_sub (1,512,000 samples, 0.89%)shed::procio::IoStack::push_frame (38,233 samples, 0.02%)alloc::vec::Vec<T,A>::push (38,233 samples, 0.02%)alloc::vec::Vec<T,A>::push_mut (38,233 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (38,233 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_one (38,233 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_amortized (38,233 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::finish_grow (38,233 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::grow (38,233 samples, 0.02%)alloc::alloc::Global::grow_impl (38,233 samples, 0.02%)alloc::alloc::realloc (38,233 samples, 0.02%)realloc (38,233 samples, 0.02%)_int_realloc (23,229 samples, 0.01%)memcpy@@GLIBC_2.14@plt (23,229 samples, 0.01%)[unknown] (23,229 samples, 0.01%)[unknown] (23,229 samples, 0.01%)[unknown] (23,229 samples, 0.01%)shed::parse::execute::Dispatcher::begin_dispatch (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::dispatch_node (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::exec_conjunction (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::dispatch_node (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::exec_pipeline (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::dispatch_node (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::dispatch_cmd (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::exec_func (1,685,098 samples, 0.99%)shed::parse::execute::Dispatcher::exec_brc_grp (1,570,622 samples, 0.92%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,570,622 samples, 0.92%)shed::parse::execute::Dispatcher::dispatch_node (1,570,622 samples, 0.92%)shed::parse::execute::Dispatcher::exec_conjunction (1,570,622 samples, 0.92%)shed::parse::execute::Dispatcher::dispatch_node (1,570,622 samples, 0.92%)shed::parse::execute::Dispatcher::exec_pipeline (1,549,937 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,937 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_cmd (1,549,937 samples, 0.91%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (73,465 samples, 0.04%)alloc::slice::<impl [T]>::to_vec_in (73,465 samples, 0.04%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (73,465 samples, 0.04%)<shed::parse::lex::Tk as core::clone::Clone>::clone (73,465 samples, 0.04%)<shed::parse::lex::Span as core::clone::Clone>::clone (73,465 samples, 0.04%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (73,465 samples, 0.04%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (637,250 samples, 0.37%)alloc::slice::<impl [T]>::to_vec_in (637,250 samples, 0.37%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (637,250 samples, 0.37%)<shed::parse::lex::Tk as core::clone::Clone>::clone (637,250 samples, 0.37%)<shed::parse::lex::Span as core::clone::Clone>::clone (637,250 samples, 0.37%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (637,250 samples, 0.37%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (135,804 samples, 0.08%)alloc::slice::<impl [T]>::to_vec_in (135,804 samples, 0.08%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (135,804 samples, 0.08%)<shed::parse::lex::Tk as core::clone::Clone>::clone (135,804 samples, 0.08%)<shed::parse::lex::Span as core::clone::Clone>::clone (135,804 samples, 0.08%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (135,804 samples, 0.08%)<alloc::string::String as core::clone::Clone>::clone (135,804 samples, 0.08%)__libc_malloc2 (135,804 samples, 0.08%)_int_malloc (135,804 samples, 0.08%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (916,812 samples, 0.54%)alloc::slice::<impl [T]>::to_vec_in (916,812 samples, 0.54%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (916,812 samples, 0.54%)<shed::parse::Node as core::clone::Clone>::clone (916,812 samples, 0.54%)<shed::parse::NdRule as core::clone::Clone>::clone (279,562 samples, 0.16%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (215,009 samples, 0.13%)alloc::slice::<impl [T]>::to_vec_in (215,009 samples, 0.13%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (215,009 samples, 0.13%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (215,009 samples, 0.13%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (215,009 samples, 0.13%)<T as core::clone::CloneToUninit>::clone_to_uninit (215,009 samples, 0.13%)<T as core::clone::uninit::CopySpec>::clone_one (215,009 samples, 0.13%)<shed::parse::Node as core::clone::Clone>::clone (215,009 samples, 0.13%)<shed::parse::NdRule as core::clone::Clone>::clone (79,205 samples, 0.05%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (79,205 samples, 0.05%)alloc::slice::<impl [T]>::to_vec_in (79,205 samples, 0.05%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (79,205 samples, 0.05%)<shed::parse::Node as core::clone::Clone>::clone (79,205 samples, 0.05%)<shed::parse::NdRule as core::clone::Clone>::clone (79,205 samples, 0.05%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (511,615 samples, 0.30%)<T as core::clone::CloneToUninit>::clone_to_uninit (511,615 samples, 0.30%)<T as core::clone::uninit::CopySpec>::clone_one (511,615 samples, 0.30%)<shed::parse::Node as core::clone::Clone>::clone (511,615 samples, 0.30%)<shed::parse::NdRule as core::clone::Clone>::clone (511,615 samples, 0.30%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (511,615 samples, 0.30%)alloc::slice::<impl [T]>::to_vec_in (511,615 samples, 0.30%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (511,615 samples, 0.30%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (511,615 samples, 0.30%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (511,615 samples, 0.30%)<T as core::clone::CloneToUninit>::clone_to_uninit (511,615 samples, 0.30%)<T as core::clone::uninit::CopySpec>::clone_one (511,615 samples, 0.30%)<shed::parse::Node as core::clone::Clone>::clone (511,615 samples, 0.30%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (511,615 samples, 0.30%)alloc::slice::<impl [T]>::to_vec_in (511,615 samples, 0.30%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (511,615 samples, 0.30%)<shed::parse::lex::Tk as core::clone::Clone>::clone (511,615 samples, 0.30%)<shed::parse::lex::Span as core::clone::Clone>::clone (511,615 samples, 0.30%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (511,615 samples, 0.30%)<alloc::string::String as core::clone::Clone>::clone (511,615 samples, 0.30%)__memmove_avx512_unaligned_erms (511,615 samples, 0.30%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,661,950 samples, 0.97%)alloc::slice::<impl [T]>::to_vec_in (1,661,950 samples, 0.97%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,661,950 samples, 0.97%)<shed::parse::lex::Tk as core::clone::Clone>::clone (1,661,950 samples, 0.97%)<shed::parse::lex::Span as core::clone::Clone>::clone (1,661,950 samples, 0.97%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (1,661,950 samples, 0.97%)<alloc::string::String as core::clone::Clone>::clone (754,192 samples, 0.44%)__libc_malloc2 (754,192 samples, 0.44%)_int_malloc (754,192 samples, 0.44%)<shed::parse::Node as core::clone::Clone>::clone (4,042,472 samples, 2.37%)<s..<shed::parse::NdRule as core::clone::Clone>::clone (3,969,007 samples, 2.33%)<..<shed::parse::CondNode as core::clone::Clone>::clone (3,052,195 samples, 1.79%)<..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (2,540,580 samples, 1.49%)alloc::slice::<impl [T]>::to_vec_in (2,540,580 samples, 1.49%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (2,540,580 samples, 1.49%)<shed::parse::Node as core::clone::Clone>::clone (2,540,580 samples, 1.49%)<shed::parse::NdRule as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)alloc::slice::<impl [T]>::to_vec_in (878,630 samples, 0.52%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (878,630 samples, 0.52%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)<T as core::clone::CloneToUninit>::clone_to_uninit (878,630 samples, 0.52%)<T as core::clone::uninit::CopySpec>::clone_one (878,630 samples, 0.52%)<shed::parse::Node as core::clone::Clone>::clone (878,630 samples, 0.52%)<shed::parse::NdRule as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)alloc::slice::<impl [T]>::to_vec_in (878,630 samples, 0.52%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (878,630 samples, 0.52%)<shed::parse::CondNode as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)<T as core::clone::CloneToUninit>::clone_to_uninit (878,630 samples, 0.52%)<T as core::clone::uninit::CopySpec>::clone_one (878,630 samples, 0.52%)<shed::parse::Node as core::clone::Clone>::clone (878,630 samples, 0.52%)<shed::parse::NdRule as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)alloc::slice::<impl [T]>::to_vec_in (878,630 samples, 0.52%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (878,630 samples, 0.52%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)<T as core::clone::CloneToUninit>::clone_to_uninit (878,630 samples, 0.52%)<T as core::clone::uninit::CopySpec>::clone_one (878,630 samples, 0.52%)<shed::parse::Node as core::clone::Clone>::clone (878,630 samples, 0.52%)<alloc::collections::vec_deque::VecDeque<T,A> as core::clone::Clone>::clone (878,630 samples, 0.52%)shed::parse::execute::exec_input (6,979,823 samples, 4.09%)shed..shed::state::read_logic (4,287,316 samples, 2.51%)sh..std::thread::local::LocalKey<T>::with (4,287,316 samples, 2.51%)st..std::thread::local::LocalKey<T>::try_with (4,287,316 samples, 2.51%)st..shed::state::read_logic::{{closure}} (4,287,316 samples, 2.51%)sh..shed::parse::execute::exec_input::{{closure}} (4,287,316 samples, 2.51%)sh..<shed::state::LogTab as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<h..<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<h..<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (4,287,316 samples, 2.51%)<h..hashbrown::raw::RawTable<T,A>::clone_from_impl (4,287,316 samples, 2.51%)ha..core::clone::Clone::clone (4,287,316 samples, 2.51%)co..<shed::state::ShFunc as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<shed::parse::Node as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<shed::parse::NdRule as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<a..alloc::slice::<impl [T]>::to_vec_in (4,287,316 samples, 2.51%)al..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (4,287,316 samples, 2.51%)<T..<shed::parse::Node as core::clone::Clone>::clone (4,287,316 samples, 2.51%)<s..<shed::parse::NdRule as core::clone::Clone>::clone (4,270,118 samples, 2.50%)<s..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (4,270,118 samples, 2.50%)<a..alloc::slice::<impl [T]>::to_vec_in (4,270,118 samples, 2.50%)al..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (4,270,118 samples, 2.50%)<T..<shed::parse::ConjunctNode as core::clone::Clone>::clone (4,270,118 samples, 2.50%)<s..<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (4,270,118 samples, 2.50%)<a..<T as core::clone::CloneToUninit>::clone_to_uninit (4,270,118 samples, 2.50%)<T..<T as core::clone::uninit::CopySpec>::clone_one (4,270,118 samples, 2.50%)<T..core::ptr::write (227,646 samples, 0.13%)__memmove_avx512_unaligned_erms (227,646 samples, 0.13%)shed::parse::execute::Dispatcher::exec_builtin (7,043,625 samples, 4.13%)shed..shed::parse::execute::Dispatcher::dispatch_builtin (7,043,625 samples, 4.13%)shed..shed::builtin::varcmds::local (7,043,625 samples, 4.13%)shed..shed::expand::<impl shed::parse::lex::Tk>::expand (7,043,625 samples, 4.13%)shed..shed::expand::Expander::expand (7,043,625 samples, 4.13%)shed..shed::expand::expand_raw (7,043,625 samples, 4.13%)shed..shed::expand::expand_var (7,043,625 samples, 4.13%)shed..shed::expand::expand_cmd_sub (7,043,625 samples, 4.13%)shed..shed::parse::execute::Dispatcher::begin_dispatch (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_conjunction (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_pipeline (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_cmd (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_func (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_brc_grp (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_conjunction (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::exec_pipeline (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_node (7,048,515 samples, 4.13%)shed:..shed::parse::execute::Dispatcher::dispatch_cmd (7,048,515 samples, 4.13%)shed:..[unknown] (30,042 samples, 0.02%)[unknown] (30,042 samples, 0.02%)[unknown] (30,042 samples, 0.02%)[unknown] (30,042 samples, 0.02%)[unknown] (30,042 samples, 0.02%)shed::parse::execute::exec_input (8,402,226 samples, 4.93%)shed::..shed::state::read_logic (637,587 samples, 0.37%)std::thread::local::LocalKey<T>::with (637,587 samples, 0.37%)std::thread::local::LocalKey<T>::try_with (607,545 samples, 0.36%)shed::state::read_logic::{{closure}} (607,545 samples, 0.36%)shed::parse::execute::exec_input::{{closure}} (607,545 samples, 0.36%)<shed::state::LogTab as core::clone::Clone>::clone (607,545 samples, 0.36%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (607,545 samples, 0.36%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (607,545 samples, 0.36%)hashbrown::raw::RawTable<T,A>::clone_from_impl (607,545 samples, 0.36%)core::clone::Clone::clone (607,545 samples, 0.36%)<shed::state::ShFunc as core::clone::Clone>::clone (607,545 samples, 0.36%)<shed::parse::Node as core::clone::Clone>::clone (607,545 samples, 0.36%)<shed::parse::NdRule as core::clone::Clone>::clone (607,545 samples, 0.36%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)alloc::slice::<impl [T]>::to_vec_in (607,545 samples, 0.36%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (607,545 samples, 0.36%)<shed::parse::Node as core::clone::Clone>::clone (607,545 samples, 0.36%)<shed::parse::NdRule as core::clone::Clone>::clone (607,545 samples, 0.36%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)alloc::slice::<impl [T]>::to_vec_in (607,545 samples, 0.36%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (607,545 samples, 0.36%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (607,545 samples, 0.36%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)<T as core::clone::CloneToUninit>::clone_to_uninit (607,545 samples, 0.36%)<T as core::clone::uninit::CopySpec>::clone_one (607,545 samples, 0.36%)<shed::parse::Node as core::clone::Clone>::clone (607,545 samples, 0.36%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (607,545 samples, 0.36%)alloc::slice::<impl [T]>::to_vec_in (607,545 samples, 0.36%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (607,545 samples, 0.36%)<shed::parse::lex::Tk as core::clone::Clone>::clone (607,545 samples, 0.36%)<shed::parse::lex::Span as core::clone::Clone>::clone (607,545 samples, 0.36%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (607,545 samples, 0.36%)<alloc::string::String as core::clone::Clone>::clone (607,545 samples, 0.36%)__memmove_avx512_unaligned_erms (607,545 samples, 0.36%)shed::readline::Prompt::refresh (8,404,333 samples, 4.93%)shed::..shed::expand::expand_prompt (8,404,333 samples, 4.93%)shed::..shed::expand::expand_cmd_sub (8,404,333 samples, 4.93%)shed::..shed::readline::ShedVi::print_line (32,430 samples, 0.02%)shed::readline::ShedVi::line_text (32,430 samples, 0.02%)<T as alloc::string::ToString>::to_string (32,430 samples, 0.02%)<T as alloc::string::SpecToString>::spec_to_string (32,430 samples, 0.02%)<shed::readline::linebuf::LineBuf as core::fmt::Display>::fmt (32,430 samples, 0.02%)core::fmt::Formatter::write_fmt (32,430 samples, 0.02%)core::fmt::write (32,430 samples, 0.02%)<alloc::string::String as core::fmt::Write>::write_str (32,430 samples, 0.02%)<core::iter::adapters::peekable::Peekable<I> as core::iter::traits::iterator::Iterator>::next (110,699 samples, 0.06%)<core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::next (110,699 samples, 0.06%)<core::str::iter::Lines as core::iter::traits::iterator::Iterator>::next (110,699 samples, 0.06%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next (110,699 samples, 0.06%)<core::str::iter::SplitInclusive<P> as core::iter::traits::iterator::Iterator>::next (110,699 samples, 0.06%)core::str::iter::SplitInternal<P>::next_inclusive (110,699 samples, 0.06%)<core::str::pattern::CharSearcher as core::str::pattern::Searcher>::next_match (110,699 samples, 0.06%)core::slice::memchr::memchr (110,699 samples, 0.06%)core::slice::memchr::memchr_aligned (110,699 samples, 0.06%)alloc::string::String::push (4,131,504 samples, 2.42%)al..core::char::methods::encode_utf8_raw_unchecked (4,131,459 samples, 2.42%)co..core::char::methods::len_utf8 (4,131,459 samples, 2.42%)co..core::str::<impl str>::chars (801,363 samples, 0.47%)core::slice::<impl [T]>::iter (801,363 samples, 0.47%)core::slice::iter::Iter<T>::new (801,363 samples, 0.47%)core::ptr::mut_ptr::<impl *mut T>::add (801,363 samples, 0.47%)shed::readline::ShedVi::new (14,454,553 samples, 8.47%)shed::readli..shed::readline::history::History::new (5,993,523 samples, 3.51%)she..shed::readline::history::read_hist_file (5,993,523 samples, 3.51%)she..core::str::<impl str>::parse (5,993,523 samples, 3.51%)cor..<shed::readline::history::HistEntries as core::str::traits::FromStr>::from_str (5,993,523 samples, 3.51%)<sh..core::str::<impl str>::parse (949,957 samples, 0.56%)<shed::readline::history::HistEntry as core::str::traits::FromStr>::from_str (949,957 samples, 0.56%)alloc::fmt::format (949,957 samples, 0.56%)core::option::Option<T>::map_or_else (949,957 samples, 0.56%)alloc::fmt::format::{{closure}} (949,957 samples, 0.56%)alloc::fmt::format::format_inner (949,957 samples, 0.56%)malloc (947,779 samples, 0.56%)shed::readline::ShedVi::print_line (809,847 samples, 0.47%)shed::readline::ShedVi::get_layout (809,847 samples, 0.47%)shed::readline::term::Layout::from_parts (809,847 samples, 0.47%)shed::readline::term::Layout::calc_pos (809,847 samples, 0.47%)shed::readline::term::width (809,847 samples, 0.47%)shed::readline::term::width_calculator (809,847 samples, 0.47%)std::env::var (809,847 samples, 0.47%)std::env::_var (809,847 samples, 0.47%)std::sys::env::unix::getenv (809,847 samples, 0.47%)std::sys::env::unix::getenv::{{closure}} (809,847 samples, 0.47%)malloc (809,847 samples, 0.47%)shed::expand::expand_aliases (794,529 samples, 0.47%)core::iter::traits::iterator::Iterator::collect (794,529 samples, 0.47%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (794,529 samples, 0.47%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (794,529 samples, 0.47%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (794,529 samples, 0.47%)<alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend (794,529 samples, 0.47%)alloc::vec::Vec<T,A>::extend_desugared (794,529 samples, 0.47%)<shed::parse::lex::LexStream as core::iter::traits::iterator::Iterator>::next (794,529 samples, 0.47%)shed::parse::lex::LexStream::read_string (794,529 samples, 0.47%)core::ptr::drop_in_place<alloc::string::String> (794,529 samples, 0.47%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (794,529 samples, 0.47%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (794,529 samples, 0.47%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (794,529 samples, 0.47%)alloc::raw_vec::RawVecInner<A>::deallocate (794,529 samples, 0.47%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (794,529 samples, 0.47%)alloc::alloc::dealloc (794,529 samples, 0.47%)_int_free_chunk (794,529 samples, 0.47%)_int_free_merge_chunk (794,529 samples, 0.47%)_int_free_create_chunk (794,529 samples, 0.47%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (292,048 samples, 0.17%)alloc::slice::<impl [T]>::to_vec_in (292,048 samples, 0.17%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (292,048 samples, 0.17%)<shed::parse::lex::Tk as core::clone::Clone>::clone (292,048 samples, 0.17%)<shed::parse::lex::Span as core::clone::Clone>::clone (292,048 samples, 0.17%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (292,048 samples, 0.17%)<alloc::string::String as core::clone::Clone>::clone (292,048 samples, 0.17%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (292,048 samples, 0.17%)shed::parse::ParseStream::parse_case (303,082 samples, 0.18%)shed::parse::ParseStream::parse_cmd_list (303,082 samples, 0.18%)shed::parse::ParseStream::parse_block (303,082 samples, 0.18%)shed::parse::ParseStream::parse_pipeln (303,082 samples, 0.18%)shed::parse::ParseStream::parse_block (303,082 samples, 0.18%)shed::parse::ParseStream::parse_cmd (303,082 samples, 0.18%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (15,296,660 samples, 8.97%)<alloc::vec::..alloc::slice::<impl [T]>::to_vec_in (15,296,660 samples, 8.97%)alloc::slice:..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (15,296,660 samples, 8.97%)<T as alloc::..<shed::parse::lex::Tk as core::clone::Clone>::clone (15,296,660 samples, 8.97%)<shed::parse:..<shed::parse::lex::Span as core::clone::Clone>::clone (15,296,660 samples, 8.97%)<shed::parse:..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (15,296,660 samples, 8.97%)<shed::parse:..shed::parse::ParseStream::parse_if (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::parse_cmd_list (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::parse_block (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::parse_pipeln (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::parse_block (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::parse_cmd (24,891,931 samples, 14.59%)shed::parse::ParseStre..shed::parse::ParseStream::commit (9,595,271 samples, 5.63%)shed::p..alloc::slice::<impl [T]>::to_vec (9,595,271 samples, 5.63%)alloc::..alloc::slice::<impl [T]>::to_vec_in (9,595,271 samples, 5.63%)alloc::..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (9,595,271 samples, 5.63%)<T as a..<shed::parse::lex::Tk as core::clone::Clone>::clone (9,595,271 samples, 5.63%)<shed::..<shed::parse::lex::Span as core::clone::Clone>::clone (9,595,271 samples, 5.63%)<shed::..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (9,595,271 samples, 5.63%)<shed::..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (11,326,218 samples, 6.64%)<alloc::v..alloc::slice::<impl [T]>::to_vec_in (11,326,218 samples, 6.64%)alloc::sl..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (11,326,218 samples, 6.64%)<T as all..<shed::parse::lex::Tk as core::clone::Clone>::clone (11,326,218 samples, 6.64%)<shed::pa..<shed::parse::lex::Span as core::clone::Clone>::clone (11,326,218 samples, 6.64%)<shed::pa..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (11,326,218 samples, 6.64%)<shed::pa..<alloc::string::String as core::clone::Clone>::clone (11,326,218 samples, 6.64%)<alloc::s..__libc_malloc2 (11,326,218 samples, 6.64%)__libc_ma.._int_malloc (11,326,218 samples, 6.64%)_int_mall..shed::parse::ParseStream::parse_loop (16,025,431 samples, 9.40%)shed::parse::..shed::parse::ParseStream::parse_cmd_list (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_block (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_if (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_cmd_list (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_block (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_pipeln (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_block (4,699,213 samples, 2.76%)sh..shed::parse::ParseStream::parse_cmd (4,699,213 samples, 2.76%)sh..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (4,699,213 samples, 2.76%)<a..alloc::slice::<impl [T]>::to_vec_in (4,699,213 samples, 2.76%)al..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (4,699,213 samples, 2.76%)<T..<shed::parse::lex::Tk as core::clone::Clone>::clone (4,699,213 samples, 2.76%)<s..<shed::parse::lex::Span as core::clone::Clone>::clone (4,699,213 samples, 2.76%)<s..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (4,699,213 samples, 2.76%)<s..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (11,795,563 samples, 6.92%)<alloc::v..alloc::slice::<impl [T]>::to_vec_in (11,795,563 samples, 6.92%)alloc::sl..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (11,795,563 samples, 6.92%)<T as all..<shed::parse::lex::Tk as core::clone::Clone>::clone (11,795,563 samples, 6.92%)<shed::pa..<shed::parse::lex::Span as core::clone::Clone>::clone (11,795,563 samples, 6.92%)<shed::pa..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (11,795,563 samples, 6.92%)<shed::pa..shed::parse::ParseStream::parse_func_def (64,478,898 samples, 37.80%)shed::parse::ParseStream::parse_func_defshed::parse::ParseStream::parse_brc_grp (64,478,898 samples, 37.80%)shed::parse::ParseStream::parse_brc_grpshed::parse::ParseStream::parse_cmd_list (64,478,898 samples, 37.80%)shed::parse::ParseStream::parse_cmd_listshed::parse::ParseStream::parse_block (64,478,898 samples, 37.80%)shed::parse::ParseStream::parse_blockshed::parse::ParseStream::parse_pipeln (23,258,454 samples, 13.64%)shed::parse::ParseStr..shed::parse::ParseStream::parse_block (23,258,454 samples, 13.64%)shed::parse::ParseStr..shed::parse::ParseStream::parse_cmd (23,258,454 samples, 13.64%)shed::parse::ParseStr..shed::parse::ParseStream::commit (11,462,891 samples, 6.72%)shed::par..alloc::slice::<impl [T]>::to_vec (11,462,891 samples, 6.72%)alloc::sl..alloc::slice::<impl [T]>::to_vec_in (11,462,891 samples, 6.72%)alloc::sl..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (11,462,891 samples, 6.72%)<T as all..<shed::parse::lex::Tk as core::clone::Clone>::clone (11,462,891 samples, 6.72%)<shed::pa..<shed::parse::lex::Span as core::clone::Clone>::clone (11,462,891 samples, 6.72%)<shed::pa..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (11,462,891 samples, 6.72%)<shed::pa..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (6,584,345 samples, 3.86%)<all..alloc::slice::<impl [T]>::to_vec_in (6,584,345 samples, 3.86%)allo..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (6,584,345 samples, 3.86%)<T a..<shed::parse::lex::Tk as core::clone::Clone>::clone (6,584,345 samples, 3.86%)<she..<shed::parse::lex::Span as core::clone::Clone>::clone (6,584,345 samples, 3.86%)<she..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (6,584,345 samples, 3.86%)<she..alloc::slice::<impl [T]>::to_vec (6,394,010 samples, 3.75%)allo..alloc::slice::<impl [T]>::to_vec_in (6,394,010 samples, 3.75%)allo..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (6,394,010 samples, 3.75%)<T a..<shed::parse::lex::Tk as core::clone::Clone>::clone (6,394,010 samples, 3.75%)<she..<shed::parse::lex::Span as core::clone::Clone>::clone (6,394,010 samples, 3.75%)<she..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (6,394,010 samples, 3.75%)<she..shed::parse::ParsedSrc::parse_src (84,690,082 samples, 49.65%)shed::parse::ParsedSrc::parse_src<shed::parse::ParseStream as core::iter::traits::iterator::Iterator>::next (84,690,082 samples, 49.65%)<shed::parse::ParseStream as core::iter::traits::iterator::Iterator>::nextshed::parse::ParseStream::parse_cmd_list (84,690,082 samples, 49.65%)shed::parse::ParseStream::parse_cmd_listshed::parse::ParseStream::parse_block (84,690,082 samples, 49.65%)shed::parse::ParseStream::parse_blockshed::parse::ParseStream::parse_pipeln (20,211,184 samples, 11.85%)shed::parse::Parse..shed::parse::ParseStream::parse_block (20,211,184 samples, 11.85%)shed::parse::Parse..shed::parse::ParseStream::parse_cmd (20,211,184 samples, 11.85%)shed::parse::Parse..shed::parse::ParseStream::commit (13,626,839 samples, 7.99%)shed::parse..core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (7,232,829 samples, 4.24%)core:..core::ptr::drop_in_place<alloc::raw_vec::RawVec<shed::parse::lex::Tk>> (7,232,829 samples, 4.24%)core:..<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (7,232,829 samples, 4.24%)<allo..alloc::raw_vec::RawVecInner<A>::deallocate (7,232,829 samples, 4.24%)alloc..<alloc::alloc::Global as core::alloc::Allocator>::deallocate (7,232,829 samples, 4.24%)<allo..alloc::alloc::dealloc (7,232,829 samples, 4.24%)alloc.._int_free_chunk (7,232,829 samples, 4.24%)_int_.._int_free_maybe_consolidate.part.0 (7,232,829 samples, 4.24%)_int_..malloc_consolidate (7,232,829 samples, 4.24%)mallo..<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (5,276,871 samples, 3.09%)<al..alloc::slice::<impl [T]>::to_vec_in (5,276,871 samples, 3.09%)all..<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (5,276,871 samples, 3.09%)<T ..<shed::parse::lex::Tk as core::clone::Clone>::clone (5,276,871 samples, 3.09%)<sh..<shed::parse::lex::Span as core::clone::Clone>::clone (5,276,871 samples, 3.09%)<sh..<shed::parse::lex::SpanSource as core::clone::Clone>::clone (5,276,871 samples, 3.09%)<sh..shed::parse::execute::Dispatcher::exec_func_def (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParsedSrc::parse_src (10,291,238 samples, 6.03%)shed::pa..<shed::parse::ParseStream as core::iter::traits::iterator::Iterator>::next (10,291,238 samples, 6.03%)<shed::p..shed::parse::ParseStream::parse_cmd_list (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_block (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_brc_grp (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_cmd_list (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_block (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_pipeln (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_block (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::parse_cmd (10,291,238 samples, 6.03%)shed::pa..shed::parse::ParseStream::commit (5,014,367 samples, 2.94%)sh..core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (5,014,367 samples, 2.94%)co..<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (5,014,367 samples, 2.94%)<a..core::ptr::drop_in_place<[shed::parse::lex::Tk]> (5,014,367 samples, 2.94%)co..core::ptr::drop_in_place<shed::parse::lex::Tk> (5,014,367 samples, 2.94%)co..core::ptr::drop_in_place<shed::parse::lex::Span> (5,014,367 samples, 2.94%)co..core::ptr::drop_in_place<shed::parse::lex::SpanSource> (5,014,367 samples, 2.94%)co..core::ptr::drop_in_place<alloc::sync::Arc<alloc::string::String>> (5,014,367 samples, 2.94%)co..<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop (5,014,367 samples, 2.94%)<a..<core::result::Result<T,E> as core::ops::try_trait::Try>::branch (23,335 samples, 0.01%)core::ptr::drop_in_place<shed::state::LogTab> (771,234 samples, 0.45%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (771,234 samples, 0.45%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (771,234 samples, 0.45%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (771,234 samples, 0.45%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)hashbrown::raw::RawTableInner::drop_inner_table (771,234 samples, 0.45%)hashbrown::raw::RawTableInner::drop_elements (771,234 samples, 0.45%)hashbrown::raw::Bucket<T>::drop (771,234 samples, 0.45%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (771,234 samples, 0.45%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::state::ShFunc> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::Node]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::CondNode> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::Node]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::CaseNode>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::CaseNode]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::CaseNode> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::Node]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::Node]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::NdRule> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (771,234 samples, 0.45%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)core::ptr::drop_in_place<[shed::parse::Node]> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::Node> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::lex::Tk> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::lex::Span> (771,234 samples, 0.45%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::string::String> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (771,234 samples, 0.45%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (771,234 samples, 0.45%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (771,234 samples, 0.45%)alloc::raw_vec::RawVecInner<A>::deallocate (771,234 samples, 0.45%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (771,234 samples, 0.45%)alloc::alloc::dealloc (771,234 samples, 0.45%)_int_free_chunk (771,234 samples, 0.45%)[unknown] (771,234 samples, 0.45%)[unknown] (771,234 samples, 0.45%)[unknown] (771,234 samples, 0.45%)[unknown] (771,234 samples, 0.45%)[unknown] (771,234 samples, 0.45%)shed::parse::execute::Dispatcher::exec_cmd::{{closure}} (24,869 samples, 0.01%)nix::unistd::execvpe (24,869 samples, 0.01%)nix::unistd::to_exec_array (24,869 samples, 0.01%)core::iter::traits::iterator::Iterator::collect (24,869 samples, 0.01%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (24,869 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (24,869 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (24,869 samples, 0.01%)alloc::vec::Vec<T>::with_capacity (24,869 samples, 0.01%)alloc::vec::Vec<T,A>::with_capacity_in (24,869 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (24,869 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (24,869 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (24,869 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (24,869 samples, 0.01%)alloc::alloc::Global::alloc_impl (24,869 samples, 0.01%)alloc::alloc::alloc (24,869 samples, 0.01%)malloc (24,869 samples, 0.01%)[unknown] (24,869 samples, 0.01%)[unknown] (24,869 samples, 0.01%)[unknown] (24,869 samples, 0.01%)[unknown] (24,869 samples, 0.01%)[unknown] (24,869 samples, 0.01%)shed::parse::execute::Dispatcher::set_assignments (716,632 samples, 0.42%)shed::expand::<impl shed::parse::lex::Tk>::expand (716,632 samples, 0.42%)shed::expand::Expander::expand (716,632 samples, 0.42%)shed::expand::expand_glob (716,632 samples, 0.42%)<glob::Paths as core::iter::traits::iterator::Iterator>::next (716,632 samples, 0.42%)glob::fill_todo (716,632 samples, 0.42%)core::result::Result<T,E>::and_then (716,632 samples, 0.42%)glob::fill_todo::{{closure}} (716,632 samples, 0.42%)core::iter::traits::iterator::Iterator::collect (716,632 samples, 0.42%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter (716,632 samples, 0.42%)core::iter::adapters::try_process (716,632 samples, 0.42%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}} (716,632 samples, 0.42%)core::iter::traits::iterator::Iterator::collect (716,632 samples, 0.42%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (716,632 samples, 0.42%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (716,632 samples, 0.42%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (716,632 samples, 0.42%)<core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::next (716,632 samples, 0.42%)core::iter::traits::iterator::Iterator::try_for_each (716,632 samples, 0.42%)<core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::try_fold (716,632 samples, 0.42%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (716,632 samples, 0.42%)core::iter::traits::iterator::Iterator::try_fold (716,632 samples, 0.42%)<std::fs::ReadDir as core::iter::traits::iterator::Iterator>::next (716,632 samples, 0.42%)<std::sys::fs::unix::ReadDir as core::iter::traits::iterator::Iterator>::next (716,632 samples, 0.42%)__GI___readdir64 (716,632 samples, 0.42%)core::iter::traits::iterator::Iterator::collect (1,621,722 samples, 0.95%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (1,621,722 samples, 0.95%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (1,621,722 samples, 0.95%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (1,621,722 samples, 0.95%)<alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend (1,621,722 samples, 0.95%)alloc::vec::Vec<T,A>::extend_desugared (1,621,722 samples, 0.95%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next (1,621,722 samples, 0.95%)core::option::Option<T>::map (1,621,722 samples, 0.95%)core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once (1,621,722 samples, 0.95%)shed::parse::execute::ExecArgs::get_envp::{{closure}} (1,621,722 samples, 0.95%)alloc::fmt::format (1,621,722 samples, 0.95%)core::option::Option<T>::map_or_else (1,621,722 samples, 0.95%)alloc::fmt::format::{{closure}} (1,621,722 samples, 0.95%)alloc::fmt::format::format_inner (1,621,722 samples, 0.95%)core::fmt::write (1,621,722 samples, 0.95%)<alloc::string::String as core::fmt::Write>::write_str (807,835 samples, 0.47%)alloc::raw_vec::RawVecInner<A>::reserve::do_reserve_and_handle (807,835 samples, 0.47%)alloc::raw_vec::RawVecInner<A>::finish_grow (807,835 samples, 0.47%)realloc (807,835 samples, 0.47%)_int_realloc (807,835 samples, 0.47%)_int_malloc (807,835 samples, 0.47%)shed::parse::execute::Dispatcher::exec_if (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::exec_if::{{closure}} (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::dispatch_node (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::exec_conjunction (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::dispatch_node (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::exec_pipeline (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::dispatch_node (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::dispatch_cmd (3,123,897 samples, 1.83%)s..shed::parse::execute::Dispatcher::exec_cmd (3,123,897 samples, 1.83%)s..shed::parse::execute::ExecArgs::new (2,381,705 samples, 1.40%)shed::parse::execute::ExecArgs::from_expanded (2,381,705 samples, 1.40%)shed::parse::execute::ExecArgs::get_envp (2,381,705 samples, 1.40%)std::env::vars_os (759,983 samples, 0.45%)std::sys::env::unix::env (759,983 samples, 0.45%)alloc::raw_vec::RawVec<T,A>::grow_one (759,983 samples, 0.45%)alloc::raw_vec::RawVecInner<A>::finish_grow (759,983 samples, 0.45%)realloc (759,983 samples, 0.45%)_int_realloc (759,983 samples, 0.45%)_int_malloc (759,983 samples, 0.45%)shed::parse::execute::Dispatcher::exec_if (3,153,654 samples, 1.85%)s..shed::parse::execute::Dispatcher::exec_if::{{closure}} (3,153,654 samples, 1.85%)s..shed::parse::execute::Dispatcher::dispatch_node (3,153,654 samples, 1.85%)s..shed::parse::execute::Dispatcher::exec_conjunction (3,153,654 samples, 1.85%)s..shed::parse::execute::Dispatcher::dispatch_node (3,153,654 samples, 1.85%)s..shed::parse::execute::Dispatcher::exec_pipeline (29,757 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_node (29,757 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_cmd (29,757 samples, 0.02%)shed::parse::execute::Dispatcher::exec_cmd (29,757 samples, 0.02%)shed::parse::execute::Dispatcher::exec_cmd::{{closure}} (23,859 samples, 0.01%)nix::unistd::execvpe (23,859 samples, 0.01%)nix::unistd::to_exec_array (23,859 samples, 0.01%)core::iter::traits::iterator::Iterator::collect (23,859 samples, 0.01%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (23,859 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (23,859 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (23,859 samples, 0.01%)alloc::vec::Vec<T>::with_capacity (23,859 samples, 0.01%)alloc::vec::Vec<T,A>::with_capacity_in (23,859 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (23,859 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (23,859 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (23,859 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (23,859 samples, 0.01%)alloc::alloc::Global::alloc_impl (23,859 samples, 0.01%)alloc::alloc::alloc (23,859 samples, 0.01%)__rustc::__rust_no_alloc_shim_is_unstable_v2 (23,859 samples, 0.01%)[unknown] (23,859 samples, 0.01%)shed::expand::glob_to_regex (684,093 samples, 0.40%)regex::regex::string::Regex::new (684,093 samples, 0.40%)regex::builders::string::RegexBuilder::build (684,093 samples, 0.40%)regex::builders::Builder::build_one_string (684,093 samples, 0.40%)regex_automata::meta::regex::Builder::build (684,093 samples, 0.40%)regex_automata::meta::regex::Builder::build_many (684,093 samples, 0.40%)regex_syntax::ast::parse::Parser::parse (684,093 samples, 0.40%)regex_syntax::ast::parse::ParserI<P>::parse (684,093 samples, 0.40%)regex_syntax::ast::parse::ParserI<P>::parse_with_comments (684,093 samples, 0.40%)regex_syntax::ast::parse::NestLimiter<P>::check (684,093 samples, 0.40%)core::ptr::drop_in_place<alloc::string::String> (24,472 samples, 0.01%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (24,472 samples, 0.01%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (24,472 samples, 0.01%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (24,472 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::deallocate (24,472 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (24,472 samples, 0.01%)alloc::alloc::dealloc (24,472 samples, 0.01%)shed::expand::expand_raw (24,472 samples, 0.01%)core::ptr::drop_in_place<alloc::string::String> (24,472 samples, 0.01%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (24,472 samples, 0.01%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (24,472 samples, 0.01%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (24,472 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::deallocate (24,472 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (24,472 samples, 0.01%)alloc::alloc::dealloc (24,472 samples, 0.01%)__memmove_avx512_unaligned_erms (24,472 samples, 0.01%)[unknown] (24,472 samples, 0.01%)shed::expand::expand_glob (27,135 samples, 0.02%)glob::glob_with (27,135 samples, 0.02%)core::iter::adapters::peekable::Peekable<I>::peek (27,135 samples, 0.02%)core::option::Option<T>::get_or_insert_with (27,135 samples, 0.02%)core::iter::adapters::peekable::Peekable<I>::peek::{{closure}} (27,135 samples, 0.02%)<std::path::Components as core::iter::traits::iterator::Iterator>::next (27,135 samples, 0.02%)core::ptr::drop_in_place<shed::state::LogTab> (298,754 samples, 0.18%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (298,754 samples, 0.18%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (298,754 samples, 0.18%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (298,754 samples, 0.18%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (298,754 samples, 0.18%)hashbrown::raw::RawTableInner::drop_inner_table (298,754 samples, 0.18%)hashbrown::raw::RawTableInner::drop_elements (298,754 samples, 0.18%)hashbrown::raw::Bucket<T>::drop (298,754 samples, 0.18%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (298,754 samples, 0.18%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (298,754 samples, 0.18%)core::ptr::drop_in_place<shed::state::ShFunc> (298,754 samples, 0.18%)core::ptr::drop_in_place<shed::parse::Node> (298,754 samples, 0.18%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (298,754 samples, 0.18%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (298,754 samples, 0.18%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (298,754 samples, 0.18%)core::ptr::drop_in_place<shed::parse::lex::Tk> (298,754 samples, 0.18%)core::ptr::drop_in_place<shed::parse::lex::Span> (298,754 samples, 0.18%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (298,754 samples, 0.18%)core::ptr::drop_in_place<alloc::sync::Arc<alloc::string::String>> (298,754 samples, 0.18%)<alloc::sync::Arc<T,A> as core::ops::drop::Drop>::drop (298,754 samples, 0.18%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (174,649 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (174,649 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (174,649 samples, 0.10%)<shed::parse::CondNode as core::clone::Clone>::clone (174,649 samples, 0.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (174,649 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (174,649 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (174,649 samples, 0.10%)<shed::parse::Node as core::clone::Clone>::clone (174,649 samples, 0.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (174,649 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (174,649 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (174,649 samples, 0.10%)<shed::parse::lex::Tk as core::clone::Clone>::clone (174,649 samples, 0.10%)<shed::parse::lex::Span as core::clone::Clone>::clone (174,649 samples, 0.10%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (174,649 samples, 0.10%)shed::parse::execute::exec_input (474,179 samples, 0.28%)shed::state::read_logic (175,425 samples, 0.10%)std::thread::local::LocalKey<T>::with (175,425 samples, 0.10%)std::thread::local::LocalKey<T>::try_with (175,425 samples, 0.10%)shed::state::read_logic::{{closure}} (175,425 samples, 0.10%)shed::parse::execute::exec_input::{{closure}} (175,425 samples, 0.10%)<shed::state::LogTab as core::clone::Clone>::clone (175,425 samples, 0.10%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (175,425 samples, 0.10%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (175,425 samples, 0.10%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (175,425 samples, 0.10%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (175,425 samples, 0.10%)hashbrown::raw::RawTable<T,A>::clone_from_impl (175,425 samples, 0.10%)core::clone::Clone::clone (175,425 samples, 0.10%)<shed::state::ShFunc as core::clone::Clone>::clone (175,425 samples, 0.10%)<shed::parse::Node as core::clone::Clone>::clone (175,425 samples, 0.10%)<shed::parse::NdRule as core::clone::Clone>::clone (175,425 samples, 0.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (175,425 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (175,425 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (175,425 samples, 0.10%)<shed::parse::Node as core::clone::Clone>::clone (175,425 samples, 0.10%)<shed::parse::NdRule as core::clone::Clone>::clone (175,425 samples, 0.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (175,425 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (175,425 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (175,425 samples, 0.10%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (175,425 samples, 0.10%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (175,425 samples, 0.10%)<T as core::clone::CloneToUninit>::clone_to_uninit (175,425 samples, 0.10%)<T as core::clone::uninit::CopySpec>::clone_one (175,425 samples, 0.10%)<shed::parse::Node as core::clone::Clone>::clone (175,425 samples, 0.10%)<shed::parse::NdRule as core::clone::Clone>::clone (175,425 samples, 0.10%)shed::parse::execute::Dispatcher::exec_case (1,218,542 samples, 0.71%)shed::parse::execute::Dispatcher::exec_case::{{closure}} (1,218,542 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::exec_conjunction (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::dispatch_node (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::exec_pipeline (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::dispatch_node (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::dispatch_cmd (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::exec_cmd (534,449 samples, 0.31%)shed::parse::execute::Dispatcher::set_assignments (534,449 samples, 0.31%)shed::expand::<impl shed::parse::lex::Tk>::expand (534,449 samples, 0.31%)shed::expand::Expander::expand (534,449 samples, 0.31%)shed::expand::expand_raw (482,842 samples, 0.28%)shed::expand::expand_var (482,842 samples, 0.28%)shed::expand::expand_cmd_sub (482,842 samples, 0.28%)shed::parse::execute::Dispatcher::exec_loop::{{closure}} (1,942,127 samples, 1.14%)shed::parse::execute::Dispatcher::dispatch_node (1,942,127 samples, 1.14%)shed::parse::execute::Dispatcher::exec_conjunction (1,942,127 samples, 1.14%)shed::parse::execute::Dispatcher::dispatch_node (1,942,127 samples, 1.14%)shed::parse::execute::Dispatcher::exec_pipeline (711,519 samples, 0.42%)shed::parse::execute::Dispatcher::dispatch_node (711,519 samples, 0.42%)shed::parse::execute::Dispatcher::dispatch_cmd (711,519 samples, 0.42%)shed::parse::execute::Dispatcher::exec_cmd (711,519 samples, 0.42%)shed::parse::execute::Dispatcher::set_assignments (711,519 samples, 0.42%)shed::expand::<impl shed::parse::lex::Tk>::expand (711,519 samples, 0.42%)shed::expand::Expander::expand (711,519 samples, 0.42%)shed::expand::expand_raw (711,519 samples, 0.42%)shed::expand::expand_var (711,519 samples, 0.42%)shed::expand::expand_cmd_sub (711,519 samples, 0.42%)shed::expand::expand_arithmetic (711,519 samples, 0.42%)shed::expand::ArithTk::tokenize (711,519 samples, 0.42%)core::str::<impl str>::parse (711,519 samples, 0.42%)core::num::dec2flt::<impl core::str::traits::FromStr for f64>::from_str (711,519 samples, 0.42%)core::num::dec2flt::parse::parse_number (711,519 samples, 0.42%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,146,997 samples, 0.67%)alloc::slice::<impl [T]>::to_vec_in (1,146,997 samples, 0.67%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,146,997 samples, 0.67%)<shed::parse::lex::Tk as core::clone::Clone>::clone (1,146,997 samples, 0.67%)<shed::parse::lex::Span as core::clone::Clone>::clone (1,146,997 samples, 0.67%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (1,146,997 samples, 0.67%)<alloc::string::String as core::clone::Clone>::clone (1,146,997 samples, 0.67%)__libc_malloc2 (1,146,997 samples, 0.67%)_int_malloc (1,146,997 samples, 0.67%)shed::parse::execute::exec_input (1,245,406 samples, 0.73%)shed::state::read_logic (1,245,406 samples, 0.73%)std::thread::local::LocalKey<T>::with (1,245,406 samples, 0.73%)std::thread::local::LocalKey<T>::try_with (1,245,406 samples, 0.73%)shed::state::read_logic::{{closure}} (1,245,406 samples, 0.73%)shed::parse::execute::exec_input::{{closure}} (1,245,406 samples, 0.73%)<shed::state::LogTab as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (1,245,406 samples, 0.73%)hashbrown::raw::RawTable<T,A>::clone_from_impl (1,245,406 samples, 0.73%)core::clone::Clone::clone (1,245,406 samples, 0.73%)<shed::state::ShFunc as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<shed::parse::Node as core::clone::Clone>::clone (1,245,406 samples, 0.73%)<shed::parse::NdRule as core::clone::Clone>::clone (98,409 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (98,409 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (98,409 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (98,409 samples, 0.06%)<shed::parse::Node as core::clone::Clone>::clone (98,409 samples, 0.06%)<shed::parse::NdRule as core::clone::Clone>::clone (98,409 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (98,409 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (98,409 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (98,409 samples, 0.06%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (98,409 samples, 0.06%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (98,409 samples, 0.06%)<T as core::clone::CloneToUninit>::clone_to_uninit (98,409 samples, 0.06%)<T as core::clone::uninit::CopySpec>::clone_one (98,409 samples, 0.06%)<shed::parse::Node as core::clone::Clone>::clone (98,409 samples, 0.06%)<shed::parse::NdRule as core::clone::Clone>::clone (98,409 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (98,409 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (98,409 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (98,409 samples, 0.06%)<shed::parse::Node as core::clone::Clone>::clone (98,409 samples, 0.06%)<shed::parse::NdRule as core::clone::Clone>::clone (98,409 samples, 0.06%)<alloc::collections::vec_deque::VecDeque<T,A> as core::clone::Clone>::clone (98,409 samples, 0.06%)alloc::collections::vec_deque::VecDeque<T,A>::len (98,409 samples, 0.06%)[unknown] (98,409 samples, 0.06%)shed::parse::execute::Dispatcher::exec_loop (3,643,346 samples, 2.14%)s..shed::procio::IoFrame::redirect (1,701,219 samples, 1.00%)shed::procio::IoMode::open_file (1,701,219 samples, 1.00%)shed::expand::Expander::expand (1,701,219 samples, 1.00%)shed::expand::expand_raw (1,701,219 samples, 1.00%)shed::expand::expand_proc_sub (1,701,219 samples, 1.00%)std::process::exit (450,410 samples, 0.26%)std::sys::pal::unix::os::exit (450,410 samples, 0.26%)exit (450,410 samples, 0.26%)__run_exit_handlers (450,410 samples, 0.26%)__call_tls_dtors (450,410 samples, 0.26%)std::sys::thread_local::native::lazy::destroy (450,410 samples, 0.26%)std::sys::thread_local::abort_on_dtor_unwind (450,410 samples, 0.26%)std::sys::thread_local::native::lazy::destroy::{{closure}} (450,410 samples, 0.26%)core::mem::maybe_uninit::MaybeUninit<T>::assume_init_drop (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::state::Shed> (450,410 samples, 0.26%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::LogTab>> (450,410 samples, 0.26%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::LogTab>> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::state::LogTab> (450,410 samples, 0.26%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (450,410 samples, 0.26%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (450,410 samples, 0.26%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (450,410 samples, 0.26%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (450,410 samples, 0.26%)hashbrown::raw::RawTableInner::drop_inner_table (450,410 samples, 0.26%)hashbrown::raw::RawTableInner::drop_elements (450,410 samples, 0.26%)hashbrown::raw::Bucket<T>::drop (450,410 samples, 0.26%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (450,410 samples, 0.26%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::state::ShFunc> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::Node> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::NdRule> (450,410 samples, 0.26%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (450,410 samples, 0.26%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (450,410 samples, 0.26%)core::ptr::drop_in_place<[shed::parse::Node]> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::Node> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::NdRule> (450,410 samples, 0.26%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (450,410 samples, 0.26%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (450,410 samples, 0.26%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (450,410 samples, 0.26%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::Node> (450,410 samples, 0.26%)core::ptr::drop_in_place<shed::parse::NdRule> (449,895 samples, 0.26%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (20,923 samples, 0.01%)alloc::alloc::dealloc (20,923 samples, 0.01%)core::ptr::drop_in_place<alloc::string::String> (41,298 samples, 0.02%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (41,298 samples, 0.02%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (41,298 samples, 0.02%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (41,298 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::deallocate (41,298 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::current_memory (20,375 samples, 0.01%)core::ptr::drop_in_place<shed::state::LogTab> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (1,727,240 samples, 1.01%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)hashbrown::raw::RawTableInner::drop_inner_table (1,727,240 samples, 1.01%)hashbrown::raw::RawTableInner::drop_elements (1,727,240 samples, 1.01%)hashbrown::raw::Bucket<T>::drop (1,727,240 samples, 1.01%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (1,727,240 samples, 1.01%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::state::ShFunc> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::Node> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::NdRule> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (1,727,240 samples, 1.01%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)core::ptr::drop_in_place<[shed::parse::Node]> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::Node> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::NdRule> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (1,727,240 samples, 1.01%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::Node> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::NdRule> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (1,727,240 samples, 1.01%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)core::ptr::drop_in_place<[shed::parse::Node]> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::Node> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::NdRule> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,727,240 samples, 1.01%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::lex::Tk> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::lex::Span> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::string::String> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (1,727,240 samples, 1.01%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (1,727,240 samples, 1.01%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,727,240 samples, 1.01%)alloc::raw_vec::RawVecInner<A>::deallocate (1,727,240 samples, 1.01%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,727,240 samples, 1.01%)alloc::alloc::dealloc (1,727,240 samples, 1.01%)cfree@GLIBC_2.2.5 (1,727,240 samples, 1.01%)nix::unistd::fork (19,114 samples, 0.01%)__libc_fork (19,114 samples, 0.01%)shed::parse::execute::Dispatcher::begin_dispatch (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_node (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::exec_conjunction (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_node (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::exec_pipeline (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_node (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::dispatch_cmd (33,029 samples, 0.02%)shed::parse::execute::Dispatcher::exec_cmd (33,029 samples, 0.02%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,386,516 samples, 0.81%)alloc::slice::<impl [T]>::to_vec_in (1,386,516 samples, 0.81%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,386,516 samples, 0.81%)<shed::parse::lex::Tk as core::clone::Clone>::clone (1,386,516 samples, 0.81%)<shed::parse::lex::Span as core::clone::Clone>::clone (1,386,516 samples, 0.81%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (1,386,516 samples, 0.81%)<alloc::sync::Arc<T,A> as core::clone::Clone>::clone (785,869 samples, 0.46%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (98,449 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (98,449 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (98,449 samples, 0.06%)alloc::vec::Vec<T,A>::with_capacity_in (98,449 samples, 0.06%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (98,449 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (98,449 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (98,449 samples, 0.06%)alloc::raw_vec::layout_array (98,449 samples, 0.06%)core::alloc::layout::Layout::repeat (98,449 samples, 0.06%)core::alloc::layout::Layout::repeat_packed (98,449 samples, 0.06%)core::num::<impl usize>::checked_mul (98,449 samples, 0.06%)core::num::<impl usize>::overflowing_mul (98,449 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (247,597 samples, 0.15%)alloc::slice::<impl [T]>::to_vec_in (247,597 samples, 0.15%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (247,597 samples, 0.15%)<shed::parse::Node as core::clone::Clone>::clone (247,597 samples, 0.15%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (247,597 samples, 0.15%)alloc::slice::<impl [T]>::to_vec_in (247,597 samples, 0.15%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (247,597 samples, 0.15%)<shed::parse::lex::Tk as core::clone::Clone>::clone (247,597 samples, 0.15%)<shed::parse::lex::Span as core::clone::Clone>::clone (247,597 samples, 0.15%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (247,597 samples, 0.15%)<alloc::string::String as core::clone::Clone>::clone (247,597 samples, 0.15%)shed::parse::execute::exec_input (3,826,095 samples, 2.24%)s..shed::state::read_logic (2,065,826 samples, 1.21%)std::thread::local::LocalKey<T>::with (2,065,826 samples, 1.21%)std::thread::local::LocalKey<T>::try_with (2,065,826 samples, 1.21%)shed::state::read_logic::{{closure}} (2,065,826 samples, 1.21%)shed::parse::execute::exec_input::{{closure}} (2,065,826 samples, 1.21%)<shed::state::LogTab as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (2,065,826 samples, 1.21%)hashbrown::raw::RawTable<T,A>::clone_from_impl (2,065,826 samples, 1.21%)core::clone::Clone::clone (2,065,826 samples, 1.21%)<shed::state::ShFunc as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<shed::parse::Node as core::clone::Clone>::clone (2,065,826 samples, 1.21%)<shed::parse::NdRule as core::clone::Clone>::clone (679,310 samples, 0.40%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (679,310 samples, 0.40%)alloc::slice::<impl [T]>::to_vec_in (679,310 samples, 0.40%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (679,310 samples, 0.40%)<shed::parse::Node as core::clone::Clone>::clone (679,310 samples, 0.40%)<shed::parse::NdRule as core::clone::Clone>::clone (679,310 samples, 0.40%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (679,310 samples, 0.40%)alloc::slice::<impl [T]>::to_vec_in (679,310 samples, 0.40%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (679,310 samples, 0.40%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (679,310 samples, 0.40%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (679,310 samples, 0.40%)<T as core::clone::CloneToUninit>::clone_to_uninit (679,310 samples, 0.40%)<T as core::clone::uninit::CopySpec>::clone_one (679,310 samples, 0.40%)<shed::parse::Node as core::clone::Clone>::clone (679,310 samples, 0.40%)<shed::parse::NdRule as core::clone::Clone>::clone (580,861 samples, 0.34%)<shed::parse::CondNode as core::clone::Clone>::clone (333,264 samples, 0.20%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (333,264 samples, 0.20%)alloc::slice::<impl [T]>::to_vec_in (333,264 samples, 0.20%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (333,264 samples, 0.20%)<shed::parse::Node as core::clone::Clone>::clone (333,264 samples, 0.20%)<shed::parse::NdRule as core::clone::Clone>::clone (333,264 samples, 0.20%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (333,264 samples, 0.20%)alloc::slice::<impl [T]>::to_vec_in (333,264 samples, 0.20%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (333,264 samples, 0.20%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (333,264 samples, 0.20%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (333,264 samples, 0.20%)<T as core::clone::CloneToUninit>::clone_to_uninit (333,264 samples, 0.20%)<T as core::clone::uninit::CopySpec>::clone_one (333,264 samples, 0.20%)<shed::parse::Node as core::clone::Clone>::clone (333,264 samples, 0.20%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (333,264 samples, 0.20%)alloc::slice::<impl [T]>::to_vec_in (333,264 samples, 0.20%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (333,264 samples, 0.20%)<shed::parse::lex::Tk as core::clone::Clone>::clone (333,264 samples, 0.20%)<shed::parse::lex::Span as core::clone::Clone>::clone (333,264 samples, 0.20%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (333,264 samples, 0.20%)shed::procio::IoBuf<R>::as_str (20,843 samples, 0.01%)core::str::converts::from_utf8 (20,843 samples, 0.01%)[unknown] (19,256 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_builtin (3,942,004 samples, 2.31%)s..shed::builtin::varcmds::local (3,942,004 samples, 2.31%)s..shed::expand::<impl shed::parse::lex::Tk>::expand (3,942,004 samples, 2.31%)s..shed::expand::Expander::expand (3,942,004 samples, 2.31%)s..shed::expand::expand_raw (3,942,004 samples, 2.31%)s..shed::expand::expand_var (3,942,004 samples, 2.31%)s..shed::expand::expand_cmd_sub (3,900,706 samples, 2.29%)s..shed::procio::IoStack::push_frame (36,399 samples, 0.02%)alloc::vec::Vec<T,A>::push (36,399 samples, 0.02%)alloc::vec::Vec<T,A>::push_mut (36,399 samples, 0.02%)alloc::raw_vec::RawVec<T,A>::grow_one (36,399 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_one (36,399 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::grow_amortized (36,399 samples, 0.02%)alloc::raw_vec::RawVecInner<A>::finish_grow (36,399 samples, 0.02%)<alloc::alloc::Global as core::alloc::Allocator>::grow (36,399 samples, 0.02%)alloc::alloc::Global::grow_impl (36,399 samples, 0.02%)alloc::alloc::realloc (36,399 samples, 0.02%)realloc (36,399 samples, 0.02%)_int_realloc (17,143 samples, 0.01%)_int_malloc (17,143 samples, 0.01%)unlink_chunk.isra.0 (17,143 samples, 0.01%)[unknown] (17,143 samples, 0.01%)[unknown] (17,143 samples, 0.01%)[unknown] (17,143 samples, 0.01%)[unknown] (17,143 samples, 0.01%)[unknown] (17,143 samples, 0.01%)[unknown] (18,518 samples, 0.01%)nix::unistd::fork (33,861 samples, 0.02%)__libc_fork (33,861 samples, 0.02%)<T as alloc::string::ToString>::to_string (20,215 samples, 0.01%)<T as alloc::string::SpecToString>::spec_to_string (20,215 samples, 0.01%)<shed::parse::lex::Tk as core::fmt::Display>::fmt (20,215 samples, 0.01%)[unknown] (20,215 samples, 0.01%)shed::builtin::echo::echo (159,734 samples, 0.09%)shed::getopt::get_opts_from_tokens (159,734 samples, 0.09%)core::iter::traits::iterator::Iterator::collect (159,734 samples, 0.09%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter (159,734 samples, 0.09%)core::iter::adapters::try_process (159,734 samples, 0.09%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}} (159,734 samples, 0.09%)core::iter::traits::iterator::Iterator::collect (159,734 samples, 0.09%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (159,734 samples, 0.09%)alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter (159,734 samples, 0.09%)alloc::vec::in_place_collect::from_iter_in_place (159,734 samples, 0.09%)<I as alloc::vec::in_place_collect::SpecInPlaceCollect<T,I>>::collect_in_place (159,734 samples, 0.09%)<core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::try_fold (159,734 samples, 0.09%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (159,734 samples, 0.09%)<alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::try_fold (159,734 samples, 0.09%)core::iter::adapters::map::map_try_fold::{{closure}} (159,734 samples, 0.09%)shed::getopt::get_opts_from_tokens::{{closure}} (159,734 samples, 0.09%)shed::expand::<impl shed::parse::lex::Tk>::expand (159,734 samples, 0.09%)shed::expand::Expander::expand (159,734 samples, 0.09%)shed::expand::expand_glob (159,734 samples, 0.09%)glob::glob_with (159,734 samples, 0.09%)glob::Pattern::new (159,734 samples, 0.09%)alloc::vec::Vec<T,A>::push (159,734 samples, 0.09%)alloc::vec::Vec<T,A>::push_mut (159,734 samples, 0.09%)alloc::raw_vec::RawVec<T,A>::grow_one (159,734 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::grow_one (159,734 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::grow_amortized (159,734 samples, 0.09%)alloc::raw_vec::RawVecInner<A>::finish_grow (159,734 samples, 0.09%)<alloc::alloc::Global as core::alloc::Allocator>::grow (159,734 samples, 0.09%)alloc::alloc::Global::grow_impl (159,734 samples, 0.09%)alloc::alloc::realloc (159,734 samples, 0.09%)realloc (159,734 samples, 0.09%)_int_realloc (159,734 samples, 0.09%)_int_malloc (159,734 samples, 0.09%)malloc_consolidate (159,734 samples, 0.09%)unlink_chunk.isra.0 (159,734 samples, 0.09%)shed::expand::Expander::split_words (77,703 samples, 0.05%)std::env::var (77,703 samples, 0.05%)std::env::_var (77,703 samples, 0.05%)std::sys::env::unix::getenv (77,703 samples, 0.05%)<glob::Paths as core::iter::traits::iterator::Iterator>::next (21,693 samples, 0.01%)glob::fill_todo (21,693 samples, 0.01%)std::fs::read_dir (21,693 samples, 0.01%)std::sys::fs::read_dir (21,693 samples, 0.01%)opendir_tail (21,693 samples, 0.01%)__alloc_dir (21,693 samples, 0.01%)__libc_malloc2 (21,693 samples, 0.01%)_int_malloc (21,693 samples, 0.01%)malloc_consolidate (21,693 samples, 0.01%)shed::parse::execute::Dispatcher::exec_builtin::{{closure}} (364,681 samples, 0.21%)shed::parse::execute::Dispatcher::dispatch_builtin (364,681 samples, 0.21%)shed::parse::execute::Dispatcher::exec_cmd (184,732 samples, 0.11%)shed::parse::execute::ExecArgs::new (184,732 samples, 0.11%)shed::parse::execute::prepare_argv (184,732 samples, 0.11%)shed::expand::<impl shed::parse::lex::Tk>::expand (184,732 samples, 0.11%)shed::expand::Expander::expand (184,732 samples, 0.11%)shed::expand::expand_glob (107,029 samples, 0.06%)glob::glob_with (85,336 samples, 0.05%)glob::Pattern::new (85,336 samples, 0.05%)core::iter::traits::iterator::Iterator::collect (85,336 samples, 0.05%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (85,336 samples, 0.05%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (85,336 samples, 0.05%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (85,336 samples, 0.05%)alloc::vec::Vec<T>::with_capacity (85,336 samples, 0.05%)alloc::vec::Vec<T,A>::with_capacity_in (85,336 samples, 0.05%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (85,336 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (85,336 samples, 0.05%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (85,336 samples, 0.05%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (85,336 samples, 0.05%)alloc::alloc::Global::alloc_impl (85,336 samples, 0.05%)alloc::alloc::alloc (85,336 samples, 0.05%)__libc_malloc2 (85,336 samples, 0.05%)_int_malloc (85,336 samples, 0.05%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,311,613 samples, 0.77%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<shed::parse::lex::Tk>> (1,311,613 samples, 0.77%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,311,613 samples, 0.77%)alloc::raw_vec::RawVecInner<A>::deallocate (1,311,613 samples, 0.77%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,311,613 samples, 0.77%)alloc::alloc::dealloc (1,311,613 samples, 0.77%)_int_free_chunk (1,311,613 samples, 0.77%)_int_free_maybe_consolidate.part.0 (1,311,613 samples, 0.77%)malloc_consolidate (1,311,613 samples, 0.77%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::CondNode>> (665,316 samples, 0.39%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (665,316 samples, 0.39%)core::ptr::drop_in_place<[shed::parse::CondNode]> (665,316 samples, 0.39%)core::ptr::drop_in_place<shed::parse::CondNode> (665,316 samples, 0.39%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (665,316 samples, 0.39%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (665,316 samples, 0.39%)core::ptr::drop_in_place<[shed::parse::Node]> (665,316 samples, 0.39%)core::ptr::drop_in_place<shed::parse::Node> (665,316 samples, 0.39%)core::ptr::drop_in_place<shed::parse::NdRule> (665,316 samples, 0.39%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (665,316 samples, 0.39%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (665,316 samples, 0.39%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (665,316 samples, 0.39%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (665,316 samples, 0.39%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (665,316 samples, 0.39%)core::ptr::drop_in_place<shed::parse::Node> (665,316 samples, 0.39%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (665,316 samples, 0.39%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<shed::parse::lex::Tk>> (665,316 samples, 0.39%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (665,316 samples, 0.39%)alloc::raw_vec::RawVecInner<A>::deallocate (665,316 samples, 0.39%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (665,316 samples, 0.39%)alloc::alloc::dealloc (665,316 samples, 0.39%)_int_free_chunk (665,316 samples, 0.39%)_int_free_merge_chunk (665,316 samples, 0.39%)_int_free_create_chunk (665,316 samples, 0.39%)shed::parse::execute::Dispatcher::exec_builtin (6,928,577 samples, 4.06%)shed..shed::parse::execute::Dispatcher::run_fork (2,986,573 samples, 1.75%)std::process::exit (2,588,031 samples, 1.52%)std::sys::pal::unix::os::exit (2,588,031 samples, 1.52%)exit (2,588,031 samples, 1.52%)__run_exit_handlers (2,588,031 samples, 1.52%)__call_tls_dtors (2,588,031 samples, 1.52%)std::sys::thread_local::native::lazy::destroy (2,588,031 samples, 1.52%)std::sys::thread_local::abort_on_dtor_unwind (2,588,031 samples, 1.52%)std::sys::thread_local::native::lazy::destroy::{{closure}} (2,588,031 samples, 1.52%)core::mem::maybe_uninit::MaybeUninit<T>::assume_init_drop (2,588,031 samples, 1.52%)core::ptr::drop_in_place<shed::state::Shed> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::LogTab>> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::LogTab>> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<shed::state::LogTab> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (2,588,031 samples, 1.52%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (2,588,031 samples, 1.52%)hashbrown::raw::RawTableInner::drop_inner_table (2,588,031 samples, 1.52%)hashbrown::raw::RawTableInner::drop_elements (2,588,031 samples, 1.52%)hashbrown::raw::Bucket<T>::drop (2,588,031 samples, 1.52%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (2,588,031 samples, 1.52%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<shed::state::ShFunc> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<shed::parse::Node> (2,588,031 samples, 1.52%)core::ptr::drop_in_place<shed::parse::NdRule> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (1,276,418 samples, 0.75%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,276,418 samples, 0.75%)core::ptr::drop_in_place<[shed::parse::Node]> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::Node> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::NdRule> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (1,276,418 samples, 0.75%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,276,418 samples, 0.75%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::Node> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::NdRule> (1,276,418 samples, 0.75%)core::ptr::drop_in_place<shed::parse::CondNode> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (610,306 samples, 0.36%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (610,306 samples, 0.36%)core::ptr::drop_in_place<[shed::parse::Node]> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::Node> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::NdRule> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (610,306 samples, 0.36%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (610,306 samples, 0.36%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::Node> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::NdRule> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::CaseNode>> (610,306 samples, 0.36%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (610,306 samples, 0.36%)core::ptr::drop_in_place<[shed::parse::CaseNode]> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::CaseNode> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::Node>> (610,306 samples, 0.36%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (610,306 samples, 0.36%)core::ptr::drop_in_place<[shed::parse::Node]> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::Node> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::NdRule> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::ConjunctNode>> (610,306 samples, 0.36%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (610,306 samples, 0.36%)core::ptr::drop_in_place<[shed::parse::ConjunctNode]> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::ConjunctNode> (610,306 samples, 0.36%)core::ptr::drop_in_place<alloc::boxed::Box<shed::parse::Node>> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::Node> (610,306 samples, 0.36%)core::ptr::drop_in_place<shed::parse::NdRule> (610,306 samples, 0.36%)__libc_fork (20,407 samples, 0.01%)nix::unistd::fork (29,326 samples, 0.02%)__execvpe (55,397 samples, 0.03%)__execvpe_common.isra.0 (55,397 samples, 0.03%)getenv (55,397 samples, 0.03%)__strlen_evex (55,397 samples, 0.03%)nix::unistd::execvpe (103,546 samples, 0.06%)nix::unistd::to_exec_array (48,149 samples, 0.03%)core::iter::traits::iterator::Iterator::collect (48,149 samples, 0.03%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (48,149 samples, 0.03%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (48,149 samples, 0.03%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (48,149 samples, 0.03%)alloc::vec::Vec<T>::with_capacity (48,149 samples, 0.03%)alloc::vec::Vec<T,A>::with_capacity_in (48,149 samples, 0.03%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (48,149 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (48,149 samples, 0.03%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (48,149 samples, 0.03%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (48,149 samples, 0.03%)alloc::alloc::Global::alloc_impl (48,149 samples, 0.03%)alloc::alloc::alloc (48,149 samples, 0.03%)__libc_malloc2 (48,149 samples, 0.03%)_int_malloc (48,149 samples, 0.03%)malloc_consolidate (48,149 samples, 0.03%)shed::parse::execute::Dispatcher::exec_cmd::{{closure}} (119,700 samples, 0.07%)shed::parse::execute::ExecArgs::from_expanded (695,237 samples, 0.41%)shed::parse::execute::ExecArgs::get_envp (695,237 samples, 0.41%)core::iter::traits::iterator::Iterator::collect (695,237 samples, 0.41%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (695,237 samples, 0.41%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (695,237 samples, 0.41%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (695,237 samples, 0.41%)<alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend (695,237 samples, 0.41%)alloc::vec::Vec<T,A>::extend_desugared (695,237 samples, 0.41%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next (695,237 samples, 0.41%)core::option::Option<T>::map (695,237 samples, 0.41%)core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once (695,237 samples, 0.41%)shed::parse::execute::ExecArgs::get_envp::{{closure}} (695,237 samples, 0.41%)alloc::ffi::c_str::CString::new (695,237 samples, 0.41%)<T as alloc::ffi::c_str::CString::new::SpecNewImpl>::spec_new_impl (695,237 samples, 0.41%)core::slice::memchr::memchr (695,237 samples, 0.41%)core::slice::memchr::memchr_aligned (695,237 samples, 0.41%)<shed::parse::lex::Span as core::clone::Clone>::clone (607,791 samples, 0.36%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (607,791 samples, 0.36%)shed::parse::execute::Dispatcher::begin_dispatch (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_node (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_conjunction (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_node (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_pipeline (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_node (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_cmd (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_func (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_brc_grp (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_node (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_conjunction (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::dispatch_node (15,835,755 samples, 9.28%)shed::parse::..shed::parse::execute::Dispatcher::exec_pipeline (9,038,755 samples, 5.30%)shed::..shed::parse::execute::Dispatcher::dispatch_node (9,038,755 samples, 5.30%)shed::..shed::parse::execute::Dispatcher::dispatch_cmd (9,038,755 samples, 5.30%)shed::..shed::parse::execute::Dispatcher::exec_cmd (2,110,178 samples, 1.24%)shed::parse::execute::ExecArgs::new (1,961,152 samples, 1.15%)shed::parse::execute::prepare_argv (1,265,915 samples, 0.74%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,265,915 samples, 0.74%)shed::expand::Expander::new (658,124 samples, 0.39%)shed::expand::Expander::from_raw (658,124 samples, 0.39%)shed::expand::expand_braces_full (658,124 samples, 0.39%)shed::expand::has_braces (658,124 samples, 0.39%)<core::iter::adapters::peekable::Peekable<I> as core::iter::traits::iterator::Iterator>::next (658,124 samples, 0.39%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (188,770 samples, 0.11%)alloc::slice::<impl [T]>::to_vec_in (188,770 samples, 0.11%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (188,770 samples, 0.11%)<shed::parse::lex::Tk as core::clone::Clone>::clone (188,770 samples, 0.11%)<shed::parse::lex::Span as core::clone::Clone>::clone (188,770 samples, 0.11%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (188,770 samples, 0.11%)<alloc::string::String as core::clone::Clone>::clone (188,770 samples, 0.11%)__memmove_avx512_unaligned_erms (188,770 samples, 0.11%)shed::parse::execute::exec_input (18,486,868 samples, 10.84%)shed::parse::exe..shed::state::read_logic (1,879,879 samples, 1.10%)std::thread::local::LocalKey<T>::with (1,879,879 samples, 1.10%)std::thread::local::LocalKey<T>::try_with (1,879,879 samples, 1.10%)shed::state::read_logic::{{closure}} (1,879,879 samples, 1.10%)shed::parse::execute::exec_input::{{closure}} (1,879,879 samples, 1.10%)<shed::state::LogTab as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (1,879,879 samples, 1.10%)hashbrown::raw::RawTable<T,A>::clone_from_impl (1,879,879 samples, 1.10%)core::clone::Clone::clone (1,879,879 samples, 1.10%)<shed::state::ShFunc as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<shed::parse::Node as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<shed::parse::NdRule as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)alloc::slice::<impl [T]>::to_vec_in (1,879,879 samples, 1.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,879,879 samples, 1.10%)<shed::parse::Node as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<shed::parse::NdRule as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)alloc::slice::<impl [T]>::to_vec_in (1,879,879 samples, 1.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,879,879 samples, 1.10%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,879,879 samples, 1.10%)<T as core::clone::uninit::CopySpec>::clone_one (1,879,879 samples, 1.10%)<shed::parse::Node as core::clone::Clone>::clone (1,879,879 samples, 1.10%)<shed::parse::NdRule as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<shed::parse::CondNode as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)alloc::slice::<impl [T]>::to_vec_in (1,691,109 samples, 0.99%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,691,109 samples, 0.99%)<shed::parse::Node as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<shed::parse::NdRule as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)alloc::slice::<impl [T]>::to_vec_in (1,691,109 samples, 0.99%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,691,109 samples, 0.99%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,691,109 samples, 0.99%)<T as core::clone::uninit::CopySpec>::clone_one (1,691,109 samples, 0.99%)<shed::parse::Node as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<shed::parse::NdRule as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)alloc::slice::<impl [T]>::to_vec_in (1,691,109 samples, 0.99%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,691,109 samples, 0.99%)<shed::parse::CaseNode as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)alloc::slice::<impl [T]>::to_vec_in (1,691,109 samples, 0.99%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,691,109 samples, 0.99%)<shed::parse::Node as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<shed::parse::NdRule as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)alloc::slice::<impl [T]>::to_vec_in (1,691,109 samples, 0.99%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,691,109 samples, 0.99%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,691,109 samples, 0.99%)<T as core::clone::uninit::CopySpec>::clone_one (1,691,109 samples, 0.99%)<shed::parse::Node as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<shed::parse::NdRule as core::clone::Clone>::clone (1,691,109 samples, 0.99%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,691,109 samples, 0.99%)shed::state::source_rc (114,294,702 samples, 67.01%)shed::state::source_rcshed::state::source_file (114,294,702 samples, 67.01%)shed::state::source_fileshed::parse::execute::exec_input (114,294,702 samples, 67.01%)shed::parse::execute::exec_inputshed::parse::execute::Dispatcher::begin_dispatch (28,810,091 samples, 16.89%)shed::parse::execute::Disp..shed::parse::execute::Dispatcher::dispatch_node (28,810,091 samples, 16.89%)shed::parse::execute::Disp..shed::parse::execute::Dispatcher::exec_conjunction (28,810,091 samples, 16.89%)shed::parse::execute::Disp..shed::parse::execute::Dispatcher::dispatch_node (28,810,091 samples, 16.89%)shed::parse::execute::Disp..shed::parse::execute::Dispatcher::exec_pipeline (18,518,853 samples, 10.86%)shed::parse::exe..shed::parse::execute::Dispatcher::dispatch_node (18,518,853 samples, 10.86%)shed::parse::exe..shed::parse::execute::Dispatcher::dispatch_cmd (18,518,853 samples, 10.86%)shed::parse::exe..shed::parse::execute::Dispatcher::exec_builtin (18,518,853 samples, 10.86%)shed::parse::exe..shed::parse::execute::Dispatcher::dispatch_builtin (18,518,853 samples, 10.86%)shed::parse::exe..shed::builtin::varcmds::export (18,518,853 samples, 10.86%)shed::builtin::v..shed::expand::<impl shed::parse::lex::Tk>::expand (18,518,853 samples, 10.86%)shed::expand::<i..shed::expand::Expander::expand (18,518,853 samples, 10.86%)shed::expand::Ex..shed::expand::expand_raw (18,518,853 samples, 10.86%)shed::expand::ex..shed::expand::expand_var (18,518,853 samples, 10.86%)shed::expand::ex..shed::expand::expand_cmd_sub (18,495,518 samples, 10.84%)shed::expand::ex..<T as alloc::string::ToString>::to_string (958,545 samples, 0.56%)<str as alloc::string::SpecToString>::spec_to_string (958,545 samples, 0.56%)<alloc::string::String as core::convert::From<&str>>::from (958,545 samples, 0.56%)alloc::str::<impl alloc::borrow::ToOwned for str>::to_owned (958,545 samples, 0.56%)alloc::slice::<impl alloc::borrow::ToOwned for [T]>::to_owned (958,545 samples, 0.56%)alloc::slice::<impl [T]>::to_vec (958,545 samples, 0.56%)alloc::slice::<impl [T]>::to_vec_in (958,545 samples, 0.56%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (958,545 samples, 0.56%)core::ptr::const_ptr::<impl *const T>::copy_to_nonoverlapping (958,545 samples, 0.56%)core::ptr::copy_nonoverlapping (958,545 samples, 0.56%)__memmove_avx512_unaligned_erms (958,545 samples, 0.56%)std::ffi::os_str::OsStr::to_str (1,112,681 samples, 0.65%)std::sys::os_str::bytes::Slice::to_str (1,112,681 samples, 0.65%)core::str::converts::from_utf8 (1,112,681 samples, 0.65%)std::fs::DirEntry::path (1,142,335 samples, 0.67%)std::path::Path::_join (1,142,335 samples, 0.67%)shed::state::MetaTab::get_cmds_in_path (4,118,319 samples, 2.41%)sh..std::fs::metadata (904,758 samples, 0.53%)core::ptr::drop_in_place<std::path::PathBuf> (904,758 samples, 0.53%)core::ptr::drop_in_place<std::ffi::os_str::OsString> (904,758 samples, 0.53%)core::ptr::drop_in_place<std::sys::os_str::bytes::Buf> (904,758 samples, 0.53%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (904,758 samples, 0.53%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (904,758 samples, 0.53%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (904,758 samples, 0.53%)alloc::raw_vec::RawVecInner<A>::deallocate (904,758 samples, 0.53%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (904,758 samples, 0.53%)alloc::alloc::dealloc (904,758 samples, 0.53%)_int_free_chunk (904,758 samples, 0.53%)core::ops::function::FnOnce::call_once (139,784,989 samples, 81.96%)core::ops::function::FnOnce::call_onceshed::main (139,784,989 samples, 81.96%)shed::mainshed::shed_interactive (139,760,392 samples, 81.94%)shed::shed_interactiveshed::state::write_meta (4,947,304 samples, 2.90%)sh..std::thread::local::LocalKey<T>::with (4,947,304 samples, 2.90%)st..std::thread::local::LocalKey<T>::try_with (4,947,304 samples, 2.90%)st..shed::state::write_meta::{{closure}} (4,947,304 samples, 2.90%)sh..shed::shed_interactive::{{closure}} (4,947,304 samples, 2.90%)sh..shed::state::MetaTab::try_rehash_commands (4,947,304 samples, 2.90%)sh..std::collections::hash::set::HashSet<T,S>::insert (828,985 samples, 0.49%)hashbrown::set::HashSet<T,S,A>::insert (828,985 samples, 0.49%)hashbrown::map::HashMap<K,V,S,A>::insert (828,985 samples, 0.49%)hashbrown::map::make_hash (828,985 samples, 0.49%)core::hash::BuildHasher::hash_one (828,985 samples, 0.49%)core::hash::impls::<impl core::hash::Hash for &T>::hash (828,985 samples, 0.49%)<alloc::string::String as core::hash::Hash>::hash (828,985 samples, 0.49%)core::hash::impls::<impl core::hash::Hash for str>::hash (828,985 samples, 0.49%)<std::hash::random::DefaultHasher as core::hash::Hasher>::write_str (828,985 samples, 0.49%)<core::hash::sip::SipHasher13 as core::hash::Hasher>::write_str (828,985 samples, 0.49%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write_str (828,985 samples, 0.49%)<core::hash::sip::Hasher<S> as core::hash::Hasher>::write (828,985 samples, 0.49%)core::hash::sip::u8to64_le (828,985 samples, 0.49%)std::rt::lang_start::{{closure}} (139,903,937 samples, 82.02%)std::rt::lang_start::{{closure}}std::sys::backtrace::__rust_begin_short_backtrace (139,903,937 samples, 82.02%)std::sys::backtrace::__rust_begin_short_backtraceshed::main (118,948 samples, 0.07%)std::sys::thread_local::native::lazy::Storage<T,D>::get_or_init_slow (118,948 samples, 0.07%)shed::state::VarTab::new (118,948 samples, 0.07%)shed::state::VarTab::update_arg_params (116,510 samples, 0.07%)<alloc::collections::vec_deque::VecDeque<T,A> as core::clone::Clone>::clone (116,510 samples, 0.07%)__libc_start_main@@GLIBC_2.34 (141,742,370 samples, 83.10%)__libc_start_main@@GLIBC_2.34__libc_start_call_main (141,742,370 samples, 83.10%)__libc_start_call_mainmain (140,456,176 samples, 82.35%)mainstd::rt::lang_start_internal (140,456,176 samples, 82.35%)std::rt::lang_start_internalstd::sys::pal::unix::stack_overflow::thread_info::set_current_info (552,239 samples, 0.32%)_dl_init_paths (110,902 samples, 0.07%)_dl_important_hwcaps (110,902 samples, 0.07%)_dl_hwcaps_split_masked (110,902 samples, 0.07%)_dl_hwcaps_split (110,902 samples, 0.07%)_start (141,954,607 samples, 83.23%)_start_dl_start (212,235 samples, 0.12%)_dl_sysdep_start (211,906 samples, 0.12%)dl_main (200,828 samples, 0.12%)_dl_new_object (89,926 samples, 0.05%)shed::expand::expand_cmd_sub (1,214,162 samples, 0.71%)shed::parse::execute::exec_input (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::begin_dispatch (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_conjunction (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_pipeline (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_cmd (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_func (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_brc_grp (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_conjunction (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_pipeline (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_cmd (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_builtin (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_builtin (1,214,162 samples, 0.71%)shed::builtin::varcmds::local (1,214,162 samples, 0.71%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,214,162 samples, 0.71%)shed::expand::Expander::expand (1,214,162 samples, 0.71%)shed::expand::expand_raw (1,214,162 samples, 0.71%)shed::expand::expand_var (1,214,162 samples, 0.71%)shed::expand::expand_cmd_sub (1,214,162 samples, 0.71%)shed::parse::execute::exec_input (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::begin_dispatch (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_conjunction (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_pipeline (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_cmd (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_func (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_brc_grp (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_conjunction (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_pipeline (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_node (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_cmd (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::exec_builtin (1,214,162 samples, 0.71%)shed::parse::execute::Dispatcher::dispatch_builtin (1,214,162 samples, 0.71%)shed::builtin::varcmds::local (1,214,162 samples, 0.71%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,214,162 samples, 0.71%)shed::expand::Expander::expand (1,214,162 samples, 0.71%)shed::expand::expand_raw (1,214,162 samples, 0.71%)shed::expand::expand_var (1,214,162 samples, 0.71%)shed::expand::expand_cmd_sub (1,214,162 samples, 0.71%)shed::parse::execute::exec_input (1,214,162 samples, 0.71%)shed::parse::ParsedSrc::parse_src (1,214,162 samples, 0.71%)<shed::parse::ParseStream as core::iter::traits::iterator::Iterator>::next (1,214,162 samples, 0.71%)shed::parse::ParseStream::parse_cmd_list (1,214,162 samples, 0.71%)shed::parse::ParseStream::parse_block (1,214,162 samples, 0.71%)shed::parse::ParseStream::parse_pipeln (1,214,162 samples, 0.71%)shed::parse::ParseStream::parse_block (1,214,162 samples, 0.71%)shed::parse::ParseStream::parse_cmd (1,214,162 samples, 0.71%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,214,162 samples, 0.71%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (1,214,162 samples, 0.71%)core::ptr::drop_in_place<[shed::parse::lex::Tk]> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<shed::parse::lex::Tk> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<shed::parse::lex::Span> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<shed::parse::lex::SpanSource> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<alloc::string::String> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (1,214,162 samples, 0.71%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (1,214,162 samples, 0.71%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,214,162 samples, 0.71%)alloc::raw_vec::RawVecInner<A>::deallocate (1,214,162 samples, 0.71%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,214,162 samples, 0.71%)alloc::alloc::dealloc (1,214,162 samples, 0.71%)cfree@GLIBC_2.2.5 (1,214,162 samples, 0.71%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,076,321 samples, 0.63%)alloc::slice::<impl [T]>::to_vec_in (1,076,321 samples, 0.63%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,076,321 samples, 0.63%)<shed::parse::lex::Tk as core::clone::Clone>::clone (1,076,321 samples, 0.63%)<shed::parse::lex::Span as core::clone::Clone>::clone (1,076,321 samples, 0.63%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (1,076,321 samples, 0.63%)shed::readline::ShedVi::new (2,857,056 samples, 1.68%)shed::readline::Prompt::refresh (2,857,056 samples, 1.68%)shed::expand::expand_prompt (2,857,056 samples, 1.68%)shed::expand::expand_cmd_sub (2,857,056 samples, 1.68%)shed::parse::execute::exec_input (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::begin_dispatch (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_conjunction (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_pipeline (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_cmd (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_func (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_brc_grp (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_conjunction (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_pipeline (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_cmd (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_builtin (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_builtin (2,857,056 samples, 1.68%)shed::builtin::varcmds::local (2,857,056 samples, 1.68%)shed::expand::<impl shed::parse::lex::Tk>::expand (2,857,056 samples, 1.68%)shed::expand::Expander::expand (2,857,056 samples, 1.68%)shed::expand::expand_raw (2,857,056 samples, 1.68%)shed::expand::expand_var (2,857,056 samples, 1.68%)shed::expand::expand_cmd_sub (2,857,056 samples, 1.68%)shed::parse::execute::exec_input (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::begin_dispatch (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_conjunction (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_pipeline (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_cmd (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_func (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_brc_grp (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_conjunction (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_pipeline (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_node (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_cmd (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::exec_builtin (2,857,056 samples, 1.68%)shed::parse::execute::Dispatcher::dispatch_builtin (2,857,056 samples, 1.68%)shed::builtin::varcmds::local (2,857,056 samples, 1.68%)shed::expand::<impl shed::parse::lex::Tk>::expand (2,857,056 samples, 1.68%)shed::expand::Expander::expand (2,857,056 samples, 1.68%)shed::expand::expand_raw (2,857,056 samples, 1.68%)shed::expand::expand_var (2,857,056 samples, 1.68%)shed::expand::expand_cmd_sub (2,857,056 samples, 1.68%)shed::parse::execute::exec_input (2,857,056 samples, 1.68%)shed::state::read_logic (2,857,056 samples, 1.68%)std::thread::local::LocalKey<T>::with (2,857,056 samples, 1.68%)std::thread::local::LocalKey<T>::try_with (2,857,056 samples, 1.68%)shed::state::read_logic::{{closure}} (2,857,056 samples, 1.68%)shed::parse::execute::exec_input::{{closure}} (2,857,056 samples, 1.68%)<shed::state::LogTab as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (2,857,056 samples, 1.68%)hashbrown::raw::RawTable<T,A>::clone_from_impl (2,857,056 samples, 1.68%)core::clone::Clone::clone (2,857,056 samples, 1.68%)<shed::state::ShFunc as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<shed::parse::Node as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<shed::parse::NdRule as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (2,857,056 samples, 1.68%)alloc::slice::<impl [T]>::to_vec_in (2,857,056 samples, 1.68%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (2,857,056 samples, 1.68%)<shed::parse::Node as core::clone::Clone>::clone (2,857,056 samples, 1.68%)<shed::parse::NdRule as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,780,735 samples, 1.04%)alloc::slice::<impl [T]>::to_vec_in (1,780,735 samples, 1.04%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,780,735 samples, 1.04%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,780,735 samples, 1.04%)<T as core::clone::uninit::CopySpec>::clone_one (1,780,735 samples, 1.04%)<shed::parse::Node as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,780,735 samples, 1.04%)alloc::slice::<impl [T]>::to_vec_in (1,780,735 samples, 1.04%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,780,735 samples, 1.04%)<shed::parse::lex::Tk as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<shed::parse::lex::Span as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (1,780,735 samples, 1.04%)<alloc::string::String as core::clone::Clone>::clone (710,205 samples, 0.42%)__memmove_avx512_unaligned_erms (710,205 samples, 0.42%)nix::unistd::fork (21,481 samples, 0.01%)__libc_fork (21,481 samples, 0.01%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::LogTab>> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::LogTab>> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<shed::state::LogTab> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::ShFunc>> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::ShFunc,std::hash::random::RandomState>> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::ShFunc)>> (1,160,989 samples, 0.68%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (1,160,989 samples, 0.68%)hashbrown::raw::RawTableInner::drop_inner_table (1,160,989 samples, 0.68%)hashbrown::raw::RawTableInner::drop_elements (1,160,989 samples, 0.68%)hashbrown::raw::Bucket<T>::drop (1,160,989 samples, 0.68%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (1,160,989 samples, 0.68%)core::ptr::drop_in_place<(alloc::string::String,shed::state::ShFunc)> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<shed::state::ShFunc> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<shed::parse::Node> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<alloc::vec::Vec<shed::parse::lex::Tk>> (1,160,989 samples, 0.68%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<shed::parse::lex::Tk>> (1,160,989 samples, 0.68%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (1,160,989 samples, 0.68%)alloc::raw_vec::RawVecInner<A>::deallocate (1,160,989 samples, 0.68%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (1,160,989 samples, 0.68%)alloc::alloc::dealloc (1,160,989 samples, 0.68%)_int_free_chunk (1,160,989 samples, 0.68%)_int_free_maybe_consolidate.part.0 (1,160,989 samples, 0.68%)malloc_consolidate (1,160,989 samples, 0.68%)unlink_chunk.isra.0 (1,160,989 samples, 0.68%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (182,892 samples, 0.11%)hashbrown::raw::RawTableInner::drop_inner_table (182,892 samples, 0.11%)hashbrown::raw::RawTableInner::drop_elements (182,892 samples, 0.11%)hashbrown::raw::Bucket<T>::drop (182,892 samples, 0.11%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (182,892 samples, 0.11%)core::ptr::drop_in_place<(alloc::string::String,shed::state::Var)> (182,892 samples, 0.11%)core::ptr::drop_in_place<alloc::string::String> (182,892 samples, 0.11%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (182,892 samples, 0.11%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (182,892 samples, 0.11%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (182,892 samples, 0.11%)alloc::raw_vec::RawVecInner<A>::deallocate (182,892 samples, 0.11%)<alloc::alloc::Global as core::alloc::Allocator>::deallocate (182,892 samples, 0.11%)alloc::alloc::dealloc (182,892 samples, 0.11%)_int_free_chunk (182,892 samples, 0.11%)[unknown] (182,892 samples, 0.11%)[unknown] (182,892 samples, 0.11%)[unknown] (182,892 samples, 0.11%)[unknown] (182,892 samples, 0.11%)shed::parse::execute::Dispatcher::exec_builtin (1,503,561 samples, 0.88%)shed::parse::execute::Dispatcher::run_fork (1,503,561 samples, 0.88%)std::process::exit (1,482,080 samples, 0.87%)std::sys::pal::unix::os::exit (1,482,080 samples, 0.87%)exit (1,482,080 samples, 0.87%)__run_exit_handlers (1,482,080 samples, 0.87%)__call_tls_dtors (1,482,080 samples, 0.87%)std::sys::thread_local::native::lazy::destroy (1,482,080 samples, 0.87%)std::sys::thread_local::abort_on_dtor_unwind (1,482,080 samples, 0.87%)std::sys::thread_local::native::lazy::destroy::{{closure}} (1,482,080 samples, 0.87%)core::mem::maybe_uninit::MaybeUninit<T>::assume_init_drop (1,482,080 samples, 0.87%)core::ptr::drop_in_place<shed::state::Shed> (1,482,080 samples, 0.87%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::ScopeStack>> (321,091 samples, 0.19%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::ScopeStack>> (321,091 samples, 0.19%)core::ptr::drop_in_place<shed::state::ScopeStack> (321,091 samples, 0.19%)core::ptr::drop_in_place<alloc::vec::Vec<shed::state::VarTab>> (321,091 samples, 0.19%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (321,091 samples, 0.19%)core::ptr::drop_in_place<[shed::state::VarTab]> (321,091 samples, 0.19%)core::ptr::drop_in_place<shed::state::VarTab> (321,091 samples, 0.19%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::Var>> (321,091 samples, 0.19%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::Var,std::hash::random::RandomState>> (321,091 samples, 0.19%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::Var)>> (321,091 samples, 0.19%)_int_free_chunk (138,199 samples, 0.08%)_int_free_merge_chunk (138,199 samples, 0.08%)_int_free_create_chunk (138,199 samples, 0.08%)[unknown] (138,199 samples, 0.08%)[unknown] (138,199 samples, 0.08%)[unknown] (138,199 samples, 0.08%)[unknown] (138,199 samples, 0.08%)[unknown] (138,199 samples, 0.08%)shed::main (4,409,228 samples, 2.59%)sh..shed::shed_interactive (4,409,228 samples, 2.59%)sh..shed::state::source_rc (1,549,819 samples, 0.91%)shed::state::source_file (1,549,819 samples, 0.91%)shed::parse::execute::exec_input (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::begin_dispatch (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_pipeline (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_cmd (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_builtin (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_builtin (1,549,819 samples, 0.91%)shed::builtin::varcmds::export (1,549,819 samples, 0.91%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,549,819 samples, 0.91%)shed::expand::Expander::expand (1,549,819 samples, 0.91%)shed::expand::expand_raw (1,549,819 samples, 0.91%)shed::expand::expand_var (1,549,819 samples, 0.91%)shed::expand::expand_cmd_sub (1,549,819 samples, 0.91%)shed::parse::execute::exec_input (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::begin_dispatch (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_pipeline (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_cmd (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_func (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_brc_grp (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_loop (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_loop::{{closure}} (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_case (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_case::{{closure}} (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_pipeline (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_cmd (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_cmd (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::set_assignments (1,549,819 samples, 0.91%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,549,819 samples, 0.91%)shed::expand::Expander::expand (1,549,819 samples, 0.91%)shed::expand::expand_raw (1,549,819 samples, 0.91%)shed::expand::expand_var (1,549,819 samples, 0.91%)shed::expand::expand_cmd_sub (1,549,819 samples, 0.91%)shed::parse::execute::exec_input (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::begin_dispatch (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_conjunction (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_pipeline (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_node (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::dispatch_cmd (1,549,819 samples, 0.91%)shed::parse::execute::Dispatcher::exec_cmd (46,258 samples, 0.03%)shed::parse::execute::Dispatcher::exec_cmd::{{closure}} (18,915 samples, 0.01%)nix::unistd::execvpe (18,915 samples, 0.01%)nix::unistd::to_exec_array (18,915 samples, 0.01%)core::iter::traits::iterator::Iterator::collect (18,915 samples, 0.01%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (18,915 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (18,915 samples, 0.01%)<alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter (18,915 samples, 0.01%)alloc::vec::Vec<T>::with_capacity (18,915 samples, 0.01%)alloc::vec::Vec<T,A>::with_capacity_in (18,915 samples, 0.01%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (18,915 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (18,915 samples, 0.01%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (18,915 samples, 0.01%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (18,915 samples, 0.01%)alloc::alloc::Global::alloc_impl (18,915 samples, 0.01%)alloc::alloc::alloc (18,915 samples, 0.01%)__libc_malloc2 (18,915 samples, 0.01%)shed::parse::execute::Dispatcher::exec_func (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_conjunction (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_pipeline (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_cmd (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_builtin (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_builtin (1,252,495 samples, 0.73%)shed::builtin::varcmds::local (1,252,495 samples, 0.73%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,252,495 samples, 0.73%)shed::expand::Expander::expand (1,252,495 samples, 0.73%)shed::expand::expand_raw (1,252,495 samples, 0.73%)shed::expand::expand_var (1,252,495 samples, 0.73%)shed::expand::expand_cmd_sub (1,252,495 samples, 0.73%)shed::parse::execute::exec_input (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::begin_dispatch (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_conjunction (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_pipeline (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_cmd (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_func (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_conjunction (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_pipeline (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_cmd (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_builtin (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_builtin (1,252,495 samples, 0.73%)shed::builtin::varcmds::local (1,252,495 samples, 0.73%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,252,495 samples, 0.73%)shed::expand::Expander::expand (1,252,495 samples, 0.73%)shed::expand::expand_raw (1,252,495 samples, 0.73%)shed::expand::expand_var (1,252,495 samples, 0.73%)shed::expand::expand_cmd_sub (1,252,495 samples, 0.73%)shed::parse::execute::exec_input (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::begin_dispatch (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_conjunction (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_pipeline (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_cmd (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_func (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_conjunction (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_pipeline (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_node (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_cmd (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::exec_builtin (1,252,495 samples, 0.73%)shed::parse::execute::Dispatcher::dispatch_builtin (1,252,495 samples, 0.73%)shed::builtin::echo::echo (1,252,495 samples, 0.73%)shed::getopt::get_opts_from_tokens (1,252,495 samples, 0.73%)core::iter::traits::iterator::Iterator::collect (1,252,495 samples, 0.73%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter (1,252,495 samples, 0.73%)core::iter::adapters::try_process (1,252,495 samples, 0.73%)<core::result::Result<V,E> as core::iter::traits::collect::FromIterator<core::result::Result<A,E>>>::from_iter::{{closure}} (1,252,495 samples, 0.73%)core::iter::traits::iterator::Iterator::collect (1,252,495 samples, 0.73%)<alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter (1,252,495 samples, 0.73%)alloc::vec::in_place_collect::<impl alloc::vec::spec_from_iter::SpecFromIter<T,I> for alloc::vec::Vec<T>>::from_iter (1,252,495 samples, 0.73%)alloc::vec::in_place_collect::from_iter_in_place (1,252,495 samples, 0.73%)<I as alloc::vec::in_place_collect::SpecInPlaceCollect<T,I>>::collect_in_place (1,252,495 samples, 0.73%)<core::iter::adapters::GenericShunt<I,R> as core::iter::traits::iterator::Iterator>::try_fold (1,252,495 samples, 0.73%)<core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (1,252,495 samples, 0.73%)<alloc::vec::into_iter::IntoIter<T,A> as core::iter::traits::iterator::Iterator>::try_fold (1,252,495 samples, 0.73%)core::iter::adapters::map::map_try_fold::{{closure}} (1,252,495 samples, 0.73%)shed::getopt::get_opts_from_tokens::{{closure}} (1,252,495 samples, 0.73%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,252,495 samples, 0.73%)shed::expand::Expander::expand (1,252,495 samples, 0.73%)shed::expand::Expander::split_words (1,252,495 samples, 0.73%)std::env::var (1,252,495 samples, 0.73%)std::env::_var (1,252,495 samples, 0.73%)std::sys::env::unix::getenv (1,252,495 samples, 0.73%)std::sys::env::unix::getenv::{{closure}} (1,252,495 samples, 0.73%)getenv (1,252,495 samples, 0.73%)shed::readline::Prompt::new (378,197 samples, 0.22%)shed::expand::expand_prompt (378,197 samples, 0.22%)shed::expand::expand_cmd_sub (378,197 samples, 0.22%)shed::parse::execute::exec_input (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::begin_dispatch (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_conjunction (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_pipeline (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_cmd (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_func (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_brc_grp (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_conjunction (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_pipeline (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_cmd (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_builtin (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_builtin (378,197 samples, 0.22%)shed::builtin::varcmds::local (378,197 samples, 0.22%)shed::expand::<impl shed::parse::lex::Tk>::expand (378,197 samples, 0.22%)shed::expand::Expander::expand (378,197 samples, 0.22%)shed::expand::expand_raw (378,197 samples, 0.22%)shed::expand::expand_var (378,197 samples, 0.22%)shed::expand::expand_cmd_sub (378,197 samples, 0.22%)shed::parse::execute::exec_input (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::begin_dispatch (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_conjunction (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_pipeline (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_cmd (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_func (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_brc_grp (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_conjunction (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_pipeline (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_node (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_cmd (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::exec_builtin (378,197 samples, 0.22%)shed::parse::execute::Dispatcher::dispatch_builtin (378,197 samples, 0.22%)shed::builtin::varcmds::local (378,197 samples, 0.22%)shed::expand::<impl shed::parse::lex::Tk>::expand (378,197 samples, 0.22%)shed::expand::Expander::expand (378,197 samples, 0.22%)shed::expand::expand_raw (378,197 samples, 0.22%)shed::expand::expand_var (378,197 samples, 0.22%)shed::expand::expand_cmd_sub (378,197 samples, 0.22%)shed::parse::execute::exec_input (378,197 samples, 0.22%)shed::state::read_logic (365,775 samples, 0.21%)std::thread::local::LocalKey<T>::with (365,775 samples, 0.21%)std::thread::local::LocalKey<T>::try_with (365,775 samples, 0.21%)shed::state::read_logic::{{closure}} (365,775 samples, 0.21%)shed::parse::execute::exec_input::{{closure}} (365,775 samples, 0.21%)<shed::state::LogTab as core::clone::Clone>::clone (365,775 samples, 0.21%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (365,775 samples, 0.21%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (365,775 samples, 0.21%)hashbrown::raw::RawTable<T,A>::clone_from_impl (365,775 samples, 0.21%)core::clone::Clone::clone (365,775 samples, 0.21%)<shed::state::ShFunc as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)<T as core::clone::CloneToUninit>::clone_to_uninit (365,775 samples, 0.21%)<T as core::clone::uninit::CopySpec>::clone_one (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::CondNode as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)<T as core::clone::CloneToUninit>::clone_to_uninit (365,775 samples, 0.21%)<T as core::clone::uninit::CopySpec>::clone_one (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::CondNode as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<shed::parse::NdRule as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)alloc::slice::<impl [T]>::to_vec_in (365,775 samples, 0.21%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (365,775 samples, 0.21%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)<T as core::clone::CloneToUninit>::clone_to_uninit (365,775 samples, 0.21%)<T as core::clone::uninit::CopySpec>::clone_one (365,775 samples, 0.21%)<shed::parse::Node as core::clone::Clone>::clone (365,775 samples, 0.21%)<alloc::collections::vec_deque::VecDeque<T,A> as core::clone::Clone>::clone (365,775 samples, 0.21%)shed::parse::execute::Dispatcher::begin_dispatch (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::exec_conjunction (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::exec_pipeline (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_node (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::dispatch_cmd (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::exec_builtin (110,214 samples, 0.06%)shed::parse::execute::Dispatcher::run_fork (110,214 samples, 0.06%)std::process::exit (104,725 samples, 0.06%)std::sys::pal::unix::os::exit (104,725 samples, 0.06%)exit (104,725 samples, 0.06%)__run_exit_handlers (104,725 samples, 0.06%)__call_tls_dtors (104,725 samples, 0.06%)std::sys::thread_local::native::lazy::destroy (104,725 samples, 0.06%)std::sys::thread_local::abort_on_dtor_unwind (104,725 samples, 0.06%)std::sys::thread_local::native::lazy::destroy::{{closure}} (104,725 samples, 0.06%)core::mem::maybe_uninit::MaybeUninit<T>::assume_init_drop (104,725 samples, 0.06%)core::ptr::drop_in_place<shed::state::Shed> (104,725 samples, 0.06%)core::ptr::drop_in_place<core::cell::RefCell<shed::state::ScopeStack>> (104,725 samples, 0.06%)core::ptr::drop_in_place<core::cell::UnsafeCell<shed::state::ScopeStack>> (104,725 samples, 0.06%)core::ptr::drop_in_place<shed::state::ScopeStack> (104,725 samples, 0.06%)core::ptr::drop_in_place<alloc::vec::Vec<shed::state::VarTab>> (104,725 samples, 0.06%)<alloc::vec::Vec<T,A> as core::ops::drop::Drop>::drop (104,725 samples, 0.06%)core::ptr::drop_in_place<[shed::state::VarTab]> (104,725 samples, 0.06%)core::ptr::drop_in_place<shed::state::VarTab> (104,725 samples, 0.06%)core::ptr::drop_in_place<std::collections::hash::map::HashMap<alloc::string::String,shed::state::Var>> (104,725 samples, 0.06%)core::ptr::drop_in_place<hashbrown::map::HashMap<alloc::string::String,shed::state::Var,std::hash::random::RandomState>> (104,725 samples, 0.06%)core::ptr::drop_in_place<hashbrown::raw::RawTable<(alloc::string::String,shed::state::Var)>> (104,725 samples, 0.06%)<hashbrown::raw::RawTable<T,A> as core::ops::drop::Drop>::drop (104,725 samples, 0.06%)hashbrown::raw::RawTableInner::drop_inner_table (104,725 samples, 0.06%)hashbrown::raw::RawTableInner::drop_elements (104,725 samples, 0.06%)hashbrown::raw::Bucket<T>::drop (104,725 samples, 0.06%)core::ptr::mut_ptr::<impl *mut T>::drop_in_place (104,725 samples, 0.06%)core::ptr::drop_in_place<(alloc::string::String,shed::state::Var)> (104,725 samples, 0.06%)core::ptr::drop_in_place<alloc::string::String> (104,725 samples, 0.06%)core::ptr::drop_in_place<alloc::vec::Vec<u8>> (104,725 samples, 0.06%)core::ptr::drop_in_place<alloc::raw_vec::RawVec<u8>> (104,725 samples, 0.06%)<alloc::raw_vec::RawVec<T,A> as core::ops::drop::Drop>::drop (104,725 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::deallocate (104,725 samples, 0.06%)alloc::raw_vec::RawVecInner<A>::current_memory (104,725 samples, 0.06%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (106,844 samples, 0.06%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (106,844 samples, 0.06%)<T as core::clone::CloneToUninit>::clone_to_uninit (106,844 samples, 0.06%)<T as core::clone::uninit::CopySpec>::clone_one (106,844 samples, 0.06%)<shed::parse::Node as core::clone::Clone>::clone (106,844 samples, 0.06%)<shed::parse::NdRule as core::clone::Clone>::clone (106,844 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (106,844 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (106,844 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (106,844 samples, 0.06%)<shed::parse::Node as core::clone::Clone>::clone (106,844 samples, 0.06%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (106,844 samples, 0.06%)alloc::slice::<impl [T]>::to_vec_in (106,844 samples, 0.06%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (106,844 samples, 0.06%)<shed::parse::lex::Tk as core::clone::Clone>::clone (106,844 samples, 0.06%)<shed::parse::lex::Span as core::clone::Clone>::clone (106,844 samples, 0.06%)<shed::parse::lex::SpanSource as core::clone::Clone>::clone (106,844 samples, 0.06%)<alloc::sync::Arc<T,A> as core::clone::Clone>::clone (106,844 samples, 0.06%)alloc::sync::Arc<T,A>::inner (106,844 samples, 0.06%)core::ptr::non_null::NonNull<T>::as_ref (106,844 samples, 0.06%)shed::readline::ShedVi::new (305,867 samples, 0.18%)shed::readline::Prompt::refresh (305,867 samples, 0.18%)shed::expand::expand_prompt (305,867 samples, 0.18%)shed::expand::expand_cmd_sub (305,867 samples, 0.18%)shed::parse::execute::exec_input (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::begin_dispatch (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_conjunction (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_pipeline (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_cmd (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_func (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_brc_grp (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_conjunction (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_pipeline (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_cmd (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_builtin (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_builtin (305,867 samples, 0.18%)shed::builtin::varcmds::local (305,867 samples, 0.18%)shed::expand::<impl shed::parse::lex::Tk>::expand (305,867 samples, 0.18%)shed::expand::Expander::expand (305,867 samples, 0.18%)shed::expand::expand_raw (305,867 samples, 0.18%)shed::expand::expand_var (305,867 samples, 0.18%)shed::expand::expand_cmd_sub (305,867 samples, 0.18%)shed::parse::execute::exec_input (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::begin_dispatch (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_conjunction (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_pipeline (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_cmd (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_func (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_brc_grp (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_conjunction (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_pipeline (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_node (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_cmd (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::exec_builtin (305,867 samples, 0.18%)shed::parse::execute::Dispatcher::dispatch_builtin (305,867 samples, 0.18%)shed::builtin::varcmds::local (305,867 samples, 0.18%)shed::expand::<impl shed::parse::lex::Tk>::expand (305,867 samples, 0.18%)shed::expand::Expander::expand (305,867 samples, 0.18%)shed::expand::expand_raw (305,867 samples, 0.18%)shed::expand::expand_var (305,867 samples, 0.18%)shed::expand::expand_cmd_sub (305,867 samples, 0.18%)shed::parse::execute::exec_input (305,867 samples, 0.18%)shed::state::read_logic (195,653 samples, 0.11%)std::thread::local::LocalKey<T>::with (195,653 samples, 0.11%)std::thread::local::LocalKey<T>::try_with (195,653 samples, 0.11%)shed::state::read_logic::{{closure}} (195,653 samples, 0.11%)shed::parse::execute::exec_input::{{closure}} (195,653 samples, 0.11%)<shed::state::LogTab as core::clone::Clone>::clone (195,653 samples, 0.11%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (195,653 samples, 0.11%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (195,653 samples, 0.11%)hashbrown::raw::RawTable<T,A>::clone_from_impl (195,653 samples, 0.11%)core::clone::Clone::clone (195,653 samples, 0.11%)<shed::state::ShFunc as core::clone::Clone>::clone (195,653 samples, 0.11%)<shed::parse::Node as core::clone::Clone>::clone (195,653 samples, 0.11%)<shed::parse::NdRule as core::clone::Clone>::clone (195,653 samples, 0.11%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)alloc::slice::<impl [T]>::to_vec_in (195,653 samples, 0.11%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (195,653 samples, 0.11%)<shed::parse::Node as core::clone::Clone>::clone (195,653 samples, 0.11%)<shed::parse::NdRule as core::clone::Clone>::clone (195,653 samples, 0.11%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)alloc::slice::<impl [T]>::to_vec_in (195,653 samples, 0.11%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (195,653 samples, 0.11%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (195,653 samples, 0.11%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)<T as core::clone::CloneToUninit>::clone_to_uninit (195,653 samples, 0.11%)<T as core::clone::uninit::CopySpec>::clone_one (195,653 samples, 0.11%)<shed::parse::Node as core::clone::Clone>::clone (195,653 samples, 0.11%)<shed::parse::NdRule as core::clone::Clone>::clone (195,653 samples, 0.11%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)alloc::slice::<impl [T]>::to_vec_in (195,653 samples, 0.11%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (195,653 samples, 0.11%)<shed::parse::Node as core::clone::Clone>::clone (195,653 samples, 0.11%)<shed::parse::NdRule as core::clone::Clone>::clone (195,653 samples, 0.11%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (195,653 samples, 0.11%)alloc::slice::<impl [T]>::to_vec_in (195,653 samples, 0.11%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (195,653 samples, 0.11%)<shed::parse::Node as core::clone::Clone>::clone (88,809 samples, 0.05%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (88,809 samples, 0.05%)alloc::slice::<impl [T]>::to_vec_in (88,809 samples, 0.05%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (88,809 samples, 0.05%)<shed::parse::lex::Tk as core::clone::Clone>::clone (88,809 samples, 0.05%)<shed::parse::lex::TkRule as core::clone::Clone>::clone (88,809 samples, 0.05%)shed::shed_interactive (809,650 samples, 0.47%)shed::state::source_rc (125,586 samples, 0.07%)shed::state::source_file (125,586 samples, 0.07%)shed::parse::execute::exec_input (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::begin_dispatch (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_pipeline (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_cmd (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_builtin (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_builtin (125,586 samples, 0.07%)shed::builtin::varcmds::export (125,586 samples, 0.07%)shed::expand::<impl shed::parse::lex::Tk>::expand (125,586 samples, 0.07%)shed::expand::Expander::expand (125,586 samples, 0.07%)shed::expand::expand_raw (125,586 samples, 0.07%)shed::expand::expand_var (125,586 samples, 0.07%)shed::expand::expand_cmd_sub (125,586 samples, 0.07%)shed::parse::execute::exec_input (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::begin_dispatch (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_pipeline (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_cmd (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_func (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_brc_grp (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_loop (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_loop::{{closure}} (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_case (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_case::{{closure}} (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_pipeline (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_cmd (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_cmd (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::set_assignments (125,586 samples, 0.07%)shed::expand::<impl shed::parse::lex::Tk>::expand (125,586 samples, 0.07%)shed::expand::Expander::expand (125,586 samples, 0.07%)shed::expand::expand_raw (125,586 samples, 0.07%)shed::expand::expand_var (125,586 samples, 0.07%)shed::expand::expand_cmd_sub (125,586 samples, 0.07%)shed::parse::execute::exec_input (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::begin_dispatch (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_conjunction (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_pipeline (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_node (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_cmd (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_builtin (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::run_fork (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::exec_builtin::{{closure}} (125,586 samples, 0.07%)shed::parse::execute::Dispatcher::dispatch_builtin (125,586 samples, 0.07%)shed::builtin::echo::echo (125,586 samples, 0.07%)shed::parse::execute::prepare_argv (125,586 samples, 0.07%)shed::expand::<impl shed::parse::lex::Tk>::expand (125,586 samples, 0.07%)shed::expand::Expander::expand (125,586 samples, 0.07%)shed::expand::Expander::split_words (125,586 samples, 0.07%)core::str::<impl str>::contains (125,586 samples, 0.07%)<char as core::str::pattern::Pattern>::is_contained_in (125,586 samples, 0.07%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (870,234 samples, 0.51%)<T as core::clone::CloneToUninit>::clone_to_uninit (870,234 samples, 0.51%)<T as core::clone::uninit::CopySpec>::clone_one (870,234 samples, 0.51%)<shed::parse::Node as core::clone::Clone>::clone (870,234 samples, 0.51%)<alloc::collections::vec_deque::VecDeque<T,A> as core::clone::Clone>::clone (870,234 samples, 0.51%)shed::readline::Prompt::new (1,044,813 samples, 0.61%)shed::expand::expand_prompt (1,044,813 samples, 0.61%)shed::expand::expand_cmd_sub (1,044,813 samples, 0.61%)shed::parse::execute::exec_input (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::begin_dispatch (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_conjunction (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_pipeline (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_cmd (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_func (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_brc_grp (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_conjunction (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_pipeline (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_cmd (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_builtin (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_builtin (1,044,813 samples, 0.61%)shed::builtin::varcmds::local (1,044,813 samples, 0.61%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,044,813 samples, 0.61%)shed::expand::Expander::expand (1,044,813 samples, 0.61%)shed::expand::expand_raw (1,044,813 samples, 0.61%)shed::expand::expand_var (1,044,813 samples, 0.61%)shed::expand::expand_cmd_sub (1,044,813 samples, 0.61%)shed::parse::execute::exec_input (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::begin_dispatch (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_conjunction (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_pipeline (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_cmd (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_func (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_brc_grp (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_conjunction (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_pipeline (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_node (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_cmd (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::exec_builtin (1,044,813 samples, 0.61%)shed::parse::execute::Dispatcher::dispatch_builtin (1,044,813 samples, 0.61%)shed::builtin::varcmds::local (1,044,813 samples, 0.61%)shed::expand::<impl shed::parse::lex::Tk>::expand (1,044,813 samples, 0.61%)shed::expand::Expander::expand (1,044,813 samples, 0.61%)shed::expand::expand_raw (1,044,813 samples, 0.61%)shed::expand::expand_var (1,044,813 samples, 0.61%)shed::expand::expand_cmd_sub (1,044,813 samples, 0.61%)shed::parse::execute::exec_input (1,044,813 samples, 0.61%)shed::state::read_logic (1,044,813 samples, 0.61%)std::thread::local::LocalKey<T>::with (1,044,813 samples, 0.61%)std::thread::local::LocalKey<T>::try_with (1,044,813 samples, 0.61%)shed::state::read_logic::{{closure}} (1,044,813 samples, 0.61%)shed::parse::execute::exec_input::{{closure}} (1,044,813 samples, 0.61%)<shed::state::LogTab as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (1,044,813 samples, 0.61%)hashbrown::raw::RawTable<T,A>::clone_from_impl (1,044,813 samples, 0.61%)core::clone::Clone::clone (1,044,813 samples, 0.61%)<shed::state::ShFunc as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<shed::parse::Node as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<shed::parse::NdRule as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)alloc::slice::<impl [T]>::to_vec_in (1,044,813 samples, 0.61%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,044,813 samples, 0.61%)<shed::parse::Node as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<shed::parse::NdRule as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)alloc::slice::<impl [T]>::to_vec_in (1,044,813 samples, 0.61%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,044,813 samples, 0.61%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<T as core::clone::CloneToUninit>::clone_to_uninit (1,044,813 samples, 0.61%)<T as core::clone::uninit::CopySpec>::clone_one (1,044,813 samples, 0.61%)<shed::parse::Node as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<shed::parse::NdRule as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (1,044,813 samples, 0.61%)alloc::slice::<impl [T]>::to_vec_in (1,044,813 samples, 0.61%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (1,044,813 samples, 0.61%)<shed::parse::CondNode as core::clone::Clone>::clone (1,044,813 samples, 0.61%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (174,579 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (174,579 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (174,579 samples, 0.10%)<shed::parse::Node as core::clone::Clone>::clone (174,579 samples, 0.10%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (174,579 samples, 0.10%)alloc::slice::<impl [T]>::to_vec_in (174,579 samples, 0.10%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (174,579 samples, 0.10%)alloc::vec::Vec<T,A>::with_capacity_in (174,579 samples, 0.10%)alloc::raw_vec::RawVec<T,A>::with_capacity_in (174,579 samples, 0.10%)alloc::raw_vec::RawVecInner<A>::with_capacity_in (174,579 samples, 0.10%)alloc::raw_vec::RawVecInner<A>::try_allocate_in (174,579 samples, 0.10%)<alloc::alloc::Global as core::alloc::Allocator>::allocate (174,579 samples, 0.10%)alloc::alloc::Global::alloc_impl (174,579 samples, 0.10%)alloc::alloc::alloc (174,579 samples, 0.10%)__libc_malloc2 (174,579 samples, 0.10%)_int_malloc (174,579 samples, 0.10%)[unknown] (174,579 samples, 0.10%)[unknown] (174,579 samples, 0.10%)[unknown] (174,579 samples, 0.10%)[unknown] (174,579 samples, 0.10%)std::rt::lang_start_internal (1,066,170 samples, 0.63%)std::rt::lang_start::{{closure}} (1,066,170 samples, 0.63%)std::sys::backtrace::__rust_begin_short_backtrace (1,066,170 samples, 0.63%)core::ops::function::FnOnce::call_once (1,066,170 samples, 0.63%)shed::main (1,066,170 samples, 0.63%)shed::shed_interactive (1,066,170 samples, 0.63%)shed::state::source_rc (21,357 samples, 0.01%)shed::state::source_file (21,357 samples, 0.01%)shed::parse::execute::exec_input (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::begin_dispatch (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_pipeline (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_cmd (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_builtin (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_builtin (21,357 samples, 0.01%)shed::builtin::varcmds::export (21,357 samples, 0.01%)shed::expand::<impl shed::parse::lex::Tk>::expand (21,357 samples, 0.01%)shed::expand::Expander::expand (21,357 samples, 0.01%)shed::expand::expand_raw (21,357 samples, 0.01%)shed::expand::expand_var (21,357 samples, 0.01%)shed::expand::expand_cmd_sub (21,357 samples, 0.01%)shed::parse::execute::exec_input (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::begin_dispatch (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_pipeline (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_cmd (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_func (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_brc_grp (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_brc_grp::{{closure}} (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_loop (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_loop::{{closure}} (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_case (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_case::{{closure}} (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_conjunction (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_pipeline (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_node (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::dispatch_cmd (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::exec_cmd (21,357 samples, 0.01%)shed::parse::execute::Dispatcher::set_assignments (21,357 samples, 0.01%)shed::expand::<impl shed::parse::lex::Tk>::expand (21,357 samples, 0.01%)shed::expand::Expander::expand (21,357 samples, 0.01%)shed::expand::expand_raw (21,357 samples, 0.01%)shed::expand::expand_var (21,357 samples, 0.01%)shed::expand::expand_cmd_sub (21,357 samples, 0.01%)shed::parse::execute::exec_input (21,357 samples, 0.01%)shed::state::read_logic (21,357 samples, 0.01%)std::thread::local::LocalKey<T>::with (21,357 samples, 0.01%)std::thread::local::LocalKey<T>::try_with (21,357 samples, 0.01%)shed::state::read_logic::{{closure}} (21,357 samples, 0.01%)shed::parse::execute::exec_input::{{closure}} (21,357 samples, 0.01%)<shed::state::LogTab as core::clone::Clone>::clone (21,357 samples, 0.01%)<std::collections::hash::map::HashMap<K,V,S> as core::clone::Clone>::clone (21,357 samples, 0.01%)<hashbrown::map::HashMap<K,V,S,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)<hashbrown::raw::RawTable<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)<hashbrown::raw::RawTable<T,A> as hashbrown::raw::RawTableClone>::clone_from_spec (21,357 samples, 0.01%)hashbrown::raw::RawTable<T,A>::clone_from_impl (21,357 samples, 0.01%)core::clone::Clone::clone (21,357 samples, 0.01%)<shed::state::ShFunc as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)<T as core::clone::CloneToUninit>::clone_to_uninit (21,357 samples, 0.01%)<T as core::clone::uninit::CopySpec>::clone_one (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::CondNode as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)<T as core::clone::CloneToUninit>::clone_to_uninit (21,357 samples, 0.01%)<T as core::clone::uninit::CopySpec>::clone_one (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::CondNode as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)<T as core::clone::CloneToUninit>::clone_to_uninit (21,357 samples, 0.01%)<T as core::clone::uninit::CopySpec>::clone_one (21,357 samples, 0.01%)<shed::parse::Node as core::clone::Clone>::clone (21,357 samples, 0.01%)<shed::parse::NdRule as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::vec::Vec<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)alloc::slice::<impl [T]>::to_vec_in (21,357 samples, 0.01%)<T as alloc::slice::<impl [T]>::to_vec_in::ConvertVec>::to_vec (21,357 samples, 0.01%)<shed::parse::ConjunctNode as core::clone::Clone>::clone (21,357 samples, 0.01%)<alloc::boxed::Box<T,A> as core::clone::Clone>::clone (21,357 samples, 0.01%)all (170,563,042 samples, 100%)shed (153,179,755 samples, 89.81%)shed \ No newline at end of file diff --git a/src/expand.rs b/src/expand.rs index 6f55a50..161550b 100644 --- a/src/expand.rs +++ b/src/expand.rs @@ -1026,7 +1026,7 @@ pub fn unescape_str(raw: &str) -> String { result.push(next_ch); } } - '$' => { + '$' if chars.peek() != Some(&'\'') => { result.push(markers::VAR_SUB); if chars.peek() == Some(&'(') { chars.next(); @@ -1058,6 +1058,76 @@ pub fn unescape_str(raw: &str) -> String { } } } + '$' => { + log::debug!("Found ANSI-C quoting"); + chars.next(); + while let Some(q_ch) = chars.next() { + match q_ch { + '\'' => { + break; + } + '\\' => { + if let Some(esc) = chars.next() { + match esc { + 'n' => result.push('\n'), + 't' => result.push('\t'), + 'r' => result.push('\r'), + '\'' => result.push('\''), + '\\' => result.push('\\'), + 'a' => result.push('\x07'), + 'b' => result.push('\x08'), + 'e' | 'E' => result.push('\x1b'), + 'v' => result.push('\x0b'), + 'x' => { + let mut hex = String::new(); + if let Some(h1) = chars.next() { + hex.push(h1); + } else { + result.push_str("\\x"); + continue; + } + if let Some(h2) = chars.next() { + hex.push(h2); + } else { + result.push_str(&format!("\\x{hex}")); + continue; + } + if let Ok(byte) = u8::from_str_radix(&hex, 16) { + result.push(byte as char); + } else { + result.push_str(&format!("\\x{hex}")); + continue; + } + } + 'o' => { + let mut oct = String::new(); + for _ in 0..3 { + if let Some(o) = chars.peek() { + if o.is_digit(8) { + oct.push(*o); + chars.next(); + } else { + break; + } + } else { + break; + } + } + if let Ok(byte) = u8::from_str_radix(&oct, 8) { + result.push(byte as char); + } else { + result.push_str(&format!("\\o{oct}")); + continue; + } + } + _ => result.push(esc), + } + } + } + _ => result.push(q_ch), + } + } + } '"' => { result.push(markers::DUB_QUOTE); break; @@ -1145,6 +1215,7 @@ pub fn unescape_str(raw: &str) -> String { } } '$' if chars.peek() == Some(&'\'') => { + log::debug!("Found ANSI-C quoting"); chars.next(); result.push(markers::SNG_QUOTE); while let Some(q_ch) = chars.next() { @@ -1318,6 +1389,8 @@ impl FromStr for ParamExp { ) ) }; + log::debug!("Parsing parameter expansion: '{:?}'", s); + // Handle indirect var expansion: ${!var} if let Some(var) = s.strip_prefix('!') { if var.ends_with('*') || var.ends_with('@') { @@ -1333,6 +1406,7 @@ impl FromStr for ParamExp { return Ok(RemShortestPrefix(rest.to_string())); } if let Some(rest) = s.strip_prefix("%%") { + log::debug!("Matched longest suffix pattern: '{}'", rest); return Ok(RemLongestSuffix(rest.to_string())); } else if let Some(rest) = s.strip_prefix('%') { return Ok(RemShortestSuffix(rest.to_string())); @@ -1512,7 +1586,9 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::RemShortestPrefix(prefix) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&prefix).unwrap(); + let unescaped = unescape_str(&prefix); + let expanded = expand_raw(&mut unescaped.chars().peekable()).unwrap_or(prefix); + let pattern = Pattern::new(&expanded).unwrap(); for i in 0..=value.len() { let sliced = &value[..i]; if pattern.matches(sliced) { @@ -1523,7 +1599,9 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::RemLongestPrefix(prefix) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&prefix).unwrap(); + let unescaped = unescape_str(&prefix); + let expanded = expand_raw(&mut unescaped.chars().peekable()).unwrap_or(prefix); + let pattern = Pattern::new(&expanded).unwrap(); for i in (0..=value.len()).rev() { let sliced = &value[..i]; if pattern.matches(sliced) { @@ -1534,7 +1612,9 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::RemShortestSuffix(suffix) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&suffix).unwrap(); + let unescaped = unescape_str(&suffix); + let expanded = expand_raw(&mut unescaped.chars().peekable()).unwrap_or(suffix); + let pattern = Pattern::new(&expanded).unwrap(); for i in (0..=value.len()).rev() { let sliced = &value[i..]; if pattern.matches(sliced) { @@ -1545,7 +1625,9 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::RemLongestSuffix(suffix) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&suffix).unwrap(); + let unescaped = unescape_str(&suffix); + let expanded_suffix = expand_raw(&mut unescaped.chars().peekable()).unwrap_or(suffix.clone()); + let pattern = Pattern::new(&expanded_suffix).unwrap(); for i in 0..=value.len() { let sliced = &value[i..]; if pattern.matches(sliced) { @@ -1556,12 +1638,16 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::ReplaceFirstMatch(search, replace) => { let value = vars.get_var(&var_name); - let regex = glob_to_regex(&search, false); // unanchored pattern + let search = unescape_str(&search); + let replace = unescape_str(&replace); + let expanded_search = expand_raw(&mut search.chars().peekable()).unwrap_or(search); + let expanded_replace = expand_raw(&mut replace.chars().peekable()).unwrap_or(replace); + let regex = glob_to_regex(&expanded_search, false); // unanchored pattern if let Some(mat) = regex.find(&value) { let before = &value[..mat.start()]; let after = &value[mat.end()..]; - let result = format!("{}{}{}", before, replace, after); + let result = format!("{}{}{}", before, expanded_replace, after); Ok(result) } else { Ok(value) @@ -1569,13 +1655,17 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::ReplaceAllMatches(search, replace) => { let value = vars.get_var(&var_name); - let regex = glob_to_regex(&search, false); + let search = unescape_str(&search); + let replace = unescape_str(&replace); + let expanded_search = expand_raw(&mut search.chars().peekable()).unwrap_or(search); + let expanded_replace = expand_raw(&mut replace.chars().peekable()).unwrap_or(replace); + let regex = glob_to_regex(&expanded_search, false); let mut result = String::new(); let mut last_match_end = 0; for mat in regex.find_iter(&value) { result.push_str(&value[last_match_end..mat.start()]); - result.push_str(&replace); + result.push_str(&expanded_replace); last_match_end = mat.end(); } @@ -1585,22 +1675,30 @@ pub fn perform_param_expansion(raw: &str) -> ShResult { } ParamExp::ReplacePrefix(search, replace) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&search).unwrap(); + let search = unescape_str(&search); + let replace = unescape_str(&replace); + let expanded_search = expand_raw(&mut search.chars().peekable()).unwrap_or(search); + let expanded_replace = expand_raw(&mut replace.chars().peekable()).unwrap_or(replace); + let pattern = Pattern::new(&expanded_search).unwrap(); for i in (0..=value.len()).rev() { let sliced = &value[..i]; if pattern.matches(sliced) { - return Ok(format!("{}{}", replace, &value[i..])); + return Ok(format!("{}{}", expanded_replace, &value[i..])); } } Ok(value) } ParamExp::ReplaceSuffix(search, replace) => { let value = vars.get_var(&var_name); - let pattern = Pattern::new(&search).unwrap(); + let search = unescape_str(&search); + let replace = unescape_str(&replace); + let expanded_search = expand_raw(&mut search.chars().peekable()).unwrap_or(search); + let expanded_replace = expand_raw(&mut replace.chars().peekable()).unwrap_or(replace); + let pattern = Pattern::new(&expanded_search).unwrap(); for i in (0..=value.len()).rev() { let sliced = &value[i..]; if pattern.matches(sliced) { - return Ok(format!("{}{}", &value[..i], replace)); + return Ok(format!("{}{}", &value[..i], expanded_replace)); } } Ok(value) diff --git a/src/main.rs b/src/main.rs index b04f2ef..03c75c6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -215,13 +215,12 @@ fn shed_interactive(args: ShedArgs) -> ShResult<()> { // Restore cursor to saved row before clearing, since the terminal // may have moved it during resize/rewrap readline.writer.update_t_cols(); - readline.prompt_mut().refresh()?; readline.mark_dirty(); } if JOB_DONE.swap(false, Ordering::SeqCst) { // update the prompt so any job count escape sequences update dynamically - readline.prompt_mut().refresh()?; + readline.prompt_mut().refresh(); } readline.print_line(false)?; @@ -388,6 +387,7 @@ fn shed_interactive(args: ShedArgs) -> ShResult<()> { // Reset for next command with fresh prompt readline.reset(true)?; + let real_end = start.elapsed(); log::info!("Total round trip time: {:.2?}", real_end); } diff --git a/src/parse/execute.rs b/src/parse/execute.rs index 7d6bfcf..25d7255 100644 --- a/src/parse/execute.rs +++ b/src/parse/execute.rs @@ -424,18 +424,13 @@ impl Dispatcher { 'outer: for block in case_blocks { let CaseNode { pattern, body } = block; let block_pattern_raw = pattern.span.as_str().strip_suffix(')').unwrap_or(pattern.span.as_str()).trim(); - log::debug!("[case] raw block pattern: {:?}", block_pattern_raw); // Split at '|' to allow for multiple patterns like `foo|bar)` let block_patterns = block_pattern_raw.split('|'); for pattern in block_patterns { - log::debug!("[case] testing pattern {:?} against input {:?}", pattern, pattern_raw); let pattern_exp = Expander::from_raw(pattern)?.expand()?.join(" "); - log::debug!("[case] expanded pattern: {:?}", pattern_exp); let pattern_regex = glob_to_regex(&pattern_exp, false); - log::debug!("[case] testing input {:?} against pattern {:?} (regex: {:?})", pattern_raw, pattern_exp, pattern_regex); if pattern_regex.is_match(&pattern_raw) { - log::debug!("[case] matched pattern {:?}", pattern_exp); for node in &body { s.dispatch_node(node.clone())?; } diff --git a/src/readline/highlight.rs b/src/readline/highlight.rs index b265648..dc39621 100644 --- a/src/readline/highlight.rs +++ b/src/readline/highlight.rs @@ -26,6 +26,7 @@ pub struct Highlighter { style_stack: Vec, last_was_reset: bool, in_selection: bool, + only_hl_visual: bool } impl Highlighter { @@ -38,8 +39,12 @@ impl Highlighter { style_stack: Vec::new(), last_was_reset: true, // start as true so we don't emit a leading reset in_selection: false, + only_hl_visual: false } } + pub fn only_visual(&mut self, only_visual: bool) { + self.only_hl_visual = only_visual; + } /// Loads raw input text and annotates it with syntax markers /// @@ -61,6 +66,26 @@ impl Highlighter { out } + pub fn expand_control_chars(&mut self) { + let mut expanded = String::new(); + let mut chars = self.input.chars().peekable(); + + while let Some(ch) = chars.next() { + match ch { + '\n' | '\t' | '\r' => expanded.push(ch), + c if c as u32 <= 0x1F => { + let display = (c as u8 + b'@') as char; + expanded.push_str("\x1b[7m^"); + expanded.push(display); + expanded.push_str("\x1b[0m"); + } + _ => expanded.push(ch), + } + } + + self.input = expanded; + } + /// Processes the annotated input and generates ANSI-styled output /// /// Walks through the input character by character, interpreting markers and @@ -79,6 +104,9 @@ impl Highlighter { self.reapply_style(); self.in_selection = false; } + _ if self.only_hl_visual => { + self.output.push(ch); + } markers::STRING_DQ_END | markers::STRING_SQ_END | markers::VAR_SUB_END diff --git a/src/readline/linebuf.rs b/src/readline/linebuf.rs index e1b4e16..871cd9a 100644 --- a/src/readline/linebuf.rs +++ b/src/readline/linebuf.rs @@ -2885,6 +2885,8 @@ impl LineBuf { Verb::Insert(string) => { self.push_str(&string); let graphemes = string.graphemes(true).count(); + log::debug!("Inserted string: {string:?}, graphemes: {graphemes}"); + log::debug!("buffer after insert: {:?}", self.buffer); self.cursor.add(graphemes); } Verb::Indent => { diff --git a/src/readline/mod.rs b/src/readline/mod.rs index 6bf285a..cc8e1c9 100644 --- a/src/readline/mod.rs +++ b/src/readline/mod.rs @@ -140,6 +140,7 @@ pub struct Prompt { ps1_raw: String, psr_expanded: Option, psr_raw: Option, + dirty: bool, } impl Prompt { @@ -170,32 +171,54 @@ impl Prompt { ps1_raw, psr_expanded, psr_raw, + dirty: false, } } - pub fn get_ps1(&self) -> &str { + pub fn get_ps1(&mut self) -> &str { + if self.dirty { + self.refresh_now(); + } &self.ps1_expanded } pub fn set_ps1(&mut self, ps1_raw: String) -> ShResult<()> { - self.ps1_expanded = expand_prompt(&ps1_raw)?; self.ps1_raw = ps1_raw; + self.dirty = true; Ok(()) } pub fn set_psr(&mut self, psr_raw: String) -> ShResult<()> { - self.psr_expanded = Some(expand_prompt(&psr_raw)?); self.psr_raw = Some(psr_raw); + self.dirty = true; Ok(()) } - pub fn get_psr(&self) -> Option<&str> { + pub fn get_psr(&mut self) -> Option<&str> { + if self.dirty { + self.refresh_now(); + } self.psr_expanded.as_deref() } - pub fn refresh(&mut self) -> ShResult<()> { - self.ps1_expanded = expand_prompt(&self.ps1_raw)?; - if let Some(psr_raw) = &self.psr_raw { - self.psr_expanded = Some(expand_prompt(psr_raw)?); + /// Mark the prompt as needing re-expansion on next access. + pub fn invalidate(&mut self) { + self.dirty = true; + } + + fn refresh_now(&mut self) { + let saved_status = state::get_status(); + if let Ok(expanded) = expand_prompt(&self.ps1_raw) { + self.ps1_expanded = expanded; } - Ok(()) + if let Some(psr_raw) = &self.psr_raw { + if let Ok(expanded) = expand_prompt(psr_raw) { + self.psr_expanded = Some(expanded); + } + } + state::set_status(saved_status); + self.dirty = false; + } + + pub fn refresh(&mut self) { + self.invalidate(); } } @@ -207,6 +230,7 @@ impl Default for Prompt { ps1_raw: Self::DEFAULT_PS1.to_string(), psr_expanded: None, psr_raw: None, + dirty: false, } } } @@ -253,7 +277,7 @@ impl ShedVi { needs_redraw: true, }; write_vars(|v| v.set_var("SHED_VI_MODE", VarKind::Str(new.mode.report_mode().to_string()), VarFlags::NONE))?; - new.prompt.refresh()?; + new.prompt.refresh(); new.writer.flush_write("\n")?; // ensure we start on a new line, in case the previous command didn't end with a newline new.print_line(false)?; Ok(new) @@ -296,7 +320,7 @@ impl ShedVi { pub fn reset(&mut self, full_redraw: bool) -> ShResult<()> { // Clear old display before resetting state — old_layout must survive // so print_line can call clear_rows with the full multi-line layout - self.prompt = Prompt::new(); + self.prompt.refresh(); self.editor = Default::default(); self.swap_mode(&mut (Box::new(ViInsert::new()) as Box)); self.needs_redraw = true; @@ -598,14 +622,6 @@ impl ShedVi { Ok(None) } - pub fn update_layout(&mut self) { - let text = self.line_text(); - let new = self.get_layout(&text); - if let Some(old) = self.old_layout.as_mut() { - *old = new; - } - } - pub fn get_layout(&mut self, line: &str) -> Layout { let to_cursor = self.editor.slice_to_cursor().unwrap_or_default(); let (cols, _) = get_win_size(*TTY_FILENO); @@ -654,8 +670,7 @@ impl ShedVi { || (self.mode.pending_seq().unwrap(/* always Some on normal mode */).is_empty() && matches!(event, KeyEvent(KeyCode::Char('l'), ModKeys::NONE))) } - ModeReport::Ex => false, - _ => unimplemented!(), + ModeReport::Ex | ModeReport::Verbatim | ModeReport::Unknown => false, } } else { false @@ -677,21 +692,19 @@ impl ShedVi { pub fn line_text(&mut self) -> String { let line = self.editor.to_string(); let hint = self.editor.get_hint_text(); - if crate::state::read_shopts(|s| s.prompt.highlight) { - self - .highlighter - .load_input(&line, self.editor.cursor_byte_pos()); - self.highlighter.highlight(); - let highlighted = self.highlighter.take(); - format!("{highlighted}{hint}") - } else { - format!("{line}{hint}") - } + let do_hl = state::read_shopts(|s| s.prompt.highlight); + self.highlighter.only_visual(!do_hl); + self.highlighter.load_input(&line, self.editor.cursor_byte_pos()); + self.highlighter.expand_control_chars(); + self.highlighter.highlight(); + let highlighted = self.highlighter.take(); + format!("{highlighted}{hint}") } pub fn print_line(&mut self, final_draw: bool) -> ShResult<()> { let line = self.line_text(); let mut new_layout = self.get_layout(&line); + let pending_seq = self.mode.pending_seq(); let mut prompt_string_right = self.prompt.psr_expanded.clone(); @@ -710,7 +723,7 @@ impl ShedVi { .get_ps1() .lines() .next() - .map(|l| Layout::calc_pos(self.writer.t_cols, l, Pos { col: 0, row: 0 }, 0)) + .map(|l| Layout::calc_pos(self.writer.t_cols, l, Pos { col: 0, row: 0 }, 0, false)) .map(|p| p.col) .unwrap_or_default() as usize; let one_line = new_layout.end.row == 0; @@ -769,7 +782,7 @@ impl ShedVi { // Record where the PSR ends so clear_rows can account for wrapping // if the terminal shrinks. let psr_start = Pos { row: new_layout.end.row, col: to_col }; - new_layout.psr_end = Some(Layout::calc_pos(self.writer.t_cols, &psr, psr_start, 0)); + new_layout.psr_end = Some(Layout::calc_pos(self.writer.t_cols, &psr, psr_start, 0, false)); } if let ModeReport::Ex = self.mode.report_mode() { @@ -781,6 +794,7 @@ impl ShedVi { write!(buf, "{}", &self.mode.cursor_style()).unwrap(); self.writer.flush_write(&buf)?; + // Tell the completer the width of the prompt line above its \n so it can // account for wrapping when clearing after a resize. let preceding_width = if new_layout.psr_end.is_some() { @@ -808,7 +822,7 @@ impl ShedVi { std::mem::swap(&mut self.mode, mode); self.editor.set_cursor_clamp(self.mode.clamp_cursor()); write_vars(|v| v.set_var("SHED_VI_MODE", VarKind::Str(self.mode.report_mode().to_string()), VarFlags::NONE)).ok(); - self.prompt.refresh().ok(); + self.prompt.refresh(); let post_mode_change = read_logic(|l| l.get_autocmds(AutoCmdKind::PostModeChange)); post_mode_change.exec(); @@ -820,7 +834,7 @@ impl ShedVi { if cmd.is_mode_transition() { let count = cmd.verb_count(); - let mut mode: Box = if let ModeReport::Ex = self.mode.report_mode() && cmd.flags.contains(CmdFlags::EXIT_CUR_MODE) { + let mut mode: Box = if matches!(self.mode.report_mode(), ModeReport::Ex | ModeReport::Verbatim) && cmd.flags.contains(CmdFlags::EXIT_CUR_MODE) { if let Some(saved) = self.saved_mode.take() { saved } else { @@ -874,7 +888,7 @@ impl ShedVi { if matches!(self.mode.report_mode(), ModeReport::Ex | ModeReport::Verbatim) { self.saved_mode = Some(mode); write_vars(|v| v.set_var("SHED_VI_MODE", VarKind::Str(self.mode.report_mode().to_string()), VarFlags::NONE))?; - self.prompt.refresh()?; + self.prompt.refresh(); return Ok(()); } @@ -899,7 +913,7 @@ impl ShedVi { } write_vars(|v| v.set_var("SHED_VI_MODE", VarKind::Str(self.mode.report_mode().to_string()), VarFlags::NONE))?; - self.prompt.refresh()?; + self.prompt.refresh(); return Ok(()); @@ -1055,7 +1069,6 @@ pub fn annotate_input(input: &str) -> String { .filter(|tk| !matches!(tk.class, TkRule::SOI | TkRule::EOI | TkRule::Null)) .collect(); - log::debug!("Annotating input with tokens: {tokens:#?}"); for tk in tokens.into_iter().rev() { let insertions = annotate_token(tk); diff --git a/src/readline/term.rs b/src/readline/term.rs index b4131b3..ab6b794 100644 --- a/src/readline/term.rs +++ b/src/readline/term.rs @@ -736,9 +736,9 @@ impl Layout { } } pub fn from_parts(term_width: u16, prompt: &str, to_cursor: &str, to_end: &str) -> Self { - let prompt_end = Self::calc_pos(term_width, prompt, Pos { col: 0, row: 0 }, 0); - let cursor = Self::calc_pos(term_width, to_cursor, prompt_end, prompt_end.col); - let end = Self::calc_pos(term_width, to_end, prompt_end, prompt_end.col); + let prompt_end = Self::calc_pos(term_width, prompt, Pos { col: 0, row: 0 }, 0, false); + let cursor = Self::calc_pos(term_width, to_cursor, prompt_end, prompt_end.col, true); + let end = Self::calc_pos(term_width, to_end, prompt_end, prompt_end.col, false); Layout { prompt_end, cursor, @@ -748,7 +748,15 @@ impl Layout { } } - pub fn calc_pos(term_width: u16, s: &str, orig: Pos, left_margin: u16) -> Pos { + fn is_ctl_char(gr: &str) -> bool { + gr.len() > 0 && + gr.as_bytes()[0] <= 0x1F && + gr != "\n" && + gr != "\t" && + gr != "\r" + } + + pub fn calc_pos(term_width: u16, s: &str, orig: Pos, left_margin: u16, raw_calc: bool) -> Pos { const TAB_STOP: u16 = 8; let mut pos = orig; let mut esc_seq = 0; @@ -759,6 +767,8 @@ impl Layout { } let c_width = if c == "\t" { TAB_STOP - (pos.col % TAB_STOP) + } else if raw_calc && Self::is_ctl_char(c) { + 2 } else { width(c, &mut esc_seq) }; @@ -1002,7 +1012,7 @@ impl LineWriter for TermWriter { self.buffer.push_str(prompt); let multiline = line.contains('\n'); if multiline { - let prompt_end = Layout::calc_pos(self.t_cols, prompt, Pos { col: 0, row: 0 }, 0); + let prompt_end = Layout::calc_pos(self.t_cols, prompt, Pos { col: 0, row: 0 }, 0, false); let display_line = enumerate_lines(line, prompt_end.col as usize); self.buffer.push_str(&display_line); } else { diff --git a/src/readline/vimode/verbatim.rs b/src/readline/vimode/verbatim.rs index 5f21ed9..b68d6ab 100644 --- a/src/readline/vimode/verbatim.rs +++ b/src/readline/vimode/verbatim.rs @@ -24,6 +24,7 @@ impl ViMode for ViVerbatim { fn handle_key(&mut self, key: E) -> Option { match key { E(K::Verbatim(seq),_mods) => { + log::debug!("Received verbatim key sequence: {:?}", seq); let cmd = ViCmd { register: RegisterName::default(), verb: Some(VerbCmd(1,Verb::Insert(seq.to_string()))), motion: None, @@ -61,6 +62,6 @@ impl ViMode for ViVerbatim { Some(To::End) } fn report_mode(&self) -> ModeReport { - ModeReport::Insert + ModeReport::Verbatim } }