Construct CallUncompiledFunctionComplexArgs

Performance Diagrams

Construct CallUncompiledFunctionComplexArgs 001000000010000000200000002000000030000000300000004000000040000000500000005000000060000000600000007000000070000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)7684055588.95192307692307257.0CPython 3.1043797590242.31730769230768363.2645240499329Nuitka (main)43797266395.6826923076923363.2655660177403Nuitka (develop)43815061549.0480769230769363.208338187082Nuitka (factory)Construct CallUncompiledFunctionComplexArgsTicks Construct CallUncompiledFunctionComplexArgs 001000000010000000200000002000000030000000300000004000000040000000500000005000000060000000600000007000000070000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)7540560988.95192307692307257.0CPython 3.839166920242.31730769230768375.75956827286296Nuitka (main)39170574395.6826923076923375.74759357194404Nuitka (develop)39160370549.0480769230769375.78103359607564Nuitka (factory)Construct CallUncompiledFunctionComplexArgsTicks Construct CallUncompiledFunctionComplexArgs 001000000010000000200000002000000030000000300000004000000040000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)4759035788.95192307692307257.0CPython 2.739507621242.31730769230768298.9700237883195Nuitka (main)39510272395.6826923076923298.95625833401505Nuitka (develop)39507868549.0480769230769298.9687412280731Nuitka (factory)Construct CallUncompiledFunctionComplexArgsTicks

