on master help sign in
eval
commit1bf6fe1ab625abc3c8a98887b92ac1e3ed727966 authoriko <mail@iko.soy> dateFri 6 Sep 2024, 16:23 (2 years ago) parent0178c1a
3 files changed+5−3
.gitignore+1 nock/src/main.rs+3−2 nock/src/noun.rs+1−1
.gitignore+1
@@ -4,3 +4,4 @@ nock/flamegraph.svg
44nock/perf.data
55nock/perf.data.old
66nock/one.nock
7+nock/tmp
nock/src/main.rs+3−2
@@ -1,5 +1,5 @@
11use clap::{command, error::Result, Parser, Subcommand};
2−use nock::interpreter::{eval_pulled_gate, slam_pulled_gate};
2+use nock::interpreter::{eval_pulled_gate, slam_pulled_gate, tar};
33use nock::{
44 cue::cue_bytes,
55 interpreter::{generate_interpreter_context, slam},
@@ -87,7 +87,8 @@ fn main() -> Result<(), std::io::Error> {
8787 let nock = read_nock(&nock).unwrap();
8888
8989 let mut ctx = generate_interpreter_context();
90− let result = eval_pulled_gate(&mut ctx, nock).unwrap();
90+ let sig = ctx.nouns.sig.clone();
91+ let result = tar(&mut ctx, sig, &nock).unwrap();
9192
9293 println!("{result}");
9394 }
nock/src/noun.rs+1−1
@@ -343,7 +343,7 @@ fn write_noun(f: &mut fmt::Formatter, noun: &Noun, is_rhs: bool) -> fmt::Result
343343 }
344344 Noun::Atom(a) => {
345345 let atom_bytes = a.to_bytes_le();
346− if atom_bytes.len() > 0 && atom_bytes.into_iter().all(|c| (c > 33) && c < 126) {
346+ if atom_bytes.len() > 1 && atom_bytes.into_iter().all(|c| (c > 33) && c < 126) {
347347 f.write_char('%')?;
348348 let cord = unsafe { String::from_utf8_unchecked(a.to_bytes_le()) };
349349 f.write_str(&*cord)