Construct CallCompiledFunctionPosKwArgsVariable

Performance Diagrams

Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)21510946488.11538461538461263.5362018402592CPython 2.7220953689240.03846153846155257.0Nuitka (master)79702310391.96153846153845414.976040169388Nuitka (develop)79702310543.8846153846154414.976040169388Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000CPython 3.8Nuitka (master)Nuitka (develop)Nuitka (factory)20969451988.11538461538461281.19562838666815CPython 3.8232454685240.03846153846155257.0Nuitka (master)88956058391.96153846153845409.5489512198243Nuitka (develop)88954040543.8846153846154409.55109649319724Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks

Source Code with Construct

from __future__ import print_function

def compiled_func(a,b,c,d,e,f):
    return a, b, c, d, e, f

def getUnknownValue():
    return 8

def calledRepeatedly():
    a = getUnknownValue()
    b = getUnknownValue()
    c = getUnknownValue()
    d = getUnknownValue()
    e = getUnknownValue()
    f = getUnknownValue()

    compiled_f = compiled_func

    # This is supposed to make a call to a compiled function, which is
    # being optimized separately.
# construct_begin
    compiled_f(a, b, c, d=d, e=e, f=f)
    compiled_f(a, c, b, d=d, e=e, f=f)
    compiled_f(a, b, c, d=d, e=e, f=f)
# construct_alternative



    return compiled_f

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

print("OK.")

Source Code without Construct

from __future__ import print_function

def compiled_func(a,b,c,d,e,f):
    return a, b, c, d, e, f

def getUnknownValue():
    return 8

def calledRepeatedly():
    a = getUnknownValue()
    b = getUnknownValue()
    c = getUnknownValue()
    d = getUnknownValue()
    e = getUnknownValue()
    f = getUnknownValue()

    compiled_f = compiled_func

    # This is supposed to make a call to a compiled function, which is
    # being optimized separately.
# construct_begin



# construct_alternative
    pass
# construct_end

    return compiled_f

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

print("OK.")

Context Diff of Source Code


Construct
Baseline
36     compiled_f = compiled_func 36     compiled_f = compiled_func
37 37
38     # This is supposed to make a call to a compiled function, which is 38     # This is supposed to make a call to a compiled function, which is
39     # being optimized separately. 39     # being optimized separately.
40 # construct_begin 40 # construct_begin
n 41     compiled_f(a, b, c, d=d, e=e, f=f) n
42     compiled_f(a, c, b, d=d, e=e, f=f)
43     compiled_f(a, b, c, d=d, e=e, f=f)
44 # construct_alternative
45 41
46 42
t t 43  
44 # construct_alternative
45     pass
46 # construct_end
47 47
48     return compiled_f 48     return compiled_f
49 49
50 import itertools 50 import itertools
51 for x in itertools.repeat(None, 50000): 51 for x in itertools.repeat(None, 50000):

Context Diff of Generated Code


