▲ ~ dunesh
(dune) /home/al1-ce$ ls
fish: Job 1, 'dunesh' terminated by signal SIGSEGV (Address boundary error)
△ ~ valgrind dunesh
==25291== Memcheck, a memory error detector
==25291== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
==25291== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info
==25291== Command: dunesh
==25291==
ls
(dune) /home/al1-ce$ ls
==25291== Invalid read of size 8
==25291== at 0x28EA80: prettytable::TableSlice::get_all_column_width (accum.rs:53)
==25291== by 0x28F1CE: __print<prettytable::utils::StringWriter, fn(&prettytable::row::Row, &mut prettytable::utils::StringWriter, &prettytable::format::TableFormat, &[usize]) -> core::result::Result<usize, std::io::error::Error>> (lib.rs:143)
==25291== by 0x28F1CE: print<prettytable::utils::StringWriter> (lib.rs:169)
==25291== by 0x28F1CE: <prettytable::TableSlice as core::fmt::Display>::fmt (lib.rs:410)
==25291== by 0x2D8F8D: core::fmt::write (mod.rs:1232)
==25291== by 0x2D9E52: core::fmt::Formatter::write_fmt (mod.rs:1686)
==25291== by 0x26D6CD: <dune::expr::Expression as core::fmt::Display>::fmt (expr.rs:283)
==25291== by 0x25B5BD: to_string<dune::expr::Expression> (string.rs:2532)
==25291== by 0x25B5BD: {closure#1} (expr.rs:480)
==25291== by 0x25B5BD: {closure#0}<(alloc::string::String, dune::expr::Expression), (alloc::string::String, alloc::string::String), (), core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>, dune::expr::{impl#14}::eval_mut::{closure_env#1}, core::iter::traits::iterator::Iterator::find::check::{closure_env#0}<(alloc::string::String, alloc::string::String), &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (map.rs:91)
==25291== by 0x25B5BD: try_fold<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, (), core::iter::adapters::map::map_try_fold::{closure_env#0}<(alloc::string::String, dune::expr::Expression), (alloc::string::String, alloc::string::String), (), core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>, dune::expr::{impl#14}::eval_mut::{closure_env#1}, core::iter::traits::iterator::Iterator::find::check::{closure_env#0}<(alloc::string::String, alloc::string::String), &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}>>, core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>> (iterator.rs:2299)
==25291== by 0x25B5BD: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (map.rs:117)
==25291== by 0x268D44: find<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}> (iterator.rs:2768)
==25291== by 0x268D44: next<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}> (filter.rs:56)
==25291== by 0x268D44: extend_desugared<(alloc::string::String, alloc::string::String), alloc::alloc::Global, core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (mod.rs:2824)
==25291== by 0x268D44: spec_extend<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>, alloc::alloc::Global> (spec_extend.rs:17)
==25291== by 0x268D44: from_iter<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (spec_from_iter_nested.rs:43)
==25291== by 0x268D44: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (spec_from_iter.rs:33)
==25291== by 0x27DD2B: from_iter<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (mod.rs:2724)
==25291== by 0x27DD2B: collect<core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>, alloc::vec::Vec<(alloc::string::String, alloc::string::String), alloc::alloc::Global>> (iterator.rs:1891)
==25291== by 0x27DD2B: <alloc::collections::btree::map::BTreeMap<K,V> as core::iter::traits::collect::FromIterator<(K,V)>>::from_iter (map.rs:2109)
==25291== by 0x270A8E: dune::expr::Expression::eval_mut (iterator.rs:1891)
==25291== by 0x26E7EB: dune::expr::Expression::eval (expr.rs:421)
==25291== by 0x16616E: dunesh::repl (bin.rs:487)
==25291== by 0x16A331: dunesh::main (bin.rs:655)
==25291== Address 0x252400002524 is not stack'd, malloc'd or (recently) free'd
==25291==
==25291==
==25291== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==25291== Access not within mapped region at address 0x2543FF000084
==25291== at 0x28EA80: prettytable::TableSlice::get_all_column_width (accum.rs:53)
==25291== by 0x28F1CE: __print<prettytable::utils::StringWriter, fn(&prettytable::row::Row, &mut prettytable::utils::StringWriter, &prettytable::format::TableFormat, &[usize]) -> core::result::Result<usize, std::io::error::Error>> (lib.rs:143)
==25291== by 0x28F1CE: print<prettytable::utils::StringWriter> (lib.rs:169)
==25291== by 0x28F1CE: <prettytable::TableSlice as core::fmt::Display>::fmt (lib.rs:410)
==25291== by 0x2D8F8D: core::fmt::write (mod.rs:1232)
==25291== by 0x2D9E52: core::fmt::Formatter::write_fmt (mod.rs:1686)
==25291== by 0x26D6CD: <dune::expr::Expression as core::fmt::Display>::fmt (expr.rs:283)
==25291== by 0x25B5BD: to_string<dune::expr::Expression> (string.rs:2532)
==25291== by 0x25B5BD: {closure#1} (expr.rs:480)
==25291== by 0x25B5BD: {closure#0}<(alloc::string::String, dune::expr::Expression), (alloc::string::String, alloc::string::String), (), core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>, dune::expr::{impl#14}::eval_mut::{closure_env#1}, core::iter::traits::iterator::Iterator::find::check::{closure_env#0}<(alloc::string::String, alloc::string::String), &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (map.rs:91)
==25291== by 0x25B5BD: try_fold<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, (), core::iter::adapters::map::map_try_fold::{closure_env#0}<(alloc::string::String, dune::expr::Expression), (alloc::string::String, alloc::string::String), (), core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>, dune::expr::{impl#14}::eval_mut::{closure_env#1}, core::iter::traits::iterator::Iterator::find::check::{closure_env#0}<(alloc::string::String, alloc::string::String), &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}>>, core::ops::control_flow::ControlFlow<(alloc::string::String, alloc::string::String), ()>> (iterator.rs:2299)
==25291== by 0x25B5BD: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold (map.rs:117)
==25291== by 0x268D44: find<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, &mut dune::expr::{impl#14}::eval_mut::{closure_env#2}> (iterator.rs:2768)
==25291== by 0x268D44: next<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}> (filter.rs:56)
==25291== by 0x268D44: extend_desugared<(alloc::string::String, alloc::string::String), alloc::alloc::Global, core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (mod.rs:2824)
==25291== by 0x268D44: spec_extend<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>, alloc::alloc::Global> (spec_extend.rs:17)
==25291== by 0x268D44: from_iter<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (spec_from_iter_nested.rs:43)
==25291== by 0x268D44: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter (spec_from_iter.rs:33)
==25291== by 0x27DD2B: from_iter<(alloc::string::String, alloc::string::String), core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>> (mod.rs:2724)
==25291== by 0x27DD2B: collect<core::iter::adapters::filter::Filter<core::iter::adapters::map::Map<alloc::collections::btree::map::IntoIter<alloc::string::String, dune::expr::Expression, alloc::alloc::Global>, dune::expr::{impl#14}::eval_mut::{closure_env#1}>, dune::expr::{impl#14}::eval_mut::{closure_env#2}>, alloc::vec::Vec<(alloc::string::String, alloc::string::String), alloc::alloc::Global>> (iterator.rs:1891)
==25291== by 0x27DD2B: <alloc::collections::btree::map::BTreeMap<K,V> as core::iter::traits::collect::FromIterator<(K,V)>>::from_iter (map.rs:2109)
==25291== by 0x270A8E: dune::expr::Expression::eval_mut (iterator.rs:1891)
==25291== by 0x26E7EB: dune::expr::Expression::eval (expr.rs:421)
==25291== by 0x16616E: dunesh::repl (bin.rs:487)
==25291== by 0x16A331: dunesh::main (bin.rs:655)
==25291== If you believe this happened as a result of a stack
==25291== overflow in your program's main thread (unlikely but
==25291== possible), you can try to increase the size of the
==25291== main thread stack using the --main-stacksize= flag.
==25291== The main thread stack size used in this run was 8388608.
==25291==
==25291== HEAP SUMMARY:
==25291== in use at exit: 203,713 bytes in 2,640 blocks
==25291== total heap usage: 8,581 allocs, 5,941 frees, 862,385 bytes allocated
==25291==
==25291== LEAK SUMMARY:
==25291== definitely lost: 0 bytes in 0 blocks
==25291== indirectly lost: 0 bytes in 0 blocks
==25291== possibly lost: 304 bytes in 1 blocks
==25291== still reachable: 203,409 bytes in 2,639 blocks
==25291== suppressed: 0 bytes in 0 blocks
==25291== Rerun with --leak-check=full to see details of leaked memory
==25291==
==25291== For lists of detected and suppressed errors, rerun with: -s
==25291== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
fish: Job 1, 'valgrind dunesh' terminated by signal SIGSEGV (Address boundary error)