Construct LoopSmallXrange

Performance Diagrams

Construct LoopSmallXrange 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)8740954788.95192307692307257.0CPython 3.1066498680242.31730769230768316.117077238098Nuitka (main)66502749395.6826923076923316.1055737749808Nuitka (develop)66502779549.0480769230769316.10548896203085Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)10318163888.11538461538461257.0CPython 3.861853603240.03846153846155355.9787859776279Nuitka (main)62101484391.96153846153845355.3851221257918Nuitka (develop)62951341543.8846153846154353.3497528149936Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)8798464588.95192307692307257.0CPython 2.727103030242.31730769230768427.9932875984301Nuitka (main)25152711395.6826923076923433.470991461504Nuitka (develop)25152519549.0480769230769433.4715307164371Nuitka (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_0470dfa5bec6b34f2032bd993cc1b4eb; 82 static PyCodeObject *codeobj_0470dfa5bec6b34f2032bd993cc1b4eb;
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_ff6152f47a49c0c5f7eb4eb936f4cb06 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0); 88     codeobj_ff6152f47a49c0c5f7eb4eb936f4cb06 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_ff6152f47a49c0c5f7eb4eb936f4cb06; 89     codeobj_main = codeobj_ff6152f47a49c0c5f7eb4eb936f4cb06;
90     codeobj_0470dfa5bec6b34f2032bd993cc1b4eb = 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_0470dfa5bec6b34f2032bd993cc1b4eb = 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_0470dfa5bec6b34f2032bd993cc1b4eb; 106     struct Nuitka_FrameObject *frame_0470dfa5bec6b34f2032bd993cc1b4eb;
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_0470dfa5bec6b34f2032bd993cc1b4eb = 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_0470dfa5bec6b34f2032bd993cc1b4eb = 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_0470dfa5bec6b34f2032bd993cc1b4eb)) { 122     if (isFrameUnusable(cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb)) {
130         Py_XDECREF(cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb); 123         Py_XDECREF(cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb);
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_0470dfa5bec6b34f2032bd993cc1b4eb, exception_lineno);
201     } else if (exception_tb->tb_frame != &frame_0470dfa5bec6b34f2032bd993cc1b4eb->m_frame) {
202         exception_tb = ADD_TRACEBACK(exception_tb, frame_0470dfa5bec6b34f2032bd993cc1b4eb, 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_0470dfa5bec6b34f2032bd993cc1b4eb,
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_0470dfa5bec6b34f2032bd993cc1b4eb == cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb) {
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_0470dfa5bec6b34f2032bd993cc1b4eb);
221         cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb = NULL;
222     }
223  
224     assertFrameObject(frame_0470dfa5bec6b34f2032bd993cc1b4eb);
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_0470dfa5bec6b34f2032bd993cc1b4eb, exception_lineno);
336     } else if (exception_tb->tb_frame != &frame_0470dfa5bec6b34f2032bd993cc1b4eb->m_frame) {
337         exception_tb = ADD_TRACEBACK(exception_tb, frame_0470dfa5bec6b34f2032bd993cc1b4eb, exception_lineno);
338     }
339  
340     // Attaches locals to frame if any.
341     Nuitka_Frame_AttachLocals(
342         frame_0470dfa5bec6b34f2032bd993cc1b4eb,
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_0470dfa5bec6b34f2032bd993cc1b4eb == cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb) {
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_0470dfa5bec6b34f2032bd993cc1b4eb);
356         cache_frame_0470dfa5bec6b34f2032bd993cc1b4eb = NULL;
357     }
358  
359     assertFrameObject(frame_0470dfa5bec6b34f2032bd993cc1b4eb);
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.");
820 674
821     // Module code. 675     // Module code.
822     { 676     {
823         PyObject *tmp_assign_source_1; 677         PyObject *tmp_assign_source_1;
824         tmp_assign_source_1 = Py_None; 678         tmp_assign_source_1 = Py_None;
n 825         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1); n 679         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
826     } 680     }
827     { 681     {
828         PyObject *tmp_assign_source_2; 682         PyObject *tmp_assign_source_2;
n 829         tmp_assign_source_2 = mod_consts[3]; n 683         tmp_assign_source_2 = mod_consts[2];
830         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2); 684         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
831     } 685     }
832     frame_ff6152f47a49c0c5f7eb4eb936f4cb06 = MAKE_MODULE_FRAME(codeobj_ff6152f47a49c0c5f7eb4eb936f4cb06, module___main__); 686     frame_ff6152f47a49c0c5f7eb4eb936f4cb06 = MAKE_MODULE_FRAME(codeobj_ff6152f47a49c0c5f7eb4eb936f4cb06, module___main__);
833 687
834     // Push the new frame as the currently active one, and we should be exclusively 688     // Push the new frame as the currently active one, and we should be exclusively
835     // owning it. 689     // owning it.
841         PyObject *tmp_assign_source_3; 695         PyObject *tmp_assign_source_3;
842         PyObject *tmp_name_value_1; 696         PyObject *tmp_name_value_1;
843         PyObject *tmp_globals_arg_value_1; 697         PyObject *tmp_globals_arg_value_1;
844         PyObject *tmp_locals_arg_value_1; 698         PyObject *tmp_locals_arg_value_1;
845         PyObject *tmp_fromlist_value_1; 699         PyObject *tmp_fromlist_value_1;
n 846         tmp_name_value_1 = mod_consts[5]; n 700         tmp_name_value_1 = mod_consts[4];
847         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 701         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
848         tmp_locals_arg_value_1 = Py_None; 702         tmp_locals_arg_value_1 = Py_None;
849         tmp_fromlist_value_1 = Py_None; 703         tmp_fromlist_value_1 = Py_None;
850         frame_ff6152f47a49c0c5f7eb4eb936f4cb06->m_frame.f_lineno = 4; 704         frame_ff6152f47a49c0c5f7eb4eb936f4cb06->m_frame.f_lineno = 4;
851         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); 705         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);
857 711
858             exception_lineno = 4; 712             exception_lineno = 4;
859 713
860             goto frame_exception_exit_1; 714             goto frame_exception_exit_1;
861         } 715         }
n 862         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3); n 716         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
863     } 717     }
864     { 718     {
865         PyObject *tmp_assign_source_4; 719         PyObject *tmp_assign_source_4;
n 866         tmp_assign_source_4 = mod_consts[6]; n 720         tmp_assign_source_4 = mod_consts[5];
867         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 721         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
868     } 722     }
869     { 723     {
870         PyObject *tmp_assign_source_5; 724         PyObject *tmp_assign_source_5;
n 871         tmp_assign_source_5 = mod_consts[1]; n 725         tmp_assign_source_5 = mod_consts[6];
872         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5); 726         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
873     } 727     }
874     { 728     {
875         PyObject *tmp_assign_source_6; 729         PyObject *tmp_assign_source_6;
876 730
881     } 735     }
882     { 736     {
883         PyObject *tmp_assign_source_7; 737         PyObject *tmp_assign_source_7;
884         PyObject *tmp_iter_arg_1; 738         PyObject *tmp_iter_arg_1;
885         PyObject *tmp_called_instance_1; 739         PyObject *tmp_called_instance_1;
n 886         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]); n 740         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[4]);
887 741
888         if (unlikely(tmp_called_instance_1 == NULL)) { 742         if (unlikely(tmp_called_instance_1 == NULL)) {
t 889             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]); t 743             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[4]);
890         } 744         }
891 745
892         assert(!(tmp_called_instance_1 == NULL)); 746         assert(!(tmp_called_instance_1 == NULL));
893         frame_ff6152f47a49c0c5f7eb4eb936f4cb06->m_frame.f_lineno = 25; 747         frame_ff6152f47a49c0c5f7eb4eb936f4cb06->m_frame.f_lineno = 25;
894         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 748         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(