Construct FunctionCreationGeneratorClosure

Performance Diagrams

Construct FunctionCreationGeneratorClosure 00200000020000004000000400000060000006000000800000080000001000000010000000120000001200000014000000140000001600000016000000180000001800000020000000200000002200000022000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)2399220988.95192307692307257.0CPython 2.73302371242.31730769230768470.1015645537266Nuitka (master)3302371395.6826923076923470.1015645537266Nuitka (develop)3302371549.0480769230769470.1015645537266Nuitka (factory)Construct FunctionCreationGeneratorClosureTicks Construct FunctionCreationGeneratorClosure 0020000002000000400000040000006000000600000080000008000000100000001000000012000000120000001400000014000000160000001600000018000000180000002000000020000000220000002200000024000000240000002600000026000000CPython 3.8Nuitka (master)Nuitka (develop)Nuitka (factory)2615070088.95192307692307257.0CPython 3.84202180242.31730769230768464.40618650890656Nuitka (master)4202558395.6826923076923464.4026145351014Nuitka (develop)4202602549.0480769230769464.4021987497908Nuitka (factory)Construct FunctionCreationGeneratorClosureTicks

Source Code with Construct

module_var = None

def calledRepeatedly(x):
    # Force frame usage for now
    module_var

# construct_begin
    def empty():
        yield x
# construct_alternative




    return empty, x


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

print("OK.")

Source Code without Construct

module_var = None

def calledRepeatedly(x):
    # Force frame usage for now
    module_var

# construct_begin


# construct_alternative
    def empty():
        yield module_var
# construct_end

    return empty, x


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

print("OK.")

Context Diff of Source Code


