Merge branch 'pocketpy:main' into determinism-math

This commit is contained in:
PrimedErwin 2025-05-23 15:20:33 +08:00 committed by GitHub
commit 0f4acc1437
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 0 deletions

View File

@ -12,6 +12,10 @@
#define PK_ENABLE_OS 1 #define PK_ENABLE_OS 1
#endif #endif
#ifndef PK_ENABLE_DETERMINISM // must be enabled from cmake
#define PK_ENABLE_DETERMINISM 0
#endif
#ifndef PK_ENABLE_WATCHDOG // can be overridden by cmake #ifndef PK_ENABLE_WATCHDOG // can be overridden by cmake
#define PK_ENABLE_WATCHDOG 0 #define PK_ENABLE_WATCHDOG 0
#endif #endif

View File

@ -11,6 +11,8 @@ class TValue[T]:
# TValue_float = TValue[float] # TValue_float = TValue[float]
# TValue_vec2i = TValue[vec2i] # TValue_vec2i = TValue[vec2i]
# TValue_vec2 = TValue[vec2] # TValue_vec2 = TValue[vec2]
configmacros: dict[str, int]
def memory_usage() -> str: def memory_usage() -> str:
"""Return a summary of the memory usage.""" """Return a summary of the memory usage."""

View File

@ -454,6 +454,13 @@ static void pk_ComputeThread__register(py_Ref mod) {
py_bindmethod(type, "eval", ComputeThread_eval); py_bindmethod(type, "eval", ComputeThread_eval);
} }
static void pkpy_configmacros_add(py_Ref dict, const char* key, int val){
assert(dict->type == tp_dict);
py_TValue tmp;
py_newint(&tmp, val);
py_dict_setitem_by_str(dict, key, &tmp);
}
void pk__add_module_pkpy() { void pk__add_module_pkpy() {
py_Ref mod = py_newmodule("pkpy"); py_Ref mod = py_newmodule("pkpy");
@ -500,6 +507,14 @@ void pk__add_module_pkpy() {
#endif #endif
pk_ComputeThread__register(mod); pk_ComputeThread__register(mod);
py_Ref configmacros = py_emplacedict(mod, py_name("configmacros"));
py_newdict(configmacros);
pkpy_configmacros_add(configmacros, "PK_ENABLE_OS", PK_ENABLE_OS);
pkpy_configmacros_add(configmacros, "PK_ENABLE_DETERMINISM", PK_ENABLE_DETERMINISM);
pkpy_configmacros_add(configmacros, "PK_ENABLE_WATCHDOG", PK_ENABLE_WATCHDOG);
pkpy_configmacros_add(configmacros, "PK_GC_MIN_THRESHOLD", PK_GC_MIN_THRESHOLD);
pkpy_configmacros_add(configmacros, "PK_VM_STACK_SIZE", PK_VM_STACK_SIZE);
} }
#undef DEF_TVALUE_METHODS #undef DEF_TVALUE_METHODS