Construct CallUncompiledFunctionPosArgs

Performance Diagrams

Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)11972227788.11538461538461257.0CPython 3.1087614185240.03846153846155323.2734096165424Nuitka (main)87617899391.96153846153845323.26574365360335Nuitka (develop)87620962543.8846153846154323.2594214014541Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)10475775188.11538461538461257.0CPython 3.874731624240.03846153846155327.82929760601087Nuitka (main)74729651391.96153846153845327.8339517595145Nuitka (develop)74728829543.8846153846154327.83589079356415Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)12260488488.11538461538461257.0CPython 2.781632804240.03846153846155339.58097864757417Nuitka (main)81632812391.96153846153845339.5809625232322Nuitka (develop)81632801543.8846153846154339.5809846942024Nuitka (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_b5e53f646af834e97889fa98f54626d9; 82 static PyCodeObject *codeobj_b5e53f646af834e97889fa98f54626d9;
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_e362748401bcb1fc73fa6766e07b4572 = 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_e362748401bcb1fc73fa6766e07b4572 = 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_e362748401bcb1fc73fa6766e07b4572; 89     codeobj_main = codeobj_e362748401bcb1fc73fa6766e07b4572;
n 90     codeobj_b5e53f646af834e97889fa98f54626d9 = 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_b5e53f646af834e97889fa98f54626d9 = 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_b5e53f646af834e97889fa98f54626d9 = NULL; 112     static struct Nuitka_FrameObject *cache_frame_b5e53f646af834e97889fa98f54626d9 = 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_b5e53f646af834e97889fa98f54626d9->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_b5e53f646af834e97889fa98f54626d9->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_b5e53f646af834e97889fa98f54626d9->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_b5e53f646af834e97889fa98f54626d9, 273         codeobj_b5e53f646af834e97889fa98f54626d9,
337         NULL, 274         NULL,
714 651
715     // Module code. 652     // Module code.
716     { 653     {
717         PyObject *tmp_assign_source_1; 654         PyObject *tmp_assign_source_1;
718         tmp_assign_source_1 = Py_None; 655         tmp_assign_source_1 = Py_None;
n 719         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 656         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
720     } 657     }
721     { 658     {
722         PyObject *tmp_assign_source_2; 659         PyObject *tmp_assign_source_2;
n 723         tmp_assign_source_2 = mod_consts[5]; n 660         tmp_assign_source_2 = mod_consts[2];
724         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 661         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
725     } 662     }
726     { 663     {
727         PyObject *tmp_assign_source_3; 664         PyObject *tmp_assign_source_3;
728         { 665         {
729             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 666             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 730             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[7]); n 667             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[4]);
731         } 668         }
732         assert(!(tmp_assign_source_3 == NULL)); 669         assert(!(tmp_assign_source_3 == NULL));
n 733         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 670         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
734     } 671     }
735     frame_e362748401bcb1fc73fa6766e07b4572 = MAKE_MODULE_FRAME(codeobj_e362748401bcb1fc73fa6766e07b4572, module___main__); 672     frame_e362748401bcb1fc73fa6766e07b4572 = MAKE_MODULE_FRAME(codeobj_e362748401bcb1fc73fa6766e07b4572, module___main__);
736 673
737     // Push the new frame as the currently active one, and we should be exclusively 674     // Push the new frame as the currently active one, and we should be exclusively
738     // owning it. 675     // owning it.
744         PyObject *tmp_assign_source_4; 681         PyObject *tmp_assign_source_4;
745         PyObject *tmp_name_value_1; 682         PyObject *tmp_name_value_1;
746         PyObject *tmp_globals_arg_value_1; 683         PyObject *tmp_globals_arg_value_1;
747         PyObject *tmp_locals_arg_value_1; 684         PyObject *tmp_locals_arg_value_1;
748         PyObject *tmp_fromlist_value_1; 685         PyObject *tmp_fromlist_value_1;
n 749         tmp_name_value_1 = mod_consts[8]; n 686         tmp_name_value_1 = mod_consts[5];
750         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 687         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
751         tmp_locals_arg_value_1 = Py_None; 688         tmp_locals_arg_value_1 = Py_None;
752         tmp_fromlist_value_1 = Py_None; 689         tmp_fromlist_value_1 = Py_None;
753         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 6; 690         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 6;
754         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); 691         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);
760 697
761             exception_lineno = 6; 698             exception_lineno = 6;
762 699
763             goto frame_exception_exit_1; 700             goto frame_exception_exit_1;
764         } 701         }
n 765         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 702         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_4);
766     } 703     }
767     { 704     {
768         PyObject *tmp_assign_source_5; 705         PyObject *tmp_assign_source_5;
769         tmp_assign_source_5 = (PyObject *)moduledict___main__; 706         tmp_assign_source_5 = (PyObject *)moduledict___main__;
770         assert(tmp_exec_1__globals == NULL); 707         assert(tmp_exec_1__globals == NULL);
784         PyObject *tmp_exec_globals_1; 721         PyObject *tmp_exec_globals_1;
785         PyObject *tmp_exec_locals_1; 722         PyObject *tmp_exec_locals_1;
786         PyObject *tmp_exec_filename_1; 723         PyObject *tmp_exec_filename_1;
787         PyObject *tmp_exec_compiled_1; 724         PyObject *tmp_exec_compiled_1;
788         PyObject *tmp_exec_result_1; 725         PyObject *tmp_exec_result_1;
n 789         tmp_exec_source_1 = mod_consts[9]; n 726         tmp_exec_source_1 = mod_consts[6];
790         CHECK_OBJECT(tmp_exec_1__globals); 727         CHECK_OBJECT(tmp_exec_1__globals);
791         tmp_exec_globals_1 = tmp_exec_1__globals; 728         tmp_exec_globals_1 = tmp_exec_1__globals;
792         CHECK_OBJECT(tmp_exec_1__locals); 729         CHECK_OBJECT(tmp_exec_1__locals);
793         tmp_exec_locals_1 = tmp_exec_1__locals; 730         tmp_exec_locals_1 = tmp_exec_1__locals;
n 794         tmp_exec_filename_1 = mod_consts[10]; n 731         tmp_exec_filename_1 = mod_consts[7];
795         Py_INCREF(tmp_exec_filename_1); 732         Py_INCREF(tmp_exec_filename_1);
796         Py_INCREF(tmp_exec_source_1); 733         Py_INCREF(tmp_exec_source_1);
797         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1); 734         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1);
798         if (tmp_result == false) { 735         if (tmp_result == false) {
799             assert(HAS_ERROR_OCCURRED(tstate)); 736             assert(HAS_ERROR_OCCURRED(tstate));
804 741
805             exception_lineno = 8; 742             exception_lineno = 8;
806 743
807             goto try_except_handler_1; 744             goto try_except_handler_1;
808         } 745         }
n 809         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[11], NULL, NULL); n 746         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[8], NULL, NULL);
810         Py_DECREF(tmp_exec_source_1); 747         Py_DECREF(tmp_exec_source_1);
811         Py_DECREF(tmp_exec_filename_1); 748         Py_DECREF(tmp_exec_filename_1);
812         if (tmp_exec_compiled_1 == NULL) { 749         if (tmp_exec_compiled_1 == NULL) {
813             assert(HAS_ERROR_OCCURRED(tstate)); 750             assert(HAS_ERROR_OCCURRED(tstate));
814 751
870         PyObject *tmp_assign_source_7; 807         PyObject *tmp_assign_source_7;
871 808
872 809
873         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 810         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
874 811
n 875         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_7); n 812         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
876     } 813     }
877     { 814     {
878         PyObject *tmp_assign_source_8; 815         PyObject *tmp_assign_source_8;
879         PyObject *tmp_iter_arg_1; 816         PyObject *tmp_iter_arg_1;
880         PyObject *tmp_called_instance_1; 817         PyObject *tmp_called_instance_1;
n 881         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 818         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
882 819
883         if (unlikely(tmp_called_instance_1 == NULL)) { 820         if (unlikely(tmp_called_instance_1 == NULL)) {
n 884             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); n 821             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
885         } 822         }
886 823
887         if (tmp_called_instance_1 == NULL) { 824         if (tmp_called_instance_1 == NULL) {
888             assert(HAS_ERROR_OCCURRED(tstate)); 825             assert(HAS_ERROR_OCCURRED(tstate));
889 826
896         } 833         }
897         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 32; 834         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 32;
898         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 835         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
899             tstate, 836             tstate,
900             tmp_called_instance_1, 837             tmp_called_instance_1,
n 901             mod_consts[13], n 838             mod_consts[10],
902             &PyTuple_GET_ITEM(mod_consts[14], 0) 839             &PyTuple_GET_ITEM(mod_consts[11], 0)
903         ); 840         );
904 841
905         if (tmp_iter_arg_1 == NULL) { 842         if (tmp_iter_arg_1 == NULL) {
906             assert(HAS_ERROR_OCCURRED(tstate)); 843             assert(HAS_ERROR_OCCURRED(tstate));
907 844
957     } 894     }
958     { 895     {
959         PyObject *tmp_assign_source_10; 896         PyObject *tmp_assign_source_10;
960         CHECK_OBJECT(tmp_for_loop_1__iter_value); 897         CHECK_OBJECT(tmp_for_loop_1__iter_value);
961         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 898         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 962         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_10); n 899         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10);
963     } 900     }
964     { 901     {
965         PyObject *tmp_called_value_1; 902         PyObject *tmp_called_value_1;
966         PyObject *tmp_call_result_1; 903         PyObject *tmp_call_result_1;
n 967         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[12]); n 904         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
968 905
969         if (unlikely(tmp_called_value_1 == NULL)) { 906         if (unlikely(tmp_called_value_1 == NULL)) {
n 970             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[12]); n 907             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[9]);
971         } 908         }
972 909
973         if (tmp_called_value_1 == NULL) { 910         if (tmp_called_value_1 == NULL) {
974             assert(HAS_ERROR_OCCURRED(tstate)); 911             assert(HAS_ERROR_OCCURRED(tstate));
975 912
1038     Py_DECREF(tmp_for_loop_1__for_iterator); 975     Py_DECREF(tmp_for_loop_1__for_iterator);
1039     tmp_for_loop_1__for_iterator = NULL; 976     tmp_for_loop_1__for_iterator = NULL;
1040     { 977     {
1041         PyObject *tmp_called_value_2; 978         PyObject *tmp_called_value_2;
1042         PyObject *tmp_call_result_2; 979         PyObject *tmp_call_result_2;
n 1043         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[16]); n 980         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[13]);
1044         assert(tmp_called_value_2 != NULL); 981         assert(tmp_called_value_2 != NULL);
1045         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 35; 982         frame_e362748401bcb1fc73fa6766e07b4572->m_frame.f_lineno = 35;
t 1046         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[17]); t 983         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[14]);
1047 984
1048         if (tmp_call_result_2 == NULL) { 985         if (tmp_call_result_2 == NULL) {
1049             assert(HAS_ERROR_OCCURRED(tstate)); 986             assert(HAS_ERROR_OCCURRED(tstate));
1050 987
1051             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 988             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);