Construct
Baseline
23 def calledRepeatedly(x): 23 def calledRepeatedly(x):
24     # Force frame usage for now 24     # Force frame usage for now
25     module_var 25     module_var
26 26
27 # construct_begin 27 # construct_begin
n 28     def empty(): n
29         yield x
30 # construct_alternative
31 28
32 29
t 33   t 30 # construct_alternative
31     def empty():
32         yield module_var
33 # construct_end
34 34
35     return empty, x 35     return empty, x
36 36
37 37
38 import itertools 38 import itertools

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 37
38 static PyObject *module_filename_obj = NULL; 38 static PyObject *module_filename_obj = NULL;
39 39
40 /* Indicator if this modules private constants were created yet. */ 40 /* Indicator if this modules private constants were created yet. */
41 static bool constants_created = false; 41 static bool constants_created = false;
66 #endif 66 #endif
67 67
68 // The module code objects. 68 // The module code objects.
69 static PyCodeObject *codeobj_9e2f491060ee5543af6e579e758cb0c7; 69 static PyCodeObject *codeobj_9e2f491060ee5543af6e579e758cb0c7;
70 static PyCodeObject *codeobj_4be06f995356c960963a451841565f7f; 70 static PyCodeObject *codeobj_4be06f995356c960963a451841565f7f;
n 71 static PyCodeObject *codeobj_cf6d399624714e9e03e4b6e1b9125d68; n 71 static PyCodeObject *codeobj_8ae36005bb058351bf68d5f7305dced6;
72 /* For use in "MainProgram.c". */ 72 /* For use in "MainProgram.c". */
73 PyCodeObject *codeobj_main = NULL; 73 PyCodeObject *codeobj_main = NULL;
74 74
75 static void createModuleCodeObjects(void) { 75 static void createModuleCodeObjects(void) {
n 76     module_filename_obj = mod_consts[5]; CHECK_OBJECT(module_filename_obj); n 76     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj);
77     codeobj_9e2f491060ee5543af6e579e758cb0c7 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[16], NULL, NULL, 0, 0, 0); 77     codeobj_9e2f491060ee5543af6e579e758cb0c7 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[16], NULL, NULL, 0, 0, 0);
n 78     codeobj_4be06f995356c960963a451841565f7f = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[9], mod_consts[17], NULL, 1, 0, 0); n 78     codeobj_4be06f995356c960963a451841565f7f = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[17], NULL, 1, 0, 0);
79     codeobj_cf6d399624714e9e03e4b6e1b9125d68 = MAKE_CODEOBJECT(module_filename_obj, 28, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS, mod_consts[1], mod_consts[18], mod_consts[18], 0, 0, 0); 79     codeobj_8ae36005bb058351bf68d5f7305dced6 = MAKE_CODEOBJECT(module_filename_obj, 31, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], NULL, NULL, 0, 0, 0);
80 } 80 }
81 81
82 // The module function declarations. 82 // The module function declarations.
n 83 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(struct Nuitka_CellObject **closure); n 83 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty();
84 84
85 85
86 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 86 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
87 87
88 88
n 89 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(struct Nuitka_CellObject **closure); n 89 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty();
90 90
91 91
92 // The module function definitions. 92 // The module function definitions.
93 static PyObject *impl___main__$$$function__1_calledRepeatedly(struct Nuitka_FunctionObject const *self, PyObject **python_pars) { 93 static PyObject *impl___main__$$$function__1_calledRepeatedly(struct Nuitka_FunctionObject const *self, PyObject **python_pars) {
94     // Preserve error status for checks 94     // Preserve error status for checks
95 #ifndef __NUITKA_NO_ASSERT__ 95 #ifndef __NUITKA_NO_ASSERT__
96     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 96     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
97 #endif 97 #endif
98 98
99     // Local variable declarations. 99     // Local variable declarations.
n 100     struct Nuitka_CellObject *par_x = Nuitka_Cell_New1(python_pars[0]); n 100     PyObject *par_x = python_pars[0];
101     PyObject *var_empty = NULL; 101     PyObject *var_empty = NULL;
102     struct Nuitka_FrameObject *frame_4be06f995356c960963a451841565f7f; 102     struct Nuitka_FrameObject *frame_4be06f995356c960963a451841565f7f;
103     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 103     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
104     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 104     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
105     PyObject *exception_type = NULL; 105     PyObject *exception_type = NULL;
155 155
156             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 156             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
157 157
158 158
159             exception_lineno = 25; 159             exception_lineno = 25;
n 160             type_description_1 = "co"; n 160             type_description_1 = "oo";
161             goto frame_exception_exit_1; 161             goto frame_exception_exit_1;
162         } 162         }
163     } 163     }
164 164
165 #if 0 165 #if 0
212     goto try_except_handler_1; 212     goto try_except_handler_1;
213 213
214     frame_no_exception_1:; 214     frame_no_exception_1:;
215     { 215     {
216         PyObject *tmp_assign_source_1; 216         PyObject *tmp_assign_source_1;
n 217         struct Nuitka_CellObject *tmp_closure_1[1]; n
218 217
n 219         tmp_closure_1[0] = par_x; n
220         Py_INCREF(tmp_closure_1[0]);
221 218
n 222         tmp_assign_source_1 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(tmp_closure_1); n 219         tmp_assign_source_1 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty();
223 220
224         assert(var_empty == NULL); 221         assert(var_empty == NULL);
225         var_empty = tmp_assign_source_1; 222         var_empty = tmp_assign_source_1;
226     } 223     }
227     { 224     {
228         PyObject *tmp_tuple_element_1; 225         PyObject *tmp_tuple_element_1;
229         CHECK_OBJECT(var_empty); 226         CHECK_OBJECT(var_empty);
230         tmp_tuple_element_1 = var_empty; 227         tmp_tuple_element_1 = var_empty;
231         tmp_return_value = PyTuple_New(2); 228         tmp_return_value = PyTuple_New(2);
232         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); 229         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1);
n 233         CHECK_OBJECT(Nuitka_Cell_GET(par_x)); n 230         CHECK_OBJECT(par_x);
234         tmp_tuple_element_1 = Nuitka_Cell_GET(par_x); 231         tmp_tuple_element_1 = par_x;
235         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); 232         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1);
236         goto try_return_handler_1; 233         goto try_return_handler_1;
237     } 234     }
238     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); 235     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
239     return NULL; 236     return NULL;
298 295
299     // Local variable declarations. 296     // Local variable declarations.
300     PyObject *tmp_return_value = NULL; 297     PyObject *tmp_return_value = NULL;
301 298
302     // Actual function body. 299     // Actual function body.
n 303     { n
304         struct Nuitka_CellObject *tmp_closure_1[1];
305 300
n 306         tmp_closure_1[0] = self->m_closure[0]; n
307         Py_INCREF(tmp_closure_1[0]);
308 301
n 309         tmp_return_value = MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(tmp_closure_1); n 302     tmp_return_value = MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty();
310 303
n 311         goto function_return_exit; n 304     goto function_return_exit;
312     }
313 305
314     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 306     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
315     return NULL; 307     return NULL;
316 308
317 309
368         } else { 360         } else {
369             count_released_frame_cache_instances += 1; 361             count_released_frame_cache_instances += 1;
370         } 362         }
371         count_allocated_frame_cache_instances += 1; 363         count_allocated_frame_cache_instances += 1;
372 #endif 364 #endif
n 373         cache_m_frame = MAKE_FUNCTION_FRAME(codeobj_cf6d399624714e9e03e4b6e1b9125d68, module___main__, sizeof(void *)); n 365         cache_m_frame = MAKE_FUNCTION_FRAME(codeobj_8ae36005bb058351bf68d5f7305dced6, module___main__, 0);
374 #if _DEBUG_REFCOUNTS 366 #if _DEBUG_REFCOUNTS
375     } else { 367     } else {
376         count_hit_frame_cache_instances += 1; 368         count_hit_frame_cache_instances += 1;
377 #endif 369 #endif
378     } 370     }
416 408
417     // Framed code: 409     // Framed code:
418     { 410     {
419         PyObject *tmp_expression_name_1; 411         PyObject *tmp_expression_name_1;
420         NUITKA_MAY_BE_UNUSED PyObject *tmp_yield_result_1; 412         NUITKA_MAY_BE_UNUSED PyObject *tmp_yield_result_1;
n 421         if (Nuitka_Cell_GET(generator->m_closure[0]) == NULL) { n 413         tmp_expression_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]);
422 414
n 423             FORMAT_UNBOUND_CLOSURE_ERROR(&generator_heap->exception_type, &generator_heap->exception_value, mod_consts[3]); n 415         if (unlikely(tmp_expression_name_1 == NULL)) {
424             generator_heap->exception_tb = NULL; 416             tmp_expression_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[0]);
417         }
418  
419         if (tmp_expression_name_1 == NULL) {
420             assert(ERROR_OCCURRED());
421  
425             NORMALIZE_EXCEPTION(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb); 422             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb);
426             CHAIN_EXCEPTION(generator_heap->exception_value);
427 423
n n 424  
428             generator_heap->exception_lineno = 29; 425             generator_heap->exception_lineno = 32;
429             generator_heap->type_description_1 = "c"; 426  
430             goto frame_exception_exit_1; 427             goto frame_exception_exit_1;
431         } 428         }
n 432   n
433         tmp_expression_name_1 = Nuitka_Cell_GET(generator->m_closure[0]);
434         Py_INCREF(tmp_expression_name_1); 429         Py_INCREF(tmp_expression_name_1);
435         generator->m_yield_return_index = 1; 430         generator->m_yield_return_index = 1;
436         return tmp_expression_name_1; 431         return tmp_expression_name_1;
437         yield_return_1: 432         yield_return_1:
438         if (yield_return_value == NULL) { 433         if (yield_return_value == NULL) {
439             assert(ERROR_OCCURRED()); 434             assert(ERROR_OCCURRED());
440 435
441             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb); 436             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb);
442 437
443 438
n 444             generator_heap->exception_lineno = 29; n 439             generator_heap->exception_lineno = 32;
445             generator_heap->type_description_1 = "c"; 440  
446             goto frame_exception_exit_1; 441             goto frame_exception_exit_1;
447         } 442         }
448         tmp_yield_result_1 = yield_return_value; 443         tmp_yield_result_1 = yield_return_value;
449     } 444     }
450 445
470             generator_heap->exception_tb = ADD_TRACEBACK(generator_heap->exception_tb, generator->m_frame, generator_heap->exception_lineno); 465             generator_heap->exception_tb = ADD_TRACEBACK(generator_heap->exception_tb, generator->m_frame, generator_heap->exception_lineno);
471         } 466         }
472 467
473         Nuitka_Frame_AttachLocals( 468         Nuitka_Frame_AttachLocals(
474             generator->m_frame, 469             generator->m_frame,
n 475             generator_heap->type_description_1, n 470             generator_heap->type_description_1
476             generator->m_closure[0]
477         ); 471         );
478 472
479 473
480         // Release cached frame if used for exception. 474         // Release cached frame if used for exception.
481         if (generator->m_frame == cache_m_frame) { 475         if (generator->m_frame == cache_m_frame) {
513 507
514     return NULL; 508     return NULL;
515 509
516 } 510 }
517 511
n 518 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(struct Nuitka_CellObject **closure) { n 512 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty() {
519     return Nuitka_Generator_New( 513     return Nuitka_Generator_New(
520         __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_context, 514         __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_context,
521         module___main__, 515         module___main__,
522         mod_consts[1], 516         mod_consts[1],
523 #if PYTHON_VERSION >= 0x350 517 #if PYTHON_VERSION >= 0x350
524         mod_consts[2], 518         mod_consts[2],
525 #endif 519 #endif
n 526         codeobj_cf6d399624714e9e03e4b6e1b9125d68, n 520         codeobj_8ae36005bb058351bf68d5f7305dced6,
527         closure, 521         NULL,
528         1, 522         0,
529         sizeof(struct __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_locals) 523         sizeof(struct __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_locals)
530     ); 524     );
531 } 525 }
532 526
533 527
534 528
535 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 529 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
536     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 530     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
537         impl___main__$$$function__1_calledRepeatedly, 531         impl___main__$$$function__1_calledRepeatedly,
n 538         mod_consts[9], n 532         mod_consts[8],
539 #if PYTHON_VERSION >= 0x300 533 #if PYTHON_VERSION >= 0x300
540         NULL, 534         NULL,
541 #endif 535 #endif
542         codeobj_4be06f995356c960963a451841565f7f, 536         codeobj_4be06f995356c960963a451841565f7f,
543         NULL, 537         NULL,
555     return (PyObject *)result; 549     return (PyObject *)result;
556 } 550 }
557 551
558 552
559 553
n 560 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(struct Nuitka_CellObject **closure) { n 554 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty() {
561     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 555     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
562         impl___main__$$$function__1_calledRepeatedly$$$function__1_empty, 556         impl___main__$$$function__1_calledRepeatedly$$$function__1_empty,
563         mod_consts[1], 557         mod_consts[1],
564 #if PYTHON_VERSION >= 0x300 558 #if PYTHON_VERSION >= 0x300
565         mod_consts[2], 559         mod_consts[2],
566 #endif 560 #endif
n 567         codeobj_cf6d399624714e9e03e4b6e1b9125d68, n 561         codeobj_8ae36005bb058351bf68d5f7305dced6,
568         NULL, 562         NULL,
569 #if PYTHON_VERSION >= 0x300 563 #if PYTHON_VERSION >= 0x300
570         NULL, 564         NULL,
571         NULL, 565         NULL,
572 #endif 566 #endif
573         module___main__, 567         module___main__,
574         NULL, 568         NULL,
n 575         closure, n 569         NULL,
576         1 570         0
577     ); 571     );
578 572
579 573
580     return (PyObject *)result; 574     return (PyObject *)result;
581 } 575 }
941 935
942     // Module code. 936     // Module code.
943     { 937     {
944         PyObject *tmp_assign_source_1; 938         PyObject *tmp_assign_source_1;
945         tmp_assign_source_1 = Py_None; 939         tmp_assign_source_1 = Py_None;
n 946         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 940         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1);
947     } 941     }
948     { 942     {
949         PyObject *tmp_assign_source_2; 943         PyObject *tmp_assign_source_2;
n 950         tmp_assign_source_2 = mod_consts[5]; n 944         tmp_assign_source_2 = mod_consts[4];
951         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 945         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2);
952     } 946     }
953     { 947     {
954         PyObject *tmp_assign_source_3; 948         PyObject *tmp_assign_source_3;
955         tmp_assign_source_3 = Py_None; 949         tmp_assign_source_3 = Py_None;
n 956         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 950         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3);
957     } 951     }
958     { 952     {
959         PyObject *tmp_assign_source_4; 953         PyObject *tmp_assign_source_4;
960         tmp_assign_source_4 = PyDict_New(); 954         tmp_assign_source_4 = PyDict_New();
n 961         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 955         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4);
962     } 956     }
963     { 957     {
964         PyObject *tmp_assign_source_5; 958         PyObject *tmp_assign_source_5;
965         tmp_assign_source_5 = Py_None; 959         tmp_assign_source_5 = Py_None;
966         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5); 960         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5);
969         PyObject *tmp_assign_source_6; 963         PyObject *tmp_assign_source_6;
970 964
971 965
972         tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 966         tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
973 967
n 974         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_6); n 968         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_6);
975     } 969     }
976     { 970     {
977         PyObject *tmp_assign_source_7; 971         PyObject *tmp_assign_source_7;
978         PyObject *tmp_name_name_1; 972         PyObject *tmp_name_name_1;
979         PyObject *tmp_globals_arg_name_1; 973         PyObject *tmp_globals_arg_name_1;
980         PyObject *tmp_locals_arg_name_1; 974         PyObject *tmp_locals_arg_name_1;
981         PyObject *tmp_fromlist_name_1; 975         PyObject *tmp_fromlist_name_1;
982         PyObject *tmp_level_name_1; 976         PyObject *tmp_level_name_1;
n 983         tmp_name_name_1 = mod_consts[10]; n 977         tmp_name_name_1 = mod_consts[9];
984         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__; 978         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__;
985         tmp_locals_arg_name_1 = Py_None; 979         tmp_locals_arg_name_1 = Py_None;
986         tmp_fromlist_name_1 = Py_None; 980         tmp_fromlist_name_1 = Py_None;
n 987         tmp_level_name_1 = mod_consts[11]; n 981         tmp_level_name_1 = mod_consts[10];
988         tmp_assign_source_7 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1); 982         tmp_assign_source_7 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1);
989         assert(!(tmp_assign_source_7 == NULL)); 983         assert(!(tmp_assign_source_7 == NULL));
n 990         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_7); n 984         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
991     } 985     }
992     // Frame without reuse. 986     // Frame without reuse.
993     frame_9e2f491060ee5543af6e579e758cb0c7 = MAKE_MODULE_FRAME(codeobj_9e2f491060ee5543af6e579e758cb0c7, module___main__); 987     frame_9e2f491060ee5543af6e579e758cb0c7 = MAKE_MODULE_FRAME(codeobj_9e2f491060ee5543af6e579e758cb0c7, module___main__);
994 988
995     // Push the new frame as the currently active one, and we should be exclusively 989     // Push the new frame as the currently active one, and we should be exclusively
1000     // Framed code: 994     // Framed code:
1001     { 995     {
1002         PyObject *tmp_assign_source_8; 996         PyObject *tmp_assign_source_8;
1003         PyObject *tmp_iter_arg_1; 997         PyObject *tmp_iter_arg_1;
1004         PyObject *tmp_called_instance_1; 998         PyObject *tmp_called_instance_1;
n 1005         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]); n 999         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
1006 1000
1007         if (unlikely(tmp_called_instance_1 == NULL)) { 1001         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1008             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]); n 1002             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]);
1009         } 1003         }
1010 1004
1011         assert(!(tmp_called_instance_1 == NULL)); 1005         assert(!(tmp_called_instance_1 == NULL));
1012         frame_9e2f491060ee5543af6e579e758cb0c7->m_frame.f_lineno = 39; 1006         frame_9e2f491060ee5543af6e579e758cb0c7->m_frame.f_lineno = 39;
1013         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 1007         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1014             tmp_called_instance_1, 1008             tmp_called_instance_1,
n 1015             mod_consts[12], n 1009             mod_consts[11],
1016             &PyTuple_GET_ITEM(mod_consts[13], 0) 1010             &PyTuple_GET_ITEM(mod_consts[12], 0)
1017         ); 1011         );
1018 1012
1019         if (tmp_iter_arg_1 == NULL) { 1013         if (tmp_iter_arg_1 == NULL) {
1020             assert(ERROR_OCCURRED()); 1014             assert(ERROR_OCCURRED());
1021 1015
1071     } 1065     }
1072     { 1066     {
1073         PyObject *tmp_assign_source_10; 1067         PyObject *tmp_assign_source_10;
1074         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1068         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1075         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 1069         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 1076         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_10); n 1070         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_10);
1077     } 1071     }
1078     { 1072     {
1079         PyObject *tmp_called_name_1; 1073         PyObject *tmp_called_name_1;
1080         PyObject *tmp_call_result_1; 1074         PyObject *tmp_call_result_1;
1081         PyObject *tmp_args_element_name_1; 1075         PyObject *tmp_args_element_name_1;
n 1082         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]); n 1076         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]);
1083 1077
1084         if (unlikely(tmp_called_name_1 == NULL)) { 1078         if (unlikely(tmp_called_name_1 == NULL)) {
n 1085             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]); n 1079             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[8]);
1086         } 1080         }
1087 1081
1088         if (tmp_called_name_1 == NULL) { 1082         if (tmp_called_name_1 == NULL) {
1089             assert(ERROR_OCCURRED()); 1083             assert(ERROR_OCCURRED());
1090 1084
1093 1087
1094             exception_lineno = 40; 1088             exception_lineno = 40;
1095 1089
1096             goto try_except_handler_1; 1090             goto try_except_handler_1;
1097         } 1091         }
n 1098         tmp_args_element_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[3]); n 1092         tmp_args_element_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[13]);
1099 1093
1100         if (unlikely(tmp_args_element_name_1 == NULL)) { 1094         if (unlikely(tmp_args_element_name_1 == NULL)) {
t 1101             tmp_args_element_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[3]); t 1095             tmp_args_element_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[13]);
1102         } 1096         }
1103 1097
1104         assert(!(tmp_args_element_name_1 == NULL)); 1098         assert(!(tmp_args_element_name_1 == NULL));
1105         frame_9e2f491060ee5543af6e579e758cb0c7->m_frame.f_lineno = 40; 1099         frame_9e2f491060ee5543af6e579e758cb0c7->m_frame.f_lineno = 40;
1106         tmp_call_result_1 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_1, tmp_args_element_name_1); 1100         tmp_call_result_1 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_1, tmp_args_element_name_1);