Source Code with Construct

    # being optimized separately.

    # Force a frame for now.
    args = a

    # construct_begin
    python_f(3, *args)
    # construct_alternative



    return python_f, args


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

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

    # being optimized separately.

    # Force a frame for now.
    args = a

    # construct_begin

    # construct_alternative
    pass
    # construct_end

    return python_f, args


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

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
21 21
22     # Force a frame for now. 22     # Force a frame for now.
23     args = a 23     args = a
24 24
25     # construct_begin 25     # construct_begin
n 26     python_f(3, *args) n 26  
27     # construct_alternative 27     # construct_alternative
t 28   t 28     pass
29   29     # construct_end
30 30
31     return python_f, args 31     return python_f, args
32 32
33 33
34 for x in itertools.repeat(None, 50000): 34 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[27]; n 36 static PyObject *mod_consts[19];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[27]; n 38 static Py_hash_t mod_consts_hash[19];
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 < 27; i++) { n 53         for (int i = 0; i < 19; 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 < 27; i++) { n 73     for (int i = 0; i < 19; 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
82 static PyCodeObject *codeobj_1b2ff76acce51bb1a893f908d5e99c62; 82 static PyCodeObject *codeobj_1b2ff76acce51bb1a893f908d5e99c62;
83 /* For use in "MainProgram.c". */ 83 /* For use in "MainProgram.c". */
84 PyCodeObject *codeobj_main = NULL; 84 PyCodeObject *codeobj_main = NULL;
85 85
86 static void createModuleCodeObjects(void) { 86 static void createModuleCodeObjects(void) {
n 87     module_filename_obj = mod_consts[10]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[2]; CHECK_OBJECT(module_filename_obj);
88     codeobj_e7c9e3d4dd54f3b4308eb955790d80b8 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[25], mod_consts[25], NULL, NULL, 0, 0, 0); 88     codeobj_e7c9e3d4dd54f3b4308eb955790d80b8 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[17], mod_consts[17], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_e7c9e3d4dd54f3b4308eb955790d80b8; 89     codeobj_main = codeobj_e7c9e3d4dd54f3b4308eb955790d80b8;
n 90     codeobj_1b2ff76acce51bb1a893f908d5e99c62 = MAKE_CODE_OBJECT(module_filename_obj, 18, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[18], mod_consts[18], mod_consts[26], NULL, 1, 0, 0); n 90     codeobj_1b2ff76acce51bb1a893f908d5e99c62 = MAKE_CODE_OBJECT(module_filename_obj, 18, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE | CO_FUTURE_PRINT_FUNCTION, mod_consts[10], mod_consts[10], mod_consts[18], NULL, 1, 0, 0);
91 } 91 }
92 92
93 // The module function declarations. 93 // The module function declarations.
n 94 NUITKA_LOCAL_MODULE PyObject *impl___main__$$$function__1_complex_call_helper_pos_star_list(PyThreadState *tstate, PyObject **python_pars); n
95  
96  
97 NUITKA_LOCAL_MODULE PyObject *impl___main__$$$function__2_get_callable_name_desc(PyThreadState *tstate, PyObject **python_pars);
98  
99  
100 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 94 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
101 95
102 96
103 // The module function definitions. 97 // The module function definitions.
104 static PyObject *impl___main__$$$function__1_calledRepeatedly(PyThreadState *tstate, struct Nuitka_FunctionObject const *self, PyObject **python_pars) { 98 static PyObject *impl___main__$$$function__1_calledRepeatedly(PyThreadState *tstate, struct Nuitka_FunctionObject const *self, PyObject **python_pars) {
114     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 108     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
115     PyObject *exception_type = NULL; 109     PyObject *exception_type = NULL;
116     PyObject *exception_value = NULL; 110     PyObject *exception_value = NULL;
117     PyTracebackObject *exception_tb = NULL; 111     PyTracebackObject *exception_tb = NULL;
118     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 112     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 119     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; n
120     static struct Nuitka_FrameObject *cache_frame_1b2ff76acce51bb1a893f908d5e99c62 = NULL; 113     static struct Nuitka_FrameObject *cache_frame_1b2ff76acce51bb1a893f908d5e99c62 = NULL;
121     PyObject *tmp_return_value = NULL; 114     PyObject *tmp_return_value = NULL;
122     PyObject *exception_keeper_type_1; 115     PyObject *exception_keeper_type_1;
123     PyObject *exception_keeper_value_1; 116     PyObject *exception_keeper_value_1;
124     PyTracebackObject *exception_keeper_tb_1; 117     PyTracebackObject *exception_keeper_tb_1;
172             goto frame_exception_exit_1; 165             goto frame_exception_exit_1;
173         } 166         }
174         assert(var_args == NULL); 167         assert(var_args == NULL);
175         Py_INCREF(tmp_assign_source_1); 168         Py_INCREF(tmp_assign_source_1);
176         var_args = tmp_assign_source_1; 169         var_args = tmp_assign_source_1;
n 177     } n
178     {
179         PyObject *tmp_dircall_arg1_1;
180         PyObject *tmp_dircall_arg2_1;
181         PyObject *tmp_dircall_arg3_1;
182         PyObject *tmp_call_result_1;
183         CHECK_OBJECT(par_python_f);
184         tmp_dircall_arg1_1 = par_python_f;
185         tmp_dircall_arg2_1 = mod_consts[1];
186         CHECK_OBJECT(var_args);
187         tmp_dircall_arg3_1 = var_args;
188         Py_INCREF(tmp_dircall_arg1_1);
189         Py_INCREF(tmp_dircall_arg2_1);
190         Py_INCREF(tmp_dircall_arg3_1);
191  
192         {
193             PyObject *dir_call_args[] = {tmp_dircall_arg1_1, tmp_dircall_arg2_1, tmp_dircall_arg3_1};
194             tmp_call_result_1 = impl___main__$$$function__1_complex_call_helper_pos_star_list(tstate, dir_call_args);
195         }
196         if (tmp_call_result_1 == NULL) {
197             assert(HAS_ERROR_OCCURRED(tstate));
198  
199             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
200  
201  
202             exception_lineno = 26;
203             type_description_1 = "oo";
204             goto frame_exception_exit_1;
205         }
206         Py_DECREF(tmp_call_result_1);
207     } 170     }
208 171
209 172
210     // Put the previous frame back on top. 173     // Put the previous frame back on top.
211     popFrameStack(tstate); 174     popFrameStack(tstate);
275     exception_type = NULL; 238     exception_type = NULL;
276     exception_value = NULL; 239     exception_value = NULL;
277     exception_tb = NULL; 240     exception_tb = NULL;
278     exception_lineno = 0; 241     exception_lineno = 0;
279 242
n 280     Py_XDECREF(var_args); n
281     var_args = NULL;
282     // Re-raise. 243     // Re-raise.
283     exception_type = exception_keeper_type_1; 244     exception_type = exception_keeper_type_1;
284     exception_value = exception_keeper_value_1; 245     exception_value = exception_keeper_value_1;
285     exception_tb = exception_keeper_tb_1; 246     exception_tb = exception_keeper_tb_1;
286     exception_lineno = exception_keeper_lineno_1; 247     exception_lineno = exception_keeper_lineno_1;
310    assert(had_error || !HAS_ERROR_OCCURRED(tstate)); 271    assert(had_error || !HAS_ERROR_OCCURRED(tstate));
311    return tmp_return_value; 272    return tmp_return_value;
312 } 273 }
313 274
314 275
n 315 NUITKA_LOCAL_MODULE PyObject *impl___main__$$$function__1_complex_call_helper_pos_star_list(PyThreadState *tstate, PyObject **python_pars) { n
316 #ifndef __NUITKA_NO_ASSERT__
317     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate);
318     assert(!had_error); // Do not enter inlined functions with error set.
319 #endif
320  
321     // Local variable declarations.
322     PyObject *par_called = python_pars[0];
323     PyObject *par_args = python_pars[1];
324     PyObject *par_star_arg_list = python_pars[2];
325     PyObject *exception_type = NULL;
326     PyObject *exception_value = NULL;
327     PyTracebackObject *exception_tb = NULL;
328     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
329     PyObject *exception_keeper_type_1;
330     PyObject *exception_keeper_value_1;
331     PyTracebackObject *exception_keeper_tb_1;
332     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
333     int tmp_res;
334     PyObject *tmp_return_value = NULL;
335  
336     // Actual function body.
337     {
338         bool tmp_condition_result_1;
339         PyObject *tmp_cmp_expr_left_1;
340         PyObject *tmp_cmp_expr_right_1;
341         PyObject *tmp_type_arg_1;
342         CHECK_OBJECT(par_star_arg_list);
343         tmp_type_arg_1 = par_star_arg_list;
344         tmp_cmp_expr_left_1 = BUILTIN_TYPE1(tmp_type_arg_1);
345         assert(!(tmp_cmp_expr_left_1 == NULL));
346         tmp_cmp_expr_right_1 = (PyObject *)&PyTuple_Type;
347         tmp_condition_result_1 = (tmp_cmp_expr_left_1 != tmp_cmp_expr_right_1) ? true : false;
348         Py_DECREF(tmp_cmp_expr_left_1);
349         if (tmp_condition_result_1 != false) {
350             goto branch_yes_1;
351         } else {
352             goto branch_no_1;
353         }
354     }
355     branch_yes_1:;
356     // Tried code:
357     {
358         PyObject *tmp_assign_source_1;
359         PyObject *tmp_tuple_arg_1;
360         CHECK_OBJECT(par_star_arg_list);
361         tmp_tuple_arg_1 = par_star_arg_list;
362         tmp_assign_source_1 = PySequence_Tuple(tmp_tuple_arg_1);
363         if (tmp_assign_source_1 == NULL) {
364             assert(HAS_ERROR_OCCURRED(tstate));
365  
366             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
367  
368  
369  
370  
371             goto try_except_handler_1;
372         }
373         {
374             PyObject *old = par_star_arg_list;
375             assert(old != NULL);
376             par_star_arg_list = tmp_assign_source_1;
377             Py_DECREF(old);
378         }
379  
380     }
381     goto try_end_1;
382     // Exception handler code:
383     try_except_handler_1:;
384     exception_keeper_type_1 = exception_type;
385     exception_keeper_value_1 = exception_value;
386     exception_keeper_tb_1 = exception_tb;
387     exception_keeper_lineno_1 = exception_lineno;
388     exception_type = NULL;
389     exception_value = NULL;
390     exception_tb = NULL;
391     exception_lineno = 0;
392  
393     {
394         bool tmp_condition_result_2;
395         PyObject *tmp_cmp_expr_left_2;
396         PyObject *tmp_cmp_expr_right_2;
397         tmp_cmp_expr_left_2 = exception_keeper_type_1;
398         tmp_cmp_expr_right_2 = PyExc_TypeError;
399         tmp_res = EXCEPTION_MATCH_BOOL(tstate, tmp_cmp_expr_left_2, tmp_cmp_expr_right_2);
400         assert(!(tmp_res == -1));
401         tmp_condition_result_2 = (tmp_res != 0) ? true : false;
402         if (tmp_condition_result_2 != false) {
403             goto branch_yes_2;
404         } else {
405             goto branch_no_2;
406         }
407     }
408     branch_yes_2:;
409     {
410         PyObject *tmp_raise_type_1;
411         PyObject *tmp_make_exception_arg_1;
412         PyObject *tmp_mod_expr_left_1;
413         PyObject *tmp_mod_expr_right_1;
414         PyObject *tmp_tuple_element_1;
415         PyObject *tmp_dircall_arg1_1;
416         tmp_mod_expr_left_1 = mod_consts[2];
417         CHECK_OBJECT(par_called);
418         tmp_dircall_arg1_1 = par_called;
419         Py_INCREF(tmp_dircall_arg1_1);
420  
421         {
422             PyObject *dir_call_args[] = {tmp_dircall_arg1_1};
423             tmp_tuple_element_1 = impl___main__$$$function__2_get_callable_name_desc(tstate, dir_call_args);
424         }
425         if (tmp_tuple_element_1 == NULL) {
426             assert(HAS_ERROR_OCCURRED(tstate));
427  
428             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
429  
430             Py_DECREF(exception_keeper_type_1);
431             Py_XDECREF(exception_keeper_value_1);
432             Py_XDECREF(exception_keeper_tb_1);
433  
434  
435  
436             goto function_exception_exit;
437         }
438         tmp_mod_expr_right_1 = MAKE_TUPLE_EMPTY(2);
439         {
440             PyObject *tmp_expression_value_1;
441             PyObject *tmp_type_arg_2;
442             PyTuple_SET_ITEM(tmp_mod_expr_right_1, 0, tmp_tuple_element_1);
443             CHECK_OBJECT(par_star_arg_list);
444             tmp_type_arg_2 = par_star_arg_list;
445             tmp_expression_value_1 = BUILTIN_TYPE1(tmp_type_arg_2);
446             assert(!(tmp_expression_value_1 == NULL));
447             tmp_tuple_element_1 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_1, mod_consts[3]);
448             Py_DECREF(tmp_expression_value_1);
449             if (tmp_tuple_element_1 == NULL) {
450                 assert(HAS_ERROR_OCCURRED(tstate));
451  
452                 FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
453  
454                 Py_DECREF(exception_keeper_type_1);
455                 Py_XDECREF(exception_keeper_value_1);
456                 Py_XDECREF(exception_keeper_tb_1);
457  
458  
459  
460                 goto tuple_build_exception_1;
461             }
462             PyTuple_SET_ITEM(tmp_mod_expr_right_1, 1, tmp_tuple_element_1);
463         }
464         goto tuple_build_noexception_1;
465         // Exception handling pass through code for tuple_build:
466         tuple_build_exception_1:;
467         Py_DECREF(tmp_mod_expr_right_1);
468         Py_DECREF(exception_keeper_type_1);
469         Py_XDECREF(exception_keeper_value_1);
470         Py_XDECREF(exception_keeper_tb_1);
471         goto function_exception_exit;
472         // Finished with no exception for tuple_build:
473         tuple_build_noexception_1:;
474         tmp_make_exception_arg_1 = BINARY_OPERATION_MOD_OBJECT_STR_TUPLE(tmp_mod_expr_left_1, tmp_mod_expr_right_1);
475         Py_DECREF(tmp_mod_expr_right_1);
476         if (tmp_make_exception_arg_1 == NULL) {
477             assert(HAS_ERROR_OCCURRED(tstate));
478  
479             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
480  
481             Py_DECREF(exception_keeper_type_1);
482             Py_XDECREF(exception_keeper_value_1);
483             Py_XDECREF(exception_keeper_tb_1);
484  
485  
486  
487             goto function_exception_exit;
488         }
489         tmp_raise_type_1 = CALL_FUNCTION_WITH_SINGLE_ARG(tstate, PyExc_TypeError, tmp_make_exception_arg_1);
490         Py_DECREF(tmp_make_exception_arg_1);
491         assert(!(tmp_raise_type_1 == NULL));
492         exception_type = tmp_raise_type_1;
493         RAISE_EXCEPTION_WITH_TYPE(tstate, &exception_type, &exception_value, &exception_tb);
494  
495         goto function_exception_exit;
496     }
497     goto branch_end_2;
498     branch_no_2:;
499     // Re-raise.
500     exception_type = exception_keeper_type_1;
501     exception_value = exception_keeper_value_1;
502     exception_tb = exception_keeper_tb_1;
503     exception_lineno = exception_keeper_lineno_1;
504  
505     goto function_exception_exit;
506     branch_end_2:;
507     // End of try:
508     try_end_1:;
509     branch_no_1:;
510     {
511         PyObject *tmp_called_value_1;
512         PyObject *tmp_args_value_1;
513         PyObject *tmp_add_expr_left_1;
514         PyObject *tmp_add_expr_right_1;
515         CHECK_OBJECT(par_called);
516         tmp_called_value_1 = par_called;
517         CHECK_OBJECT(par_args);
518         tmp_add_expr_left_1 = par_args;
519         CHECK_OBJECT(par_star_arg_list);
520         tmp_add_expr_right_1 = par_star_arg_list;
521         tmp_args_value_1 = BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(tmp_add_expr_left_1, tmp_add_expr_right_1);
522         if (tmp_args_value_1 == NULL) {
523             assert(HAS_ERROR_OCCURRED(tstate));
524  
525             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
526  
527  
528  
529  
530             goto function_exception_exit;
531         }
532         tmp_return_value = CALL_FUNCTION_WITH_POSARGS(tstate, tmp_called_value_1, tmp_args_value_1);
533         Py_DECREF(tmp_args_value_1);
534         if (tmp_return_value == NULL) {
535             assert(HAS_ERROR_OCCURRED(tstate));
536  
537             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
538  
539  
540  
541  
542             goto function_exception_exit;
543         }
544         goto function_return_exit;
545     }
546  
547     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
548     return NULL;
549  
550 function_exception_exit:
551     CHECK_OBJECT(par_called);
552     Py_DECREF(par_called);
553     CHECK_OBJECT(par_args);
554     Py_DECREF(par_args);
555     CHECK_OBJECT(par_star_arg_list);
556     Py_DECREF(par_star_arg_list);
557     assert(exception_type);
558     RESTORE_ERROR_OCCURRED(tstate, exception_type, exception_value, exception_tb);
559  
560     return NULL;
561  
562 function_return_exit:
563    // Function cleanup code if any.
564     CHECK_OBJECT(par_called);
565     Py_DECREF(par_called);
566     CHECK_OBJECT(par_args);
567     Py_DECREF(par_args);
568     CHECK_OBJECT(par_star_arg_list);
569     Py_DECREF(par_star_arg_list);
570  
571    // Actual function exit with return value, making sure we did not make
572    // the error status worse despite non-NULL return.
573    CHECK_OBJECT(tmp_return_value);
574    assert(had_error || !HAS_ERROR_OCCURRED(tstate));
575    return tmp_return_value;
576 }
577  
578  
579 NUITKA_LOCAL_MODULE PyObject *impl___main__$$$function__2_get_callable_name_desc(PyThreadState *tstate, PyObject **python_pars) {
580 #ifndef __NUITKA_NO_ASSERT__
581     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate);
582     assert(!had_error); // Do not enter inlined functions with error set.
583 #endif
584  
585     // Local variable declarations.
586     PyObject *par_called = python_pars[0];
587     int tmp_res;
588     PyObject *exception_type = NULL;
589     PyObject *exception_value = NULL;
590     PyTracebackObject *exception_tb = NULL;
591     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
592     PyObject *tmp_return_value = NULL;
593  
594     // Actual function body.
595     {
596         nuitka_bool tmp_condition_result_1;
597         PyObject *tmp_isinstance_inst_1;
598         PyObject *tmp_isinstance_cls_1;
599         CHECK_OBJECT(par_called);
600         tmp_isinstance_inst_1 = par_called;
601         tmp_isinstance_cls_1 = mod_consts[4];
602         tmp_res = PyObject_IsInstance(tmp_isinstance_inst_1, tmp_isinstance_cls_1);
603         if (tmp_res == -1) {
604             assert(HAS_ERROR_OCCURRED(tstate));
605  
606             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
607  
608  
609  
610  
611             goto function_exception_exit;
612         }
613         tmp_condition_result_1 = (tmp_res != 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
614         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE) {
615             goto branch_yes_1;
616         } else {
617             goto branch_no_1;
618         }
619     }
620     branch_yes_1:;
621     {
622         PyObject *tmp_add_expr_left_1;
623         PyObject *tmp_add_expr_right_1;
624         PyObject *tmp_expression_value_1;
625         CHECK_OBJECT(par_called);
626         tmp_expression_value_1 = par_called;
627         tmp_add_expr_left_1 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_1, mod_consts[3]);
628         if (tmp_add_expr_left_1 == NULL) {
629             assert(HAS_ERROR_OCCURRED(tstate));
630  
631             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
632  
633  
634  
635  
636             goto function_exception_exit;
637         }
638         tmp_add_expr_right_1 = mod_consts[5];
639         tmp_return_value = BINARY_OPERATION_ADD_OBJECT_OBJECT_STR(tmp_add_expr_left_1, tmp_add_expr_right_1);
640         Py_DECREF(tmp_add_expr_left_1);
641         if (tmp_return_value == NULL) {
642             assert(HAS_ERROR_OCCURRED(tstate));
643  
644             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
645  
646  
647  
648  
649             goto function_exception_exit;
650         }
651         goto function_return_exit;
652     }
653     goto branch_end_1;
654     branch_no_1:;
655     {
656         nuitka_bool tmp_condition_result_2;
657         PyObject *tmp_isinstance_inst_2;
658         PyObject *tmp_isinstance_cls_2;
659         CHECK_OBJECT(par_called);
660         tmp_isinstance_inst_2 = par_called;
661         tmp_isinstance_cls_2 = (PyObject *)&PyClass_Type;
662         tmp_res = PyObject_IsInstance(tmp_isinstance_inst_2, tmp_isinstance_cls_2);
663         if (tmp_res == -1) {
664             assert(HAS_ERROR_OCCURRED(tstate));
665  
666             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
667  
668  
669  
670  
671             goto function_exception_exit;
672         }
673         tmp_condition_result_2 = (tmp_res != 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
674         if (tmp_condition_result_2 == NUITKA_BOOL_TRUE) {
675             goto branch_yes_2;
676         } else {
677             goto branch_no_2;
678         }
679     }
680     branch_yes_2:;
681     {
682         PyObject *tmp_add_expr_left_2;
683         PyObject *tmp_add_expr_right_2;
684         PyObject *tmp_expression_value_2;
685         CHECK_OBJECT(par_called);
686         tmp_expression_value_2 = par_called;
687         tmp_add_expr_left_2 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_2, mod_consts[3]);
688         if (tmp_add_expr_left_2 == NULL) {
689             assert(HAS_ERROR_OCCURRED(tstate));
690  
691             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
692  
693  
694  
695  
696             goto function_exception_exit;
697         }
698         tmp_add_expr_right_2 = mod_consts[6];
699         tmp_return_value = BINARY_OPERATION_ADD_OBJECT_OBJECT_STR(tmp_add_expr_left_2, tmp_add_expr_right_2);
700         Py_DECREF(tmp_add_expr_left_2);
701         if (tmp_return_value == NULL) {
702             assert(HAS_ERROR_OCCURRED(tstate));
703  
704             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
705  
706  
707  
708  
709             goto function_exception_exit;
710         }
711         goto function_return_exit;
712     }
713     goto branch_end_2;
714     branch_no_2:;
715     {
716         nuitka_bool tmp_condition_result_3;
717         PyObject *tmp_isinstance_inst_3;
718         PyObject *tmp_isinstance_cls_3;
719         CHECK_OBJECT(par_called);
720         tmp_isinstance_inst_3 = par_called;
721         tmp_isinstance_cls_3 = (PyObject *)&PyInstance_Type;
722         tmp_res = PyObject_IsInstance(tmp_isinstance_inst_3, tmp_isinstance_cls_3);
723         if (tmp_res == -1) {
724             assert(HAS_ERROR_OCCURRED(tstate));
725  
726             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
727  
728  
729  
730  
731             goto function_exception_exit;
732         }
733         tmp_condition_result_3 = (tmp_res != 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
734         if (tmp_condition_result_3 == NUITKA_BOOL_TRUE) {
735             goto branch_yes_3;
736         } else {
737             goto branch_no_3;
738         }
739     }
740     branch_yes_3:;
741     {
742         PyObject *tmp_add_expr_left_3;
743         PyObject *tmp_add_expr_right_3;
744         PyObject *tmp_expression_value_3;
745         PyObject *tmp_expression_value_4;
746         CHECK_OBJECT(par_called);
747         tmp_expression_value_4 = par_called;
748         tmp_expression_value_3 = LOOKUP_ATTRIBUTE_CLASS_SLOT(tstate, tmp_expression_value_4);
749         if (tmp_expression_value_3 == NULL) {
750             assert(HAS_ERROR_OCCURRED(tstate));
751  
752             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
753  
754  
755  
756  
757             goto function_exception_exit;
758         }
759         tmp_add_expr_left_3 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_3, mod_consts[3]);
760         Py_DECREF(tmp_expression_value_3);
761         if (tmp_add_expr_left_3 == NULL) {
762             assert(HAS_ERROR_OCCURRED(tstate));
763  
764             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
765  
766  
767  
768  
769             goto function_exception_exit;
770         }
771         tmp_add_expr_right_3 = mod_consts[7];
772         tmp_return_value = BINARY_OPERATION_ADD_OBJECT_OBJECT_STR(tmp_add_expr_left_3, tmp_add_expr_right_3);
773         Py_DECREF(tmp_add_expr_left_3);
774         if (tmp_return_value == NULL) {
775             assert(HAS_ERROR_OCCURRED(tstate));
776  
777             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
778  
779  
780  
781  
782             goto function_exception_exit;
783         }
784         goto function_return_exit;
785     }
786     goto branch_end_3;
787     branch_no_3:;
788     {
789         PyObject *tmp_add_expr_left_4;
790         PyObject *tmp_add_expr_right_4;
791         PyObject *tmp_expression_value_5;
792         PyObject *tmp_type_arg_1;
793         CHECK_OBJECT(par_called);
794         tmp_type_arg_1 = par_called;
795         tmp_expression_value_5 = BUILTIN_TYPE1(tmp_type_arg_1);
796         assert(!(tmp_expression_value_5 == NULL));
797         tmp_add_expr_left_4 = LOOKUP_ATTRIBUTE(tstate, tmp_expression_value_5, mod_consts[3]);
798         Py_DECREF(tmp_expression_value_5);
799         if (tmp_add_expr_left_4 == NULL) {
800             assert(HAS_ERROR_OCCURRED(tstate));
801  
802             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
803  
804  
805  
806  
807             goto function_exception_exit;
808         }
809         tmp_add_expr_right_4 = mod_consts[8];
810         tmp_return_value = BINARY_OPERATION_ADD_OBJECT_OBJECT_STR(tmp_add_expr_left_4, tmp_add_expr_right_4);
811         Py_DECREF(tmp_add_expr_left_4);
812         if (tmp_return_value == NULL) {
813             assert(HAS_ERROR_OCCURRED(tstate));
814  
815             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
816  
817  
818  
819  
820             goto function_exception_exit;
821         }
822         goto function_return_exit;
823     }
824     branch_end_3:;
825     branch_end_2:;
826     branch_end_1:;
827  
828     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
829     return NULL;
830  
831 function_exception_exit:
832     CHECK_OBJECT(par_called);
833     Py_DECREF(par_called);
834     assert(exception_type);
835     RESTORE_ERROR_OCCURRED(tstate, exception_type, exception_value, exception_tb);
836  
837     return NULL;
838  
839 function_return_exit:
840    // Function cleanup code if any.
841     CHECK_OBJECT(par_called);
842     Py_DECREF(par_called);
843  
844    // Actual function exit with return value, making sure we did not make
845    // the error status worse despite non-NULL return.
846    CHECK_OBJECT(tmp_return_value);
847    assert(had_error || !HAS_ERROR_OCCURRED(tstate));
848    return tmp_return_value;
849 }
850  
851  
852 276
853 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 277 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
854     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 278     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
855         impl___main__$$$function__1_calledRepeatedly, 279         impl___main__$$$function__1_calledRepeatedly,
n 856         mod_consts[18], n 280         mod_consts[10],
857 #if PYTHON_VERSION >= 0x300 281 #if PYTHON_VERSION >= 0x300
858         NULL, 282         NULL,
859 #endif 283 #endif
860         codeobj_1b2ff76acce51bb1a893f908d5e99c62, 284         codeobj_1b2ff76acce51bb1a893f908d5e99c62,
861         NULL, 285         NULL,
1246 670
1247     // Module code. 671     // Module code.
1248     { 672     {
1249         PyObject *tmp_assign_source_1; 673         PyObject *tmp_assign_source_1;
1250         tmp_assign_source_1 = Py_None; 674         tmp_assign_source_1 = Py_None;
n 1251         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_1); n 675         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1);
1252     } 676     }
1253     { 677     {
1254         PyObject *tmp_assign_source_2; 678         PyObject *tmp_assign_source_2;
n 1255         tmp_assign_source_2 = mod_consts[10]; n 679         tmp_assign_source_2 = mod_consts[2];
1256         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_2); 680         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2);
1257     } 681     }
1258     { 682     {
1259         PyObject *tmp_assign_source_3; 683         PyObject *tmp_assign_source_3;
1260         { 684         {
1261             PyObject *hard_module = IMPORT_HARD___FUTURE__(); 685             PyObject *hard_module = IMPORT_HARD___FUTURE__();
n 1262             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[12]); n 686             tmp_assign_source_3 = LOOKUP_ATTRIBUTE(tstate, hard_module, mod_consts[4]);
1263         } 687         }
1264         assert(!(tmp_assign_source_3 == NULL)); 688         assert(!(tmp_assign_source_3 == NULL));
n 1265         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_3); n 689         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3);
1266     } 690     }
1267     frame_e7c9e3d4dd54f3b4308eb955790d80b8 = MAKE_MODULE_FRAME(codeobj_e7c9e3d4dd54f3b4308eb955790d80b8, module___main__); 691     frame_e7c9e3d4dd54f3b4308eb955790d80b8 = MAKE_MODULE_FRAME(codeobj_e7c9e3d4dd54f3b4308eb955790d80b8, module___main__);
1268 692
1269     // Push the new frame as the currently active one, and we should be exclusively 693     // Push the new frame as the currently active one, and we should be exclusively
1270     // owning it. 694     // owning it.
1276         PyObject *tmp_assign_source_4; 700         PyObject *tmp_assign_source_4;
1277         PyObject *tmp_name_value_1; 701         PyObject *tmp_name_value_1;
1278         PyObject *tmp_globals_arg_value_1; 702         PyObject *tmp_globals_arg_value_1;
1279         PyObject *tmp_locals_arg_value_1; 703         PyObject *tmp_locals_arg_value_1;
1280         PyObject *tmp_fromlist_value_1; 704         PyObject *tmp_fromlist_value_1;
n 1281         tmp_name_value_1 = mod_consts[13]; n 705         tmp_name_value_1 = mod_consts[5];
1282         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 706         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
1283         tmp_locals_arg_value_1 = Py_None; 707         tmp_locals_arg_value_1 = Py_None;
1284         tmp_fromlist_value_1 = Py_None; 708         tmp_fromlist_value_1 = Py_None;
1285         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 6; 709         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 6;
1286         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); 710         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);
1292 716
1293             exception_lineno = 6; 717             exception_lineno = 6;
1294 718
1295             goto frame_exception_exit_1; 719             goto frame_exception_exit_1;
1296         } 720         }
n 1297         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_4); n 721         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_4);
1298     } 722     }
1299     { 723     {
1300         PyObject *tmp_assign_source_5; 724         PyObject *tmp_assign_source_5;
1301         tmp_assign_source_5 = (PyObject *)moduledict___main__; 725         tmp_assign_source_5 = (PyObject *)moduledict___main__;
1302         assert(tmp_exec_1__globals == NULL); 726         assert(tmp_exec_1__globals == NULL);
1316         PyObject *tmp_exec_globals_1; 740         PyObject *tmp_exec_globals_1;
1317         PyObject *tmp_exec_locals_1; 741         PyObject *tmp_exec_locals_1;
1318         PyObject *tmp_exec_filename_1; 742         PyObject *tmp_exec_filename_1;
1319         PyObject *tmp_exec_compiled_1; 743         PyObject *tmp_exec_compiled_1;
1320         PyObject *tmp_exec_result_1; 744         PyObject *tmp_exec_result_1;
n 1321         tmp_exec_source_1 = mod_consts[14]; n 745         tmp_exec_source_1 = mod_consts[6];
1322         CHECK_OBJECT(tmp_exec_1__globals); 746         CHECK_OBJECT(tmp_exec_1__globals);
1323         tmp_exec_globals_1 = tmp_exec_1__globals; 747         tmp_exec_globals_1 = tmp_exec_1__globals;
1324         CHECK_OBJECT(tmp_exec_1__locals); 748         CHECK_OBJECT(tmp_exec_1__locals);
1325         tmp_exec_locals_1 = tmp_exec_1__locals; 749         tmp_exec_locals_1 = tmp_exec_1__locals;
n 1326         tmp_exec_filename_1 = mod_consts[15]; n 750         tmp_exec_filename_1 = mod_consts[7];
1327         Py_INCREF(tmp_exec_filename_1); 751         Py_INCREF(tmp_exec_filename_1);
1328         Py_INCREF(tmp_exec_source_1); 752         Py_INCREF(tmp_exec_source_1);
1329         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1); 753         tmp_result = EXEC_FILE_ARG_HANDLING(tstate, &tmp_exec_source_1, &tmp_exec_filename_1);
1330         if (tmp_result == false) { 754         if (tmp_result == false) {
1331             assert(HAS_ERROR_OCCURRED(tstate)); 755             assert(HAS_ERROR_OCCURRED(tstate));
1336 760
1337             exception_lineno = 8; 761             exception_lineno = 8;
1338 762
1339             goto try_except_handler_1; 763             goto try_except_handler_1;
1340         } 764         }
n 1341         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[16], NULL, NULL); n 765         tmp_exec_compiled_1 = COMPILE_CODE(tstate, tmp_exec_source_1, tmp_exec_filename_1, mod_consts[8], NULL, NULL);
1342         Py_DECREF(tmp_exec_source_1); 766         Py_DECREF(tmp_exec_source_1);
1343         Py_DECREF(tmp_exec_filename_1); 767         Py_DECREF(tmp_exec_filename_1);
1344         if (tmp_exec_compiled_1 == NULL) { 768         if (tmp_exec_compiled_1 == NULL) {
1345             assert(HAS_ERROR_OCCURRED(tstate)); 769             assert(HAS_ERROR_OCCURRED(tstate));
1346 770
1398     CHECK_OBJECT(tmp_exec_1__locals); 822     CHECK_OBJECT(tmp_exec_1__locals);
1399     Py_DECREF(tmp_exec_1__locals); 823     Py_DECREF(tmp_exec_1__locals);
1400     tmp_exec_1__locals = NULL; 824     tmp_exec_1__locals = NULL;
1401     { 825     {
1402         PyObject *tmp_assign_source_7; 826         PyObject *tmp_assign_source_7;
n 1403         tmp_assign_source_7 = mod_consts[17]; n 827         tmp_assign_source_7 = mod_consts[9];
1404         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_7); 828         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_7);
1405     } 829     }
1406     { 830     {
1407         PyObject *tmp_assign_source_8; 831         PyObject *tmp_assign_source_8;
1408 832
1409 833
1410         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 834         tmp_assign_source_8 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
1411 835
n 1412         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[18], tmp_assign_source_8); n 836         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8);
1413     } 837     }
1414     { 838     {
1415         PyObject *tmp_assign_source_9; 839         PyObject *tmp_assign_source_9;
1416         PyObject *tmp_iter_arg_1; 840         PyObject *tmp_iter_arg_1;
1417         PyObject *tmp_called_instance_1; 841         PyObject *tmp_called_instance_1;
n 1418         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[13]); n 842         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
1419 843
1420         if (unlikely(tmp_called_instance_1 == NULL)) { 844         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1421             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[13]); n 845             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
1422         } 846         }
1423 847
1424         if (tmp_called_instance_1 == NULL) { 848         if (tmp_called_instance_1 == NULL) {
1425             assert(HAS_ERROR_OCCURRED(tstate)); 849             assert(HAS_ERROR_OCCURRED(tstate));
1426 850
1433         } 857         }
1434         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 34; 858         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 34;
1435         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 859         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1436             tstate, 860             tstate,
1437             tmp_called_instance_1, 861             tmp_called_instance_1,
n 1438             mod_consts[19], n 862             mod_consts[11],
1439             &PyTuple_GET_ITEM(mod_consts[20], 0) 863             &PyTuple_GET_ITEM(mod_consts[12], 0)
1440         ); 864         );
1441 865
1442         if (tmp_iter_arg_1 == NULL) { 866         if (tmp_iter_arg_1 == NULL) {
1443             assert(HAS_ERROR_OCCURRED(tstate)); 867             assert(HAS_ERROR_OCCURRED(tstate));
1444 868
1494     } 918     }
1495     { 919     {
1496         PyObject *tmp_assign_source_11; 920         PyObject *tmp_assign_source_11;
1497         CHECK_OBJECT(tmp_for_loop_1__iter_value); 921         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1498         tmp_assign_source_11 = tmp_for_loop_1__iter_value; 922         tmp_assign_source_11 = tmp_for_loop_1__iter_value;
n 1499         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[21], tmp_assign_source_11); n 923         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_11);
1500     } 924     }
1501     { 925     {
1502         PyObject *tmp_called_value_1; 926         PyObject *tmp_called_value_1;
1503         PyObject *tmp_call_result_1; 927         PyObject *tmp_call_result_1;
1504         PyObject *tmp_args_element_value_1; 928         PyObject *tmp_args_element_value_1;
n 1505         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[18]); n 929         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]);
1506 930
1507         if (unlikely(tmp_called_value_1 == NULL)) { 931         if (unlikely(tmp_called_value_1 == NULL)) {
n 1508             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[18]); n 932             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[10]);
1509         } 933         }
1510 934
1511         if (tmp_called_value_1 == NULL) { 935         if (tmp_called_value_1 == NULL) {
1512             assert(HAS_ERROR_OCCURRED(tstate)); 936             assert(HAS_ERROR_OCCURRED(tstate));
1513 937
1516 940
1517             exception_lineno = 35; 941             exception_lineno = 35;
1518 942
1519             goto try_except_handler_2; 943             goto try_except_handler_2;
1520         } 944         }
n 1521         tmp_args_element_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[22]); n 945         tmp_args_element_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[14]);
1522 946
1523         if (unlikely(tmp_args_element_value_1 == NULL)) { 947         if (unlikely(tmp_args_element_value_1 == NULL)) {
n 1524             tmp_args_element_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[22]); n 948             tmp_args_element_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[14]);
1525         } 949         }
1526 950
1527         if (tmp_args_element_value_1 == NULL) { 951         if (tmp_args_element_value_1 == NULL) {
1528             assert(HAS_ERROR_OCCURRED(tstate)); 952             assert(HAS_ERROR_OCCURRED(tstate));
1529 953
1592     Py_DECREF(tmp_for_loop_1__for_iterator); 1016     Py_DECREF(tmp_for_loop_1__for_iterator);
1593     tmp_for_loop_1__for_iterator = NULL; 1017     tmp_for_loop_1__for_iterator = NULL;
1594     { 1018     {
1595         PyObject *tmp_called_value_2; 1019         PyObject *tmp_called_value_2;
1596         PyObject *tmp_call_result_2; 1020         PyObject *tmp_call_result_2;
n 1597         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[23]); n 1021         tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[15]);
1598         assert(tmp_called_value_2 != NULL); 1022         assert(tmp_called_value_2 != NULL);
1599         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 37; 1023         frame_e7c9e3d4dd54f3b4308eb955790d80b8->m_frame.f_lineno = 37;
t 1600         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[24]); t 1024         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tstate, tmp_called_value_2, mod_consts[16]);
1601 1025
1602         if (tmp_call_result_2 == NULL) { 1026         if (tmp_call_result_2 == NULL) {
1603             assert(HAS_ERROR_OCCURRED(tstate)); 1027             assert(HAS_ERROR_OCCURRED(tstate));
1604 1028
1605             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 1029             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);