diff --git a/lingua-franca-ref.txt b/lingua-franca-ref.txt index 5fde102e7..1f7391f92 100644 --- a/lingua-franca-ref.txt +++ b/lingua-franca-ref.txt @@ -1 +1 @@ -single-threaded +master diff --git a/python/lib/modal_models/impl.c b/python/lib/modal_models/impl.c index 1b625b68f..eba365fa5 100644 --- a/python/lib/modal_models/impl.c +++ b/python/lib/modal_models/impl.c @@ -117,7 +117,7 @@ PyObject* convert_C_mode_to_py( ) { // Create the mode struct in Python mode_capsule_struct_t* cap = - (mode_capsule_struct_t*)PyObject_GC_New(mode_capsule_struct_t, &mode_capsule_t); + (mode_capsule_struct_t*)PyObject_New(mode_capsule_struct_t, &mode_capsule_t); if (cap == NULL) { lf_print_error_and_exit("Failed to convert mode."); } diff --git a/python/lib/python_tag.c b/python/lib/python_tag.c index 93a16eaa9..f8f8f3631 100644 --- a/python/lib/python_tag.c +++ b/python/lib/python_tag.c @@ -202,7 +202,7 @@ PyTypeObject PyTagType = { * @return PyObject* The tag in Python. */ py_tag_t* convert_C_tag_to_py(tag_t c_tag) { - py_tag_t* py_tag = PyObject_GC_New(py_tag_t, &PyTagType); + py_tag_t* py_tag = PyObject_New(py_tag_t, &PyTagType); if (py_tag == NULL) { lf_print_error_and_exit("Failed to convert tag from C to Python."); } diff --git a/python/lib/pythontarget.c b/python/lib/pythontarget.c index 47baa685a..99efdf0e7 100644 --- a/python/lib/pythontarget.c +++ b/python/lib/pythontarget.c @@ -437,7 +437,7 @@ void destroy_action_capsule(PyObject* capsule) { PyObject* convert_C_port_to_py(void* port, int width) { // Create the port struct in Python PyObject* cap = - (PyObject*)PyObject_GC_New(generic_port_capsule_struct, &py_port_capsule_t); + (PyObject*)PyObject_New(generic_port_capsule_struct, &py_port_capsule_t); if (cap == NULL) { lf_print_error_and_exit("Failed to convert port."); } @@ -506,7 +506,7 @@ PyObject* convert_C_action_to_py(void* action) { trigger_t* trigger = ((lf_action_base_t*)action)->trigger; // Create the action struct in Python - PyObject* cap = (PyObject*)PyObject_GC_New(generic_action_capsule_struct, &py_action_capsule_t); + PyObject* cap = (PyObject*)PyObject_New(generic_action_capsule_struct, &py_action_capsule_t); if (cap == NULL) { lf_print_error_and_exit("Failed to convert action."); } @@ -597,7 +597,16 @@ get_python_function(string module, string class, int instance_id, string func) { mbstowcs(wcwd, cwd, PATH_MAX); - Py_SetPath(wcwd); + // Deprecated: Py_SetPath(wcwd) + // Set Python's sys.path + PyObject* sys_path, * path; + sys_path = PySys_GetObject("path"); + // New reference + path = PyUnicode_FromWideChar(wcwd, wcslen(wcwd)); + if (sys_path != NULL && path != NULL) { + PyList_Insert(sys_path, 0, path); + } + Py_XDECREF(path); LF_PRINT_DEBUG("Loading module %s in %s.", module, cwd);