feat: stash

This commit is contained in:
2025-05-10 16:29:55 +08:00
parent 14045f7924
commit f86c088e97
21 changed files with 222 additions and 219 deletions

View File

@@ -1,7 +1,21 @@
use rustyline::error::ReadlineError;
use rustyline::{DefaultEditor, Result};
use nixjit::*;
use nixjit::compile::compile;
use nixjit::ir::downgrade;
use nixjit::vm::run;
macro_rules! unwrap {
($e:expr) => {
match $e {
Ok(ok) => ok,
Err(err) => {
println!("{err}");
continue;
}
}
};
}
fn main() -> Result<()> {
let mut rl = DefaultEditor::new()?;
@@ -12,8 +26,11 @@ fn main() -> Result<()> {
if expr.trim().is_empty() {
continue;
}
let prog = compile(expr.as_str()).unwrap();
println!("{}", run(prog).unwrap());
let downgraded = unwrap!(downgrade(
rnix::Root::parse(expr.as_str()).tree().expr().unwrap()
));
let prog = compile(downgraded);
println!("{}", unwrap!(run(prog)));
rl.add_history_entry(expr.as_str())?;
}
Err(ReadlineError::Interrupted) => {