Construct CallCompiledObjectMethodPosArgsConstant6

Performance Diagrams

Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)20249174088.11538461538461257.0CPython 3.1076416948240.03846153846155410.8582300462459Nuitka (main)76465419391.96153846153845410.7990773627454Nuitka (develop)76467898543.8846153846154410.79605205890607Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)17917597888.11538461538461257.0CPython 3.871764679240.03846153846155405.13919120577134Nuitka (main)71726380391.96153846153845405.1920123050115Nuitka (develop)71727242543.8846153846154405.1908234544528Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)21930735088.11538461538461257.0CPython 2.771010546240.03846153846155424.1007458605118Nuitka (main)71010538391.96153846153845424.1007548749068Nuitka (develop)71010166543.8846153846154424.10117404427376Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks

Source Code with Construct

    inst.compiled_method("some", "random", "values", "to", "check", "call")
    inst.compiled_method("some", "other", "values", "to", "check", "call")
    inst.compiled_method("some", "new", "values", "to", "check", "call")

    # construct_alternative




for x in itertools.repeat(None, 50000):
    calledRepeatedly()

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Source Code without Construct

    # construct_alternative
    pass
    # construct_end


for x in itertools.repeat(None, 50000):
    calledRepeatedly()

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Context Diff of Source Code


Construct
Baseline
15     inst = C() 15     inst = C()
16 16
17     # This is supposed to make a call to a compiled method, which is 17     # This is supposed to make a call to a compiled method, which is
18     # being optimized separately. 18     # being optimized separately.
19     # construct_begin 19     # construct_begin
n 20     inst.compiled_method("some", "random", "values", "to", "check", "call") n 20  
21     inst.compiled_method("some", "other", "values", "to", "check", "call") 21  
22     inst.compiled_method("some", "new", "values", "to", "check", "call") 22  
23 23
24     # construct_alternative 24     # construct_alternative
t 25   t 25     pass
26   26     # construct_end
27 27
28 28
29 for x in itertools.repeat(None, 50000): 29 for x in itertools.repeat(None, 50000):
30     calledRepeatedly() 30     calledRepeatedly()
31 31

Context Diff of Generated Code


