Construct LoopSmallXrange

Performance Diagrams

Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)10502850288.11538461538461257.0CPython 2.730631263240.03846153846155432.0448876230539Nuitka (master)30631431391.96153846153845432.04449234573565Nuitka (develop)30631311543.8846153846154432.0447746866773Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000130000000130000000140000000140000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)14028548588.11538461538461257.0CPython 3.588977464240.03846153846155347.3799943612786Nuitka (master)88983182391.96153846153845347.3699220022656Nuitka (develop)88996913543.8846153846154347.34573460079525Nuitka (factory)Construct LoopSmallXrangeTicks

Source Code with Construct

module_value1 = 5
module_value2 = 3

def calledRepeatedly():
    # Force frame and eliminate forward propagation (currently).
    module_value1

    # Make sure we have a local variable x anyway
    x = 2

    local_value = module_value1

# construct_begin
    for x in xrange(local_value, local_value+3):
        pass
# construct_end

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

print("OK.")

Source Code without Construct

module_value1 = 5
module_value2 = 3

def calledRepeatedly():
    # Force frame and eliminate forward propagation (currently).
    module_value1

    # Make sure we have a local variable x anyway
    x = 2

    local_value = module_value1

# construct_begin




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

print("OK.")

Context Diff of Source Code


Construct
Baseline
29     x = 2 29     x = 2
30 30
31     local_value = module_value1 31     local_value = module_value1
32 32
33 # construct_begin 33 # construct_begin
t 34     for x in xrange(local_value, local_value+3): t 34  
35         pass 35  
36 # construct_end 36  
37 37
38 import itertools 38 import itertools
39 for x in itertools.repeat(None, 50000): 39 for x in itertools.repeat(None, 50000):
40     calledRepeatedly() 40     calledRepeatedly()
41 41

Context Diff of Generated Code


