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 96 core/asm.h #define ASM(ins) *asmp = potion_asm_put(P, *asmp, (PN)(ins), sizeof(u8)) PN 97 core/asm.h #define ASM2(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), 2) PN 98 core/asm.h #define ASMI(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), sizeof(int)) PN 99 core/asm.h #define ASMN(pn) *asmp = potion_asm_put(P, *asmp, (PN)(pn), sizeof(PN)) PN 103 core/asm.h PNAsm *potion_asm_put(Potion *, PNAsm *, PN, size_t); PN 33 core/ast.c PN potion_source(Potion *P, u8 p, PN a, PN b, PN c, int lineno, PN line) { PN 36 core/ast.c vPN(Source) t = PN_ALLOC_N(PN_TSOURCE, struct PNSource, 0 * sizeof(PN)); PN 56 core/ast.c return (PN)t; PN 62 core/ast.c PN potion_source_size(Potion *P, PN cl, PN self) { PN 69 core/ast.c PN potion_source_name(Potion *P, PN cl, PN self) { PN 77 core/ast.c PN potion_source_file(Potion *P, PN cl, PN self) { PN 85 core/ast.c PN potion_source_line(Potion *P, PN cl, PN self) { PN 93 core/ast.c PN potion_source_string(Potion *P, PN cl, PN self) { PN 96 core/ast.c PN out = potion_byte_str(P, potion_ast_names[t->part]); PN 110 core/ast.c potion_bytes_obj_string(P, out, (PN)t->a[i]); PN 113 core/ast.c potion_bytes_obj_string(P, out, (PN)t->a[i]); PN 137 core/ast.c PN potion_source_loc(Potion *P, PN cl, PN self) { PN 138 core/ast.c PN out = potion_byte_str(P, ""); PN 146 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 32 core/ast.h #define PN_S(S, N) (PN)(((struct PNSource *)S)->a[N]) PN 34 core/ast.h PN endname = B; \ PN 44 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 21 core/compile.c #define PN_ASM1(ins, _a) f->asmb = (PN)potion_asm_op(P, (PNAsm *)f->asmb, (u8)ins, (int)_a, 0) PN 22 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 43 core/compile.c PN potion_proto_tree(Potion *P, PN cl, PN self) { PN 50 core/compile.c PN potion_proto_call(Potion *P, PN cl, PN self, PN args) { PN 55 core/compile.c PN potion_sig_string(Potion *P, PN cl, PN sig) { PN 56 core/compile.c PN out = potion_byte_str(P, ""); PN 63 core/compile.c PN v = (PN)t->set[i]; PN 93 core/compile.c PN potion_proto_string(Potion *P, PN cl, PN self) { PN 98 core/compile.c PN out = potion_byte_str(P, "; function definition"); PN 186 core/compile.c PN test = PN_S(PN_TUPLE_AT(PN_S(t->a[n],0), 0), 0); \ PN 198 core/compile.c PN test = PN_S(PN_TUPLE_AT(PN_S(t->a[n],0), 0), 0); \ PN 209 core/compile.c PN block = potion_send(blk, PN_compile, (PN)f, sig); \ PN 258 core/compile.c PN_SIZE num = PN_PUT(f->debugs, (PN)t); PN 279 core/compile.c void potion_arg_asmb(Potion *P, struct PNProto * volatile f, struct PNLoop *loop, PN args, u8 *reg, int inc) { PN 350 core/compile.c PN e = PN_S(t,0); PN 364 core/compile.c if (!PN_IS_PTR(PN_S(t,0)) && PN_S(t,0) == (PN)op.a) { PN 425 core/compile.c PN rhs = PN_TUPLE_AT(f->locals, num); PN 566 core/compile.c PN ifconst = PN_NONE; PN 570 core/compile.c PN use = PN_TUPLE_AT(PN_S(t,1), 0); PN 571 core/compile.c PN name = PN_TUPLE_AT(PN_S(t,1), 1); PN 572 core/compile.c PN list = potion_tuple_at(P,0,PN_S(t,1),2); PN 573 core/compile.c PN class = potion_require(P, name); //TODO name to file PN 681 core/compile.c PN ctor = PN_S(blk, 0); PN 686 core/compile.c PN_BLOCK(breg, (PN)blk, PN_S(t,1)); PN 736 core/compile.c PN v = PN_S(t,0); PN 922 core/compile.c PN potion_sig_compile(Potion *P, vPN(Proto) f, PN src) { PN 926 core/compile.c PN sig = PN_S(t,0); PN 936 core/compile.c PN sig = PN_TUP0(); PN 947 core/compile.c PN name = 0; PN 951 core/compile.c PN v = PN_S(lhs,0); PN 963 core/compile.c PN name2 = 0; PN 988 core/compile.c PN v = PN_NUM(PN_STR_PTR(PN_S(rhs,0))[0]); // = type. TODO: one-char => VTABLE PN 996 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 1004 core/compile.c PN v = PN_S(SRC_TUPLE_AT(rhs,0),0); PN 1010 core/compile.c PN v = PN_S(rhs,0); PN 1032 core/compile.c PN potion_source_compile(Potion *P, PN cl, PN self, PN source, PN sig) { PN 1053 core/compile.c f->asmb = (PN)potion_asm_new(P); PN 1062 core/compile.c return (PN)f; PN 1068 core/compile.c PN potion_proto_clone(Potion *P, PN cl, PN self) { PN 1071 core/compile.c PN PN_clone = PN_STR("clone"); PN 1073 core/compile.c PN len; PN 1094 core/compile.c n->asmb = (PN)asmb; PN 1096 core/compile.c return (PN)n; PN 1100 core/compile.c #define READ_PN(pn, ptr) ({PN rpn = *(PN *)ptr; ptr += pn; rpn;}) PN 1102 core/compile.c PN val = READ_PN(pn, ptr); \ PN 1119 core/compile.c PN tup = potion_tuple_with_size(P, (PN_SIZE)count); \ PN 1126 core/compile.c READ_TUPLE(ptr) PN_TUPLE_AT(tup, i) = potion_proto_load(P, (PN)f, pn, &(ptr)); \ PN 1131 core/compile.c PN potion_proto_load(Potion *P, PN up, u8 pn, u8 **ptr) { PN 1132 core/compile.c PN len = 0; PN 1151 core/compile.c f->asmb = (PN)asmb; PN 1156 core/compile.c return (PN)f; PN 1161 core/compile.c PN potion_source_load(Potion *P, PN cl, PN buf) { PN 1175 core/compile.c #define WRITE_PN(pn, ptr) ({*(PN *)ptr = pn; ptr += sizeof(PN);}) PN 1178 core/compile.c PN count = (PN_STR_LEN(val)+1) << 4; \ PN 1183 core/compile.c PN str = potion_num_string(P, PN_NIL, val); \ PN 1184 core/compile.c PN count = ((PN_STR_LEN(str)+1) << 4) | 2; \ PN 1189 core/compile.c PN cval = (PN_IS_PTR(val) ? PN_NIL : val); \ PN 1211 core/compile.c long potion_proto_dumpbc(Potion *P, PN proto, PN out, long pos) { PN 1232 core/compile.c PN potion_source_dumpbc(Potion *P, PN cl, PN proto, PN options) { PN 1233 core/compile.c PN pnb = potion_bytes(P, 8192); PN 1240 core/compile.c h.pn = (u8)sizeof(PN); PN 1253 core/compile.c PN potion_source_dump(Potion *P, PN cl, PN self, PN backend, PN options) { PN 1267 core/compile.c PN potion_run(Potion *P, PN code, int jit) { PN 1275 core/compile.c PN cl = potion_closure_new(P, (PN_F)potion_jit_proto(P, code), PN_NIL, 1); PN 1283 core/compile.c PN potion_eval(Potion *P, PN bytes) { PN 1284 core/compile.c PN code = (PN_TYPE(bytes) == PN_TSOURCE) PN 1293 core/compile.c PN pro_vt = PN_VTABLE(PN_TPROTO); PN 1294 core/compile.c PN src_vt = PN_VTABLE(PN_TSOURCE); PN 34 core/file.c PN potion_io_error(Potion *P, const char *msg) { PN 45 core/file.c PN potion_file_new(Potion *P, PN cl, PN self, PN path, PN modestr) { PN 76 core/file.c PN potion_file_with_fd(Potion *P, PN cl, PN self, PN fd) { PN 87 core/file.c return (PN)file; PN 93 core/file.c PN potion_file_close(Potion *P, PN cl, pn_file self) { PN 104 core/file.c PN potion_file_read(Potion *P, PN cl, pn_file self, PN n) { PN 123 core/file.c PN potion_file_write(Potion *P, PN cl, pn_file self, PN obj) { PN 160 core/file.c PN potion_file_print(Potion *P, PN cl, pn_file self, PN obj) { PN 166 core/file.c PN potion_file_string(Potion *P, PN cl, pn_file self) { PN 169 core/file.c PN str; PN 186 core/file.c PN potion_lobby_read(Potion *P, PN cl, PN self) { PN 195 core/file.c PN file_vt = PN_VTABLE(PN_TFILE); PN 197 core/file.c PN pe = potion_table_empty(P); PN 199 core/file.c PN PN_env = potion_str(P, "%ENV"); PN 201 core/file.c PN PN_env = potion_str(P, "Env"); PN 169 core/gc.c PN v = (PN)*storead; PN 175 core/gc.c while ((PN)scanptr < (PN)M->old_cur) PN 221 core/gc.c M->old_cur = scanptr = newold + (sizeof(PN) * 2); PN 228 core/gc.c while ((PN)protptr < (PN)M->protect) PN 232 core/gc.c while ((PN)scanptr < (PN)M->old_cur) PN 310 core/gc.c (((struct PNVtable *)PN_VTABLE(ptr->vt))->ivlen * sizeof(PN)); PN 333 core/gc.c sz = sizeof(struct PNClosure) + (PN_CLOSURE(ptr)->extra * sizeof(PN)); PN 336 core/gc.c sz = sizeof(struct PNTuple) + (sizeof(PN) * ((struct PNTuple *)ptr)->alloc); PN 357 core/gc.c sz = sizeof(struct PNTable) + kh_mem(PN, ptr); PN 369 core/gc.c sz = sizeof(struct PNCont) + (((struct PNCont *)ptr)->len * sizeof(PN)); PN 392 core/gc.c ((struct PNFwd *)ptr)->ptr = (PN)dst; PN 427 core/gc.c struct PNTuple * volatile t = (struct PNTuple *)potion_fwd((PN)ptr); PN 479 core/gc.c GC_MINOR_UPDATE_TABLE(PN, (struct PNTable *)potion_fwd((PN)ptr), 1); PN 531 core/gc.c struct PNTuple * volatile t = (struct PNTuple *)potion_fwd((PN)ptr); PN 583 core/gc.c GC_MAJOR_UPDATE_TABLE(PN, (struct PNTable *)potion_fwd((PN)ptr), 1); PN 680 core/gc.c PN potion_gc_actual(Potion *P, PN cl, PN self) PN 690 core/gc.c PN potion_gc_fixed(Potion *P, PN cl, PN self) PN 698 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 13 core/internal.c PN PN_allocate, PN_break, PN_call, PN_class, PN_compile, PN_continue, PN_def, PN 16 core/internal.c PN PN_add, PN_sub, PN_mult, PN_div, PN_rem, PN_bitn, PN_bitl, PN_bitr; PN 17 core/internal.c PN PN_cmp, PN_number, PN_name, PN_length, PN_size, PN_STR0; PN 19 core/internal.c PN PN_use, PN_no; PN 21 core/internal.c PN pn_filenames; PN 23 core/internal.c PN potion_allocate(Potion *P, PN cl, PN self, PN len) { PN 26 core/internal.c return (PN)obj; PN 30 core/internal.c PN vtable, obj_vt; PN 134 core/internal.c PN potion_delegated(Potion *P, PN closure, PN self) { PN 140 core/internal.c PN potion_call(Potion *P, PN cl, PN_SIZE argc, PN * volatile argv) { PN 192 core/internal.c PNType potion_kind_of(PN obj) { PN 228 core/internal.c PN potion_error(Potion *P, PN msg, long lineno, long charno, PN excerpt) { PN 234 core/internal.c return (PN)e; PN 237 core/internal.c PN potion_error_string(Potion *P, PN cl, PN self) { PN 247 core/internal.c PN err_vt = PN_VTABLE(PN_TERROR); PN 251 core/internal.c static inline char *potion_type_name(Potion *P, PN obj) { PN 260 core/internal.c PN potion_type_error(Potion *P, PN obj) { PN 264 core/internal.c PN potion_type_error_want(Potion *P, PN obj, const char *name) { PN 280 core/internal.c PN out = potion_bytes(P, 36); PN 294 core/internal.c void potion_p(Potion *P, PN x) { PN 300 core/internal.c PN x; PN 305 core/internal.c void potion_dump(Potion *P, PN data) { PN 306 core/internal.c PN pd = potion_send(data, PN_string); PN 307 core/internal.c PN pt = potion_send(PN_VTABLE(PN_TYPE(data)), PN_string); PN 316 core/internal.c PN *end, *ebp, *start = P->mem->cstack; 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 163 core/load.c PN potion_load(Potion *P, PN cl, PN self, PN file) { PN 168 core/load.c PN result = PN_NIL; PN 193 core/load.c PN p2_load(Potion *P, PN cl, PN self, PN file) { PN 197 core/load.c PN result = PN_NIL; PN 221 core/load.c void potion_loader_add(Potion *P, PN path) { PN 155 core/mt19937ar.c PN potion_srand(Potion *P, PN cl, PN self, PN seed) { PN 165 core/mt19937ar.c PN potion_rand(Potion *P, PN cl, PN self) { PN 174 core/mt19937ar.c PN potion_num_rand(Potion *P, PN cl, PN self) { PN 14 core/number.c PN potion_real(Potion *P, double v) { PN 17 core/number.c return (PN)d; PN 21 core/number.c PN potion_decimal(Potion *P, char *str, int len) { PN 30 core/number.c PN potion_pow(Potion *P, PN cl, PN self, PN sup) { PN 40 core/number.c static PN potion_sqrt(Potion *P, PN cl, PN self) { PN 53 core/number.c static PN potion_add(Potion *P, PN cl, PN self, PN num) { PN 61 core/number.c static PN potion_sub(Potion *P, PN cl, PN self, PN num) { PN 69 core/number.c static PN potion_mult(Potion *P, PN cl, PN self, PN num) { PN 77 core/number.c static PN potion_div(Potion *P, PN cl, PN self, PN num) { PN 85 core/number.c static PN potion_rem(Potion *P, PN cl, PN self, PN num) { PN 96 core/number.c static PN potion_bitn(Potion *P, PN cl, PN self) { PN 99 core/number.c return (PN)potion_real(P, 0.0); PN 106 core/number.c static PN potion_bitl(Potion *P, PN cl, PN self, PN num) { PN 109 core/number.c return (PN)potion_real(P, 0.0); PN 116 core/number.c static PN potion_bitr(Potion *P, PN cl, PN self, PN num) { PN 119 core/number.c return (PN)potion_real(P, 0.0); PN 124 core/number.c static PN potion_num_number(Potion *P, PN cl, PN self) { PN 130 core/number.c PN potion_num_string(Potion *P, PN cl, PN self) { PN 160 core/number.c static PN potion_num_times(Potion *P, PN cl, PN self, PN block) { PN 175 core/number.c static PN potion_num_to(Potion *P, PN cl, PN self, PN end, PN block) { PN 191 core/number.c static PN potion_num_step(Potion *P, PN cl, PN self, PN end, PN step, PN block) { PN 202 core/number.c static PN potion_num_chr(Potion *P, PN cl, PN self) { PN 209 core/number.c static PN potion_num_is_integer(Potion *P, PN cl, PN self) { PN 215 core/number.c static PN potion_num_is_float(Potion *P, PN cl, PN self) { PN 221 core/number.c static PN potion_num_integer(Potion *P, PN cl, PN self) { PN 230 core/number.c static PN potion_abs(Potion *P, PN cl, PN self) { PN 234 core/number.c return (PN) potion_real(P, -d); PN 248 core/number.c static PN potion_num_cmp(Potion *P, PN cl, PN self, PN n) { PN 262 core/number.c PN num_vt = PN_VTABLE(PN_TNUMBER); PN 263 core/number.c PN dbl_vt = PN_VTABLE(PN_TDECIMAL); 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 58 core/objmodel.c PN out = potion_byte_str(P, FUNCNAME); PN 69 core/objmodel.c PN potion_closure_arity(Potion *P, PN cl, PN self) { PN 76 core/objmodel.c PN potion_closure_minargs(Potion *P, PN cl, PN self) { PN 87 core/objmodel.c int potion_sig_arity(Potion *P, PN sig) { PN 95 core/objmodel.c PN v = (PN)t->set[i]; PN 98 core/objmodel.c if (PN_IS_NUM(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 112 core/objmodel.c int potion_sig_minargs(Potion *P, PN sig) { PN 119 core/objmodel.c PN v = (PN)t->set[i]; PN 136 core/objmodel.c PN potion_sig_at(Potion *P, PN sig, int index) { PN 137 core/objmodel.c PN result = PN_NIL; PN 144 core/objmodel.c PN v = (PN)t->set[i]; PN 146 core/objmodel.c if (PN_IS_NUM(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 149 core/objmodel.c if (i+1 < t->len && PN_IS_NUM((PN)t->set[i+1])) { PN 150 core/objmodel.c PN typ = (PN)t->set[i+1]; PN 153 core/objmodel.c result = potion_tuple_push(P, result, (PN)t->set[i+2]); PN 170 core/objmodel.c PN potion_sig_name_at(Potion *P, PN sig, int index) { PN 177 core/objmodel.c PN v = (PN)t->set[i]; PN 179 core/objmodel.c if (PN_IS_NUM(v) && v == PN_NUM(':') && PN_IS_STR((PN)t->set[i+1])) count--; PN 194 core/objmodel.c PN potion_no_call(Potion *P, PN cl, PN self) { PN 207 core/objmodel.c PN_VTABLE(meta->type) = (PN)meta; PN 212 core/objmodel.c PN potion_type_new(Potion *P, PNType t, PN self) { PN 219 core/objmodel.c PN_VTABLE(t) = (PN)vt; PN 221 core/objmodel.c return (PN)vt; PN 224 core/objmodel.c PN potion_type_new2(Potion *P, PNType t, PN self, PN name) { PN 227 core/objmodel.c return (PN)vt; PN 230 core/objmodel.c void potion_type_call_is(PN vt, PN cl) { PN 234 core/objmodel.c PN potion_obj_get_call(Potion *P, PN obj) { PN 235 core/objmodel.c PN cl = ((struct PNVtable *)PN_VTABLE(PN_TYPE(obj)))->call; PN 240 core/objmodel.c void potion_type_callset_is(PN vt, PN cl) { PN 244 core/objmodel.c PN potion_obj_get_callset(Potion *P, PN obj) { PN 245 core/objmodel.c PN cl = ((struct PNVtable *)PN_VTABLE(PN_TYPE(obj)))->callset; PN 250 core/objmodel.c void potion_type_constructor_is(PN vt, PN cl) { PN 257 core/objmodel.c PN potion_class(Potion *P, PN cl, PN self, PN ivars) { PN 258 core/objmodel.c PN parent = ((!self || self == P->lobby) ? PN_VTABLE(PN_TOBJECT) : self); PN 259 core/objmodel.c PN pvars = ((struct PNVtable *)parent)->ivars; PN 280 core/objmodel.c PN potion_class_find(Potion *P, PN name) { PN 285 core/objmodel.c return (PN)vt; PN 290 core/objmodel.c PNType potion_class_type(Potion *P, PN class) { PN 295 core/objmodel.c PN potion_ivars(Potion *P, PN cl, PN self, PN ivars) { PN 310 core/objmodel.c static inline long potion_obj_find_ivar(Potion *P, PN self, PN ivar) { PN 317 core/objmodel.c PN ivars = ((struct PNVtable *)PN_VTABLE(t))->ivars; PN 319 core/objmodel.c PN found = potion_tuple_bsearch(P, 0, ivars, ivar); PN 327 core/objmodel.c PN potion_obj_get(Potion *P, PN cl, PN self, PN ivar) { PN 334 core/objmodel.c PN potion_obj_set(Potion *P, PN cl, PN self, PN ivar, PN value) { PN 343 core/objmodel.c PN potion_proto_method(Potion *P, PN cl, PN self, PN args) { PN 347 core/objmodel.c PN potion_getter_method(Potion *P, PN cl, PN self) { PN 351 core/objmodel.c PN potion_def_method(Potion *P, PN closure, PN self, PN key, PN method) { PN 353 core/objmodel.c PN cl; PN 355 core/objmodel.c unsigned k = kh_put(PN, vt->methods, key, &ret); PN 373 core/objmodel.c kh_val(PN, vt->methods, k) = method; PN 395 core/objmodel.c PN potion_lookup(Potion *P, PN closure, PN self, PN key) { PN 401 core/objmodel.c unsigned k = kh_get(PN, vt->methods, key); PN 402 core/objmodel.c if (k != kh_end(vt->methods)) return kh_val(PN, vt->methods, k); PN 406 core/objmodel.c PN potion_bind(Potion *P, PN rcv, PN msg) { PN 407 core/objmodel.c PN closure = PN_NIL; PN 408 core/objmodel.c PN vt = PN_NIL; PN 412 core/objmodel.c vt = (PN)((struct PNVtable *)rcv)->meta; PN 427 core/objmodel.c PN potion_message(Potion *P, PN rcv, PN msg) { PN 428 core/objmodel.c PN cl = potion_bind(P, rcv, msg); PN 434 core/objmodel.c PN potion_obj_add(Potion *P, PN a, PN b) { PN 438 core/objmodel.c PN potion_obj_sub(Potion *P, PN a, PN b) { PN 442 core/objmodel.c PN potion_obj_mult(Potion *P, PN a, PN b) { PN 446 core/objmodel.c PN potion_obj_div(Potion *P, PN a, PN b) { PN 450 core/objmodel.c PN potion_obj_rem(Potion *P, PN a, PN b) { PN 454 core/objmodel.c PN potion_obj_bitn(Potion *P, PN a) { PN 458 core/objmodel.c PN potion_obj_bitl(Potion *P, PN a, PN b) { PN 462 core/objmodel.c PN potion_obj_bitr(Potion *P, PN a, PN b) { PN 471 core/objmodel.c PN potion_ref(Potion *P, PN data) { PN 475 core/objmodel.c return (PN)ref; PN 481 core/objmodel.c PN potion_ref_string(Potion *P, PN cl, PN self, PN len) { PN 488 core/objmodel.c PN potion_object_string(Potion *P, PN cl, vPN(Object) self) { PN 491 core/objmodel.c PN str = potion_byte_str2(P, NULL, 0); PN 492 core/objmodel.c pn_printf(P, str, "<%s %lx>", PN_STR_PTR(vt->name), (PN)self); PN 502 core/objmodel.c PN potion_object_forward(Potion *P, PN cl, PN self, PN method) { PN 512 core/objmodel.c PN potion_object_send(Potion *P, PN cl, PN self, PN method) { PN 520 core/objmodel.c PN potion_object_new(Potion *P, PN cl, PN self) { PN 526 core/objmodel.c return (PN)PN_ALLOC_N(vt->type, struct PNObject, PN 527 core/objmodel.c potion_type_size(P, (struct PNObject *)self) - sizeof(struct PNObject) + vt->ivlen * sizeof(PN)); PN 531 core/objmodel.c PN potion_object_size(Potion *P, PN cl, PN self) { PN 533 core/objmodel.c return sizeof(struct PNObject) + (((struct PNVtable *)PN_VTABLE(obj->vt))->ivlen * sizeof(PN)); PN 537 core/objmodel.c PN potion_get_metaclass(Potion *P, PN cl, vPN(Vtable) self) { PN 538 core/objmodel.c return (PN)self->meta; PN 544 core/objmodel.c static PN potion_lobby_self(Potion *P, PN cl, PN self) { PN 551 core/objmodel.c PN potion_lobby_string(Potion *P, PN cl, PN self) { PN 552 core/objmodel.c PN str = ((struct PNVtable *)self)->name; PN 560 core/objmodel.c PN potion_lobby_kind(Potion *P, PN cl, PN self) { PN 569 core/objmodel.c PN potion_lobby_can(Potion *P, PN cl, PN self, PN method) { PN 575 core/objmodel.c PN potion_lobby_print(Potion *P, PN cl, PN self) { PN 581 core/objmodel.c PN potion_lobby_say(Potion *P, PN cl, PN self) { PN 587 core/objmodel.c static void potion_init_class_reference(Potion *P, PN name, PN vt) { PN 595 core/objmodel.c void potion_define_global(Potion *P, PN name, PN val) { PN 606 core/objmodel.c PN potion_about(Potion *P, PN cl, PN self) { PN 607 core/objmodel.c PN about = potion_table_empty(P); PN 631 core/objmodel.c PN potion_exit(Potion *P, PN cl, PN self) { PN 637 core/objmodel.c PN clo_vt = PN_VTABLE(PN_TCLOSURE); PN 638 core/objmodel.c PN ref_vt = PN_VTABLE(PN_TWEAK); PN 639 core/objmodel.c PN obj_vt = PN_VTABLE(PN_TOBJECT); PN 689 core/objmodel.c PN mixin_vt = PN_VTABLE(PN_TVTABLE); PN 25 core/p2.h extern PN PN_use, PN_no; PN 33 core/p2.h PN p2_source_load(Potion *P, PN cl, PN buf); PN 34 core/p2.h PN p2_parse(Potion *, PN, char*); PN 35 core/p2.h PN p2_run(Potion *, PN, int); PN 36 core/p2.h PN p2_eval(Potion *, PN); PN 37 core/p2.h PN p2_sig(Potion *, char *); PN 38 core/p2.h PN p2_load(Potion *, PN, PN, PN); PN 47 core/p2.h PN potion_any_is_defined(Potion *, PN, PN); 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 141 core/potion.h #define PN_ZERO ((PN)1) PN 142 core/potion.h #define PN_FALSE ((PN)2) PN 143 core/potion.h #define PN_TRUE ((PN)6) PN 158 core/potion.h #define PN_TEST(v) ((PN)(v) != PN_FALSE && (PN)(v) != PN_NIL) PN 159 core/potion.h #define PN_TEST1(v) ((PN)(v) != PN_FALSE && (PN)(v) != PN_NIL \ PN 160 core/potion.h && (PN)(v) != PN_ZERO && (PN)(v) != PN_STR0 \ PN 163 core/potion.h #define PN_TEST(v) ((PN)(v) != PN_FALSE && (PN)(v) != PN_NIL) PN 164 core/potion.h #define PN_TEST1(v) ((PN)(v) != PN_FALSE && (PN)(v) != PN_NIL) PN 169 core/potion.h #define PN_IS_PTR(v) (!PN_IS_NUM(v) && ((PN)(v) & PN_REF_MASK)) PN 170 core/potion.h #define PN_IS_NIL(v) ((PN)(v) == PN_NIL) PN 171 core/potion.h #define PN_IS_BOOL(v) ((PN)(v) & PN_FBOOLEAN) PN 172 core/potion.h #define PN_IS_NUM(v) ((PN)(v) & PN_FNUMBER) PN 192 core/potion.h #define DBG_CHECK_TYPE(obj,type) PN_CHECK_TYPE((PN)obj,type) PN 202 core/potion.h #define PN_NUM(i) ((PN)((((long)(i))<<1) + PN_FNUMBER)) PN 219 core/potion.h #define PN_TOUCH(x) potion_gc_update(P, (PN)(x)) PN 260 core/potion.h #define PN_PUSH(T, X) potion_tuple_push(P, T, (PN)X) ///<\memberof PNTuple PN 264 core/potion.h #define PN_GET_TUPLE(t) ((struct PNTuple *)potion_fwd((PN)t)) ///<\memberof PNTuple PN 281 core/potion.h PN V = __t##V->set[I]; \ PN 294 core/potion.h PN ivars[0]; PN 304 core/potion.h PN ptr; PN 361 core/potion.h PN path; PN 365 core/potion.h typedef PN (*PN_F)(Potion *, PN, PN, ...); PN 374 core/potion.h PN sig; ///< signature PNTuple PN 378 core/potion.h PN name; /// PNString PN 379 core/potion.h PN data[0]; ///< code PN 436 core/potion.h PN line; ///< PNString of src line PN 445 core/potion.h PN source; ///< program name or enclosing scope PN 446 core/potion.h PN sig; ///< argument signature PN 447 core/potion.h PN stack; ///< size of the stack PN 448 core/potion.h PN paths; ///< paths (instance variables) PN 449 core/potion.h PN locals; ///< local variables PN 450 core/potion.h PN upvals; ///< variables in upper scopes PN 451 core/potion.h PN values; ///< numbers, strings, etc. PN 452 core/potion.h PN protos; ///< nested closures PN 453 core/potion.h PN debugs; ///< tree parts PN 454 core/potion.h PN tree; ///< abstract syntax tree PN 456 core/potion.h PN asmb; ///< assembled instructions PN 459 core/potion.h PN name; ///< PNString PN 470 core/potion.h PN set[0]; PN 479 core/potion.h PN data; PN 488 core/potion.h PN parent; PN 489 core/potion.h PN message; PN 490 core/potion.h PN line, chr; PN 491 core/potion.h PN excerpt; PN 499 core/potion.h PN name; ///< PNString PN 500 core/potion.h PN attr; ///< PN PN 501 core/potion.h PN inner; ///< "licks" PNTuple or "text" PNString member PN 511 core/potion.h PN stack[0]; // [0] = head of potion stack PN 518 core/potion.h static inline PN potion_fwd(PN); PN 521 core/potion.h static inline PNType potion_type(PN obj) { PN 543 core/potion.h static inline PN potion_fwd(PN obj) { PN 550 core/potion.h static inline char *potion_str_ptr(PN s) { PN 557 core/potion.h PN_FLEX(PNFlex, PN); PN 579 core/potion.h void (*ivars) (Potion *, PN, PNAsm * volatile *); PN 630 core/potion.h PN lobby; ///< root namespace PN 634 core/potion.h PN call, callset; ///< generic call and setter PN 638 core/potion.h PN input, source; ///< parser input and output (AST) PN 641 core/potion.h PN line; ///< currently parsed line (for debug) PN 643 core/potion.h PN unclosed; ///< used by parser for named block endings PN 666 core/potion.h PN __##x = 0x571FF; void *x = (void *)&__##x PN 693 core/potion.h static inline void potion_gc_update(Potion *P, PN x) { PN 695 core/potion.h if ((x > (PN)M->birth_lo && x < (PN)M->birth_hi && (x < (PN)M || x >= (PN)M->protect)) || PN 696 core/potion.h x == (PN)M->birth_storeptr[1] || PN 697 core/potion.h x == (PN)M->birth_storeptr[2] || PN 698 core/potion.h x == (PN)M->birth_storeptr[3]) PN 720 core/potion.h ((struct PNFwd *)obj)->ptr = (PN)dst; PN 721 core/potion.h potion_gc_update(P, (PN)obj); PN 747 core/potion.h PN r = (PN)(RCV); \ PN 748 core/potion.h PN c = potion_bind(P, r, (MSG)); \ PN 760 core/potion.h extern PN PN_allocate, PN_break, PN_call, PN_class, PN_compile, PN 764 core/potion.h extern PN PN_add, PN_sub, PN_mult, PN_div, PN_rem, PN_bitn, PN_bitl, PN_bitr; PN 765 core/potion.h extern PN PN_cmp, PN_number, PN_name, PN_length, PN_size, PN_STR0; PN 766 core/potion.h extern PN pn_filenames; PN 769 core/potion.h static inline PN potion_type_default(char type) { PN 780 core/potion.h PN potion_error(Potion *, PN, long, long, PN); PN 783 core/potion.h PN potion_io_error(Potion *, const char *); PN 784 core/potion.h PN potion_type_error(Potion *, PN); PN 785 core/potion.h PN potion_type_error_want(Potion *, PN, const char *); PN 788 core/potion.h PNType potion_kind_of(PN); PN 789 core/potion.h void potion_p(Potion *, PN); PN 790 core/potion.h PN potion_str(Potion *, const char *); PN 791 core/potion.h PN potion_str2(Potion *, char *, size_t); PN 792 core/potion.h PN potion_strcat(Potion *P, char *str, char *str2); PN 793 core/potion.h PN potion_str_add(Potion *P, PN, PN, PN); PN 794 core/potion.h PN potion_str_format(Potion *, const char *, ...) PN 796 core/potion.h PN potion_byte_str(Potion *, const char *); PN 797 core/potion.h PN potion_byte_str2(Potion *, const char *, size_t len); PN 798 core/potion.h PN potion_bytes(Potion *, size_t); PN 799 core/potion.h PN potion_bytes_string(Potion *, PN, PN); PN 800 core/potion.h PN_SIZE pn_printf(Potion *, PN, const char *, ...) PN 802 core/potion.h void potion_bytes_obj_string(Potion *, PN, PN); PN 803 core/potion.h PN potion_bytes_append(Potion *, PN, PN, PN); PN 804 core/potion.h void potion_release(Potion *, PN); PN 805 core/potion.h PN potion_def_method(Potion *P, PN, PN, PN, PN); PN 806 core/potion.h PN potion_type_new(Potion *, PNType, PN); PN 807 core/potion.h PN potion_type_new2(Potion *, PNType, PN, PN); PN 808 core/potion.h void potion_type_call_is(PN, PN); PN 809 core/potion.h void potion_type_callset_is(PN, PN); PN 810 core/potion.h void potion_type_constructor_is(PN, PN); PN 812 core/potion.h PN potion_class(Potion *, PN, PN, PN); PN 813 core/potion.h PN potion_ivars(Potion *, PN, PN, PN); PN 814 core/potion.h PN potion_obj_get_call(Potion *, PN); PN 815 core/potion.h PN potion_obj_get_callset(Potion *, PN); PN 816 core/potion.h PN potion_obj_get(Potion *, PN, PN, PN); PN 817 core/potion.h PN potion_obj_set(Potion *, PN, PN, PN, PN); PN 818 core/potion.h PN potion_object_new(Potion *, PN, PN); PN 819 core/potion.h PN potion_delegated(Potion *, PN, PN); PN 820 core/potion.h PN potion_call(Potion *, PN, PN_SIZE, PN * volatile); PN 821 core/potion.h PN potion_lookup(Potion *, PN, PN, PN); PN 822 core/potion.h PN potion_bind(Potion *, PN, PN); PN 823 core/potion.h PN potion_message(Potion *, PN, PN); PN 824 core/potion.h PN potion_closure_new(Potion *, PN_F, PN, PN_SIZE); PN 825 core/potion.h PN potion_callcc(Potion *, PN, PN); PN 826 core/potion.h PN potion_ref(Potion *, PN); PN 827 core/potion.h PN potion_sig(Potion *, char *); PN 828 core/potion.h int potion_sig_find(Potion *, PN, PN); PN 829 core/potion.h PN potion_decimal(Potion *, char *, int); PN 830 core/potion.h PN potion_pow(Potion *, PN, PN, PN); PN 831 core/potion.h PN potion_srand(Potion *, PN, PN, PN); PN 832 core/potion.h PN potion_rand(Potion *, PN, PN); PN 833 core/potion.h PN potion_num_rand(Potion *, PN, PN); PN 834 core/potion.h PN potion_real(Potion *, double); PN 835 core/potion.h PN potion_sig_at(Potion *, PN, int); PN 836 core/potion.h PN potion_sig_name_at(Potion *, PN, int); PN 837 core/potion.h int potion_sig_arity(Potion *, PN); PN 838 core/potion.h int potion_sig_minargs(Potion *, PN); PN 839 core/potion.h PN potion_closure_arity(Potion *, PN, PN); PN 840 core/potion.h PN potion_closure_minargs(Potion *, PN, PN); PN 841 core/potion.h void potion_define_global(Potion *, PN, PN); PN 843 core/potion.h PN potion_obj_add(Potion *, PN, PN); PN 844 core/potion.h PN potion_obj_sub(Potion *, PN, PN); PN 845 core/potion.h PN potion_obj_mult(Potion *, PN, PN); PN 846 core/potion.h PN potion_obj_div(Potion *, PN, PN); PN 847 core/potion.h PN potion_obj_rem(Potion *, PN, PN); PN 848 core/potion.h PN potion_obj_bitn(Potion *, PN); PN 849 core/potion.h PN potion_obj_bitl(Potion *, PN, PN); PN 850 core/potion.h PN potion_obj_bitr(Potion *, PN, PN); PN 851 core/potion.h PN potion_any_cmp(Potion *, PN, PN, PN); PN 853 core/potion.h PN potion_tuple_empty(Potion *); PN 854 core/potion.h PN potion_tuple_with_size(Potion *, unsigned long); PN 855 core/potion.h PN potion_tuple_new(Potion *, PN); PN 856 core/potion.h PN potion_tuple_push(Potion *, PN, PN); PN 857 core/potion.h PN_SIZE potion_tuple_push_unless(Potion *, PN, PN); PN 858 core/potion.h PN_SIZE potion_tuple_find(Potion *, PN, PN); PN 859 core/potion.h PN potion_tuple_at(Potion *, PN, PN, PN); PN 860 core/potion.h PN potion_tuple_shift(Potion *, PN, PN); PN 861 core/potion.h PN potion_tuple_bsearch(Potion *, PN, PN, PN); PN 862 core/potion.h PN potion_tuple_ins_sort(Potion *, PN, PN, PN); PN 863 core/potion.h PN potion_table_empty(Potion *); PN 864 core/potion.h PN potion_table_put(Potion *, PN, PN, PN, PN); PN 865 core/potion.h PN potion_table_set(Potion *, PN, PN, PN); PN 866 core/potion.h PN potion_table_at(Potion *, PN, PN, PN); PN 867 core/potion.h PN potion_lick(Potion *, PN, PN, PN); PN 868 core/potion.h PN potion_source_compile(Potion *, PN, PN, PN, PN); PN 869 core/potion.h PN potion_source_load(Potion *, PN, PN); PN 870 core/potion.h PN potion_source_dump(Potion *, PN, PN, PN, PN); PN 871 core/potion.h PN potion_source_dumpbc(Potion *, PN, PN, PN); PN 872 core/potion.h PN potion_greg_parse(Potion *, PN); PN 873 core/potion.h PN potion_sig_string(Potion *, PN, PN); PN 874 core/potion.h PN potion_filename_find(Potion *, PN); PN 875 core/potion.h PN potion_filename_push(Potion *, PN); PN 894 core/potion.h void potion_loader_add(Potion *, PN path); PN 896 core/potion.h PN potion_any_is_nil(Potion *, PN, PN); PN 897 core/potion.h PN potion_num_string(Potion *, PN, PN); PN 898 core/potion.h PN potion_gc_reserved(Potion *, PN, PN); PN 899 core/potion.h PN potion_gc_actual(Potion *, PN, PN); PN 900 core/potion.h PN potion_gc_fixed(Potion *, PN, PN); PN 902 core/potion.h PN potion_parse(Potion *, PN, char*); PN 903 core/potion.h PN potion_vm_proto(Potion *, PN, PN, ...); PN 904 core/potion.h PN potion_vm_class(Potion *, PN, PN); PN 905 core/potion.h PN potion_vm(Potion *, PN, PN, PN, PN_SIZE, PN * volatile); PN 906 core/potion.h PN potion_eval(Potion *, PN); PN 907 core/potion.h PN potion_run(Potion *, PN, int); PN 908 core/potion.h PN_F potion_jit_proto(Potion *, PN); PN 910 core/potion.h PN potion_load(Potion *, PN, PN, PN); PN 912 core/potion.h PN potion_class_find(Potion *, PN); PN 913 core/potion.h PNType potion_class_type(Potion *, PN); PN 39 core/primitive.c PN potion_any_cmp(Potion *P, PN cl, PN self, PN value) { PN 46 core/primitive.c static PN potion_nil_cmp(Potion *P, PN cl, PN self, PN value) { PN 62 core/primitive.c static PN potion_bool_cmp(Potion *P, PN cl, PN self, PN value) { PN 78 core/primitive.c static PN potion_bool_number(Potion *P, PN closure, PN self) { PN 85 core/primitive.c static PN potion_bool_string(Potion *P, PN closure, PN self) { PN 91 core/primitive.c PN nil_vt = PN_VTABLE(PN_TNIL); PN 92 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 57 core/string.c potion_add_str(P, (PN)s); PN 58 core/string.c exist = (PN)s; PN 63 core/string.c PN potion_strcat(Potion *P, char *str, char *str2) { PN 64 core/string.c PN exist = PN_NIL; PN 74 core/string.c potion_add_str(P, (PN)s); PN 75 core/string.c exist = (PN)s; PN 80 core/string.c PN potion_str_format(Potion *P, const char *format, ...) { PN 94 core/string.c return (PN)s; PN 99 core/string.c static PN potion_str_length(Potion *P, PN cl, PN self) { PN 105 core/string.c static PN potion_str_eval(Potion *P, PN cl, PN self) { PN 111 core/string.c static PN potion_str_number(Potion *P, PN cl, PN self) { PN 132 core/string.c static PN potion_str_string(Potion *P, PN cl, PN self) { PN 139 core/string.c static PN potion_str_print(Potion *P, PN cl, PN self) { PN 198 core/string.c inline static PN potion_str_slice_index(PN index, size_t len, int nilvalue) { PN 221 core/string.c static PN potion_str_slice(Potion *P, PN cl, PN self, PN start, PN end) { PN 236 core/string.c static PN potion_str_bytes(Potion *P, PN cl, PN self) { PN 244 core/string.c PN potion_str_add(Potion *P, PN cl, PN self, PN x) { PN 246 core/string.c PN str; PN 259 core/string.c static PN potion_str_at(Potion *P, PN cl, PN self, PN index) { PN 268 core/string.c static PN potion_str_ord(Potion *P, PN cl, PN self, PN index) { PN 281 core/string.c PN potion_byte_str(Potion *P, const char *str) { PN 285 core/string.c PN potion_byte_str2(Potion *P, const char *str, size_t len) { PN 289 core/string.c return (PN)s; PN 292 core/string.c PN potion_bytes(Potion *P, size_t len) { PN 297 core/string.c return (PN)s; PN 300 core/string.c PN_SIZE pn_printf(Potion *P, PN bytes, const char *format, ...) { PN 323 core/string.c void potion_bytes_obj_string(Potion *P, PN bytes, PN obj) { PN 331 core/string.c PN potion_bytes_append(Potion *P, PN cl, PN self, PN str) { PN 333 core/string.c PN fstr = potion_fwd(str); PN 351 core/string.c static PN potion_bytes_length(Potion *P, PN cl, PN self) { PN 352 core/string.c PN str = potion_fwd(self); PN 359 core/string.c PN potion_bytes_string(Potion *P, PN cl, PN self) { PN 360 core/string.c PN exist = potion_lookup_str(P, PN_STR_PTR(self = potion_fwd(self))); PN 366 core/string.c potion_add_str(P, (PN)s); PN 367 core/string.c exist = (PN)s; PN 374 core/string.c static PN potion_bytes_print(Potion *P, PN cl, PN self) { PN 384 core/string.c static PN potion_bytes_each(Potion *P, PN cl, PN self, PN block) { PN 398 core/string.c static PN potion_bytes_at(Potion *P, PN cl, PN self, PN index) { PN 416 core/string.c static PN potion_str_cmp(Potion *P, PN cl, PN self, PN str) { PN 429 core/string.c PN str_vt = PN_VTABLE(PN_TSTRING); PN 430 core/string.c PN byt_vt = PN_VTABLE(PN_TBYTES); PN 19 core/table.c PN potion_table_string(Potion *P, PN cl, PN self) { PN 22 core/table.c PN out = potion_byte_str(P, "("); PN 25 core/table.c if (kh_exist(PN, t, k)) { PN 27 core/table.c potion_bytes_obj_string(P, out, kh_key(PN, t, k)); PN 29 core/table.c potion_bytes_obj_string(P, out, kh_val(PN, t, k)); PN 38 core/table.c PN potion_table_empty(Potion *P) { PN 39 core/table.c return (PN)PN_ALLOC_N(PN_TTABLE, struct PNTable, 0); PN 43 core/table.c PN potion_table_cast(Potion *P, PN self) { PN 48 core/table.c k = kh_put(PN, t, PN_NUM(i), &ret); PN 50 core/table.c kh_val(PN, t, k) = v; PN 54 core/table.c ((struct PNFwd *)self)->ptr = (PN)t; PN 56 core/table.c self = (PN)t; PN 66 core/table.c PN potion_table_at(Potion *P, PN cl, PN self, PN key) { PN 69 core/table.c unsigned k = kh_get(PN, t, key); PN 70 core/table.c if (k != kh_end(t)) return kh_val(PN, t, k); PN 78 core/table.c PN potion_table_each(Potion *P, PN cl, PN self, PN block) { PN 83 core/table.c if (kh_exist(PN, t, k)) { PN 84 core/table.c PN_CLOSURE(block)->method(P, block, P->lobby, kh_key(PN, t, k), kh_val(PN, t, k)); PN 94 core/table.c PN potion_table_put(Potion *P, PN cl, PN self, PN key, PN value) { PN 98 core/table.c unsigned k = kh_put(PN, t, key, &ret); PN 100 core/table.c kh_val(PN, t, k) = value; PN 109 core/table.c PN potion_table_remove(Potion *P, PN cl, PN self, PN key) { PN 112 core/table.c unsigned k = kh_get(PN, t, key); PN 113 core/table.c if (k != kh_end(t)) kh_del(PN, t, k); PN 121 core/table.c PN potion_table_set(Potion *P, PN self, PN key, PN value) { PN 129 core/table.c PN potion_table_length(Potion *P, PN cl, PN self) { PN 139 core/table.c vPN(Tuple) t = PN_ALLOC_N(PN_TTUPLE, struct PNTuple, size * sizeof(PN)); \ PN 142 core/table.c PN potion_tuple_empty(Potion *P) { PN 146 core/table.c return (PN)t; PN 149 core/table.c PN potion_tuple_with_size(Potion *P, unsigned long size) { PN 151 core/table.c return (PN)t; PN 154 core/table.c PN potion_tuple_new(Potion *P, PN value) { PN 158 core/table.c return (PN)t; PN 161 core/table.c PN potion_tuple_push(Potion *P, PN tuple, PN value) { PN 165 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->alloc + 3)); // overalloc by 2 PN 178 core/table.c PN potion_tuple_append(Potion *P, PN cl, PN self, PN value) { PN 187 core/table.c PN_SIZE potion_tuple_find(Potion *P, PN tuple, PN value) { PN 197 core/table.c PN_SIZE potion_tuple_push_unless(Potion *P, PN tuple, PN value) { PN 216 core/table.c PN potion_tuple_at(Potion *P, PN cl, PN self, PN index) { PN 227 core/table.c PN potion_tuple_clone(Potion *P, PN cl, PN self) { PN 231 core/table.c PN_MEMCPY_N(t2->set, t1->set, PN, t1->len); PN 233 core/table.c return (PN)t2; PN 240 core/table.c PN potion_tuple_each(Potion *P, PN cl, PN self, PN block) { PN 255 core/table.c PN potion_tuple_first(Potion *P, PN cl, PN self) { PN 265 core/table.c PN potion_tuple_join(Potion *P, PN cl, PN self, PN sep) { PN 267 core/table.c PN out = potion_byte_str(P, ""); PN 278 core/table.c PN potion_tuple_last(Potion *P, PN cl, PN self) { PN 288 core/table.c PN potion_tuple_string(Potion *P, PN cl, PN self) { PN 291 core/table.c PN out = potion_byte_str(P, "("); PN 307 core/table.c PN potion_tuple_pop(Potion *P, PN cl, PN self) { PN 310 core/table.c PN obj = t->set[t->len - 1]; PN 311 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->len - 1)); PN 323 core/table.c PN potion_tuple_put(Potion *P, PN cl, PN self, PN key, PN value) { PN 345 core/table.c PN potion_tuple_unshift(Potion *P, PN cl, PN self, PN value) { PN 349 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->alloc + 3)); // overalloc by 2 PN 352 core/table.c PN_MEMMOVE_N(&t->set[1], &t->set[0], PN, t->len); PN 363 core/table.c PN potion_tuple_shift(Potion *P, PN cl, PN self) { PN 366 core/table.c PN obj = t->set[0]; PN 367 core/table.c PN_MEMMOVE_N(&t->set[0], &t->set[1], PN, t->len); PN 368 core/table.c PN_REALLOC(t, PN_TTUPLE, struct PNTuple, sizeof(PN) * (t->len - 1)); PN 377 core/table.c PN potion_tuple_print(Potion *P, PN cl, PN self) { PN 388 core/table.c PN potion_tuple_length(Potion *P, PN cl, PN self) { PN 396 core/table.c PN potion_tuple_reverse(Potion *P, PN cl, PN self) { PN 399 core/table.c PN tuple = potion_tuple_with_size(P, len); PN 419 core/table.c PN potion_tuple_remove(Potion *P, PN cl, PN self, PN index) { PN 424 core/table.c PN data = potion_tuple_clone(P, cl, self); PN 427 core/table.c PN_MEMMOVE_N(&t->set[i], &t->set[i+1], PN, t->len - i); PN 440 core/table.c PN potion_tuple_delete(Potion *P, PN cl, PN self, PN index) { PN 446 core/table.c PN_MEMMOVE_N(&t->set[i], &t->set[i+1], PN, t->len - i); PN 456 core/table.c PN potion_tuple_nreverse(Potion *P, PN cl, PN self) { PN 474 core/table.c PN potion_tuple_bsearch(Potion *P, PN cl, PN self, PN x) { PN 493 core/table.c static void potion_sort_internal(Potion *P, PN cl, PN self, ///< sort data PN 496 core/table.c PN cmp) ///< cmp method for 2 values, returning -1,0,1 PN 506 core/table.c PN pivot = GET(index); PN 554 core/table.c static PN potion_tuple_sort(Potion *P, PN cl, PN 555 core/table.c PN self, ///< sort tuple PN 556 core/table.c PN cmp) ///< cmp method for 2 values, returning -1,0,1 PN 558 core/table.c PN data = potion_tuple_clone(P, cl, self); PN 574 core/table.c PN potion_tuple_ins_sort(Potion *P, PN cl, PN self, PN cmp) { PN 631 core/table.c static PN potion_tuple_cmp(Potion *P, PN cl, PN self, PN value) { PN 640 core/table.c PN cmp; PN 645 core/table.c PN t1 = potion_tuple_clone(P,cl,self); PN 646 core/table.c PN t2 = potion_tuple_clone(P,cl,value); PN 674 core/table.c PN potion_lobby_list(Potion *P, PN cl, PN self, PN size) { PN 679 core/table.c PN tbl_vt = PN_VTABLE(PN_TTABLE); PN 680 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-ppc.c #define RBP(x) (0x18 + (x * sizeof(PN))) PN 135 core/vm-ppc.c PN val = PN_TUPLE_AT(f->values, op.b); PN 349 core/vm-ppc.c void potion_ppc_ivars(Potion *P, PN ivars, PNAsm * volatile *asmp) { PN 18 core/vm-x86.c #define RBP(x) (0x100 - ((x + 1) * sizeof(PN))) PN 39 core/vm-x86.c ASMI((PN)(x)) PN 42 core/vm-x86.c X86_PRE(); ASM(0xb8); ASMN((PN)(x)); /* movq x, %rax */ \ PN 127 core/vm-x86.c if (rbp > sp - 2 && sp[2] == (PN)P) { PN 128 core/vm-x86.c printf("RBP = %lx (%lx), SP = %lx\n", (PN)rbp, *rbp, (PN)sp); PN 149 core/vm-x86.c ASM(0x8b); ASM(0x55); ASM(2 * sizeof(PN)); PN 155 core/vm-x86.c ASM(0xc7); ASM(0x44); ASM(0x24); ASM(argn * sizeof(PN)); ASMI(regn); //mov $regn, argn(%esp) PN 161 core/vm-x86.c ASM(0x89); ASM(0x54); ASM(0x24); ASM(argn * sizeof(PN)); //mov %edx, argn(%esp) PN 163 core/vm-x86.c ASM(0x8b); ASM(0x55); ASM(argn * sizeof(PN)); PN 221 core/vm-x86.c X86_PRE(); ASM(0x89); ASM(0x5c); ASM(0x24); ASM((argn - 6) * sizeof(PN)); // mov %rbx N(%rsp) PN 224 core/vm-x86.c X86_PRE(); ASM(0x8b); ASM(0x5d); ASM((argn - 4) * sizeof(PN)); PN 275 core/vm-x86.c ASM(sizeof(struct PNClosure) + ((upi + 1) * sizeof(PN))); // 0x30(%rax) PN 295 core/vm-x86.c PN potion_f_values(Potion *P, PN cl) { PN 306 core/vm-x86.c + (op.b * sizeof(PN))); // add N,%rax PN 755 core/vm-x86.c PN sig = potion_sig_at(P, c->sig, i-2); PN 784 core/vm-x86.c PN potion_f_protos(Potion *P, PN cl, PN i) { PN 785 core/vm-x86.c PN p = PN_PROTO(PN_CLOSURE(cl)->data[0])->protos; PN 786 core/vm-x86.c PN proto = PN_TUPLE_AT(p, i); PN 791 core/vm-x86.c return (PN)c; PN 796 core/vm-x86.c PN proto = PN_TUPLE_AT(f->protos, op.b); PN 822 core/vm-x86.c ASM(sizeof(struct PNClosure) + (sizeof(PN) * (i + 1))); PN 847 core/vm-x86.c if (kh_exist(PN, vt->methods, k - 1)) { PN 849 core/vm-x86.c ASMI(PN_UNIQ(kh_key(PN, vt->methods, k - 1))); // cmp NAME %edi PN 851 core/vm-x86.c X86_PRE(); ASM(0xB8); ASMN(kh_val(PN, vt->methods, k - 1)); // mov CL %rax PN 865 core/vm-x86.c void potion_x86_ivars(Potion *P, PN ivars, PNAsm * volatile *asmp) { PN 97 core/vm.c static PN (*pn_readline)(Potion *, PN, PN, PN); PN 108 core/vm.c #define STRINGIFY(_obj) ({PN str=potion_send(_obj,PN_string);str?PN_STR_PTR(str):"";}) PN 151 core/vm.c PN potion_vm_proto(Potion *P, PN cl, PN self, ...) { PN 152 core/vm.c PN ary = PN_NIL; PN 167 core/vm.c PN s = potion_sig_at(P, f->sig, i); PN 169 core/vm.c ary = PN_PUSH(ary, va_arg(args, PN)); PN 171 core/vm.c PN arg = va_arg(args, PN); PN 188 core/vm.c return potion_vm(P, (PN)f, self, ary, PN 193 core/vm.c PN potion_vm_class(Potion *P, PN cl, PN self) { PN 196 core/vm.c PN ivars = potion_tuple_with_size(P, PN_TUPLE_LEN(proto->paths)); PN 211 core/vm.c PN_F potion_jit_proto(Potion *P, PN proto) { PN 229 core/vm.c PN proto2 = (PN)tp->set[j]; PN 246 core/vm.c rsp = (need + protoargs) * sizeof(PN); PN 256 core/vm.c PN v = (PN)t->set[i]; PN 354 core/vm.c static PN potion_sig_check(Potion *P, struct PNClosure *cl, int arity, int numargs) { PN 372 core/vm.c PN potion_debug(Potion *P, struct PNProto *f, PN self, PN_OP op, PN* reg, PN* stack) { PN 374 core/vm.c PN ast; PN 375 core/vm.c PN *upvals, *locals; PN 376 core/vm.c PN *current = stack; PN 388 core/vm.c PN flags = (PN)P->flags; P->flags = EXEC_VM; //turn off tracing,debugging,... PN 391 core/vm.c PN debug = potion_message(P, self, PN_STR("debug")); // find debug object =>0 PN 393 core/vm.c PN loopmeth = potion_message(P, debug, PN_STR("loop")); PN 394 core/vm.c PN code = potion_vm_proto(P, (PN)PN_CLOSURE_F(loopmeth), debug, ast, (PN)f); PN 399 core/vm.c PN code = (PN)PN_AST_(CODE, PN 402 core/vm.c PN_AST_(LIST, PN_PUSH(PN_TUP(PN_AST_(MSG, ast)), PN_AST_(MSG, (PN)f)))))))); PN 403 core/vm.c code = potion_send(code, PN_compile, (PN)f, PN_NIL); PN 420 core/vm.c PN fn = PN_TUPLE_AT(pn_filenames, t->loc.fileno); PN 425 core/vm.c PN str = pn_readline(P, self, self, PN_STRN("> ", 2)); PN 453 core/vm.c PN flags = (PN)P->flags; P->flags = (Potion_Flags)EXEC_VM; PN 459 core/vm.c PN code = potion_parse(P, potion_send(str, PN_STR("bytes")), "-d"); PN 461 core/vm.c PN oldsig = f->sig; PN 469 core/vm.c cl = (struct PNClosure *)potion_closure_new(P, (PN_F)potion_vm_proto, (PN)sig, PN 471 core/vm.c cl->data[0] = (PN)f; PN 479 core/vm.c cl->data[i+1] = locals[op.b] = (PN)potion_ref(P, locals[op.b]); PN 487 core/vm.c printf("%s\n", AS_STR(debug_fn(P, (PN)cl, code, regs, f->locals, PN 501 core/vm.c PN potion_vm(Potion *P, PN proto, PN self, PN vargs, PN_SIZE upc, PN *upargs) { PN 505 core/vm.c PN stack[STACK_MAX]; PN 506 core/vm.c PN val = PN_NIL; PN 511 core/vm.c PN *args = NULL, *upvals, *locals, *reg; PN 512 core/vm.c PN *current = stack; PN 516 core/vm.c pn_readline = (PN (*)(Potion *, PN, PN, PN))dlsym(RTLD_DEFAULT, "pn_readline"); PN 520 core/vm.c pn_readline = (PN (*)(Potion *, PN, PN, PN))dlsym(handle, "pn_readline"); PN 529 core/vm.c memset((void*)stack, 0, STACK_MAX*sizeof(PN)); PN 554 core/vm.c PN s = potion_sig_name_at(P, f->sig, argx); PN 601 core/vm.c CASE(LOADPN, reg[op.a] = (PN)op.b ) PN 634 core/vm.c PN attr = op.b > op.a ? reg[op.a + 1] : PN_NIL; PN 635 core/vm.c PN inner = op.b > op.a + 1 ? reg[op.b] : PN_NIL; PN 707 core/vm.c PN sig = cl->sig; PN 713 core/vm.c PN err = potion_sig_check(P, cl, arity, numargs); PN 716 core/vm.c PN s = potion_sig_at(P, sig, i); PN 727 core/vm.c PN argt = potion_tuple_with_size(P, (op.b - op.a) - 1); PN 738 core/vm.c PN err = potion_sig_check(P, cl, arity, numargs); PN 741 core/vm.c PN s = potion_sig_at(P, sig, i); PN 753 core/vm.c current[-2] = (PN)f; PN 754 core/vm.c current[-1] = (PN)pos; PN 815 core/vm.c cl->data[i+1] = locals[op.b] = (PN)potion_ref(P, locals[op.b]); PN 820 core/vm.c reg[areg] = (PN)cl; PN 75 front/p2.c (int)sizeof(PN), (int)sizeof(struct PNObject), (int)sizeof(struct PNTuple), PN 93 front/p2.c static PN p2_cmd_exec(Potion *P, PN buf, char *filename, char *compile) { PN 94 front/p2.c PN code = p2_source_load(P, PN_NIL, buf); PN 119 front/p2.c PN val; PN 120 front/p2.c PN cl = potion_closure_new(P, (PN_F)potion_jit_proto(P, code), PN_NIL, 1); PN 138 front/p2.c PN buf; PN 156 front/p2.c PN code; PN 216 front/p2.c void *scanptr = (void *)((char *)P->mem->old_lo + (sizeof(PN) * 2)); PN 217 front/p2.c while ((PN)scanptr < (PN)P->mem->old_cur) { PN 231 front/p2.c if ((PN)scanptr > (PN)P->mem->old_cur) { PN 252 front/p2.c PN buf = PN_NIL; PN 354 front/p2.c PN args = PN_TUP0(); PN 386 front/p2.c PN (*potion_parser)(Potion *, PN, char*); PN 388 front/p2.c potion_parser = (PN (*)(Potion *, PN, char*))dlsym(handle, "potion_parse"); PN 389 front/p2.c PN code = potion_parser(P, potion_byte_str(P, PN 54 front/potion.c (int)sizeof(PN), (int)sizeof(struct PNObject), (int)sizeof(struct PNTuple), PN 55 front/potion.c (int)(sizeof(PN) + sizeof(struct PNTuple)), (int)sizeof(struct PNTable)); PN 73 front/potion.c static PN potion_cmd_exec(Potion *P, PN buf, char *filename, char *compile, char *addcode) { PN 76 front/potion.c PN code = PN_NIL; PN 138 front/potion.c PN val; PN 139 front/potion.c PN cl = potion_closure_new(P, (PN_F)potion_jit_proto(P, code), PN_NIL, 1); PN 164 front/potion.c PN opts; PN 216 front/potion.c void *scanptr = (void *)((char *)P->mem->old_lo + (sizeof(PN) * 2)); PN 217 front/potion.c while ((PN)scanptr < (PN)P->mem->old_cur) { PN 231 front/potion.c if ((PN)scanptr > (PN)P->mem->old_cur) { PN 248 front/potion.c PN out = potion_bytes(P, 0); PN 267 front/potion.c PN buf = PN_NIL; PN 376 front/potion.c PN args = PN_TUP0(); PN 389 front/potion.c PN args = PN_TUP0(); PN 102 lib/aio.c if (cb) cb->method(wrap->P, (PN)cb, (PN)data, potion_str(wrap->P, filename), PN 106 lib/aio.c static PN aio_error(Potion *P, char *name, int status) { PN 127 lib/aio.c return r ? aio_error(P, "Aio_"_XSTR(T), r) : (PN)data; PN 199 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); \ PN 202 lib/aio.c if (cb) cb->method(P, (PN)cb, data, PN_NUM(status)) PN 208 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 213 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, PN_NUM(status), potion_ref(wrap->P, (PN)res)); PN 220 lib/aio.c static PN aio_tcp_new(Potion *P, PN cl, PN self, PN loop) { PN 237 lib/aio.c return (PN)data; PN 244 lib/aio.c static PN aio_udp_new(Potion *P, PN cl, PN self, PN loop) { PN 262 lib/aio.c return (PN)data; PN 269 lib/aio.c static PN aio_udp_get(Potion *P, PN cl, PN self, PN key, PN value) { PN 272 lib/aio.c PN v = potion_obj_get(P, 0, self, key); PN 282 lib/aio.c static PN aio_udp_set(Potion *P, PN cl, PN self, PN key, PN value) { PN 324 lib/aio.c return (PN)self; PN 332 lib/aio.c static PN aio_prepare_new(Potion *P, PN cl, PN self, PN loop) { PN 338 lib/aio.c static PN aio_check_new(Potion *P, PN cl, PN self, PN loop) { PN 344 lib/aio.c static PN aio_idle_new(Potion *P, PN cl, PN self, PN loop) { PN 351 lib/aio.c static PN aio_timer_new(Potion *P, PN cl, PN self, PN loop) { PN 357 lib/aio.c static PN aio_fs_poll_new(Potion *P, PN cl, PN self, PN loop) { PN 399 lib/aio.c static PN aio_signal_new(Potion *P, PN cl, PN self, PN loop) { PN 405 lib/aio.c static PN aio_loop_new(Potion *P, PN cl, PN self) { PN 413 lib/aio.c return (PN)data; PN 417 lib/aio.c static PN aio_handle_new(Potion *P, PN cl, PN self) { PN 419 lib/aio.c return (PN)data; PN 423 lib/aio.c static PN aio_stream_new(Potion *P, PN cl, PN self) { PN 425 lib/aio.c return (PN)data; PN 429 lib/aio.c static PN aio_req_new(Potion *P, PN cl, PN self) { PN 431 lib/aio.c return (PN)data; PN 435 lib/aio.c static PN aio_connect_new(Potion *P, PN cl, PN self) { PN 437 lib/aio.c return (PN)data; PN 441 lib/aio.c static PN aio_write_new(Potion *P, PN cl, PN self) { PN 443 lib/aio.c return (PN)data; PN 447 lib/aio.c static PN aio_shutdown_new(Potion *P, PN cl, PN self) { PN 449 lib/aio.c return (PN)data; PN 453 lib/aio.c static PN aio_udp_send_new(Potion *P, PN cl, PN self) { PN 455 lib/aio.c return (PN)data; PN 469 lib/aio.c static PN aio_fs_new(Potion *P, PN cl, PN self) { PN 471 lib/aio.c return (PN)data; PN 475 lib/aio.c static PN aio_work_new(Potion *P, PN cl, PN self) { PN 477 lib/aio.c return (PN)data; PN 492 lib/aio.c static PN aio_getaddrinfo_new(Potion *P, PN cl, PN self, PN 493 lib/aio.c PN cb, PN node, PN service, PN hints, PN loop) PN 506 lib/aio.c return (PN)data; PN 508 lib/aio.c static PN aio_process_options(Potion *P, PN cl, PN self) PN 511 lib/aio.c return (PN)data; PN 513 lib/aio.c static PN aio_cpu_info_new(Potion *P, PN cl, PN self) { PN 515 lib/aio.c return (PN)data; PN 517 lib/aio.c static PN aio_interface_address_new(Potion *P, PN cl, PN self) { PN 519 lib/aio.c return (PN)data; PN 527 lib/aio.c static PN aio_tty_new(Potion *P, PN cl, PN self, PN file, PN readable, PN loop) { PN 529 lib/aio.c PN_CHECK_INT((PN)PN_DATA(file)); PN 533 lib/aio.c return (PN)data; PN 540 lib/aio.c static PN aio_pipe_new(Potion *P, PN cl, PN self, PN ipc, PN loop) { PN 545 lib/aio.c return (PN)data; PN 556 lib/aio.c static PN aio_barrier_new(Potion *P, PN cl, PN self, PN count) { PN 561 lib/aio.c return (PN)data; PN 566 lib/aio.c static PN aio_sem_new(Potion *P, PN cl, PN self, PN value) { PN 571 lib/aio.c return (PN)data; PN 578 lib/aio.c static PN aio_fs_event_new(Potion *P, PN cl, PN self, PN filename, PN cb, PN flags, PN loop) { PN 588 lib/aio.c return (PN)data; PN 594 lib/aio.c static PN aio_async_new(Potion *P, PN cl, PN self, PN cb, PN loop) { PN 599 lib/aio.c return (PN)data; PN 601 lib/aio.c static PN aio_cond_new(Potion *P, PN cl, PN self) { PN 605 lib/aio.c return (PN)data; PN 607 lib/aio.c static PN aio_mutex_new(Potion *P, PN cl, PN self) { PN 611 lib/aio.c return (PN)data; PN 613 lib/aio.c static PN aio_rwlock_new(Potion *P, PN cl, PN self) { PN 617 lib/aio.c return (PN)data; PN 631 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 641 lib/aio.c if (cb) cb->method(P, (PN)cb, data, PN_NUM(status)); PN 681 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 687 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, PN_NUM(status), PN 688 lib/aio.c potion_ref(wrap->P, (PN)prev), potion_ref(wrap->P, (PN)curr)); PN 695 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 699 lib/aio.c cb->method(P, (PN)cb, (PN)data, PN_NUM(nread), PN 706 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 710 lib/aio.c cb->method(P, (PN)cb, (PN)data, PN_NUM(nread), PN 717 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 720 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data, (PN)arg); PN 726 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 729 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data); PN 735 lib/aio.c PN data = (PN)((char*)wrap - sizeof(struct PNData)); PN 738 lib/aio.c if (cb) cb->method(P, (PN)cb, (PN)data); PN 745 lib/aio.c static PN PN 746 lib/aio.c aio_version(Potion *P, PN cl, PN self) { PN 752 lib/aio.c static PN PN 753 lib/aio.c aio_version_string(Potion *P, PN cl, PN self) { PN 756 lib/aio.c static PN aio_size(Potion *P, PN cl, PN self) { PN 762 lib/aio.c static PN PN 763 lib/aio.c aio_run(Potion *P, PN cl, PN self, PN loop, PN mode) { PN 775 lib/aio.c static PN PN 776 lib/aio.c aio_walk(Potion *P, PN cl, PN self, PN loop, PN cb, PN arg) { PN 790 lib/aio.c static PN PN 791 lib/aio.c aio_tcp_open(Potion *P, PN cl, PN tcp, PN sock) { PN 798 lib/aio.c static PN PN 799 lib/aio.c aio_tcp_nodelay(Potion *P, PN cl, PN tcp, PN enable) { PN 806 lib/aio.c static PN PN 807 lib/aio.c aio_tcp_keepalive(Potion *P, PN cl, PN tcp, PN enable, PN delay) { PN 815 lib/aio.c static PN PN 816 lib/aio.c aio_tcp_simultaneous_accepts(Potion *P, PN cl, PN tcp, PN enable) { PN 823 lib/aio.c static PN PN 824 lib/aio.c aio_tcp_bind(Potion *P, PN cl, PN tcp, PN addr, PN port) { PN 843 lib/aio.c static PN PN 844 lib/aio.c aio_tcp_bind6(Potion *P, PN cl, PN tcp, PN addr, PN port) { PN 855 lib/aio.c static PN PN 856 lib/aio.c aio_tcp_getsockname(Potion *P, PN cl, PN tcp) { PN 863 lib/aio.c static PN PN 864 lib/aio.c aio_tcp_getpeername(Potion *P, PN cl, PN tcp) { PN 871 lib/aio.c static PN PN 872 lib/aio.c aio_tcp_connect(Potion *P, PN cl, PN tcp, PN req, PN addr, PN port, PN cb) { PN 893 lib/aio.c static PN PN 894 lib/aio.c aio_tcp_connect6(Potion *P, PN cl, PN tcp, PN req, PN addr, PN port, PN cb) { PN 909 lib/aio.c static PN PN 910 lib/aio.c aio_udp_open(Potion *P, PN cl, PN udp, PN sockfd) { PN 917 lib/aio.c static PN PN 918 lib/aio.c aio_udp_bind(Potion *P, PN cl, PN udp, PN addr, PN port, PN flags) { PN 937 lib/aio.c static PN PN 938 lib/aio.c aio_udp_bind6(Potion *P, PN cl, PN udp, PN addr, PN port, PN flags) { PN 950 lib/aio.c static PN PN 951 lib/aio.c aio_udp_getsockname(Potion *P, PN cl, PN udp) { PN 958 lib/aio.c static PN PN 959 lib/aio.c aio_udp_set_membership(Potion *P, PN cl, PN udp, PN mcaddr, PN ifaddr, PN membership) { PN 971 lib/aio.c static PN PN 972 lib/aio.c aio_udp_set_multicast_loop(Potion *P, PN cl, PN udp, PN on) { PN 981 lib/aio.c static PN PN 982 lib/aio.c aio_udp_set_multicast_ttl(Potion *P, PN cl, PN udp, PN ttl) { PN 990 lib/aio.c static PN PN 991 lib/aio.c aio_udp_set_broadcast(Potion *P, PN cl, PN udp, PN on) { PN 1000 lib/aio.c static PN PN 1001 lib/aio.c aio_udp_set_ttl(Potion *P, PN cl, PN udp, PN ttl) { PN 1010 lib/aio.c static PN PN 1011 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 1027 lib/aio.c static PN PN 1028 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 1084 lib/aio.c cb->method(wrap->P, (PN)cb, (PN)data, PN_NUM(nread), PN 1091 lib/aio.c static PN PN 1092 lib/aio.c aio_udp_recv_start(Potion *P, PN cl, PN udp, PN cb) { PN 1099 lib/aio.c static PN PN 1100 lib/aio.c aio_udp_recv_stop(Potion *P, PN cl, PN udp) { PN 1106 lib/aio.c static PN PN 1107 lib/aio.c aio_prepare_start(Potion *P, PN cl, PN self, PN cb) { PN 1114 lib/aio.c static PN PN 1115 lib/aio.c aio_prepare_stop(Potion *P, PN cl, PN self) { PN 1121 lib/aio.c static PN PN 1122 lib/aio.c aio_check_start(Potion *P, PN cl, PN self, PN cb) { PN 1128 lib/aio.c static PN PN 1129 lib/aio.c aio_check_stop(Potion *P, PN cl, PN self) { PN 1135 lib/aio.c static PN PN 1136 lib/aio.c aio_idle_start(Potion *P, PN cl, PN self, PN cb) { PN 1143 lib/aio.c static PN PN 1144 lib/aio.c aio_idle_stop(Potion *P, PN cl, PN self) { PN 1152 lib/aio.c static PN PN 1153 lib/aio.c aio_tty_set_mode(Potion *P, PN cl, PN tty, PN mode) { PN 1162 lib/aio.c static PN PN 1163 lib/aio.c aio_tty_reset_mode(Potion *P, PN cl, PN tty) { PN 1168 lib/aio.c static PN PN 1169 lib/aio.c aio_tty_get_winsize(Potion *P, PN cl, PN tty) { PN 1177 lib/aio.c static PN PN 1178 lib/aio.c aio_guess_handle(Potion *P, PN cl, PN file) { PN 1185 lib/aio.c static PN PN 1186 lib/aio.c aio_pipe_open(Potion *P, PN cl, PN pipe, PN file) { PN 1193 lib/aio.c static PN PN 1194 lib/aio.c aio_pipe_bind(Potion *P, PN cl, PN pipe, PN name) { PN 1201 lib/aio.c static PN PN 1202 lib/aio.c aio_pipe_connect(Potion *P, PN cl, PN pipe, PN req, PN name, PN cb) { PN 1212 lib/aio.c static PN PN 1213 lib/aio.c aio_pipe_pending_instances(Potion *P, PN cl, PN pipe, PN count) { PN 1220 lib/aio.c static PN PN 1221 lib/aio.c aio_shutdown(Potion *P, PN cl, PN stream, PN req, PN cb) { PN 1232 lib/aio.c static PN PN 1233 lib/aio.c aio_write(Potion *P, PN cl, PN stream, PN req, PN buf, PN bufcnt, PN cb) { PN 1244 lib/aio.c static PN PN 1245 lib/aio.c aio_listen(Potion *P, PN cl, PN stream, PN backlog, PN cb) { PN 1261 lib/aio.c static PN PN 1262 lib/aio.c aio_accept(Potion *P, PN cl, PN stream, PN client) { PN 1278 lib/aio.c static PN PN 1279 lib/aio.c aio_read_start(Potion *P, PN cl, PN self, PN cb) { PN 1286 lib/aio.c static PN PN 1287 lib/aio.c aio_read_stop(Potion *P, PN cl, PN self) { PN 1293 lib/aio.c static PN PN 1294 lib/aio.c aio_read2_start(Potion *P, PN cl, PN self, PN cb) { PN 1307 lib/aio.c static PN PN 1308 lib/aio.c aio_write2(Potion *P, PN cl, PN stream, PN req, PN buf, PN bufcnt, PN send_handle, PN cb) { PN 1321 lib/aio.c static PN PN 1322 lib/aio.c aio_is_readable(Potion *P, PN cl, PN stream) { PN 1328 lib/aio.c static PN PN 1329 lib/aio.c aio_is_writable(Potion *P, PN cl, PN stream) { PN 1340 lib/aio.c static PN PN 1341 lib/aio.c aio_is_closing(Potion *P, PN cl, PN stream) { PN 1349 lib/aio.c static PN PN 1350 lib/aio.c aio_is_active(Potion *P, PN cl, PN self) { PN 1358 lib/aio.c static PN PN 1359 lib/aio.c aio_async_send(Potion *P, PN cl, PN self) { PN 1364 lib/aio.c static PN PN 1365 lib/aio.c aio_timer_start(Potion *P, PN cl, PN self, PN cb, PN timeout, PN repeat) { PN 1374 lib/aio.c static PN PN 1375 lib/aio.c aio_timer_stop(Potion *P, PN cl, PN self) { PN 1385 lib/aio.c static PN PN 1386 lib/aio.c aio_timer_again(Potion *P, PN cl, PN self) { PN 1393 lib/aio.c static PN PN 1394 lib/aio.c aio_timer_get_repeat(Potion *P, PN cl, PN self) { PN 1404 lib/aio.c static PN PN 1405 lib/aio.c aio_timer_set_repeat(Potion *P, PN cl, PN self, PN repeat) { PN 1416 lib/aio.c static PN PN 1417 lib/aio.c aio_handle_uvsize(Potion *P, PN cl, PN self) { PN 1424 lib/aio.c static PN PN 1425 lib/aio.c aio_req_uvsize(Potion *P, PN cl, PN self) { PN 1441 lib/aio.c static PN PN 1442 lib/aio.c aio_close(Potion *P, PN cl, PN self, PN cb) { PN 1450 lib/aio.c static PN PN 1451 lib/aio.c aio_signal_start(Potion *P, PN cl, PN self, PN cb, PN signum) { PN 1459 lib/aio.c static PN PN 1460 lib/aio.c aio_signal_stop(Potion *P, PN cl, PN self) { PN 1470 lib/aio.c static PN aio_process_options_get(Potion *P, PN cl, PN self, PN key) { PN 1473 lib/aio.c PN v = potion_obj_get(P, 0, self, key); PN 1484 lib/aio.c static PN aio_process_options_set(Potion *P, PN cl, PN self, PN key, PN value) { PN 1514 lib/aio.c return (PN)self; PN 1521 lib/aio.c static PN aio_spawn(Potion *P, PN cl, PN self, PN options, PN loop) { PN 1526 lib/aio.c uv_process_options_t opts; PN v; PN 1534 lib/aio.c PN args = potion_bytes(P, size); PN 1540 lib/aio.c return (PN)data; PN 1545 lib/aio.c static PN aio_process_kill(Potion *P, PN cl, PN self, PN signum) { PN 1554 lib/aio.c static PN aio_kill(Potion *P, PN cl, PN self, PN pid, PN signum) { PN 1563 lib/aio.c static PN aio_fs_cleanup(Potion *P, PN cl, PN self) { PN 1572 lib/aio.c static PN aio_fs_close(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1586 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 1603 lib/aio.c static PN aio_fs_read(Potion *P, PN cl, PN self, PN fd, PN buf, PN length, PN offset, PN cb, PN loop) { PN 1618 lib/aio.c static PN aio_fs_unlink(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1631 lib/aio.c static PN aio_fs_write(Potion *P, PN cl, PN self, PN fd, PN buf, PN offset, PN cb, PN loop) { PN 1646 lib/aio.c static PN aio_fs_mkdir(Potion *P, PN cl, PN self, PN path, PN mode, PN cb, PN loop) { PN 1659 lib/aio.c static PN aio_fs_rmdir(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1672 lib/aio.c static PN aio_fs_readdir(Potion *P, PN cl, PN self, PN path, PN flags, PN cb, PN loop) { PN 1685 lib/aio.c static PN aio_fs_stat(Potion *P, PN cl, PN self, PN path, PN cb, PN loop) { PN 1697 lib/aio.c static PN aio_fs_fstat(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1711 lib/aio.c static PN aio_fs_rename(Potion *P, PN cl, PN self, PN path, PN newpath, PN cb, PN loop) { PN 1724 lib/aio.c static PN aio_fs_fsync(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1736 lib/aio.c static PN aio_fs_fdatasync(Potion *P, PN cl, PN self, PN fd, PN cb, PN loop) { PN 1750 lib/aio.c PN aio_vt = potion_class(P, 0, 0, 0); PN 1754 lib/aio.c PN aio_##T##_vt = potion_class(P, 0, paren##_vt, 0); \ PN 1761 lib/aio.c PN aio_##T##_vt = potion_class(P, 0, paren##_vt, 0); \ PN 1830 lib/aio.c PN udp_ivars = potion_tuple_with_size(P, 5); //sorted list of path names PN 1838 lib/aio.c PN aio_udp_vt = potion_class(P, 0, aio_stream_vt, udp_ivars); PN 1847 lib/aio.c PN po_ivars = potion_tuple_with_size(P, 5); //sorted list of path names PN 1857 lib/aio.c PN aio_po_vt = potion_class(P, 0, aio_vt, po_ivars); PN 1895 lib/aio.c PN aio_process_vt = potion_class(P, 0, aio_vt, 0); // with spawn as ctor PN 23 lib/buffile.c PN path; PN 33 lib/buffile.c PN potion_buffile_fopen(Potion *P, PN cl, PN ign, PN path, PN modestr) { PN 42 lib/buffile.c return (PN)self; PN 48 lib/buffile.c PN potion_buffile_tmpfile(Potion *P, PN cl, PN ign) { PN 56 lib/buffile.c return (PN)self; PN 64 lib/buffile.c PN potion_buffile_fdopen(Potion *P, PN cl, pn_ffile self, PN fd, PN modestr) { PN 71 lib/buffile.c return (PN)self; PN 83 lib/buffile.c PN potion_buffile_freopen(Potion *P, PN cl, pn_ffile self, PN path, PN modestr, pn_ffile stream) { PN 92 lib/buffile.c return (PN)self; PN 104 lib/buffile.c PN potion_buffile_fmemopen(Potion *P, PN cl, PN buf, PN modestr) { PN 113 lib/buffile.c return (PN)self; PN 120 lib/buffile.c PN potion_buffile_fclose(Potion *P, PN cl, pn_ffile self) { PN 126 lib/buffile.c PN potion_buffile_fgetc(Potion *P, PN cl, pn_ffile self) { PN 133 lib/buffile.c PN potion_buffile_fgets(Potion *P, PN cl, pn_ffile self) { PN 145 lib/buffile.c PN potion_buffile_fread(Potion *P, PN cl, pn_ffile self, PN buf, PN size, PN nitems) { PN 157 lib/buffile.c PN potion_buffile_fwrite(Potion *P, PN cl, pn_ffile self, PN buf, PN size, PN nitems) { PN 177 lib/buffile.c PN potion_buffile_fputc(Potion *P, PN cl, pn_ffile self, PN byte) { PN 184 lib/buffile.c PN potion_buffile_fputs(Potion *P, PN cl, pn_ffile self, PN str) { PN 193 lib/buffile.c PN potion_buffile_fflush(Potion *P, PN cl, pn_ffile self) { PN 203 lib/buffile.c PN potion_buffile_fseek(Potion *P, PN cl, pn_ffile self, PN offset, PN whence) { PN 212 lib/buffile.c PN potion_buffile_ftell(Potion *P, PN cl, pn_ffile self) { PN 221 lib/buffile.c PN potion_buffile_feof(Potion *P, PN cl, pn_ffile self) { PN 227 lib/buffile.c PN potion_buffile_fileno(Potion *P, PN cl, pn_ffile self) { PN 233 lib/buffile.c PN potion_buffile_unlink(Potion *P, PN cl, pn_ffile self) { PN 243 lib/buffile.c PN potion_buffile_flockfile(Potion *P, PN cl, pn_ffile self) { PN 249 lib/buffile.c PN potion_buffile_ftrylockfile(Potion *P, PN cl, pn_ffile self) { PN 254 lib/buffile.c PN potion_buffile_funlockfile(Potion *P, PN cl, pn_ffile self) { PN 263 lib/buffile.c PN potion_buffile_fprintf(Potion *P, PN cl, pn_ffile self, PN fmt, ...) { PN 269 lib/buffile.c PN potion_buffile_string(Potion *P, PN cl, pn_ffile self) { PN 272 lib/buffile.c PN str; PN 287 lib/buffile.c PN ffile_vt = potion_type_new2(P, PN_TUSER, PN_VTABLE(PN_TFILE), PN_STR("BufFile")); PN 20 lib/pcre/pcre.c static PN potion_string_boolmatch(Potion *P, PN cl, PN self, PN str) { PN 23 lib/pcre/pcre.c static PN potion_bytes_boolmatch(Potion *P, PN cl, PN self, PN str) { PN 26 lib/pcre/pcre.c static PN potion_string_listmatch(Potion *P, PN cl, PN self, PN str) { PN 28 lib/pcre/pcre.c static PN potion_bytes_listmatch(Potion *P, PN cl, PN self, PN str) { PN 31 lib/pcre/pcre.c static PN potion_string_qr(Potion *P, PN cl, PN self, PN qr) { PN 33 lib/pcre/pcre.c static PN potion_bytes_qr(Potion *P, PN cl, PN self, PN qr) { PN 36 lib/pcre/pcre.c static PN potion_string_study(Potion *P, PN cl, PN self) { PN 39 lib/pcre/pcre.c static PN potion_string_replace(Potion *P, PN cl, PN self, PN str, PN with) { PN 42 lib/pcre/pcre.c static PN potion_bytes_replace(Potion *P, PN cl, PN self, PN str, PN with) { PN 45 lib/pcre/pcre.c static PN potion_string_compile(Potion *P, PN cl, PN self) { PN 48 lib/pcre/pcre.c static PN potion_match_at(Potion *P, PN cl, PN self) { PN 51 lib/pcre/pcre.c static PN potion_match_result(Potion *P, PN cl, PN self, PN str) { PN 55 lib/pcre/pcre.c PN str_vt = PN_VTABLE(PN_TSTRING); PN 56 lib/pcre/pcre.c PN byt_vt = PN_VTABLE(PN_TBYTES); PN 58 lib/pcre/pcre.c PN mat_vt = potion_type_new2(P, PN_TUSER, PN_VTABLE(PN_TLICK), potion_str(P, "Match")); PN 9 lib/readline/readline.c PN pn_readline(Potion *P, PN cl, PN self, PN start) { PN 11 lib/readline/readline.c PN r; PN 28 syn/syntax-p5.y #define YYSTYPE PN PN 68 syn/syntax-p5.y static PN yylastline(struct _GREG *G, int pos); PN 73 syn/syntax-p5.y s = (PN)(G->buf+G->pos); PN 171 syn/syntax-p5.y { PN s1 = PN_TUP0(); PN_TUPLE_EACH(PN_S(l,0), i, v, { PN 176 syn/syntax-p5.y { PN s1 = PN_TUP0(); PN_TUPLE_EACH(PN_S(l,0), i, v, { PN 429 syn/syntax-p5.y q1 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 460 syn/syntax-p5.y q2 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 557 syn/syntax-p5.y PN p2_parse(Potion *P, PN code, char *filename) { PN 560 syn/syntax-p5.y PN oldinput = P->input; PN 561 syn/syntax-p5.y PN oldsource = P->source; PN 586 syn/syntax-p5.y PN potion_sig(Potion *P, char *fmt) { PN 587 syn/syntax-p5.y PN out = PN_NIL; PN 593 syn/syntax-p5.y PN oldinput = P->input; PN 594 syn/syntax-p5.y PN oldsource = P->source; PN 614 syn/syntax-p5.y PN p2_sig(Potion *P, char *fmt) { PN 615 syn/syntax-p5.y PN out = PN_NIL; PN 621 syn/syntax-p5.y PN oldinput = P->input; PN 622 syn/syntax-p5.y PN oldsource = P->source; PN 642 syn/syntax-p5.y int potion_sig_find(Potion *P, PN cl, PN name) PN 645 syn/syntax-p5.y PN sig; PN 669 syn/syntax-p5.y static PN yylastline(struct _GREG *G, int pos) { PN 24 syn/syntax.y #define YYSTYPE PN PN 58 syn/syntax.y static PN yylastline(struct _GREG *G, int pos); PN 258 syn/syntax.y q1 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 320 syn/syntax.y q2 { $$ = potion_bytes_string(P, PN_NIL, (PN)P->pbuf) } PN 365 syn/syntax.y PN potion_parse(Potion *P, PN code, char *filename) { PN 368 syn/syntax.y PN oldinput = P->input; PN 369 syn/syntax.y PN oldsource = P->source; PN 419 syn/syntax.y PN potion_sig(Potion *P, char *fmt) { PN 420 syn/syntax.y PN out = PN_NIL; PN 426 syn/syntax.y PN oldinput = P->input; PN 427 syn/syntax.y PN oldsource = P->source; PN 448 syn/syntax.y int potion_sig_find(Potion *P, PN cl, PN name) PN 451 syn/syntax.y PN sig; PN 462 syn/syntax.y PN prev = PN_NIL; PN 474 syn/syntax.y static PN yylastline(struct _GREG *G, int pos) { 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 17 test/api/p2-test.c PN num = PN_NUM(490); PN 34 test/api/p2-test.c PN zero = PN_ZERO; PN 43 test/api/p2-test.c PN pos = PN_NUM(10891); PN 52 test/api/p2-test.c PN neg = PN_NUM(-4343); PN 61 test/api/p2-test.c PN dec = potion_decimal(P, "14466", 5); PN 73 test/api/p2-test.c PN empty = PN_TUP0(); PN 81 test/api/p2-test.c PN tup = potion_tuple_with_size(P, 3); PN 92 test/api/p2-test.c PN sig = p2_sig(P, "Num $num1, Num $num2"); PN 100 test/api/p2-test.c PN add = p2_eval(P, potion_str(P, "sub($x,$y){$x+$y}")); PN 102 test/api/p2-test.c PN num = addfn(P, add, 0, PN_NUM(3), PN_NUM(5)); PN 108 test/api/p2-test.c while ((PN)scanptr < (PN)P->mem->birth_cur) { PN 113 test/api/p2-test.c CuAssert(T, "allocated object goes beyond GC pointer", (PN)scanptr <= (PN)P->mem->birth_cur); PN 15 test/api/potion-test.c PN num = PN_NUM(490); PN 33 test/api/potion-test.c PN zero = PN_ZERO; PN 42 test/api/potion-test.c PN pos = PN_NUM(10891); PN 51 test/api/potion-test.c PN neg = PN_NUM(-4343); PN 60 test/api/potion-test.c PN dec = potion_decimal(P, "14466", 5); PN 72 test/api/potion-test.c PN empty = PN_TUP0(); PN 80 test/api/potion-test.c PN tup = potion_tuple_with_size(P, 3); PN 92 test/api/potion-test.c PN sig = potion_sig(P, "num1=N,num2=N"); PN 146 test/api/potion-test.c PN p2; PN 160 test/api/potion-test.c PN add, num; PN 222 test/api/potion-test.c while ((PN)scanptr < (PN)M->birth_cur) { PN 235 test/api/potion-test.c potion_type((PN)scanptr)); PN 238 test/api/potion-test.c potion_type((PN)prev), AS_STR(PN_VTABLE(PN_TYPE((PN)prev)))); PN 247 test/api/potion-test.c CuAssert(T, "allocated object goes beyond GC pointer", (PN)scanptr <= (PN)M->birth_cur);