Construct CallCompiledFunctionPosKwArgsVariable

Performance Diagrams

Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)21510946488.11538461538461257.0CPython 2.779701914240.03846153846155412.55470306074926Nuitka (main)79701914391.96153846153845412.55470306074926Nuitka (develop)79701914543.8846153846154412.55470306074926Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)20969451988.11538461538461257.0CPython 3.889101628240.03846153846155399.11319772905534Nuitka (main)89102137391.96153846153845399.11259789587245Nuitka (develop)89102137543.8846153846154399.11259789587245Nuitka (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_cb92086711432b0acd42d05e0052ea81; 84 static PyCodeObject *codeobj_cb92086711432b0acd42d05e0052ea81;
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_46f6d5e9d207edf52ff9427d74920ed5 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[18], NULL, NULL, 0, 0, 0); 90     codeobj_46f6d5e9d207edf52ff9427d74920ed5 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[17], NULL, NULL, 0, 0, 0);
91     codeobj_1f8fc45affcac6821e14f1aed8eb890c = MAKE_CODEOBJECT(module_filename_obj, 28, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[10], mod_consts[19], NULL, 0, 0, 0); 91     codeobj_1f8fc45affcac6821e14f1aed8eb890c = MAKE_CODEOBJECT(module_filename_obj, 28, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[9], mod_consts[18], NULL, 0, 0, 0);
92     codeobj_045dbb2b7daef6743715839b020a7513 = MAKE_CODEOBJECT(module_filename_obj, 22, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], mod_consts[20], NULL, 6, 0, 0); 92     codeobj_045dbb2b7daef6743715839b020a7513 = MAKE_CODEOBJECT(module_filename_obj, 22, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[1], mod_consts[19], NULL, 6, 0, 0);
93     codeobj_cb92086711432b0acd42d05e0052ea81 = MAKE_CODEOBJECT(module_filename_obj, 25, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[0], NULL, NULL, 0, 0, 0); 93     codeobj_cb92086711432b0acd42d05e0052ea81 = 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_1f8fc45affcac6821e14f1aed8eb890c = NULL; 194     static struct Nuitka_FrameObject *cache_frame_1f8fc45affcac6821e14f1aed8eb890c = 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_value_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_value_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_1f8fc45affcac6821e14f1aed8eb890c->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_value_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_value_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_value_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_1f8fc45affcac6821e14f1aed8eb890c->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_value_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_value_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_value_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_1f8fc45affcac6821e14f1aed8eb890c->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_value_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_1f8fc45affcac6821e14f1aed8eb890c); 458     RESTORE_FRAME_EXCEPTION(frame_1f8fc45affcac6821e14f1aed8eb890c);
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_1f8fc45affcac6821e14f1aed8eb890c, 653         codeobj_1f8fc45affcac6821e14f1aed8eb890c,
783         NULL, 654         NULL,
1160 1031
1161     // Module code. 1032     // Module code.
1162     { 1033     {
1163         PyObject *tmp_assign_source_1; 1034         PyObject *tmp_assign_source_1;
1164         tmp_assign_source_1 = Py_None; 1035         tmp_assign_source_1 = Py_None;
n 1165         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1); n 1036         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
1166     } 1037     }
1167     { 1038     {
1168         PyObject *tmp_assign_source_2; 1039         PyObject *tmp_assign_source_2;
n 1169         tmp_assign_source_2 = mod_consts[4]; n 1040         tmp_assign_source_2 = mod_consts[3];
1170         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2); 1041         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
1171     } 1042     }
1172     { 1043     {
1173         PyObject *tmp_assign_source_3; 1044         PyObject *tmp_assign_source_3;
1174         tmp_assign_source_3 = Py_None; 1045         tmp_assign_source_3 = Py_None;
n 1175         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3); n 1046         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
1176     } 1047     }
1177     { 1048     {
1178         PyObject *tmp_assign_source_4; 1049         PyObject *tmp_assign_source_4;
1179         tmp_assign_source_4 = PyDict_New(); 1050         tmp_assign_source_4 = PyDict_New();
n 1180         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4); n 1051         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_4);
1181     } 1052     }
1182     { 1053     {
1183         PyObject *tmp_assign_source_5; 1054         PyObject *tmp_assign_source_5;
1184         { 1055         {
1185             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 1056             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 1186             tmp_assign_source_5 = LOOKUP_ATTRIBUTE(hard_module, mod_consts[8]); n 1057             tmp_assign_source_5 = LOOKUP_ATTRIBUTE(hard_module, mod_consts[7]);
1187         } 1058         }
1188 1059
1189         assert(!(tmp_assign_source_5 == NULL)); 1060         assert(!(tmp_assign_source_5 == NULL));
n 1190         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_5); n 1061         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
1191     } 1062     }
1192     { 1063     {
1193         PyObject *tmp_assign_source_6; 1064         PyObject *tmp_assign_source_6;
1194 1065
1195 1066
1209         PyObject *tmp_assign_source_8; 1080         PyObject *tmp_assign_source_8;
1210 1081
1211 1082
1212         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly(); 1083         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly();
1213 1084
n 1214         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8); n 1085         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8);
1215     } 1086     }
1216     { 1087     {
1217         PyObject *tmp_assign_source_9; 1088         PyObject *tmp_assign_source_9;
1218         PyObject *tmp_name_value_1; 1089         PyObject *tmp_name_value_1;
1219         PyObject *tmp_globals_arg_value_1; 1090         PyObject *tmp_globals_arg_value_1;
1220         PyObject *tmp_locals_arg_value_1; 1091         PyObject *tmp_locals_arg_value_1;
1221         PyObject *tmp_fromlist_value_1; 1092         PyObject *tmp_fromlist_value_1;
1222         PyObject *tmp_level_value_1; 1093         PyObject *tmp_level_value_1;
n 1223         tmp_name_value_1 = mod_consts[11]; n 1094         tmp_name_value_1 = mod_consts[10];
1224         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 1095         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
1225         tmp_locals_arg_value_1 = Py_None; 1096         tmp_locals_arg_value_1 = Py_None;
1226         tmp_fromlist_value_1 = Py_None; 1097         tmp_fromlist_value_1 = Py_None;
n 1227         tmp_level_value_1 = mod_consts[12]; n 1098         tmp_level_value_1 = mod_consts[11];
1228         tmp_assign_source_9 = IMPORT_MODULE5(tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1, tmp_level_value_1); 1099         tmp_assign_source_9 = IMPORT_MODULE5(tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1, tmp_level_value_1);
1229         assert(!(tmp_assign_source_9 == NULL)); 1100         assert(!(tmp_assign_source_9 == NULL));
n 1230         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_9); n 1101         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_9);
1231     } 1102     }
1232     // Frame without reuse. 1103     // Frame without reuse.
1233     frame_46f6d5e9d207edf52ff9427d74920ed5 = MAKE_MODULE_FRAME(codeobj_46f6d5e9d207edf52ff9427d74920ed5, module___main__); 1104     frame_46f6d5e9d207edf52ff9427d74920ed5 = MAKE_MODULE_FRAME(codeobj_46f6d5e9d207edf52ff9427d74920ed5, module___main__);
1234 1105
1235     // Push the new frame as the currently active one, and we should be exclusively 1106     // Push the new frame as the currently active one, and we should be exclusively
1240     // Framed code: 1111     // Framed code:
1241     { 1112     {
1242         PyObject *tmp_assign_source_10; 1113         PyObject *tmp_assign_source_10;
1243         PyObject *tmp_iter_arg_1; 1114         PyObject *tmp_iter_arg_1;
1244         PyObject *tmp_called_instance_1; 1115         PyObject *tmp_called_instance_1;
n 1245         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[11]); n 1116         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]);
1246 1117
1247         if (unlikely(tmp_called_instance_1 == NULL)) { 1118         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1248             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[11]); n 1119             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]);
1249         } 1120         }
1250 1121
1251         assert(!(tmp_called_instance_1 == NULL)); 1122         assert(!(tmp_called_instance_1 == NULL));
1252         frame_46f6d5e9d207edf52ff9427d74920ed5->m_frame.f_lineno = 51; 1123         frame_46f6d5e9d207edf52ff9427d74920ed5->m_frame.f_lineno = 51;
1253         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 1124         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1254             tmp_called_instance_1, 1125             tmp_called_instance_1,
n 1255             mod_consts[13], n 1126             mod_consts[12],
1256             &PyTuple_GET_ITEM(mod_consts[14], 0) 1127             &PyTuple_GET_ITEM(mod_consts[13], 0)
1257         ); 1128         );
1258 1129
1259         if (tmp_iter_arg_1 == NULL) { 1130         if (tmp_iter_arg_1 == NULL) {
1260             assert(ERROR_OCCURRED()); 1131             assert(ERROR_OCCURRED());
1261 1132
1311     } 1182     }
1312     { 1183     {
1313         PyObject *tmp_assign_source_12; 1184         PyObject *tmp_assign_source_12;
1314         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1185         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1315         tmp_assign_source_12 = tmp_for_loop_1__iter_value; 1186         tmp_assign_source_12 = tmp_for_loop_1__iter_value;
n 1316         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_12); n 1187         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_12);
1317     } 1188     }
1318     { 1189     {
1319         PyObject *tmp_called_value_1; 1190         PyObject *tmp_called_value_1;
1320         PyObject *tmp_call_result_1; 1191         PyObject *tmp_call_result_1;
n 1321         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]); n 1192         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
1322 1193
1323         if (unlikely(tmp_called_value_1 == NULL)) { 1194         if (unlikely(tmp_called_value_1 == NULL)) {
n 1324             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]); n 1195             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]);
1325         } 1196         }
1326 1197
1327         if (tmp_called_value_1 == NULL) { 1198         if (tmp_called_value_1 == NULL) {
1328             assert(ERROR_OCCURRED()); 1199             assert(ERROR_OCCURRED());
1329 1200
1392     Py_DECREF(tmp_for_loop_1__for_iterator); 1263     Py_DECREF(tmp_for_loop_1__for_iterator);
1393     tmp_for_loop_1__for_iterator = NULL; 1264     tmp_for_loop_1__for_iterator = NULL;
1394     { 1265     {
1395         PyObject *tmp_called_value_2; 1266         PyObject *tmp_called_value_2;
1396         PyObject *tmp_call_result_2; 1267         PyObject *tmp_call_result_2;
n 1397         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[16]); n 1268         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[15]);
1398         assert(tmp_called_value_2 != NULL); 1269         assert(tmp_called_value_2 != NULL);
1399         frame_46f6d5e9d207edf52ff9427d74920ed5->m_frame.f_lineno = 54; 1270         frame_46f6d5e9d207edf52ff9427d74920ed5->m_frame.f_lineno = 54;
t 1400         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_value_2, mod_consts[17]); t 1271         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_value_2, mod_consts[16]);
1401 1272
1402         if (tmp_call_result_2 == NULL) { 1273         if (tmp_call_result_2 == NULL) {
1403             assert(ERROR_OCCURRED()); 1274             assert(ERROR_OCCURRED());
1404 1275
1405             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 1276             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);