PN 25 core/asm.c PNAsm *potion_asm_put(Potion *P, PNAsm * volatile asmb, PN val, size_t len) { PN 34 core/asm.c else if (len == sizeof(PN)) PN 35 core/asm.c *((PN *)ptr) = val; PN 98 core/asm.h #define ASM(ins) *asmp = potion_asm_put(P, *asmp, (PN)(ins), sizeof(u8)) PN 99 core/asm.h #define ASM2(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), 2) PN 100 core/asm.h #define ASMI(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), sizeof(int)) PN 101 core/asm.h #define ASMN(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), sizeof(PN)) PN 106 core/asm.h PNAsm *potion_asm_put(Potion *, PNAsm *, PN, size_t); PN 35 core/ast.c PN potion_source(Potion *P, u8 p, PN a, PN b, PN c, int lineno, PN line) { PN 38 core/ast.c vPN(Source) t = PN_ALLOC_N(PN_TSOURCE, struct PNSource, 0 * sizeof(PN)); PN 58 core/ast.c return (PN)t; PN 64 core/ast.c static PN potion_source_size(Potion *P, PN cl, PN self) { PN 71 core/ast.c static PN potion_source_name(Potion *P, PN cl, PN self) { PN 79 core/ast.c static PN potion_source_file(Potion *P, PN cl, PN self) { PN 87 core/ast.c static PN potion_source_lineno(Potion *P, PN cl, PN self) { PN 95 core/ast.c static PN potion_source_line(Potion *P, PN cl, PN self) { PN 103 core/ast.c static PN potion_source_string(Potion *P, PN cl, PN self) { PN 106 core/ast.c PN out = potion_byte_str(P, potion_ast_names[t->part]); PN 120 core/ast.c potion_bytes_obj_string(P, out, (PN)t->a[i]); PN 123 core/ast.c potion_bytes_obj_string(P, out, (PN)t->a[i]); PN 149 core/ast.c static PN potion_source_loc(Potion *P, PN cl, PN self) { PN 150 core/ast.c PN out = potion_byte_str(P, ""); PN 158 core/ast.c PN src_vt = PN_VTABLE(PN_TSOURCE); PN 10 core/ast.h PN v; ///< args PN 11 core/ast.h PN b; ///< block PN 33 core/ast.h #define PN_S(S, N) (PN)(((struct PNSource *)S)->a[N]) PN 35 core/ast.h PN endname = B; \ PN 45 core/ast.h PN potion_source(Potion *, u8, PN, PN, PN, int, PN); PN 18 core/callcc.c PN potion_continuation_yield(Potion *P, PN cl, PN self) { PN 20 core/callcc.c PN *start, *end, *sp1 = P->mem->cstack; PN 22 core/callcc.c start = (PN *)cc->stack[0]; PN 23 core/callcc.c end = (PN *)cc->stack[1]; PN 25 core/callcc.c start = (PN *)cc->stack[1]; PN 26 core/callcc.c end = (PN *)cc->stack[0]; PN 29 core/callcc.c if ((PN)sp1 != cc->stack[0]) { PN 38 core/callcc.c cc->stack[3] = (PN)cc; PN 102 core/callcc.c PN potion_callcc(Potion *P, PN cl, PN self) { PN 105 core/callcc.c PN *start, *sp1 = P->mem->cstack, *sp2, *sp3; PN 127 core/callcc.c cc = PN_ALLOC_N(PN_TCONT, struct PNCont, sizeof(PN) * (n + 3 + PN_SAVED_REGS)); PN 129 core/callcc.c cc->stack[0] = (PN)sp1; PN 130 core/callcc.c cc->stack[1] = (PN)sp2; PN 131 core/callcc.c cc->stack[2] = (PN)sp3; PN 151 core/callcc.c PN *s = start + 1; PN 152 core/callcc.c PN *d = cc->stack + 4 + PN_SAVED_REGS; PN 158 core/callcc.c PN_MEMCPY_N((char *)(cc->stack + 4 + PN_SAVED_REGS), start + 1, PN, n - 1); PN 165 core/callcc.c return (PN)cc; PN 170 core/callcc.c PN cnt_vt = PN_VTABLE(PN_TCONT); PN 26 core/compile.c #define PN_ASM1(ins, _a) f->asmb = (PN)potion_asm_op(P, (PNAsm *)f->asmb, (u8)ins, (int)_a, 0) PN 27 core/compile.c #define PN_ASM2(ins, _a, _b) f->asmb = (PN)potion_asm_op(P, (PNAsm *)f->asmb, (u8)ins, (int)_a, (int)_b) PN 48 core/compile.c PN potion_proto_tree(Potion *P, PN cl, PN self) { PN 55 core/compile.c PN potion_proto_call(Potion *P, PN cl, PN self, PN args) { PN 60 core/compile.c PN potion_sig_string(Potion *P, PN cl, PN sig) { PN 61 core/compile.c PN out = potion_byte_str(P, ""); PN 68 core/compile.c PN v = (PN)t->set[i]; PN 98 core/compile.c PN potion_proto_string(Potion *P, PN cl, PN self) { PN 103 core/compile.c PN out = potion_byte_str(P, "; function definition"); PN 189 core/compile.c PN test = PN_S(PN_TUPLE_AT(PN_S(t->a[n],0), 0), 0); \ PN 199 core/compile.c PN block = potion_send(blk, PN_compile, (PN)f, sig); \ PN 248 core/compile.c PN_SIZE num = PN_PUT(f->debugs, (PN)t); PN 269 core/compile.c void potion_arg_asmb(Potion *P, struct PNProto * volatile f, struct PNLoop *loop, PN args, u8 *reg, int inc) { PN 340 core/compile.c PN e = PN_S(t,0); PN 355 core/compile.c if (!PN_IS_PTR(a) && (PN)a == (PN)op.a) { PN 360 core/compile.c PN tpl = PN_S(msg, 0); PN 364 core/compile.c PN key = PN_S(PN_TUPLE_AT(a->a[1]->a[0], 0), 0); PN 381 core/compile.c PN k = PN_S(key, 0); PN 405 core/compile.c PN_SIZE num = PN_PUT(f->values, (PN)a); PN 457 core/compile.c PN rhs = PN_TUPLE_AT(f->locals, num); PN 458 core/compile.c PN fname = PN_S(lhs,0); PN 640 core/compile.c PN ctor = PN_S(blk, 0); PN 645 core/compile.c PN_BLOCK(breg, (PN)blk, PN_S(t,1)); PN 652 core/compile.c PN msg = PN_S(t,1); PN 668 core/compile.c cl->tree = (PN)t; PN 669 core/compile.c cl->asmb = (PN)potion_asm_new(P); PN 672 core/compile.c PN sig = PN_TUPLE_LEN(msg) ? PN_TUPLE_AT(msg, 1) : PN_TUP0(); PN 678 core/compile.c PN arg = PN_TUPLE_AT(sig, i); PN 695 core/compile.c cl->asmb = (PN)potion_asm_op(P, (PNAsm *)cl->asmb, OP_RETURN, reg, 0); PN 696 core/compile.c PN_ASM2(OP_PROTO, reg, PN_PUT(f->protos, (PN)cl)); PN 756 core/compile.c PN v = PN_S(t,0); PN 942 core/compile.c PN potion_sig_compile(Potion *P, vPN(Proto) f, PN src) { PN 943 core/compile.c PN sig = PN_TUP0(); PN 955 core/compile.c PN name = 0; PN 959 core/compile.c PN v = PN_S(lhs,0); PN 971 core/compile.c PN name2 = 0; PN 996 core/compile.c PN v = PN_NUM(PN_STR_PTR(PN_S(rhs,0))[0]); // = type. TODO: one-char => VTABLE PN 1004 core/compile.c PN v = PN_NUM(PN_STR_PTR((PN)SRC_TUPLE_AT(lhs,0)->a[0])[0]); // = type. TODO: one-char => VTABLE PN 1012 core/compile.c PN v = PN_S(SRC_TUPLE_AT(rhs,0),0); PN 1018 core/compile.c PN v = PN_S(rhs,0); PN 1039 core/compile.c PN potion_source_compile(Potion *P, PN cl, PN self, PN source, PN sig) { PN 1060 core/compile.c f->asmb = (PN)potion_asm_new(P); PN 1069 core/compile.c return (PN)f; PN 1075 core/compile.c PN potion_proto_clone(Potion *P, PN cl, PN self) { PN 1078 core/compile.c PN PN_clone = PN_STR("clone"); PN 1080 core/compile.c PN len; PN 1102 core/compile.c n->asmb = (PN)asmb; PN 1104 core/compile.c return (PN)n; PN 1108 core/compile.c #define READ_PN(pn, ptr) ({PN rpn = *(PN *)ptr; ptr += pn; rpn;}) PN 1110 core/compile.c PN val = READ_PN(pn, ptr); \ PN 1127 core/compile.c PN tup = potion_tuple_with_size(P, (PN_SIZE)count); \ PN 1134 core/compile.c READ_TUPLE(ptr) PN_TUPLE_AT(tup, i) = potion_proto_load(P, (PN)f, pn, &(ptr)); \ PN 1139 core/compile.c PN potion_proto_load(Potion *P, PN up, u8 pn, u8 **ptr) { PN 1140 core/compile.c PN len = 0; PN 1161 core/compile.c f->asmb = (PN)asmb; PN 1166 core/compile.c return (PN)f; PN 1171 core/compile.c PN potion_source_load(Potion *P, PN cl, PN buf) { PN 1185 core/compile.c #define WRITE_PN(pn, ptr) ({*(PN *)ptr = pn; ptr += sizeof(PN);}) PN 1188 core/compile.c PN count = (PN_STR_LEN(val)+1) << 4; \ PN 1193 core/compile.c PN str = potion_num_string(P, PN_NIL, val); \ PN 1194 core/compile.c PN count = ((PN_STR_LEN(str)+1) << 4) | 2; \ PN 1199 core/compile.c PN cval = (PN_IS_PTR(val) ? PN_NIL : val); \ PN 1221 core/compile.c long potion_proto_dumpbc(Potion *P, PN proto, PN out, long pos) { PN 1244 core/compile.c PN potion_source_dumpbc(Potion *P, PN cl, PN proto, PN options) { PN 1245 core/compile.c PN pnb = potion_bytes(P, 8192); PN 1252 core/compile.c h.pn = (u8)sizeof(PN); PN 1265 core/compile.c PN potion_source_dump(Potion *P, PN cl, PN self, PN backend, PN options) { PN 1283 core/compile.c PN potion_run(Potion *P, PN code, int jit) { PN 1291 core/compile.c PN cl = potion_closure_new(P, (PN_F)potion_jit_proto(P, code), PN_NIL, 1); PN 1299 core/compile.c PN potion_eval(Potion *P, PN bytes) { PN 1300 core/compile.c PN code = (PN_TYPE(bytes) == PN_TSOURCE) PN 1309 core/compile.c PN pro_vt = PN_VTABLE(PN_TPROTO); PN 1310 core/compile.c PN src_vt = PN_VTABLE(PN_TSOURCE); PN 39 core/file.c PN potion_file_new(Potion *P, PN cl, PN self, PN path, PN modestr) { PN 70 core/file.c PN potion_file_with_fd(Potion *P, PN cl, PN self, PN fd) { PN 81 core/file.c return (PN)file; PN 87 core/file.c PN potion_file_close(Potion *P, PN cl, pn_file self) { PN 98 core/file.c PN potion_file_read(Potion *P, PN cl, pn_file self, PN n) { PN 117 core/file.c PN potion_file_write(Potion *P, PN cl, pn_file self, PN obj) { PN 154 core/file.c PN potion_file_print(Potion *P, PN cl, pn_file self, PN obj) { PN 155 core/file.c PN r = potion_file_write(P, cl, self, potion_send(obj, PN_string)); PN 161 core/file.c PN potion_file_string(Potion *P, PN cl, pn_file self) { PN 164 core/file.c PN str; PN 181 core/file.c PN potion_lobby_read(Potion *P, PN cl, PN self) { PN 190 core/file.c PN file_vt = PN_VTABLE(PN_TFILE); PN 192 core/file.c PN pe = potion_table_empty(P); PN 167 core/gc.c PN v = (PN)*storead; PN 173 core/gc.c while ((PN)scanptr < (PN)M->old_cur) PN 226 core/gc.c M->old_cur = scanptr = newold + (sizeof(PN) * 2); PN 233 core/gc.c while ((PN)protptr < (PN)M->protect) PN 237 core/gc.c while ((PN)scanptr < (PN)M->old_cur) PN 321 core/gc.c (((struct PNVtable *)PN_VTABLE(ptr->vt))->ivlen * sizeof(PN)); PN 345 core/gc.c sz = sizeof(struct PNClosure) + (PN_CLOSURE(ptr)->extra * sizeof(PN)); PN 348 core/gc.c sz = sizeof(struct PNTuple) + (sizeof(PN) * ((struct PNTuple *)ptr)->alloc); PN 369 core/gc.c sz = sizeof(struct PNTable) + kh_mem(PN, ptr); PN 381 core/gc.c sz = sizeof(struct PNCont) + (((struct PNCont *)ptr)->len * sizeof(PN)); PN 408 core/gc.c ((struct PNFwd *)ptr)->ptr = (PN)dst; PN 443 core/gc.c struct PNTuple * volatile t = (struct PNTuple *)potion_fwd((PN)ptr); PN 497 core/gc.c GC_MINOR_UPDATE_TABLE(PN, (struct PNTable *)potion_fwd((PN)ptr), 1); PN 549 core/gc.c struct PNTuple * volatile t = (struct PNTuple *)potion_fwd((PN)ptr); PN 614 core/gc.c GC_MAJOR_UPDATE_TABLE(PN, (struct PNTable *)potion_fwd((PN)ptr), 1); PN 714 core/gc.c PN potion_gc_actual(Potion *P, PN cl, PN self) PN 724 core/gc.c PN potion_gc_fixed(Potion *P, PN cl, PN self) PN 732 core/gc.c PN potion_gc_reserved(Potion *P, PN cl, PN self) PN 30 core/gc.h M->t##_cur = p + (sizeof(PN) * 2); \ PN 71 core/gc.h PN _pnv = potion_fwd((_PN)p); \ PN 79 core/gc.h PN _pnv = potion_fwd((_PN)p); \ PN 90 core/gc.h PN v1 = kh_key(name, kh, k); \ PN 94 core/gc.h PN v2 = kh_val(name, kh, k); \ PN 105 core/gc.h PN v1 = kh_key(name, kh, k); \ PN 109 core/gc.h PN v2 = kh_val(name, kh, k); \ PN 121 core/gc.h PN v = kh_key(str, P->strings, k); \ PN 136 core/gc.h PN v = kh_key(str, P->strings, k); \ PN 14 core/internal.c PN PN_allocate, PN_break, PN_call, PN_class, PN_compile, PN_continue, PN_def, PN 17 core/internal.c PN PN_add, PN_sub, PN_mult, PN_div, PN_rem, PN_bitn, PN_bitl, PN_bitr; PN 18 core/internal.c PN PN_cmp, PN_number, PN_name, PN_length, PN_size, PN_STR0; PN 19 core/internal.c PN PN_extern, PN_integer; PN 21 core/internal.c PN PN_use, PN_no; PN 23 core/internal.c PN pn_filenames; PN 25 core/internal.c PN potion_allocate(Potion *P, PN cl, PN self, PN len) { PN 28 core/internal.c return (PN)obj; PN 32 core/internal.c PN vtable, obj_vt, num_vt; PN 137 core/internal.c PN potion_delegated(Potion *P, PN closure, PN self) { PN 143 core/internal.c PN potion_call(Potion *P, PN cl, PN_SIZE argc, PN * volatile argv) { PN 195 core/internal.c PNType potion_kind_of(PN obj) { PN 232 core/internal.c PN potion_error(Potion *P, PN msg, long lineno, long charno, PN excerpt) { PN 238 core/internal.c return (PN)e; PN 241 core/internal.c PN potion_error_string(Potion *P, PN cl, PN self) { PN 251 core/internal.c PN err_vt = PN_VTABLE(PN_TERROR); PN 255 core/internal.c PN potion_io_error(Potion *P, const char *msg) { PN 260 core/internal.c static inline char *potion_type_name(Potion *P, PN obj) { PN 269 core/internal.c PN potion_type_error(Potion *P, PN obj) { PN 273 core/internal.c PN potion_type_error_want(Potion *P, const char *param, PN obj, const char *type) { PN 291 core/internal.c PN out = potion_bytes(P, 36); PN 306 core/internal.c void potion_p(Potion *P, PN x) { PN 312 core/internal.c PN x; PN 317 core/internal.c void potion_dump(Potion *P, PN data) { PN 318 core/internal.c PN pd = potion_send(data, PN_string); PN 319 core/internal.c PN pt = potion_send(PN_VTABLE(PN_TYPE(data)), PN_string); PN 328 core/internal.c PN *end, *ebp, *start = P->mem->cstack; PN 140 core/internal.h PN potion_vm_eq(Potion *, PN, PN); PN 141 core/internal.h PN potion_vm_neq(Potion *, PN, PN); PN 11 core/lick.c PN potion_lick(Potion *P, PN name, PN inner, PN attr) { PN 16 core/lick.c return (PN)lk; PN 22 core/lick.c PN potion_lick_attr(Potion *P, PN cl, PN self) { PN 29 core/lick.c PN potion_lick_licks(Potion *P, PN cl, PN self) { PN 30 core/lick.c PN licks = ((struct PNLick *)self)->inner; PN 38 core/lick.c PN potion_lick_name(Potion *P, PN cl, PN self) { PN 45 core/lick.c PN potion_lick_text(Potion *P, PN cl, PN self) { PN 46 core/lick.c PN text = ((struct PNLick *)self)->inner; PN 54 core/lick.c PN potion_lick_string(Potion *P, PN cl, PN self) { PN 55 core/lick.c PN out = potion_byte_str(P, ""); PN 69 core/lick.c PN lk_vt = PN_VTABLE(PN_TLICK); PN 16 core/load.c static PN potion_load_code(Potion *P, const char *filename) { PN 17 core/load.c PN buf, code; PN 20 core/load.c PN result = PN_NIL; PN 64 core/load.c static PN potion_load_dylib(Potion *P, const char *filename) { PN 86 core/load.c static PN pn_loader_path; PN 155 core/load.c PN potion_load(Potion *P, PN cl, PN self, PN file) { PN 160 core/load.c PN result = PN_NIL; PN 183 core/load.c void potion_loader_add(Potion *P, PN path) { PN 163 core/mt19937ar.c PN potion_srand(Potion *P, PN cl, PN self, PN seed) { PN 173 core/mt19937ar.c PN potion_rand(Potion *P, PN cl, PN self) { PN 182 core/mt19937ar.c PN potion_num_rand(Potion *P, PN cl, PN self) { PN 17 core/number.c PN potion_double(Potion *P, double v) { PN 20 core/number.c return (PN)d; PN 24 core/number.c PN potion_strtod(Potion *P, char *str, int len) { PN 33 core/number.c PN potion_num_pow(Potion *P, PN cl, PN self, PN sup) { PN 43 core/number.c static PN potion_num_sqrt(Potion *P, PN cl, PN self) { PN 66 core/number.c static PN potion_num_add(Potion *P, PN cl, PN self, PN num) { PN 74 core/number.c static PN potion_num_sub(Potion *P, PN cl, PN self, PN num) { PN 82 core/number.c static PN potion_num_mult(Potion *P, PN cl, PN self, PN num) { PN 90 core/number.c static PN potion_num_div(Potion *P, PN cl, PN self, PN num) { PN 98 core/number.c static PN potion_num_rem(Potion *P, PN cl, PN self, PN num) { PN 109 core/number.c static PN potion_num_bitn(Potion *P, PN cl, PN self) { PN 112 core/number.c return (PN)potion_double(P, 0.0); PN 119 core/number.c static PN potion_num_bitl(Potion *P, PN cl, PN self, PN num) { PN 122 core/number.c return (PN)potion_double(P, 0.0); PN 129 core/number.c static PN potion_num_bitr(Potion *P, PN cl, PN self, PN num) { PN 132 core/number.c return (PN)potion_double(P, 0.0); PN 139 core/number.c static PN potion_int_add(Potion *P, PN cl, PN self, PN num) { PN_INT_MATH(+) } PN 144 core/number.c static PN potion_int_sub(Potion *P, PN cl, PN self, PN num) { PN_INT_MATH(-) } PN 149 core/number.c static PN potion_int_mult(Potion *P, PN cl, PN self, PN num) { PN_INT_MATH(*) } PN 154 core/number.c static PN potion_int_div(Potion *P, PN cl, PN self, PN num) { PN_INT_MATH(/) } PN 160 core/number.c static PN potion_int_rem(Potion *P, PN cl, PN self, PN num) { PN_INT_MATH(%) } PN 165 core/number.c static PN potion_int_bitn(Potion *P, PN cl, PN self) { PN 173 core/number.c static PN potion_int_bitl(Potion *P, PN cl, PN self, PN num) { PN 181 core/number.c static PN potion_int_bitr(Potion *P, PN cl, PN self, PN num) { PN 187 core/number.c PN potion_int_string(Potion *P, PN cl, PN self) { PN 196 core/number.c static PN potion_num_number(Potion *P, PN cl, PN self) { PN 202 core/number.c static PN potion_num_double(Potion *P, PN cl, PN self) { PN 211 core/number.c static PN potion_num_integer(Potion *P, PN cl, PN self) { PN 221 core/number.c static PN potion_dbl_add(Potion *P, PN cl, PN self, PN num) { PN_DBL_MATH(+) } PN 226 core/number.c static PN potion_dbl_sub(Potion *P, PN cl, PN self, PN num) { PN_DBL_MATH(-) } PN 231 core/number.c static PN potion_dbl_mult(Potion *P, PN cl, PN self, PN num) { PN_DBL_MATH(*) } PN 236 core/number.c static PN potion_dbl_div(Potion *P, PN cl, PN self, PN num) { PN_DBL_MATH(/) } PN 241 core/number.c PN potion_dbl_string(Potion *P, PN cl, PN self) { PN 252 core/number.c PN potion_num_string(Potion *P, PN cl, PN self) { PN 282 core/number.c static PN potion_int_times(Potion *P, PN cl, PN self, PN block) { PN 299 core/number.c static PN potion_int_to(Potion *P, PN cl, PN self, PN end, PN block) { PN 317 core/number.c static PN potion_int_step(Potion *P, PN cl, PN self, PN end, PN step, PN block) { PN 333 core/number.c static PN potion_int_chr(Potion *P, PN cl, PN self) { PN 341 core/number.c static PN potion_num_is_number(Potion *P, PN cl, PN self) { PN 347 core/number.c static PN potion_num_is_integer(Potion *P, PN cl, PN self) { PN 353 core/number.c static PN potion_num_is_double(Potion *P, PN cl, PN self) { PN 359 core/number.c static PN potion_num_abs(Potion *P, PN cl, PN self) { PN 364 core/number.c return (PN) potion_double(P, -d); PN 373 core/number.c static PN potion_int_abs(Potion *P, PN cl, PN self) { PN 380 core/number.c static PN potion_dbl_abs(Potion *P, PN cl, PN self) { PN 384 core/number.c return (PN) potion_double(P, -d); PN 396 core/number.c static PN potion_num_cmp(Potion *P, PN cl, PN self, PN n) { PN 415 core/number.c static PN potion_dbl_cmp(Potion *P, PN cl, PN self, PN n) { PN 430 core/number.c static PN potion_int_cmp(Potion *P, PN cl, PN self, PN n) { PN 440 core/number.c PN num_vt = PN_VTABLE(PN_TNUMBER); PN 441 core/number.c PN dbl_vt = PN_VTABLE(PN_TDOUBLE); PN 442 core/number.c PN int_vt = PN_VTABLE(PN_TINTEGER); PN 17 core/objmodel.c PN potion_closure_new(Potion *P, PN_F meth, PN sig, PN_SIZE extra) { PN 18 core/objmodel.c PN_SIZE i; PN cr; PN 19 core/objmodel.c vPN(Closure) c = PN_ALLOC_N(PN_TCLOSURE, struct PNClosure, extra * sizeof(PN)); PN 33 core/objmodel.c cr = (PN)c; PN 42 core/objmodel.c PN potion_closure_code(Potion *P, PN cl, PN self) { PN 52 core/objmodel.c PN potion_closure_string(Potion *P, PN cl, PN self, PN maxlen) { PN 53 core/objmodel.c PN out = potion_byte_str(P, "function"); PN 64 core/objmodel.c PN potion_closure_arity(Potion *P, PN cl, PN self) { PN 71 core/objmodel.c PN potion_closure_minargs(Potion *P, PN cl, PN self) { PN 82 core/objmodel.c int potion_sig_arity(Potion *P, PN sig) { PN 90 core/objmodel.c PN v = (PN)t->set[i]; PN 93 core/objmodel.c if (PN_IS_INT(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 107 core/objmodel.c int potion_sig_minargs(Potion *P, PN sig) { PN 114 core/objmodel.c PN v = (PN)t->set[i]; PN 131 core/objmodel.c PN potion_sig_at(Potion *P, PN sig, int index) { PN 132 core/objmodel.c PN result = PN_NIL; PN 139 core/objmodel.c PN v = (PN)t->set[i]; PN 141 core/objmodel.c if (PN_IS_INT(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 144 core/objmodel.c if (i+1 < t->len && PN_IS_INT((PN)t->set[i+1])) { PN 145 core/objmodel.c PN typ = (PN)t->set[i+1]; PN 148 core/objmodel.c result = potion_tuple_push(P, result, (PN)t->set[i+2]); PN 165 core/objmodel.c PN potion_sig_name_at(Potion *P, PN sig, int index) { PN 172 core/objmodel.c PN v = (PN)t->set[i]; PN 174 core/objmodel.c if (PN_IS_INT(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 189 core/objmodel.c PN potion_no_call(Potion *P, PN cl, PN self) { PN 202 core/objmodel.c PN_VTABLE(meta->type) = (PN)meta; PN 207 core/objmodel.c PN potion_type_new(Potion *P, PNType t, PN self) { PN 214 core/objmodel.c PN_VTABLE(t) = (PN)vt; PN 216 core/objmodel.c return (PN)vt; PN 219 core/objmodel.c PN potion_type_new2(Potion *P, PNType t, PN self, PN name) { PN 222 core/objmodel.c return (PN)vt; PN 225 core/objmodel.c void potion_type_call_is(PN vt, PN cl) { PN 229 core/objmodel.c PN potion_obj_get_call(Potion *P, PN obj) { PN 230 core/objmodel.c PN cl = ((struct PNVtable *)PN_VTABLE(PN_TYPE(obj)))->call; PN 235 core/objmodel.c void potion_type_callset_is(PN vt, PN cl) { PN 239 core/objmodel.c PN potion_obj_get_callset(Potion *P, PN obj) { PN 240 core/objmodel.c PN cl = ((struct PNVtable *)PN_VTABLE(PN_TYPE(obj)))->callset; PN 245 core/objmodel.c void potion_type_constructor_is(PN vt, PN cl) { PN 252 core/objmodel.c PN potion_class(Potion *P, PN cl, PN self, PN ivars) { PN 253 core/objmodel.c PN parent = ((!self || self == P->lobby) ? PN_VTABLE(PN_TOBJECT) : self); PN 254 core/objmodel.c PN pvars = ((struct PNVtable *)parent)->ivars; PN 275 core/objmodel.c PN potion_class_find(Potion *P, PN name) { PN 280 core/objmodel.c return (PN)vt; PN 285 core/objmodel.c PNType potion_class_type(Potion *P, PN class) { PN 290 core/objmodel.c PN potion_ivars(Potion *P, PN cl, PN self, PN ivars) { PN 305 core/objmodel.c static inline long potion_obj_find_ivar(Potion *P, PN self, PN ivar) { PN 312 core/objmodel.c PN ivars = ((struct PNVtable *)PN_VTABLE(t))->ivars; PN 314 core/objmodel.c PN found = potion_tuple_bsearch(P, 0, ivars, ivar); PN 322 core/objmodel.c PN potion_obj_get(Potion *P, PN cl, PN self, PN ivar) { PN 329 core/objmodel.c PN potion_obj_set(Potion *P, PN cl, PN self, PN ivar, PN value) { PN 338 core/objmodel.c PN potion_proto_method(Potion *P, PN cl, PN self, PN args) { PN 342 core/objmodel.c PN potion_getter_method(Potion *P, PN cl, PN self) { PN 346 core/objmodel.c PN potion_def_method(Potion *P, PN closure, PN self, PN key, PN method) { PN 348 core/objmodel.c PN cl; PN 351 core/objmodel.c unsigned k = kh_put(PN, vt->methods, key, &ret); PN 369 core/objmodel.c kh_val(PN, vt->methods, k) = method; PN 391 core/objmodel.c PN potion_lookup(Potion *P, PN closure, PN self, PN key) { PN 397 core/objmodel.c unsigned k = kh_get(PN, vt->methods, key); PN 398 core/objmodel.c if (k != kh_end(vt->methods)) return kh_val(PN, vt->methods, k); PN 403 core/objmodel.c PN potion_bind(Potion *P, PN rcv, PN msg) { PN 404 core/objmodel.c PN closure = PN_NIL; PN 405 core/objmodel.c PN vt = PN_NIL; PN 409 core/objmodel.c vt = (PN)((struct PNVtable *)rcv)->meta; PN 423 core/objmodel.c PN potion_message(Potion *P, PN rcv, PN msg) { PN 424 core/objmodel.c PN cl = potion_bind(P, rcv, msg); PN 430 core/objmodel.c PN potion_obj_add(Potion *P, PN a, PN b) { PN 434 core/objmodel.c PN potion_obj_sub(Potion *P, PN a, PN b) { PN 438 core/objmodel.c PN potion_obj_mult(Potion *P, PN a, PN b) { PN 442 core/objmodel.c PN potion_obj_div(Potion *P, PN a, PN b) { PN 446 core/objmodel.c PN potion_obj_rem(Potion *P, PN a, PN b) { PN 450 core/objmodel.c PN potion_obj_bitn(Potion *P, PN a) { PN 454 core/objmodel.c PN potion_obj_bitl(Potion *P, PN a, PN b) { PN 458 core/objmodel.c PN potion_obj_bitr(Potion *P, PN a, PN b) { PN 467 core/objmodel.c PN potion_ref(Potion *P, PN data) { PN 471 core/objmodel.c return (PN)ref; PN 477 core/objmodel.c PN potion_ref_string(Potion *P, PN cl, PN self, PN len) { PN 484 core/objmodel.c PN potion_object_string(Potion *P, PN cl, vPN(Object) self) { PN 487 core/objmodel.c PN str = potion_byte_str2(P, NULL, 0); PN 488 core/objmodel.c pn_printf(P, str, "<%s %lx>", PN_STR_PTR(vt->name), (PN)self); PN 498 core/objmodel.c PN potion_object_forward(Potion *P, PN cl, PN self, PN method) { PN 508 core/objmodel.c PN potion_object_send(Potion *P, PN cl, PN self, PN method) { PN 516 core/objmodel.c PN potion_object_new(Potion *P, PN cl, PN self) { PN 522 core/objmodel.c return (PN)PN_ALLOC_N(vt->type, struct PNObject, PN 523 core/objmodel.c potion_type_size(P, (struct PNObject *)self) - sizeof(struct PNObject) + vt->ivlen * sizeof(PN)); PN 527 core/objmodel.c PN potion_object_size(Potion *P, PN cl, PN self) { PN 529 core/objmodel.c return sizeof(struct PNObject) + (((struct PNVtable *)PN_VTABLE(obj->vt))->ivlen * sizeof(PN)); PN 534 core/objmodel.c PN potion_lobby_isa(Potion *P, PN cl, PN self, vPN(Vtable) vtable) { PN 538 core/objmodel.c if (!PN_TYPECHECK(t1)) return potion_type_error(P, (PN)vtable); PN 546 core/objmodel.c PN potion_object_subclass(Potion *P, PN cl, PN self, vPN(Vtable) vtable) { PN 564 core/objmodel.c PN potion_get_metaclass(Potion *P, PN cl, vPN(Vtable) self) { PN 565 core/objmodel.c return (PN)self->meta; PN 571 core/objmodel.c static PN potion_lobby_self(Potion *P, PN cl, PN self) { PN 578 core/objmodel.c PN potion_lobby_string(Potion *P, PN cl, PN self) { PN 579 core/objmodel.c PN str = ((struct PNVtable *)self)->name; PN 587 core/objmodel.c PN potion_lobby_kind(Potion *P, PN cl, PN self) { PN 596 core/objmodel.c PN potion_lobby_can(Potion *P, PN cl, PN self, PN method) { PN 602 core/objmodel.c PN potion_lobby_print(Potion *P, PN cl, PN self) { PN 608 core/objmodel.c PN potion_lobby_say(Potion *P, PN cl, PN self) { PN 614 core/objmodel.c static void potion_init_class_reference(Potion *P, PN name, PN vt) { PN 622 core/objmodel.c void potion_define_global(Potion *P, PN name, PN val) { PN 633 core/objmodel.c PN potion_about(Potion *P, PN cl, PN self) { PN 634 core/objmodel.c PN about = potion_table_empty(P); PN 658 core/objmodel.c PN potion_exit(Potion *P, PN cl, PN self) { PN 664 core/objmodel.c PN clo_vt = PN_VTABLE(PN_TCLOSURE); PN 665 core/objmodel.c PN ref_vt = PN_VTABLE(PN_TWEAK); PN 666 core/objmodel.c PN obj_vt = PN_VTABLE(PN_TOBJECT); PN 707 core/objmodel.c PN mixin_vt = PN_VTABLE(PN_TVTABLE); PN 55 core/potion.c (int)sizeof(PN), (int)sizeof(struct PNObject), (int)sizeof(struct PNTuple), PN 56 core/potion.c (int)(sizeof(PN) + sizeof(struct PNTuple)), (int)sizeof(struct PNTable)); PN 74 core/potion.c static PN potion_cmd_exec(Potion *P, PN buf, char *filename, char *compile, char *addcode) { PN 77 core/potion.c PN code = PN_NIL; PN 139 core/potion.c PN val; PN 140 core/potion.c PN cl = potion_closure_new(P, (PN_F)potion_jit_proto(P, code), PN_NIL, 1); PN 165 core/potion.c PN opts; PN 217 core/potion.c void *scanptr = (void *)((char *)P->mem->old_lo + (sizeof(PN) * 2)); PN 218 core/potion.c while ((PN)scanptr < (PN)P->mem->old_cur) { PN 232 core/potion.c if ((PN)scanptr > (PN)P->mem->old_cur) { PN 249 core/potion.c PN out = potion_bytes(P, 0); PN 268 core/potion.c PN buf = PN_NIL; PN 389 core/potion.c PN args = PN_TUP0(); PN 401 core/potion.c PN args = PN_TUP0(); PN 132 core/potion.h #define vPN(t) struct PN##t * volatile PN 133 core/potion.h #define PN_TYPE(x) potion_type((PN)(x)) PN 139 core/potion.h #define PN_NIL ((PN)0) PN 140 core/potion.h #define PN_ZERO ((PN)1) //i.e. PN_NUM(0) PN 141 core/potion.h #define PN_FALSE ((PN)2) PN 142 core/potion.h #define PN_TRUE ((PN)6) PN 155 core/potion.h #define PN_TEST(v) ((PN)(v) != PN_FALSE && (PN)(v) != PN_NIL) PN 159 core/potion.h #define PN_IS_PTR(v) (!PN_IS_INT(v) && ((PN)(v) & PN_REF_MASK)) PN 160 core/potion.h #define PN_IS_NIL(v) ((PN)(v) == PN_NIL) PN 161 core/potion.h #define PN_IS_BOOL(v) ((PN)(v) & PN_FBOOLEAN) PN 162 core/potion.h #define PN_IS_INT(v) ((PN)(v) & PN_FINTEGER) PN 163 core/potion.h #define PN_IS_DBL(v) (PN_IS_PTR(v) && ({PNType _t = potion_qptr_type((PN)v); _t == PN_TNUMBER || _t == PN_TDOUBLE;})) PN 165 core/potion.h #define PN_IS_TUPLE(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TTUPLE)) PN 166 core/potion.h #define PN_IS_STR(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TSTRING)) PN 167 core/potion.h #define PN_IS_TABLE(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TTABLE)) PN 168 core/potion.h #define PN_IS_CLOSURE(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TCLOSURE)) PN 169 core/potion.h #define PN_IS_PROTO(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TPROTO)) PN 170 core/potion.h #define PN_IS_REF(v) (PN_IS_PTR(v) && (potion_ptr_type((PN)v) == PN_TWEAK)) PN 175 core/potion.h #define PN_CHECK_STR(obj) if (!PN_IS_STR(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "String") PN 176 core/potion.h #define PN_CHECK_STRB(obj) if (!PN_IS_STR(obj) || (PN_TYPE(obj) != PN_TBYTES)) return potion_type_error_want(P, ""#obj, (PN)obj, "String or Bytes") PN 177 core/potion.h #define PN_CHECK_NUM(obj) if (!PN_IS_NUM(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Number") PN 178 core/potion.h #define PN_CHECK_INT(obj) if (!PN_IS_INT(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Integer") PN 179 core/potion.h #define PN_CHECK_DBL(obj) if (!PN_IS_DBL(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Double") PN 180 core/potion.h #define PN_CHECK_BOOL(obj) if (!PN_IS_BOOL(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Bool") PN 181 core/potion.h #define PN_CHECK_TUPLE(obj) if (!PN_IS_TUPLE(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Tuple") PN 182 core/potion.h #define PN_CHECK_CLOSURE(obj) if (!PN_IS_CLOSURE(obj)) return potion_type_error_want(P, ""#obj, (PN)obj, "Closure") PN 184 core/potion.h #define PN_CHECK_TYPE(obj,type) if (type != PN_TYPE(obj)) return potion_type_error(P, (PN)obj) PN 204 core/potion.h #define PN_NUM(i) ((PN)((((long)(i))<<1) + PN_FINTEGER)) PN 207 core/potion.h typedef _PN (*PN_F)(Potion *, PN, PN, ...); PN 222 core/potion.h #define PN_TOUCH(x) potion_gc_update(P, (PN)(x)) PN 263 core/potion.h #define PN_PUSH(T, X) potion_tuple_push(P, T, (PN)X) ///<\memberof PNTuple PN 267 core/potion.h #define PN_GET_TUPLE(t) ((struct PNTuple *)potion_fwd((PN)t)) ///<\memberof PNTuple PN 284 core/potion.h PN V = __t##V->set[I]; \ PN 297 core/potion.h PN ivars[]; PN 307 core/potion.h PN ptr; PN 364 core/potion.h PN path; PN 375 core/potion.h PN sig; ///< signature PNTuple PN 379 core/potion.h PN name; /// PNString PN 380 core/potion.h PN data[]; ///< code PN 438 core/potion.h PN line; ///< PNString of src line PN 447 core/potion.h PN source; ///< program name or enclosing scope PN 448 core/potion.h PN sig; ///< argument signature PN 449 core/potion.h PN stack; ///< size of the stack PN 450 core/potion.h PN paths; ///< paths (instance variables) PN 451 core/potion.h PN locals; ///< local variables PN 452 core/potion.h PN upvals; ///< variables in upper scopes PN 453 core/potion.h PN values; ///< numbers, strings, etc. PN 454 core/potion.h PN protos; ///< nested closures PN 455 core/potion.h PN debugs; ///< tree parts PN 456 core/potion.h PN tree; ///< abstract syntax tree PN 458 core/potion.h PN asmb; ///< assembled instructions PN 461 core/potion.h PN name; ///< PNString PN 472 core/potion.h PN set[]; PN 481 core/potion.h PN data; PN 490 core/potion.h PN parent; PN 491 core/potion.h PN message; PN 492 core/potion.h PN line, chr; PN 493 core/potion.h PN excerpt; PN 501 core/potion.h PN name; ///< PNString PN 502 core/potion.h PN attr; ///< PN PN 503 core/potion.h PN inner; ///< "licks" PNTuple or "text" PNString member PN 513 core/potion.h PN stack[]; // [0] = head of potion stack PN 520 core/potion.h static inline PN potion_fwd(PN); PN 523 core/potion.h static inline PNType potion_type(PN obj) { PN 540 core/potion.h static inline PNType potion_ptr_type(PN obj) { PN 555 core/potion.h static inline PNType potion_qptr_type(PN obj) { PN 556 core/potion.h PN_QUICK_FWD(PN, obj); PN 561 core/potion.h static inline PN potion_fwd(PN obj) { PN 568 core/potion.h static inline char *potion_str_ptr(PN s) { PN 575 core/potion.h PN_FLEX(PNFlex, PN); PN 597 core/potion.h void (*ivars) (Potion *, PN, PNAsm * volatile *); PN 648 core/potion.h PN lobby; ///< root namespace PN 652 core/potion.h PN call, callset; ///< generic call and setter PN 656 core/potion.h PN input, source; ///< parser input and output (AST) PN 659 core/potion.h PN line; ///< currently parsed line (for debug) PN 661 core/potion.h PN unclosed; ///< used by parser for named block endings PN 684 core/potion.h PN __##x = 0x571FF; void *x = (void *)&__##x PN 719 core/potion.h static inline void potion_gc_update(Potion *P, PN x) { PN 721 core/potion.h if ((x > (PN)M->birth_lo && x < (PN)M->birth_hi && (x < (PN)M || x >= (PN)M->protect)) || PN 722 core/potion.h x == (PN)M->birth_storeptr[1] || PN 723 core/potion.h x == (PN)M->birth_storeptr[2] || PN 724 core/potion.h x == (PN)M->birth_storeptr[3]) PN 746 core/potion.h ((struct PNFwd *)obj)->ptr = (PN)dst; PN 747 core/potion.h potion_gc_update(P, (PN)obj); PN 773 core/potion.h PN r = (PN)(RCV); \ PN 774 core/potion.h PN c = potion_bind(P, r, (MSG)); \ PN 786 core/potion.h extern PN PN_allocate, PN_break, PN_call, PN_class, PN_compile, PN 790 core/potion.h extern PN PN_add, PN_sub, PN_mult, PN_div, PN_rem, PN_bitn, PN_bitl, PN_bitr; PN 791 core/potion.h extern PN PN_cmp, PN_number, PN_name, PN_length, PN_size, PN_STR0; PN 792 core/potion.h extern PN PN_extern, PN_integer; PN 793 core/potion.h extern PN pn_filenames; PN 796 core/potion.h static inline PN potion_type_default(char type) { PN 808 core/potion.h PN potion_error(Potion *, PN, long, long, PN); PN 811 core/potion.h PN potion_io_error(Potion *, const char *); PN 812 core/potion.h PN potion_type_error(Potion *, PN); PN 813 core/potion.h PN potion_type_error_want(Potion *, const char *, PN, const char *); PN 816 core/potion.h PNType potion_kind_of(PN); PN 817 core/potion.h void potion_p(Potion *, PN); PN 818 core/potion.h PN potion_str(Potion *, const char *); PN 819 core/potion.h PN potion_str2(Potion *, char *, size_t); PN 820 core/potion.h PN potion_strcat(Potion *P, char *str, char *str2); PN 821 core/potion.h PN potion_str_add(Potion *P, PN, PN, PN); PN 822 core/potion.h PN potion_str_format(Potion *, const char *, ...) PN 824 core/potion.h PN potion_byte_str(Potion *, const char *); PN 825 core/potion.h PN potion_byte_str2(Potion *, const char *, size_t len); PN 826 core/potion.h PN potion_bytes(Potion *, size_t); PN 827 core/potion.h PN potion_bytes_string(Potion *, PN, PN); PN 828 core/potion.h PN_SIZE pn_printf(Potion *, PN, const char *, ...) PN 830 core/potion.h void potion_bytes_obj_string(Potion *, PN, PN); PN 831 core/potion.h PN potion_bytes_append(Potion *, PN, PN, PN); PN 832 core/potion.h void potion_release(Potion *, PN); PN 833 core/potion.h PN potion_def_method(Potion *P, PN, PN, PN, PN); PN 834 core/potion.h PN potion_type_new(Potion *, PNType, PN); PN 835 core/potion.h PN potion_type_new2(Potion *, PNType, PN, PN); PN 836 core/potion.h void potion_type_call_is(PN, PN); PN 837 core/potion.h void potion_type_callset_is(PN, PN); PN 838 core/potion.h void potion_type_constructor_is(PN, PN); PN 840 core/potion.h PN potion_class(Potion *, PN, PN, PN); PN 841 core/potion.h PN potion_ivars(Potion *, PN, PN, PN); PN 842 core/potion.h PN potion_obj_get_call(Potion *, PN); PN 843 core/potion.h PN potion_obj_get_callset(Potion *, PN); PN 844 core/potion.h PN potion_obj_get(Potion *, PN, PN, PN); PN 845 core/potion.h PN potion_obj_set(Potion *, PN, PN, PN, PN); PN 846 core/potion.h PN potion_object_new(Potion *, PN, PN); PN 847 core/potion.h PN potion_delegated(Potion *, PN, PN); PN 848 core/potion.h PN potion_call(Potion *, PN, PN_SIZE, PN * volatile); PN 849 core/potion.h PN potion_lookup(Potion *, PN, PN, PN); PN 850 core/potion.h PN potion_bind(Potion *, PN, PN); PN 851 core/potion.h PN potion_message(Potion *, PN, PN); PN 852 core/potion.h PN potion_closure_new(Potion *, PN_F, PN, PN_SIZE); PN 853 core/potion.h PN potion_callcc(Potion *, PN, PN); PN 854 core/potion.h PN potion_ref(Potion *, PN); PN 855 core/potion.h PN potion_sig(Potion *, char *); PN 856 core/potion.h int potion_sig_find(Potion *, PN, PN); PN 857 core/potion.h PN potion_double(Potion *, double); PN 858 core/potion.h PN potion_strtod(Potion *, char *, int); PN 859 core/potion.h PN potion_num_pow(Potion *, PN, PN, PN); PN 860 core/potion.h PN potion_num_rand(Potion *, PN, PN); PN 861 core/potion.h PN potion_srand(Potion *, PN, PN, PN); PN 862 core/potion.h PN potion_rand(Potion *, PN, PN); PN 863 core/potion.h PN potion_sig_at(Potion *, PN, int); PN 864 core/potion.h PN potion_sig_name_at(Potion *, PN, int); PN 865 core/potion.h int potion_sig_arity(Potion *, PN); PN 866 core/potion.h int potion_sig_minargs(Potion *, PN); PN 867 core/potion.h PN potion_closure_arity(Potion *, PN, PN); PN 868 core/potion.h PN potion_closure_minargs(Potion *, PN, PN); PN 869 core/potion.h void potion_define_global(Potion *, PN, PN); PN 871 core/potion.h PN potion_obj_add(Potion *, PN, PN); PN 872 core/potion.h PN potion_obj_sub(Potion *, PN, PN); PN 873 core/potion.h PN potion_obj_mult(Potion *, PN, PN); PN 874 core/potion.h PN potion_obj_div(Potion *, PN, PN); PN 875 core/potion.h PN potion_obj_rem(Potion *, PN, PN); PN 876 core/potion.h PN potion_obj_bitn(Potion *, PN); PN 877 core/potion.h PN potion_obj_bitl(Potion *, PN, PN); PN 878 core/potion.h PN potion_obj_bitr(Potion *, PN, PN); PN 879 core/potion.h PN potion_any_cmp(Potion *, PN, PN, PN); PN 881 core/potion.h PN potion_tuple_empty(Potion *); PN 882 core/potion.h PN potion_tuple_with_size(Potion *, unsigned long); PN 883 core/potion.h PN potion_tuple_new(Potion *, PN); PN 884 core/potion.h PN potion_tuple_push(Potion *, PN, PN); PN 885 core/potion.h PN_SIZE potion_tuple_push_unless(Potion *, PN, PN); PN 886 core/potion.h PN_SIZE potion_tuple_find(Potion *, PN, PN); PN 887 core/potion.h PN potion_tuple_at(Potion *, PN, PN, PN); PN 888 core/potion.h PN potion_tuple_shift(Potion *, PN, PN); PN 889 core/potion.h PN potion_tuple_bsearch(Potion *, PN, PN, PN); PN 890 core/potion.h PN potion_tuple_ins_sort(Potion *, PN, PN, PN); PN 891 core/potion.h PN potion_table_empty(Potion *); PN 892 core/potion.h PN potion_table_put(Potion *, PN, PN, PN, PN); PN 893 core/potion.h PN potion_table_set(Potion *, PN, PN, PN); PN 894 core/potion.h PN potion_table_at(Potion *, PN, PN, PN); PN 895 core/potion.h PN potion_lick(Potion *, PN, PN, PN); PN 896 core/potion.h PN potion_source_compile(Potion *, PN, PN, PN, PN); PN 897 core/potion.h PN potion_source_load(Potion *, PN, PN); PN 898 core/potion.h PN potion_source_dump(Potion *, PN, PN, PN, PN); PN 899 core/potion.h PN potion_source_dumpbc(Potion *, PN, PN, PN); PN 900 core/potion.h PN potion_greg_parse(Potion *, PN); PN 901 core/potion.h PN potion_sig_string(Potion *, PN, PN); PN 902 core/potion.h PN potion_filename_find(Potion *, PN); PN 903 core/potion.h PN potion_filename_push(Potion *, PN); PN 922 core/potion.h void potion_loader_add(Potion *, PN path); PN 923 core/potion.h PN potion_load(Potion *, PN, PN, PN); PN 934 core/potion.h PN potion_num_string(Potion *, PN, PN); PN 935 core/potion.h PN potion_gc_reserved(Potion *, PN, PN); PN 936 core/potion.h PN potion_gc_actual(Potion *, PN, PN); PN 937 core/potion.h PN potion_gc_fixed(Potion *, PN, PN); PN 939 core/potion.h PN potion_parse(Potion *, PN, char*); PN 940 core/potion.h PN potion_vm_proto(Potion *, PN, PN, ...); PN 941 core/potion.h PN potion_vm_class(Potion *, PN, PN); PN 942 core/potion.h PN potion_vm(Potion *, PN, PN, PN, PN_SIZE, PN * volatile); PN 943 core/potion.h PN potion_eval(Potion *, PN); PN 944 core/potion.h PN potion_run(Potion *, PN, int); PN 945 core/potion.h PN_F potion_jit_proto(Potion *, PN); PN 947 core/potion.h PN potion_class_find(Potion *, PN); PN 948 core/potion.h PNType potion_class_type(Potion *, PN); PN 14 core/primitive.c static PN potion_nil_is_nil(Potion *P, PN closure, PN self) { PN 18 core/primitive.c static PN potion_any_is_nil(Potion *P, PN closure, PN self) { PN 26 core/primitive.c PN potion_any_cmp(Potion *P, PN cl, PN self, PN value) { PN 33 core/primitive.c static PN potion_nil_cmp(Potion *P, PN cl, PN self, PN value) { PN 49 core/primitive.c static PN potion_bool_cmp(Potion *P, PN cl, PN self, PN value) { PN 65 core/primitive.c static PN potion_bool_number(Potion *P, PN closure, PN self) { PN 72 core/primitive.c static PN potion_bool_string(Potion *P, PN closure, PN self) { PN 78 core/primitive.c PN nil_vt = PN_VTABLE(PN_TNIL); PN 79 core/primitive.c PN boo_vt = PN_VTABLE(PN_TBOOLEAN); PN 20 core/string.c void potion_add_str(Potion *P, PN s) { PN 26 core/string.c PN potion_lookup_str(Potion *P, const char *str) { PN 33 core/string.c PN potion_str(Potion *P, const char *str) { PN 34 core/string.c PN val = potion_lookup_str(P, str); PN 41 core/string.c potion_add_str(P, (PN)s); PN 42 core/string.c val = (PN)s; PN 47 core/string.c PN potion_str2(Potion *P, char *str, size_t len) { PN 48 core/string.c PN exist = PN_NIL; PN 58 core/string.c potion_add_str(P, (PN)s); PN 59 core/string.c exist = (PN)s; PN 64 core/string.c PN potion_strcat(Potion *P, char *str, char *str2) { PN 65 core/string.c PN exist = PN_NIL; PN 75 core/string.c potion_add_str(P, (PN)s); PN 76 core/string.c exist = (PN)s; PN 81 core/string.c PN potion_str_format(Potion *P, const char *format, ...) { PN 95 core/string.c return (PN)s; PN 100 core/string.c static PN potion_str_length(Potion *P, PN cl, PN self) { PN 106 core/string.c static PN potion_str_eval(Potion *P, PN cl, PN self) { PN 112 core/string.c static PN potion_str_number(Potion *P, PN cl, PN self) { PN 133 core/string.c static PN potion_str_string(Potion *P, PN cl, PN self) { PN 139 core/string.c static PN potion_str_clone(Potion *P, PN cl, PN self) { PN 146 core/string.c static PN potion_str_print(Potion *P, PN cl, PN self) { PN 220 core/string.c inline static PN potion_str_slice_index(PN index, size_t len, int nilvalue) { PN 243 core/string.c static PN potion_str_slice(Potion *P, PN cl, PN self, PN start, PN end) { PN 271 core/string.c static PN potion_str_bytes(Potion *P, PN cl, PN self) { PN 279 core/string.c PN potion_str_add(Potion *P, PN cl, PN self, PN x) { PN 281 core/string.c PN str; PN 295 core/string.c static PN potion_str_at(Potion *P, PN cl, PN self, PN index) { PN 315 core/string.c static PN potion_str_ord(Potion *P, PN cl, PN self, PN index) { PN 331 core/string.c PN potion_byte_str(Potion *P, const char *str) { PN 335 core/string.c PN potion_byte_str2(Potion *P, const char *str, size_t len) { PN 339 core/string.c return (PN)s; PN 342 core/string.c PN potion_bytes(Potion *P, size_t len) { PN 347 core/string.c return (PN)s; PN 353 core/string.c PN potion_bytes_clone(Potion *P, PN cl, PN self) { PN 358 core/string.c return (PN)s; PN 361 core/string.c PN_SIZE pn_printf(Potion *P, PN bytes, const char *format, ...) { PN 384 core/string.c void potion_bytes_obj_string(Potion *P, PN bytes, PN obj) { PN 392 core/string.c PN potion_bytes_append(Potion *P, PN cl, PN self, PN str) { PN 394 core/string.c PN fstr = potion_fwd(str); PN 412 core/string.c static PN potion_bytes_length(Potion *P, PN cl, PN self) { PN 413 core/string.c PN str = potion_fwd(self); PN 420 core/string.c PN potion_bytes_string(Potion *P, PN cl, PN self) { PN 421 core/string.c PN exist = potion_lookup_str(P, PN_STR_PTR(self = potion_fwd(self))); PN 427 core/string.c potion_add_str(P, (PN)s); PN 428 core/string.c exist = (PN)s; PN 435 core/string.c static PN potion_bytes_print(Potion *P, PN cl, PN self) { PN 447 core/string.c static PN potion_bytes_each(Potion *P, PN cl, PN self, PN block) { PN 461 core/string.c static PN potion_bytes_at(Potion *P, PN cl, PN self, PN index) { PN 479 core/string.c static PN potion_str_cmp(Potion *P, PN cl, PN self, PN str) { PN 492 core/string.c PN str_vt = PN_VTABLE(PN_TSTRING); PN 493 core/string.c PN byt_vt = PN_VTABLE(PN_TBYTES); PN 24 core/syntax.y #define YYSTYPE PN PN 58 core/syntax.y static PN yylastline(struct _GREG *G, int pos); PN 273 core/syntax.y q1 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 335 core/syntax.y q2 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 382 core/syntax.y PN potion_parse(Potion *P, PN code, char *filename) { PN 385 core/syntax.y PN oldinput = P->input; PN 386 core/syntax.y PN oldsource = P->source; PN 440 core/syntax.y PN potion_sig(Potion *P, char *fmt) { PN 441 core/syntax.y PN out = PN_NIL; PN 447 core/syntax.y PN oldinput = P->input; PN 448 core/syntax.y PN oldsource = P->source; PN 469 core/syntax.y int potion_sig_find(Potion *P, PN cl, PN name) PN 472 core/syntax.y PN sig; PN 483 core/syntax.y PN prev = PN_NIL; PN 495 core/syntax.y static PN yylastline(struct _GREG *G, int pos) { PN 17 core/table.c vPN(Tuple) t = PN_ALLOC_N(PN_TTUPLE, struct PNTuple, size * sizeof(PN)); \ PN 23 core/table.c PN potion_table_string(Potion *P, PN cl, PN self) { PN 26 core/table.c PN out = potion_byte_str(P, "("); PN 29 core/table.c if (kh_exist(PN, t, k)) { PN 31 core/table.c potion_bytes_obj_string(P, out, kh_key(PN, t, k)); PN 33 core/table.c potion_bytes_obj_string(P, out, kh_val(PN, t, k)); PN 42 core/table.c PN potion_table_empty(Potion *P) { PN 43 core/table.c return (PN)PN_ALLOC_N(PN_TTABLE, struct PNTable, 0); PN 47 core/table.c PN potion_table_cast(Potion *P, PN self) { PN 52 core/table.c k = kh_put(PN, t, PN_NUM(i), &ret); PN 54 core/table.c kh_val(PN, t, k) = v; PN 58 core/table.c ((struct PNFwd *)self)->ptr = (PN)t; PN 60 core/table.c self = (PN)t; PN 70 core/table.c PN potion_table_at(Potion *P, PN cl, PN self, PN key) { PN 73 core/table.c unsigned k = kh_get(PN, t, key); PN 74 core/table.c if (k != kh_end(t)) return kh_val(PN, t, k); PN 82 core/table.c PN potion_table_each(Potion *P, PN cl, PN self, PN block) { PN 87 core/table.c if (kh_exist(PN, t, k)) { PN 88 core/table.c PN_CLOSURE(block)->method(P, block, P->lobby, kh_key(PN, t, k), kh_val(PN, t, k)); PN 98 core/table.c PN potion_table_put(Potion *P, PN cl, PN self, PN key, PN value) { PN 102 core/table.c unsigned k = kh_put(PN, t, key, &ret); PN 104 core/table.c kh_val(PN, t, k) = value; PN 113 core/table.c PN potion_table_remove(Potion *P, PN cl, PN self, PN key) { PN 116 core/table.c unsigned k = kh_get(PN, t, key); PN 117 core/table.c if (k != kh_end(t)) kh_del(PN, t, k); PN 126 core/table.c PN potion_table_set(Potion *P, PN self, PN key, PN value) { PN 134 core/table.c PN potion_table_length(Potion *P, PN cl, PN self) { PN 141 core/table.c PN potion_table_clone(Potion *P, PN cl, PN self) { PN 148 core/table.c if (kh_exist(PN, t, k)) { PN 149 core/table.c unsigned key = kh_put(PN, t2, kh_key(PN, t, k), &ret); PN 152 core/table.c kh_val(PN, t2, key) = kh_val(PN, t, k); PN 155 core/table.c return (PN)t2; PN 169 core/table.c PN potion_table_slice(Potion *P, PN cl, PN self, PN keys) { PN 181 core/table.c unsigned k = kh_get(PN, t, v); PN 184 core/table.c unsigned k2 = kh_put(PN, t2, v, &ret); PN 187 core/table.c kh_val(PN, t2, k2) = kh_val(PN, t, k); PN 191 core/table.c return (PN)t2; PN 200 core/table.c PN potion_table_keys(Potion *P, PN cl, PN self) { PN 206 core/table.c if (kh_exist(PN, t, k)) { PN 207 core/table.c PN_TUPLE_AT(t2, i++) = kh_key(PN, t, k); PN 210 core/table.c return (PN)t2; PN 219 core/table.c PN potion_table_values(Potion *P, PN cl, PN self) { PN 225 core/table.c if (kh_exist(PN, t, k)) { PN 226 core/table.c PN_TUPLE_AT(t2, i++) = kh_val(PN, t, k); PN 229 core/table.c return (PN)t2; PN 235 core/table.c PN potion_tuple_empty(Potion *P) { PN 239 core/table.c return (PN)t; PN 242 core/table.c PN potion_tuple_with_size(Potion *P, unsigned long size) { PN 244 core/table.c return (PN)t; PN 247 core/table.c PN potion_tuple_new(Potion *P, PN value) { PN 251 core/table.c return (PN)t; PN 254 core/table.c PN potion_tuple_push(Potion *P, PN tuple, PN value) { PN 258 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->alloc + 3)); // overalloc by 2 PN 271 core/table.c PN potion_tuple_append(Potion *P, PN cl, PN self, PN value) { PN 280 core/table.c PN_SIZE potion_tuple_find(Potion *P, PN tuple, PN value) { PN 290 core/table.c PN_SIZE potion_tuple_push_unless(Potion *P, PN tuple, PN value) { PN 309 core/table.c PN potion_tuple_at(Potion *P, PN cl, PN self, PN index) { PN 321 core/table.c PN potion_tuple_clone(Potion *P, PN cl, PN self) { PN 325 core/table.c PN_MEMCPY_N(t2->set, t1->set, PN, t1->len); PN 328 core/table.c return (PN)t2; PN 347 core/table.c PN potion_tuple_slice(Potion *P, PN cl, PN self, PN start, PN end) { PN 372 core/table.c PN_MEMCPY_N(&t2->set[0], &t1->set[i], PN, l); PN 375 core/table.c return (PN)t2; PN 383 core/table.c PN potion_tuple_each(Potion *P, PN cl, PN self, PN block) { PN 398 core/table.c PN potion_tuple_first(Potion *P, PN cl, PN self) { PN 408 core/table.c PN potion_tuple_join(Potion *P, PN cl, PN self, PN sep) { PN 410 core/table.c PN out = potion_byte_str(P, ""); PN 421 core/table.c PN potion_tuple_last(Potion *P, PN cl, PN self) { PN 431 core/table.c PN potion_tuple_string(Potion *P, PN cl, PN self) { PN 434 core/table.c PN out = potion_byte_str(P, "("); PN 450 core/table.c PN potion_tuple_pop(Potion *P, PN cl, PN self) { PN 453 core/table.c PN obj = t->set[t->len - 1]; PN 454 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->len - 1)); PN 466 core/table.c PN potion_tuple_put(Potion *P, PN cl, PN self, PN key, PN value) { PN 485 core/table.c PN potion_tuple_unshift(Potion *P, PN cl, PN self, PN value) { PN 489 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->alloc + 3)); // overalloc by 2 PN 492 core/table.c PN_MEMMOVE_N(&t->set[1], &t->set[0], PN, t->len); PN 503 core/table.c PN potion_tuple_shift(Potion *P, PN cl, PN self) { PN 506 core/table.c PN obj = t->set[0]; PN 507 core/table.c PN_MEMMOVE_N(&t->set[0], &t->set[1], PN, t->len); PN 508 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->len - 1)); PN 517 core/table.c PN potion_tuple_print(Potion *P, PN cl, PN self) { PN 528 core/table.c PN potion_tuple_length(Potion *P, PN cl, PN self) { PN 536 core/table.c PN potion_tuple_reverse(Potion *P, PN cl, PN self) { PN 539 core/table.c PN tuple = potion_tuple_with_size(P, len); PN 559 core/table.c PN potion_tuple_remove(Potion *P, PN cl, PN self, PN index) { PN 564 core/table.c PN data = potion_tuple_clone(P, cl, self); PN 567 core/table.c PN_MEMMOVE_N(&t->set[i], &t->set[i+1], PN, t->len - i); PN 580 core/table.c PN potion_tuple_delete(Potion *P, PN cl, PN self, PN index) { PN 586 core/table.c PN_MEMMOVE_N(&t->set[i], &t->set[i+1], PN, t->len - i); PN 596 core/table.c PN potion_tuple_nreverse(Potion *P, PN cl, PN self) { PN 614 core/table.c PN potion_tuple_bsearch(Potion *P, PN cl, PN self, PN x) { PN 634 core/table.c void potion_sort_internal(Potion *P, PN cl, PN self, ///< sort data PN 637 core/table.c PN cmp) ///< cmp method for 2 values, returning -1,0,1 PN 647 core/table.c PN pivot = GET(index); PN 696 core/table.c static PN potion_tuple_sort(Potion *P, PN cl, PN 697 core/table.c PN self, ///< sort tuple PN 698 core/table.c PN cmp) ///< cmp method for 2 values, returning -1,0,1 PN 700 core/table.c PN data = potion_tuple_clone(P, cl, self); PN 716 core/table.c PN potion_tuple_ins_sort(Potion *P, PN cl, PN self, PN cmp) { PN 774 core/table.c PN potion_tuple_cmp(Potion *P, PN cl, PN self, PN value) { PN 783 core/table.c PN cmp; PN 788 core/table.c PN t1 = potion_tuple_clone(P,cl,self); PN 789 core/table.c PN t2 = potion_tuple_clone(P,cl,value); PN 817 core/table.c PN potion_lobby_list(Potion *P, PN cl, PN self, PN size) { PN 822 core/table.c PN tbl_vt = PN_VTABLE(PN_TTABLE); PN 823 core/table.c PN tpl_vt = PN_VTABLE(PN_TTUPLE); PN 17 core/table.h typedef PN (*PN_MCACHE_FUNC)(unsigned int hash); PN 19 core/table.h typedef PN (*PN_IVAR_FUNC)(PNUniq hash); PN 28 core/table.h PN name; ///< classes/types need to be found by name. \see potion_class_find PN 30 core/table.h PN ivars; ///< PNTuple of all our or the parents inherited vars PN 33 core/table.h PN ctor; ///< store the bound closure (or its parents) PN 34 core/table.h PN call, callset; PN 46 core/table.h KHASH_MAP_INIT_PN(PN, struct PNTable) PN 38 core/vm-arm.c #define RBP(x) (0x18 + (x * sizeof(PN))) PN 135 core/vm-arm.c PN val = PN_TUPLE_AT(f->values, op.b); PN 357 core/vm-arm.c void potion_arm_ivars(Potion *P, PN ivars, PNAsm * volatile *asmp) { PN 37 core/vm-ppc.c #define RBP(x) (0x18 + (x * sizeof(PN))) PN 134 core/vm-ppc.c PN val = PN_TUPLE_AT(f->values, op.b); PN 356 core/vm-ppc.c void potion_ppc_ivars(Potion *P, PN ivars, PNAsm * volatile *asmp) { PN 17 core/vm-x86.c #define RBP(x) (0x100 - ((x + 1) * sizeof(PN))) PN 18 core/vm-x86.c #define RBPN(x) (- (int)((x + 1) * sizeof(PN))) PN 59 core/vm-x86.c ASMI((PN)(x)) PN 62 core/vm-x86.c X86_PRE(); ASM(0xb8); ASMN((PN)(x)); /* movq x, %rax */ \ PN 308 core/vm-x86.c if (rbp > sp - 2 && sp[2] == (PN)P) { PN 309 core/vm-x86.c printf("RBP = 0x%lx (0x%lx), SP = 0x%lx\n", (PN)rbp, *rbp, (PN)sp); PN 332 core/vm-x86.c ASM(0x8b); ASM(0x55); ASM(2 * sizeof(PN)); //mov argn(%ebp), %edx PN 338 core/vm-x86.c ASM(0xc7); ASM(0x44); ASM(0x24); ASM(argn * sizeof(PN)); ASMI(regn); //mov $regn, argn(%esp) PN 344 core/vm-x86.c ASMS("\x89\x54\x24"); ASM(argn * sizeof(PN));//mov %edx, argn(%esp) PN 346 core/vm-x86.c ASM(0x8b); ASM(0x55); ASM(argn * sizeof(PN)); //mov argn(%ebp), %edx PN 404 core/vm-x86.c X86_PRE(); ASMS("\x89\x5c\x24"); ASM((argn - 6) * sizeof(PN)); // mov %rbx N(%rsp) PN 407 core/vm-x86.c X86_PRE(); ASM(0x8b); ASM(0x5d); ASM((argn - 4) * sizeof(PN)); PN 457 core/vm-x86.c int n = sizeof(struct PNClosure) + ((upi + 1) * sizeof(PN)); PN 481 core/vm-x86.c PN potion_f_values(Potion *P, PN cl) { PN 492 core/vm-x86.c + (op.b * sizeof(PN))); // add N,%rax PN 1004 core/vm-x86.c PN sig = potion_sig_at(P, c->sig, i-2); PN 1037 core/vm-x86.c PN potion_f_protos(Potion *P, PN cl, PN i) { PN 1038 core/vm-x86.c PN p = PN_PROTO(PN_CLOSURE(cl)->data[0])->protos; PN 1039 core/vm-x86.c PN proto = PN_TUPLE_AT(p, i); PN 1044 core/vm-x86.c return (PN)c; PN 1050 core/vm-x86.c PN proto = PN_TUPLE_AT(f->protos, op.b); PN 1077 core/vm-x86.c n = sizeof(struct PNClosure) + (sizeof(PN) * (i + 1)); PN 1104 core/vm-x86.c if (kh_exist(PN, vt->methods, k - 1)) { PN 1106 core/vm-x86.c ASMI(PN_UNIQ(kh_key(PN, vt->methods, k - 1))); // cmp NAME %edi PN 1108 core/vm-x86.c X86_PRE(); ASM(0xB8); ASMN(kh_val(PN, vt->methods, k - 1)); // mov CL %rax PN 1122 core/vm-x86.c void potion_x86_ivars(Potion *P, PN ivars, PNAsm * volatile *asmp) { PN 105 core/vm.c static PN (*pn_readline)(Potion *, PN, PN, PN); PN 116 core/vm.c #define STRINGIFY(_obj) ({PN str=potion_send(_obj,PN_string);str?PN_STR_PTR(str):"";}) PN 159 core/vm.c PN potion_vm_proto(Potion *P, PN cl, PN self, ...) { PN 160 core/vm.c PN ary = PN_NIL; PN 175 core/vm.c PN s = potion_sig_at(P, f->sig, i); PN 177 core/vm.c ary = PN_PUSH(ary, va_arg(args, PN)); PN 179 core/vm.c PN arg = va_arg(args, PN); PN 196 core/vm.c return potion_vm(P, (PN)f, self, ary, PN 203 core/vm.c PN potion_vm_class(Potion *P, PN cl, PN self) { PN 206 core/vm.c PN ivars = potion_tuple_with_size(P, PN_TUPLE_LEN(proto->paths)); PN 221 core/vm.c PN_F potion_jit_proto(Potion *P, PN proto) { PN 239 core/vm.c PN proto2 = (PN)tp->set[j]; PN 259 core/vm.c if (((need + 1) * sizeof(PN)) >= 0x7f) PN 264 core/vm.c rsp = (need + protoargs) * sizeof(PN); PN 274 core/vm.c PN v = (PN)t->set[i]; PN 416 core/vm.c PN potion_vm_eq(Potion *P, PN a, PN b) { PN 420 core/vm.c PN_QUICK_FWD(PN, a); PN 427 core/vm.c PN potion_vm_neq(Potion *P, PN a, PN b) { PN 431 core/vm.c PN_QUICK_FWD(PN, a); PN 438 core/vm.c static PN potion_sig_check(Potion *P, struct PNClosure *cl, int arity, int numargs) { PN 456 core/vm.c PN potion_debug(Potion *P, struct PNProto *f, PN self, PN_OP op, PN* reg, PN* stack) { PN 458 core/vm.c PN ast; PN 473 core/vm.c PN flags = (PN)P->flags; P->flags = EXEC_VM; //turn off tracing,debugging,... PN 476 core/vm.c PN debug = potion_message(P, self, PN_STR("debug")); // find debug object =>0 PN 478 core/vm.c PN loopmeth = potion_message(P, debug, PN_STR("loop")); PN 479 core/vm.c PN code = potion_vm_proto(P, (PN)PN_CLOSURE_F(loopmeth), debug, ast, (PN)f); PN 484 core/vm.c PN code = (PN)PN_AST_(CODE, PN 487 core/vm.c PN_AST_(LIST, PN_PUSH(PN_TUP(PN_AST_(MSG, ast)), PN_AST_(MSG, (PN)f)))))))); PN 488 core/vm.c code = potion_send(code, PN_compile, (PN)f, PN_NIL); PN 506 core/vm.c PN fn = PN_TUPLE_AT(pn_filenames, t->loc.fileno); PN 511 core/vm.c PN str = pn_readline(P, self, self, PN_STRN("> ", 2)); PN 539 core/vm.c PN flags = (PN)P->flags; P->flags = (Potion_Flags)EXEC_VM; PN 547 core/vm.c PN oldsig = f->sig; PN 549 core/vm.c PN code = potion_parse(P, potion_send(str, PN_STR("bytes")), "-d"); PN 551 core/vm.c code = potion_send(code, PN_compile, (PN)f, PN_NIL); PN 561 core/vm.c cl = (struct PNClosure *)potion_closure_new(P, (PN_F)potion_vm_proto, (PN)sig, PN 563 core/vm.c cl->data[0] = (PN)f; PN 571 core/vm.c cl->data[i+1] = locals[op.b] = (PN)potion_ref(P, locals[op.b]); PN 579 core/vm.c printf("%s\n", AS_STR(debug_fn(P, (PN)cl, code /*, regs, f->locals, PN 594 core/vm.c PN potion_vm(Potion *P, PN proto, PN self, PN vargs, PN_SIZE upc, PN *upargs) { PN 598 core/vm.c PN stack[STACK_MAX]; PN 599 core/vm.c PN val = PN_NIL; PN 604 core/vm.c PN *args = NULL, *upvals, *locals, *reg; PN 605 core/vm.c PN *current = stack; PN 609 core/vm.c pn_readline = (PN (*)(Potion *, PN, PN, PN))dlsym(RTLD_DEFAULT, "pn_readline"); PN 614 core/vm.c pn_readline = (PN (*)(Potion *, PN, PN, PN))dlsym(handle, "pn_readline"); PN 624 core/vm.c memset((void*)stack, 0, STACK_MAX*sizeof(PN)); PN 649 core/vm.c PN s = potion_sig_name_at(P, f->sig, argx); PN 696 core/vm.c CASE(LOADPN, reg[op.a] = (PN)op.b ) PN 737 core/vm.c PN attr = op.b > op.a ? reg[op.a + 1] : PN_NIL; PN 738 core/vm.c PN inner = op.b > op.a + 1 ? reg[op.b] : PN_NIL; PN 810 core/vm.c PN sig = cl->sig; PN 816 core/vm.c PN err = potion_sig_check(P, cl, arity, numargs); PN 819 core/vm.c PN s = potion_sig_at(P, sig, i); PN 830 core/vm.c PN argt = potion_tuple_with_size(P, (op.b - op.a) - 1); PN 841 core/vm.c PN err = potion_sig_check(P, cl, arity, numargs); PN 844 core/vm.c PN s = potion_sig_at(P, sig, i); PN 856 core/vm.c current[-2] = (PN)f; PN 857 core/vm.c current[-1] = (PN)pos; PN 916 core/vm.c cl->data[i+1] = locals[op.b] = (PN)potion_ref(P, locals[op.b]); PN 921 core/vm.c reg[areg] = (PN)cl; PN 105 lib/aio.c if (cb) cb->method(wrap->P, (PN)cb, (PN)data, potion_str(wrap->P, filename), PN 110 lib/aio.c static PN aio_error(Potion *P, char *name, int status) { PN 131 lib/aio.c return r ? aio_error(P, "Aio_"_XSTR(T), r) : (PN)data; PN 203 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); \ PN 206 lib/aio.c if (cb) cb->method(P, (PN)cb, data, PN_NUM(status)) PN 210 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); \ PN 213 lib/aio.c if (cb) cb->method(P, (PN)cb, data) PN 219 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 224 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, PN_NUM(status), potion_ref(wrap->P, (PN)res)); PN 231 lib/aio.c static PN aio_tcp_new(Potion *P, PN cl, PN self, PN loop) { PN 248 lib/aio.c return (PN)data; PN 255 lib/aio.c static PN aio_udp_new(Potion *P, PN cl, PN self, PN loop) { PN 273 lib/aio.c return (PN)data; PN 280 lib/aio.c static PN aio_udp_get(Potion *P, PN cl, PN self, PN key, PN value) { PN 283 lib/aio.c PN v = potion_obj_get(P, 0, self, key); PN 293 lib/aio.c static PN aio_udp_set(Potion *P, PN cl, PN self, PN key, PN value) { PN 335 lib/aio.c return (PN)self; PN 343 lib/aio.c static PN aio_prepare_new(Potion *P, PN cl, PN self, PN loop) { PN 349 lib/aio.c static PN aio_check_new(Potion *P, PN cl, PN self, PN loop) { PN 355 lib/aio.c static PN aio_idle_new(Potion *P, PN cl, PN self, PN loop) { PN 362 lib/aio.c static PN aio_timer_new(Potion *P, PN cl, PN self, PN loop) { PN 404 lib/aio.c static PN aio_signal_new(Potion *P, PN cl, PN self, PN loop) { PN 410 lib/aio.c static PN aio_loop_new(Potion *P, PN cl, PN self) { PN 418 lib/aio.c return (PN)data; PN 422 lib/aio.c static PN aio_handle_new(Potion *P, PN cl, PN self) { PN 424 lib/aio.c return (PN)data; PN 428 lib/aio.c static PN aio_stream_new(Potion *P, PN cl, PN self) { PN 430 lib/aio.c return (PN)data; PN 434 lib/aio.c static PN aio_req_new(Potion *P, PN cl, PN self) { PN 436 lib/aio.c return (PN)data; PN 440 lib/aio.c static PN aio_connect_new(Potion *P, PN cl, PN self) { PN 442 lib/aio.c return (PN)data; PN 446 lib/aio.c static PN aio_write_new(Potion *P, PN cl, PN self) { PN 448 lib/aio.c return (PN)data; PN 452 lib/aio.c static PN aio_shutdown_new(Potion *P, PN cl, PN self) { PN 454 lib/aio.c return (PN)data; PN 458 lib/aio.c static PN aio_udp_send_new(Potion *P, PN cl, PN self) { PN 460 lib/aio.c return (PN)data; PN 469 lib/aio.c static PN aio_fs_poll_new(Potion *P, PN cl, PN self, PN loop) { PN 486 lib/aio.c static PN aio_fs_new(Potion *P, PN cl, PN self) { PN 488 lib/aio.c return (PN)data; PN 492 lib/aio.c static PN aio_fs_event_new(Potion *P, PN cl, PN self, PN loop) { PN 500 lib/aio.c static PN aio_fs_event_start(Potion *P, PN cl, PN self, PN cb, PN filename, PN flags) { PN 509 lib/aio.c static PN PN 510 lib/aio.c aio_fs_event_stop(Potion *P, PN cl, PN self) { PN 516 lib/aio.c static PN aio_process_options(Potion *P, PN cl, PN self) PN 519 lib/aio.c return (PN)data; PN 525 lib/aio.c static PN aio_work_new(Potion *P, PN cl, PN self) { PN 527 lib/aio.c return (PN)data; PN 542 lib/aio.c static PN aio_getaddrinfo_new(Potion *P, PN cl, PN self, PN 543 lib/aio.c PN cb, PN node, PN service, PN hints, PN loop) PN 556 lib/aio.c return (PN)data; PN 558 lib/aio.c static PN aio_cpu_info_new(Potion *P, PN cl, PN self) { PN 560 lib/aio.c return (PN)data; PN 562 lib/aio.c static PN aio_interface_address_new(Potion *P, PN cl, PN self) { PN 564 lib/aio.c return (PN)data; PN 572 lib/aio.c static PN aio_tty_new(Potion *P, PN cl, PN self, PN file, PN readable, PN loop) { PN 574 lib/aio.c PN_CHECK_INT((PN)PN_DATA(file)); PN 578 lib/aio.c return (PN)data; PN 585 lib/aio.c static PN aio_pipe_new(Potion *P, PN cl, PN self, PN ipc, PN loop) { PN 590 lib/aio.c return (PN)data; PN 601 lib/aio.c static PN aio_barrier_new(Potion *P, PN cl, PN self, PN count) { PN 606 lib/aio.c return (PN)data; PN 611 lib/aio.c static PN aio_sem_new(Potion *P, PN cl, PN self, PN value) { PN 616 lib/aio.c return (PN)data; PN 622 lib/aio.c static PN aio_async_new(Potion *P, PN cl, PN self, PN cb, PN loop) { PN 627 lib/aio.c return (PN)data; PN 629 lib/aio.c static PN aio_cond_new(Potion *P, PN cl, PN self) { PN 633 lib/aio.c return (PN)data; PN 635 lib/aio.c static PN aio_mutex_new(Potion *P, PN cl, PN self) { PN 639 lib/aio.c return (PN)data; PN 641 lib/aio.c static PN aio_rwlock_new(Potion *P, PN cl, PN self) { PN 645 lib/aio.c return (PN)data; PN 659 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 669 lib/aio.c if (cb) cb->method(P, (PN)cb, data, PN_NUM(status)); PN 711 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 717 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, PN_NUM(status), PN 718 lib/aio.c potion_ref(wrap->P, (PN)prev), potion_ref(wrap->P, (PN)curr)); PN 725 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 728 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data); PN 736 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 740 lib/aio.c cb->method(P, (PN)cb, (PN)data, PN_NUM(nread), PN 747 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 750 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, (PN)arg); PN 756 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 759 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data); PN 765 lib/aio.c static PN PN 766 lib/aio.c aio_version(Potion *P, PN cl, PN self) { PN 772 lib/aio.c static PN PN 773 lib/aio.c aio_version_string(Potion *P, PN cl, PN self) { PN 776 lib/aio.c static PN aio_size(Potion *P, PN cl, PN self) { PN 782 lib/aio.c static PN PN 783 lib/aio.c aio_run(Potion *P, PN cl, PN self, PN loop, PN mode) { PN 795 lib/aio.c static PN PN 796 lib/aio.c aio_walk(Potion *P, PN cl, PN self, PN loop, PN cb, PN arg) { PN 810 lib/aio.c static PN PN 811 lib/aio.c aio_tcp_open(Potion *P, PN cl, PN tcp, PN sock) { PN 818 lib/aio.c static PN PN 819 lib/aio.c aio_tcp_nodelay(Potion *P, PN cl, PN tcp, PN enable) { PN 826 lib/aio.c static PN PN 827 lib/aio.c aio_tcp_keepalive(Potion *P, PN cl, PN tcp, PN enable, PN delay) { PN 835 lib/aio.c static PN PN 836 lib/aio.c aio_tcp_simultaneous_accepts(Potion *P, PN cl, PN tcp, PN enable) { PN 843 lib/aio.c static PN PN 844 lib/aio.c aio_tcp_bind(Potion *P, PN cl, PN tcp, PN addr, PN port) { PN 863 lib/aio.c static PN PN 864 lib/aio.c aio_tcp_bind6(Potion *P, PN cl, PN tcp, PN addr, PN port) { PN 875 lib/aio.c static PN PN 876 lib/aio.c aio_tcp_getsockname(Potion *P, PN cl, PN tcp) { PN 883 lib/aio.c static PN PN 884 lib/aio.c aio_tcp_getpeername(Potion *P, PN cl, PN tcp) { PN 891 lib/aio.c static PN PN 892 lib/aio.c aio_tcp_connect(Potion *P, PN cl, PN tcp, PN req, PN addr, PN port, PN cb) { PN 913 lib/aio.c static PN PN 914 lib/aio.c aio_tcp_connect6(Potion *P, PN cl, PN tcp, PN req, PN addr, PN port, PN cb) { PN 929 lib/aio.c static PN PN 930 lib/aio.c aio_udp_open(Potion *P, PN cl, PN udp, PN sockfd) { PN 937 lib/aio.c static PN PN 938 lib/aio.c aio_udp_bind(Potion *P, PN cl, PN udp, PN addr, PN port, PN flags) { PN 957 lib/aio.c static PN PN 958 lib/aio.c aio_udp_bind6(Potion *P, PN cl, PN udp, PN addr, PN port, PN flags) { PN 970 lib/aio.c static PN PN 971 lib/aio.c aio_udp_getsockname(Potion *P, PN cl, PN udp) { PN 978 lib/aio.c static PN PN 979 lib/aio.c aio_udp_set_membership(Potion *P, PN cl, PN udp, PN mcaddr, PN ifaddr, PN membership) { PN 991 lib/aio.c static PN PN 992 lib/aio.c aio_udp_set_multicast_loop(Potion *P, PN cl, PN udp, PN on) { PN 1001 lib/aio.c static PN PN 1002 lib/aio.c aio_udp_set_multicast_ttl(Potion *P, PN cl, PN udp, PN ttl) { PN 1010 lib/aio.c static PN PN 1011 lib/aio.c aio_udp_set_broadcast(Potion *P, PN cl, PN udp, PN on) { PN 1020 lib/aio.c static PN PN 1021 lib/aio.c aio_udp_set_ttl(Potion *P, PN cl, PN udp, PN ttl) { PN 1030 lib/aio.c static PN PN 1031 lib/aio.c aio_udp_send(Potion *P, PN cl, PN udp, PN req, PN buf, PN bufcnt, PN addr, PN port, PN cb) { PN 1049 lib/aio.c static PN PN 1050 lib/aio.c aio_udp_send6(Potion *P, PN cl, PN udp, PN req, PN buf, PN bufcnt, PN addr, PN port, PN cb) { PN 1108 lib/aio.c cb->method(wrap->P, (PN)cb, (PN)data, PN_NUM(nread), PN 1115 lib/aio.c static PN PN 1116 lib/aio.c aio_udp_recv_start(Potion *P, PN cl, PN udp, PN cb) { PN 1123 lib/aio.c static PN PN 1124 lib/aio.c aio_udp_recv_stop(Potion *P, PN cl, PN udp) { PN 1130 lib/aio.c static PN PN 1131 lib/aio.c aio_prepare_start(Potion *P, PN cl, PN self, PN cb) { PN 1138 lib/aio.c static PN PN 1139 lib/aio.c aio_prepare_stop(Potion *P, PN cl, PN self) { PN 1145 lib/aio.c static PN PN 1146 lib/aio.c aio_check_start(Potion *P, PN cl, PN self, PN cb) { PN 1152 lib/aio.c static PN PN 1153 lib/aio.c aio_check_stop(Potion *P, PN cl, PN self) { PN 1159 lib/aio.c static PN PN 1160 lib/aio.c aio_idle_start(Potion *P, PN cl, PN self, PN cb) { PN 1167 lib/aio.c static PN PN 1168 lib/aio.c aio_idle_stop(Potion *P, PN cl, PN self) { PN 1176 lib/aio.c static PN PN 1177 lib/aio.c aio_tty_set_mode(Potion *P, PN cl, PN tty, PN mode) { PN 1186 lib/aio.c static PN PN 1187 lib/aio.c aio_tty_reset_mode(Potion *P, PN cl, PN tty) { PN 1192 lib/aio.c static PN PN 1193 lib/aio.c aio_tty_get_winsize(Potion *P, PN cl, PN tty) { PN 1201 lib/aio.c static PN PN 1202 lib/aio.c aio_guess_handle(Potion *P, PN cl, PN file) { PN 1209 lib/aio.c static PN PN 1210 lib/aio.c aio_pipe_open(Potion *P, PN cl, PN pipe, PN file) { PN 1217 lib/aio.c static PN PN 1218 lib/aio.c aio_pipe_bind(Potion *P, PN cl, PN pipe, PN name) { PN 1225 lib/aio.c static PN PN 1226 lib/aio.c aio_pipe_connect(Potion *P, PN cl, PN pipe, PN req, PN name, PN cb) { PN 1236 lib/aio.c static PN PN 1237 lib/aio.c aio_pipe_pending_instances(Potion *P, PN cl, PN pipe, PN count) { PN 1244 lib/aio.c static PN PN 1245 lib/aio.c aio_shutdown(Potion *P, PN cl, PN stream, PN req, PN cb) { PN 1257 lib/aio.c static PN PN 1258 lib/aio.c aio_write(Potion *P, PN cl, PN stream, PN req, PN buf, PN bufcnt, PN cb) { PN 1271 lib/aio.c static PN PN 1272 lib/aio.c aio_listen(Potion *P, PN cl, PN stream, PN backlog, PN cb) { PN 1288 lib/aio.c static PN PN 1289 lib/aio.c aio_accept(Potion *P, PN cl, PN stream, PN client) { PN 1305 lib/aio.c static PN PN 1306 lib/aio.c aio_read_start(Potion *P, PN cl, PN self, PN cb) { PN 1313 lib/aio.c static PN PN 1314 lib/aio.c aio_read_stop(Potion *P, PN cl, PN self) { PN 1326 lib/aio.c static PN PN 1327 lib/aio.c aio_write2(Potion *P, PN cl, PN stream, PN req, PN buf, PN bufcnt, PN send_handle, PN cb) { PN 1342 lib/aio.c static PN PN 1343 lib/aio.c aio_is_readable(Potion *P, PN cl, PN stream) { PN 1349 lib/aio.c static PN PN 1350 lib/aio.c aio_is_writable(Potion *P, PN cl, PN stream) { PN 1361 lib/aio.c static PN PN 1362 lib/aio.c aio_is_closing(Potion *P, PN cl, PN stream) { PN 1370 lib/aio.c static PN PN 1371 lib/aio.c aio_is_active(Potion *P, PN cl, PN self) { PN 1379 lib/aio.c static PN PN 1380 lib/aio.c aio_async_send(Potion *P, PN cl, PN self) { PN 1385 lib/aio.c static PN PN 1386 lib/aio.c aio_timer_start(Potion *P, PN cl, PN self, PN cb, PN timeout, PN repeat) { PN 1395 lib/aio.c static PN PN 1396 lib/aio.c aio_timer_stop(Potion *P, PN cl, PN self) { PN 1406 lib/aio.c static PN PN 1407 lib/aio.c aio_timer_again(Potion *P, PN cl, PN self) { PN 1414 lib/aio.c static PN PN 1415 lib/aio.c aio_timer_get_repeat(Potion *P, PN cl, PN self) { PN 1425 lib/aio.c static PN PN 1426 lib/aio.c aio_timer_set_repeat(Potion *P, PN cl, PN self, PN repeat) { PN 1437 lib/aio.c static PN PN 1438 lib/aio.c aio_handle_uvsize(Potion *P, PN cl, PN self) { PN 1445 lib/aio.c static PN PN 1446 lib/aio.c aio_req_uvsize(Potion *P, PN cl, PN self) { PN 1462 lib/aio.c static PN PN 1463 lib/aio.c aio_close(Potion *P, PN cl, PN self, PN cb) { PN 1471 lib/aio.c static PN PN 1472 lib/aio.c aio_signal_start(Potion *P, PN cl, PN self, PN cb, PN signum) { PN 1480 lib/aio.c static PN PN 1481 lib/aio.c aio_signal_stop(Potion *P, PN cl, PN self) { PN 1492 lib/aio.c static PN aio_process_options_get(Potion *P, PN cl, PN self, PN key) { PN 1495 lib/aio.c PN v = potion_obj_get(P, 0, self, key); PN 1506 lib/aio.c static PN aio_process_options_set(Potion *P, PN cl, PN self, PN key, PN value) { PN 1536 lib/aio.c return (PN)self; PN 1545 lib/aio.c static PN aio_spawn(Potion *P, PN cl, PN self, PN options, PN loop) { PN 1550 lib/aio.c uv_process_options_t opts; PN v; PN 1558 lib/aio.c PN args = potion_bytes(P, size); PN 1564 lib/aio.c return (PN)data; PN 1569 lib/aio.c static PN aio_process_kill(Potion *P, PN cl, PN self, PN signum) { PN 1578 lib/aio.c static PN aio_kill(Potion *P, PN cl, PN self, PN pid, PN signum) { PN 1587 lib/aio.c static PN aio_fs_cleanup(Potion *P, PN cl, PN self) { PN 1596 lib/aio.c static PN aio_fs_close(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1610 lib/aio.c static PN aio_fs_open(Potion *P, PN cl, PN self, PN path, PN flags, PN mode, PN cb, PN loop) { PN 1627 lib/aio.c static PN aio_fs_read(Potion *P, PN cl, PN self, PN fd, PN buf, PN nbufs, PN 1628 lib/aio.c PN offset, PN cb, PN loop) { PN 1648 lib/aio.c static PN aio_fs_write(Potion *P, PN cl, PN self, PN fd, PN buf, PN nbufs, PN 1649 lib/aio.c PN offset, PN cb, PN loop) { PN 1666 lib/aio.c static PN aio_fs_unlink(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1679 lib/aio.c static PN aio_fs_mkdir(Potion *P, PN cl, PN self, PN path, PN mode, PN cb, PN loop) { PN 1692 lib/aio.c static PN aio_fs_mkdtemp(Potion *P, PN cl, PN self, PN tpl, PN cb, PN loop) { PN 1704 lib/aio.c static PN aio_fs_rmdir(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1717 lib/aio.c static PN aio_fs_scandir(Potion *P, PN cl, PN self, PN path, PN flags, PN cb, PN loop) { PN 1729 lib/aio.c static PN aio_fs_scandir_next(Potion *P, PN cl, PN self) { PN 1733 lib/aio.c PN retval = potion_tuple_with_size(P, 2); //uv_dirent_t PN 1743 lib/aio.c static PN aio_fs_stat(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1755 lib/aio.c static PN aio_fs_fstat(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1769 lib/aio.c static PN aio_fs_rename(Potion *P, PN cl, PN self, PN path, PN newpath, PN cb, PN loop) { PN 1782 lib/aio.c static PN aio_fs_fsync(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1794 lib/aio.c static PN aio_fs_fdatasync(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1810 lib/aio.c PN aio_vt = potion_class(P, 0, 0, 0); PN 1814 lib/aio.c PN aio_##T##_vt = potion_class(P, 0, paren##_vt, 0); \ PN 1821 lib/aio.c PN aio_##T##_vt = potion_class(P, 0, paren##_vt, 0); \ PN 1903 lib/aio.c PN udp_ivars = potion_tuple_with_size(P, 5); //sorted list of path names PN 1911 lib/aio.c PN aio_udp_vt = potion_class(P, 0, aio_stream_vt, udp_ivars); PN 1921 lib/aio.c PN po_ivars = potion_tuple_with_size(P, 5); //sorted list of path names PN 1931 lib/aio.c PN aio_po_vt = potion_class(P, 0, aio_vt, po_ivars); PN 1939 lib/aio.c PN aio_process_vt = potion_class(P, 0, aio_vt, 0); // with spawn as ctor PN 32 lib/buffile.c PN path; PN 42 lib/buffile.c PN potion_buffile_fopen(Potion *P, PN cl, PN ign, PN path, PN modestr) { PN 51 lib/buffile.c return (PN)self; PN 57 lib/buffile.c PN potion_buffile_tmpfile(Potion *P, PN cl, PN ign) { PN 65 lib/buffile.c return (PN)self; PN 73 lib/buffile.c PN potion_buffile_fdopen(Potion *P, PN cl, pn_ffile self, PN fd, PN modestr) { PN 80 lib/buffile.c return (PN)self; PN 92 lib/buffile.c PN potion_buffile_freopen(Potion *P, PN cl, pn_ffile self, PN path, PN modestr, pn_ffile stream) { PN 101 lib/buffile.c return (PN)self; PN 113 lib/buffile.c PN potion_buffile_fmemopen(Potion *P, PN cl, PN buf, PN modestr) { PN 122 lib/buffile.c return (PN)self; PN 129 lib/buffile.c PN potion_buffile_fclose(Potion *P, PN cl, pn_ffile self) { PN 135 lib/buffile.c PN potion_buffile_fgetc(Potion *P, PN cl, pn_ffile self) { PN 142 lib/buffile.c PN potion_buffile_fgets(Potion *P, PN cl, pn_ffile self) { PN 154 lib/buffile.c PN potion_buffile_fread(Potion *P, PN cl, pn_ffile self, PN buf, PN size, PN nitems) { PN 166 lib/buffile.c PN potion_buffile_fwrite(Potion *P, PN cl, pn_ffile self, PN buf, PN size, PN nitems) { PN 186 lib/buffile.c PN potion_buffile_fputc(Potion *P, PN cl, pn_ffile self, PN byte) { PN 193 lib/buffile.c PN potion_buffile_fputs(Potion *P, PN cl, pn_ffile self, PN str) { PN 202 lib/buffile.c PN potion_buffile_fflush(Potion *P, PN cl, pn_ffile self) { PN 212 lib/buffile.c PN potion_buffile_fseek(Potion *P, PN cl, pn_ffile self, PN offset, PN whence) { PN 221 lib/buffile.c PN potion_buffile_ftell(Potion *P, PN cl, pn_ffile self) { PN 230 lib/buffile.c PN potion_buffile_feof(Potion *P, PN cl, pn_ffile self) { PN 236 lib/buffile.c PN potion_buffile_fileno(Potion *P, PN cl, pn_ffile self) { PN 242 lib/buffile.c PN potion_buffile_unlink(Potion *P, PN cl, pn_ffile self) { PN 252 lib/buffile.c PN potion_buffile_flockfile(Potion *P, PN cl, pn_ffile self) { PN 258 lib/buffile.c PN potion_buffile_ftrylockfile(Potion *P, PN cl, pn_ffile self) { PN 263 lib/buffile.c PN potion_buffile_funlockfile(Potion *P, PN cl, pn_ffile self) { PN 272 lib/buffile.c PN potion_buffile_fprintf(Potion *P, PN cl, pn_ffile self, PN fmt, ...) { PN 278 lib/buffile.c PN potion_buffile_string(Potion *P, PN cl, pn_ffile self) { PN 281 lib/buffile.c PN str; PN 297 lib/buffile.c PN ffile_vt = potion_type_new2(P, PN_TUSER, PN_VTABLE(PN_TFILE), PN_STR("BufFile")); PN 6 lib/readline/readline.c PN pn_readline(Potion *P, PN cl, PN self, PN start) { PN 8 lib/readline/readline.c PN r; PN 32 test/api/gc-bench.c #define ALLOC_NODE() (PN)potion_gc_alloc(P, tree_type, sizeof(struct PNObject)+ (2*sizeof(PN))) PN 48 test/api/gc-bench.c PN gc_make_tree(int depth, PN PN_left, PN PN_right) { PN 49 test/api/gc-bench.c PN x, l, r; PN 61 test/api/gc-bench.c PN gc_populate_tree(PN node, int depth, PN PN_left, PN PN_right) { PN 80 test/api/gc-bench.c int gc_tree_depth(PN node, int side, int depth) { PN 81 test/api/gc-bench.c PN n = ((struct PNObject *)node)->ivars[side]; PN 92 test/api/gc-bench.c PN klass, ary, temp, long_lived, PN_left, PN_right; PN 43 test/api/gc-test.c PN ptr = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 51 test/api/gc-test.c PN ptr = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 52 test/api/gc-test.c PN s1 = PN_STR("teststring"); PN 60 test/api/gc-test.c PN ptr = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 66 test/api/gc-test.c PN ptr = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 67 test/api/gc-test.c PN ptr2 = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 68 test/api/gc-test.c PN ptr3 = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 69 test/api/gc-test.c PN ptr4 = (PN)potion_gc_alloc(P, PN_TUSER, 16); PN 81 test/api/gc-test.c register unsigned long old = (PN)ptr & 0xFFFF; PN 87 test/api/gc-test.c CuAssert(T, "copied location identical to original", (old & 0xFFFF) != (PN)ptr); PN 16 test/api/potion-test.c PN num = PN_NUM(490); PN 34 test/api/potion-test.c PN zero = PN_ZERO; PN 43 test/api/potion-test.c PN pos = PN_NUM(10891); PN 52 test/api/potion-test.c PN neg = PN_NUM(-4343); PN 61 test/api/potion-test.c PN dec = potion_strtod(P, "14466", 5); PN 73 test/api/potion-test.c PN empty = PN_TUP0(); PN 81 test/api/potion-test.c PN tup = potion_tuple_with_size(P, 3); PN 93 test/api/potion-test.c PN sig = potion_sig(P, "num1=N,num2=N"); PN 147 test/api/potion-test.c PN p2; PN 161 test/api/potion-test.c PN add, num; PN 223 test/api/potion-test.c while ((PN)scanptr < (PN)M->birth_cur) { PN 236 test/api/potion-test.c potion_type((PN)scanptr)); PN 239 test/api/potion-test.c potion_type((PN)prev), AS_STR(PN_VTABLE(PN_TYPE((PN)prev)))); PN 248 test/api/potion-test.c CuAssert(T, "allocated object goes beyond GC pointer", (PN)scanptr <= (PN)M->birth_cur);