Construct FunctionRaise

Performance Diagrams

Construct FunctionRaise 00100000000100000000200000000200000000300000000300000000400000000400000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)44709792188.11538461538461257.0CPython 2.7166997247240.03846153846155411.8143763042425Nuitka (master)166797258391.96153846153845411.92491217643646Nuitka (develop)166797282543.8846153846154411.92489891140224Nuitka (factory)Construct FunctionRaiseTicks Construct FunctionRaise 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)18394632288.11538461538461257.0CPython 3.5102131851240.03846153846155366.9104034723197Nuitka (master)101928685391.96153846153845367.18333877042676Nuitka (develop)101932055543.8846153846154367.17881147769754Nuitka (factory)Construct FunctionRaiseTicks

Source Code with Construct

from __future__ import print_function

count = 0

def raisy():
    global count
    count += 1

    raise TypeError

def calledRepeatedly():
# construct_begin
    try:
        raisy()
    except TypeError:
        pass
# construct_alternative



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

# construct_begin
assert count == 50000
# construct_alternative


print("OK.")

Source Code without Construct

from __future__ import print_function

count = 0

def raisy():
    global count
    count += 1

    raise TypeError

def calledRepeatedly():
# construct_begin




# construct_alternative
    pass
# construct_end

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

# construct_begin

# construct_alternative
assert count == 0
# construct_end
print("OK.")

Context Diff of Source Code


Construct
Baseline
28 28
29     raise TypeError 29     raise TypeError
30 30
31 def calledRepeatedly(): 31 def calledRepeatedly():
32 # construct_begin 32 # construct_begin
n 33     try: n
34         raisy()
35     except TypeError:
36         pass
37 # construct_alternative
38 33
39 34
n n 35  
36  
37 # construct_alternative
38     pass
39 # construct_end
40 40
41 import itertools 41 import itertools
42 for x in itertools.repeat(None, 50000): 42 for x in itertools.repeat(None, 50000):
43     calledRepeatedly() 43     calledRepeatedly()
44 44
45 # construct_begin 45 # construct_begin
n 46 assert count == 50000 n 46  
47 # construct_alternative 47 # construct_alternative
t 48   t 48 assert count == 0
49   49 # construct_end
50 print("OK.") 50 print("OK.")
51 51

Context Diff of Generated Code


