Nuitka-winsvc 2.2.2__cp311-cp311-win_amd64.whl → 2.3__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/METADATA +1 -1
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/RECORD +199 -198
- nuitka/Bytecodes.py +4 -2
- nuitka/HardImportRegistry.py +1 -0
- nuitka/MainControl.py +16 -10
- nuitka/ModuleRegistry.py +15 -0
- nuitka/OptionParsing.py +30 -8
- nuitka/Options.py +104 -44
- nuitka/PostProcessing.py +9 -8
- nuitka/PythonVersions.py +2 -1
- nuitka/Serialization.py +47 -30
- nuitka/Version.py +1 -1
- nuitka/build/Backend.scons +46 -19
- nuitka/build/CCompilerVersion.scons +3 -3
- nuitka/build/Onefile.scons +4 -4
- nuitka/build/SconsCaching.py +3 -2
- nuitka/build/SconsCompilerSettings.py +11 -5
- nuitka/build/SconsInterface.py +22 -6
- nuitka/build/SconsUtils.py +9 -1
- nuitka/build/include/nuitka/allocator.h +58 -2
- nuitka/build/include/nuitka/compiled_frame.h +48 -13
- nuitka/build/include/nuitka/compiled_function.h +4 -0
- nuitka/build/include/nuitka/constants.h +6 -0
- nuitka/build/include/nuitka/exception_groups.h +6 -6
- nuitka/build/include/nuitka/exceptions.h +3 -3
- nuitka/build/include/nuitka/freelists.h +11 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +5 -4
- nuitka/build/include/nuitka/helper/lists.h +5 -5
- nuitka/build/include/nuitka/helper/lists_generated.h +12 -12
- nuitka/build/include/nuitka/helper/sequences.h +6 -0
- nuitka/build/include/nuitka/helper/slices.h +14 -8
- nuitka/build/include/nuitka/helper/subscripts.h +1 -184
- nuitka/build/include/nuitka/helper/tuples.h +42 -33
- nuitka/build/include/nuitka/importing.h +5 -0
- nuitka/build/include/nuitka/prelude.h +35 -2
- nuitka/build/include/nuitka/safe_string_ops.h +1 -0
- nuitka/build/include/nuitka/threading.h +13 -10
- nuitka/build/static_src/CompiledAsyncgenType.c +19 -8
- nuitka/build/static_src/CompiledCellType.c +1 -1
- nuitka/build/static_src/CompiledCodeHelpers.c +18 -16
- nuitka/build/static_src/CompiledCoroutineType.c +23 -19
- nuitka/build/static_src/CompiledFrameType.c +46 -34
- nuitka/build/static_src/CompiledFunctionType.c +55 -34
- nuitka/build/static_src/CompiledGeneratorType.c +21 -19
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +127 -130
- nuitka/build/static_src/CompiledMethodType.c +15 -17
- nuitka/build/static_src/HelpersAllocator.c +71 -0
- nuitka/build/static_src/HelpersAttributes.c +1 -1
- nuitka/build/static_src/HelpersBuiltin.c +5 -5
- nuitka/build/static_src/HelpersBytes.c +2 -2
- nuitka/build/static_src/HelpersCalling.c +3 -0
- nuitka/build/static_src/HelpersCallingGenerated.c +131 -131
- nuitka/build/static_src/HelpersComparisonEq.c +329 -329
- nuitka/build/static_src/HelpersComparisonEqUtils.c +3 -1
- nuitka/build/static_src/HelpersComparisonGe.c +322 -322
- nuitka/build/static_src/HelpersComparisonGt.c +321 -321
- nuitka/build/static_src/HelpersComparisonLe.c +322 -322
- nuitka/build/static_src/HelpersComparisonLt.c +321 -321
- nuitka/build/static_src/HelpersComparisonNe.c +329 -329
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +10 -6
- nuitka/build/static_src/HelpersDeepcopy.c +10 -8
- nuitka/build/static_src/HelpersDictionaries.c +17 -11
- nuitka/build/static_src/HelpersDictionariesGenerated.c +65 -29
- nuitka/build/static_src/HelpersExceptions.c +107 -9
- nuitka/build/static_src/HelpersFilesystemPaths.c +64 -4
- nuitka/build/static_src/HelpersFloats.c +20 -14
- nuitka/build/static_src/HelpersImport.c +1 -1
- nuitka/build/static_src/HelpersJitSources.c +1 -1
- nuitka/build/static_src/HelpersLists.c +29 -19
- nuitka/build/static_src/HelpersListsGenerated.c +24 -24
- nuitka/build/static_src/HelpersMatching.c +32 -5
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +90 -63
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +4 -4
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +33 -33
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +33 -33
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +33 -33
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +30 -30
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +7 -7
- nuitka/build/static_src/HelpersOperationBinaryMod.c +90 -90
- nuitka/build/static_src/HelpersOperationBinaryMult.c +64 -58
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryPow.c +27 -27
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +30 -30
- nuitka/build/static_src/HelpersOperationBinarySub.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +24 -24
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +67 -49
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +25 -25
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +25 -25
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +25 -25
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +28 -28
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +18 -18
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +10 -10
- nuitka/build/static_src/HelpersOperationInplaceMod.c +70 -70
- nuitka/build/static_src/HelpersOperationInplaceMult.c +33 -33
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +28 -28
- nuitka/build/static_src/HelpersOperationInplacePow.c +28 -28
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +18 -18
- nuitka/build/static_src/HelpersOperationInplaceSub.c +28 -28
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +28 -28
- nuitka/build/static_src/HelpersRaising.c +10 -3
- nuitka/build/static_src/HelpersSafeStrings.c +14 -4
- nuitka/build/static_src/HelpersSlices.c +12 -5
- nuitka/build/static_src/HelpersStrings.c +1 -1
- nuitka/build/static_src/HelpersTuples.c +20 -15
- nuitka/build/static_src/InspectPatcher.c +74 -6
- nuitka/build/static_src/MainProgram.c +90 -25
- nuitka/build/static_src/MetaPathBasedLoader.c +81 -45
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +2 -2
- nuitka/build/static_src/OnefileBootstrap.c +17 -20
- nuitka/code_generation/CodeGeneration.py +5 -2
- nuitka/code_generation/ConstantCodes.py +2 -2
- nuitka/code_generation/DictCodes.py +2 -2
- nuitka/code_generation/GlobalConstants.py +5 -0
- nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
- nuitka/code_generation/ListCodes.py +2 -2
- nuitka/code_generation/LocalsDictCodes.py +1 -1
- nuitka/code_generation/ModuleCodes.py +19 -0
- nuitka/code_generation/PackageResourceCodes.py +14 -0
- nuitka/code_generation/SliceCodes.py +3 -3
- nuitka/code_generation/SubscriptCodes.py +5 -13
- nuitka/code_generation/TupleCodes.py +1 -1
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +7 -7
- nuitka/code_generation/templates/CodeTemplatesConstants.py +7 -5
- nuitka/code_generation/templates/CodeTemplatesLoader.py +2 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +78 -54
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +8 -8
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +5 -5
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +2 -2
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +2 -2
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +57 -21
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +5 -5
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +11 -11
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +11 -11
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +10 -10
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +4 -1
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +4 -1
- nuitka/finalizations/FinalizeMarkups.py +0 -18
- nuitka/freezer/DependsExe.py +9 -4
- nuitka/freezer/DllDependenciesMacOS.py +1 -1
- nuitka/freezer/DllDependenciesWin32.py +1 -1
- nuitka/freezer/ImportDetection.py +1 -0
- nuitka/freezer/IncludedDataFiles.py +13 -4
- nuitka/freezer/Onefile.py +0 -1
- nuitka/freezer/Standalone.py +3 -1
- nuitka/importing/ImportCache.py +3 -2
- nuitka/importing/Importing.py +16 -3
- nuitka/importing/StandardLibrary.py +4 -0
- nuitka/nodes/ChildrenHavingMixins.py +2 -0
- nuitka/nodes/ExpressionBasesGenerated.py +4 -0
- nuitka/nodes/HardImportNodesGenerated.py +83 -0
- nuitka/nodes/ModuleNodes.py +10 -2
- nuitka/nodes/OsSysNodes.py +16 -0
- nuitka/nodes/SubscriptNodes.py +3 -3
- nuitka/plugins/PluginBase.py +2 -0
- nuitka/plugins/standard/DataFilesPlugin.py +22 -1
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +3 -3
- nuitka/plugins/standard/OptionsNannyPlugin.py +9 -41
- nuitka/plugins/standard/PkgResourcesPlugin.py +8 -2
- nuitka/plugins/standard/PySidePyQtPlugin.py +4 -0
- nuitka/plugins/standard/standard.nuitka-package.config.yml +29 -13
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +2 -2
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +2 -2
- nuitka/specs/HardImportSpecs.py +3 -0
- nuitka/specs/ParameterSpecs.py +26 -15
- nuitka/tools/general/find_module/FindModuleCode.py +3 -2
- nuitka/tools/specialize/CTypeDescriptions.py +11 -9
- nuitka/tools/testing/Common.py +12 -5
- nuitka/tools/testing/SearchModes.py +5 -1
- nuitka/tools/watch/GitHub.py +1 -7
- nuitka/tree/Building.py +9 -6
- nuitka/tree/ReformulationMatchStatements.py +39 -3
- nuitka/tree/TreeHelpers.py +8 -0
- nuitka/utils/CStrings.py +7 -0
- nuitka/utils/Execution.py +10 -1
- nuitka/utils/FileOperations.py +21 -13
- nuitka/utils/Images.py +1 -1
- nuitka/utils/Importing.py +24 -0
- nuitka/utils/ReExecute.py +7 -3
- nuitka/utils/SharedLibraries.py +17 -0
- nuitka/utils/Yaml.py +9 -1
- {Nuitka_winsvc-2.2.2.data → Nuitka_winsvc-2.3.data}/scripts/nuitka-run.bat +0 -0
- {Nuitka_winsvc-2.2.2.data → Nuitka_winsvc-2.3.data}/scripts/nuitka.bat +0 -0
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/WHEEL +0 -0
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.2.2.dist-info → Nuitka_winsvc-2.3.dist-info}/top_level.txt +0 -0
|
@@ -8,8 +8,44 @@
|
|
|
8
8
|
#include "nuitka/prelude.h"
|
|
9
9
|
#endif
|
|
10
10
|
|
|
11
|
+
void *(*python_obj_malloc)(void *ctx, size_t size) = NULL;
|
|
12
|
+
void *(*python_mem_malloc)(void *ctx, size_t size) = NULL;
|
|
13
|
+
void *(*python_mem_calloc)(void *ctx, size_t nelem, size_t elsize) = NULL;
|
|
14
|
+
|
|
15
|
+
#if defined(Py_DEBUG)
|
|
16
|
+
void *python_obj_ctx = NULL;
|
|
17
|
+
void *python_mem_ctx = NULL;
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
void initNuitkaAllocators(void) {
|
|
21
|
+
// PyMem_SetupDebugHooks();
|
|
22
|
+
|
|
23
|
+
PyMemAllocatorEx allocators;
|
|
24
|
+
|
|
25
|
+
PyMem_GetAllocator(PYMEM_DOMAIN_OBJ, &allocators);
|
|
26
|
+
|
|
27
|
+
#if defined(Py_DEBUG)
|
|
28
|
+
python_obj_ctx = allocators.ctx;
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
python_obj_malloc = allocators.malloc;
|
|
32
|
+
|
|
33
|
+
PyMem_GetAllocator(PYMEM_DOMAIN_MEM, &allocators);
|
|
34
|
+
|
|
35
|
+
#if defined(Py_DEBUG)
|
|
36
|
+
python_mem_ctx = allocators.ctx;
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
python_mem_malloc = allocators.malloc;
|
|
40
|
+
python_mem_calloc = allocators.calloc;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#if PYTHON_VERSION >= 0x3b0
|
|
44
|
+
|
|
11
45
|
typedef struct _gc_runtime_state GCState;
|
|
12
46
|
|
|
47
|
+
#if PYTHON_VERSION < 0x3d0
|
|
48
|
+
|
|
13
49
|
#define AS_GC(o) ((PyGC_Head *)(((char *)(o)) - sizeof(PyGC_Head)))
|
|
14
50
|
#define FROM_GC(g) ((PyObject *)(((char *)(g)) + sizeof(PyGC_Head)))
|
|
15
51
|
|
|
@@ -596,8 +632,19 @@ static Py_ssize_t Nuitka_gc_collect_generations(PyThreadState *tstate) {
|
|
|
596
632
|
return n;
|
|
597
633
|
}
|
|
598
634
|
|
|
635
|
+
#else
|
|
636
|
+
|
|
637
|
+
static void Nuitka_Py_ScheduleGC(PyThreadState *tstate) {
|
|
638
|
+
if (!_Py_eval_breaker_bit_is_set(tstate, _PY_GC_SCHEDULED_BIT)) {
|
|
639
|
+
_Py_set_eval_breaker_bit(tstate, _PY_GC_SCHEDULED_BIT);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
#endif
|
|
644
|
+
|
|
599
645
|
// This is called during object creation and might trigger garbage collection
|
|
600
646
|
void Nuitka_PyObject_GC_Link(PyObject *op) {
|
|
647
|
+
#if PYTHON_VERSION < 0x3d0
|
|
601
648
|
PyGC_Head *g = AS_GC(op);
|
|
602
649
|
|
|
603
650
|
PyThreadState *tstate = _PyThreadState_GET();
|
|
@@ -614,8 +661,32 @@ void Nuitka_PyObject_GC_Link(PyObject *op) {
|
|
|
614
661
|
Nuitka_gc_collect_generations(tstate);
|
|
615
662
|
gcstate->collecting = 0;
|
|
616
663
|
}
|
|
664
|
+
#else
|
|
665
|
+
PyGC_Head *gc = _Py_AS_GC(op);
|
|
666
|
+
|
|
667
|
+
// gc must be correctly aligned
|
|
668
|
+
_PyObject_ASSERT(op, ((uintptr_t)gc & (sizeof(uintptr_t) - 1)) == 0);
|
|
669
|
+
|
|
670
|
+
// TODO: Have this passed.
|
|
671
|
+
|
|
672
|
+
PyThreadState *tstate = _PyThreadState_GET();
|
|
673
|
+
GCState *gcstate = &tstate->interp->gc;
|
|
674
|
+
|
|
675
|
+
gc->_gc_next = 0;
|
|
676
|
+
gc->_gc_prev = 0;
|
|
677
|
+
|
|
678
|
+
gcstate->young.count++;
|
|
679
|
+
gcstate->heap_size++;
|
|
680
|
+
|
|
681
|
+
if (gcstate->young.count > gcstate->young.threshold && gcstate->enabled && gcstate->young.threshold &&
|
|
682
|
+
!_Py_atomic_load_int_relaxed(&gcstate->collecting) && !_PyErr_Occurred(tstate)) {
|
|
683
|
+
Nuitka_Py_ScheduleGC(tstate);
|
|
684
|
+
}
|
|
685
|
+
#endif
|
|
617
686
|
}
|
|
618
687
|
|
|
688
|
+
#endif
|
|
689
|
+
|
|
619
690
|
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
620
691
|
// integrates with CPython, but also works on its own.
|
|
621
692
|
//
|
|
@@ -38,7 +38,7 @@ PyObject *CALL_BUILTIN_KW_ARGS(PyThreadState *tstate, PyObject *callable, PyObje
|
|
|
38
38
|
CHECK_OBJECT(args[i]);
|
|
39
39
|
|
|
40
40
|
if (kw_dict == NULL) {
|
|
41
|
-
kw_dict = MAKE_DICT_EMPTY();
|
|
41
|
+
kw_dict = MAKE_DICT_EMPTY(tstate);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItemString(kw_dict, arg_names[i], args[i]);
|
|
@@ -48,7 +48,7 @@ PyObject *CALL_BUILTIN_KW_ARGS(PyThreadState *tstate, PyObject *callable, PyObje
|
|
|
48
48
|
i++;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
PyObject *args_tuple = MAKE_TUPLE(args, usable_args);
|
|
51
|
+
PyObject *args_tuple = MAKE_TUPLE(tstate, args, usable_args);
|
|
52
52
|
|
|
53
53
|
PyObject *result = CALL_FUNCTION(tstate, callable, args_tuple, kw_dict);
|
|
54
54
|
Py_XDECREF(kw_dict);
|
|
@@ -78,7 +78,7 @@ PyObject *COMPILE_CODE(PyThreadState *tstate, PyObject *source_code, PyObject *f
|
|
|
78
78
|
return source_code;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
PyObject *pos_args = MAKE_TUPLE3(source_code, file_name, mode);
|
|
81
|
+
PyObject *pos_args = MAKE_TUPLE3(tstate, source_code, file_name, mode);
|
|
82
82
|
|
|
83
83
|
PyObject *kw_values[] = {
|
|
84
84
|
flags,
|
|
@@ -593,7 +593,7 @@ PyObject *BUILTIN_TYPE1(PyObject *arg) {
|
|
|
593
593
|
}
|
|
594
594
|
|
|
595
595
|
PyObject *BUILTIN_TYPE3(PyThreadState *tstate, PyObject *module_name, PyObject *name, PyObject *bases, PyObject *dict) {
|
|
596
|
-
PyObject *pos_args = MAKE_TUPLE3(name, bases, dict);
|
|
596
|
+
PyObject *pos_args = MAKE_TUPLE3(tstate, name, bases, dict);
|
|
597
597
|
|
|
598
598
|
PyObject *result = PyType_Type.tp_new(&PyType_Type, pos_args, NULL);
|
|
599
599
|
|
|
@@ -673,7 +673,7 @@ PyObject *BUILTIN_SUPER0(PyThreadState *tstate, PyDictObject *module_dict, PyObj
|
|
|
673
673
|
PyObject *BUILTIN_CALLABLE(PyObject *value) {
|
|
674
674
|
int res = PyCallable_Check(value);
|
|
675
675
|
PyObject *result = BOOL_FROM(res != 0);
|
|
676
|
-
|
|
676
|
+
Py_INCREF_IMMORTAL(result);
|
|
677
677
|
return result;
|
|
678
678
|
}
|
|
679
679
|
|
|
@@ -65,10 +65,10 @@ PyObject *Nuitka_Bytes_FromStringAndSize(const char *data, Py_ssize_t size) {
|
|
|
65
65
|
#endif
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
op = (PyBytesObject *)
|
|
68
|
+
op = (PyBytesObject *)NuitkaObject_Malloc(PyBytesObject_SIZE + size);
|
|
69
69
|
|
|
70
|
-
Py_SET_SIZE(op, size);
|
|
71
70
|
Py_SET_TYPE(op, &PyBytes_Type);
|
|
71
|
+
Py_SET_SIZE(op, size);
|
|
72
72
|
|
|
73
73
|
Nuitka_Py_NewReference((PyObject *)op);
|
|
74
74
|
|
|
@@ -80,6 +80,7 @@ PyObject *callPythonFunction(PyObject *func, PyObject *const *args, int count) {
|
|
|
80
80
|
return result;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
83
84
|
static PyObject *callPythonFunctionNoArgs(PyObject *func) {
|
|
84
85
|
PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
|
|
85
86
|
PyObject *globals = PyFunction_GET_GLOBALS(func);
|
|
@@ -145,6 +146,8 @@ static PyObject *callPythonFunctionNoArgs(PyObject *func) {
|
|
|
145
146
|
}
|
|
146
147
|
#endif
|
|
147
148
|
|
|
149
|
+
#endif
|
|
150
|
+
|
|
148
151
|
PyObject *CALL_METHOD_WITH_POSARGS(PyThreadState *tstate, PyObject *source, PyObject *attr_name,
|
|
149
152
|
PyObject *positional_args) {
|
|
150
153
|
CHECK_OBJECT(source);
|