Construct LoopSmallXrange

Performance Diagrams

Construct LoopSmallXrange 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)8740954788.95192307692307257.0CPython 3.1066501137242.31730769230768316.11013105749373Nuitka (main)66500189395.6826923076923316.1128111467134Nuitka (develop)66500173549.0480769230769316.11285638028676Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)10318163888.11538461538461257.0CPython 3.862949702240.03846153846155353.35367814631456Nuitka (main)62949952391.96153846153845353.35307940755297Nuitka (develop)62949922543.8846153846154353.3531512562044Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)8798464588.95192307692307257.0CPython 2.725153901242.31730769230768433.4676492043671Nuitka (main)25153901395.6826923076923433.4676492043671Nuitka (develop)25153905549.0480769230769433.4676379698893Nuitka (factory)Construct LoopSmallXrangeTicks

Source Code with Construct

    for x in xrange(local_value, local_value + 3):
        pass
    # construct_end


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

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
15     x = 2 15     x = 2
16 16
17     local_value = module_value1 17     local_value = module_value1
18 18
19     # construct_begin 19     # construct_begin
t 20     for x in xrange(local_value, local_value + 3): t 20  
21         pass 21  
22     # construct_end 22  
23 23
24 24
25 for x in itertools.repeat(None, 50000): 25 for x in itertools.repeat(None, 50000):
26     calledRepeatedly() 26     calledRepeatedly()
27 27

Context Diff of Generated Code


