Construct CallUncompiledFunctionPosArgs

Performance Diagrams

Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)11972227788.11538461538461257.0CPython 3.10100668668240.03846153846155296.3280184300718Nuitka (main)100668586391.96153846153845296.32818768396544Nuitka (develop)87768649543.8846153846154322.9545848186376Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)10475775188.11538461538461257.0CPython 3.873380751240.03846153846155331.0159019171472Nuitka (main)73381424391.96153846153845331.0143143625055Nuitka (develop)74882788543.8846153846154327.4727134903401Nuitka (factory)Construct CallUncompiledFunctionPosArgsTicks Construct CallUncompiledFunctionPosArgs 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)12260488488.11538461538461257.0CPython 2.781631790240.03846153846155339.583022407919Nuitka (main)81631541391.96153846153845339.58352427806284Nuitka (develop)81631541543.8846153846154339.58352427806284Nuitka (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_03250a6da89da7049bdbbedf4991bf87; 82 static PyCodeObject *codeobj_03250a6da89da7049bdbbedf4991bf87;
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_367999e76e452da38a3a0ef1682be9f5 = 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_367999e76e452da38a3a0ef1682be9f5 = 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_367999e76e452da38a3a0ef1682be9f5; 89     codeobj_main = codeobj_367999e76e452da38a3a0ef1682be9f5;
n 90     codeobj_03250a6da89da7049bdbbedf4991bf87 = 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_03250a6da89da7049bdbbedf4991bf87 = 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_03250a6da89da7049bdbbedf4991bf87 = NULL; 112     static struct Nuitka_FrameObject *cache_frame_03250a6da89da7049bdbbedf4991bf87 = 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_03250a6da89da7049bdbbedf4991bf87->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_03250a6da89da7049bdbbedf4991bf87->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_03250a6da89da7049bdbbedf4991bf87->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_03250a6da89da7049bdbbedf4991bf87, 273         codeobj_03250a6da89da7049bdbbedf4991bf87,
337         NULL, 274         NULL,
724 661
725     // Module code. 662     // Module code.
726     { 663     {
727         PyObject *tmp_assign_source_1; 664         PyObject *tmp_assign_source_1;
728         tmp_assign_source_1 = Py_None; 665         tmp_assign_source_1 = Py_None;
n 729         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 666         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
730     } 667     }
731     { 668     {
732         PyObject *tmp_assign_source_2; 669         PyObject *tmp_assign_source_2;
n 733         tmp_assign_source_2 = mod_consts[5]; n 670         tmp_assign_source_2 = mod_consts[2];
734         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 671         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
735     } 672     }
736     { 673     {
737         PyObject *tmp_assign_source_3; 674         PyObject *tmp_assign_source_3;
738         { 675         {
739             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 676             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 740             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[7]); n 677             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[4]);
741         } 678         }
742         assert(!(tmp_assign_source_3 == NULL)); 679         assert(!(tmp_assign_source_3 == NULL));
n 743         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 680         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
744     } 681     }
745     frame_367999e76e452da38a3a0ef1682be9f5 = MAKE_MODULE_FRAME(codeobj_367999e76e452da38a3a0ef1682be9f5, module___main__); 682     frame_367999e76e452da38a3a0ef1682be9f5 = MAKE_MODULE_FRAME(codeobj_367999e76e452da38a3a0ef1682be9f5, module___main__);
746 683
747     // Push the new frame as the currently active one, and we should be exclusively 684     // Push the new frame as the currently active one, and we should be exclusively
748     // owning it. 685     // owning it.
754         PyObject *tmp_assign_source_4; 691         PyObject *tmp_assign_source_4;
755         PyObject *tmp_name_value_1; 692         PyObject *tmp_name_value_1;
756         PyObject *tmp_globals_arg_value_1; 693         PyObject *tmp_globals_arg_value_1;
757         PyObject *tmp_locals_arg_value_1; 694         PyObject *tmp_locals_arg_value_1;
758         PyObject *tmp_fromlist_value_1; 695         PyObject *tmp_fromlist_value_1;
n 759         tmp_name_value_1 = mod_consts[8]; n 696         tmp_name_value_1 = mod_consts[5];
760         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 697         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
761         tmp_locals_arg_value_1 = Py_None; 698         tmp_locals_arg_value_1 = Py_None;
762         tmp_fromlist_value_1 = Py_None; 699         tmp_fromlist_value_1 = Py_None;
763         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 6; 700         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 6;
764         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); 701         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);
770 707
771             exception_lineno = 6; 708             exception_lineno = 6;
772 709
773             goto frame_exception_exit_1; 710             goto frame_exception_exit_1;
774         } 711         }
n 775         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 712         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_4);
776     } 713     }
777     { 714     {
778         PyObject *tmp_assign_source_5; 715         PyObject *tmp_assign_source_5;
779         tmp_assign_source_5 = (PyObject *)moduledict___main__; 716         tmp_assign_source_5 = (PyObject *)moduledict___main__;
780         assert(tmp_exec_1__globals == NULL); 717         assert(tmp_exec_1__globals == NULL);
794         PyObject *tmp_exec_globals_1; 731         PyObject *tmp_exec_globals_1;
795         PyObject *tmp_exec_locals_1; 732         PyObject *tmp_exec_locals_1;
796         PyObject *tmp_exec_filename_1; 733         PyObject *tmp_exec_filename_1;
797         PyObject *tmp_exec_compiled_1; 734         PyObject *tmp_exec_compiled_1;
798         PyObject *tmp_exec_result_1; 735         PyObject *tmp_exec_result_1;
n 799         tmp_exec_source_1 = mod_consts[9]; n 736         tmp_exec_source_1 = mod_consts[6];
800         CHECK_OBJECT(tmp_exec_1__globals); 737         CHECK_OBJECT(tmp_exec_1__globals);
801         tmp_exec_globals_1 = tmp_exec_1__globals; 738         tmp_exec_globals_1 = tmp_exec_1__globals;
802         CHECK_OBJECT(tmp_exec_1__locals); 739         CHECK_OBJECT(tmp_exec_1__locals);
803         tmp_exec_locals_1 = tmp_exec_1__locals; 740         tmp_exec_locals_1 = tmp_exec_1__locals;
n 804         tmp_exec_filename_1 = mod_consts[10]; n 741         tmp_exec_filename_1 = mod_consts[7];
805         Py_INCREF(tmp_exec_filename_1); 742         Py_INCREF(tmp_exec_filename_1);
806         Py_INCREF(tmp_exec_source_1); 743         Py_INCREF(tmp_exec_source_1);
807         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1); 744         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1);
808         if (tmp_result == false) { 745         if (tmp_result == false) {
809             assert(HAS_ERROR_OCCURRED(tstate)); 746             assert(HAS_ERROR_OCCURRED(tstate));
814 751
815             exception_lineno = 8; 752             exception_lineno = 8;
816 753
817             goto try_except_handler_1; 754             goto try_except_handler_1;
818         } 755         }
n 819         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[11], NULL, NULL); n 756         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[8], NULL, NULL);
820         Py_DECREF(tmp_exec_source_1); 757         Py_DECREF(tmp_exec_source_1);
821         Py_DECREF(tmp_exec_filename_1); 758         Py_DECREF(tmp_exec_filename_1);
822         if (tmp_exec_compiled_1 == NULL) { 759         if (tmp_exec_compiled_1 == NULL) {
823             assert(HAS_ERROR_OCCURRED(tstate)); 760             assert(HAS_ERROR_OCCURRED(tstate));
824 761
880         PyObject *tmp_assign_source_7; 817         PyObject *tmp_assign_source_7;
881 818
882 819
883         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 820         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
884 821
n 885         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_7); n 822         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
886     } 823     }
887     { 824     {
888         PyObject *tmp_assign_source_8; 825         PyObject *tmp_assign_source_8;
889         PyObject *tmp_iter_arg_1; 826         PyObject *tmp_iter_arg_1;
890         PyObject *tmp_called_instance_1; 827         PyObject *tmp_called_instance_1;
n 891         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 828         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
892 829
893         if (unlikely(tmp_called_instance_1 == NULL)) { 830         if (unlikely(tmp_called_instance_1 == NULL)) {
n 894             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); n 831             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
895         } 832         }
896 833
897         if (tmp_called_instance_1 == NULL) { 834         if (tmp_called_instance_1 == NULL) {
898             assert(HAS_ERROR_OCCURRED(tstate)); 835             assert(HAS_ERROR_OCCURRED(tstate));
899 836
906         } 843         }
907         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 32; 844         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 32;
908         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 845         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
909             tstate, 846             tstate,
910             tmp_called_instance_1, 847             tmp_called_instance_1,
n 911             mod_consts[13], n 848             mod_consts[10],
912             &PyTuple_GET_ITEM(mod_consts[14], 0) 849             &PyTuple_GET_ITEM(mod_consts[11], 0)
913         ); 850         );
914 851
915         if (tmp_iter_arg_1 == NULL) { 852         if (tmp_iter_arg_1 == NULL) {
916             assert(HAS_ERROR_OCCURRED(tstate)); 853             assert(HAS_ERROR_OCCURRED(tstate));
917 854
967     } 904     }
968     { 905     {
969         PyObject *tmp_assign_source_10; 906         PyObject *tmp_assign_source_10;
970         CHECK_OBJECT(tmp_for_loop_1__iter_value); 907         CHECK_OBJECT(tmp_for_loop_1__iter_value);
971         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 908         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 972         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_10); n 909         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10);
973     } 910     }
974     { 911     {
975         PyObject *tmp_called_value_1; 912         PyObject *tmp_called_value_1;
976         PyObject *tmp_call_result_1; 913         PyObject *tmp_call_result_1;
n 977         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[12]); n 914         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
978 915
979         if (unlikely(tmp_called_value_1 == NULL)) { 916         if (unlikely(tmp_called_value_1 == NULL)) {
n 980             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[12]); n 917             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[9]);
981         } 918         }
982 919
983         if (tmp_called_value_1 == NULL) { 920         if (tmp_called_value_1 == NULL) {
984             assert(HAS_ERROR_OCCURRED(tstate)); 921             assert(HAS_ERROR_OCCURRED(tstate));
985 922
1048     Py_DECREF(tmp_for_loop_1__for_iterator); 985     Py_DECREF(tmp_for_loop_1__for_iterator);
1049     tmp_for_loop_1__for_iterator = NULL; 986     tmp_for_loop_1__for_iterator = NULL;
1050     { 987     {
1051         PyObject *tmp_called_value_2; 988         PyObject *tmp_called_value_2;
1052         PyObject *tmp_call_result_2; 989         PyObject *tmp_call_result_2;
n 1053         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[16]); n 990         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[13]);
1054         assert(tmp_called_value_2 != NULL); 991         assert(tmp_called_value_2 != NULL);
1055         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 35; 992         frame_367999e76e452da38a3a0ef1682be9f5->m_frame.f_lineno = 35;
t 1056         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[17]); t 993         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[14]);
1057 994
1058         if (tmp_call_result_2 == NULL) { 995         if (tmp_call_result_2 == NULL) {
1059             assert(HAS_ERROR_OCCURRED(tstate)); 996             assert(HAS_ERROR_OCCURRED(tstate));
1060 997
1061             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 998             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);