diff --git a/include/pocketpy/export.h b/include/pocketpy/export.h index de3ab192..fd51fc52 100644 --- a/include/pocketpy/export.h +++ b/include/pocketpy/export.h @@ -1,17 +1,5 @@ #ifndef PK_EXPORT -#ifdef _WIN32 -#define PK_EXPORT __declspec(dllexport) -#elif __EMSCRIPTEN__ -#include -#define PK_EXPORT EMSCRIPTEN_KEEPALIVE -#else -#define PK_EXPORT __attribute__((visibility("default"))) -#endif - -#endif - - #ifdef _WIN32 #ifndef WIN32_LEAN_AND_MEAN @@ -24,12 +12,17 @@ #include +#define PK_EXPORT __declspec(dllexport) #elif __EMSCRIPTEN__ - #include +#define PK_EXPORT EMSCRIPTEN_KEEPALIVE +#else +#define PK_EXPORT __attribute__((visibility("default"))) +#endif -#elif __unix__ +#endif + +#ifdef __unix__ #include - #endif \ No newline at end of file diff --git a/include/pocketpy/pocketpy_c.h b/include/pocketpy/pocketpy_c.h index 3c725d4c..d25b33ba 100644 --- a/include/pocketpy/pocketpy_c.h +++ b/include/pocketpy/pocketpy_c.h @@ -108,52 +108,44 @@ PK_EXPORT bool pkpy_check_stack(pkpy_vm*, int free); //returns the number of elements on the stack PK_EXPORT int pkpy_stack_size(pkpy_vm*); -typedef void (*OutputHandler)(pkpy_vm*, const char*); -PK_EXPORT void pkpy_set_output_handlers(pkpy_vm*, OutputHandler stdout_handler, OutputHandler stderr_handler); - PK_EXPORT bool pkpy_getattr(pkpy_vm*, const char* name); PK_EXPORT bool pkpy_setattr(pkpy_vm*, const char* name); PK_EXPORT bool pkpy_eval(pkpy_vm*, const char* source); +/*********************************************************/ +PK_EXPORT +void pkpy_free(void* p); + +PK_EXPORT +void pkpy_vm_exec(void* vm, const char* source); + +PK_EXPORT +void pkpy_vm_exec_2(void* vm, const char* source, const char* filename, int mode, const char* module); + +PK_EXPORT +void pkpy_vm_compile(void* vm, const char* source, const char* filename, int mode, bool* ok, char** res); + +PK_EXPORT +void* pkpy_new_repl(void* vm); + +PK_EXPORT +bool pkpy_repl_input(void* r, const char* line); + +PK_EXPORT +void pkpy_vm_add_module(void* vm, const char* name, const char* source); + +PK_EXPORT +void* pkpy_new_vm(bool enable_os=true); + +PK_EXPORT +void pkpy_delete_vm(void* vm); + +PK_EXPORT +void pkpy_delete_repl(void* repl); + #ifdef __cplusplus } #endif -/*************************GLOBAL NAMESPACE*************************/ -extern "C" { - PK_EXPORT - void pkpy_free(void* p); - - PK_EXPORT - void pkpy_vm_exec(void* vm, const char* source); - - PK_EXPORT - void pkpy_vm_exec_2(void* vm, const char* source, const char* filename, int mode, const char* module); - - PK_EXPORT - void pkpy_vm_compile(void* vm, const char* source, const char* filename, int mode, bool* ok, char** res); - - PK_EXPORT - void* pkpy_new_repl(void* vm); - - PK_EXPORT - bool pkpy_repl_input(void* r, const char* line); - - PK_EXPORT - void pkpy_vm_add_module(void* vm, const char* name, const char* source); - - PK_EXPORT - void* pkpy_new_vm(bool enable_os=true); - - PK_EXPORT - void pkpy_delete_vm(void* vm); - - PK_EXPORT - void pkpy_delete_repl(void* repl); -} - - - - #endif diff --git a/src/pocketpy_c.cpp b/src/pocketpy_c.cpp index c9d23d78..4914eb7a 100644 --- a/src/pocketpy_c.cpp +++ b/src/pocketpy_c.cpp @@ -131,27 +131,15 @@ void gc_marker_ex(CVM* vm) { if(vm->error != nullptr) PK_OBJ_MARK(vm->error); } -static OutputHandler stdout_handler = nullptr; -static OutputHandler stderr_handler = nullptr; - -void pkpy_set_output_handlers(pkpy_vm*, OutputHandler stdout_handler, OutputHandler stderr_handler){ - ::stdout_handler = stdout_handler; - ::stderr_handler = stderr_handler; -} - pkpy_vm* pkpy_vm_create(bool use_stdio, bool enable_os) { CVM* vm = new CVM(enable_os); vm->c_data = new LuaStack(); vm->heap._gc_marker_ex = (void (*)(VM*)) gc_marker_ex; if (!use_stdio) { - vm->_stdout = [](VM* vm, const Str& s){ - std::string str = s.str(); - if (stdout_handler != nullptr) stdout_handler((pkpy_vm*)vm, str.c_str()); - }; - vm->_stderr = [](VM* vm, const Str& s){ - std::string str = s.str(); - if (stderr_handler != nullptr) stderr_handler((pkpy_vm*)vm, str.c_str()); + vm->_stdout = vm->_stderr = [](VM* vm, const Str& s){ + PK_UNUSED(vm); + PK_UNUSED(s); }; }