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);