up
This commit is contained in:
blueloveTH 2023-02-01 20:15:40 +08:00
parent 1a216f8b74
commit a0a9bde8d7
4 changed files with 7 additions and 14 deletions

View File

@ -6616,7 +6616,6 @@ extern "C" {
/// ///
/// !!! /// !!!
/// If the pointer is not allocated by `pkpy_xxx_xxx`, the behavior is undefined. /// If the pointer is not allocated by `pkpy_xxx_xxx`, the behavior is undefined.
/// For char*, you can also use trivial `delete` in your language.
/// !!! /// !!!
void pkpy_delete(void* p){ void pkpy_delete(void* p){
for(int i = 0; i < _pkLookupTable.size(); i++){ for(int i = 0; i < _pkLookupTable.size(); i++){
@ -6685,7 +6684,10 @@ extern "C" {
vm->_lazy_modules[name] = source; vm->_lazy_modules[name] = source;
} }
void __vm_init(VM* vm){ __EXPORT
/// Create a virtual machine.
VM* pkpy_new_vm(bool use_stdio){
VM* vm = pkpy_allocate(VM, use_stdio);
__initializeBuiltinFunctions(vm); __initializeBuiltinFunctions(vm);
__add_module_sys(vm); __add_module_sys(vm);
__add_module_time(vm); __add_module_time(vm);
@ -6699,13 +6701,6 @@ extern "C" {
vm->_exec(code, vm->builtins, pkpy::make_shared<PyVarDict>()); vm->_exec(code, vm->builtins, pkpy::make_shared<PyVarDict>());
pkpy_vm_add_module(vm, "random", __RANDOM_CODE); pkpy_vm_add_module(vm, "random", __RANDOM_CODE);
}
__EXPORT
/// Create a virtual machine.
VM* pkpy_new_vm(bool use_stdio){
VM* vm = pkpy_allocate(VM, use_stdio);
__vm_init(vm);
return vm; return vm;
} }

@ -1 +1 @@
Subproject commit c951825d2533b000213d57f027569fc08ed7f02a Subproject commit e426f6bf9393c4e49de64bbd13b5736ba3aae0e0

View File

@ -21,8 +21,6 @@
#include <iomanip> #include <iomanip>
#include <memory> #include <memory>
#include <functional> #include <functional>
#include <atomic>
#include <iostream> #include <iostream>
#include "hash_table8.hpp" #include "hash_table8.hpp"

View File

@ -25,13 +25,13 @@ int main(int argc, char** argv){
return line.c_str(); return line.c_str();
}); });
if(argc == 1){ if(argc == 1){
REPL repl(vm); REPL* repl = pkpy_new_repl(vm);
int result = -1; int result = -1;
while(true){ while(true){
(*vm->_stdout) << (result==0 ? "... " : ">>> "); (*vm->_stdout) << (result==0 ? "... " : ">>> ");
std::string line; std::string line;
std::getline(std::cin, line); std::getline(std::cin, line);
result = pkpy_repl_input(&repl, line.c_str()); result = pkpy_repl_input(repl, line.c_str());
} }
pkpy_delete(vm); pkpy_delete(vm);
return 0; return 0;