mook: re-enable stack traces for %mean hints (#273)

Co-authored-by: Alex Shelkovnykov <a@ashelkov.com>
This commit is contained in:
Edward Amsden 2024-10-11 11:34:54 -05:00 committed by GitHub
parent 0950ba65af
commit 058a05c8f7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -248,20 +248,27 @@ pub mod util {
let tape = rip(stack, 3, 1, atom)?;
T(stack, &[LEAF, tape])
}
Right(_cell) => {
// 'tank: {
// let scry = null_scry(context);
// if let Ok(tone) = mink(context, dat, cell.head(), scry) {
// if let Some(cell) = tone.cell() {
// if cell.head().raw_equals(D(0)) {
// // XX: need to check that this is
// // actually a path;
// // return leaf+"mook.mean" if not
// break 'tank cell.tail();
// }
// }
// }
{
Right(cell) => {
'tank: {
let scry = null_scry(&mut context.stack);
// if +mink didn't crash...
if let Ok(tone) = mink(context, dat, cell.head(), scry) {
if let Some(tonc) = tone.cell() {
// ...and +mink didn't fail or block...
if tonc.head().raw_equals(D(0)) {
// ...return $tank from $tone
// XX: need to check that this is
// actually a tank;
// return leaf+"mook.mean" if not
break 'tank tonc.tail();
}
} else {
panic!("+mink in +mook somehow returned atom {}", tone)
}
}
// This code only called when the break statement
// above doesn't trigger
let stack = &mut context.stack;
let tape = tape(stack, "####");
T(stack, &[LEAF, tape])