Construct CallCompiledFunctionPosKwArgsVariable

Performance Diagrams

Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)21453946788.11538461538461257.0CPython 3.1095393163240.03846153846155394.2376148322469Nuitka (main)95404991391.96153846153845394.2239908552225Nuitka (develop)95399548543.8846153846154394.23026032655696Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)20579927088.11538461538461257.0CPython 3.891950996240.03846153846155393.70437226190205Nuitka (main)91947426391.96153846153845393.708658972555Nuitka (develop)91955533543.8846153846154393.69892441701904Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks Construct CallCompiledFunctionPosKwArgsVariable 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)22126455788.11538461538461257.0CPython 2.782502700240.03846153846155411.9737116844249Nuitka (main)82502710391.96153846153845411.9737005161028Nuitka (develop)82503412543.8846153846154411.97291649989Nuitka (factory)Construct CallCompiledFunctionPosKwArgsVariableTicks

Source Code with Construct

    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


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

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Source Code without Construct

    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


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

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Context Diff of Source Code


Construct
Baseline
25     compiled_f = compiled_func 25     compiled_f = compiled_func
26 26
27     # This is supposed to make a call to a compiled function, which is 27     # This is supposed to make a call to a compiled function, which is
28     # being optimized separately. 28     # being optimized separately.
29     # construct_begin 29     # construct_begin
n 30     compiled_f(a, b, c, d=d, e=e, f=f) n
31     compiled_f(a, c, b, d=d, e=e, f=f)
32     compiled_f(a, b, c, d=d, e=e, f=f)
33     # construct_alternative
34 30
35 31
t t 32  
33     # construct_alternative
34     pass
35     # construct_end
36 36
37     return compiled_f 37     return compiled_f
38 38
39 39
40 for x in itertools.repeat(None, 50000): 40 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[18]; n 36 static PyObject *mod_consts[17];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[18]; n 38 static Py_hash_t mod_consts_hash[17];
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(tstate, &mod_consts[0], UNTRANSLATE("__main__")); 49         loadConstantsBlob(tstate, &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 < 18; i++) { n 53         for (int i = 0; i < 17; i++) {
54             mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]); 54             mod_consts_hash[i] = DEEP_HASH(tstate, 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__(PyThreadState *tstate) { 69 void checkModuleConstants___main__(PyThreadState *tstate) {
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 < 18; i++) { n 73     for (int i = 0; i < 17; i++) {
74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i])); 74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, 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_eacffec33d8dcb2aa63088758217457d; 84 static PyCodeObject *codeobj_eacffec33d8dcb2aa63088758217457d;
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_d0d038a074a24442b5587faa74afaf7f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[15], mod_consts[15], NULL, NULL, 0, 0, 0); 90     codeobj_d0d038a074a24442b5587faa74afaf7f = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[14], mod_consts[14], NULL, NULL, 0, 0, 0);
91     codeobj_main = codeobj_d0d038a074a24442b5587faa74afaf7f; 91     codeobj_main = codeobj_d0d038a074a24442b5587faa74afaf7f;
n 92     codeobj_5c94113932a295409265a30be1aefc1f = MAKE_CODE_OBJECT(module_filename_obj, 17, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[9], mod_consts[9], mod_consts[16], NULL, 0, 0, 0); n 92     codeobj_5c94113932a295409265a30be1aefc1f = MAKE_CODE_OBJECT(module_filename_obj, 17, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[8], mod_consts[8], mod_consts[15], NULL, 0, 0, 0);
93     codeobj_2bf783190f0850e97b1eb76ea1a3faa8 = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[1], mod_consts[1], mod_consts[17], NULL, 6, 0, 0); 93     codeobj_2bf783190f0850e97b1eb76ea1a3faa8 = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[1], mod_consts[1], mod_consts[16], NULL, 6, 0, 0);
94     codeobj_eacffec33d8dcb2aa63088758217457d = MAKE_CODE_OBJECT(module_filename_obj, 13, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[0], mod_consts[0], NULL, NULL, 0, 0, 0); 94     codeobj_eacffec33d8dcb2aa63088758217457d = MAKE_CODE_OBJECT(module_filename_obj, 13, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[0], mod_consts[0], NULL, NULL, 0, 0, 0);
95 } 95 }
96 96
97 // The module function declarations. 97 // The module function declarations.
98 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_func(); 98 static PyObject *MAKE_FUNCTION___main__$$$function__1_compiled_func();
190     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 190     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
191     PyObject *exception_type = NULL; 191     PyObject *exception_type = NULL;
192     PyObject *exception_value = NULL; 192     PyObject *exception_value = NULL;
193     PyTracebackObject *exception_tb = NULL; 193     PyTracebackObject *exception_tb = NULL;
194     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 194     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 195     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; n
196     static struct Nuitka_FrameObject *cache_frame_5c94113932a295409265a30be1aefc1f = NULL; 195     static struct Nuitka_FrameObject *cache_frame_5c94113932a295409265a30be1aefc1f = NULL;
197     PyObject *tmp_return_value = NULL; 196     PyObject *tmp_return_value = NULL;
198     PyObject *exception_keeper_type_1; 197     PyObject *exception_keeper_type_1;
199     PyObject *exception_keeper_value_1; 198     PyObject *exception_keeper_value_1;
200     PyTracebackObject *exception_keeper_tb_1; 199     PyTracebackObject *exception_keeper_tb_1;
452             goto frame_exception_exit_1; 451             goto frame_exception_exit_1;
453         } 452         }
454         assert(var_compiled_f == NULL); 453         assert(var_compiled_f == NULL);
455         Py_INCREF(tmp_assign_source_7); 454         Py_INCREF(tmp_assign_source_7);
456         var_compiled_f = tmp_assign_source_7; 455         var_compiled_f = tmp_assign_source_7;
n 457     } n
458     {
459         PyObject *tmp_called_value_7;
460         PyObject *tmp_call_result_1;
461         PyObject *tmp_kw_call_arg_value_0_1;
462         PyObject *tmp_kw_call_arg_value_1_1;
463         PyObject *tmp_kw_call_arg_value_2_1;
464         PyObject *tmp_kw_call_dict_value_0_1;
465         PyObject *tmp_kw_call_dict_value_1_1;
466         PyObject *tmp_kw_call_dict_value_2_1;
467         CHECK_OBJECT(var_compiled_f);
468         tmp_called_value_7 = var_compiled_f;
469         CHECK_OBJECT(var_a);
470         tmp_kw_call_arg_value_0_1 = var_a;
471         CHECK_OBJECT(var_b);
472         tmp_kw_call_arg_value_1_1 = var_b;
473         CHECK_OBJECT(var_c);
474         tmp_kw_call_arg_value_2_1 = var_c;
475         CHECK_OBJECT(var_d);
476         tmp_kw_call_dict_value_0_1 = var_d;
477         CHECK_OBJECT(var_e);
478         tmp_kw_call_dict_value_1_1 = var_e;
479         CHECK_OBJECT(var_f);
480         tmp_kw_call_dict_value_2_1 = var_f;
481         frame_5c94113932a295409265a30be1aefc1f->m_frame.f_lineno = 30;
482         {
483             PyObject *args[] = {tmp_kw_call_arg_value_0_1, tmp_kw_call_arg_value_1_1, tmp_kw_call_arg_value_2_1};
484             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};
485             tmp_call_result_1 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tstate, tmp_called_value_7, args, kw_values, mod_consts[2]);
486         }
487  
488         if (tmp_call_result_1 == NULL) {
489             assert(HAS_ERROR_OCCURRED(tstate));
490  
491             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
492  
493  
494             exception_lineno = 30;
495             type_description_1 = "ooooooo";
496             goto frame_exception_exit_1;
497         }
498         Py_DECREF(tmp_call_result_1);
499     }
500     {
501         PyObject *tmp_called_value_8;
502         PyObject *tmp_call_result_2;
503         PyObject *tmp_kw_call_arg_value_0_2;
504         PyObject *tmp_kw_call_arg_value_1_2;
505         PyObject *tmp_kw_call_arg_value_2_2;
506         PyObject *tmp_kw_call_dict_value_0_2;
507         PyObject *tmp_kw_call_dict_value_1_2;
508         PyObject *tmp_kw_call_dict_value_2_2;
509         CHECK_OBJECT(var_compiled_f);
510         tmp_called_value_8 = var_compiled_f;
511         CHECK_OBJECT(var_a);
512         tmp_kw_call_arg_value_0_2 = var_a;
513         CHECK_OBJECT(var_c);
514         tmp_kw_call_arg_value_1_2 = var_c;
515         CHECK_OBJECT(var_b);
516         tmp_kw_call_arg_value_2_2 = var_b;
517         CHECK_OBJECT(var_d);
518         tmp_kw_call_dict_value_0_2 = var_d;
519         CHECK_OBJECT(var_e);
520         tmp_kw_call_dict_value_1_2 = var_e;
521         CHECK_OBJECT(var_f);
522         tmp_kw_call_dict_value_2_2 = var_f;
523         frame_5c94113932a295409265a30be1aefc1f->m_frame.f_lineno = 31;
524         {
525             PyObject *args[] = {tmp_kw_call_arg_value_0_2, tmp_kw_call_arg_value_1_2, tmp_kw_call_arg_value_2_2};
526             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};
527             tmp_call_result_2 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tstate, tmp_called_value_8, args, kw_values, mod_consts[2]);
528         }
529  
530         if (tmp_call_result_2 == NULL) {
531             assert(HAS_ERROR_OCCURRED(tstate));
532  
533             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
534  
535  
536             exception_lineno = 31;
537             type_description_1 = "ooooooo";
538             goto frame_exception_exit_1;
539         }
540         Py_DECREF(tmp_call_result_2);
541     }
542     {
543         PyObject *tmp_called_value_9;
544         PyObject *tmp_call_result_3;
545         PyObject *tmp_kw_call_arg_value_0_3;
546         PyObject *tmp_kw_call_arg_value_1_3;
547         PyObject *tmp_kw_call_arg_value_2_3;
548         PyObject *tmp_kw_call_dict_value_0_3;
549         PyObject *tmp_kw_call_dict_value_1_3;
550         PyObject *tmp_kw_call_dict_value_2_3;
551         CHECK_OBJECT(var_compiled_f);
552         tmp_called_value_9 = var_compiled_f;
553         CHECK_OBJECT(var_a);
554         tmp_kw_call_arg_value_0_3 = var_a;
555         CHECK_OBJECT(var_b);
556         tmp_kw_call_arg_value_1_3 = var_b;
557         CHECK_OBJECT(var_c);
558         tmp_kw_call_arg_value_2_3 = var_c;
559         CHECK_OBJECT(var_d);
560         tmp_kw_call_dict_value_0_3 = var_d;
561         CHECK_OBJECT(var_e);
562         tmp_kw_call_dict_value_1_3 = var_e;
563         CHECK_OBJECT(var_f);
564         tmp_kw_call_dict_value_2_3 = var_f;
565         frame_5c94113932a295409265a30be1aefc1f->m_frame.f_lineno = 32;
566         {
567             PyObject *args[] = {tmp_kw_call_arg_value_0_3, tmp_kw_call_arg_value_1_3, tmp_kw_call_arg_value_2_3};
568             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};
569             tmp_call_result_3 = CALL_FUNCTION_WITH_ARGS3_KWSPLIT(tstate, tmp_called_value_9, args, kw_values, mod_consts[2]);
570         }
571  
572         if (tmp_call_result_3 == NULL) {
573             assert(HAS_ERROR_OCCURRED(tstate));
574  
575             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
576  
577  
578             exception_lineno = 32;
579             type_description_1 = "ooooooo";
580             goto frame_exception_exit_1;
581         }
582         Py_DECREF(tmp_call_result_3);
583     } 456     }
584 457
585 458
586     // Put the previous frame back on top. 459     // Put the previous frame back on top.
587     popFrameStack(tstate); 460     popFrameStack(tstate);
679     var_d = NULL; 552     var_d = NULL;
680     Py_XDECREF(var_e); 553     Py_XDECREF(var_e);
681     var_e = NULL; 554     var_e = NULL;
682     Py_XDECREF(var_f); 555     Py_XDECREF(var_f);
683     var_f = NULL; 556     var_f = NULL;
n 684     Py_XDECREF(var_compiled_f); n
685     var_compiled_f = NULL;
686     // Re-raise. 557     // Re-raise.
687     exception_type = exception_keeper_type_1; 558     exception_type = exception_keeper_type_1;
688     exception_value = exception_keeper_value_1; 559     exception_value = exception_keeper_value_1;
689     exception_tb = exception_keeper_tb_1; 560     exception_tb = exception_keeper_tb_1;
690     exception_lineno = exception_keeper_lineno_1; 561     exception_lineno = exception_keeper_lineno_1;
756         module___main__, 627         module___main__,
757         NULL, 628         NULL,
758         NULL, 629         NULL,
759         0 630         0
760     ); 631     );
n 761     Nuitka_Function_EnableConstReturnGeneric(result, mod_consts[8]); n 632     Nuitka_Function_EnableConstReturnGeneric(result, mod_consts[7]);
762 633
763     return (PyObject *)result; 634     return (PyObject *)result;
764 } 635 }
765 636
766 637
767 638
768 static PyObject *MAKE_FUNCTION___main__$$$function__3_calledRepeatedly() { 639 static PyObject *MAKE_FUNCTION___main__$$$function__3_calledRepeatedly() {
769     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 640     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
770         impl___main__$$$function__3_calledRepeatedly, 641         impl___main__$$$function__3_calledRepeatedly,
n 771         mod_consts[9], n 642         mod_consts[8],
772 #if PYTHON_VERSION >= 0x300 643 #if PYTHON_VERSION >= 0x300
773         NULL, 644         NULL,
774 #endif 645 #endif
775         codeobj_5c94113932a295409265a30be1aefc1f, 646         codeobj_5c94113932a295409265a30be1aefc1f,
776         NULL, 647         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         { 1040         {
1170             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 1041             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 1171             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[6]); n 1042             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[5]);
1172         } 1043         }
1173         assert(!(tmp_assign_source_3 == NULL)); 1044         assert(!(tmp_assign_source_3 == NULL));
n 1174         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3); n 1045         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
1175     } 1046     }
1176     frame_d0d038a074a24442b5587faa74afaf7f = MAKE_MODULE_FRAME(codeobj_d0d038a074a24442b5587faa74afaf7f, module___main__); 1047     frame_d0d038a074a24442b5587faa74afaf7f = MAKE_MODULE_FRAME(codeobj_d0d038a074a24442b5587faa74afaf7f, module___main__);
1177 1048
1178     // Push the new frame as the currently active one, and we should be exclusively 1049     // Push the new frame as the currently active one, and we should be exclusively
1179     // owning it. 1050     // owning it.
1185         PyObject *tmp_assign_source_4; 1056         PyObject *tmp_assign_source_4;
1186         PyObject *tmp_name_value_1; 1057         PyObject *tmp_name_value_1;
1187         PyObject *tmp_globals_arg_value_1; 1058         PyObject *tmp_globals_arg_value_1;
1188         PyObject *tmp_locals_arg_value_1; 1059         PyObject *tmp_locals_arg_value_1;
1189         PyObject *tmp_fromlist_value_1; 1060         PyObject *tmp_fromlist_value_1;
n 1190         tmp_name_value_1 = mod_consts[7]; n 1061         tmp_name_value_1 = mod_consts[6];
1191         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 1062         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
1192         tmp_locals_arg_value_1 = Py_None; 1063         tmp_locals_arg_value_1 = Py_None;
1193         tmp_fromlist_value_1 = Py_None; 1064         tmp_fromlist_value_1 = Py_None;
1194         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 6; 1065         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 6;
1195         tmp_assign_source_4 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); 1066         tmp_assign_source_4 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1);
1201 1072
1202             exception_lineno = 6; 1073             exception_lineno = 6;
1203 1074
1204             goto frame_exception_exit_1; 1075             goto frame_exception_exit_1;
1205         } 1076         }
n 1206         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4); n 1077         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_4);
1207     } 1078     }
1208     { 1079     {
1209         PyObject *tmp_assign_source_5; 1080         PyObject *tmp_assign_source_5;
1210 1081
1211 1082
1225         PyObject *tmp_assign_source_7; 1096         PyObject *tmp_assign_source_7;
1226 1097
1227 1098
1228         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly(); 1099         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__3_calledRepeatedly();
1229 1100
n 1230         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7); n 1101         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_7);
1231     } 1102     }
1232     { 1103     {
1233         PyObject *tmp_assign_source_8; 1104         PyObject *tmp_assign_source_8;
1234         PyObject *tmp_iter_arg_1; 1105         PyObject *tmp_iter_arg_1;
1235         PyObject *tmp_called_instance_1; 1106         PyObject *tmp_called_instance_1;
n 1236         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]); n 1107         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[6]);
1237 1108
1238         if (unlikely(tmp_called_instance_1 == NULL)) { 1109         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1239             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]); n 1110             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[6]);
1240         } 1111         }
1241 1112
1242         assert(!(tmp_called_instance_1 == NULL)); 1113         assert(!(tmp_called_instance_1 == NULL));
1243         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 40; 1114         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 40;
1244         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 1115         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1245             tstate, 1116             tstate,
1246             tmp_called_instance_1, 1117             tmp_called_instance_1,
n 1247             mod_consts[10], n 1118             mod_consts[9],
1248             &PyTuple_GET_ITEM(mod_consts[11], 0) 1119             &PyTuple_GET_ITEM(mod_consts[10], 0)
1249         ); 1120         );
1250 1121
1251         if (tmp_iter_arg_1 == NULL) { 1122         if (tmp_iter_arg_1 == NULL) {
1252             assert(HAS_ERROR_OCCURRED(tstate)); 1123             assert(HAS_ERROR_OCCURRED(tstate));
1253 1124
1303     } 1174     }
1304     { 1175     {
1305         PyObject *tmp_assign_source_10; 1176         PyObject *tmp_assign_source_10;
1306         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1177         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1307         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 1178         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 1308         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10); n 1179         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_10);
1309     } 1180     }
1310     { 1181     {
1311         PyObject *tmp_called_value_1; 1182         PyObject *tmp_called_value_1;
1312         PyObject *tmp_call_result_1; 1183         PyObject *tmp_call_result_1;
n 1313         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]); n 1184         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]);
1314 1185
1315         if (unlikely(tmp_called_value_1 == NULL)) { 1186         if (unlikely(tmp_called_value_1 == NULL)) {
n 1316             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[9]); n 1187             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]);
1317         } 1188         }
1318 1189
1319         if (tmp_called_value_1 == NULL) { 1190         if (tmp_called_value_1 == NULL) {
1320             assert(HAS_ERROR_OCCURRED(tstate)); 1191             assert(HAS_ERROR_OCCURRED(tstate));
1321 1192
1384     Py_DECREF(tmp_for_loop_1__for_iterator); 1255     Py_DECREF(tmp_for_loop_1__for_iterator);
1385     tmp_for_loop_1__for_iterator = NULL; 1256     tmp_for_loop_1__for_iterator = NULL;
1386     { 1257     {
1387         PyObject *tmp_called_value_2; 1258         PyObject *tmp_called_value_2;
1388         PyObject *tmp_call_result_2; 1259         PyObject *tmp_call_result_2;
n 1389         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[13]); n 1260         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[12]);
1390         assert(tmp_called_value_2 != NULL); 1261         assert(tmp_called_value_2 != NULL);
1391         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 43; 1262         frame_d0d038a074a24442b5587faa74afaf7f->m_frame.f_lineno = 43;
t 1392         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[14]); t 1263         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[13]);
1393 1264
1394         if (tmp_call_result_2 == NULL) { 1265         if (tmp_call_result_2 == NULL) {
1395             assert(HAS_ERROR_OCCURRED(tstate)); 1266             assert(HAS_ERROR_OCCURRED(tstate));
1396 1267
1397             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 1268             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);