Construct
Baseline
39 static PyObject *const_int_pos_3; 39 static PyObject *const_int_pos_3;
40 static PyObject *const_int_pos_50000; 40 static PyObject *const_int_pos_50000;
41 static PyObject *const_str_plain_local_value; 41 static PyObject *const_str_plain_local_value;
42 static PyObject *const_str_plain_module_value2; 42 static PyObject *const_str_plain_module_value2;
43 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple; 43 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple;
n 44 static PyObject *const_str_digest_2d9d5471b59167328c59e25f85fb68fb; n
45 static PyObject *const_str_plain_module_value1; 44 static PyObject *const_str_plain_module_value1;
46 static PyObject *const_str_plain_calledRepeatedly; 45 static PyObject *const_str_plain_calledRepeatedly;
47 static PyObject *const_str_angle_module; 46 static PyObject *const_str_angle_module;
48 static PyObject *const_str_plain_None; 47 static PyObject *const_str_plain_None;
49 static PyObject *const_str_plain_x; 48 static PyObject *const_str_plain_x;
50 extern PyObject *const_tuple_empty; 49 extern PyObject *const_tuple_empty;
51 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352; 50 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352;
52 static PyObject *const_int_pos_5; 51 static PyObject *const_int_pos_5;
53 static PyObject *const_str_plain_repeat; 52 static PyObject *const_str_plain_repeat;
n 54 static PyObject *const_int_pos_2; n
55 static PyObject *const_tuple_none_int_pos_50000_tuple; 53 static PyObject *const_tuple_none_int_pos_50000_tuple;
56 static PyObject *const_tuple_str_plain_x_str_plain_local_value_tuple; 54 static PyObject *const_tuple_str_plain_x_str_plain_local_value_tuple;
57 extern PyObject *const_str_plain___main__; 55 extern PyObject *const_str_plain___main__;
58 extern PyObject *const_str_plain___doc__; 56 extern PyObject *const_str_plain___doc__;
59 extern PyObject *const_str_plain___cached__; 57 extern PyObject *const_str_plain___cached__;
72     const_str_plain_local_value = UNSTREAM_STRING_ASCII( &constant_bin[ 75 ], 11, 1 ); 70     const_str_plain_local_value = UNSTREAM_STRING_ASCII( &constant_bin[ 75 ], 11, 1 );
73     const_str_plain_module_value2 = UNSTREAM_STRING_ASCII( &constant_bin[ 86 ], 13, 1 ); 71     const_str_plain_module_value2 = UNSTREAM_STRING_ASCII( &constant_bin[ 86 ], 13, 1 );
74     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 72     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
75     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 99 ], 3, 0 ); 73     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 99 ], 3, 0 );
76     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 74     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 77     const_str_digest_2d9d5471b59167328c59e25f85fb68fb = UNSTREAM_STRING_ASCII( &constant_bin[ 102 ], 49, 0 ); n
78     const_str_plain_module_value1 = UNSTREAM_STRING_ASCII( &constant_bin[ 151 ], 13, 1 ); 75     const_str_plain_module_value1 = UNSTREAM_STRING_ASCII( &constant_bin[ 102 ], 13, 1 );
79     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 164 ], 16, 1 ); 76     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 115 ], 16, 1 );
80     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 180 ], 8, 0 ); 77     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 131 ], 8, 0 );
81     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 188 ], 4, 1 ); 78     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 139 ], 4, 1 );
82     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 34 ], 1, 1 ); 79     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 34 ], 1, 1 );
83     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul ); 80     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul );
n 84     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 192 ], 6, 1 ); n 81     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 143 ], 6, 1 );
85     const_int_pos_2 = PyLong_FromUnsignedLong( 2ul );
86     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 82     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
87     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 83     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
88     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 84     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
89     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 ); 85     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 );
90     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x ); 86     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x );
104 } 100 }
105 #endif 101 #endif
106 102
107 // The module code objects. 103 // The module code objects.
108 static PyCodeObject *codeobj_85b0b9f67b9c07027746c86f443642b2; 104 static PyCodeObject *codeobj_85b0b9f67b9c07027746c86f443642b2;
n 109 static PyCodeObject *codeobj_e9a3eaae1e96e2588c43d30ecb528d0f; n 105 static PyCodeObject *codeobj_53a1df9d2d30818628064afd6f94e5d5;
110 /* For use in "MainProgram.c". */ 106 /* For use in "MainProgram.c". */
111 PyCodeObject *codeobj_main = NULL; 107 PyCodeObject *codeobj_main = NULL;
112 108
113 static void createModuleCodeObjects(void) 109 static void createModuleCodeObjects(void)
114 { 110 {
115     module_filename_obj = const_str_digest_67fb42a997b156a92a6a3da17e7be1a6; 111     module_filename_obj = const_str_digest_67fb42a997b156a92a6a3da17e7be1a6;
116     codeobj_85b0b9f67b9c07027746c86f443642b2 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE ); 112     codeobj_85b0b9f67b9c07027746c86f443642b2 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE );
117     codeobj_main = codeobj_85b0b9f67b9c07027746c86f443642b2; 113     codeobj_main = codeobj_85b0b9f67b9c07027746c86f443642b2;
n 118     codeobj_e9a3eaae1e96e2588c43d30ecb528d0f = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 25, const_tuple_str_plain_x_str_plain_local_value_tuple, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); n 114     codeobj_53a1df9d2d30818628064afd6f94e5d5 = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 24, const_tuple_str_plain_x_str_plain_local_value_tuple, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE );
119 } 115 }
120 116
121 // The module function declarations. 117 // The module function declarations.
122 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); 118 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
123 119
129 #ifndef __NUITKA_NO_ASSERT__ 125 #ifndef __NUITKA_NO_ASSERT__
130     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 126     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
131 #endif 127 #endif
132 128
133     // Local variable declarations. 129     // Local variable declarations.
n 134     PyObject *var_x = NULL; n
135     PyObject *var_local_value = NULL; 130     PyObject *var_local_value = NULL;
n 136     PyObject *tmp_for_loop_1__for_iterator = NULL; n 131     struct Nuitka_FrameObject *frame_53a1df9d2d30818628064afd6f94e5d5;
137     PyObject *tmp_for_loop_1__iter_value = NULL;
138     struct Nuitka_FrameObject *frame_e9a3eaae1e96e2588c43d30ecb528d0f;
139     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 132     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
140     PyObject *exception_type = NULL; 133     PyObject *exception_type = NULL;
141     PyObject *exception_value = NULL; 134     PyObject *exception_value = NULL;
142     PyTracebackObject *exception_tb = NULL; 135     PyTracebackObject *exception_tb = NULL;
143     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 136     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n n 137     static struct Nuitka_FrameObject *cache_frame_53a1df9d2d30818628064afd6f94e5d5 = NULL;
138     PyObject *tmp_return_value = NULL;
144     PyObject *exception_keeper_type_1; 139     PyObject *exception_keeper_type_1;
145     PyObject *exception_keeper_value_1; 140     PyObject *exception_keeper_value_1;
146     PyTracebackObject *exception_keeper_tb_1; 141     PyTracebackObject *exception_keeper_tb_1;
147     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 142     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 148     static struct Nuitka_FrameObject *cache_frame_e9a3eaae1e96e2588c43d30ecb528d0f = NULL; n
149     PyObject *tmp_return_value = NULL;
150     PyObject *exception_keeper_type_2;
151     PyObject *exception_keeper_value_2;
152     PyTracebackObject *exception_keeper_tb_2;
153     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
154 143
155     // Actual function body. 144     // Actual function body.
156     // Tried code: 145     // Tried code:
n 157     MAKE_OR_REUSE_FRAME( cache_frame_e9a3eaae1e96e2588c43d30ecb528d0f, codeobj_e9a3eaae1e96e2588c43d30ecb528d0f, module___main__, sizeof(void *)+sizeof(void *) ); n 146     MAKE_OR_REUSE_FRAME( cache_frame_53a1df9d2d30818628064afd6f94e5d5, codeobj_53a1df9d2d30818628064afd6f94e5d5, module___main__, sizeof(void *)+sizeof(void *) );
158     frame_e9a3eaae1e96e2588c43d30ecb528d0f = cache_frame_e9a3eaae1e96e2588c43d30ecb528d0f; 147     frame_53a1df9d2d30818628064afd6f94e5d5 = cache_frame_53a1df9d2d30818628064afd6f94e5d5;
159 148
160     // Push the new frame as the currently active one. 149     // Push the new frame as the currently active one.
n 161     pushFrameStack( frame_e9a3eaae1e96e2588c43d30ecb528d0f ); n 150     pushFrameStack( frame_53a1df9d2d30818628064afd6f94e5d5 );
162 151
163     // Mark the frame object as in use, ref count 1 will be up for reuse. 152     // Mark the frame object as in use, ref count 1 will be up for reuse.
n 164     assert( Py_REFCNT( frame_e9a3eaae1e96e2588c43d30ecb528d0f ) == 2 ); // Frame stack n 153     assert( Py_REFCNT( frame_53a1df9d2d30818628064afd6f94e5d5 ) == 2 ); // Frame stack
165 154
166     // Framed code: 155     // Framed code:
167     { 156     {
168         PyObject *tmp_mvar_value_1; 157         PyObject *tmp_mvar_value_1;
169         tmp_mvar_value_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 158         tmp_mvar_value_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
181             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 170             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
182             exception_tb = NULL; 171             exception_tb = NULL;
183             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 172             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
184             CHAIN_EXCEPTION( exception_value ); 173             CHAIN_EXCEPTION( exception_value );
185 174
n 186             exception_lineno = 27; n 175             exception_lineno = 26;
187             type_description_1 = "oo"; 176             type_description_1 = "No";
188             goto frame_exception_exit_1; 177             goto frame_exception_exit_1;
189         } 178         }
190 179
191     } 180     }
192     { 181     {
193         PyObject *tmp_assign_source_1; 182         PyObject *tmp_assign_source_1;
n 194         tmp_assign_source_1 = const_int_pos_2; n
195         assert( var_x == NULL );
196         Py_INCREF( tmp_assign_source_1 );
197         var_x = tmp_assign_source_1;
198     }
199     {
200         PyObject *tmp_assign_source_2;
201         PyObject *tmp_mvar_value_2; 183         PyObject *tmp_mvar_value_2;
202         tmp_mvar_value_2 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 184         tmp_mvar_value_2 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
203 185
204         if (unlikely( tmp_mvar_value_2 == NULL )) 186         if (unlikely( tmp_mvar_value_2 == NULL ))
205         { 187         {
214             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 196             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
215             exception_tb = NULL; 197             exception_tb = NULL;
216             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 198             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
217             CHAIN_EXCEPTION( exception_value ); 199             CHAIN_EXCEPTION( exception_value );
218 200
n 219             exception_lineno = 32; n 201             exception_lineno = 31;
220             type_description_1 = "oo"; 202             type_description_1 = "No";
221             goto frame_exception_exit_1; 203             goto frame_exception_exit_1;
222         } 204         }
223 205
n 224         tmp_assign_source_2 = tmp_mvar_value_2; n 206         tmp_assign_source_1 = tmp_mvar_value_2;
225         assert( var_local_value == NULL ); 207         assert( var_local_value == NULL );
n 226         Py_INCREF( tmp_assign_source_2 ); n 208         Py_INCREF( tmp_assign_source_1 );
227         var_local_value = tmp_assign_source_2; 209         var_local_value = tmp_assign_source_1;
228     }
229     { 210     }
230         PyObject *tmp_assign_source_3;
231         PyObject *tmp_iter_arg_1;
232         PyObject *tmp_xrange_low_1;
233         PyObject *tmp_xrange_high_1;
234         PyObject *tmp_left_name_1;
235         PyObject *tmp_right_name_1;
236         CHECK_OBJECT( var_local_value );
237         tmp_xrange_low_1 = var_local_value;
238         CHECK_OBJECT( var_local_value );
239         tmp_left_name_1 = var_local_value;
240         tmp_right_name_1 = const_int_pos_3;
241         tmp_xrange_high_1 = BINARY_OPERATION_ADD_OBJECT_LONG( tmp_left_name_1, tmp_right_name_1 );
242         if ( tmp_xrange_high_1 == NULL )
243         {
244             assert( ERROR_OCCURRED() );
245 211
n 246             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 212 #if 0
213     RESTORE_FRAME_EXCEPTION( frame_53a1df9d2d30818628064afd6f94e5d5 );
214 #endif
247 215
n n 216     // Put the previous frame back on top.
217     popFrameStack();
248 218
n 249             exception_lineno = 35; n 219     goto frame_no_exception_1;
250             type_description_1 = "oo"; 220  
251             goto frame_exception_exit_1; 221     frame_exception_exit_1:;
252         }
253         tmp_iter_arg_1 = BUILTIN_XRANGE2( tmp_xrange_low_1, tmp_xrange_high_1 );
254         Py_DECREF( tmp_xrange_high_1 );
255         if ( tmp_iter_arg_1 == NULL )
256         {
257             assert( ERROR_OCCURRED() );
258 222
n 259             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 223 #if 0
224     RESTORE_FRAME_EXCEPTION( frame_53a1df9d2d30818628064afd6f94e5d5 );
225 #endif
260 226
n 261   n 227     if ( exception_tb == NULL )
262             exception_lineno = 35;
263             type_description_1 = "oo";
264             goto frame_exception_exit_1;
265         }
266         tmp_assign_source_3 = MAKE_ITERATOR( tmp_iter_arg_1 );
267         Py_DECREF( tmp_iter_arg_1 );
268         if ( tmp_assign_source_3 == NULL )
269         {
270             assert( ERROR_OCCURRED() );
271  
272             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
273  
274  
275             exception_lineno = 35;
276             type_description_1 = "oo";
277             goto frame_exception_exit_1;
278         }
279         assert( tmp_for_loop_1__for_iterator == NULL );
280         tmp_for_loop_1__for_iterator = tmp_assign_source_3;
281     } 228     {
282     // Tried code: 229         exception_tb = MAKE_TRACEBACK( frame_53a1df9d2d30818628064afd6f94e5d5, exception_lineno );
283     loop_start_1:;
284     { 230     }
285         PyObject *tmp_next_source_1; 231     else if ( exception_tb->tb_frame != &frame_53a1df9d2d30818628064afd6f94e5d5->m_frame )
286         PyObject *tmp_assign_source_4;
287         CHECK_OBJECT( tmp_for_loop_1__for_iterator );
288         tmp_next_source_1 = tmp_for_loop_1__for_iterator;
289         tmp_assign_source_4 = ITERATOR_NEXT( tmp_next_source_1 );
290         if ( tmp_assign_source_4 == NULL )
291         {
292             if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() )
293             {
294  
295                 goto loop_end_1;
296             }
297             else
298             {
299  
300                 FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
301                 type_description_1 = "oo";
302                 exception_lineno = 35;
303                 goto try_except_handler_2;
304             }
305         }
306  
307         {
308             PyObject *old = tmp_for_loop_1__iter_value;
309             tmp_for_loop_1__iter_value = tmp_assign_source_4;
310             Py_XDECREF( old );
311         }
312  
313     } 232     {
233         exception_tb = ADD_TRACEBACK( exception_tb, frame_53a1df9d2d30818628064afd6f94e5d5, exception_lineno );
314     { 234     }
315         PyObject *tmp_assign_source_5;
316         CHECK_OBJECT( tmp_for_loop_1__iter_value );
317         tmp_assign_source_5 = tmp_for_loop_1__iter_value;
318         {
319             PyObject *old = var_x;
320             assert( old != NULL );
321             var_x = tmp_assign_source_5;
322             Py_INCREF( var_x );
323             Py_DECREF( old );
324         }
325 235
n 326     } n 236     // Attachs locals to frame if any.
327     if ( CONSIDER_THREADING() == false ) 237     Nuitka_Frame_AttachLocals(
328     { 238         (struct Nuitka_FrameObject *)frame_53a1df9d2d30818628064afd6f94e5d5,
329         assert( ERROR_OCCURRED() );
330  
331         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
332  
333  
334         exception_lineno = 35;
335         type_description_1 = "oo"; 239         type_description_1,
240         NULL,
241         var_local_value
242     );
243  
244  
245     // Release cached frame.
246     if ( frame_53a1df9d2d30818628064afd6f94e5d5 == cache_frame_53a1df9d2d30818628064afd6f94e5d5 )
247     {
248         Py_DECREF( frame_53a1df9d2d30818628064afd6f94e5d5 );
249     }
250     cache_frame_53a1df9d2d30818628064afd6f94e5d5 = NULL;
251  
252     assertFrameObject( frame_53a1df9d2d30818628064afd6f94e5d5 );
253  
254     // Put the previous frame back on top.
255     popFrameStack();
256  
257     // Return the error.
336         goto try_except_handler_2; 258     goto try_except_handler_1;
337     } 259  
338     goto loop_start_1; 260     frame_no_exception_1:;
339     loop_end_1:; 261     tmp_return_value = Py_None;
262     Py_INCREF( tmp_return_value );
340     goto try_end_1; 263     goto try_return_handler_1;
264     // tried codes exits in all cases
265     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
266     return NULL;
267     // Return handler code:
268     try_return_handler_1:;
269     CHECK_OBJECT( (PyObject *)var_local_value );
270     Py_DECREF( var_local_value );
271     var_local_value = NULL;
272  
273     goto function_return_exit;
341     // Exception handler code: 274     // Exception handler code:
n 342     try_except_handler_2:; n 275     try_except_handler_1:;
343     exception_keeper_type_1 = exception_type; 276     exception_keeper_type_1 = exception_type;
344     exception_keeper_value_1 = exception_value; 277     exception_keeper_value_1 = exception_value;
345     exception_keeper_tb_1 = exception_tb; 278     exception_keeper_tb_1 = exception_tb;
346     exception_keeper_lineno_1 = exception_lineno; 279     exception_keeper_lineno_1 = exception_lineno;
347     exception_type = NULL; 280     exception_type = NULL;
348     exception_value = NULL; 281     exception_value = NULL;
349     exception_tb = NULL; 282     exception_tb = NULL;
350     exception_lineno = 0; 283     exception_lineno = 0;
351 284
n 352     Py_XDECREF( tmp_for_loop_1__iter_value ); n
353     tmp_for_loop_1__iter_value = NULL;
354  
355     CHECK_OBJECT( (PyObject *)tmp_for_loop_1__for_iterator );
356     Py_DECREF( tmp_for_loop_1__for_iterator );
357     tmp_for_loop_1__for_iterator = NULL;
358  
359     // Re-raise. 285     // Re-raise.
360     exception_type = exception_keeper_type_1; 286     exception_type = exception_keeper_type_1;
361     exception_value = exception_keeper_value_1; 287     exception_value = exception_keeper_value_1;
362     exception_tb = exception_keeper_tb_1; 288     exception_tb = exception_keeper_tb_1;
363     exception_lineno = exception_keeper_lineno_1; 289     exception_lineno = exception_keeper_lineno_1;
n 364   n
365     goto frame_exception_exit_1;
366     // End of try:
367     try_end_1:;
368  
369 #if 0
370     RESTORE_FRAME_EXCEPTION( frame_e9a3eaae1e96e2588c43d30ecb528d0f );
371 #endif
372  
373     // Put the previous frame back on top.
374     popFrameStack();
375  
376     goto frame_no_exception_1;
377  
378     frame_exception_exit_1:;
379  
380 #if 0
381     RESTORE_FRAME_EXCEPTION( frame_e9a3eaae1e96e2588c43d30ecb528d0f );
382 #endif
383  
384     if ( exception_tb == NULL )
385     {
386         exception_tb = MAKE_TRACEBACK( frame_e9a3eaae1e96e2588c43d30ecb528d0f, exception_lineno );
387     }
388     else if ( exception_tb->tb_frame != &frame_e9a3eaae1e96e2588c43d30ecb528d0f->m_frame )
389     {
390         exception_tb = ADD_TRACEBACK( exception_tb, frame_e9a3eaae1e96e2588c43d30ecb528d0f, exception_lineno );
391     }
392  
393     // Attachs locals to frame if any.
394     Nuitka_Frame_AttachLocals(
395         (struct Nuitka_FrameObject *)frame_e9a3eaae1e96e2588c43d30ecb528d0f,
396         type_description_1,
397         var_x,
398         var_local_value
399     );
400  
401  
402     // Release cached frame.
403     if ( frame_e9a3eaae1e96e2588c43d30ecb528d0f == cache_frame_e9a3eaae1e96e2588c43d30ecb528d0f )
404     {
405         Py_DECREF( frame_e9a3eaae1e96e2588c43d30ecb528d0f );
406     }
407     cache_frame_e9a3eaae1e96e2588c43d30ecb528d0f = NULL;
408  
409     assertFrameObject( frame_e9a3eaae1e96e2588c43d30ecb528d0f );
410  
411     // Put the previous frame back on top.
412     popFrameStack();
413  
414     // Return the error.
415     goto try_except_handler_1;
416  
417     frame_no_exception_1:;
418     Py_XDECREF( tmp_for_loop_1__iter_value );
419     tmp_for_loop_1__iter_value = NULL;
420  
421     CHECK_OBJECT( (PyObject *)tmp_for_loop_1__for_iterator );
422     Py_DECREF( tmp_for_loop_1__for_iterator );
423     tmp_for_loop_1__for_iterator = NULL;
424  
425     tmp_return_value = Py_None;
426     Py_INCREF( tmp_return_value );
427     goto try_return_handler_1;
428     // tried codes exits in all cases
429     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
430     return NULL;
431     // Return handler code:
432     try_return_handler_1:;
433     CHECK_OBJECT( (PyObject *)var_x );
434     Py_DECREF( var_x );
435     var_x = NULL;
436  
437     CHECK_OBJECT( (PyObject *)var_local_value );
438     Py_DECREF( var_local_value );
439     var_local_value = NULL;
440  
441     goto function_return_exit;
442     // Exception handler code:
443     try_except_handler_1:;
444     exception_keeper_type_2 = exception_type;
445     exception_keeper_value_2 = exception_value;
446     exception_keeper_tb_2 = exception_tb;
447     exception_keeper_lineno_2 = exception_lineno;
448     exception_type = NULL;
449     exception_value = NULL;
450     exception_tb = NULL;
451     exception_lineno = 0;
452  
453     Py_XDECREF( var_x );
454     var_x = NULL;
455  
456     Py_XDECREF( var_local_value );
457     var_local_value = NULL;
458  
459     // Re-raise.
460     exception_type = exception_keeper_type_2;
461     exception_value = exception_keeper_value_2;
462     exception_tb = exception_keeper_tb_2;
463     exception_lineno = exception_keeper_lineno_2;
464 290
465     goto function_exception_exit; 291     goto function_exception_exit;
466     // End of try: 292     // End of try:
467 293
468     // Return statement must have exited already. 294     // Return statement must have exited already.
494         impl___main__$$$function_1_calledRepeatedly, 320         impl___main__$$$function_1_calledRepeatedly,
495         const_str_plain_calledRepeatedly, 321         const_str_plain_calledRepeatedly,
496 #if PYTHON_VERSION >= 300 322 #if PYTHON_VERSION >= 300
497         NULL, 323         NULL,
498 #endif 324 #endif
n 499         codeobj_e9a3eaae1e96e2588c43d30ecb528d0f, n 325         codeobj_53a1df9d2d30818628064afd6f94e5d5,
500         NULL, 326         NULL,
501 #if PYTHON_VERSION >= 300 327 #if PYTHON_VERSION >= 300
502         NULL, 328         NULL,
503         NULL, 329         NULL,
504 #endif 330 #endif
815         tmp_assign_source_3 = Py_None; 641         tmp_assign_source_3 = Py_None;
816         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_3 ); 642         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_3 );
817     } 643     }
818     { 644     {
819         PyObject *tmp_assign_source_4; 645         PyObject *tmp_assign_source_4;
n 820         tmp_assign_source_4 = const_str_digest_2d9d5471b59167328c59e25f85fb68fb; n 646         tmp_assign_source_4 = const_int_pos_5;
821         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___file__, tmp_assign_source_4 ); 647         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_4 );
822     } 648     }
823     { 649     {
824         PyObject *tmp_assign_source_5; 650         PyObject *tmp_assign_source_5;
n 825         tmp_assign_source_5 = const_int_pos_5; n 651         tmp_assign_source_5 = const_int_pos_3;
826         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_5 ); 652         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_5 );
827     } 653     }
828     { 654     {
829         PyObject *tmp_assign_source_6; 655         PyObject *tmp_assign_source_6;
n 830         tmp_assign_source_6 = const_int_pos_3; n 656         tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
657  
658  
659  
831         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_6 ); 660         UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_6 );
832     } 661     }
833     { 662     {
834         PyObject *tmp_assign_source_7; 663         PyObject *tmp_assign_source_7;
n 835         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); n
836  
837  
838  
839         UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_7 );
840     }
841     {
842         PyObject *tmp_assign_source_8;
843         PyObject *tmp_name_name_1; 664         PyObject *tmp_name_name_1;
844         PyObject *tmp_globals_name_1; 665         PyObject *tmp_globals_name_1;
845         PyObject *tmp_locals_name_1; 666         PyObject *tmp_locals_name_1;
846         PyObject *tmp_fromlist_name_1; 667         PyObject *tmp_fromlist_name_1;
847         PyObject *tmp_level_name_1; 668         PyObject *tmp_level_name_1;
848         tmp_name_name_1 = const_str_plain_itertools; 669         tmp_name_name_1 = const_str_plain_itertools;
849         tmp_globals_name_1 = (PyObject *)moduledict___main__; 670         tmp_globals_name_1 = (PyObject *)moduledict___main__;
850         tmp_locals_name_1 = Py_None; 671         tmp_locals_name_1 = Py_None;
851         tmp_fromlist_name_1 = Py_None; 672         tmp_fromlist_name_1 = Py_None;
852         tmp_level_name_1 = const_int_0; 673         tmp_level_name_1 = const_int_0;
n 853         tmp_assign_source_8 = IMPORT_MODULE5( tmp_name_name_1, tmp_globals_name_1, tmp_locals_name_1, tmp_fromlist_name_1, tmp_level_name_1 ); n 674         tmp_assign_source_7 = IMPORT_MODULE5( tmp_name_name_1, tmp_globals_name_1, tmp_locals_name_1, tmp_fromlist_name_1, tmp_level_name_1 );
854         assert( !(tmp_assign_source_8 == NULL) ); 675         assert( !(tmp_assign_source_7 == NULL) );
855         UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_8 ); 676         UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_7 );
856     } 677     }
857     // Frame without reuse. 678     // Frame without reuse.
858     frame_85b0b9f67b9c07027746c86f443642b2 = MAKE_MODULE_FRAME( codeobj_85b0b9f67b9c07027746c86f443642b2, module___main__ ); 679     frame_85b0b9f67b9c07027746c86f443642b2 = MAKE_MODULE_FRAME( codeobj_85b0b9f67b9c07027746c86f443642b2, module___main__ );
859 680
860     // Push the new frame as the currently active one, and we should be exclusively 681     // Push the new frame as the currently active one, and we should be exclusively
862     pushFrameStack( frame_85b0b9f67b9c07027746c86f443642b2 ); 683     pushFrameStack( frame_85b0b9f67b9c07027746c86f443642b2 );
863     assert( Py_REFCNT( frame_85b0b9f67b9c07027746c86f443642b2 ) == 2 ); 684     assert( Py_REFCNT( frame_85b0b9f67b9c07027746c86f443642b2 ) == 2 );
864 685
865     // Framed code: 686     // Framed code:
866     { 687     {
n 867         PyObject *tmp_assign_source_9; n 688         PyObject *tmp_assign_source_8;
868         PyObject *tmp_iter_arg_1; 689         PyObject *tmp_iter_arg_1;
869         PyObject *tmp_called_instance_1; 690         PyObject *tmp_called_instance_1;
870         PyObject *tmp_mvar_value_1; 691         PyObject *tmp_mvar_value_1;
871         tmp_mvar_value_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools ); 692         tmp_mvar_value_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools );
872 693
875             tmp_mvar_value_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_itertools ); 696             tmp_mvar_value_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_itertools );
876         } 697         }
877 698
878         CHECK_OBJECT( tmp_mvar_value_1 ); 699         CHECK_OBJECT( tmp_mvar_value_1 );
879         tmp_called_instance_1 = tmp_mvar_value_1; 700         tmp_called_instance_1 = tmp_mvar_value_1;
n 880         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 40; n 701         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 39;
881         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( tmp_called_instance_1, const_str_plain_repeat, &PyTuple_GET_ITEM( const_tuple_none_int_pos_50000_tuple, 0 ) ); 702         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( tmp_called_instance_1, const_str_plain_repeat, &PyTuple_GET_ITEM( const_tuple_none_int_pos_50000_tuple, 0 ) );
882 703
883         if ( tmp_iter_arg_1 == NULL ) 704         if ( tmp_iter_arg_1 == NULL )
884         { 705         {
885             assert( ERROR_OCCURRED() ); 706             assert( ERROR_OCCURRED() );
886 707
887             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 708             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
888 709
889 710
n 890             exception_lineno = 40; n 711             exception_lineno = 39;
891 712
892             goto frame_exception_exit_1; 713             goto frame_exception_exit_1;
893         } 714         }
n 894         tmp_assign_source_9 = MAKE_ITERATOR( tmp_iter_arg_1 ); n 715         tmp_assign_source_8 = MAKE_ITERATOR( tmp_iter_arg_1 );
895         Py_DECREF( tmp_iter_arg_1 ); 716         Py_DECREF( tmp_iter_arg_1 );
n 896         if ( tmp_assign_source_9 == NULL ) n 717         if ( tmp_assign_source_8 == NULL )
897         { 718         {
898             assert( ERROR_OCCURRED() ); 719             assert( ERROR_OCCURRED() );
899 720
900             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 721             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
901 722
902 723
n 903             exception_lineno = 40; n 724             exception_lineno = 39;
904 725
905             goto frame_exception_exit_1; 726             goto frame_exception_exit_1;
906         } 727         }
907         assert( tmp_for_loop_1__for_iterator == NULL ); 728         assert( tmp_for_loop_1__for_iterator == NULL );
n 908         tmp_for_loop_1__for_iterator = tmp_assign_source_9; n 729         tmp_for_loop_1__for_iterator = tmp_assign_source_8;
909     } 730     }
910     // Tried code: 731     // Tried code:
911     loop_start_1:; 732     loop_start_1:;
912     { 733     {
913         PyObject *tmp_next_source_1; 734         PyObject *tmp_next_source_1;
n 914         PyObject *tmp_assign_source_10; n 735         PyObject *tmp_assign_source_9;
915         CHECK_OBJECT( tmp_for_loop_1__for_iterator ); 736         CHECK_OBJECT( tmp_for_loop_1__for_iterator );
916         tmp_next_source_1 = tmp_for_loop_1__for_iterator; 737         tmp_next_source_1 = tmp_for_loop_1__for_iterator;
n 917         tmp_assign_source_10 = ITERATOR_NEXT( tmp_next_source_1 ); n 738         tmp_assign_source_9 = ITERATOR_NEXT( tmp_next_source_1 );
918         if ( tmp_assign_source_10 == NULL ) 739         if ( tmp_assign_source_9 == NULL )
919         { 740         {
920             if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() ) 741             if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() )
921             { 742             {
922 743
923                 goto loop_end_1; 744                 goto loop_end_1;
925             else 746             else
926             { 747             {
927 748
928                 FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 749                 FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
929 750
n 930                 exception_lineno = 40; n 751                 exception_lineno = 39;
931                 goto try_except_handler_1; 752                 goto try_except_handler_1;
932             } 753             }
933         } 754         }
934 755
935         { 756         {
936             PyObject *old = tmp_for_loop_1__iter_value; 757             PyObject *old = tmp_for_loop_1__iter_value;
n 937             tmp_for_loop_1__iter_value = tmp_assign_source_10; n 758             tmp_for_loop_1__iter_value = tmp_assign_source_9;
938             Py_XDECREF( old ); 759             Py_XDECREF( old );
939         } 760         }
940 761
941     } 762     }
942     { 763     {
n 943         PyObject *tmp_assign_source_11; n 764         PyObject *tmp_assign_source_10;
944         CHECK_OBJECT( tmp_for_loop_1__iter_value ); 765         CHECK_OBJECT( tmp_for_loop_1__iter_value );
n 945         tmp_assign_source_11 = tmp_for_loop_1__iter_value; n 766         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
946         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_11 ); 767         UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_10 );
947     } 768     }
948     { 769     {
949         PyObject *tmp_called_name_1; 770         PyObject *tmp_called_name_1;
950         PyObject *tmp_mvar_value_2; 771         PyObject *tmp_mvar_value_2;
951         PyObject *tmp_call_result_1; 772         PyObject *tmp_call_result_1;
964             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" ); 785             exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" );
965             exception_tb = NULL; 786             exception_tb = NULL;
966             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 787             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
967             CHAIN_EXCEPTION( exception_value ); 788             CHAIN_EXCEPTION( exception_value );
968 789
n 969             exception_lineno = 41; n 790             exception_lineno = 40;
970 791
971             goto try_except_handler_1; 792             goto try_except_handler_1;
972         } 793         }
973 794
974         tmp_called_name_1 = tmp_mvar_value_2; 795         tmp_called_name_1 = tmp_mvar_value_2;
n 975         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 41; n 796         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 40;
976         tmp_call_result_1 = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 ); 797         tmp_call_result_1 = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 );
977         if ( tmp_call_result_1 == NULL ) 798         if ( tmp_call_result_1 == NULL )
978         { 799         {
979             assert( ERROR_OCCURRED() ); 800             assert( ERROR_OCCURRED() );
980 801
981             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 802             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
982 803
983 804
n 984             exception_lineno = 41; n 805             exception_lineno = 40;
985 806
986             goto try_except_handler_1; 807             goto try_except_handler_1;
987         } 808         }
988         Py_DECREF( tmp_call_result_1 ); 809         Py_DECREF( tmp_call_result_1 );
989     } 810     }
992         assert( ERROR_OCCURRED() ); 813         assert( ERROR_OCCURRED() );
993 814
994         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 815         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
995 816
996 817
n 997         exception_lineno = 40; n 818         exception_lineno = 39;
998 819
999         goto try_except_handler_1; 820         goto try_except_handler_1;
1000     } 821     }
1001     goto loop_start_1; 822     goto loop_start_1;
1002     loop_end_1:; 823     loop_end_1:;
1038     { 859     {
1039         PyObject *tmp_called_name_2; 860         PyObject *tmp_called_name_2;
1040         PyObject *tmp_call_result_2; 861         PyObject *tmp_call_result_2;
1041         tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print ); 862         tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print );
1042         assert( tmp_called_name_2 != NULL ); 863         assert( tmp_called_name_2 != NULL );
n 1043         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 43; n 864         frame_85b0b9f67b9c07027746c86f443642b2->m_frame.f_lineno = 42;
1044         tmp_call_result_2 = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) ); 865         tmp_call_result_2 = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) );
1045 866
1046         if ( tmp_call_result_2 == NULL ) 867         if ( tmp_call_result_2 == NULL )
1047         { 868         {
1048             assert( ERROR_OCCURRED() ); 869             assert( ERROR_OCCURRED() );
1049 870
1050             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 871             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1051 872
1052 873
t 1053             exception_lineno = 43; t 874             exception_lineno = 42;
1054 875
1055             goto frame_exception_exit_1; 876             goto frame_exception_exit_1;
1056         } 877         }
1057         Py_DECREF( tmp_call_result_2 ); 878         Py_DECREF( tmp_call_result_2 );
1058     } 879     }