Construct FunctionCreationGeneratorClosure

Performance Diagrams

Construct FunctionCreationGeneratorClosure 00200000020000004000000400000060000006000000800000080000001000000010000000120000001200000014000000140000001600000016000000180000001800000020000000200000002200000022000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)2399206988.95192307692307257.0CPython 2.73302379242.31730769230768470.1012836751627Nuitka (master)3302379395.6826923076923470.1012836751627Nuitka (develop)3302379549.0480769230769470.1012836751627Nuitka (factory)Construct FunctionCreationGeneratorClosureTicks Construct FunctionCreationGeneratorClosure 00200000020000004000000400000060000006000000800000080000001000000010000000120000001200000014000000140000001600000016000000180000001800000020000000200000002200000022000000240000002400000026000000260000002800000028000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)2890208488.95192307692307257.0CPython 3.53552168242.31730769230768473.7440327938875Nuitka (master)3552168395.6826923076923473.7440327938875Nuitka (develop)3552244549.0480769230769473.743382987139Nuitka (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[18]; n 36 static PyObject *mod_consts[17];
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;
42 42
43 /* Function to create module private constants. */ 43 /* Function to create module private constants. */
44 static void createModuleConstants(void) { 44 static void createModuleConstants(void) {
n 45     loadConstantsBlob(&mod_consts[0], "__main__", 18); n 45     loadConstantsBlob(&mod_consts[0], "__main__", 17);
46 46
47     constants_created = true; 47     constants_created = true;
48 } 48 }
49 49
50 /* For multiprocessing, we want to be able to initialize the __main__ constants. */ 50 /* For multiprocessing, we want to be able to initialize the __main__ constants. */
58 #ifndef __NUITKA_NO_ASSERT__ 58 #ifndef __NUITKA_NO_ASSERT__
59 void checkModuleConstants___main__(void) { 59 void checkModuleConstants___main__(void) {
60     // The module may not have been used at all, then ignore this. 60     // The module may not have been used at all, then ignore this.
61     if (constants_created == false) return; 61     if (constants_created == false) return;
62 62
n 63     checkConstantsBlob(&mod_consts[0], "__main__", 18); n 63     checkConstantsBlob(&mod_consts[0], "__main__", 17);
64 } 64 }
65 #endif 65 #endif
66 66
67 // The module code objects. 67 // The module code objects.
68 static PyCodeObject *codeobj_abc1f7ea86acb3aeef9d156b1cb53799; 68 static PyCodeObject *codeobj_abc1f7ea86acb3aeef9d156b1cb53799;
69 static PyCodeObject *codeobj_f170a385800ac553891d2b9ce9c73820; 69 static PyCodeObject *codeobj_f170a385800ac553891d2b9ce9c73820;
n 70 static PyCodeObject *codeobj_a6571587941e2c8e803f6f9f5ade86b3; n 70 static PyCodeObject *codeobj_6d54c2d95af1fa4f6c2b24efd59adb07;
71 /* For use in "MainProgram.c". */ 71 /* For use in "MainProgram.c". */
72 PyCodeObject *codeobj_main = NULL; 72 PyCodeObject *codeobj_main = NULL;
73 73
74 static void createModuleCodeObjects(void) { 74 static void createModuleCodeObjects(void) {
n 75     module_filename_obj = mod_consts[5]; CHECK_OBJECT(module_filename_obj); n 75     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj);
76     codeobj_abc1f7ea86acb3aeef9d156b1cb53799 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[15], NULL, NULL, 0, 0, 0); 76     codeobj_abc1f7ea86acb3aeef9d156b1cb53799 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[15], NULL, NULL, 0, 0, 0);
n 77     codeobj_f170a385800ac553891d2b9ce9c73820 = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[16], NULL, 1, 0, 0); n 77     codeobj_f170a385800ac553891d2b9ce9c73820 = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[7], mod_consts[16], NULL, 1, 0, 0);
78     codeobj_a6571587941e2c8e803f6f9f5ade86b3 = MAKE_CODEOBJECT(module_filename_obj, 28, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS, mod_consts[1], mod_consts[17], mod_consts[17], 0, 0, 0); 78     codeobj_6d54c2d95af1fa4f6c2b24efd59adb07 = MAKE_CODEOBJECT(module_filename_obj, 31, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], NULL, NULL, 0, 0, 0);
79 } 79 }
80 80
81 // The module function declarations. 81 // The module function declarations.
n 82 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(struct Nuitka_CellObject **closure); n 82 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty();
83 83
84 84
85 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 85 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
86 86
87 87
n 88 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(struct Nuitka_CellObject **closure); n 88 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty();
89 89
90 90
91 // The module function definitions. 91 // The module function definitions.
92 static PyObject *impl___main__$$$function__1_calledRepeatedly(struct Nuitka_FunctionObject const *self, PyObject **python_pars) { 92 static PyObject *impl___main__$$$function__1_calledRepeatedly(struct Nuitka_FunctionObject const *self, PyObject **python_pars) {
93     // Preserve error status for checks 93     // Preserve error status for checks
94 #ifndef __NUITKA_NO_ASSERT__ 94 #ifndef __NUITKA_NO_ASSERT__
95     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 95     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
96 #endif 96 #endif
97 97
98     // Local variable declarations. 98     // Local variable declarations.
n 99     struct Nuitka_CellObject *par_x = Nuitka_Cell_New1(python_pars[0]); n 99     PyObject *par_x = python_pars[0];
100     PyObject *var_empty = NULL; 100     PyObject *var_empty = NULL;
101     struct Nuitka_FrameObject *frame_f170a385800ac553891d2b9ce9c73820; 101     struct Nuitka_FrameObject *frame_f170a385800ac553891d2b9ce9c73820;
102     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 102     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
103     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 103     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
104     PyObject *exception_type = NULL; 104     PyObject *exception_type = NULL;
154 154
155             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 155             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
156 156
157 157
158             exception_lineno = 25; 158             exception_lineno = 25;
n 159             type_description_1 = "co"; n 159             type_description_1 = "oo";
160             goto frame_exception_exit_1; 160             goto frame_exception_exit_1;
161         } 161         }
162     } 162     }
163 163
164 #if 0 164 #if 0
211     goto try_except_handler_1; 211     goto try_except_handler_1;
212 212
213     frame_no_exception_1:; 213     frame_no_exception_1:;
214     { 214     {
215         PyObject *tmp_assign_source_1; 215         PyObject *tmp_assign_source_1;
n 216         struct Nuitka_CellObject *tmp_closure_1[1]; n
217 216
n 218         tmp_closure_1[0] = par_x; n
219         Py_INCREF(tmp_closure_1[0]);
220 217
n 221         tmp_assign_source_1 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(tmp_closure_1); n 218         tmp_assign_source_1 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty();
222 219
223         assert(var_empty == NULL); 220         assert(var_empty == NULL);
224         var_empty = tmp_assign_source_1; 221         var_empty = tmp_assign_source_1;
225     } 222     }
226     { 223     {
227         PyObject *tmp_tuple_element_1; 224         PyObject *tmp_tuple_element_1;
228         CHECK_OBJECT(var_empty); 225         CHECK_OBJECT(var_empty);
229         tmp_tuple_element_1 = var_empty; 226         tmp_tuple_element_1 = var_empty;
230         tmp_return_value = PyTuple_New(2); 227         tmp_return_value = PyTuple_New(2);
231         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); 228         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1);
n 232         CHECK_OBJECT(Nuitka_Cell_GET(par_x)); n 229         CHECK_OBJECT(par_x);
233         tmp_tuple_element_1 = Nuitka_Cell_GET(par_x); 230         tmp_tuple_element_1 = par_x;
234         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); 231         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1);
235         goto try_return_handler_1; 232         goto try_return_handler_1;
236     } 233     }
237     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); 234     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
238     return NULL; 235     return NULL;
297 294
298     // Local variable declarations. 295     // Local variable declarations.
299     PyObject *tmp_return_value = NULL; 296     PyObject *tmp_return_value = NULL;
300 297
301     // Actual function body. 298     // Actual function body.
n 302     { n
303         struct Nuitka_CellObject *tmp_closure_1[1];
304 299
n 305         tmp_closure_1[0] = self->m_closure[0]; n
306         Py_INCREF(tmp_closure_1[0]);
307 300
n 308         tmp_return_value = MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(tmp_closure_1); n 301     tmp_return_value = MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty();
309 302
n 310         goto function_return_exit; n 303     goto function_return_exit;
311     }
312 304
313     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 305     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
314     return NULL; 306     return NULL;
315 307
316 308
367         } else { 359         } else {
368             count_released_frame_cache_instances += 1; 360             count_released_frame_cache_instances += 1;
369         } 361         }
370         count_allocated_frame_cache_instances += 1; 362         count_allocated_frame_cache_instances += 1;
371 #endif 363 #endif
n 372         cache_m_frame = MAKE_FUNCTION_FRAME(codeobj_a6571587941e2c8e803f6f9f5ade86b3, module___main__, sizeof(void *)); n 364         cache_m_frame = MAKE_FUNCTION_FRAME(codeobj_6d54c2d95af1fa4f6c2b24efd59adb07, module___main__, 0);
373 #if _DEBUG_REFCOUNTS 365 #if _DEBUG_REFCOUNTS
374     } else { 366     } else {
375         count_hit_frame_cache_instances += 1; 367         count_hit_frame_cache_instances += 1;
376 #endif 368 #endif
377     } 369     }
415 407
416     // Framed code: 408     // Framed code:
417     { 409     {
418         PyObject *tmp_expression_name_1; 410         PyObject *tmp_expression_name_1;
419         NUITKA_MAY_BE_UNUSED PyObject *tmp_yield_result_1; 411         NUITKA_MAY_BE_UNUSED PyObject *tmp_yield_result_1;
n 420         if (Nuitka_Cell_GET(generator->m_closure[0]) == NULL) { n 412         tmp_expression_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[0]);
421 413
n 422             FORMAT_UNBOUND_CLOSURE_ERROR(&generator_heap->exception_type, &generator_heap->exception_value, mod_consts[3]); n 414         if (unlikely(tmp_expression_name_1 == NULL)) {
423             generator_heap->exception_tb = NULL; 415             tmp_expression_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[0]);
416         }
417  
418         if (tmp_expression_name_1 == NULL) {
419             assert(ERROR_OCCURRED());
420  
424             NORMALIZE_EXCEPTION(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb); 421             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb);
425             CHAIN_EXCEPTION(generator_heap->exception_value);
426 422
n n 423  
427             generator_heap->exception_lineno = 29; 424             generator_heap->exception_lineno = 32;
428             generator_heap->type_description_1 = "c"; 425  
429             goto frame_exception_exit_1; 426             goto frame_exception_exit_1;
430         } 427         }
n 431   n
432         tmp_expression_name_1 = Nuitka_Cell_GET(generator->m_closure[0]);
433         Py_INCREF(tmp_expression_name_1); 428         Py_INCREF(tmp_expression_name_1);
434         generator->m_yield_return_index = 1; 429         generator->m_yield_return_index = 1;
435         return tmp_expression_name_1; 430         return tmp_expression_name_1;
436         yield_return_1: 431         yield_return_1:
437         if (yield_return_value == NULL) { 432         if (yield_return_value == NULL) {
438             assert(ERROR_OCCURRED()); 433             assert(ERROR_OCCURRED());
439 434
440             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb); 435             FETCH_ERROR_OCCURRED(&generator_heap->exception_type, &generator_heap->exception_value, &generator_heap->exception_tb);
441 436
442 437
n 443             generator_heap->exception_lineno = 29; n 438             generator_heap->exception_lineno = 32;
444             generator_heap->type_description_1 = "c"; 439  
445             goto frame_exception_exit_1; 440             goto frame_exception_exit_1;
446         } 441         }
447         tmp_yield_result_1 = yield_return_value; 442         tmp_yield_result_1 = yield_return_value;
448     } 443     }
449 444
469             generator_heap->exception_tb = ADD_TRACEBACK(generator_heap->exception_tb, generator->m_frame, generator_heap->exception_lineno); 464             generator_heap->exception_tb = ADD_TRACEBACK(generator_heap->exception_tb, generator->m_frame, generator_heap->exception_lineno);
470         } 465         }
471 466
472         Nuitka_Frame_AttachLocals( 467         Nuitka_Frame_AttachLocals(
473             generator->m_frame, 468             generator->m_frame,
n 474             generator_heap->type_description_1, n 469             generator_heap->type_description_1
475             generator->m_closure[0]
476         ); 470         );
477 471
478 472
479         // Release cached frame if used for exception. 473         // Release cached frame if used for exception.
480         if (generator->m_frame == cache_m_frame) { 474         if (generator->m_frame == cache_m_frame) {
512 506
513     return NULL; 507     return NULL;
514 508
515 } 509 }
516 510
n 517 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty(struct Nuitka_CellObject **closure) { n 511 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty() {
518     return Nuitka_Generator_New( 512     return Nuitka_Generator_New(
519         __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_context, 513         __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_context,
520         module___main__, 514         module___main__,
521         mod_consts[1], 515         mod_consts[1],
522 #if PYTHON_VERSION >= 0x350 516 #if PYTHON_VERSION >= 0x350
523         mod_consts[2], 517         mod_consts[2],
524 #endif 518 #endif
n 525         codeobj_a6571587941e2c8e803f6f9f5ade86b3, n 519         codeobj_6d54c2d95af1fa4f6c2b24efd59adb07,
526         closure, 520         NULL,
527         1, 521         0,
528         sizeof(struct __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_locals) 522         sizeof(struct __main__$$$function__1_calledRepeatedly$$$function__1_empty$$$genobj__1_empty_locals)
529     ); 523     );
530 } 524 }
531 525
532 526
533 527
534 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 528 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
535     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 529     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
536         impl___main__$$$function__1_calledRepeatedly, 530         impl___main__$$$function__1_calledRepeatedly,
n 537         mod_consts[8], n 531         mod_consts[7],
538 #if PYTHON_VERSION >= 0x300 532 #if PYTHON_VERSION >= 0x300
539         NULL, 533         NULL,
540 #endif 534 #endif
541         codeobj_f170a385800ac553891d2b9ce9c73820, 535         codeobj_f170a385800ac553891d2b9ce9c73820,
542         NULL, 536         NULL,
554     return (PyObject *)result; 548     return (PyObject *)result;
555 } 549 }
556 550
557 551
558 552
n 559 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty(struct Nuitka_CellObject **closure) { n 553 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly$$$function__1_empty() {
560     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 554     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
561         impl___main__$$$function__1_calledRepeatedly$$$function__1_empty, 555         impl___main__$$$function__1_calledRepeatedly$$$function__1_empty,
562         mod_consts[1], 556         mod_consts[1],
563 #if PYTHON_VERSION >= 0x300 557 #if PYTHON_VERSION >= 0x300
564         mod_consts[2], 558         mod_consts[2],
565 #endif 559 #endif
n 566         codeobj_a6571587941e2c8e803f6f9f5ade86b3, n 560         codeobj_6d54c2d95af1fa4f6c2b24efd59adb07,
567         NULL, 561         NULL,
568 #if PYTHON_VERSION >= 0x300 562 #if PYTHON_VERSION >= 0x300
569         NULL, 563         NULL,
570         NULL, 564         NULL,
571 #endif 565 #endif
572         module___main__, 566         module___main__,
573         NULL, 567         NULL,
n 574         closure, n 568         NULL,
575         1 569         0
576     ); 570     );
577 571
578 572
579     return (PyObject *)result; 573     return (PyObject *)result;
580 } 574 }
968 962
969     // Module code. 963     // Module code.
970     { 964     {
971         PyObject *tmp_assign_source_1; 965         PyObject *tmp_assign_source_1;
972         tmp_assign_source_1 = Py_None; 966         tmp_assign_source_1 = Py_None;
n 973         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 967         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1);
974     } 968     }
975     { 969     {
976         PyObject *tmp_assign_source_2; 970         PyObject *tmp_assign_source_2;
n 977         tmp_assign_source_2 = mod_consts[5]; n 971         tmp_assign_source_2 = mod_consts[4];
978         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 972         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2);
979     } 973     }
980     { 974     {
981         PyObject *tmp_assign_source_3; 975         PyObject *tmp_assign_source_3;
982         tmp_assign_source_3 = Py_None; 976         tmp_assign_source_3 = Py_None;
n 983         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 977         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3);
984     } 978     }
985     { 979     {
986         PyObject *tmp_assign_source_4; 980         PyObject *tmp_assign_source_4;
987         tmp_assign_source_4 = Py_None; 981         tmp_assign_source_4 = Py_None;
988         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 982         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
991         PyObject *tmp_assign_source_5; 985         PyObject *tmp_assign_source_5;
992 986
993 987
994         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 988         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
995 989
n 996         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_5); n 990         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
997     } 991     }
998     { 992     {
999         PyObject *tmp_assign_source_6; 993         PyObject *tmp_assign_source_6;
1000         PyObject *tmp_name_name_1; 994         PyObject *tmp_name_name_1;
1001         PyObject *tmp_globals_arg_name_1; 995         PyObject *tmp_globals_arg_name_1;
1002         PyObject *tmp_locals_arg_name_1; 996         PyObject *tmp_locals_arg_name_1;
1003         PyObject *tmp_fromlist_name_1; 997         PyObject *tmp_fromlist_name_1;
1004         PyObject *tmp_level_name_1; 998         PyObject *tmp_level_name_1;
n 1005         tmp_name_name_1 = mod_consts[9]; n 999         tmp_name_name_1 = mod_consts[8];
1006         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__; 1000         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__;
1007         tmp_locals_arg_name_1 = Py_None; 1001         tmp_locals_arg_name_1 = Py_None;
1008         tmp_fromlist_name_1 = Py_None; 1002         tmp_fromlist_name_1 = Py_None;
n 1009         tmp_level_name_1 = mod_consts[10]; n 1003         tmp_level_name_1 = mod_consts[9];
1010         tmp_assign_source_6 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1); 1004         tmp_assign_source_6 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1);
1011         assert(!(tmp_assign_source_6 == NULL)); 1005         assert(!(tmp_assign_source_6 == NULL));
n 1012         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_6); n 1006         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_6);
1013     } 1007     }
1014     // Frame without reuse. 1008     // Frame without reuse.
1015     frame_abc1f7ea86acb3aeef9d156b1cb53799 = MAKE_MODULE_FRAME(codeobj_abc1f7ea86acb3aeef9d156b1cb53799, module___main__); 1009     frame_abc1f7ea86acb3aeef9d156b1cb53799 = MAKE_MODULE_FRAME(codeobj_abc1f7ea86acb3aeef9d156b1cb53799, module___main__);
1016 1010
1017     // Push the new frame as the currently active one, and we should be exclusively 1011     // Push the new frame as the currently active one, and we should be exclusively
1022     // Framed code: 1016     // Framed code:
1023     { 1017     {
1024         PyObject *tmp_assign_source_7; 1018         PyObject *tmp_assign_source_7;
1025         PyObject *tmp_iter_arg_1; 1019         PyObject *tmp_iter_arg_1;
1026         PyObject *tmp_called_instance_1; 1020         PyObject *tmp_called_instance_1;
n 1027         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]); n 1021         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]);
1028 1022
1029         if (unlikely(tmp_called_instance_1 == NULL)) { 1023         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1030             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]); n 1024             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[8]);
1031         } 1025         }
1032 1026
1033         assert(!(tmp_called_instance_1 == NULL)); 1027         assert(!(tmp_called_instance_1 == NULL));
1034         frame_abc1f7ea86acb3aeef9d156b1cb53799->m_frame.f_lineno = 39; 1028         frame_abc1f7ea86acb3aeef9d156b1cb53799->m_frame.f_lineno = 39;
n 1035         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(tmp_called_instance_1, mod_consts[11], &PyTuple_GET_ITEM(mod_consts[12], 0)); n 1029         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(tmp_called_instance_1, mod_consts[10], &PyTuple_GET_ITEM(mod_consts[11], 0));
1036 1030
1037         if (tmp_iter_arg_1 == NULL) { 1031         if (tmp_iter_arg_1 == NULL) {
1038             assert(ERROR_OCCURRED()); 1032             assert(ERROR_OCCURRED());
1039 1033
1040             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 1034             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1089     } 1083     }
1090     { 1084     {
1091         PyObject *tmp_assign_source_9; 1085         PyObject *tmp_assign_source_9;
1092         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1086         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1093         tmp_assign_source_9 = tmp_for_loop_1__iter_value; 1087         tmp_assign_source_9 = tmp_for_loop_1__iter_value;
n 1094         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_9); n 1088         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_9);
1095     } 1089     }
1096     { 1090     {
1097         PyObject *tmp_called_name_1; 1091         PyObject *tmp_called_name_1;
1098         PyObject *tmp_call_result_1; 1092         PyObject *tmp_call_result_1;
1099         PyObject *tmp_args_element_name_1; 1093         PyObject *tmp_args_element_name_1;
n 1100         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 1094         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]);
1101 1095
1102         if (unlikely(tmp_called_name_1 == NULL)) { 1096         if (unlikely(tmp_called_name_1 == NULL)) {
n 1103             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[8]); n 1097             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[7]);
1104         } 1098         }
1105 1099
1106         if (tmp_called_name_1 == NULL) { 1100         if (tmp_called_name_1 == NULL) {
1107             assert(ERROR_OCCURRED()); 1101             assert(ERROR_OCCURRED());
1108 1102
1111 1105
1112             exception_lineno = 40; 1106             exception_lineno = 40;
1113 1107
1114             goto try_except_handler_1; 1108             goto try_except_handler_1;
1115         } 1109         }
n 1116         tmp_args_element_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[3]); n 1110         tmp_args_element_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[12]);
1117 1111
1118         if (unlikely(tmp_args_element_name_1 == NULL)) { 1112         if (unlikely(tmp_args_element_name_1 == NULL)) {
t 1119             tmp_args_element_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[3]); t 1113             tmp_args_element_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[12]);
1120         } 1114         }
1121 1115
1122         assert(!(tmp_args_element_name_1 == NULL)); 1116         assert(!(tmp_args_element_name_1 == NULL));
1123         frame_abc1f7ea86acb3aeef9d156b1cb53799->m_frame.f_lineno = 40; 1117         frame_abc1f7ea86acb3aeef9d156b1cb53799->m_frame.f_lineno = 40;
1124         tmp_call_result_1 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_1, tmp_args_element_name_1); 1118         tmp_call_result_1 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_1, tmp_args_element_name_1);