SYMBOL INDEX (372 symbols across 12 files) FILE: build.rs function main (line 1) | fn main() { FILE: examples/stress/main.js function sum (line 1) | function sum(n) { function fun (line 9) | function fun(n) { FILE: examples/stress/main.py function sum (line 1) | def sum(n): function fun (line 7) | def fun(n): FILE: examples/sum_rec/main.js function sum (line 1) | function sum(a, b) { FILE: src/ast.rs type Numb (line 11) | pub struct Numb(pub u32); method show (line 236) | pub fn show(&self) -> String { type Tree (line 14) | pub enum Tree { method show (line 319) | pub fn show(&self) -> String { method readback (line 365) | pub fn readback(net: &hvm::GNet, port: hvm::Port, fids: &BTreeMap(&'name self) -> BTreeSet<&'name str> { type Redex (line 25) | pub type Redex = (bool, Tree, Tree); type Net (line 28) | pub struct Net { method show (line 334) | pub fn show(&self) -> String { method readback (line 417) | pub fn readback(net: &hvm::GNet, book: &hvm::Book) -> Option { method build (line 512) | pub fn build(&self, def: &mut hvm::Def, fids: &BTreeMap String { method parse (line 528) | pub fn parse(code: &str) -> ParseResult { method build (line 532) | pub fn build(&self) -> hvm::Book { method propagate_safety (line 571) | fn propagate_safety(&self, compiled_book: &mut hvm::Book, lookup: &BTr... method direct_dependents (line 611) | fn direct_dependents<'name>(&'name self) -> BTreeMap<&'name str, BTree... type ParseResult (line 40) | pub type ParseResult = std::result::Result; function parse_numb_sym (line 46) | pub fn parse_numb_sym(&mut self) -> ParseResult { function parse_numb_lit (line 102) | pub fn parse_numb_lit(&mut self) -> ParseResult { function parse_numb (line 124) | pub fn parse_numb(&mut self) -> ParseResult { function parse_tree (line 136) | pub fn parse_tree(&mut self) -> ParseResult { function parse_net (line 195) | pub fn parse_net(&mut self) -> ParseResult { function parse_book (line 211) | pub fn parse_book(&mut self) -> ParseResult { function try_consume (line 223) | fn try_consume(&mut self, str: &str) -> bool { FILE: src/cmp.rs type Target (line 7) | pub enum Target { CUDA, C } function compile_book (line 10) | pub fn compile_book(trg: Target, book: &hvm::Book) -> String { function compile_def (line 37) | pub fn compile_def(trg: Target, code: &mut String, book: &hvm::Book, tab... function compile_link_fast (line 110) | pub fn compile_link_fast(trg: Target, code: &mut String, book: &hvm::Boo... function compile_link_slow (line 293) | pub fn compile_link_slow(trg: Target, code: &mut String, book: &hvm::Boo... function link_or_store (line 299) | pub fn link_or_store(trg: Target, code: &mut String, book: &hvm::Book, n... function compile_node (line 308) | pub fn compile_node(trg: Target, code: &mut String, book: &hvm::Book, ne... function compile_tag (line 328) | pub fn compile_tag(trg: Target, tag: hvm::Tag) -> &'static str { function indent (line 343) | pub fn indent(tab: usize) -> String { function fresh (line 348) | fn fresh(count: &mut usize) -> String { FILE: src/hvm.c type u8 (line 23) | typedef uint8_t u8; type u16 (line 24) | typedef uint16_t u16; type u32 (line 25) | typedef uint32_t u32; type u64 (line 26) | typedef uint64_t u64; type i32 (line 27) | typedef int32_t i32; type f32 (line 28) | typedef float f32; type f64 (line 29) | typedef double f64; type a8 (line 31) | typedef _Atomic(u8) a8; type a16 (line 32) | typedef _Atomic(u16) a16; type a32 (line 33) | typedef _Atomic(u32) a32; type a64 (line 34) | typedef _Atomic(u64) a64; type u8 (line 49) | typedef u8 Tag; type u32 (line 50) | typedef u32 Val; type u32 (line 51) | typedef u32 Port; type u64 (line 52) | typedef u64 Pair; type a32 (line 54) | typedef a32 APort; type a64 (line 55) | typedef a64 APair; type u8 (line 58) | typedef u8 Rule; type u32 (line 61) | typedef u32 Numb; type Net (line 127) | typedef struct Net { type Def (line 139) | typedef struct Def { type Book (line 150) | typedef struct Book Book; type FFn (line 153) | typedef struct { type Book (line 159) | typedef struct Book { type TM (line 167) | typedef struct TM { type Show (line 183) | typedef struct { function Port (line 197) | static inline Port new_port(Tag tag, Val val) { function Tag (line 201) | static inline Tag get_tag(Port port) { function Val (line 205) | static inline Val get_val(Port port) { function Pair (line 212) | static inline const Pair new_pair(Port fst, Port snd) { function Port (line 216) | static inline Port get_fst(Pair pair) { function Port (line 220) | static inline Port get_snd(Pair pair) { function Pair (line 224) | Pair set_par_flag(Pair pair) { function Pair (line 234) | Pair clr_par_flag(Pair pair) { function get_par_flag (line 244) | bool get_par_flag(Pair pair) { function swap (line 257) | static inline void swap(Port *a, Port *b) { function u32 (line 261) | static inline u32 min(u32 a, u32 b) { function f32 (line 265) | static inline f32 clamp(f32 x, f32 min, f32 max) { function sync_threads (line 273) | void sync_threads() { function u32 (line 289) | u32 global_sum(u32 x) { function u64 (line 299) | static inline u64 time64() { function is_nod (line 309) | static inline bool is_nod(Port a) { function is_var (line 314) | static inline bool is_var(Port a) { function Rule (line 319) | static inline Rule get_rule(Port a, Port b) { function Rule (line 335) | static inline Rule get_pair_rule(Pair AB) { function should_swap (line 340) | static inline bool should_swap(Port A, Port B) { function is_high_priority (line 345) | static inline bool is_high_priority(Rule rule) { function Port (line 351) | static inline Port adjust_port(Net* net, TM* tm, Port port) { function Pair (line 360) | static inline Pair adjust_pair(Net* net, TM* tm, Pair pair) { function Numb (line 370) | static inline Numb new_sym(u32 val) { function u32 (line 374) | static inline u32 get_sym(Numb word) { function Numb (line 379) | static inline Numb new_u24(u32 val) { function u32 (line 383) | static inline u32 get_u24(Numb word) { function Numb (line 388) | static inline Numb new_i24(i32 val) { function i32 (line 392) | static inline i32 get_i24(Numb word) { function Numb (line 397) | static inline Numb new_f24(float val) { function get_f24 (line 408) | static inline float get_f24(Numb word) { function Tag (line 414) | static inline Tag get_typ(Numb word) { function is_num (line 418) | static inline bool is_num(Numb word) { function is_cast (line 422) | static inline bool is_cast(Numb word) { function Numb (line 427) | static inline Numb partial(Numb a, Numb b) { function Numb (line 439) | static inline Numb cast(Numb a, Numb b) { function Numb (line 476) | static inline Numb operate(Numb a, Numb b) { function push_redex (line 589) | static inline void push_redex(Net* net, TM* tm, Pair redex) { function Pair (line 605) | static inline Pair pop_redex(Net* net, TM* tm) { function u32 (line 615) | static inline u32 rbag_len(Net* net, TM* tm) { function TM (line 624) | TM* tm_new(u32 tid) { function alloc_static_tms (line 636) | void alloc_static_tms() { function free_static_tms (line 642) | void free_static_tms() { function node_create (line 652) | static inline void node_create(Net* net, u32 loc, Pair val) { function vars_create (line 657) | static inline void vars_create(Net* net, u32 var, Port val) { function Pair (line 662) | static inline Pair node_load(Net* net, u32 loc) { function Port (line 667) | static inline Port vars_load(Net* net, u32 var) { function node_store (line 672) | static inline void node_store(Net* net, u32 loc, Pair val) { function Pair (line 677) | static inline Pair node_exchange(Net* net, u32 loc, Pair val) { function Port (line 682) | static inline Port vars_exchange(Net* net, u32 var, Port val) { function Pair (line 687) | static inline Pair node_take(Net* net, u32 loc) { function Port (line 692) | static inline Port vars_take(Net* net, u32 var) { function Net (line 701) | static inline Net* net_new() { function u32 (line 713) | u32 node_alloc_1(Net* net, TM* tm, u32* lps) { function u32 (line 726) | u32 vars_alloc_1(Net* net, TM* tm, u32* lps) { function u32 (line 739) | u32 node_alloc(Net* net, TM* tm, u32 num) { function u32 (line 755) | u32 vars_alloc(Net* net, TM* tm, u32 num) { function get_resources (line 772) | static inline bool get_resources(Net* net, TM* tm, u32 need_rbag, u32 ne... function Port (line 784) | static inline Port peek(Net* net, Port var) { function Port (line 795) | static inline Port enter(Net* net, Port var) { function link (line 812) | static inline void link(Net* net, TM* tm, Port A, Port B) { function link_pair (line 844) | static inline void link_pair(Net* net, TM* tm, Pair AB) { function interact_link (line 852) | static inline bool interact_link(Net* net, TM* tm, Port a, Port b) { function interact_call (line 872) | static inline bool interact_call(Net* net, TM* tm, Port a, Port b, Book*... function interact_void (line 909) | static inline bool interact_void(Net* net, TM* tm, Port a, Port b) { function interact_eras (line 914) | static inline bool interact_eras(Net* net, TM* tm, Port a, Port b) { function interact_anni (line 939) | static inline bool interact_anni(Net* net, TM* tm, Port a, Port b) { function interact_comm (line 967) | static inline bool interact_comm(Net* net, TM* tm, Port a, Port b) { function interact_oper (line 1009) | static inline bool interact_oper(Net* net, TM* tm, Port a, Port b) { function interact_swit (line 1041) | static inline bool interact_swit(Net* net, TM* tm, Port a, Port b) { function interact (line 1073) | static inline bool interact(Net* net, TM* tm, Book* book) { function evaluator (line 1127) | void evaluator(Net* net, TM* tm, Book* book) { type ThreadArg (line 1191) | typedef struct { function boot_redex (line 1204) | void boot_redex(Net* net, Pair redex) { function normalize (line 1211) | void normalize(Net* net, Book* book) { function Port (line 1233) | Port expand(Net* net, Book* book, Port port) { function read_img (line 1247) | void read_img(Net* net, Port port, u32 width, u32 height, u32* buffer) { function book_load (line 1408) | bool book_load(Book* book, u32* buf) { function put_u32 (line 1460) | void put_u32(char* B, u32 val) { function Show (line 1466) | Show show_port(Port port) { function Show (line 1483) | Show show_rule(Rule rule) { function print_net (line 1514) | void print_net(Net* net) { function pretty_print_numb (line 1535) | void pretty_print_numb(Numb word) { function pretty_print_port (line 1618) | void pretty_print_port(Net* net, Book* book, Port port) { function hvm_c (line 1743) | void hvm_c(u32* book_buffer) { function main (line 1794) | int main() { FILE: src/hvm.h type u8 (line 11) | typedef uint8_t u8; type u16 (line 12) | typedef uint16_t u16; type u32 (line 13) | typedef uint32_t u32; type i32 (line 14) | typedef int32_t i32; type u64 (line 15) | typedef uint64_t u64; type f32 (line 16) | typedef float f32; type f64 (line 17) | typedef double f64; type u8 (line 20) | typedef u8 Tag; type u32 (line 21) | typedef u32 Val; type u32 (line 22) | typedef u32 Port; type u64 (line 23) | typedef u64 Pair; type u32 (line 26) | typedef u32 Numb; type Net (line 67) | typedef struct Net Net; type Book (line 68) | typedef struct Book Book; type Show (line 73) | typedef struct { function Port (line 86) | static inline Port new_port(Tag tag, Val val) { function Tag (line 90) | static inline Tag get_tag(Port port) { function Val (line 94) | static inline Val get_val(Port port) { function Pair (line 101) | static inline const Pair new_pair(Port fst, Port snd) { function Port (line 105) | static inline Port get_fst(Pair pair) { function Port (line 109) | static inline Port get_snd(Pair pair) { function swap (line 117) | static inline void swap(Port *a, Port *b) { function u32 (line 121) | static inline u32 min(u32 a, u32 b) { function f32 (line 125) | static inline f32 clamp(f32 x, f32 min, f32 max) { function Numb (line 134) | static inline Numb new_sym(u32 val) { function u32 (line 138) | static inline u32 get_sym(Numb word) { function Numb (line 143) | static inline Numb new_u24(u32 val) { function u32 (line 147) | static inline u32 get_u24(Numb word) { function Numb (line 152) | static inline Numb new_i24(i32 val) { function i32 (line 156) | static inline i32 get_i24(Numb word) { function Numb (line 161) | static inline Numb new_f24(float val) { function get_f24 (line 172) | static inline float get_f24(Numb word) { function Tag (line 177) | static inline Tag get_typ(Numb word) { function is_num (line 181) | static inline bool is_num(Numb word) { function is_cast (line 185) | static inline bool is_cast(Numb word) { function Numb (line 190) | static inline Numb partial(Numb a, Numb b) { type Tup (line 198) | typedef struct Tup { type Str (line 208) | typedef struct Str { type Bytes (line 217) | typedef struct Bytes { FILE: src/hvm.rs type Tag (line 9) | pub type Tag = u8; type Lab (line 10) | pub type Lab = u32; type Val (line 11) | pub type Val = u32; type Rule (line 12) | pub type Rule = u8; type Port (line 16) | pub struct Port(pub Val); method new (line 127) | pub fn new(tag: Tag, val: Val) -> Self { method get_tag (line 131) | pub fn get_tag(&self) -> Tag { method get_val (line 135) | pub fn get_val(&self) -> Val { method is_nod (line 139) | pub fn is_nod(&self) -> bool { method is_var (line 143) | pub fn is_var(&self) -> bool { method get_rule (line 147) | pub fn get_rule(a: Port, b: Port) -> Rule { method should_swap (line 162) | pub fn should_swap(a: Port, b: Port) -> bool { method is_high_priority (line 166) | pub fn is_high_priority(rule: Rule) -> bool { method adjust_port (line 170) | pub fn adjust_port(&self, tm: &TMem) -> Port { method show (line 1009) | pub fn show(&self) -> String { type Pair (line 19) | pub struct Pair(pub u64); method new (line 185) | pub fn new(fst: Port, snd: Port) -> Self { method get_fst (line 189) | pub fn get_fst(&self) -> Port { method get_snd (line 193) | pub fn get_snd(&self) -> Port { method adjust_pair (line 197) | pub fn adjust_pair(&self, tm: &TMem) -> Pair { method set_par_flag (line 203) | pub fn set_par_flag(&self) -> Self { method get_par_flag (line 213) | pub fn get_par_flag(&self) -> bool { method show (line 1025) | pub fn show(&self) -> String { type AVal (line 22) | pub type AVal = AtomicU32; type APort (line 23) | pub struct APort(pub AVal); type APair (line 24) | pub struct APair(pub AtomicU64); type Numb (line 27) | pub struct Numb(pub Val); method new_sym (line 227) | pub fn new_sym(val: Tag) -> Self { method get_sym (line 231) | pub fn get_sym(&self) -> Tag { method new_u24 (line 237) | pub fn new_u24(val: u32) -> Self { method get_u24 (line 241) | pub fn get_u24(&self) -> u32 { method new_i24 (line 247) | pub fn new_i24(val: i32) -> Self { method get_i24 (line 251) | pub fn get_i24(&self) -> i32 { method new_f24 (line 257) | pub fn new_f24(val: f32) -> Self { method get_f24 (line 268) | pub fn get_f24(&self) -> f32 { method get_typ (line 273) | pub fn get_typ(&self) -> Tag { method is_num (line 277) | pub fn is_num(&self) -> bool { method is_cast (line 281) | pub fn is_cast(&self) -> bool { method partial (line 286) | pub fn partial(a: Self, b: Self) -> Self { method cast (line 298) | pub fn cast(a: Self, b: Self) -> Self { method operate (line 316) | pub fn operate(a: Self, b: Self) -> Self { constant U24_MAX (line 28) | const U24_MAX : u32 = (1 << 24) - 1; constant U24_MIN (line 29) | const U24_MIN : u32 = 0; constant I24_MAX (line 30) | const I24_MAX : i32 = (1 << 23) - 1; constant I24_MIN (line 31) | const I24_MIN : i32 = (-1) << 23; constant VAR (line 34) | pub const VAR : Tag = 0x0; constant REF (line 35) | pub const REF : Tag = 0x1; constant ERA (line 36) | pub const ERA : Tag = 0x2; constant NUM (line 37) | pub const NUM : Tag = 0x3; constant CON (line 38) | pub const CON : Tag = 0x4; constant DUP (line 39) | pub const DUP : Tag = 0x5; constant OPR (line 40) | pub const OPR : Tag = 0x6; constant SWI (line 41) | pub const SWI : Tag = 0x7; constant LINK (line 44) | pub const LINK : Rule = 0x0; constant CALL (line 45) | pub const CALL : Rule = 0x1; constant VOID (line 46) | pub const VOID : Rule = 0x2; constant ERAS (line 47) | pub const ERAS : Rule = 0x3; constant ANNI (line 48) | pub const ANNI : Rule = 0x4; constant COMM (line 49) | pub const COMM : Rule = 0x5; constant OPER (line 50) | pub const OPER : Rule = 0x6; constant SWIT (line 51) | pub const SWIT : Rule = 0x7; constant TY_SYM (line 54) | pub const TY_SYM : Tag = 0x00; constant TY_U24 (line 55) | pub const TY_U24 : Tag = 0x01; constant TY_I24 (line 56) | pub const TY_I24 : Tag = 0x02; constant TY_F24 (line 57) | pub const TY_F24 : Tag = 0x03; constant OP_ADD (line 58) | pub const OP_ADD : Tag = 0x04; constant OP_SUB (line 59) | pub const OP_SUB : Tag = 0x05; constant FP_SUB (line 60) | pub const FP_SUB : Tag = 0x06; constant OP_MUL (line 61) | pub const OP_MUL : Tag = 0x07; constant OP_DIV (line 62) | pub const OP_DIV : Tag = 0x08; constant FP_DIV (line 63) | pub const FP_DIV : Tag = 0x09; constant OP_REM (line 64) | pub const OP_REM : Tag = 0x0A; constant FP_REM (line 65) | pub const FP_REM : Tag = 0x0B; constant OP_EQ (line 66) | pub const OP_EQ : Tag = 0x0C; constant OP_NEQ (line 67) | pub const OP_NEQ : Tag = 0x0D; constant OP_LT (line 68) | pub const OP_LT : Tag = 0x0E; constant OP_GT (line 69) | pub const OP_GT : Tag = 0x0F; constant OP_AND (line 70) | pub const OP_AND : Tag = 0x10; constant OP_OR (line 71) | pub const OP_OR : Tag = 0x11; constant OP_XOR (line 72) | pub const OP_XOR : Tag = 0x12; constant OP_SHL (line 73) | pub const OP_SHL : Tag = 0x13; constant FP_SHL (line 74) | pub const FP_SHL : Tag = 0x14; constant OP_SHR (line 75) | pub const OP_SHR : Tag = 0x15; constant FP_SHR (line 76) | pub const FP_SHR : Tag = 0x16; constant FREE (line 79) | pub const FREE : Port = Port(0x0); constant ROOT (line 80) | pub const ROOT : Port = Port(0xFFFFFFF8); constant NONE (line 81) | pub const NONE : Port = Port(0xFFFFFFFF); type RBag (line 84) | pub struct RBag { method new (line 421) | pub fn new() -> Self { method push_redex (line 428) | pub fn push_redex(&mut self, redex: Pair) { method pop_redex (line 437) | pub fn pop_redex(&mut self) -> Option { method len (line 445) | pub fn len(&self) -> usize { method has_highs (line 449) | pub fn has_highs(&self) -> bool { method show (line 1031) | pub fn show(&self) -> String { type GNet (line 90) | pub struct GNet<'a> { type TMem (line 99) | pub struct TMem { method new (line 545) | pub fn new(tid: u32, tids: u32) -> Self { method node_alloc (line 559) | pub fn node_alloc(&mut self, net: &GNet, num: usize) -> usize { method vars_alloc (line 575) | pub fn vars_alloc(&mut self, net: &GNet, num: usize) -> usize { method get_resources (line 591) | pub fn get_resources(&mut self, net: &GNet, _need_rbag: usize, need_no... method link (line 598) | pub fn link(&mut self, net: &GNet, a: Port, b: Port) { method link_pair (line 635) | pub fn link_pair(&mut self, net: &GNet, ab: Pair) { method interact_link (line 641) | pub fn interact_link(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact_call (line 654) | pub fn interact_call(&mut self, net: &GNet, a: Port, b: Port, book: &B... method interact_void (line 700) | pub fn interact_void(&mut self, _net: &GNet, _a: Port, _b: Port) -> bo... method interact_eras (line 705) | pub fn interact_eras(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact_anni (line 729) | pub fn interact_anni(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact_comm (line 756) | pub fn interact_comm(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact_oper (line 797) | pub fn interact_oper(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact_swit (line 829) | pub fn interact_swit(&mut self, net: &GNet, a: Port, b: Port) -> bool { method interact (line 860) | pub fn interact(&mut self, net: &GNet, book: &Book) -> bool { method evaluator (line 909) | pub fn evaluator(&mut self, net: &GNet, book: &Book) { type Def (line 112) | pub struct Def { type Book (line 122) | pub struct Book { method to_buffer (line 958) | pub fn to_buffer(&self, buf: &mut Vec) { method show (line 1077) | pub fn show(&self) -> String { function new (line 455) | pub fn new(nlen: usize, vlen: usize) -> Self { function node_create (line 465) | pub fn node_create(&self, loc: usize, val: Pair) { function vars_create (line 469) | pub fn vars_create(&self, var: usize, val: Port) { function node_load (line 473) | pub fn node_load(&self, loc: usize) -> Pair { function vars_load (line 477) | pub fn vars_load(&self, var: usize) -> Port { function node_store (line 481) | pub fn node_store(&self, loc: usize, val: Pair) { function vars_store (line 485) | pub fn vars_store(&self, var: usize, val: Port) { function node_exchange (line 489) | pub fn node_exchange(&self, loc: usize, val: Pair) -> Pair { function vars_exchange (line 493) | pub fn vars_exchange(&self, var: usize, val: Port) -> Port { function node_take (line 497) | pub fn node_take(&self, loc: usize) -> Pair { function vars_take (line 501) | pub fn vars_take(&self, var: usize) -> Port { function is_node_free (line 505) | pub fn is_node_free(&self, loc: usize) -> bool { function is_vars_free (line 509) | pub fn is_vars_free(&self, var: usize) -> bool { function enter (line 513) | pub fn enter(&self, mut var: Port) -> Port { method drop (line 532) | fn drop(&mut self) { function show (line 1048) | pub fn show(&self) -> String { function test_f24 (line 1161) | fn test_f24() { FILE: src/main.rs function hvm_c (line 14) | fn hvm_c(book_buffer: *const u32); function hvm_cu (line 19) | fn hvm_cu(book_buffer: *const u32); function main (line 22) | fn main() { function run (line 160) | pub fn run(book: &hvm::Book) { FILE: src/run.c type Ctr (line 7) | typedef struct Ctr { type Tup (line 14) | typedef struct Tup { type Str (line 21) | typedef struct Str { type Bytes (line 27) | typedef struct Bytes { type IOError (line 53) | typedef struct IOError { function Ctr (line 67) | Ctr readback_ctr(Net* net, Book* book, Port port) { function Tup (line 102) | extern Tup readback_tup(Net* net, Book* book, Port port, u32 size) { function Bytes (line 123) | Bytes readback_bytes(Net* net, Book* book, Port port) { function Str (line 169) | Str readback_str(Net* net, Book* book, Port port) { function Port (line 184) | Port inject_nil(Net* net) { function Port (line 201) | Port inject_cons(Net* net, Port head, Port tail) { function Port (line 224) | Port inject_bytes(Net* net, Bytes *bytes) { function Port (line 249) | Port inject_ok(Net* net, Port val) { function Port (line 272) | Port inject_err(Net* net, Port err) { function Port (line 295) | Port inject_io_err(Net* net, IOError err) { function Port (line 338) | Port inject_io_err_type(Net* net) { function Port (line 347) | Port inject_io_err_name(Net* net) { function Port (line 356) | Port inject_io_err_inner(Net* net, Port val) { function Port (line 367) | Port inject_io_err_str(Net* net, char* err) { function FILE (line 392) | FILE* readback_file(Port port) { function Port (line 433) | Port io_read(Net* net, Book* book, Port argm) { function Port (line 467) | Port io_open(Net* net, Book* book, Port argm) { function Port (line 500) | Port io_close(Net* net, Book* book, Port argm) { function Port (line 519) | Port io_write(Net* net, Book* book, Port argm) { function Port (line 547) | Port io_flush(Net* net, Book* book, Port argm) { function Port (line 569) | Port io_seek(Net* net, Book* book, Port argm) { function Port (line 602) | Port io_get_time(Net* net, Book* book, Port argm) { function Port (line 620) | Port io_sleep(Net* net, Book* book, Port argm) { function Port (line 647) | Port io_dl_open(Net* net, Book* book, Port argm) { function Port (line 681) | Port io_dl_call(Net* net, Book* book, Port argm) { function Port (line 703) | Port io_dl_close(Net* net, Book* book, Port argm) { function book_init (line 722) | void book_init(Book* book) { function do_run_io (line 740) | void do_run_io(Net* net, Book* book, Port port) { FILE: tests/run.rs function test_run_programs (line 16) | fn test_run_programs() { function test_run_examples (line 21) | fn test_run_examples() { function test_dir (line 25) | fn test_dir(dir: &Path) { function manifest_relative (line 29) | fn manifest_relative(sub: &str) -> PathBuf { function test_file (line 33) | fn test_file(path: &Path) { function test_io_file (line 67) | fn test_io_file(path: &Path) { function execute_hvm (line 79) | fn execute_hvm(args: &[&OsStr], send_io: bool) -> Result Result { function normalize_vars (line 135) | fn normalize_vars(tree: &mut Tree, vars: &mut HashMap) {