mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 11:30:18 +00:00
some optimize
This commit is contained in:
parent
3064aecde6
commit
be4ce003a3
@ -282,7 +282,7 @@ PyVar VM::run_frame(Frame* frame){
|
|||||||
const Str& source = it2->second;
|
const Str& source = it2->second;
|
||||||
CodeObject_ code = compile(source, name, EXEC_MODE);
|
CodeObject_ code = compile(source, name, EXEC_MODE);
|
||||||
PyVar _m = new_module(name);
|
PyVar _m = new_module(name);
|
||||||
_exec(code, _m, pkpy::make_shared<pkpy::NameDict>());
|
_exec(code, _m);
|
||||||
frame->push(_m);
|
frame->push(_m);
|
||||||
_lazy_modules.erase(it2);
|
_lazy_modules.erase(it2);
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ struct Frame {
|
|||||||
const i64 id;
|
const i64 id;
|
||||||
std::stack<std::pair<int, std::vector<PyVar>>> s_try_block;
|
std::stack<std::pair<int, std::vector<PyVar>>> s_try_block;
|
||||||
|
|
||||||
inline pkpy::NameDict& f_locals() noexcept { return *_locals; }
|
inline pkpy::NameDict& f_locals() noexcept { return _locals != nullptr ? *_locals : _module->attr(); }
|
||||||
inline pkpy::NameDict& f_globals() noexcept { return _module->attr(); }
|
inline pkpy::NameDict& f_globals() noexcept { return _module->attr(); }
|
||||||
|
|
||||||
inline PyVar* f_closure_try_get(const Str& name) noexcept {
|
inline PyVar* f_closure_try_get(const Str& name) noexcept {
|
||||||
@ -25,7 +25,7 @@ struct Frame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Frame(const CodeObject_ co, PyVar _module,
|
Frame(const CodeObject_ co, PyVar _module,
|
||||||
pkpy::shared_ptr<pkpy::NameDict> _locals, pkpy::shared_ptr<pkpy::NameDict> _closure=nullptr)
|
pkpy::shared_ptr<pkpy::NameDict> _locals=nullptr, pkpy::shared_ptr<pkpy::NameDict> _closure=nullptr)
|
||||||
: co(co), _module(_module), _locals(_locals), _closure(_closure), id(kFrameGlobalId++) { }
|
: co(co), _module(_module), _locals(_locals), _closure(_closure), id(kFrameGlobalId++) { }
|
||||||
|
|
||||||
inline const Bytecode& next_bytecode() {
|
inline const Bytecode& next_bytecode() {
|
||||||
|
@ -768,7 +768,7 @@ void add_module_random(VM* vm){
|
|||||||
});
|
});
|
||||||
|
|
||||||
CodeObject_ code = vm->compile(kRandomCode, "random.py", EXEC_MODE);
|
CodeObject_ code = vm->compile(kRandomCode, "random.py", EXEC_MODE);
|
||||||
vm->_exec(code, mod, pkpy::make_shared<pkpy::NameDict>());
|
vm->_exec(code, mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -889,7 +889,7 @@ extern "C" {
|
|||||||
add_module_os(vm);
|
add_module_os(vm);
|
||||||
|
|
||||||
CodeObject_ code = vm->compile(kBuiltinsCode, "<builtins>", EXEC_MODE);
|
CodeObject_ code = vm->compile(kBuiltinsCode, "<builtins>", EXEC_MODE);
|
||||||
vm->_exec(code, vm->builtins, pkpy::make_shared<pkpy::NameDict>());
|
vm->_exec(code, vm->builtins);
|
||||||
return vm;
|
return vm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
src/vm.h
2
src/vm.h
@ -216,7 +216,7 @@ public:
|
|||||||
if(_module == nullptr) _module = _main;
|
if(_module == nullptr) _module = _main;
|
||||||
try {
|
try {
|
||||||
CodeObject_ code = compile(source, filename, mode);
|
CodeObject_ code = compile(source, filename, mode);
|
||||||
return _exec(code, _module, pkpy::make_shared<pkpy::NameDict>());
|
return _exec(code, _module);
|
||||||
}catch (const pkpy::Exception& e){
|
}catch (const pkpy::Exception& e){
|
||||||
*_stderr << e.summary() << '\n';
|
*_stderr << e.summary() << '\n';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user