From b89395a1fee61cf58a2aadb9a2efdad33c6b315e Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Tue, 26 Dec 2023 21:52:05 +0800 Subject: [PATCH] some cleanup --- include/pocketpy/codeobject.h | 41 ---------- src/codeobject.cpp | 146 ---------------------------------- src/pocketpy.cpp | 5 -- src/vm.cpp | 12 --- 4 files changed, 204 deletions(-) diff --git a/include/pocketpy/codeobject.h b/include/pocketpy/codeobject.h index e02920e7..5affdb64 100644 --- a/include/pocketpy/codeobject.h +++ b/include/pocketpy/codeobject.h @@ -57,45 +57,6 @@ struct FuncDecl; using CodeObject_ = std::shared_ptr; using FuncDecl_ = std::shared_ptr; -// struct CodeObjectSerializer{ -// std::string buffer; -// int depth = 0; - -// std::set names; - -// static const char END = '\n'; - -// CodeObjectSerializer(); - -// void write_int(i64 v); -// void write_float(f64 v); -// void write_str(const Str& v); -// void write_none(); -// void write_ellipsis(); -// void write_bool(bool v); -// void write_begin_mark(); -// void write_name(StrName name); -// void write_end_mark(); - -// template -// void write_bytes(T v){ -// static_assert(std::is_trivially_copyable::value); -// buffer += 'x'; -// char* p = (char*)&v; -// for(int i=0; i> 4) & 0xf]; -// buffer += "0123456789abcdef"[c & 0xf]; -// } -// buffer += END; -// } - -// void write_object(VM* vm, PyObject* obj); -// void write_code(VM* vm, const CodeObject* co); -// std::string str(); -// }; - - struct CodeObject { std::shared_ptr src; Str name; @@ -117,8 +78,6 @@ struct CodeObject { CodeObject(std::shared_ptr src, const Str& name); void _gc_mark() const; - // void write(VM* vm, CodeObjectSerializer& ss) const; - // Str serialize(VM* vm) const; }; struct FuncDecl { diff --git a/src/codeobject.cpp b/src/codeobject.cpp index 90d937d4..91d73199 100644 --- a/src/codeobject.cpp +++ b/src/codeobject.cpp @@ -21,150 +21,4 @@ namespace pkpy{ this->argc = -1; this->decl = decl; } - - -// void CodeObject::write(VM* vm, CodeObjectSerializer& ss) const{ -// ss.write_begin_mark(); // [ -// ss.write_str(src->filename); // src->filename -// ss.write_int(src->mode); // src->mode -// ss.write_end_mark(); // ] -// ss.write_str(name); // name -// ss.write_bool(is_generator); // is_generator -// ss.write_begin_mark(); // [ -// for(Bytecode bc: codes){ -// if(StrName::is_valid(bc.arg)) ss.names.insert(StrName(bc.arg)); -// ss.write_bytes(bc); -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(int line: lines){ -// ss.write_int(line); // line -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(PyObject* o: consts){ -// ss.write_object(vm, o); -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(StrName vn: varnames){ -// ss.write_name(vn); // name -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(CodeBlock block: blocks){ -// ss.write_bytes(block); // block -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(auto& label: labels.items()){ -// ss.write_name(label.first); // label.first -// ss.write_int(label.second); // label.second -// } -// ss.write_end_mark(); // ] -// ss.write_begin_mark(); // [ -// for(auto& decl: func_decls){ -// ss.write_code(vm, decl->code.get()); // decl->code -// ss.write_begin_mark(); // [ -// for(int arg: decl->args) ss.write_int(arg); -// ss.write_end_mark(); // ] - -// ss.write_begin_mark(); // [ -// for(auto kw: decl->kwargs){ -// ss.write_int(kw.key); // kw.key -// ss.write_object(vm, kw.value); // kw.value -// } -// ss.write_end_mark(); // ] - -// ss.write_int(decl->starred_arg); -// ss.write_int(decl->starred_kwarg); -// ss.write_bool(decl->nested); -// } -// ss.write_end_mark(); // ] -// } - -// Str CodeObject::serialize(VM* vm) const{ -// CodeObjectSerializer ss; -// ss.write_code(vm, this); -// return ss.str(); -// } - - -// void CodeObjectSerializer::write_int(i64 v){ -// buffer += 'i'; -// buffer += std::to_string(v); -// buffer += END; -// } - -// void CodeObjectSerializer::write_float(f64 v){ -// buffer += 'f'; -// buffer += std::to_string(v); -// buffer += END; -// } - -// void CodeObjectSerializer::write_str(const Str& v){ -// buffer += 's'; -// buffer += v.escape(false).str(); -// buffer += END; -// } - -// void CodeObjectSerializer::write_none(){ -// buffer += 'N'; -// buffer += END; -// } - -// void CodeObjectSerializer::write_ellipsis(){ -// buffer += 'E'; -// buffer += END; -// } - -// void CodeObjectSerializer::write_bool(bool v){ -// buffer += 'b'; -// buffer += v ? '1' : '0'; -// buffer += END; -// } - -// void CodeObjectSerializer::write_begin_mark(){ -// buffer += '['; -// buffer += END; -// depth++; -// } - -// void CodeObjectSerializer::write_name(StrName name){ -// PK_ASSERT(StrName::is_valid(name.index)); -// buffer += 'n'; -// buffer += std::to_string(name.index); -// buffer += END; -// names.insert(name); -// } - -// void CodeObjectSerializer::write_end_mark(){ -// buffer += ']'; -// buffer += END; -// depth--; -// PK_ASSERT(depth >= 0); -// } - -// std::string CodeObjectSerializer::str(){ -// PK_ASSERT(depth == 0); -// for(auto name: names){ -// PK_ASSERT(StrName::is_valid(name.index)); -// write_name(name); -// write_str(name.sv()); -// } -// return std::move(buffer); -// } - -// CodeObjectSerializer::CodeObjectSerializer(){ -// write_str(PK_VERSION); -// } - -// void CodeObjectSerializer::write_code(VM* vm, const CodeObject* co){ -// buffer += '('; -// buffer += END; -// co->write(vm, *this); -// buffer += ')'; -// buffer += END; -// } - } // namespace pkpy \ No newline at end of file diff --git a/src/pocketpy.cpp b/src/pocketpy.cpp index ecc6c5ce..5f1debb7 100644 --- a/src/pocketpy.cpp +++ b/src/pocketpy.cpp @@ -1557,11 +1557,6 @@ void add_module_dis(VM* vm){ vm->stdout_write(vm->disassemble(code)); return vm->None; }); - - // vm->bind_func<1>(mod, "_s", [](VM* vm, ArgsView args) { - // CodeObject_ code = get_code(vm, args[0]); - // return VAR(code->serialize(vm)); - // }); } void add_module_gc(VM* vm){ diff --git a/src/vm.cpp b/src/vm.cpp index 5c7978ab..fc39be4d 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -1255,18 +1255,6 @@ void Dict::_probe_1(PyObject *key, bool &ok, int &i) const{ } } -// void CodeObjectSerializer::write_object(VM *vm, PyObject *obj){ -// if(is_int(obj)) write_int(_CAST(i64, obj)); -// else if(is_float(obj)) write_float(_CAST(f64, obj)); -// else if(is_type(obj, vm->tp_str)) write_str(_CAST(Str&, obj)); -// else if(is_type(obj, vm->tp_bool)) write_bool(_CAST(bool, obj)); -// else if(obj == vm->None) write_none(); -// else if(obj == vm->Ellipsis) write_ellipsis(); -// else{ -// throw std::runtime_error(fmt(OBJ_NAME(vm->_t(obj)).escape(), " is not serializable")); -// } -// } - void NativeFunc::check_size(VM* vm, ArgsView args) const{ if(args.size() != argc && argc != -1) { vm->TypeError(fmt("expected ", argc, " arguments, got ", args.size()));