Construct
Baseline
31 31
32 PyObject *module___main__; 32 PyObject *module___main__;
33 PyDictObject *moduledict___main__; 33 PyDictObject *moduledict___main__;
34 34
35 /* The declarations of module constants used, if any. */ 35 /* The declarations of module constants used, if any. */
n 36 static PyObject *mod_consts[21]; n 36 static PyObject *mod_consts[20];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[21]; n 38 static Py_hash_t mod_consts_hash[20];
39 #endif 39 #endif
40 40
41 static PyObject *module_filename_obj = NULL; 41 static PyObject *module_filename_obj = NULL;
42 42
43 /* Indicator if this modules private constants were created yet. */ 43 /* Indicator if this modules private constants were created yet. */
48     if (constants_created == false) { 48     if (constants_created == false) {
49         loadConstantsBlob(&mod_consts[0], UNTRANSLATE("__main__")); 49         loadConstantsBlob(&mod_consts[0], UNTRANSLATE("__main__"));
50         constants_created = true; 50         constants_created = true;
51 51
52 #ifndef __NUITKA_NO_ASSERT__ 52 #ifndef __NUITKA_NO_ASSERT__
n 53         for(int i = 0; i < 21; i++) { n 53         for(int i = 0; i < 20; i++) {
54             mod_consts_hash[i] = DEEP_HASH(mod_consts[i]); 54             mod_consts_hash[i] = DEEP_HASH(mod_consts[i]);
55         } 55         }
56 #endif 56 #endif
57     } 57     }
58 } 58 }
68 #ifndef __NUITKA_NO_ASSERT__ 68 #ifndef __NUITKA_NO_ASSERT__
69 void checkModuleConstants___main__(void) { 69 void checkModuleConstants___main__(void) {
70     // The module may not have been used at all, then ignore this. 70     // The module may not have been used at all, then ignore this.
71     if (constants_created == false) return; 71     if (constants_created == false) return;
72 72
n 73     for(int i = 0; i < 21; i++) { n 73     for(int i = 0; i < 20; i++) {
74         assert(mod_consts_hash[i] == DEEP_HASH(mod_consts[i])); 74         assert(mod_consts_hash[i] == DEEP_HASH(mod_consts[i]));
75         CHECK_OBJECT_DEEP(mod_consts[i]); 75         CHECK_OBJECT_DEEP(mod_consts[i]);
76     } 76     }
77 } 77 }
78 #endif 78 #endif
84 static PyCodeObject *codeobj_e372e8269a07d61dc14f631fca6a8051; 84 static PyCodeObject *codeobj_e372e8269a07d61dc14f631fca6a8051;
85 /* For use in "MainProgram.c". */ 85 /* For use in "MainProgram.c". */
86 PyCodeObject *codeobj_main = NULL; 86 PyCodeObject *codeobj_main = NULL;
87 87
88 static void createModuleCodeObjects(void) { 88 static void createModuleCodeObjects(void) {
n 89     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj); n 89     module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj);
90     codeobj_9a5b928637ca1224a5fc1efc0dd3a500 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[18], NULL, NULL, 0, 0, 0); 90     codeobj_9a5b928637ca1224a5fc1efc0dd3a500 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[17], NULL, NULL, 0, 0, 0);
91     codeobj_efead362af59d880e1721a6e54152f7f = MAKE_CODEOBJECT(module_filename_obj, 28, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[10], mod_consts[19], NULL, 0, 0, 0); 91     codeobj_efead362af59d880e1721a6e54152f7f = MAKE_CODEOBJECT(module_filename_obj, 28, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[9], mod_consts[18], NULL, 0, 0, 0);
92     codeobj_063a10c375cbb131e59556cb7872757e = MAKE_CODEOBJECT(module_filename_obj, 22, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], mod_consts[20], NULL, 6, 0, 0); 92     codeobj_063a10c375cbb131e59556cb7872757e = MAKE_CODEOBJECT(module_filename_obj, 22, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], mod_consts[19], NULL, 6, 0, 0);
93     codeobj_e372e8269a07d61dc14f631fca6a8051 = MAKE_CODEOBJECT(module_filename_obj, 25, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[0], NULL, NULL, 0, 0, 0); 93     codeobj_e372e8269a07d61dc14f631fca6a8051 = MAKE_CODEOBJECT(module_filename_obj, 25, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[0], NULL, NULL, 0, 0, 0);
94 } 94 }
95 95
96 // The module function declarations. 96 // The module function declarations.
97 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_func(); 97 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_func();
189     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 189     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
190     PyObject *exception_type = NULL; 190     PyObject *exception_type = NULL;
191     PyObject *exception_value = NULL; 191     PyObject *exception_value = NULL;
192     PyTracebackObject *exception_tb = NULL; 192     PyTracebackObject *exception_tb = NULL;
193     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 193     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 194     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; n
195     static struct Nuitka_FrameObject *cache_frame_efead362af59d880e1721a6e54152f7f = NULL; 194     static struct Nuitka_FrameObject *cache_frame_efead362af59d880e1721a6e54152f7f = NULL;
196     PyObject *tmp_return_value = NULL; 195     PyObject *tmp_return_value = NULL;
197     PyObject *exception_keeper_type_1; 196     PyObject *exception_keeper_type_1;
198     PyObject *exception_keeper_value_1; 197     PyObject *exception_keeper_value_1;
199     PyTracebackObject *exception_keeper_tb_1; 198     PyTracebackObject *exception_keeper_tb_1;
451             goto frame_exception_exit_1; 450             goto frame_exception_exit_1;
452         } 451         }
453         assert(var_compiled_f == NULL); 452         assert(var_compiled_f == NULL);
454         Py_INCREF(tmp_assign_source_7); 453         Py_INCREF(tmp_assign_source_7);
455         var_compiled_f = tmp_assign_source_7; 454         var_compiled_f = tmp_assign_source_7;
n 456     } n
457     {
458         PyObject *tmp_called_name_7;
459         PyObject *tmp_call_result_1;
460         PyObject *tmp_kw_call_arg_value_0_1;
461         PyObject *tmp_kw_call_arg_value_1_1;
462         PyObject *tmp_kw_call_arg_value_2_1;
463         PyObject *tmp_kw_call_dict_value_0_1;
464         PyObject *tmp_kw_call_dict_value_1_1;
465         PyObject *tmp_kw_call_dict_value_2_1;
466         CHECK_OBJECT(var_compiled_f);
467         tmp_called_name_7 = var_compiled_f;
468         CHECK_OBJECT(var_a);
469         tmp_kw_call_arg_value_0_1 = var_a;
470         CHECK_OBJECT(var_b);
471         tmp_kw_call_arg_value_1_1 = var_b;
472         CHECK_OBJECT(var_c);
473         tmp_kw_call_arg_value_2_1 = var_c;
474         CHECK_OBJECT(var_d);
475         tmp_kw_call_dict_value_0_1 = var_d;
476         CHECK_OBJECT(var_e);
477         tmp_kw_call_dict_value_1_1 = var_e;
478         CHECK_OBJECT(var_f);
479         tmp_kw_call_dict_value_2_1 = var_f;
480         frame_efead362af59d880e1721a6e54152f7f->m_frame.f_lineno = 41;
481         {
482             PyObject *args[] = {tmp_kw_call_arg_value_0_1, tmp_kw_call_arg_value_1_1, tmp_kw_call_arg_value_2_1};
483             PyObject *kw_values[3] = {tmp_kw_call_dict_value_0_1, tmp_kw_call_dict_value_1_1, tmp_kw_call_dict_value_2_1};
484             tmp_call_result_1 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tmp_called_name_7, args, kw_values, mod_consts[2]);
485         }
486  
487         if (tmp_call_result_1 == NULL) {
488             assert(ERROR_OCCURRED());
489  
490             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
491  
492  
493             exception_lineno = 41;
494             type_description_1 = "ooooooo";
495             goto frame_exception_exit_1;
496         }
497         Py_DECREF(tmp_call_result_1);
498     }
499     {
500         PyObject *tmp_called_name_8;
501         PyObject *tmp_call_result_2;
502         PyObject *tmp_kw_call_arg_value_0_2;
503         PyObject *tmp_kw_call_arg_value_1_2;
504         PyObject *tmp_kw_call_arg_value_2_2;
505         PyObject *tmp_kw_call_dict_value_0_2;
506         PyObject *tmp_kw_call_dict_value_1_2;
507         PyObject *tmp_kw_call_dict_value_2_2;
508         CHECK_OBJECT(var_compiled_f);
509         tmp_called_name_8 = var_compiled_f;
510         CHECK_OBJECT(var_a);
511         tmp_kw_call_arg_value_0_2 = var_a;
512         CHECK_OBJECT(var_c);
513         tmp_kw_call_arg_value_1_2 = var_c;
514         CHECK_OBJECT(var_b);
515         tmp_kw_call_arg_value_2_2 = var_b;
516         CHECK_OBJECT(var_d);
517         tmp_kw_call_dict_value_0_2 = var_d;
518         CHECK_OBJECT(var_e);
519         tmp_kw_call_dict_value_1_2 = var_e;
520         CHECK_OBJECT(var_f);
521         tmp_kw_call_dict_value_2_2 = var_f;
522         frame_efead362af59d880e1721a6e54152f7f->m_frame.f_lineno = 42;
523         {
524             PyObject *args[] = {tmp_kw_call_arg_value_0_2, tmp_kw_call_arg_value_1_2, tmp_kw_call_arg_value_2_2};
525             PyObject *kw_values[3] = {tmp_kw_call_dict_value_0_2, tmp_kw_call_dict_value_1_2, tmp_kw_call_dict_value_2_2};
526             tmp_call_result_2 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tmp_called_name_8, args, kw_values, mod_consts[2]);
527         }
528  
529         if (tmp_call_result_2 == NULL) {
530             assert(ERROR_OCCURRED());
531  
532             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
533  
534  
535             exception_lineno = 42;
536             type_description_1 = "ooooooo";
537             goto frame_exception_exit_1;
538         }
539         Py_DECREF(tmp_call_result_2);
540     }
541     {
542         PyObject *tmp_called_name_9;
543         PyObject *tmp_call_result_3;
544         PyObject *tmp_kw_call_arg_value_0_3;
545         PyObject *tmp_kw_call_arg_value_1_3;
546         PyObject *tmp_kw_call_arg_value_2_3;
547         PyObject *tmp_kw_call_dict_value_0_3;
548         PyObject *tmp_kw_call_dict_value_1_3;
549         PyObject *tmp_kw_call_dict_value_2_3;
550         CHECK_OBJECT(var_compiled_f);
551         tmp_called_name_9 = var_compiled_f;
552         CHECK_OBJECT(var_a);
553         tmp_kw_call_arg_value_0_3 = var_a;
554         CHECK_OBJECT(var_b);
555         tmp_kw_call_arg_value_1_3 = var_b;
556         CHECK_OBJECT(var_c);
557         tmp_kw_call_arg_value_2_3 = var_c;
558         CHECK_OBJECT(var_d);
559         tmp_kw_call_dict_value_0_3 = var_d;
560         CHECK_OBJECT(var_e);
561         tmp_kw_call_dict_value_1_3 = var_e;
562         CHECK_OBJECT(var_f);
563         tmp_kw_call_dict_value_2_3 = var_f;
564         frame_efead362af59d880e1721a6e54152f7f->m_frame.f_lineno = 43;
565         {
566             PyObject *args[] = {tmp_kw_call_arg_value_0_3, tmp_kw_call_arg_value_1_3, tmp_kw_call_arg_value_2_3};
567             PyObject *kw_values[3] = {tmp_kw_call_dict_value_0_3, tmp_kw_call_dict_value_1_3, tmp_kw_call_dict_value_2_3};
568             tmp_call_result_3 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tmp_called_name_9, args, kw_values, mod_consts[2]);
569         }
570  
571         if (tmp_call_result_3 == NULL) {
572             assert(ERROR_OCCURRED());
573  
574             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
575  
576  
577             exception_lineno = 43;
578             type_description_1 = "ooooooo";
579             goto frame_exception_exit_1;
580         }
581         Py_DECREF(tmp_call_result_3);
582     } 455     }
583 456
584 #if 0 457 #if 0
585     RESTORE_FRAME_EXCEPTION(frame_efead362af59d880e1721a6e54152f7f); 458     RESTORE_FRAME_EXCEPTION(frame_efead362af59d880e1721a6e54152f7f);
586 #endif 459 #endif
687     var_d = NULL; 560     var_d = NULL;
688     Py_XDECREF(var_e); 561     Py_XDECREF(var_e);
689     var_e = NULL; 562     var_e = NULL;
690     Py_XDECREF(var_f); 563     Py_XDECREF(var_f);
691     var_f = NULL; 564     var_f = NULL;
n 692     Py_XDECREF(var_compiled_f); n
693     var_compiled_f = NULL;
694     // Re-raise. 565     // Re-raise.
695     exception_type = exception_keeper_type_1; 566     exception_type = exception_keeper_type_1;
696     exception_value = exception_keeper_value_1; 567     exception_value = exception_keeper_value_1;
697     exception_tb = exception_keeper_tb_1; 568     exception_tb = exception_keeper_tb_1;
698     exception_lineno = exception_keeper_lineno_1; 569     exception_lineno = exception_keeper_lineno_1;
763         module___main__, 634         module___main__,
764         NULL, 635         NULL,
765         NULL, 636         NULL,
766         0 637         0
767     ); 638     );
n 768     Nuitka_Function_EnableConstReturnGeneric(result, mod_consts[9]); n 639     Nuitka_Function_EnableConstReturnGeneric(result, mod_consts[8]);
769 640
770     return (PyObject *)result; 641     return (PyObject *)result;
771 } 642 }
772 643
773 644
774 645
775 static PyObject *MAKE_FUNCTION___main__$$$function__3_calledRepeatedly() { 646 static PyObject *MAKE_FUNCTION___main__$$$function__3_calledRepeatedly() {
776     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 647     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
777         impl___main__$$$function__3_calledRepeatedly, 648         impl___main__$$$function__3_calledRepeatedly,
n 778         mod_consts[10], n 649         mod_consts[9],
779 #if PYTHON_VERSION >= 0x300 650 #if PYTHON_VERSION >= 0x300
780         NULL, 651         NULL,
781 #endif 652 #endif
782         codeobj_efead362af59d880e1721a6e54152f7f, 653         codeobj_efead362af59d880e1721a6e54152f7f,
783         NULL, 654         NULL,
1155 1026
1156     // Module code. 1027     // Module code.
1157     { 1028     {
1158         PyObject *tmp_assign_source_1; 1029         PyObject *tmp_assign_source_1;
1159         tmp_assign_source_1 = Py_None; 1030         tmp_assign_source_1 = Py_None;
n 1160         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1); n 1031         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
1161     } 1032     }
1162     { 1033     {
1163         PyObject *tmp_assign_source_2; 1034         PyObject *tmp_assign_source_2;
n 1164         tmp_assign_source_2 = mod_consts[4]; n 1035         tmp_assign_source_2 = mod_consts[3];
1165         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2); 1036         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
1166     } 1037     }
1167     { 1038     {
1168         PyObject *tmp_assign_source_3; 1039         PyObject *tmp_assign_source_3;
1169         tmp_assign_source_3 = Py_None; 1040         tmp_assign_source_3 = Py_None;
n 1170         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3); n 1041         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
1171     } 1042     }
1172     { 1043     {
1173         PyObject *tmp_assign_source_4; 1044         PyObject *tmp_assign_source_4;
1174         tmp_assign_source_4 = PyDict_New(); 1045         tmp_assign_source_4 = PyDict_New();
n 1175         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4); n 1046         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_4);
1176     } 1047     }
1177     { 1048     {
1178         PyObject *tmp_assign_source_5; 1049         PyObject *tmp_assign_source_5;
1179         { 1050         {
1180             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 1051             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 1181             tmp_assign_source_5 = LOOKUP_ATTRIBUTE(hard_module, mod_consts[8]); n 1052             tmp_assign_source_5 = LOOKUP_ATTRIBUTE(hard_module, mod_consts[7]);
1182         } 1053         }
1183 1054
1184         assert(!(tmp_assign_source_5 == NULL)); 1055         assert(!(tmp_assign_source_5 == NULL));
n 1185         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_5); n 1056         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
1186     } 1057     }
1187     { 1058     {
1188         PyObject *tmp_assign_source_6; 1059         PyObject *tmp_assign_source_6;
1189 1060
1190 1061
1204         PyObject *tmp_assign_source_8; 1075         PyObject *tmp_assign_source_8;
1205 1076
1206 1077
1207         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly(); 1078         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly();
1208 1079
n 1209         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8); n 1080         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8);
1210     } 1081     }
1211     { 1082     {
1212         PyObject *tmp_assign_source_9; 1083         PyObject *tmp_assign_source_9;
1213         PyObject *tmp_name_name_1; 1084         PyObject *tmp_name_name_1;
1214         PyObject *tmp_globals_arg_name_1; 1085         PyObject *tmp_globals_arg_name_1;
1215         PyObject *tmp_locals_arg_name_1; 1086         PyObject *tmp_locals_arg_name_1;
1216         PyObject *tmp_fromlist_name_1; 1087         PyObject *tmp_fromlist_name_1;
1217         PyObject *tmp_level_name_1; 1088         PyObject *tmp_level_name_1;
n 1218         tmp_name_name_1 = mod_consts[11]; n 1089         tmp_name_name_1 = mod_consts[10];
1219         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__; 1090         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__;
1220         tmp_locals_arg_name_1 = Py_None; 1091         tmp_locals_arg_name_1 = Py_None;
1221         tmp_fromlist_name_1 = Py_None; 1092         tmp_fromlist_name_1 = Py_None;
n 1222         tmp_level_name_1 = mod_consts[12]; n 1093         tmp_level_name_1 = mod_consts[11];
1223         tmp_assign_source_9 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1); 1094         tmp_assign_source_9 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1);
1224         assert(!(tmp_assign_source_9 == NULL)); 1095         assert(!(tmp_assign_source_9 == NULL));
n 1225         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_9); n 1096         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_9);
1226     } 1097     }
1227     // Frame without reuse. 1098     // Frame without reuse.
1228     frame_9a5b928637ca1224a5fc1efc0dd3a500 = MAKE_MODULE_FRAME(codeobj_9a5b928637ca1224a5fc1efc0dd3a500, module___main__); 1099     frame_9a5b928637ca1224a5fc1efc0dd3a500 = MAKE_MODULE_FRAME(codeobj_9a5b928637ca1224a5fc1efc0dd3a500, module___main__);
1229 1100
1230     // Push the new frame as the currently active one, and we should be exclusively 1101     // Push the new frame as the currently active one, and we should be exclusively
1235     // Framed code: 1106     // Framed code:
1236     { 1107     {
1237         PyObject *tmp_assign_source_10; 1108         PyObject *tmp_assign_source_10;
1238         PyObject *tmp_iter_arg_1; 1109         PyObject *tmp_iter_arg_1;
1239         PyObject *tmp_called_instance_1; 1110         PyObject *tmp_called_instance_1;
n 1240         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[11]); n 1111         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]);
1241 1112
1242         if (unlikely(tmp_called_instance_1 == NULL)) { 1113         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1243             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[11]); n 1114             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]);
1244         } 1115         }
1245 1116
1246         assert(!(tmp_called_instance_1 == NULL)); 1117         assert(!(tmp_called_instance_1 == NULL));
1247         frame_9a5b928637ca1224a5fc1efc0dd3a500->m_frame.f_lineno = 51; 1118         frame_9a5b928637ca1224a5fc1efc0dd3a500->m_frame.f_lineno = 51;
1248         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 1119         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1249             tmp_called_instance_1, 1120             tmp_called_instance_1,
n 1250             mod_consts[13], n 1121             mod_consts[12],
1251             &PyTuple_GET_ITEM(mod_consts[14], 0) 1122             &PyTuple_GET_ITEM(mod_consts[13], 0)
1252         ); 1123         );
1253 1124
1254         if (tmp_iter_arg_1 == NULL) { 1125         if (tmp_iter_arg_1 == NULL) {
1255             assert(ERROR_OCCURRED()); 1126             assert(ERROR_OCCURRED());
1256 1127
1306     } 1177     }
1307     { 1178     {
1308         PyObject *tmp_assign_source_12; 1179         PyObject *tmp_assign_source_12;
1309         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1180         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1310         tmp_assign_source_12 = tmp_for_loop_1__iter_value; 1181         tmp_assign_source_12 = tmp_for_loop_1__iter_value;
n 1311         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_12); n 1182         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_12);
1312     } 1183     }
1313     { 1184     {
1314         PyObject *tmp_called_name_1; 1185         PyObject *tmp_called_name_1;
1315         PyObject *tmp_call_result_1; 1186         PyObject *tmp_call_result_1;
n 1316         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]); n 1187         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
1317 1188
1318         if (unlikely(tmp_called_name_1 == NULL)) { 1189         if (unlikely(tmp_called_name_1 == NULL)) {
n 1319             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]); n 1190             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]);
1320         } 1191         }
1321 1192
1322         if (tmp_called_name_1 == NULL) { 1193         if (tmp_called_name_1 == NULL) {
1323             assert(ERROR_OCCURRED()); 1194             assert(ERROR_OCCURRED());
1324 1195
1387     Py_DECREF(tmp_for_loop_1__for_iterator); 1258     Py_DECREF(tmp_for_loop_1__for_iterator);
1388     tmp_for_loop_1__for_iterator = NULL; 1259     tmp_for_loop_1__for_iterator = NULL;
1389     { 1260     {
1390         PyObject *tmp_called_name_2; 1261         PyObject *tmp_called_name_2;
1391         PyObject *tmp_call_result_2; 1262         PyObject *tmp_call_result_2;
n 1392         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[16]); n 1263         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[15]);
1393         assert(tmp_called_name_2 != NULL); 1264         assert(tmp_called_name_2 != NULL);
1394         frame_9a5b928637ca1224a5fc1efc0dd3a500->m_frame.f_lineno = 54; 1265         frame_9a5b928637ca1224a5fc1efc0dd3a500->m_frame.f_lineno = 54;
t 1395         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_name_2, mod_consts[17]); t 1266         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_name_2, mod_consts[16]);
1396 1267
1397         if (tmp_call_result_2 == NULL) { 1268         if (tmp_call_result_2 == NULL) {
1398             assert(ERROR_OCCURRED()); 1269             assert(ERROR_OCCURRED());
1399 1270
1400             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 1271             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);