Construct FunctionRaise

Performance Diagrams

Construct FunctionRaise 00100000000100000000200000000200000000300000000300000000400000000400000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)44709792188.11538461538461257.0CPython 2.7166997115240.03846153846155411.8144492619308Nuitka (master)166796346391.96153846153845411.9254162477376Nuitka (develop)166797949543.8846153846154411.9245302539923Nuitka (factory)Construct FunctionRaiseTicks Construct FunctionRaise 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)18394632288.11538461538461257.0CPython 3.5102127853240.03846153846155366.91577442672065Nuitka (master)101928782391.96153846153845367.18320845962717Nuitka (develop)101928694543.8846153846154367.183326679734Nuitka (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_digest_f65e80ebeec5db6f2a74afffc34f430d = UNSTREAM_STRING_ASCII( &constant_bin[ 104 ], 38, 0 ); 71     const_str_digest_f65e80ebeec5db6f2a74afffc34f430d = UNSTREAM_STRING_ASCII( &constant_bin[ 82 ], 38, 0 );
72     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 142 ], 8, 0 ); 72     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 120 ], 8, 0 );
73     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 150 ], 4, 1 ); 73     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 128 ], 4, 1 );
74     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 154 ], 1, 1 ); 74     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 132 ], 1, 1 );
75     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 155 ], 6, 1 ); 75     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 133 ], 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[ 161 ], 14, 1 ); n 79     const_str_plain_print_function = UNSTREAM_STRING_ASCII( &constant_bin[ 139 ], 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_5309ca1962b62ddf94f8c751d16fad88; 96 static PyCodeObject *codeobj_5309ca1962b62ddf94f8c751d16fad88;
n 97 static PyCodeObject *codeobj_b668bed8b5507137cc7a49a1ef1e3552; n 97 static PyCodeObject *codeobj_c28ad0ed8e87144e371aab18be742b96;
98 static PyCodeObject *codeobj_837fa247d8d034ec0db25afa336e7f9b; 98 static PyCodeObject *codeobj_837fa247d8d034ec0db25afa336e7f9b;
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_f65e80ebeec5db6f2a74afffc34f430d; 104     module_filename_obj = const_str_digest_f65e80ebeec5db6f2a74afffc34f430d;
105     codeobj_5309ca1962b62ddf94f8c751d16fad88 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE ); 105     codeobj_5309ca1962b62ddf94f8c751d16fad88 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE );
n 106     codeobj_b668bed8b5507137cc7a49a1ef1e3552 = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 31, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); n 106     codeobj_c28ad0ed8e87144e371aab18be742b96 = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 31, const_tuple_empty, 0, 0, CO_NOFREE );
107     codeobj_837fa247d8d034ec0db25afa336e7f9b = MAKE_CODEOBJ( module_filename_obj, const_str_plain_raisy, 25, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); 107     codeobj_837fa247d8d034ec0db25afa336e7f9b = 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(  );
257     return NULL; 257     return NULL;
258 258
259 } 259 }
260 260
261 261
n 262 static PyObject *impl___main__$$$function_2_calledRepeatedly( struct Nuitka_FunctionObject const *self, PyObject **python_pars ) n
263 {
264     // Preserve error status for checks
265 #ifndef __NUITKA_NO_ASSERT__
266     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
267 #endif
268  
269     // Local variable declarations.
270     struct Nuitka_FrameObject *frame_b668bed8b5507137cc7a49a1ef1e3552;
271     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
272     PyObject *exception_type = NULL;
273     PyObject *exception_value = NULL;
274     PyTracebackObject *exception_tb = NULL;
275     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
276     PyObject *exception_keeper_type_1;
277     PyObject *exception_keeper_value_1;
278     PyTracebackObject *exception_keeper_tb_1;
279     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
280     PyObject *exception_preserved_type_1;
281     PyObject *exception_preserved_value_1;
282     PyTracebackObject *exception_preserved_tb_1;
283     int tmp_res;
284     bool tmp_result;
285     PyObject *exception_keeper_type_2;
286     PyObject *exception_keeper_value_2;
287     PyTracebackObject *exception_keeper_tb_2;
288     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
289     static struct Nuitka_FrameObject *cache_frame_b668bed8b5507137cc7a49a1ef1e3552 = NULL;
290     PyObject *tmp_return_value = NULL;
291  
292     // Actual function body.
293     MAKE_OR_REUSE_FRAME(cache_frame_b668bed8b5507137cc7a49a1ef1e3552, codeobj_b668bed8b5507137cc7a49a1ef1e3552, module___main__, 0);
294     frame_b668bed8b5507137cc7a49a1ef1e3552 = cache_frame_b668bed8b5507137cc7a49a1ef1e3552;
295  
296     // Push the new frame as the currently active one.
297     pushFrameStack(frame_b668bed8b5507137cc7a49a1ef1e3552);
298  
299     // Mark the frame object as in use, ref count 1 will be up for reuse.
300     assert(Py_REFCNT(frame_b668bed8b5507137cc7a49a1ef1e3552) == 2); // Frame stack
301  
302     // Framed code:
303     // Tried code:
304     {
305         PyObject *tmp_called_name_1;
306         PyObject *tmp_mvar_value_1;
307         PyObject *tmp_call_result_1;
308         tmp_mvar_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_raisy);
309  
310         if (unlikely( tmp_mvar_value_1 == NULL )) {
311             tmp_mvar_value_1 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_raisy);
312         }
313  
314         if ( tmp_mvar_value_1 == NULL )
315         {
316  
317             exception_type = PyExc_NameError;
318             Py_INCREF(exception_type);
319             exception_value = UNSTREAM_STRING( &constant_bin[ 27 ], 27, 0 );
320             exception_tb = NULL;
321             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
322             CHAIN_EXCEPTION( exception_value );
323  
324             exception_lineno = 34;
325  
326             goto try_except_handler_1;
327         }
328  
329         tmp_called_name_1 = tmp_mvar_value_1;
330         frame_b668bed8b5507137cc7a49a1ef1e3552->m_frame.f_lineno = 34;
331         tmp_call_result_1 = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 );
332         if ( tmp_call_result_1 == NULL )
333         {
334             assert(ERROR_OCCURRED());
335  
336             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
337  
338  
339             exception_lineno = 34;
340  
341             goto try_except_handler_1;
342         }
343         Py_DECREF(tmp_call_result_1);
344     }
345     goto try_end_1;
346     // Exception handler code:
347     try_except_handler_1:;
348     exception_keeper_type_1 = exception_type;
349     exception_keeper_value_1 = exception_value;
350     exception_keeper_tb_1 = exception_tb;
351     exception_keeper_lineno_1 = exception_lineno;
352     exception_type = NULL;
353     exception_value = NULL;
354     exception_tb = NULL;
355     exception_lineno = 0;
356  
357     // Preserve existing published exception.
358     exception_preserved_type_1 = EXC_TYPE(PyThreadState_GET());
359     Py_XINCREF(exception_preserved_type_1);
360     exception_preserved_value_1 = EXC_VALUE(PyThreadState_GET());
361     Py_XINCREF(exception_preserved_value_1);
362     exception_preserved_tb_1 = (PyTracebackObject *)EXC_TRACEBACK(PyThreadState_GET());
363     Py_XINCREF(exception_preserved_tb_1);
364  
365     if ( exception_keeper_tb_1 == NULL ) {
366         exception_keeper_tb_1 = MAKE_TRACEBACK( frame_b668bed8b5507137cc7a49a1ef1e3552, exception_keeper_lineno_1 );
367     }
368     else if ( exception_keeper_lineno_1 != 0 ) {
369         exception_keeper_tb_1 = ADD_TRACEBACK(exception_keeper_tb_1, frame_b668bed8b5507137cc7a49a1ef1e3552, exception_keeper_lineno_1);
370     }
371  
372     NORMALIZE_EXCEPTION( &exception_keeper_type_1, &exception_keeper_value_1, &exception_keeper_tb_1 );
373     PyException_SetTraceback( exception_keeper_value_1, (PyObject *)exception_keeper_tb_1 );
374     PUBLISH_EXCEPTION( &exception_keeper_type_1, &exception_keeper_value_1, &exception_keeper_tb_1 );
375     // Tried code:
376     {
377         nuitka_bool tmp_condition_result_1;
378         PyObject *tmp_operand_name_1;
379         PyObject *tmp_compexpr_left_1;
380         PyObject *tmp_compexpr_right_1;
381         tmp_compexpr_left_1 = EXC_TYPE(PyThreadState_GET());
382         tmp_compexpr_right_1 = PyExc_TypeError;
383         tmp_res = EXCEPTION_MATCH_BOOL( tmp_compexpr_left_1, tmp_compexpr_right_1 );
384         if ( tmp_res == -1 )
385         {
386             assert(ERROR_OCCURRED());
387  
388             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
389  
390  
391             exception_lineno = 35;
392  
393             goto try_except_handler_2;
394         }
395         tmp_operand_name_1 = ( tmp_res != 0 ) ? Py_True : Py_False;
396         tmp_res = CHECK_IF_TRUE( tmp_operand_name_1 );
397         if ( tmp_res == -1 )
398         {
399             assert(ERROR_OCCURRED());
400  
401             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
402  
403  
404             exception_lineno = 35;
405  
406             goto try_except_handler_2;
407         }
408         tmp_condition_result_1 = ( tmp_res == 0 ) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
409         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE)
410         {
411             goto branch_yes_1;
412         } else {
413             goto branch_no_1;
414         }
415         branch_yes_1:;
416         tmp_result = RERAISE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
417         if (unlikely( tmp_result == false ))
418         {
419             exception_lineno = 33;
420         }
421  
422         if (exception_tb && exception_tb->tb_frame == &frame_b668bed8b5507137cc7a49a1ef1e3552->m_frame) frame_b668bed8b5507137cc7a49a1ef1e3552->m_frame.f_lineno = exception_tb->tb_lineno;
423  
424         goto try_except_handler_2;
425         branch_no_1:;
426     }
427     goto try_end_2;
428     // Exception handler code:
429     try_except_handler_2:;
430     exception_keeper_type_2 = exception_type;
431     exception_keeper_value_2 = exception_value;
432     exception_keeper_tb_2 = exception_tb;
433     exception_keeper_lineno_2 = exception_lineno;
434     exception_type = NULL;
435     exception_value = NULL;
436     exception_tb = NULL;
437     exception_lineno = 0;
438  
439     // Restore previous exception.
440     SET_CURRENT_EXCEPTION( exception_preserved_type_1, exception_preserved_value_1, exception_preserved_tb_1 );
441     // Re-raise.
442     exception_type = exception_keeper_type_2;
443     exception_value = exception_keeper_value_2;
444     exception_tb = exception_keeper_tb_2;
445     exception_lineno = exception_keeper_lineno_2;
446  
447     goto frame_exception_exit_1;
448     // End of try:
449     try_end_2:;
450     // Restore previous exception.
451     SET_CURRENT_EXCEPTION( exception_preserved_type_1, exception_preserved_value_1, exception_preserved_tb_1 );
452     goto try_end_1;
453     // exception handler codes exits in all cases
454     NUITKA_CANNOT_GET_HERE(__main__$$$function_2_calledRepeatedly);
455     return NULL;
456     // End of try:
457     try_end_1:;
458  
459 #if 0
460     RESTORE_FRAME_EXCEPTION(frame_b668bed8b5507137cc7a49a1ef1e3552);
461 #endif
462  
463     // Put the previous frame back on top.
464     popFrameStack();
465  
466     goto frame_no_exception_1;
467  
468     frame_exception_exit_1:;
469  
470 #if 0
471     RESTORE_FRAME_EXCEPTION(frame_b668bed8b5507137cc7a49a1ef1e3552);
472 #endif
473  
474     if (exception_tb == NULL) {
475         exception_tb = MAKE_TRACEBACK( frame_b668bed8b5507137cc7a49a1ef1e3552, exception_lineno );
476     }
477     else if (exception_tb->tb_frame != &frame_b668bed8b5507137cc7a49a1ef1e3552->m_frame) {
478         exception_tb = ADD_TRACEBACK(exception_tb, frame_b668bed8b5507137cc7a49a1ef1e3552, exception_lineno);
479     }
480  
481     // Attachs locals to frame if any.
482     Nuitka_Frame_AttachLocals(
483         (struct Nuitka_FrameObject *)frame_b668bed8b5507137cc7a49a1ef1e3552,
484         type_description_1
485     );
486  
487  
488     // Release cached frame.
489     if (frame_b668bed8b5507137cc7a49a1ef1e3552 == cache_frame_b668bed8b5507137cc7a49a1ef1e3552) {
490         Py_DECREF(frame_b668bed8b5507137cc7a49a1ef1e3552);
491     }
492     cache_frame_b668bed8b5507137cc7a49a1ef1e3552 = NULL;
493  
494     assertFrameObject(frame_b668bed8b5507137cc7a49a1ef1e3552);
495  
496     // Put the previous frame back on top.
497     popFrameStack();
498  
499     // Return the error.
500     goto function_exception_exit;
501  
502     frame_no_exception_1:;
503     tmp_return_value = Py_None;
504     Py_INCREF(tmp_return_value);
505     goto function_return_exit;
506  
507     // Return statement must have exited already.
508     NUITKA_CANNOT_GET_HERE(__main__$$$function_2_calledRepeatedly);
509     return NULL;
510  
511 function_exception_exit:
512     assert(exception_type);
513     RESTORE_ERROR_OCCURRED(exception_type, exception_value, exception_tb);
514  
515     return NULL;
516  
517 function_return_exit:
518    // Function cleanup code if any.
519  
520  
521    // Actual function exit with return value, making sure we did not make
522    // the error status worse despite non-NULL return.
523    CHECK_OBJECT(tmp_return_value);
524    assert(had_error || !ERROR_OCCURRED());
525    return tmp_return_value;
526 }
527  
528  
529 262
530 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy(  ) 263 static PyObject *MAKE_FUNCTION___main__$$$function_1_raisy(  )
531 { 264 {
532     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 265     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
533         impl___main__$$$function_1_raisy, 266         impl___main__$$$function_1_raisy,
552 285
553 286
554 static PyObject *MAKE_FUNCTION___main__$$$function_2_calledRepeatedly(  ) 287 static PyObject *MAKE_FUNCTION___main__$$$function_2_calledRepeatedly(  )
555 { 288 {
556     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 289     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
n 557         impl___main__$$$function_2_calledRepeatedly, n 290         NULL,
558         const_str_plain_calledRepeatedly, 291         const_str_plain_calledRepeatedly,
559 #if PYTHON_VERSION >= 300 292 #if PYTHON_VERSION >= 300
560         NULL, 293         NULL,
561 #endif 294 #endif
n 562         codeobj_b668bed8b5507137cc7a49a1ef1e3552, n 295         codeobj_c28ad0ed8e87144e371aab18be742b96,
563         NULL, 296         NULL,
564 #if PYTHON_VERSION >= 300 297 #if PYTHON_VERSION >= 300
565         NULL, 298         NULL,
566         NULL, 299         NULL,
567 #endif 300 #endif
1035         if ( tmp_mvar_value_2 == NULL ) 768         if ( tmp_mvar_value_2 == NULL )
1036         { 769         {
1037 770
1038             exception_type = PyExc_NameError; 771             exception_type = PyExc_NameError;
1039             Py_INCREF(exception_type); 772             Py_INCREF(exception_type);
n 1040             exception_value = UNSTREAM_STRING( &constant_bin[ 54 ], 38, 0 ); n 773             exception_value = UNSTREAM_STRING( &constant_bin[ 27 ], 38, 0 );
1041             exception_tb = NULL; 774             exception_tb = NULL;
1042             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 775             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1043             CHAIN_EXCEPTION( exception_value ); 776             CHAIN_EXCEPTION( exception_value );
1044 777
1045             exception_lineno = 43; 778             exception_lineno = 43;
1131             exception_value = UNSTREAM_STRING( &constant_bin[ 0 ], 27, 0 ); 864             exception_value = UNSTREAM_STRING( &constant_bin[ 0 ], 27, 0 );
1132             exception_tb = NULL; 865             exception_tb = NULL;
1133             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 866             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1134             CHAIN_EXCEPTION( exception_value ); 867             CHAIN_EXCEPTION( exception_value );
1135 868
n 1136             exception_lineno = 46; n 869             exception_lineno = 48;
1137 870
1138             goto frame_exception_exit_1; 871             goto frame_exception_exit_1;
1139         } 872         }
1140 873
1141         tmp_compexpr_left_1 = tmp_mvar_value_3; 874         tmp_compexpr_left_1 = tmp_mvar_value_3;
n 1142         tmp_compexpr_right_1 = const_int_pos_50000; n 875         tmp_compexpr_right_1 = const_int_0;
1143         tmp_operand_name_1 = RICH_COMPARE_EQ_OBJECT_OBJECT_NORECURSE( tmp_compexpr_left_1, tmp_compexpr_right_1 ); 876         tmp_operand_name_1 = RICH_COMPARE_EQ_OBJECT_OBJECT_NORECURSE( tmp_compexpr_left_1, tmp_compexpr_right_1 );
1144         if ( tmp_operand_name_1 == NULL ) 877         if ( tmp_operand_name_1 == NULL )
1145         { 878         {
1146             assert(ERROR_OCCURRED()); 879             assert(ERROR_OCCURRED());
1147 880
1148             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 881             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1149 882
1150 883
n 1151             exception_lineno = 46; n 884             exception_lineno = 48;
1152 885
1153             goto frame_exception_exit_1; 886             goto frame_exception_exit_1;
1154         } 887         }
1155         tmp_res = CHECK_IF_TRUE( tmp_operand_name_1 ); 888         tmp_res = CHECK_IF_TRUE( tmp_operand_name_1 );
1156         Py_DECREF(tmp_operand_name_1); 889         Py_DECREF(tmp_operand_name_1);
1159             assert(ERROR_OCCURRED()); 892             assert(ERROR_OCCURRED());
1160 893
1161             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 894             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1162 895
1163 896
n 1164             exception_lineno = 46; n 897             exception_lineno = 48;
1165 898
1166             goto frame_exception_exit_1; 899             goto frame_exception_exit_1;
1167         } 900         }
1168         tmp_condition_result_1 = ( tmp_res == 0 ) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE; 901         tmp_condition_result_1 = ( tmp_res == 0 ) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
1169         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE) 902         if (tmp_condition_result_1 == NUITKA_BOOL_TRUE)
1176         { 909         {
1177             PyObject *tmp_raise_type_1; 910             PyObject *tmp_raise_type_1;
1178             tmp_raise_type_1 = PyExc_AssertionError; 911             tmp_raise_type_1 = PyExc_AssertionError;
1179             exception_type = tmp_raise_type_1; 912             exception_type = tmp_raise_type_1;
1180             Py_INCREF(tmp_raise_type_1); 913             Py_INCREF(tmp_raise_type_1);
t 1181             exception_lineno = 46; t 914             exception_lineno = 48;
1182             RAISE_EXCEPTION_WITH_TYPE( &exception_type, &exception_value, &exception_tb ); 915             RAISE_EXCEPTION_WITH_TYPE( &exception_type, &exception_value, &exception_tb );
1183 916
1184             goto frame_exception_exit_1; 917             goto frame_exception_exit_1;
1185         } 918         }
1186         branch_no_1:; 919         branch_no_1:;