Construct NumpyArrayConstruction

Performance Diagrams

Construct NumpyArrayConstruction 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)16420428088.11538461538461257.0CPython 3.10162743686240.03846153846155259.19808672512636Nuitka (main)162744621391.96153846153845259.19667961877917Nuitka (develop)162746972543.8846153846154259.19314153640255Nuitka (factory)Construct NumpyArrayConstructionTicks Construct NumpyArrayConstruction 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)16120245688.11538461538461260.0810634837145CPython 3.8163237723240.03846153846155257.0Nuitka (main)163234347391.96153846153845257.0051107153612Nuitka (develop)163231808543.8846153846154257.0089543487445Nuitka (factory)Construct NumpyArrayConstructionTicks Construct NumpyArrayConstruction 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)19067074788.11538461538461257.0CPython 2.7187211339240.03846153846155261.4835033790555Nuitka (main)187217409391.96153846153845261.47563646497343Nuitka (develop)187237000543.8846153846154261.4502459025711Nuitka (factory)Construct NumpyArrayConstructionTicks

Source Code with Construct

    return x


for x in itertools.repeat(None, 20000):
    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

    x = numpy.array, numpy.int32
    # construct_end

    return x


for x in itertools.repeat(None, 20000):
    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
13 13
14 def calledRepeatedly(): 14 def calledRepeatedly():
15     # This is supposed to make a call to a numpy function, which is 15     # This is supposed to make a call to a numpy function, which is
16     # being optimized separately. 16     # being optimized separately.
17     # construct_begin 17     # construct_begin
n 18     x = numpy.array([[1, 2, 3], [4, 5, 6]], numpy.int32) n 18  
19     # construct_alternative 19     # construct_alternative
t 20   t 20     x = numpy.array, numpy.int32
21   21     # construct_end
22 22
23     return x 23     return x
24 24
25 25
26 for x in itertools.repeat(None, 20000): 26 for x in itertools.repeat(None, 20000):

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[19]; n 36 static PyObject *mod_consts[18];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[19]; n 38 static Py_hash_t mod_consts_hash[18];
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 < 19; i++) { n 53         for (int i = 0; i < 18; 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 < 19; i++) { n 73     for (int i = 0; i < 18; 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_5d83ccf38c35129902baa10fd94f8aa4; 82 static PyCodeObject *codeobj_5d83ccf38c35129902baa10fd94f8aa4;
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[4]; CHECK_OBJECT(module_filename_obj);
88     codeobj_9143ec811efa9a58a69eb005bdbeaa2f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[17], mod_consts[17], NULL, NULL, 0, 0, 0); 88     codeobj_9143ec811efa9a58a69eb005bdbeaa2f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[16], mod_consts[16], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_9143ec811efa9a58a69eb005bdbeaa2f; 89     codeobj_main = codeobj_9143ec811efa9a58a69eb005bdbeaa2f;
n 90     codeobj_5d83ccf38c35129902baa10fd94f8aa4 = 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); n 90     codeobj_5d83ccf38c35129902baa10fd94f8aa4 = MAKE_CODE_OBJECT(module_filename_obj, 14, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[10], mod_consts[10], mod_consts[17], 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
145     assert(Py_REFCNT(frame_5d83ccf38c35129902baa10fd94f8aa4) == 2); 145     assert(Py_REFCNT(frame_5d83ccf38c35129902baa10fd94f8aa4) == 2);
146 146
147     // Framed code: 147     // Framed code:
148     { 148     {
149         PyObject *tmp_assign_source_1; 149         PyObject *tmp_assign_source_1;
n 150         PyObject *tmp_called_value_1; n 150         PyObject *tmp_tuple_element_1;
151         PyObject *tmp_expression_value_1; 151         PyObject *tmp_expression_value_1;
n 152         PyObject *tmp_args_element_value_1; n
153         PyObject *tmp_args_element_value_2;
154         PyObject *tmp_expression_value_2;
155         tmp_expression_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]); 152         tmp_expression_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]);
156 153
157         if (unlikely(tmp_expression_value_1 == NULL)) { 154         if (unlikely(tmp_expression_value_1 == NULL)) {
158             tmp_expression_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK_IN_FUNCTION(tstate, mod_consts[0]); 155             tmp_expression_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK_IN_FUNCTION(tstate, mod_consts[0]);
159         } 156         }
162             assert(HAS_ERROR_OCCURRED(tstate)); 159             assert(HAS_ERROR_OCCURRED(tstate));
163 160
164             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 161             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
165 162
166 163
n 167             exception_lineno = 18; n 164             exception_lineno = 20;
168             type_description_1 = "o"; 165             type_description_1 = "o";
169             goto frame_exception_exit_1; 166             goto frame_exception_exit_1;
170         } 167         }
n 171         tmp_called_value_1 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_1, mod_consts[1]); n 168         tmp_tuple_element_1 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_1, mod_consts[1]);
172         if (tmp_called_value_1 == NULL) { 169         if (tmp_tuple_element_1 == NULL) {
173             assert(HAS_ERROR_OCCURRED(tstate)); 170             assert(HAS_ERROR_OCCURRED(tstate));
174 171
175             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 172             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
176 173
177 174
n 178             exception_lineno = 18; n 175             exception_lineno = 20;
179             type_description_1 = "o"; 176             type_description_1 = "o";
180             goto frame_exception_exit_1; 177             goto frame_exception_exit_1;
181         } 178         }
n 182         tmp_args_element_value_1 = DEEP_COPY_LIST_GUIDED(tstate, mod_consts[2], "ll"); n 179         tmp_assign_source_1 = MAKE_TUPLE_EMPTY(2);
183         tmp_expression_value_2 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]);
184  
185         if (unlikely(tmp_expression_value_2 == NULL)) {
186             tmp_expression_value_2 = GET_MODULE_VARIABLE_VALUE_FALLBACK_IN_FUNCTION(tstate, mod_consts[0]);
187         }
188  
189         if (tmp_expression_value_2 == NULL) {
190             assert(HAS_ERROR_OCCURRED(tstate));
191  
192             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
193             Py_DECREF(tmp_called_value_1);
194             Py_DECREF(tmp_args_element_value_1);
195  
196             exception_lineno = 18;
197             type_description_1 = "o";
198             goto frame_exception_exit_1;
199         }
200         tmp_args_element_value_2 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_2, mod_consts[3]);
201         if (tmp_args_element_value_2 == NULL) {
202             assert(HAS_ERROR_OCCURRED(tstate));
203  
204             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
205             Py_DECREF(tmp_called_value_1);
206             Py_DECREF(tmp_args_element_value_1);
207  
208             exception_lineno = 18;
209             type_description_1 = "o";
210             goto frame_exception_exit_1;
211         }
212         frame_5d83ccf38c35129902baa10fd94f8aa4->m_frame.f_lineno = 18;
213         { 180         {
n 214             PyObject *call_args[] = {tmp_args_element_value_1, tmp_args_element_value_2}; n 181             PyObject *tmp_expression_value_2;
215             tmp_assign_source_1 = CALL_FUNCTION_WITH_ARGS2(tstate, tmp_called_value_1, call_args); 182             PyTuple_SET_ITEM(tmp_assign_source_1, 0, tmp_tuple_element_1);
183             tmp_expression_value_2 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]);
184  
185             if (unlikely(tmp_expression_value_2 == NULL)) {
186                 tmp_expression_value_2 = GET_MODULE_VARIABLE_VALUE_FALLBACK_IN_FUNCTION(tstate, mod_consts[0]);
216         } 187             }
217 188
n 218         Py_DECREF(tmp_called_value_1); n
219         Py_DECREF(tmp_args_element_value_1);
220         Py_DECREF(tmp_args_element_value_2);
221         if (tmp_assign_source_1 == NULL) { 189             if (tmp_expression_value_2 == NULL) {
222             assert(HAS_ERROR_OCCURRED(tstate)); 190                 assert(HAS_ERROR_OCCURRED(tstate));
223 191
n 224             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); n 192                 FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
225 193
226 194
n 227             exception_lineno = 18; n 195                 exception_lineno = 20;
228             type_description_1 = "o"; 196                 type_description_1 = "o";
197                 goto tuple_build_exception_1;
198             }
199             tmp_tuple_element_1 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_2, mod_consts[2]);
200             if (tmp_tuple_element_1 == NULL) {
201                 assert(HAS_ERROR_OCCURRED(tstate));
202  
203                 FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
204  
205  
206                 exception_lineno = 20;
207                 type_description_1 = "o";
208                 goto tuple_build_exception_1;
209             }
210             PyTuple_SET_ITEM(tmp_assign_source_1, 1, tmp_tuple_element_1);
211         }
212         goto tuple_build_noexception_1;
213         // Exception handling pass through code for tuple_build:
214         tuple_build_exception_1:;
215         Py_DECREF(tmp_assign_source_1);
229             goto frame_exception_exit_1; 216         goto frame_exception_exit_1;
230         } 217         // Finished with no exception for tuple_build:
218         tuple_build_noexception_1:;
231         assert(var_x == NULL); 219         assert(var_x == NULL);
232         var_x = tmp_assign_source_1; 220         var_x = tmp_assign_source_1;
233     } 221     }
234 222
235 223
328 316
329 317
330 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 318 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
331     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 319     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
332         impl___main__$$$function__1_calledRepeatedly, 320         impl___main__$$$function__1_calledRepeatedly,
n 333         mod_consts[11], n 321         mod_consts[10],
334 #if PYTHON_VERSION >= 0x300 322 #if PYTHON_VERSION >= 0x300
335         NULL, 323         NULL,
336 #endif 324 #endif
337         codeobj_5d83ccf38c35129902baa10fd94f8aa4, 325         codeobj_5d83ccf38c35129902baa10fd94f8aa4,
338         NULL, 326         NULL,
716 704
717     // Module code. 705     // Module code.
718     { 706     {
719         PyObject *tmp_assign_source_1; 707         PyObject *tmp_assign_source_1;
720         tmp_assign_source_1 = Py_None; 708         tmp_assign_source_1 = Py_None;
n 721         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 709         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1);
722     } 710     }
723     { 711     {
724         PyObject *tmp_assign_source_2; 712         PyObject *tmp_assign_source_2;
n 725         tmp_assign_source_2 = mod_consts[5]; n 713         tmp_assign_source_2 = mod_consts[4];
726         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 714         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2);
727     } 715     }
728     { 716     {
729         PyObject *tmp_assign_source_3; 717         PyObject *tmp_assign_source_3;
730         { 718         {
731             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 719             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 732             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[7]); n 720             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[6]);
733         } 721         }
734         assert(!(tmp_assign_source_3 == NULL)); 722         assert(!(tmp_assign_source_3 == NULL));
n 735         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 723         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3);
736     } 724     }
737     frame_9143ec811efa9a58a69eb005bdbeaa2f = MAKE_MODULE_FRAME(codeobj_9143ec811efa9a58a69eb005bdbeaa2f, module___main__); 725     frame_9143ec811efa9a58a69eb005bdbeaa2f = MAKE_MODULE_FRAME(codeobj_9143ec811efa9a58a69eb005bdbeaa2f, module___main__);
738 726
739     // Push the new frame as the currently active one, and we should be exclusively 727     // Push the new frame as the currently active one, and we should be exclusively
740     // owning it. 728     // owning it.
746         PyObject *tmp_assign_source_4; 734         PyObject *tmp_assign_source_4;
747         PyObject *tmp_name_value_1; 735         PyObject *tmp_name_value_1;
748         PyObject *tmp_globals_arg_value_1; 736         PyObject *tmp_globals_arg_value_1;
749         PyObject *tmp_locals_arg_value_1; 737         PyObject *tmp_locals_arg_value_1;
750         PyObject *tmp_fromlist_value_1; 738         PyObject *tmp_fromlist_value_1;
n 751         tmp_name_value_1 = mod_consts[8]; n 739         tmp_name_value_1 = mod_consts[7];
752         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 740         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
753         tmp_locals_arg_value_1 = Py_None; 741         tmp_locals_arg_value_1 = Py_None;
754         tmp_fromlist_value_1 = Py_None; 742         tmp_fromlist_value_1 = Py_None;
755         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 6; 743         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 6;
756         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); 744         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);
762 750
763             exception_lineno = 6; 751             exception_lineno = 6;
764 752
765             goto frame_exception_exit_1; 753             goto frame_exception_exit_1;
766         } 754         }
n 767         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 755         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4);
768     } 756     }
769     { 757     {
770         PyObject *tmp_assign_source_5; 758         PyObject *tmp_assign_source_5;
771         PyObject *tmp_name_value_2; 759         PyObject *tmp_name_value_2;
772         PyObject *tmp_globals_arg_value_2; 760         PyObject *tmp_globals_arg_value_2;
790         } 778         }
791         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5); 779         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5);
792     } 780     }
793     { 781     {
794         PyObject *tmp_assign_source_6; 782         PyObject *tmp_assign_source_6;
n 795         tmp_assign_source_6 = mod_consts[9]; n 783         tmp_assign_source_6 = mod_consts[8];
796         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_6); 784         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_6);
797     } 785     }
798     { 786     {
799         PyObject *tmp_assign_source_7; 787         PyObject *tmp_assign_source_7;
800 788
801 789
802         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 790         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
803 791
n 804         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_7); n 792         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_7);
805     } 793     }
806     { 794     {
807         PyObject *tmp_assign_source_8; 795         PyObject *tmp_assign_source_8;
808         PyObject *tmp_iter_arg_1; 796         PyObject *tmp_iter_arg_1;
809         PyObject *tmp_called_instance_1; 797         PyObject *tmp_called_instance_1;
n 810         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 798         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]);
811 799
812         if (unlikely(tmp_called_instance_1 == NULL)) { 800         if (unlikely(tmp_called_instance_1 == NULL)) {
n 813             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); n 801             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]);
814         } 802         }
815 803
816         assert(!(tmp_called_instance_1 == NULL)); 804         assert(!(tmp_called_instance_1 == NULL));
817         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 26; 805         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 26;
818         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 806         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
819             tstate, 807             tstate,
820             tmp_called_instance_1, 808             tmp_called_instance_1,
n 821             mod_consts[12], n 809             mod_consts[11],
822             &PyTuple_GET_ITEM(mod_consts[13], 0) 810             &PyTuple_GET_ITEM(mod_consts[12], 0)
823         ); 811         );
824 812
825         if (tmp_iter_arg_1 == NULL) { 813         if (tmp_iter_arg_1 == NULL) {
826             assert(HAS_ERROR_OCCURRED(tstate)); 814             assert(HAS_ERROR_OCCURRED(tstate));
827 815
877     } 865     }
878     { 866     {
879         PyObject *tmp_assign_source_10; 867         PyObject *tmp_assign_source_10;
880         CHECK_OBJECT(tmp_for_loop_1__iter_value); 868         CHECK_OBJECT(tmp_for_loop_1__iter_value);
881         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 869         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 882         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_10); n 870         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_10);
883     } 871     }
884     { 872     {
885         PyObject *tmp_called_value_1; 873         PyObject *tmp_called_value_1;
886         PyObject *tmp_call_result_1; 874         PyObject *tmp_call_result_1;
n 887         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[11]); n 875         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]);
888 876
889         if (unlikely(tmp_called_value_1 == NULL)) { 877         if (unlikely(tmp_called_value_1 == NULL)) {
n 890             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[11]); n 878             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[10]);
891         } 879         }
892 880
893         if (tmp_called_value_1 == NULL) { 881         if (tmp_called_value_1 == NULL) {
894             assert(HAS_ERROR_OCCURRED(tstate)); 882             assert(HAS_ERROR_OCCURRED(tstate));
895 883
958     Py_DECREF(tmp_for_loop_1__for_iterator); 946     Py_DECREF(tmp_for_loop_1__for_iterator);
959     tmp_for_loop_1__for_iterator = NULL; 947     tmp_for_loop_1__for_iterator = NULL;
960     { 948     {
961         PyObject *tmp_called_value_2; 949         PyObject *tmp_called_value_2;
962         PyObject *tmp_call_result_2; 950         PyObject *tmp_call_result_2;
n 963         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[15]); n 951         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[14]);
964         assert(tmp_called_value_2 != NULL); 952         assert(tmp_called_value_2 != NULL);
965         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 29; 953         frame_9143ec811efa9a58a69eb005bdbeaa2f->m_frame.f_lineno = 29;
t 966         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[16]); t 954         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[15]);
967 955
968         if (tmp_call_result_2 == NULL) { 956         if (tmp_call_result_2 == NULL) {
969             assert(HAS_ERROR_OCCURRED(tstate)); 957             assert(HAS_ERROR_OCCURRED(tstate));
970 958
971             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 959             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);