Construct SetCreation

Performance Diagrams

Construct SetCreation 001000000010000000200000002000000030000000300000004000000040000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)4597117288.95192307692307257.0CPython 3.1035400045242.31730769230768313.8244837095534Nuitka (main)35399938395.6826923076923313.8250588818843Nuitka (develop)35399946549.0480769230769313.82501587834554Nuitka (factory)Construct SetCreationTicks Construct SetCreation 001000000010000000200000002000000030000000300000004000000040000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)4294836088.95192307692307257.0CPython 3.833248855242.31730769230768312.8088110617925Nuitka (main)33250248395.6826923076923312.80079604723153Nuitka (develop)33250052549.0480769230769312.8019237879738Nuitka (factory)Construct SetCreationTicks Construct SetCreation 001000000010000000200000002000000030000000300000004000000040000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)4709812088.95192307692307257.0CPython 2.732449784242.31730769230768333.8571905760864Nuitka (main)32449784395.6826923076923333.8571905760864Nuitka (develop)32449784549.0480769230769333.8571905760864Nuitka (factory)Construct SetCreationTicks

Source Code with Construct

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

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

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

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
9 def calledRepeatedly(set_value1): 9 def calledRepeatedly(set_value1):
10     # Force frame and eliminate forward propagation (currently). 10     # Force frame and eliminate forward propagation (currently).
11     module_value1 11     module_value1
12 12
13     # construct_begin 13     # construct_begin
n 14     l = {set_value1, set_value1, set_value1, set_value1, set_value1} n 14  
15     # construct_alternative 15     # construct_alternative
t 16   t 16     l = 1
17   17     # construct_end
18 18
19     return l, set_value1 19     return l, set_value1
20 20
21 21
22 for x in itertools.repeat(None, 50000): 22 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[13]; n 36 static PyObject *mod_consts[14];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[13]; n 38 static Py_hash_t mod_consts_hash[14];
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 < 13; i++) { n 53         for (int i = 0; i < 14; 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 < 13; i++) { n 73     for (int i = 0; i < 14; 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_b2fd89bd5f11d8e63fcd2bad75fe59e0; 82 static PyCodeObject *codeobj_b2fd89bd5f11d8e63fcd2bad75fe59e0;
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[2]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj);
88     codeobj_5418a59ba1738968d4e15b7ee99d97a2 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[11], mod_consts[11], NULL, NULL, 0, 0, 0); 88     codeobj_5418a59ba1738968d4e15b7ee99d97a2 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[12], mod_consts[12], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_5418a59ba1738968d4e15b7ee99d97a2; 89     codeobj_main = codeobj_5418a59ba1738968d4e15b7ee99d97a2;
n 90     codeobj_b2fd89bd5f11d8e63fcd2bad75fe59e0 = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[6], mod_consts[6], mod_consts[12], NULL, 1, 0, 0); n 90     codeobj_b2fd89bd5f11d8e63fcd2bad75fe59e0 = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[7], mod_consts[7], mod_consts[13], NULL, 1, 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
101     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate); 101     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate);
102 #endif 102 #endif
103 103
104     // Local variable declarations. 104     // Local variable declarations.
105     PyObject *par_set_value1 = python_pars[0]; 105     PyObject *par_set_value1 = python_pars[0];
n 106     PyObject *var_l = NULL; n
107     struct Nuitka_FrameObject *frame_b2fd89bd5f11d8e63fcd2bad75fe59e0; 106     struct Nuitka_FrameObject *frame_b2fd89bd5f11d8e63fcd2bad75fe59e0;
108     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 107     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
109     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 108     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
110     PyObject *exception_type = NULL; 109     PyObject *exception_type = NULL;
111     PyObject *exception_value = NULL; 110     PyObject *exception_value = NULL;
112     PyTracebackObject *exception_tb = NULL; 111     PyTracebackObject *exception_tb = NULL;
113     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 112     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 114     int tmp_res; n
115     static struct Nuitka_FrameObject *cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 = NULL; 113     static struct Nuitka_FrameObject *cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 = NULL;
116     PyObject *tmp_return_value = NULL; 114     PyObject *tmp_return_value = NULL;
n 117     PyObject *exception_keeper_type_1; n
118     PyObject *exception_keeper_value_1;
119     PyTracebackObject *exception_keeper_tb_1;
120     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
121 115
122     // Actual function body. 116     // Actual function body.
n 123     // Tried code: n
124     if (isFrameUnusable(cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0)) { 117     if (isFrameUnusable(cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0)) {
125         Py_XDECREF(cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0); 118         Py_XDECREF(cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0);
126 119
127 #if _DEBUG_REFCOUNTS 120 #if _DEBUG_REFCOUNTS
128         if (cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 == NULL) { 121         if (cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 == NULL) {
161 154
162             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 155             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
163 156
164 157
165             exception_lineno = 11; 158             exception_lineno = 11;
n 166             type_description_1 = "oo"; n 159             type_description_1 = "oN";
167             goto frame_exception_exit_1; 160             goto frame_exception_exit_1;
168         } 161         }
n 169     } n
170     {
171         PyObject *tmp_assign_source_1;
172         PyObject *tmp_set_element_1;
173         CHECK_OBJECT(par_set_value1);
174         tmp_set_element_1 = par_set_value1;
175         tmp_assign_source_1 = PySet_New(NULL);
176         assert(tmp_assign_source_1);
177         tmp_res = PySet_Add(tmp_assign_source_1, tmp_set_element_1);
178         if (tmp_res != 0) {
179             assert(HAS_ERROR_OCCURRED(tstate));
180  
181             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
182             Py_DECREF(tmp_assign_source_1);
183  
184             exception_lineno = 14;
185             type_description_1 = "oo";
186             goto frame_exception_exit_1;
187         }
188         CHECK_OBJECT(par_set_value1);
189         tmp_set_element_1 = par_set_value1;
190         tmp_res = PySet_Add(tmp_assign_source_1, tmp_set_element_1);
191         if (tmp_res != 0) {
192             assert(HAS_ERROR_OCCURRED(tstate));
193  
194             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
195             Py_DECREF(tmp_assign_source_1);
196  
197             exception_lineno = 14;
198             type_description_1 = "oo";
199             goto frame_exception_exit_1;
200         }
201         CHECK_OBJECT(par_set_value1);
202         tmp_set_element_1 = par_set_value1;
203         tmp_res = PySet_Add(tmp_assign_source_1, tmp_set_element_1);
204         if (tmp_res != 0) {
205             assert(HAS_ERROR_OCCURRED(tstate));
206  
207             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
208             Py_DECREF(tmp_assign_source_1);
209  
210             exception_lineno = 14;
211             type_description_1 = "oo";
212             goto frame_exception_exit_1;
213         }
214         CHECK_OBJECT(par_set_value1);
215         tmp_set_element_1 = par_set_value1;
216         tmp_res = PySet_Add(tmp_assign_source_1, tmp_set_element_1);
217         if (tmp_res != 0) {
218             assert(HAS_ERROR_OCCURRED(tstate));
219  
220             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
221             Py_DECREF(tmp_assign_source_1);
222  
223             exception_lineno = 14;
224             type_description_1 = "oo";
225             goto frame_exception_exit_1;
226         }
227         CHECK_OBJECT(par_set_value1);
228         tmp_set_element_1 = par_set_value1;
229         tmp_res = PySet_Add(tmp_assign_source_1, tmp_set_element_1);
230         if (tmp_res != 0) {
231             assert(HAS_ERROR_OCCURRED(tstate));
232  
233             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
234             Py_DECREF(tmp_assign_source_1);
235  
236             exception_lineno = 14;
237             type_description_1 = "oo";
238             goto frame_exception_exit_1;
239         }
240         assert(var_l == NULL);
241         var_l = tmp_assign_source_1;
242     } 162     }
243 163
244 164
245     // Put the previous frame back on top. 165     // Put the previous frame back on top.
246     popFrameStack(tstate); 166     popFrameStack(tstate);
258     // Attaches locals to frame if any. 178     // Attaches locals to frame if any.
259     Nuitka_Frame_AttachLocals( 179     Nuitka_Frame_AttachLocals(
260         frame_b2fd89bd5f11d8e63fcd2bad75fe59e0, 180         frame_b2fd89bd5f11d8e63fcd2bad75fe59e0,
261         type_description_1, 181         type_description_1,
262         par_set_value1, 182         par_set_value1,
n 263         var_l n 183         NULL
264     ); 184     );
265 185
266 186
267     // Release cached frame if used for exception. 187     // Release cached frame if used for exception.
268     if (frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 == cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0) { 188     if (frame_b2fd89bd5f11d8e63fcd2bad75fe59e0 == cache_frame_b2fd89bd5f11d8e63fcd2bad75fe59e0) {
278 198
279     // Put the previous frame back on top. 199     // Put the previous frame back on top.
280     popFrameStack(tstate); 200     popFrameStack(tstate);
281 201
282     // Return the error. 202     // Return the error.
n 283     goto try_except_handler_1; n 203     goto function_exception_exit;
284     frame_no_exception_1:; 204     frame_no_exception_1:;
285     { 205     {
286         PyObject *tmp_tuple_element_1; 206         PyObject *tmp_tuple_element_1;
n 287         CHECK_OBJECT(var_l); n
288         tmp_tuple_element_1 = var_l; 207         tmp_tuple_element_1 = mod_consts[1];
289         tmp_return_value = MAKE_TUPLE_EMPTY(tstate, 2); 208         tmp_return_value = MAKE_TUPLE_EMPTY(tstate, 2);
290         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); 209         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1);
291         CHECK_OBJECT(par_set_value1); 210         CHECK_OBJECT(par_set_value1);
292         tmp_tuple_element_1 = par_set_value1; 211         tmp_tuple_element_1 = par_set_value1;
293         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); 212         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1);
n 294         goto try_return_handler_1; n
295     }
296     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
297     return NULL;
298     // Return handler code:
299     try_return_handler_1:;
300     CHECK_OBJECT(var_l);
301     Py_DECREF(var_l);
302     var_l = NULL;
303     goto function_return_exit; 213         goto function_return_exit;
304     // Exception handler code: 214     }
305     try_except_handler_1:;
306     exception_keeper_type_1 = exception_type;
307     exception_keeper_value_1 = exception_value;
308     exception_keeper_tb_1 = exception_tb;
309     exception_keeper_lineno_1 = exception_lineno;
310     exception_type = NULL;
311     exception_value = NULL;
312     exception_tb = NULL;
313     exception_lineno = 0;
314  
315     // Re-raise.
316     exception_type = exception_keeper_type_1;
317     exception_value = exception_keeper_value_1;
318     exception_tb = exception_keeper_tb_1;
319     exception_lineno = exception_keeper_lineno_1;
320  
321     goto function_exception_exit;
322     // End of try:
323 215
324     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 216     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
325     return NULL; 217     return NULL;
326 218
327 function_exception_exit: 219 function_exception_exit:
347 239
348 240
349 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 241 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
350     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 242     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
351         impl___main__$$$function__1_calledRepeatedly, 243         impl___main__$$$function__1_calledRepeatedly,
n 352         mod_consts[6], n 244         mod_consts[7],
353 #if PYTHON_VERSION >= 0x300 245 #if PYTHON_VERSION >= 0x300
354         NULL, 246         NULL,
355 #endif 247 #endif
356         codeobj_b2fd89bd5f11d8e63fcd2bad75fe59e0, 248         codeobj_b2fd89bd5f11d8e63fcd2bad75fe59e0,
357         NULL, 249         NULL,
729 621
730     // Module code. 622     // Module code.
731     { 623     {
732         PyObject *tmp_assign_source_1; 624         PyObject *tmp_assign_source_1;
733         tmp_assign_source_1 = Py_None; 625         tmp_assign_source_1 = Py_None;
n 734         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1); n 626         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
735     } 627     }
736     { 628     {
737         PyObject *tmp_assign_source_2; 629         PyObject *tmp_assign_source_2;
n 738         tmp_assign_source_2 = mod_consts[2]; n 630         tmp_assign_source_2 = mod_consts[3];
739         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2); 631         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
740     } 632     }
741     frame_5418a59ba1738968d4e15b7ee99d97a2 = MAKE_MODULE_FRAME(codeobj_5418a59ba1738968d4e15b7ee99d97a2, module___main__); 633     frame_5418a59ba1738968d4e15b7ee99d97a2 = MAKE_MODULE_FRAME(codeobj_5418a59ba1738968d4e15b7ee99d97a2, module___main__);
742 634
743     // Push the new frame as the currently active one, and we should be exclusively 635     // Push the new frame as the currently active one, and we should be exclusively
744     // owning it. 636     // owning it.
750         PyObject *tmp_assign_source_3; 642         PyObject *tmp_assign_source_3;
751         PyObject *tmp_name_value_1; 643         PyObject *tmp_name_value_1;
752         PyObject *tmp_globals_arg_value_1; 644         PyObject *tmp_globals_arg_value_1;
753         PyObject *tmp_locals_arg_value_1; 645         PyObject *tmp_locals_arg_value_1;
754         PyObject *tmp_fromlist_value_1; 646         PyObject *tmp_fromlist_value_1;
n 755         tmp_name_value_1 = mod_consts[4]; n 647         tmp_name_value_1 = mod_consts[5];
756         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 648         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
757         tmp_locals_arg_value_1 = Py_None; 649         tmp_locals_arg_value_1 = Py_None;
758         tmp_fromlist_value_1 = Py_None; 650         tmp_fromlist_value_1 = Py_None;
759         frame_5418a59ba1738968d4e15b7ee99d97a2->m_frame.f_lineno = 4; 651         frame_5418a59ba1738968d4e15b7ee99d97a2->m_frame.f_lineno = 4;
760         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); 652         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1);
766 658
767             exception_lineno = 4; 659             exception_lineno = 4;
768 660
769             goto frame_exception_exit_1; 661             goto frame_exception_exit_1;
770         } 662         }
n 771         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3); n 663         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
772     } 664     }
773     { 665     {
774         PyObject *tmp_assign_source_4; 666         PyObject *tmp_assign_source_4;
n 775         tmp_assign_source_4 = mod_consts[5]; n 667         tmp_assign_source_4 = mod_consts[6];
776         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 668         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
777     } 669     }
778     { 670     {
779         PyObject *tmp_assign_source_5; 671         PyObject *tmp_assign_source_5;
780 672
781 673
782         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 674         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
783 675
n 784         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_5); n 676         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
785     } 677     }
786     { 678     {
787         PyObject *tmp_assign_source_6; 679         PyObject *tmp_assign_source_6;
788         PyObject *tmp_iter_arg_1; 680         PyObject *tmp_iter_arg_1;
789         PyObject *tmp_called_instance_1; 681         PyObject *tmp_called_instance_1;
n 790         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[4]); n 682         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
791 683
792         if (unlikely(tmp_called_instance_1 == NULL)) { 684         if (unlikely(tmp_called_instance_1 == NULL)) {
n 793             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[4]); n 685             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
794         } 686         }
795 687
796         assert(!(tmp_called_instance_1 == NULL)); 688         assert(!(tmp_called_instance_1 == NULL));
797         frame_5418a59ba1738968d4e15b7ee99d97a2->m_frame.f_lineno = 22; 689         frame_5418a59ba1738968d4e15b7ee99d97a2->m_frame.f_lineno = 22;
798         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 690         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
799             tstate, 691             tstate,
800             tmp_called_instance_1, 692             tmp_called_instance_1,
n 801             mod_consts[7], n 693             mod_consts[8],
802             &PyTuple_GET_ITEM(mod_consts[8], 0) 694             &PyTuple_GET_ITEM(mod_consts[9], 0)
803         ); 695         );
804 696
805         if (tmp_iter_arg_1 == NULL) { 697         if (tmp_iter_arg_1 == NULL) {
806             assert(HAS_ERROR_OCCURRED(tstate)); 698             assert(HAS_ERROR_OCCURRED(tstate));
807 699
857     } 749     }
858     { 750     {
859         PyObject *tmp_assign_source_8; 751         PyObject *tmp_assign_source_8;
860         CHECK_OBJECT(tmp_for_loop_1__iter_value); 752         CHECK_OBJECT(tmp_for_loop_1__iter_value);
861         tmp_assign_source_8 = tmp_for_loop_1__iter_value; 753         tmp_assign_source_8 = tmp_for_loop_1__iter_value;
n 862         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8); n 754         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8);
863     } 755     }
864     { 756     {
865         PyObject *tmp_called_value_1; 757         PyObject *tmp_called_value_1;
866         PyObject *tmp_call_result_1; 758         PyObject *tmp_call_result_1;
867         PyObject *tmp_args_element_value_1; 759         PyObject *tmp_args_element_value_1;
n 868         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[6]); n 760         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]);
869 761
870         if (unlikely(tmp_called_value_1 == NULL)) { 762         if (unlikely(tmp_called_value_1 == NULL)) {
n 871             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[6]); n 763             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]);
872         } 764         }
873 765
874         if (tmp_called_value_1 == NULL) { 766         if (tmp_called_value_1 == NULL) {
875             assert(HAS_ERROR_OCCURRED(tstate)); 767             assert(HAS_ERROR_OCCURRED(tstate));
876 768
952     Py_XDECREF(tmp_for_loop_1__iter_value); 844     Py_XDECREF(tmp_for_loop_1__iter_value);
953     tmp_for_loop_1__iter_value = NULL; 845     tmp_for_loop_1__iter_value = NULL;
954     CHECK_OBJECT(tmp_for_loop_1__for_iterator); 846     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
955     Py_DECREF(tmp_for_loop_1__for_iterator); 847     Py_DECREF(tmp_for_loop_1__for_iterator);
956     tmp_for_loop_1__for_iterator = NULL; 848     tmp_for_loop_1__for_iterator = NULL;
t 957     tmp_print_value = mod_consts[10]; t 849     tmp_print_value = mod_consts[11];
958     tmp_result = PRINT_ITEM(tmp_print_value); 850     tmp_result = PRINT_ITEM(tmp_print_value);
959     if (tmp_result == false) { 851     if (tmp_result == false) {
960         assert(HAS_ERROR_OCCURRED(tstate)); 852         assert(HAS_ERROR_OCCURRED(tstate));
961 853
962         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 854         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);