Construct
Baseline
58 static bool constants_created = false; 58 static bool constants_created = false;
59 59
60 /* Function to create module private constants. */ 60 /* Function to create module private constants. */
61 static void createModuleConstants( void ) 61 static void createModuleConstants( void )
62 { 62 {
n 63     const_str_plain_itertools = UNSTREAM_STRING_ASCII(&constant_bin[ 92 ], 9, 1); n 63     const_str_plain_itertools = UNSTREAM_STRING_ASCII(&constant_bin[ 65 ], 9, 1);
64     const_str_plain_count = UNSTREAM_STRING_ASCII(&constant_bin[ 6 ], 5, 1); 64     const_str_plain_count = UNSTREAM_STRING_ASCII(&constant_bin[ 6 ], 5, 1);
n 65     const_str_plain_raisy = UNSTREAM_STRING_ASCII(&constant_bin[ 33 ], 5, 1); n 65     const_str_plain_raisy = UNSTREAM_STRING_ASCII(&constant_bin[ 74 ], 5, 1);
66     const_int_pos_50000 = PyLong_FromUnsignedLong(50000ul); 66     const_int_pos_50000 = PyLong_FromUnsignedLong(50000ul);
67     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New(1); 67     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New(1);
n 68     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII(&constant_bin[ 101 ], 3, 0); n 68     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII(&constant_bin[ 79 ], 3, 0);
69     PyTuple_SET_ITEM(const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352); Py_INCREF(const_str_digest_5ed1392909ad16e6227b8230f4582352); 69     PyTuple_SET_ITEM(const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352); Py_INCREF(const_str_digest_5ed1392909ad16e6227b8230f4582352);
n 70     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII(&constant_bin[ 60 ], 16, 1); n 70     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII(&constant_bin[ 33 ], 16, 1);
71     const_str_angle_module = UNSTREAM_STRING_ASCII(&constant_bin[ 104 ], 8, 0); 71     const_str_angle_module = UNSTREAM_STRING_ASCII(&constant_bin[ 82 ], 8, 0);
72     const_str_plain_None = UNSTREAM_STRING_ASCII(&constant_bin[ 112 ], 4, 1); 72     const_str_plain_None = UNSTREAM_STRING_ASCII(&constant_bin[ 90 ], 4, 1);
73     const_str_digest_409804086d55d3cf3cd9ee62b6672b3a = UNSTREAM_STRING_ASCII(&constant_bin[ 116 ], 38, 0); 73     const_str_digest_409804086d55d3cf3cd9ee62b6672b3a = UNSTREAM_STRING_ASCII(&constant_bin[ 94 ], 38, 0);
74     const_str_plain_x = UNSTREAM_STRING_ASCII(&constant_bin[ 135 ], 1, 1); 74     const_str_plain_x = UNSTREAM_STRING_ASCII(&constant_bin[ 113 ], 1, 1);
75     const_str_plain_repeat = UNSTREAM_STRING_ASCII(&constant_bin[ 154 ], 6, 1); 75     const_str_plain_repeat = UNSTREAM_STRING_ASCII(&constant_bin[ 132 ], 6, 1);
76     const_tuple_none_int_pos_50000_tuple = PyTuple_New(2); 76     const_tuple_none_int_pos_50000_tuple = PyTuple_New(2);
77     PyTuple_SET_ITEM(const_tuple_none_int_pos_50000_tuple, 0, Py_None); Py_INCREF(Py_None); 77     PyTuple_SET_ITEM(const_tuple_none_int_pos_50000_tuple, 0, Py_None); Py_INCREF(Py_None);
78     PyTuple_SET_ITEM(const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000); Py_INCREF(const_int_pos_50000); 78     PyTuple_SET_ITEM(const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000); Py_INCREF(const_int_pos_50000);
n 79     const_str_plain_print_function = UNSTREAM_STRING_ASCII(&constant_bin[ 160 ], 14, 1); n 79     const_str_plain_print_function = UNSTREAM_STRING_ASCII(&constant_bin[ 138 ], 14, 1);
80 80
81     constants_created = true; 81     constants_created = true;
82 } 82 }
83 83
84 /* Function to verify module private constants for non-corruption. */ 84 /* Function to verify module private constants for non-corruption. */
92 } 92 }
93 #endif 93 #endif
94 94
95 // The module code objects. 95 // The module code objects.
96 static PyCodeObject *codeobj_03e090d5a4ec2a6ac16063cbd4874dd5; 96 static PyCodeObject *codeobj_03e090d5a4ec2a6ac16063cbd4874dd5;
n 97 static PyCodeObject *codeobj_8c44937af103313e4e7f108516efc906; n 97 static PyCodeObject *codeobj_fbec0ba079ef4a98edf578fe7f1975fd;
98 static PyCodeObject *codeobj_b2bee201c87c17746f23898647569395; 98 static PyCodeObject *codeobj_b2bee201c87c17746f23898647569395;
99 /* For use in "MainProgram.c". */ 99 /* For use in "MainProgram.c". */
100 PyCodeObject *codeobj_main = NULL; 100 PyCodeObject *codeobj_main = NULL;
101 101
102 static void createModuleCodeObjects(void) 102 static void createModuleCodeObjects(void)
103 { 103 {
104     module_filename_obj = const_str_digest_409804086d55d3cf3cd9ee62b6672b3a; 104     module_filename_obj = const_str_digest_409804086d55d3cf3cd9ee62b6672b3a;
105     codeobj_03e090d5a4ec2a6ac16063cbd4874dd5 = MAKE_CODEOBJ(module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE); 105     codeobj_03e090d5a4ec2a6ac16063cbd4874dd5 = MAKE_CODEOBJ(module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE);
n 106     codeobj_8c44937af103313e4e7f108516efc906 = MAKE_CODEOBJ(module_filename_obj, const_str_plain_calledRepeatedly, 31, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE); n 106     codeobj_fbec0ba079ef4a98edf578fe7f1975fd = MAKE_CODEOBJ(module_filename_obj, const_str_plain_calledRepeatedly, 31, const_tuple_empty, 0, 0, CO_NOFREE);
107     codeobj_b2bee201c87c17746f23898647569395 = MAKE_CODEOBJ(module_filename_obj, const_str_plain_raisy, 25, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE); 107     codeobj_b2bee201c87c17746f23898647569395 = MAKE_CODEOBJ(module_filename_obj, const_str_plain_raisy, 25, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE);
108 } 108 }
109 109
110 // The module function declarations. 110 // The module function declarations.
111 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy(); 111 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy();
254     return NULL; 254     return NULL;
255 255
256 } 256 }
257 257
258 258
n 259 static PyObject *impl___main__$$$function_2_calledRepeatedly(struct Nuitka_FunctionObject const *self, PyObject **python_pars) { n
260     // Preserve error status for checks
261 #ifndef __NUITKA_NO_ASSERT__
262     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
263 #endif
264  
265     // Local variable declarations.
266     struct Nuitka_FrameObject *frame_8c44937af103313e4e7f108516efc906;
267     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
268     PyObject *exception_type = NULL;
269     PyObject *exception_value = NULL;
270     PyTracebackObject *exception_tb = NULL;
271     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
272     PyObject *exception_keeper_type_1;
273     PyObject *exception_keeper_value_1;
274     PyTracebackObject *exception_keeper_tb_1;
275     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
276     PyObject *exception_preserved_type_1;
277     PyObject *exception_preserved_value_1;
278     PyTracebackObject *exception_preserved_tb_1;
279     int tmp_res;
280     bool tmp_result;
281     PyObject *exception_keeper_type_2;
282     PyObject *exception_keeper_value_2;
283     PyTracebackObject *exception_keeper_tb_2;
284     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
285     static struct Nuitka_FrameObject *cache_frame_8c44937af103313e4e7f108516efc906 = NULL;
286     PyObject *tmp_return_value = NULL;
287  
288     // Actual function body.
289     MAKE_OR_REUSE_FRAME(cache_frame_8c44937af103313e4e7f108516efc906, codeobj_8c44937af103313e4e7f108516efc906, module___main__, 0);
290     frame_8c44937af103313e4e7f108516efc906 = cache_frame_8c44937af103313e4e7f108516efc906;
291  
292     // Push the new frame as the currently active one.
293     pushFrameStack(frame_8c44937af103313e4e7f108516efc906);
294  
295     // Mark the frame object as in use, ref count 1 will be up for reuse.
296     assert(Py_REFCNT(frame_8c44937af103313e4e7f108516efc906) == 2); // Frame stack
297  
298     // Framed code:
299     // Tried code:
300     {
301         PyObject *tmp_called_name_1;
302         PyObject *tmp_mvar_value_1;
303         PyObject *tmp_call_result_1;
304         tmp_mvar_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_raisy);
305  
306         if (unlikely(tmp_mvar_value_1 == NULL)) {
307             tmp_mvar_value_1 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_raisy);
308         }
309  
310         if (tmp_mvar_value_1 == NULL) {
311  
312             exception_type = PyExc_NameError;
313             Py_INCREF(exception_type);
314             exception_value = UNSTREAM_STRING(&constant_bin[ 27 ], 27, 0);
315             exception_tb = NULL;
316             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
317             CHAIN_EXCEPTION(exception_value);
318  
319             exception_lineno = 34;
320  
321             goto try_except_handler_1;
322         }
323  
324         tmp_called_name_1 = tmp_mvar_value_1;
325         frame_8c44937af103313e4e7f108516efc906->m_frame.f_lineno = 34;
326         tmp_call_result_1 = CALL_FUNCTION_NO_ARGS(tmp_called_name_1);
327         if (tmp_call_result_1 == NULL) {
328             assert(ERROR_OCCURRED());
329  
330             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
331  
332  
333             exception_lineno = 34;
334  
335             goto try_except_handler_1;
336         }
337         Py_DECREF(tmp_call_result_1);
338     }
339     goto try_end_1;
340     // Exception handler code:
341     try_except_handler_1:;
342     exception_keeper_type_1 = exception_type;
343     exception_keeper_value_1 = exception_value;
344     exception_keeper_tb_1 = exception_tb;
345     exception_keeper_lineno_1 = exception_lineno;
346     exception_type = NULL;
347     exception_value = NULL;
348     exception_tb = NULL;
349     exception_lineno = 0;
350  
351     // Preserve existing published exception.
352     exception_preserved_type_1 = EXC_TYPE(PyThreadState_GET());
353     Py_XINCREF(exception_preserved_type_1);
354     exception_preserved_value_1 = EXC_VALUE(PyThreadState_GET());
355     Py_XINCREF(exception_preserved_value_1);
356     exception_preserved_tb_1 = (PyTracebackObject *)EXC_TRACEBACK(PyThreadState_GET());
357     Py_XINCREF(exception_preserved_tb_1);
358  
359     if (exception_keeper_tb_1 == NULL) {
360         exception_keeper_tb_1 = MAKE_TRACEBACK(frame_8c44937af103313e4e7f108516efc906, exception_keeper_lineno_1);
361     } else if (exception_keeper_lineno_1 != 0) {
362         exception_keeper_tb_1 = ADD_TRACEBACK(exception_keeper_tb_1, frame_8c44937af103313e4e7f108516efc906, exception_keeper_lineno_1);
363     }
364  
365     NORMALIZE_EXCEPTION(&exception_keeper_type_1, &exception_keeper_value_1, &exception_keeper_tb_1);
366     PyException_SetTraceback(exception_keeper_value_1, (PyObject *)exception_keeper_tb_1);
367     PUBLISH_EXCEPTION(&exception_keeper_type_1, &exception_keeper_value_1, &exception_keeper_tb_1);
368     // Tried code:
369     {
370         nuitka_bool tmp_condition_result_1;
371         PyObject *tmp_operand_name_1;
372         PyObject *tmp_compexpr_left_1;
373         PyObject *tmp_compexpr_right_1;
374         tmp_compexpr_left_1 = EXC_TYPE(PyThreadState_GET());
375         tmp_compexpr_right_1 = PyExc_TypeError;
376         tmp_res = EXCEPTION_MATCH_BOOL(tmp_compexpr_left_1, tmp_compexpr_right_1);
377         if (tmp_res == -1) {
378             assert(ERROR_OCCURRED());
379  
380             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
381  
382  
383             exception_lineno = 35;
384  
385             goto try_except_handler_2;
386         }
387         tmp_operand_name_1 = (tmp_res != 0) ? Py_True : Py_False;
388         tmp_res = CHECK_IF_TRUE(tmp_operand_name_1);
389         if (tmp_res == -1) {
390             assert(ERROR_OCCURRED());
391  
392             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
393  
394  
395             exception_lineno = 35;
396  
397             goto try_except_handler_2;
398         }
399         tmp_condition_result_1 = (tmp_res == 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
400         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE) {
401             goto branch_yes_1;
402         } else {
403             goto branch_no_1;
404         }
405         branch_yes_1:;
406         tmp_result = RERAISE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
407         if (unlikely(tmp_result == false)) {
408             exception_lineno = 33;
409         }
410  
411         if (exception_tb && exception_tb->tb_frame == &frame_8c44937af103313e4e7f108516efc906->m_frame) frame_8c44937af103313e4e7f108516efc906->m_frame.f_lineno = exception_tb->tb_lineno;
412  
413         goto try_except_handler_2;
414         branch_no_1:;
415     }
416     goto try_end_2;
417     // Exception handler code:
418     try_except_handler_2:;
419     exception_keeper_type_2 = exception_type;
420     exception_keeper_value_2 = exception_value;
421     exception_keeper_tb_2 = exception_tb;
422     exception_keeper_lineno_2 = exception_lineno;
423     exception_type = NULL;
424     exception_value = NULL;
425     exception_tb = NULL;
426     exception_lineno = 0;
427  
428     // Restore previous exception.
429     SET_CURRENT_EXCEPTION(exception_preserved_type_1, exception_preserved_value_1, exception_preserved_tb_1);
430     // Re-raise.
431     exception_type = exception_keeper_type_2;
432     exception_value = exception_keeper_value_2;
433     exception_tb = exception_keeper_tb_2;
434     exception_lineno = exception_keeper_lineno_2;
435  
436     goto frame_exception_exit_1;
437     // End of try:
438     try_end_2:;
439     // Restore previous exception.
440     SET_CURRENT_EXCEPTION(exception_preserved_type_1, exception_preserved_value_1, exception_preserved_tb_1);
441     goto try_end_1;
442     // exception handler codes exits in all cases
443     NUITKA_CANNOT_GET_HERE(__main__$$$function_2_calledRepeatedly);
444     return NULL;
445     // End of try:
446     try_end_1:;
447  
448 #if 0
449     RESTORE_FRAME_EXCEPTION(frame_8c44937af103313e4e7f108516efc906);
450 #endif
451  
452     // Put the previous frame back on top.
453     popFrameStack();
454  
455     goto frame_no_exception_1;
456  
457     frame_exception_exit_1:;
458  
459 #if 0
460     RESTORE_FRAME_EXCEPTION(frame_8c44937af103313e4e7f108516efc906);
461 #endif
462  
463     if (exception_tb == NULL) {
464         exception_tb = MAKE_TRACEBACK(frame_8c44937af103313e4e7f108516efc906, exception_lineno);
465     }
466     else if (exception_tb->tb_frame != &frame_8c44937af103313e4e7f108516efc906->m_frame) {
467         exception_tb = ADD_TRACEBACK(exception_tb, frame_8c44937af103313e4e7f108516efc906, exception_lineno);
468     }
469  
470     // Attachs locals to frame if any.
471     Nuitka_Frame_AttachLocals(
472         (struct Nuitka_FrameObject *)frame_8c44937af103313e4e7f108516efc906,
473         type_description_1
474     );
475  
476  
477     // Release cached frame.
478     if (frame_8c44937af103313e4e7f108516efc906 == cache_frame_8c44937af103313e4e7f108516efc906) {
479         Py_DECREF(frame_8c44937af103313e4e7f108516efc906);
480     }
481     cache_frame_8c44937af103313e4e7f108516efc906 = NULL;
482  
483     assertFrameObject(frame_8c44937af103313e4e7f108516efc906);
484  
485     // Put the previous frame back on top.
486     popFrameStack();
487  
488     // Return the error.
489     goto function_exception_exit;
490  
491     frame_no_exception_1:;
492     tmp_return_value = Py_None;
493     Py_INCREF(tmp_return_value);
494     goto function_return_exit;
495  
496     // Return statement must have exited already.
497     NUITKA_CANNOT_GET_HERE(__main__$$$function_2_calledRepeatedly);
498     return NULL;
499  
500 function_exception_exit:
501     assert(exception_type);
502     RESTORE_ERROR_OCCURRED(exception_type, exception_value, exception_tb);
503  
504     return NULL;
505  
506 function_return_exit:
507    // Function cleanup code if any.
508  
509  
510    // Actual function exit with return value, making sure we did not make
511    // the error status worse despite non-NULL return.
512    CHECK_OBJECT(tmp_return_value);
513    assert(had_error || !ERROR_OCCURRED());
514    return tmp_return_value;
515 }
516  
517  
518 259
519 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy() { 260 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy() {
520     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 261     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
521         impl___main__$$$function_1_raisy, 262         impl___main__$$$function_1_raisy,
522         const_str_plain_raisy, 263         const_str_plain_raisy,
539 280
540 281
541 282
542 static PyObject *MAKE_FUNCTION___main__$$$function_2_calledRepeatedly() { 283 static PyObject *MAKE_FUNCTION___main__$$$function_2_calledRepeatedly() {
543     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 284     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
n 544         impl___main__$$$function_2_calledRepeatedly, n 285         NULL,
545         const_str_plain_calledRepeatedly, 286         const_str_plain_calledRepeatedly,
546 #if PYTHON_VERSION >= 300 287 #if PYTHON_VERSION >= 300
547         NULL, 288         NULL,
548 #endif 289 #endif
n 549         codeobj_8c44937af103313e4e7f108516efc906, n 290         codeobj_fbec0ba079ef4a98edf578fe7f1975fd,
550         NULL, 291         NULL,
551 #if PYTHON_VERSION >= 300 292 #if PYTHON_VERSION >= 300
552         NULL, 293         NULL,
553         NULL, 294         NULL,
554 #endif 295 #endif
1018 759
1019         if (tmp_mvar_value_2 == NULL) { 760         if (tmp_mvar_value_2 == NULL) {
1020 761
1021             exception_type = PyExc_NameError; 762             exception_type = PyExc_NameError;
1022             Py_INCREF(exception_type); 763             Py_INCREF(exception_type);
n 1023             exception_value = UNSTREAM_STRING(&constant_bin[ 54 ], 38, 0); n 764             exception_value = UNSTREAM_STRING(&constant_bin[ 27 ], 38, 0);
1024             exception_tb = NULL; 765             exception_tb = NULL;
1025             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb); 766             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
1026             CHAIN_EXCEPTION(exception_value); 767             CHAIN_EXCEPTION(exception_value);
1027 768
1028             exception_lineno = 43; 769             exception_lineno = 43;
1111             exception_value = UNSTREAM_STRING(&constant_bin[ 0 ], 27, 0); 852             exception_value = UNSTREAM_STRING(&constant_bin[ 0 ], 27, 0);
1112             exception_tb = NULL; 853             exception_tb = NULL;
1113             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb); 854             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
1114             CHAIN_EXCEPTION(exception_value); 855             CHAIN_EXCEPTION(exception_value);
1115 856
n 1116             exception_lineno = 46; n 857             exception_lineno = 48;
1117 858
1118             goto frame_exception_exit_1; 859             goto frame_exception_exit_1;
1119         } 860         }
1120 861
1121         tmp_compexpr_left_1 = tmp_mvar_value_3; 862         tmp_compexpr_left_1 = tmp_mvar_value_3;
n 1122         tmp_compexpr_right_1 = const_int_pos_50000; n 863         tmp_compexpr_right_1 = const_int_0;
1123         tmp_operand_name_1 = RICH_COMPARE_EQ_OBJECT_OBJECT_NORECURSE(tmp_compexpr_left_1, tmp_compexpr_right_1); 864         tmp_operand_name_1 = RICH_COMPARE_EQ_OBJECT_OBJECT_NORECURSE(tmp_compexpr_left_1, tmp_compexpr_right_1);
1124         if (tmp_operand_name_1 == NULL) { 865         if (tmp_operand_name_1 == NULL) {
1125             assert(ERROR_OCCURRED()); 866             assert(ERROR_OCCURRED());
1126 867
1127             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 868             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1128 869
1129 870
n 1130             exception_lineno = 46; n 871             exception_lineno = 48;
1131 872
1132             goto frame_exception_exit_1; 873             goto frame_exception_exit_1;
1133         } 874         }
1134         tmp_res = CHECK_IF_TRUE(tmp_operand_name_1); 875         tmp_res = CHECK_IF_TRUE(tmp_operand_name_1);
1135         Py_DECREF(tmp_operand_name_1); 876         Py_DECREF(tmp_operand_name_1);
1137             assert(ERROR_OCCURRED()); 878             assert(ERROR_OCCURRED());
1138 879
1139             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 880             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1140 881
1141 882
n 1142             exception_lineno = 46; n 883             exception_lineno = 48;
1143 884
1144             goto frame_exception_exit_1; 885             goto frame_exception_exit_1;
1145         } 886         }
1146         tmp_condition_result_1 = (tmp_res == 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE; 887         tmp_condition_result_1 = (tmp_res == 0) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
1147         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE) { 888         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE) {
1153         { 894         {
1154             PyObject *tmp_raise_type_1; 895             PyObject *tmp_raise_type_1;
1155             tmp_raise_type_1 = PyExc_AssertionError; 896             tmp_raise_type_1 = PyExc_AssertionError;
1156             exception_type = tmp_raise_type_1; 897             exception_type = tmp_raise_type_1;
1157             Py_INCREF(tmp_raise_type_1); 898             Py_INCREF(tmp_raise_type_1);
t 1158             exception_lineno = 46; t 899             exception_lineno = 48;
1159             RAISE_EXCEPTION_WITH_TYPE(&exception_type, &exception_value, &exception_tb); 900             RAISE_EXCEPTION_WITH_TYPE(&exception_type, &exception_value, &exception_tb);
1160 901
1161             goto frame_exception_exit_1; 902             goto frame_exception_exit_1;
1162         } 903         }
1163         branch_no_1:; 904         branch_no_1:;