You are receiving this email because we wish you to use our cost-effective IT services.
We are a China based Custom Software Application Development provider. We offer full cycle custom software programming services, from product idea, software development to support and enhancement. We employ a large pool of software engineers coming from different backgrounds. We are able to balance product development efforts and project duration to your business needs.
Custom Application Development
Custom Software Development
iPhone Application Development
iPad Application Development
Mobile Application Development
Android Mobile Application Development
Soft Product Development
Game Design & Development
Game Testing & Quality Assurance
CRM Software Application Development
ERP Software Application Development
Enterprise Portal Solution
Sales Force Automation Solution
Game Design & Development
Knowledge Management Solution
Workflow Management Solution
SharePoint Development Services
Microsoft Online Services
Microsoft Azure Services
ITVIATSA Software Development
Pls send address to larryremove123(a)msn.com for remove
I converted Py_TYPE() and Py_SIZE() macros to static inline functions
in the future Python 3.11. It's a backward incompatible change. For
example, "Py_TYPE(obj) = type;" must be replaced with
You can use the upgrade_pythoncapi.py script of my pythoncapi_compat
project which does these changes for you: you just have to copy
pythoncapi_compat.h to your project. This header file provides new C
API functions like Py_NewRef() and Py_SET_TYPE() to old Python
versions, Python 2.7-3.11.
I already converted Py_TYPE() and Py_SIZE() macros in Python 3.10, but
it broke too many C extensions and so I had to revert the change. In
the meanwhile, I updated many C extensions and created the
pythoncapi_compat project. For example, Cython and numpy have been
updated to use Py_SET_TYPE() and Py_SET_SIZE(). Mercurial and
immutables projects now use pythoncapi_compat.
I'm interested by feedback on my pythoncapi_compat project ;-)
Tell me if you need help to update your project for Python 3.11 C API changes:
Night gathers, and now my watch begins. It shall not end until my death.
TL;DR; Is it safe to Py_DecRef an object that was created before Py_Finalize
after Py_Initialize was called to restart Python runtime?
I am debugging 3.9+ support in https://github.com/pythonnet/pythonnet
The issue I originally got is validate_list from gcmodule.c fails at
assert(prev == GC_PREV(head));
In debugging this, I sprinkled my code with calls to validate_list, and found
that the assertion fails in the following scenario:
PyObject* myObj = PyObject_Call(simple_class, empty_tuple, NULL);
validate_list(gc.generations, collecting_clear_unreachable_clear); // OK
validate_list(gc.generations, collecting_clear_unreachable_clear); // EXPLOSION
Now I have not yet tried to narrow down the steps further, because I realised
that I am unsure about the question in TL;DR;. E.g. is this use of myObj
supported by embedding API in general, or is this expected, that after
reinitializing the runtime Py_DecRef on old objects would break GC?
In my scenario simple_class is defined in Python as inheriting from object,
and only has two attributes set at runtime. One has value
builtins.StopIteration, and the other one is an instance of traceback.