Construct CallUncompiledFunctionPosArgs

Performance Diagrams

Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)11972227788.11538461538461257.0CPython 3.10100659778240.03846153846155296.34636802902924Nuitka (main)100669082391.96153846153845296.327163904316Nuitka (develop)100670281543.8846153846154296.32468908213946Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)10475775188.11538461538461257.0CPython 3.873379999240.03846153846155331.0176758266427Nuitka (main)73360014391.96153846153845331.0648188868401Nuitka (develop)73410032543.8846153846154330.9468303161644Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)12260488488.11538461538461257.0CPython 2.781629450240.03846153846155339.5877387779455Nuitka (main)81628270391.96153846153845339.5901171183862Nuitka (develop)81629280543.8846153846154339.58808142021235Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks

Source Code with Construct

    # construct_begin
    python_f("some", "random", "values", "to", "check", "call")
    python_f("some", "other", "values", "to", "check", "call")
    python_f("some", "new", "values", "to", "check", "call")
    # construct_alternative



    return python_f


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_begin



    # construct_alternative
    pass
    # construct_end

    return python_f


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
17     # This is supposed to make a call to a non-compiled function, which is 17     # This is supposed to make a call to a non-compiled function, which is
18     # being optimized separately. 18     # being optimized separately.
19     python_f = python_func 19     python_f = python_func
20 20
21     # construct_begin 21     # construct_begin
n 22     python_f("some", "random", "values", "to", "check", "call") n
23     python_f("some", "other", "values", "to", "check", "call")
24     python_f("some", "new", "values", "to", "check", "call")
25     # construct_alternative
26 22
27 23
t t 24  
25     # construct_alternative
26     pass
27     # construct_end
28 28
29     return python_f 29     return python_f
30 30
31 31
32 for x in itertools.repeat(None, 50000): 32 for x in itertools.repeat(None, 50000):

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[20]; n 36 static PyObject *mod_consts[17];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[20]; n 38 static Py_hash_t mod_consts_hash[17];
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 < 20; i++) { n 53         for (int i = 0; i < 17; 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 < 20; i++) { n 73     for (int i = 0; i < 17; 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
82 static PyCodeObject *codeobj_bee2813a27c02a77c23d413d8ab914b8; 82 static PyCodeObject *codeobj_bee2813a27c02a77c23d413d8ab914b8;
83 /* For use in "MainProgram.c". */ 83 /* For use in "MainProgram.c". */
84 PyCodeObject *codeobj_main = NULL; 84 PyCodeObject *codeobj_main = NULL;
85 85
86 static void createModuleCodeObjects(void) { 86 static void createModuleCodeObjects(void) {
n 87     module_filename_obj = mod_consts[5]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[2]; CHECK_OBJECT(module_filename_obj);
88     codeobj_f1b4d32cb39b246e051b69d185ab0acb = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[18], mod_consts[18], NULL, NULL, 0, 0, 0); 88     codeobj_f1b4d32cb39b246e051b69d185ab0acb = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[15], mod_consts[15], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_f1b4d32cb39b246e051b69d185ab0acb; 89     codeobj_main = codeobj_f1b4d32cb39b246e051b69d185ab0acb;
n 90     codeobj_bee2813a27c02a77c23d413d8ab914b8 = MAKE_CODE_OBJECT(module_filename_obj, 16, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[12], mod_consts[12], mod_consts[19], NULL, 0, 0, 0); n 90     codeobj_bee2813a27c02a77c23d413d8ab914b8 = MAKE_CODE_OBJECT(module_filename_obj, 16, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[9], mod_consts[9], mod_consts[16], NULL, 0, 0, 0);
91 } 91 }
92 92
93 // The module function declarations. 93 // The module function declarations.
94 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 94 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
95 95
107     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 107     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
108     PyObject *exception_type = NULL; 108     PyObject *exception_type = NULL;
109     PyObject *exception_value = NULL; 109     PyObject *exception_value = NULL;
110     PyTracebackObject *exception_tb = NULL; 110     PyTracebackObject *exception_tb = NULL;
111     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 111     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 112     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; n
113     static struct Nuitka_FrameObject *cache_frame_bee2813a27c02a77c23d413d8ab914b8 = NULL; 112     static struct Nuitka_FrameObject *cache_frame_bee2813a27c02a77c23d413d8ab914b8 = NULL;
114     PyObject *tmp_return_value = NULL; 113     PyObject *tmp_return_value = NULL;
115     PyObject *exception_keeper_type_1; 114     PyObject *exception_keeper_type_1;
116     PyObject *exception_keeper_value_1; 115     PyObject *exception_keeper_value_1;
117     PyTracebackObject *exception_keeper_tb_1; 116     PyTracebackObject *exception_keeper_tb_1;
165             goto frame_exception_exit_1; 164             goto frame_exception_exit_1;
166         } 165         }
167         assert(var_python_f == NULL); 166         assert(var_python_f == NULL);
168         Py_INCREF(tmp_assign_source_1); 167         Py_INCREF(tmp_assign_source_1);
169         var_python_f = tmp_assign_source_1; 168         var_python_f = tmp_assign_source_1;
n 170     } n
171     {
172         PyObject *tmp_called_value_1;
173         PyObject *tmp_call_result_1;
174         CHECK_OBJECT(var_python_f);
175         tmp_called_value_1 = var_python_f;
176         frame_bee2813a27c02a77c23d413d8ab914b8->m_frame.f_lineno = 22;
177         tmp_call_result_1 = CALL_FUNCTION_WITH_POSARGS6(tstate, tmp_called_value_1, mod_consts[1]);
178  
179         if (tmp_call_result_1 == NULL) {
180             assert(HAS_ERROR_OCCURRED(tstate));
181  
182             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
183  
184  
185             exception_lineno = 22;
186             type_description_1 = "o";
187             goto frame_exception_exit_1;
188         }
189         Py_DECREF(tmp_call_result_1);
190     }
191     {
192         PyObject *tmp_called_value_2;
193         PyObject *tmp_call_result_2;
194         CHECK_OBJECT(var_python_f);
195         tmp_called_value_2 = var_python_f;
196         frame_bee2813a27c02a77c23d413d8ab914b8->m_frame.f_lineno = 23;
197         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS6(tstate, tmp_called_value_2, mod_consts[2]);
198  
199         if (tmp_call_result_2 == NULL) {
200             assert(HAS_ERROR_OCCURRED(tstate));
201  
202             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
203  
204  
205             exception_lineno = 23;
206             type_description_1 = "o";
207             goto frame_exception_exit_1;
208         }
209         Py_DECREF(tmp_call_result_2);
210     }
211     {
212         PyObject *tmp_called_value_3;
213         PyObject *tmp_call_result_3;
214         CHECK_OBJECT(var_python_f);
215         tmp_called_value_3 = var_python_f;
216         frame_bee2813a27c02a77c23d413d8ab914b8->m_frame.f_lineno = 24;
217         tmp_call_result_3 = CALL_FUNCTION_WITH_POSARGS6(tstate, tmp_called_value_3, mod_consts[3]);
218  
219         if (tmp_call_result_3 == NULL) {
220             assert(HAS_ERROR_OCCURRED(tstate));
221  
222             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
223  
224  
225             exception_lineno = 24;
226             type_description_1 = "o";
227             goto frame_exception_exit_1;
228         }
229         Py_DECREF(tmp_call_result_3);
230     } 169     }
231 170
232 171
233     // Put the previous frame back on top. 172     // Put the previous frame back on top.
234     popFrameStack(tstate); 173     popFrameStack(tstate);
290     exception_type = NULL; 229     exception_type = NULL;
291     exception_value = NULL; 230     exception_value = NULL;
292     exception_tb = NULL; 231     exception_tb = NULL;
293     exception_lineno = 0; 232     exception_lineno = 0;
294 233
n 295     Py_XDECREF(var_python_f); n
296     var_python_f = NULL;
297     // Re-raise. 234     // Re-raise.
298     exception_type = exception_keeper_type_1; 235     exception_type = exception_keeper_type_1;
299     exception_value = exception_keeper_value_1; 236     exception_value = exception_keeper_value_1;
300     exception_tb = exception_keeper_tb_1; 237     exception_tb = exception_keeper_tb_1;
301     exception_lineno = exception_keeper_lineno_1; 238     exception_lineno = exception_keeper_lineno_1;
327 264
328 265
329 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 266 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
330     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 267     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
331         impl___main__$$$function__1_calledRepeatedly, 268         impl___main__$$$function__1_calledRepeatedly,
n 332         mod_consts[12], n 269         mod_consts[9],
333 #if PYTHON_VERSION >= 0x300 270 #if PYTHON_VERSION >= 0x300
334         NULL, 271         NULL,
335 #endif 272 #endif
336         codeobj_bee2813a27c02a77c23d413d8ab914b8, 273         codeobj_bee2813a27c02a77c23d413d8ab914b8,
337         NULL, 274         NULL,
722 659
723     // Module code. 660     // Module code.
724     { 661     {
725         PyObject *tmp_assign_source_1; 662         PyObject *tmp_assign_source_1;
726         tmp_assign_source_1 = Py_None; 663         tmp_assign_source_1 = Py_None;
n 727         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 664         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
728     } 665     }
729     { 666     {
730         PyObject *tmp_assign_source_2; 667         PyObject *tmp_assign_source_2;
n 731         tmp_assign_source_2 = mod_consts[5]; n 668         tmp_assign_source_2 = mod_consts[2];
732         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 669         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
733     } 670     }
734     { 671     {
735         PyObject *tmp_assign_source_3; 672         PyObject *tmp_assign_source_3;
736         { 673         {
737             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 674             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 738             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[7]); n 675             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[4]);
739         } 676         }
740         assert(!(tmp_assign_source_3 == NULL)); 677         assert(!(tmp_assign_source_3 == NULL));
n 741         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 678         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
742     } 679     }
743     frame_f1b4d32cb39b246e051b69d185ab0acb = MAKE_MODULE_FRAME(codeobj_f1b4d32cb39b246e051b69d185ab0acb, module___main__); 680     frame_f1b4d32cb39b246e051b69d185ab0acb = MAKE_MODULE_FRAME(codeobj_f1b4d32cb39b246e051b69d185ab0acb, module___main__);
744 681
745     // Push the new frame as the currently active one, and we should be exclusively 682     // Push the new frame as the currently active one, and we should be exclusively
746     // owning it. 683     // owning it.
752         PyObject *tmp_assign_source_4; 689         PyObject *tmp_assign_source_4;
753         PyObject *tmp_name_value_1; 690         PyObject *tmp_name_value_1;
754         PyObject *tmp_globals_arg_value_1; 691         PyObject *tmp_globals_arg_value_1;
755         PyObject *tmp_locals_arg_value_1; 692         PyObject *tmp_locals_arg_value_1;
756         PyObject *tmp_fromlist_value_1; 693         PyObject *tmp_fromlist_value_1;
n 757         tmp_name_value_1 = mod_consts[8]; n 694         tmp_name_value_1 = mod_consts[5];
758         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 695         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
759         tmp_locals_arg_value_1 = Py_None; 696         tmp_locals_arg_value_1 = Py_None;
760         tmp_fromlist_value_1 = Py_None; 697         tmp_fromlist_value_1 = Py_None;
761         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 6; 698         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 6;
762         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); 699         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);
768 705
769             exception_lineno = 6; 706             exception_lineno = 6;
770 707
771             goto frame_exception_exit_1; 708             goto frame_exception_exit_1;
772         } 709         }
n 773         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 710         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_4);
774     } 711     }
775     { 712     {
776         PyObject *tmp_assign_source_5; 713         PyObject *tmp_assign_source_5;
777         tmp_assign_source_5 = (PyObject *)moduledict___main__; 714         tmp_assign_source_5 = (PyObject *)moduledict___main__;
778         assert(tmp_exec_1__globals == NULL); 715         assert(tmp_exec_1__globals == NULL);
792         PyObject *tmp_exec_globals_1; 729         PyObject *tmp_exec_globals_1;
793         PyObject *tmp_exec_locals_1; 730         PyObject *tmp_exec_locals_1;
794         PyObject *tmp_exec_filename_1; 731         PyObject *tmp_exec_filename_1;
795         PyObject *tmp_exec_compiled_1; 732         PyObject *tmp_exec_compiled_1;
796         PyObject *tmp_exec_result_1; 733         PyObject *tmp_exec_result_1;
n 797         tmp_exec_source_1 = mod_consts[9]; n 734         tmp_exec_source_1 = mod_consts[6];
798         CHECK_OBJECT(tmp_exec_1__globals); 735         CHECK_OBJECT(tmp_exec_1__globals);
799         tmp_exec_globals_1 = tmp_exec_1__globals; 736         tmp_exec_globals_1 = tmp_exec_1__globals;
800         CHECK_OBJECT(tmp_exec_1__locals); 737         CHECK_OBJECT(tmp_exec_1__locals);
801         tmp_exec_locals_1 = tmp_exec_1__locals; 738         tmp_exec_locals_1 = tmp_exec_1__locals;
n 802         tmp_exec_filename_1 = mod_consts[10]; n 739         tmp_exec_filename_1 = mod_consts[7];
803         Py_INCREF(tmp_exec_filename_1); 740         Py_INCREF(tmp_exec_filename_1);
804         Py_INCREF(tmp_exec_source_1); 741         Py_INCREF(tmp_exec_source_1);
805         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1); 742         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1);
806         if (tmp_result == false) { 743         if (tmp_result == false) {
807             assert(HAS_ERROR_OCCURRED(tstate)); 744             assert(HAS_ERROR_OCCURRED(tstate));
812 749
813             exception_lineno = 8; 750             exception_lineno = 8;
814 751
815             goto try_except_handler_1; 752             goto try_except_handler_1;
816         } 753         }
n 817         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[11], NULL, NULL); n 754         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[8], NULL, NULL);
818         Py_DECREF(tmp_exec_source_1); 755         Py_DECREF(tmp_exec_source_1);
819         Py_DECREF(tmp_exec_filename_1); 756         Py_DECREF(tmp_exec_filename_1);
820         if (tmp_exec_compiled_1 == NULL) { 757         if (tmp_exec_compiled_1 == NULL) {
821             assert(HAS_ERROR_OCCURRED(tstate)); 758             assert(HAS_ERROR_OCCURRED(tstate));
822 759
878         PyObject *tmp_assign_source_7; 815         PyObject *tmp_assign_source_7;
879 816
880 817
881         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 818         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
882 819
n 883         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_7); n 820         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
884     } 821     }
885     { 822     {
886         PyObject *tmp_assign_source_8; 823         PyObject *tmp_assign_source_8;
887         PyObject *tmp_iter_arg_1; 824         PyObject *tmp_iter_arg_1;
888         PyObject *tmp_called_instance_1; 825         PyObject *tmp_called_instance_1;
n 889         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 826         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
890 827
891         if (unlikely(tmp_called_instance_1 == NULL)) { 828         if (unlikely(tmp_called_instance_1 == NULL)) {
n 892             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); n 829             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
893         } 830         }
894 831
895         if (tmp_called_instance_1 == NULL) { 832         if (tmp_called_instance_1 == NULL) {
896             assert(HAS_ERROR_OCCURRED(tstate)); 833             assert(HAS_ERROR_OCCURRED(tstate));
897 834
904         } 841         }
905         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 32; 842         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 32;
906         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 843         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
907             tstate, 844             tstate,
908             tmp_called_instance_1, 845             tmp_called_instance_1,
n 909             mod_consts[13], n 846             mod_consts[10],
910             &PyTuple_GET_ITEM(mod_consts[14], 0) 847             &PyTuple_GET_ITEM(mod_consts[11], 0)
911         ); 848         );
912 849
913         if (tmp_iter_arg_1 == NULL) { 850         if (tmp_iter_arg_1 == NULL) {
914             assert(HAS_ERROR_OCCURRED(tstate)); 851             assert(HAS_ERROR_OCCURRED(tstate));
915 852
965     } 902     }
966     { 903     {
967         PyObject *tmp_assign_source_10; 904         PyObject *tmp_assign_source_10;
968         CHECK_OBJECT(tmp_for_loop_1__iter_value); 905         CHECK_OBJECT(tmp_for_loop_1__iter_value);
969         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 906         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 970         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_10); n 907         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10);
971     } 908     }
972     { 909     {
973         PyObject *tmp_called_value_1; 910         PyObject *tmp_called_value_1;
974         PyObject *tmp_call_result_1; 911         PyObject *tmp_call_result_1;
n 975         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[12]); n 912         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
976 913
977         if (unlikely(tmp_called_value_1 == NULL)) { 914         if (unlikely(tmp_called_value_1 == NULL)) {
n 978             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[12]); n 915             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[9]);
979         } 916         }
980 917
981         if (tmp_called_value_1 == NULL) { 918         if (tmp_called_value_1 == NULL) {
982             assert(HAS_ERROR_OCCURRED(tstate)); 919             assert(HAS_ERROR_OCCURRED(tstate));
983 920
1046     Py_DECREF(tmp_for_loop_1__for_iterator); 983     Py_DECREF(tmp_for_loop_1__for_iterator);
1047     tmp_for_loop_1__for_iterator = NULL; 984     tmp_for_loop_1__for_iterator = NULL;
1048     { 985     {
1049         PyObject *tmp_called_value_2; 986         PyObject *tmp_called_value_2;
1050         PyObject *tmp_call_result_2; 987         PyObject *tmp_call_result_2;
n 1051         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[16]); n 988         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[13]);
1052         assert(tmp_called_value_2 != NULL); 989         assert(tmp_called_value_2 != NULL);
1053         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 35; 990         frame_f1b4d32cb39b246e051b69d185ab0acb->m_frame.f_lineno = 35;
t 1054         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[17]); t 991         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[14]);
1055 992
1056         if (tmp_call_result_2 == NULL) { 993         if (tmp_call_result_2 == NULL) {
1057             assert(HAS_ERROR_OCCURRED(tstate)); 994             assert(HAS_ERROR_OCCURRED(tstate));
1058 995
1059             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 996             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);