Construct
Baseline
31 31
32 PyObject *module___main__; 32 PyObject *module___main__;
33 PyDictObject *moduledict___main__; 33 PyDictObject *moduledict___main__;
34 34
35 /* The declarations of module constants used, if any. */ 35 /* The declarations of module constants used, if any. */
n 36 static PyObject *mod_consts[24]; n 36 static PyObject *mod_consts[21];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[24]; n 38 static Py_hash_t mod_consts_hash[21];
39 #endif 39 #endif
40 40
41 static PyObject *module_filename_obj = NULL; 41 static PyObject *module_filename_obj = NULL;
42 42
43 /* Indicator if this modules private constants were created yet. */ 43 /* Indicator if this modules private constants were created yet. */
48     if (constants_created == false) { 48     if (constants_created == false) {
49         loadConstantsBlob(tstate, &mod_consts[0], UNTRANSLATE("__main__")); 49         loadConstantsBlob(tstate, &mod_consts[0], UNTRANSLATE("__main__"));
50         constants_created = true; 50         constants_created = true;
51 51
52 #ifndef __NUITKA_NO_ASSERT__ 52 #ifndef __NUITKA_NO_ASSERT__
n 53         for (int i = 0; i < 24; i++) { n 53         for (int i = 0; i < 21; i++) {
54             mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]); 54             mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]);
55         } 55         }
56 #endif 56 #endif
57     } 57     }
58 } 58 }
68 #ifndef __NUITKA_NO_ASSERT__ 68 #ifndef __NUITKA_NO_ASSERT__
69 void checkModuleConstants___main__(PyThreadState *tstate) { 69 void checkModuleConstants___main__(PyThreadState *tstate) {
70     // The module may not have been used at all, then ignore this. 70     // The module may not have been used at all, then ignore this.
71     if (constants_created == false) return; 71     if (constants_created == false) return;
72 72
n 73     for (int i = 0; i < 24; i++) { n 73     for (int i = 0; i < 21; i++) {
74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i])); 74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i]));
75         CHECK_OBJECT_DEEP(mod_consts[i]); 75         CHECK_OBJECT_DEEP(mod_consts[i]);
76     } 76     }
77 } 77 }
78 #endif 78 #endif
83 static PyCodeObject *codeobj_1449f33ea2ed3fb7968f165656afca5c; 83 static PyCodeObject *codeobj_1449f33ea2ed3fb7968f165656afca5c;
84 /* For use in "MainProgram.c". */ 84 /* For use in "MainProgram.c". */
85 PyCodeObject *codeobj_main = NULL; 85 PyCodeObject *codeobj_main = NULL;
86 86
87 static void createModuleCodeObjects(void) { 87 static void createModuleCodeObjects(void) {
n 88     module_filename_obj = mod_consts[6]; CHECK_OBJECT(module_filename_obj); n 88     module_filename_obj = mod_consts[2]; CHECK_OBJECT(module_filename_obj);
89     codeobj_06ee4f699c4f895e2611c638f15bff7f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[20], mod_consts[20], NULL, NULL, 0, 0, 0); 89     codeobj_06ee4f699c4f895e2611c638f15bff7f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[17], mod_consts[17], NULL, NULL, 0, 0, 0);
90     codeobj_main = codeobj_06ee4f699c4f895e2611c638f15bff7f; 90     codeobj_main = codeobj_06ee4f699c4f895e2611c638f15bff7f;
n 91     codeobj_7c022c5fe33abb3ea2b9d4701c89d61d = MAKE_CODE_OBJECT(module_filename_obj, 14, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[14], mod_consts[14], mod_consts[21], NULL, 0, 0, 0); n 91     codeobj_7c022c5fe33abb3ea2b9d4701c89d61d = MAKE_CODE_OBJECT(module_filename_obj, 14, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[11], mod_consts[11], mod_consts[18], NULL, 0, 0, 0);
92     codeobj_1449f33ea2ed3fb7968f165656afca5c = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[1], mod_consts[22], mod_consts[23], NULL, 7, 0, 0); 92     codeobj_1449f33ea2ed3fb7968f165656afca5c = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[6], mod_consts[19], mod_consts[20], NULL, 7, 0, 0);
93 } 93 }
94 94
95 // The module function declarations. 95 // The module function declarations.
96 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_method(); 96 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_method();
97 97
182     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 182     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
183     PyObject *exception_type = NULL; 183     PyObject *exception_type = NULL;
184     PyObject *exception_value = NULL; 184     PyObject *exception_value = NULL;
185     PyTracebackObject *exception_tb = NULL; 185     PyTracebackObject *exception_tb = NULL;
186     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 186     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 187     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; n
188     static struct Nuitka_FrameObject *cache_frame_7c022c5fe33abb3ea2b9d4701c89d61d = NULL; 187     static struct Nuitka_FrameObject *cache_frame_7c022c5fe33abb3ea2b9d4701c89d61d = NULL;
189     PyObject *tmp_return_value = NULL; 188     PyObject *tmp_return_value = NULL;
190     PyObject *exception_keeper_type_1; 189     PyObject *exception_keeper_type_1;
191     PyObject *exception_keeper_value_1; 190     PyObject *exception_keeper_value_1;
192     PyTracebackObject *exception_keeper_tb_1; 191     PyTracebackObject *exception_keeper_tb_1;
252             type_description_1 = "o"; 251             type_description_1 = "o";
253             goto frame_exception_exit_1; 252             goto frame_exception_exit_1;
254         } 253         }
255         assert(var_inst == NULL); 254         assert(var_inst == NULL);
256         var_inst = tmp_assign_source_1; 255         var_inst = tmp_assign_source_1;
n 257     } n
258     {
259         PyObject *tmp_called_instance_1;
260         PyObject *tmp_call_result_1;
261         CHECK_OBJECT(var_inst);
262         tmp_called_instance_1 = var_inst;
263         frame_7c022c5fe33abb3ea2b9d4701c89d61d->m_frame.f_lineno = 20;
264         tmp_call_result_1 = CALL_METHOD_WITH_ARGS6(
265             tstate,
266             tmp_called_instance_1,
267             mod_consts[1],
268             &PyTuple_GET_ITEM(mod_consts[2], 0)
269         );
270  
271         if (tmp_call_result_1 == NULL) {
272             assert(HAS_ERROR_OCCURRED(tstate));
273  
274             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
275  
276  
277             exception_lineno = 20;
278             type_description_1 = "o";
279             goto frame_exception_exit_1;
280         }
281         Py_DECREF(tmp_call_result_1);
282     }
283     {
284         PyObject *tmp_called_instance_2;
285         PyObject *tmp_call_result_2;
286         CHECK_OBJECT(var_inst);
287         tmp_called_instance_2 = var_inst;
288         frame_7c022c5fe33abb3ea2b9d4701c89d61d->m_frame.f_lineno = 21;
289         tmp_call_result_2 = CALL_METHOD_WITH_ARGS6(
290             tstate,
291             tmp_called_instance_2,
292             mod_consts[1],
293             &PyTuple_GET_ITEM(mod_consts[3], 0)
294         );
295  
296         if (tmp_call_result_2 == NULL) {
297             assert(HAS_ERROR_OCCURRED(tstate));
298  
299             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
300  
301  
302             exception_lineno = 21;
303             type_description_1 = "o";
304             goto frame_exception_exit_1;
305         }
306         Py_DECREF(tmp_call_result_2);
307     }
308     {
309         PyObject *tmp_called_instance_3;
310         PyObject *tmp_call_result_3;
311         CHECK_OBJECT(var_inst);
312         tmp_called_instance_3 = var_inst;
313         frame_7c022c5fe33abb3ea2b9d4701c89d61d->m_frame.f_lineno = 22;
314         tmp_call_result_3 = CALL_METHOD_WITH_ARGS6(
315             tstate,
316             tmp_called_instance_3,
317             mod_consts[1],
318             &PyTuple_GET_ITEM(mod_consts[4], 0)
319         );
320  
321         if (tmp_call_result_3 == NULL) {
322             assert(HAS_ERROR_OCCURRED(tstate));
323  
324             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
325  
326  
327             exception_lineno = 22;
328             type_description_1 = "o";
329             goto frame_exception_exit_1;
330         }
331         Py_DECREF(tmp_call_result_3);
332     } 256     }
333 257
334 258
335     // Put the previous frame back on top. 259     // Put the previous frame back on top.
336     popFrameStack(tstate); 260     popFrameStack(tstate);
391     exception_type = NULL; 315     exception_type = NULL;
392     exception_value = NULL; 316     exception_value = NULL;
393     exception_tb = NULL; 317     exception_tb = NULL;
394     exception_lineno = 0; 318     exception_lineno = 0;
395 319
n 396     Py_XDECREF(var_inst); n
397     var_inst = NULL;
398     // Re-raise. 320     // Re-raise.
399     exception_type = exception_keeper_type_1; 321     exception_type = exception_keeper_type_1;
400     exception_value = exception_keeper_value_1; 322     exception_value = exception_keeper_value_1;
401     exception_tb = exception_keeper_tb_1; 323     exception_tb = exception_keeper_tb_1;
402     exception_lineno = exception_keeper_lineno_1; 324     exception_lineno = exception_keeper_lineno_1;
428 350
429 351
430 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_method() { 352 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_method() {
431     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 353     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
432         impl___main__$$$function__1_compiled_method, 354         impl___main__$$$function__1_compiled_method,
n 433         mod_consts[1], n 355         mod_consts[6],
434 #if PYTHON_VERSION >= 0x300 356 #if PYTHON_VERSION >= 0x300
435         NULL, 357         NULL,
436 #endif 358 #endif
437         codeobj_1449f33ea2ed3fb7968f165656afca5c, 359         codeobj_1449f33ea2ed3fb7968f165656afca5c,
438         NULL, 360         NULL,
453 375
454 376
455 static PyObject *MAKE_FUNCTION___main__$$$function__2_calledRepeatedly() { 377 static PyObject *MAKE_FUNCTION___main__$$$function__2_calledRepeatedly() {
456     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 378     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
457         impl___main__$$$function__2_calledRepeatedly, 379         impl___main__$$$function__2_calledRepeatedly,
n 458         mod_consts[14], n 380         mod_consts[11],
459 #if PYTHON_VERSION >= 0x300 381 #if PYTHON_VERSION >= 0x300
460         NULL, 382         NULL,
461 #endif 383 #endif
462         codeobj_7c022c5fe33abb3ea2b9d4701c89d61d, 384         codeobj_7c022c5fe33abb3ea2b9d4701c89d61d,
463         NULL, 385         NULL,
843 765
844     // Module code. 766     // Module code.
845     { 767     {
846         PyObject *tmp_assign_source_1; 768         PyObject *tmp_assign_source_1;
847         tmp_assign_source_1 = Py_None; 769         tmp_assign_source_1 = Py_None;
n 848         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_1); n 770         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
849     } 771     }
850     { 772     {
851         PyObject *tmp_assign_source_2; 773         PyObject *tmp_assign_source_2;
n 852         tmp_assign_source_2 = mod_consts[6]; n 774         tmp_assign_source_2 = mod_consts[2];
853         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_2); 775         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
854     } 776     }
855     { 777     {
856         PyObject *tmp_assign_source_3; 778         PyObject *tmp_assign_source_3;
857         { 779         {
858             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 780             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 859             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[8]); n 781             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[4]);
860         } 782         }
861         assert(!(tmp_assign_source_3 == NULL)); 783         assert(!(tmp_assign_source_3 == NULL));
n 862         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_3); n 784         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
863     } 785     }
864     frame_06ee4f699c4f895e2611c638f15bff7f = MAKE_MODULE_FRAME(codeobj_06ee4f699c4f895e2611c638f15bff7f, module___main__); 786     frame_06ee4f699c4f895e2611c638f15bff7f = MAKE_MODULE_FRAME(codeobj_06ee4f699c4f895e2611c638f15bff7f, module___main__);
865 787
866     // Push the new frame as the currently active one, and we should be exclusively 788     // Push the new frame as the currently active one, and we should be exclusively
867     // owning it. 789     // owning it.
873         PyObject *tmp_assign_source_4; 795         PyObject *tmp_assign_source_4;
874         PyObject *tmp_name_value_1; 796         PyObject *tmp_name_value_1;
875         PyObject *tmp_globals_arg_value_1; 797         PyObject *tmp_globals_arg_value_1;
876         PyObject *tmp_locals_arg_value_1; 798         PyObject *tmp_locals_arg_value_1;
877         PyObject *tmp_fromlist_value_1; 799         PyObject *tmp_fromlist_value_1;
n 878         tmp_name_value_1 = mod_consts[9]; n 800         tmp_name_value_1 = mod_consts[5];
879         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 801         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
880         tmp_locals_arg_value_1 = Py_None; 802         tmp_locals_arg_value_1 = Py_None;
881         tmp_fromlist_value_1 = Py_None; 803         tmp_fromlist_value_1 = Py_None;
882         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 6; 804         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 6;
883         tmp_assign_source_4 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); 805         tmp_assign_source_4 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1);
889 811
890             exception_lineno = 6; 812             exception_lineno = 6;
891 813
892             goto frame_exception_exit_1; 814             goto frame_exception_exit_1;
893         } 815         }
n 894         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_4); n 816         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_4);
895     } 817     }
896     { 818     {
897         PyObject *tmp_assign_source_5; 819         PyObject *tmp_assign_source_5;
898         { 820         {
899             PyObject *tmp_assign_source_6; 821             PyObject *tmp_assign_source_6;
906         } 828         }
907         // Tried code: 829         // Tried code:
908         { 830         {
909             PyObject *tmp_dict_key_1; 831             PyObject *tmp_dict_key_1;
910             PyObject *tmp_dict_value_1; 832             PyObject *tmp_dict_value_1;
n 911             tmp_dict_value_1 = mod_consts[10]; n 833             tmp_dict_value_1 = mod_consts[7];
912             tmp_dict_key_1 = mod_consts[11]; 834             tmp_dict_key_1 = mod_consts[8];
913             tmp_assign_source_5 = _PyDict_NewPresized( 2 ); 835             tmp_assign_source_5 = _PyDict_NewPresized( 2 );
914             tmp_res = PyDict_SetItem(tmp_assign_source_5, tmp_dict_key_1, tmp_dict_value_1); 836             tmp_res = PyDict_SetItem(tmp_assign_source_5, tmp_dict_key_1, tmp_dict_value_1);
915             assert(!(tmp_res != 0)); 837             assert(!(tmp_res != 0));
916             CHECK_OBJECT(tmp_locals___main__$$$class__1_C_9_key_compiled_method); 838             CHECK_OBJECT(tmp_locals___main__$$$class__1_C_9_key_compiled_method);
917             tmp_dict_value_1 = tmp_locals___main__$$$class__1_C_9_key_compiled_method; 839             tmp_dict_value_1 = tmp_locals___main__$$$class__1_C_9_key_compiled_method;
n 918             tmp_dict_key_1 = mod_consts[1]; n 840             tmp_dict_key_1 = mod_consts[6];
919             tmp_res = PyDict_SetItem(tmp_assign_source_5, tmp_dict_key_1, tmp_dict_value_1); 841             tmp_res = PyDict_SetItem(tmp_assign_source_5, tmp_dict_key_1, tmp_dict_value_1);
920             assert(!(tmp_res != 0)); 842             assert(!(tmp_res != 0));
921             goto try_return_handler_1; 843             goto try_return_handler_1;
922         } 844         }
923         NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); 845         NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
940         bool tmp_condition_result_1; 862         bool tmp_condition_result_1;
941         PyObject *tmp_key_value_1; 863         PyObject *tmp_key_value_1;
942         PyObject *tmp_dict_arg_value_1; 864         PyObject *tmp_dict_arg_value_1;
943         PyObject *tmp_dict_arg_value_2; 865         PyObject *tmp_dict_arg_value_2;
944         PyObject *tmp_key_value_2; 866         PyObject *tmp_key_value_2;
n 945         tmp_key_value_1 = mod_consts[12]; n 867         tmp_key_value_1 = mod_consts[9];
946         CHECK_OBJECT(tmp_class_creation_1__class_dict); 868         CHECK_OBJECT(tmp_class_creation_1__class_dict);
947         tmp_dict_arg_value_1 = tmp_class_creation_1__class_dict; 869         tmp_dict_arg_value_1 = tmp_class_creation_1__class_dict;
948         tmp_res = DICT_HAS_ITEM(tstate, tmp_dict_arg_value_1, tmp_key_value_1); 870         tmp_res = DICT_HAS_ITEM(tstate, tmp_dict_arg_value_1, tmp_key_value_1);
949         assert(!(tmp_res == -1)); 871         assert(!(tmp_res == -1));
950         tmp_condition_result_1 = (tmp_res != 0) ? true : false; 872         tmp_condition_result_1 = (tmp_res != 0) ? true : false;
954             goto condexpr_false_1; 876             goto condexpr_false_1;
955         } 877         }
956         condexpr_true_1:; 878         condexpr_true_1:;
957         CHECK_OBJECT(tmp_class_creation_1__class_dict); 879         CHECK_OBJECT(tmp_class_creation_1__class_dict);
958         tmp_dict_arg_value_2 = tmp_class_creation_1__class_dict; 880         tmp_dict_arg_value_2 = tmp_class_creation_1__class_dict;
n 959         tmp_key_value_2 = mod_consts[12]; n 881         tmp_key_value_2 = mod_consts[9];
960         tmp_assign_source_7 = DICT_GET_ITEM1(tstate, tmp_dict_arg_value_2, tmp_key_value_2); 882         tmp_assign_source_7 = DICT_GET_ITEM1(tstate, tmp_dict_arg_value_2, tmp_key_value_2);
961         if (tmp_assign_source_7 == NULL) { 883         if (tmp_assign_source_7 == NULL) {
962             tmp_assign_source_7 = Py_None; 884             tmp_assign_source_7 = Py_None;
963             Py_INCREF_IMMORTAL(tmp_assign_source_7); 885             Py_INCREF_IMMORTAL(tmp_assign_source_7);
964         } 886         }
979         PyObject *tmp_args_element_value_2; 901         PyObject *tmp_args_element_value_2;
980         PyObject *tmp_args_element_value_3; 902         PyObject *tmp_args_element_value_3;
981         CHECK_OBJECT(tmp_class_creation_1__metaclass); 903         CHECK_OBJECT(tmp_class_creation_1__metaclass);
982         tmp_called_value_1 = tmp_class_creation_1__metaclass; 904         tmp_called_value_1 = tmp_class_creation_1__metaclass;
983         tmp_args_element_value_1 = mod_consts[0]; 905         tmp_args_element_value_1 = mod_consts[0];
n 984         tmp_args_element_value_2 = mod_consts[13]; n 906         tmp_args_element_value_2 = mod_consts[10];
985         CHECK_OBJECT(tmp_class_creation_1__class_dict); 907         CHECK_OBJECT(tmp_class_creation_1__class_dict);
986         tmp_args_element_value_3 = tmp_class_creation_1__class_dict; 908         tmp_args_element_value_3 = tmp_class_creation_1__class_dict;
987         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 9; 909         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 9;
988         { 910         {
989             PyObject *call_args[] = {tmp_args_element_value_1, tmp_args_element_value_2, tmp_args_element_value_3}; 911             PyObject *call_args[] = {tmp_args_element_value_1, tmp_args_element_value_2, tmp_args_element_value_3};
1049         PyObject *tmp_assign_source_10; 971         PyObject *tmp_assign_source_10;
1050 972
1051 973
1052         tmp_assign_source_10 = MAKE_FUNCTION___main__$$$function__2_calledRepeatedly(); 974         tmp_assign_source_10 = MAKE_FUNCTION___main__$$$function__2_calledRepeatedly();
1053 975
n 1054         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_10); n 976         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_10);
1055     } 977     }
1056     { 978     {
1057         PyObject *tmp_assign_source_11; 979         PyObject *tmp_assign_source_11;
1058         PyObject *tmp_iter_arg_1; 980         PyObject *tmp_iter_arg_1;
1059         PyObject *tmp_called_instance_1; 981         PyObject *tmp_called_instance_1;
n 1060         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]); n 982         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
1061 983
1062         if (unlikely(tmp_called_instance_1 == NULL)) { 984         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1063             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[9]); n 985             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
1064         } 986         }
1065 987
1066         if (tmp_called_instance_1 == NULL) { 988         if (tmp_called_instance_1 == NULL) {
1067             assert(HAS_ERROR_OCCURRED(tstate)); 989             assert(HAS_ERROR_OCCURRED(tstate));
1068 990
1075         } 997         }
1076         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 29; 998         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 29;
1077         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 999         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1078             tstate, 1000             tstate,
1079             tmp_called_instance_1, 1001             tmp_called_instance_1,
n 1080             mod_consts[15], n 1002             mod_consts[12],
1081             &PyTuple_GET_ITEM(mod_consts[16], 0) 1003             &PyTuple_GET_ITEM(mod_consts[13], 0)
1082         ); 1004         );
1083 1005
1084         if (tmp_iter_arg_1 == NULL) { 1006         if (tmp_iter_arg_1 == NULL) {
1085             assert(HAS_ERROR_OCCURRED(tstate)); 1007             assert(HAS_ERROR_OCCURRED(tstate));
1086 1008
1136     } 1058     }
1137     { 1059     {
1138         PyObject *tmp_assign_source_13; 1060         PyObject *tmp_assign_source_13;
1139         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1061         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1140         tmp_assign_source_13 = tmp_for_loop_1__iter_value; 1062         tmp_assign_source_13 = tmp_for_loop_1__iter_value;
n 1141         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[17], tmp_assign_source_13); n 1063         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_13);
1142     } 1064     }
1143     { 1065     {
1144         PyObject *tmp_called_value_2; 1066         PyObject *tmp_called_value_2;
1145         PyObject *tmp_call_result_1; 1067         PyObject *tmp_call_result_1;
n 1146         tmp_called_value_2 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[14]); n 1068         tmp_called_value_2 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[11]);
1147 1069
1148         if (unlikely(tmp_called_value_2 == NULL)) { 1070         if (unlikely(tmp_called_value_2 == NULL)) {
n 1149             tmp_called_value_2 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[14]); n 1071             tmp_called_value_2 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[11]);
1150         } 1072         }
1151 1073
1152         if (tmp_called_value_2 == NULL) { 1074         if (tmp_called_value_2 == NULL) {
1153             assert(HAS_ERROR_OCCURRED(tstate)); 1075             assert(HAS_ERROR_OCCURRED(tstate));
1154 1076
1217     Py_DECREF(tmp_for_loop_1__for_iterator); 1139     Py_DECREF(tmp_for_loop_1__for_iterator);
1218     tmp_for_loop_1__for_iterator = NULL; 1140     tmp_for_loop_1__for_iterator = NULL;
1219     { 1141     {
1220         PyObject *tmp_called_value_3; 1142         PyObject *tmp_called_value_3;
1221         PyObject *tmp_call_result_2; 1143         PyObject *tmp_call_result_2;
n 1222         tmp_called_value_3 = LOOKUP_BUILTIN(mod_consts[18]); n 1144         tmp_called_value_3 = LOOKUP_BUILTIN(mod_consts[15]);
1223         assert(tmp_called_value_3 != NULL); 1145         assert(tmp_called_value_3 != NULL);
1224         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 32; 1146         frame_06ee4f699c4f895e2611c638f15bff7f->m_frame.f_lineno = 32;
t 1225         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_3, mod_consts[19]); t 1147         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_3, mod_consts[16]);
1226 1148
1227         if (tmp_call_result_2 == NULL) { 1149         if (tmp_call_result_2 == NULL) {
1228             assert(HAS_ERROR_OCCURRED(tstate)); 1150             assert(HAS_ERROR_OCCURRED(tstate));
1229 1151
1230             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 1152             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);