Construct
Baseline
82 static PyCodeObject *codeobj_aa497bfed9e7e0f145691a4ce128881b; 82 static PyCodeObject *codeobj_aa497bfed9e7e0f145691a4ce128881b;
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[3]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[2]; CHECK_OBJECT(module_filename_obj);
88     codeobj_8258c6729b245e67d020a6896f2bef66 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0); 88     codeobj_8258c6729b245e67d020a6896f2bef66 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_8258c6729b245e67d020a6896f2bef66; 89     codeobj_main = codeobj_8258c6729b245e67d020a6896f2bef66;
90     codeobj_aa497bfed9e7e0f145691a4ce128881b = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[8], mod_consts[14], NULL, 0, 0, 0); 90     codeobj_aa497bfed9e7e0f145691a4ce128881b = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[8], mod_consts[14], NULL, 0, 0, 0);
91 } 91 }
92 92
100 #ifndef __NUITKA_NO_ASSERT__ 100 #ifndef __NUITKA_NO_ASSERT__
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.
n 105     PyObject *var_x = NULL; n
106     PyObject *var_local_value = NULL; 105     PyObject *var_local_value = NULL;
n 107     PyObject *tmp_for_loop_1__for_iterator = NULL; n
108     PyObject *tmp_for_loop_1__iter_value = NULL;
109     struct Nuitka_FrameObject *frame_aa497bfed9e7e0f145691a4ce128881b; 106     struct Nuitka_FrameObject *frame_aa497bfed9e7e0f145691a4ce128881b;
110     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 107     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
111     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 108     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
112     PyObject *exception_type = NULL; 109     PyObject *exception_type = NULL;
113     PyObject *exception_value = NULL; 110     PyObject *exception_value = NULL;
114     PyTracebackObject *exception_tb = NULL; 111     PyTracebackObject *exception_tb = NULL;
115     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 112     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n n 113     static struct Nuitka_FrameObject *cache_frame_aa497bfed9e7e0f145691a4ce128881b = NULL;
114     PyObject *tmp_return_value = NULL;
116     PyObject *exception_keeper_type_1; 115     PyObject *exception_keeper_type_1;
117     PyObject *exception_keeper_value_1; 116     PyObject *exception_keeper_value_1;
118     PyTracebackObject *exception_keeper_tb_1; 117     PyTracebackObject *exception_keeper_tb_1;
119     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 118     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 120     static struct Nuitka_FrameObject *cache_frame_aa497bfed9e7e0f145691a4ce128881b = NULL; n
121     PyObject *tmp_return_value = NULL;
122     PyObject *exception_keeper_type_2;
123     PyObject *exception_keeper_value_2;
124     PyTracebackObject *exception_keeper_tb_2;
125     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
126 119
127     // Actual function body. 120     // Actual function body.
128     // Tried code: 121     // Tried code:
129     if (isFrameUnusable(cache_frame_aa497bfed9e7e0f145691a4ce128881b)) { 122     if (isFrameUnusable(cache_frame_aa497bfed9e7e0f145691a4ce128881b)) {
130         Py_XDECREF(cache_frame_aa497bfed9e7e0f145691a4ce128881b); 123         Py_XDECREF(cache_frame_aa497bfed9e7e0f145691a4ce128881b);
166 159
167             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 160             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
168 161
169 162
170             exception_lineno = 12; 163             exception_lineno = 12;
n 171             type_description_1 = "oo"; n 164             type_description_1 = "No";
172             goto frame_exception_exit_1; 165             goto frame_exception_exit_1;
173         } 166         }
174     } 167     }
175     { 168     {
176         PyObject *tmp_assign_source_1; 169         PyObject *tmp_assign_source_1;
185 178
186             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 179             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
187 180
188 181
189             exception_lineno = 17; 182             exception_lineno = 17;
n 190             type_description_1 = "oo"; n 183             type_description_1 = "No";
191             goto frame_exception_exit_1; 184             goto frame_exception_exit_1;
192         } 185         }
193         assert(var_local_value == NULL); 186         assert(var_local_value == NULL);
194         Py_INCREF(tmp_assign_source_1); 187         Py_INCREF(tmp_assign_source_1);
195         var_local_value = tmp_assign_source_1; 188         var_local_value = tmp_assign_source_1;
196     } 189     }
n n 190  
191  
192     // Put the previous frame back on top.
193     popFrameStack(tstate);
194  
195     goto frame_no_exception_1;
196     frame_exception_exit_1:
197  
198  
199     if (exception_tb == NULL) {
200         exception_tb = MAKE_TRACEBACK(frame_aa497bfed9e7e0f145691a4ce128881b, exception_lineno);
201     } else if (exception_tb->tb_frame != &frame_aa497bfed9e7e0f145691a4ce128881b->m_frame) {
202         exception_tb = ADD_TRACEBACK(exception_tb, frame_aa497bfed9e7e0f145691a4ce128881b, exception_lineno);
197     { 203     }
198         PyObject *tmp_assign_source_2; 204  
199         PyObject *tmp_iter_arg_1; 205     // Attaches locals to frame if any.
200         PyObject *tmp_xrange_low_1; 206     Nuitka_Frame_AttachLocals(
201         PyObject *tmp_xrange_high_1; 207         frame_aa497bfed9e7e0f145691a4ce128881b,
202         PyObject *tmp_add_expr_left_1; 208         type_description_1,
203         PyObject *tmp_add_expr_right_1; 209         NULL,
210         var_local_value
211     );
212  
213  
214     // Release cached frame if used for exception.
215     if (frame_aa497bfed9e7e0f145691a4ce128881b == cache_frame_aa497bfed9e7e0f145691a4ce128881b) {
216 #if _DEBUG_REFCOUNTS
217         count_active_frame_cache_instances -= 1;
218         count_released_frame_cache_instances += 1;
219 #endif
220         Py_DECREF(cache_frame_aa497bfed9e7e0f145691a4ce128881b);
221         cache_frame_aa497bfed9e7e0f145691a4ce128881b = NULL;
222     }
223  
224     assertFrameObject(frame_aa497bfed9e7e0f145691a4ce128881b);
225  
226     // Put the previous frame back on top.
227     popFrameStack(tstate);
228  
229     // Return the error.
230     goto try_except_handler_1;
231     frame_no_exception_1:;
232     tmp_return_value = Py_None;
233     Py_INCREF(tmp_return_value);
234     goto try_return_handler_1;
235     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
236     return NULL;
237     // Return handler code:
238     try_return_handler_1:;
204         CHECK_OBJECT(var_local_value); 239     CHECK_OBJECT(var_local_value);
205         tmp_xrange_low_1 = var_local_value; 240     Py_DECREF(var_local_value);
206         CHECK_OBJECT(var_local_value); 241     var_local_value = NULL;
207         tmp_add_expr_left_1 = var_local_value; 242     goto function_return_exit;
208         tmp_add_expr_right_1 = mod_consts[1];
209         tmp_xrange_high_1 = BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(tmp_add_expr_left_1, tmp_add_expr_right_1);
210         if (tmp_xrange_high_1 == NULL) {
211             assert(HAS_ERROR_OCCURRED(tstate));
212  
213             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
214  
215  
216             exception_lineno = 20;
217             type_description_1 = "oo";
218             goto frame_exception_exit_1;
219         }
220         tmp_iter_arg_1 = BUILTIN_XRANGE2(tstate, tmp_xrange_low_1, tmp_xrange_high_1);
221         Py_DECREF(tmp_xrange_high_1);
222         if (tmp_iter_arg_1 == NULL) {
223             assert(HAS_ERROR_OCCURRED(tstate));
224  
225             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
226  
227  
228             exception_lineno = 20;
229             type_description_1 = "oo";
230             goto frame_exception_exit_1;
231         }
232         tmp_assign_source_2 = MAKE_ITERATOR(tstate, tmp_iter_arg_1);
233         Py_DECREF(tmp_iter_arg_1);
234         if (tmp_assign_source_2 == NULL) {
235             assert(HAS_ERROR_OCCURRED(tstate));
236  
237             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
238  
239  
240             exception_lineno = 20;
241             type_description_1 = "oo";
242             goto frame_exception_exit_1;
243         }
244         assert(tmp_for_loop_1__for_iterator == NULL);
245         tmp_for_loop_1__for_iterator = tmp_assign_source_2;
246     }
247     // Tried code:
248     loop_start_1:;
249     {
250         PyObject *tmp_next_source_1;
251         PyObject *tmp_assign_source_3;
252         CHECK_OBJECT(tmp_for_loop_1__for_iterator);
253         tmp_next_source_1 = tmp_for_loop_1__for_iterator;
254         tmp_assign_source_3 = ITERATOR_NEXT(tmp_next_source_1);
255         if (tmp_assign_source_3 == NULL) {
256             if (CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED(tstate)) {
257  
258                 goto loop_end_1;
259             } else {
260  
261                 FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
262                 type_description_1 = "oo";
263                 exception_lineno = 20;
264                 goto try_except_handler_2;
265             }
266         }
267  
268         {
269             PyObject *old = tmp_for_loop_1__iter_value;
270             tmp_for_loop_1__iter_value = tmp_assign_source_3;
271             Py_XDECREF(old);
272         }
273  
274     }
275     {
276         PyObject *tmp_assign_source_4;
277         CHECK_OBJECT(tmp_for_loop_1__iter_value);
278         tmp_assign_source_4 = tmp_for_loop_1__iter_value;
279         {
280             PyObject *old = var_x;
281             var_x = tmp_assign_source_4;
282             Py_INCREF(var_x);
283             Py_XDECREF(old);
284         }
285  
286     }
287     if (CONSIDER_THREADING(tstate) == false) {
288         assert(HAS_ERROR_OCCURRED(tstate));
289  
290         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
291  
292  
293         exception_lineno = 20;
294         type_description_1 = "oo";
295         goto try_except_handler_2;
296     }
297     goto loop_start_1;
298     loop_end_1:;
299     goto try_end_1;
300     // Exception handler code: 243     // Exception handler code:
n 301     try_except_handler_2:; n 244     try_except_handler_1:;
302     exception_keeper_type_1 = exception_type; 245     exception_keeper_type_1 = exception_type;
303     exception_keeper_value_1 = exception_value; 246     exception_keeper_value_1 = exception_value;
304     exception_keeper_tb_1 = exception_tb; 247     exception_keeper_tb_1 = exception_tb;
305     exception_keeper_lineno_1 = exception_lineno; 248     exception_keeper_lineno_1 = exception_lineno;
306     exception_type = NULL; 249     exception_type = NULL;
307     exception_value = NULL; 250     exception_value = NULL;
308     exception_tb = NULL; 251     exception_tb = NULL;
309     exception_lineno = 0; 252     exception_lineno = 0;
310 253
n 311     Py_XDECREF(tmp_for_loop_1__iter_value); n
312     tmp_for_loop_1__iter_value = NULL;
313     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
314     Py_DECREF(tmp_for_loop_1__for_iterator);
315     tmp_for_loop_1__for_iterator = NULL;
316     // Re-raise. 254     // Re-raise.
317     exception_type = exception_keeper_type_1; 255     exception_type = exception_keeper_type_1;
318     exception_value = exception_keeper_value_1; 256     exception_value = exception_keeper_value_1;
319     exception_tb = exception_keeper_tb_1; 257     exception_tb = exception_keeper_tb_1;
320     exception_lineno = exception_keeper_lineno_1; 258     exception_lineno = exception_keeper_lineno_1;
n 321   n
322     goto frame_exception_exit_1;
323     // End of try:
324     try_end_1:;
325  
326  
327     // Put the previous frame back on top.
328     popFrameStack(tstate);
329  
330     goto frame_no_exception_1;
331     frame_exception_exit_1:
332  
333  
334     if (exception_tb == NULL) {
335         exception_tb = MAKE_TRACEBACK(frame_aa497bfed9e7e0f145691a4ce128881b, exception_lineno);
336     } else if (exception_tb->tb_frame != &frame_aa497bfed9e7e0f145691a4ce128881b->m_frame) {
337         exception_tb = ADD_TRACEBACK(exception_tb, frame_aa497bfed9e7e0f145691a4ce128881b, exception_lineno);
338     }
339  
340     // Attaches locals to frame if any.
341     Nuitka_Frame_AttachLocals(
342         frame_aa497bfed9e7e0f145691a4ce128881b,
343         type_description_1,
344         var_x,
345         var_local_value
346     );
347  
348  
349     // Release cached frame if used for exception.
350     if (frame_aa497bfed9e7e0f145691a4ce128881b == cache_frame_aa497bfed9e7e0f145691a4ce128881b) {
351 #if _DEBUG_REFCOUNTS
352         count_active_frame_cache_instances -= 1;
353         count_released_frame_cache_instances += 1;
354 #endif
355         Py_DECREF(cache_frame_aa497bfed9e7e0f145691a4ce128881b);
356         cache_frame_aa497bfed9e7e0f145691a4ce128881b = NULL;
357     }
358  
359     assertFrameObject(frame_aa497bfed9e7e0f145691a4ce128881b);
360  
361     // Put the previous frame back on top.
362     popFrameStack(tstate);
363  
364     // Return the error.
365     goto try_except_handler_1;
366     frame_no_exception_1:;
367     Py_XDECREF(tmp_for_loop_1__iter_value);
368     tmp_for_loop_1__iter_value = NULL;
369     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
370     Py_DECREF(tmp_for_loop_1__for_iterator);
371     tmp_for_loop_1__for_iterator = NULL;
372     tmp_return_value = Py_None;
373     Py_INCREF(tmp_return_value);
374     goto try_return_handler_1;
375     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
376     return NULL;
377     // Return handler code:
378     try_return_handler_1:;
379     Py_XDECREF(var_x);
380     var_x = NULL;
381     CHECK_OBJECT(var_local_value);
382     Py_DECREF(var_local_value);
383     var_local_value = NULL;
384     goto function_return_exit;
385     // Exception handler code:
386     try_except_handler_1:;
387     exception_keeper_type_2 = exception_type;
388     exception_keeper_value_2 = exception_value;
389     exception_keeper_tb_2 = exception_tb;
390     exception_keeper_lineno_2 = exception_lineno;
391     exception_type = NULL;
392     exception_value = NULL;
393     exception_tb = NULL;
394     exception_lineno = 0;
395  
396     Py_XDECREF(var_x);
397     var_x = NULL;
398     Py_XDECREF(var_local_value);
399     var_local_value = NULL;
400     // Re-raise.
401     exception_type = exception_keeper_type_2;
402     exception_value = exception_keeper_value_2;
403     exception_tb = exception_keeper_tb_2;
404     exception_lineno = exception_keeper_lineno_2;
405 259
406     goto function_exception_exit; 260     goto function_exception_exit;
407     // End of try: 261     // End of try:
408 262
409     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 263     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
812 666
813     // Module code. 667     // Module code.
814     { 668     {
815         PyObject *tmp_assign_source_1; 669         PyObject *tmp_assign_source_1;
816         tmp_assign_source_1 = Py_None; 670         tmp_assign_source_1 = Py_None;
n 817         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1); n 671         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
818     } 672     }
819     { 673     {
820         PyObject *tmp_assign_source_2; 674         PyObject *tmp_assign_source_2;
n 821         tmp_assign_source_2 = mod_consts[3]; n 675         tmp_assign_source_2 = mod_consts[2];
822         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2); 676         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
823     } 677     }
824     frame_8258c6729b245e67d020a6896f2bef66 = MAKE_MODULE_FRAME(codeobj_8258c6729b245e67d020a6896f2bef66, module___main__); 678     frame_8258c6729b245e67d020a6896f2bef66 = MAKE_MODULE_FRAME(codeobj_8258c6729b245e67d020a6896f2bef66, module___main__);
825 679
826     // Push the new frame as the currently active one, and we should be exclusively 680     // Push the new frame as the currently active one, and we should be exclusively
827     // owning it. 681     // owning it.
833         PyObject *tmp_assign_source_3; 687         PyObject *tmp_assign_source_3;
834         PyObject *tmp_name_value_1; 688         PyObject *tmp_name_value_1;
835         PyObject *tmp_globals_arg_value_1; 689         PyObject *tmp_globals_arg_value_1;
836         PyObject *tmp_locals_arg_value_1; 690         PyObject *tmp_locals_arg_value_1;
837         PyObject *tmp_fromlist_value_1; 691         PyObject *tmp_fromlist_value_1;
n 838         tmp_name_value_1 = mod_consts[5]; n 692         tmp_name_value_1 = mod_consts[4];
839         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 693         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
840         tmp_locals_arg_value_1 = Py_None; 694         tmp_locals_arg_value_1 = Py_None;
841         tmp_fromlist_value_1 = Py_None; 695         tmp_fromlist_value_1 = Py_None;
842         frame_8258c6729b245e67d020a6896f2bef66->m_frame.f_lineno = 4; 696         frame_8258c6729b245e67d020a6896f2bef66->m_frame.f_lineno = 4;
843         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); 697         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);
849 703
850             exception_lineno = 4; 704             exception_lineno = 4;
851 705
852             goto frame_exception_exit_1; 706             goto frame_exception_exit_1;
853         } 707         }
n 854         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3); n 708         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
855     } 709     }
856     { 710     {
857         PyObject *tmp_assign_source_4; 711         PyObject *tmp_assign_source_4;
n 858         tmp_assign_source_4 = mod_consts[6]; n 712         tmp_assign_source_4 = mod_consts[5];
859         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 713         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
860     } 714     }
861     { 715     {
862         PyObject *tmp_assign_source_5; 716         PyObject *tmp_assign_source_5;
n 863         tmp_assign_source_5 = mod_consts[1]; n 717         tmp_assign_source_5 = mod_consts[6];
864         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5); 718         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
865     } 719     }
866     { 720     {
867         PyObject *tmp_assign_source_6; 721         PyObject *tmp_assign_source_6;
868 722
873     } 727     }
874     { 728     {
875         PyObject *tmp_assign_source_7; 729         PyObject *tmp_assign_source_7;
876         PyObject *tmp_iter_arg_1; 730         PyObject *tmp_iter_arg_1;
877         PyObject *tmp_called_instance_1; 731         PyObject *tmp_called_instance_1;
n 878         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]); n 732         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[4]);
879 733
880         if (unlikely(tmp_called_instance_1 == NULL)) { 734         if (unlikely(tmp_called_instance_1 == NULL)) {
t 881             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]); t 735             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[4]);
882         } 736         }
883 737
884         assert(!(tmp_called_instance_1 == NULL)); 738         assert(!(tmp_called_instance_1 == NULL));
885         frame_8258c6729b245e67d020a6896f2bef66->m_frame.f_lineno = 25; 739         frame_8258c6729b245e67d020a6896f2bef66->m_frame.f_lineno = 25;
886         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 740         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(