Construct GeneratorExpressionExit

Performance Diagrams

Construct GeneratorExpressionExit 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)8217587488.95192307692307257.0CPython 3.1043506566242.31730769230768373.2845060732883Nuitka (main)43900946395.6826923076923372.0985452718903Nuitka (develop)44201681549.0480769230769371.1941892659864Nuitka (factory)Construct GeneratorExpressionExitTicks Construct GeneratorExpressionExit 001000000010000000200000002000000030000000300000004000000040000000500000005000000060000000600000007000000070000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)7681906088.95192307692307257.0CPython 3.843396819242.31730769230768364.5143322428454Nuitka (main)43697075395.6826923076923363.54845376264694Nuitka (develop)43168674549.0480769230769365.2482404607158Nuitka (factory)Construct GeneratorExpressionExitTicks Construct GeneratorExpressionExit 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000260000000260000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)26961508088.11538461538461257.0CPython 2.7115602247240.03846153846155398.1602810291621Nuitka (main)115701525391.96153846153845398.06928789497294Nuitka (develop)115601886543.8846153846154398.16061190328764Nuitka (factory)Construct GeneratorExpressionExitTicks

Source Code with Construct

        # construct_alternative


    except exc:
        pass

    return throw, exc


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

        # construct_alternative
        pass
        # construct_end
    except exc:
        pass

    return throw, exc


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
14     throw = gen.throw 14     throw = gen.throw
15     exc = GeneratorExit 15     exc = GeneratorExit
16 16
17     try: 17     try:
18         # construct_begin 18         # construct_begin
n 19         throw(exc) n 19  
20         # construct_alternative 20         # construct_alternative
t 21   t 21         pass
22   22         # construct_end
23     except exc: 23     except exc:
24         pass 24         pass
25 25
26     return throw, exc 26     return throw, exc
27 27

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[16]; n 36 static PyObject *mod_consts[15];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[16]; n 38 static Py_hash_t mod_consts_hash[15];
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 < 16; i++) { n 53         for (int i = 0; i < 15; 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 < 16; i++) { n 73     for (int i = 0; i < 15; 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
83 static PyCodeObject *codeobj_f43576aec06b0e566271d3bc74c6027f; 83 static PyCodeObject *codeobj_f43576aec06b0e566271d3bc74c6027f;
84 /* For use in "MainProgram.c". */ 84 /* For use in "MainProgram.c". */
85 PyCodeObject *codeobj_main = NULL; 85 PyCodeObject *codeobj_main = NULL;
86 86
87 static void createModuleCodeObjects(void) { 87 static void createModuleCodeObjects(void) {
n 88     module_filename_obj = mod_consts[5]; CHECK_OBJECT(module_filename_obj); n 88     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj);
89     codeobj_d4e994926af0900bf80070e58bd8de2b = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[3], mod_consts[3], mod_consts[13], NULL, 1, 0, 0); 89     codeobj_d4e994926af0900bf80070e58bd8de2b = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_GENERATOR | CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[2], mod_consts[2], mod_consts[12], NULL, 1, 0, 0);
90     codeobj_7ca4f2d8e78c627463065ed5c66d37c5 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[14], mod_consts[14], NULL, NULL, 0, 0, 0); 90     codeobj_7ca4f2d8e78c627463065ed5c66d37c5 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0);
91     codeobj_main = codeobj_7ca4f2d8e78c627463065ed5c66d37c5; 91     codeobj_main = codeobj_7ca4f2d8e78c627463065ed5c66d37c5;
n 92     codeobj_f43576aec06b0e566271d3bc74c6027f = MAKE_CODE_OBJECT(module_filename_obj, 7, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[8], mod_consts[15], NULL, 0, 0, 0); n 92     codeobj_f43576aec06b0e566271d3bc74c6027f = MAKE_CODE_OBJECT(module_filename_obj, 7, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[7], mod_consts[7], mod_consts[14], NULL, 0, 0, 0);
93 } 93 }
94 94
95 // The module function declarations. 95 // The module function declarations.
96 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr(struct Nuitka_CellObject **closure); 96 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr(struct Nuitka_CellObject **closure);
97 97
115     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 115     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
116     PyObject *exception_type = NULL; 116     PyObject *exception_type = NULL;
117     PyObject *exception_value = NULL; 117     PyObject *exception_value = NULL;
118     PyTracebackObject *exception_tb = NULL; 118     PyTracebackObject *exception_tb = NULL;
119     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 119     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n n 120     static struct Nuitka_FrameObject *cache_frame_f43576aec06b0e566271d3bc74c6027f = NULL;
121     PyObject *tmp_return_value = NULL;
120     PyObject *exception_keeper_type_1; 122     PyObject *exception_keeper_type_1;
121     PyObject *exception_keeper_value_1; 123     PyObject *exception_keeper_value_1;
122     PyTracebackObject *exception_keeper_tb_1; 124     PyTracebackObject *exception_keeper_tb_1;
123     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 125     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 124     int tmp_res; n
125     bool tmp_result;
126     static struct Nuitka_FrameObject *cache_frame_f43576aec06b0e566271d3bc74c6027f = NULL;
127     PyObject *tmp_return_value = NULL;
128     PyObject *exception_keeper_type_2;
129     PyObject *exception_keeper_value_2;
130     PyTracebackObject *exception_keeper_tb_2;
131     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
132 126
133     // Actual function body. 127     // Actual function body.
134     { 128     {
135         PyObject *tmp_assign_source_1; 129         PyObject *tmp_assign_source_1;
136         { 130         {
235             goto frame_exception_exit_1; 229             goto frame_exception_exit_1;
236         } 230         }
237         assert(var_throw == NULL); 231         assert(var_throw == NULL);
238         var_throw = tmp_assign_source_3; 232         var_throw = tmp_assign_source_3;
239     } 233     }
n 240     // Tried code: n
241     {
242         PyObject *tmp_called_value_1;
243         PyObject *tmp_call_result_1;
244         CHECK_OBJECT(var_throw);
245         tmp_called_value_1 = var_throw;
246         frame_f43576aec06b0e566271d3bc74c6027f->m_frame.f_lineno = 19;
247         tmp_call_result_1 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_1, mod_consts[2]);
248 234
n 249         if (tmp_call_result_1 == NULL) { n
250             assert(HAS_ERROR_OCCURRED(tstate));
251  
252             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
253  
254  
255             exception_lineno = 19;
256             type_description_1 = "ooN";
257             goto try_except_handler_3;
258         }
259         Py_DECREF(tmp_call_result_1);
260     }
261     goto try_end_1;
262     // Exception handler code:
263     try_except_handler_3:;
264     exception_keeper_type_1 = exception_type;
265     exception_keeper_value_1 = exception_value;
266     exception_keeper_tb_1 = exception_tb;
267     exception_keeper_lineno_1 = exception_lineno;
268     exception_type = NULL;
269     exception_value = NULL;
270     exception_tb = NULL;
271     exception_lineno = 0;
272  
273     // Preserve existing published exception.
274     PRESERVE_FRAME_EXCEPTION(tstate, frame_f43576aec06b0e566271d3bc74c6027f);
275     if (exception_keeper_tb_1 == NULL) {
276         exception_keeper_tb_1 = MAKE_TRACEBACK(frame_f43576aec06b0e566271d3bc74c6027f, exception_keeper_lineno_1);
277     } else if (exception_keeper_lineno_1 != 0) {
278         exception_keeper_tb_1 = ADD_TRACEBACK(exception_keeper_tb_1, frame_f43576aec06b0e566271d3bc74c6027f, exception_keeper_lineno_1);
279     }
280  
281     PUBLISH_CURRENT_EXCEPTION(tstate, &exception_keeper_type_1, &exception_keeper_value_1, &exception_keeper_tb_1);
282     {
283         bool tmp_condition_result_1;
284         PyObject *tmp_cmp_expr_left_1;
285         PyObject *tmp_cmp_expr_right_1;
286         tmp_cmp_expr_left_1 = EXC_TYPE(PyThreadState_GET());
287         tmp_cmp_expr_right_1 = PyExc_GeneratorExit;
288         tmp_res = EXCEPTION_MATCH_BOOL(tstate, tmp_cmp_expr_left_1, tmp_cmp_expr_right_1);
289         assert(!(tmp_res == -1));
290         tmp_condition_result_1 = (tmp_res == 0) ? true : false;
291         if (tmp_condition_result_1 != false) {
292             goto branch_yes_1;
293         } else {
294             goto branch_no_1;
295         }
296     }
297     branch_yes_1:;
298     tmp_result = RERAISE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
299     if (unlikely(tmp_result == false)) {
300         exception_lineno = 17;
301     }
302  
303     if (exception_tb && exception_tb->tb_frame == &frame_f43576aec06b0e566271d3bc74c6027f->m_frame) frame_f43576aec06b0e566271d3bc74c6027f->m_frame.f_lineno = exception_tb->tb_lineno;
304     type_description_1 = "ooN";
305     goto frame_exception_exit_1;
306     branch_no_1:;
307     goto try_end_1;
308     NUITKA_CANNOT_GET_HERE("exception handler codes exits in all cases");
309     return NULL;
310     // End of try:
311     try_end_1:;
312  
313     // Restore frame exception if necessary.
314     RESTORE_FRAME_EXCEPTION(tstate, frame_f43576aec06b0e566271d3bc74c6027f);
315 235
316     // Put the previous frame back on top. 236     // Put the previous frame back on top.
317     popFrameStack(tstate); 237     popFrameStack(tstate);
318 238
319     goto frame_no_exception_1; 239     goto frame_no_exception_1;
320     frame_exception_exit_1: 240     frame_exception_exit_1:
321 241
n 322     RESTORE_FRAME_EXCEPTION(tstate, frame_f43576aec06b0e566271d3bc74c6027f); n
323 242
324     if (exception_tb == NULL) { 243     if (exception_tb == NULL) {
325         exception_tb = MAKE_TRACEBACK(frame_f43576aec06b0e566271d3bc74c6027f, exception_lineno); 244         exception_tb = MAKE_TRACEBACK(frame_f43576aec06b0e566271d3bc74c6027f, exception_lineno);
326     } else if (exception_tb->tb_frame != &frame_f43576aec06b0e566271d3bc74c6027f->m_frame) { 245     } else if (exception_tb->tb_frame != &frame_f43576aec06b0e566271d3bc74c6027f->m_frame) {
327         exception_tb = ADD_TRACEBACK(exception_tb, frame_f43576aec06b0e566271d3bc74c6027f, exception_lineno); 246         exception_tb = ADD_TRACEBACK(exception_tb, frame_f43576aec06b0e566271d3bc74c6027f, exception_lineno);
376     Py_DECREF(var_throw); 295     Py_DECREF(var_throw);
377     var_throw = NULL; 296     var_throw = NULL;
378     goto function_return_exit; 297     goto function_return_exit;
379     // Exception handler code: 298     // Exception handler code:
380     try_except_handler_2:; 299     try_except_handler_2:;
n 381     exception_keeper_type_2 = exception_type; n 300     exception_keeper_type_1 = exception_type;
382     exception_keeper_value_2 = exception_value; 301     exception_keeper_value_1 = exception_value;
383     exception_keeper_tb_2 = exception_tb; 302     exception_keeper_tb_1 = exception_tb;
384     exception_keeper_lineno_2 = exception_lineno; 303     exception_keeper_lineno_1 = exception_lineno;
385     exception_type = NULL; 304     exception_type = NULL;
386     exception_value = NULL; 305     exception_value = NULL;
387     exception_tb = NULL; 306     exception_tb = NULL;
388     exception_lineno = 0; 307     exception_lineno = 0;
389 308
390     CHECK_OBJECT(var_gen); 309     CHECK_OBJECT(var_gen);
391     Py_DECREF(var_gen); 310     Py_DECREF(var_gen);
392     var_gen = NULL; 311     var_gen = NULL;
n 393     Py_XDECREF(var_throw); n
394     var_throw = NULL;
395     // Re-raise. 312     // Re-raise.
n 396     exception_type = exception_keeper_type_2; n 313     exception_type = exception_keeper_type_1;
397     exception_value = exception_keeper_value_2; 314     exception_value = exception_keeper_value_1;
398     exception_tb = exception_keeper_tb_2; 315     exception_tb = exception_keeper_tb_1;
399     exception_lineno = exception_keeper_lineno_2; 316     exception_lineno = exception_keeper_lineno_1;
400 317
401     goto function_exception_exit; 318     goto function_exception_exit;
402     // End of try: 319     // End of try:
403 320
404     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 321     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
694 611
695 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr(struct Nuitka_CellObject **closure) { 612 static PyObject *MAKE_GENERATOR___main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr(struct Nuitka_CellObject **closure) {
696     return Nuitka_Generator_New( 613     return Nuitka_Generator_New(
697         __main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr_context, 614         __main__$$$function__1_calledRepeatedly$$$genexpr__1_genexpr_context,
698         module___main__, 615         module___main__,
n 699         mod_consts[3], n 616         mod_consts[2],
700 #if PYTHON_VERSION >= 0x350 617 #if PYTHON_VERSION >= 0x350
701         NULL, 618         NULL,
702 #endif 619 #endif
703         codeobj_d4e994926af0900bf80070e58bd8de2b, 620         codeobj_d4e994926af0900bf80070e58bd8de2b,
704         closure, 621         closure,
714 631
715 632
716 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 633 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
717     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 634     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
718         impl___main__$$$function__1_calledRepeatedly, 635         impl___main__$$$function__1_calledRepeatedly,
n 719         mod_consts[8], n 636         mod_consts[7],
720 #if PYTHON_VERSION >= 0x300 637 #if PYTHON_VERSION >= 0x300
721         NULL, 638         NULL,
722 #endif 639 #endif
723         codeobj_f43576aec06b0e566271d3bc74c6027f, 640         codeobj_f43576aec06b0e566271d3bc74c6027f,
724         NULL, 641         NULL,
1104 1021
1105     // Module code. 1022     // Module code.
1106     { 1023     {
1107         PyObject *tmp_assign_source_1; 1024         PyObject *tmp_assign_source_1;
1108         tmp_assign_source_1 = Py_None; 1025         tmp_assign_source_1 = Py_None;
n 1109         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 1026         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1);
1110     } 1027     }
1111     { 1028     {
1112         PyObject *tmp_assign_source_2; 1029         PyObject *tmp_assign_source_2;
n 1113         tmp_assign_source_2 = mod_consts[5]; n 1030         tmp_assign_source_2 = mod_consts[4];
1114         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 1031         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2);
1115     } 1032     }
1116     frame_7ca4f2d8e78c627463065ed5c66d37c5 = MAKE_MODULE_FRAME(codeobj_7ca4f2d8e78c627463065ed5c66d37c5, module___main__); 1033     frame_7ca4f2d8e78c627463065ed5c66d37c5 = MAKE_MODULE_FRAME(codeobj_7ca4f2d8e78c627463065ed5c66d37c5, module___main__);
1117 1034
1118     // Push the new frame as the currently active one, and we should be exclusively 1035     // Push the new frame as the currently active one, and we should be exclusively
1119     // owning it. 1036     // owning it.
1125         PyObject *tmp_assign_source_3; 1042         PyObject *tmp_assign_source_3;
1126         PyObject *tmp_name_value_1; 1043         PyObject *tmp_name_value_1;
1127         PyObject *tmp_globals_arg_value_1; 1044         PyObject *tmp_globals_arg_value_1;
1128         PyObject *tmp_locals_arg_value_1; 1045         PyObject *tmp_locals_arg_value_1;
1129         PyObject *tmp_fromlist_value_1; 1046         PyObject *tmp_fromlist_value_1;
n 1130         tmp_name_value_1 = mod_consts[7]; n 1047         tmp_name_value_1 = mod_consts[6];
1131         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 1048         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
1132         tmp_locals_arg_value_1 = Py_None; 1049         tmp_locals_arg_value_1 = Py_None;
1133         tmp_fromlist_value_1 = Py_None; 1050         tmp_fromlist_value_1 = Py_None;
1134         frame_7ca4f2d8e78c627463065ed5c66d37c5->m_frame.f_lineno = 4; 1051         frame_7ca4f2d8e78c627463065ed5c66d37c5->m_frame.f_lineno = 4;
1135         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); 1052         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1);
1141 1058
1142             exception_lineno = 4; 1059             exception_lineno = 4;
1143 1060
1144             goto frame_exception_exit_1; 1061             goto frame_exception_exit_1;
1145         } 1062         }
n 1146         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 1063         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3);
1147     } 1064     }
1148     { 1065     {
1149         PyObject *tmp_assign_source_4; 1066         PyObject *tmp_assign_source_4;
1150 1067
1151 1068
1152         tmp_assign_source_4 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 1069         tmp_assign_source_4 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
1153 1070
n 1154         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); n 1071         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4);
1155     } 1072     }
1156     { 1073     {
1157         PyObject *tmp_assign_source_5; 1074         PyObject *tmp_assign_source_5;
1158         PyObject *tmp_iter_arg_1; 1075         PyObject *tmp_iter_arg_1;
1159         PyObject *tmp_called_instance_1; 1076         PyObject *tmp_called_instance_1;
n 1160         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]); n 1077         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[6]);
1161 1078
1162         if (unlikely(tmp_called_instance_1 == NULL)) { 1079         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1163             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]); n 1080             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[6]);
1164         } 1081         }
1165 1082
1166         assert(!(tmp_called_instance_1 == NULL)); 1083         assert(!(tmp_called_instance_1 == NULL));
1167         frame_7ca4f2d8e78c627463065ed5c66d37c5->m_frame.f_lineno = 29; 1084         frame_7ca4f2d8e78c627463065ed5c66d37c5->m_frame.f_lineno = 29;
1168         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 1085         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1169             tstate, 1086             tstate,
1170             tmp_called_instance_1, 1087             tmp_called_instance_1,
n 1171             mod_consts[9], n 1088             mod_consts[8],
1172             &PyTuple_GET_ITEM(mod_consts[10], 0) 1089             &PyTuple_GET_ITEM(mod_consts[9], 0)
1173         ); 1090         );
1174 1091
1175         if (tmp_iter_arg_1 == NULL) { 1092         if (tmp_iter_arg_1 == NULL) {
1176             assert(HAS_ERROR_OCCURRED(tstate)); 1093             assert(HAS_ERROR_OCCURRED(tstate));
1177 1094
1227     } 1144     }
1228     { 1145     {
1229         PyObject *tmp_assign_source_7; 1146         PyObject *tmp_assign_source_7;
1230         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1147         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1231         tmp_assign_source_7 = tmp_for_loop_1__iter_value; 1148         tmp_assign_source_7 = tmp_for_loop_1__iter_value;
n 1232         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_7); n 1149         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_7);
1233     } 1150     }
1234     { 1151     {
1235         PyObject *tmp_called_value_1; 1152         PyObject *tmp_called_value_1;
1236         PyObject *tmp_call_result_1; 1153         PyObject *tmp_call_result_1;
n 1237         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); n 1154         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]);
1238 1155
1239         if (unlikely(tmp_called_value_1 == NULL)) { 1156         if (unlikely(tmp_called_value_1 == NULL)) {
n 1240             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); n 1157             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]);
1241         } 1158         }
1242 1159
1243         if (tmp_called_value_1 == NULL) { 1160         if (tmp_called_value_1 == NULL) {
1244             assert(HAS_ERROR_OCCURRED(tstate)); 1161             assert(HAS_ERROR_OCCURRED(tstate));
1245 1162
1305     Py_XDECREF(tmp_for_loop_1__iter_value); 1222     Py_XDECREF(tmp_for_loop_1__iter_value);
1306     tmp_for_loop_1__iter_value = NULL; 1223     tmp_for_loop_1__iter_value = NULL;
1307     CHECK_OBJECT(tmp_for_loop_1__for_iterator); 1224     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
1308     Py_DECREF(tmp_for_loop_1__for_iterator); 1225     Py_DECREF(tmp_for_loop_1__for_iterator);
1309     tmp_for_loop_1__for_iterator = NULL; 1226     tmp_for_loop_1__for_iterator = NULL;
t 1310     tmp_print_value = mod_consts[12]; t 1227     tmp_print_value = mod_consts[11];
1311     tmp_result = PRINT_ITEM(tmp_print_value); 1228     tmp_result = PRINT_ITEM(tmp_print_value);
1312     if (tmp_result == false) { 1229     if (tmp_result == false) {
1313         assert(HAS_ERROR_OCCURRED(tstate)); 1230         assert(HAS_ERROR_OCCURRED(tstate));
1314 1231
1315         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 1232         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);