Construct LoopSmallXrange

Performance Diagrams

Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)10663294788.11538461538461257.0CPython 2.766581748240.03846153846155349.8162235372929Nuitka (master)66581458391.96153846153845349.8168955946969Nuitka (develop)66581742543.8846153846154349.8162374419289Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000130000000130000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)13898423288.11538461538461257.0CPython 3.596098429240.03846153846155333.2513959345015Nuitka (master)96097499391.96153846153845333.2530494840041Nuitka (develop)96097411543.8846153846154333.25320594890326Nuitka (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
32 32
33 /* The module constants used, if any. */ 33 /* The module constants used, if any. */
34 static PyObject *const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa; 34 static PyObject *const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa;
35 static PyObject *const_str_plain_itertools; 35 static PyObject *const_str_plain_itertools;
36 extern PyObject *const_str_plain___file__; 36 extern PyObject *const_str_plain___file__;
n 37 static PyObject *const_str_digest_80a468ef6f9a6e494dc3bfc6e92a4e08; n
38 extern PyObject *const_int_0; 37 extern PyObject *const_int_0;
39 extern PyObject *const_str_plain_print; 38 extern PyObject *const_str_plain_print;
40 static PyObject *const_int_pos_3; 39 static PyObject *const_int_pos_3;
41 static PyObject *const_int_pos_50000; 40 static PyObject *const_int_pos_50000;
42 static PyObject *const_str_plain_local_value; 41 static PyObject *const_str_plain_local_value;
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__;
63 61
64 static void createModuleConstants( void ) 62 static void createModuleConstants( void )
65 { 63 {
66     const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa = UNSTREAM_STRING( &constant_bin[ 0 ], 73, 0 ); 64     const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa = UNSTREAM_STRING( &constant_bin[ 0 ], 73, 0 );
67     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 73 ], 9, 1 ); 65     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 73 ], 9, 1 );
n 68     const_str_digest_80a468ef6f9a6e494dc3bfc6e92a4e08 = UNSTREAM_STRING( &constant_bin[ 82 ], 56, 0 ); n
69     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul ); 66     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul );
70     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 67     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
n 71     const_str_plain_local_value = UNSTREAM_STRING( &constant_bin[ 138 ], 11, 1 ); n 68     const_str_plain_local_value = UNSTREAM_STRING( &constant_bin[ 82 ], 11, 1 );
72     const_str_plain_module_value2 = UNSTREAM_STRING( &constant_bin[ 149 ], 13, 1 ); 69     const_str_plain_module_value2 = UNSTREAM_STRING( &constant_bin[ 93 ], 13, 1 );
73     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 70     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 74     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 162 ], 3, 0 ); n 71     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 106 ], 3, 0 );
75     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 72     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 76     const_str_plain_module_value1 = UNSTREAM_STRING( &constant_bin[ 165 ], 13, 1 ); n 73     const_str_plain_module_value1 = UNSTREAM_STRING( &constant_bin[ 109 ], 13, 1 );
77     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 178 ], 16, 1 ); 74     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 122 ], 16, 1 );
78     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 194 ], 8, 0 ); 75     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 138 ], 8, 0 );
79     const_str_plain_None = UNSTREAM_STRING( &constant_bin[ 202 ], 4, 1 ); 76     const_str_plain_None = UNSTREAM_STRING( &constant_bin[ 146 ], 4, 1 );
80     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 25 ], 1, 1 ); 77     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 25 ], 1, 1 );
81     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul ); 78     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul );
n 82     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 206 ], 6, 1 ); n 79     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 150 ], 6, 1 );
83     const_int_pos_2 = PyLong_FromUnsignedLong( 2ul );
84     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 80     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
85     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 81     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
86     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 82     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
87     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 ); 83     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 );
88     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x ); 84     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x );
101 } 97 }
102 #endif 98 #endif
103 99
104 // The module code objects. 100 // The module code objects.
105 static PyCodeObject *codeobj_1ef2eea438af391ba97d36f3856c1b37; 101 static PyCodeObject *codeobj_1ef2eea438af391ba97d36f3856c1b37;
n 106 static PyCodeObject *codeobj_9bac3f3d246f7299975843957fe9d514; n 102 static PyCodeObject *codeobj_f929afc52c95e14f41a69a0312d3f5be;
107 /* For use in "MainProgram.c". */ 103 /* For use in "MainProgram.c". */
108 PyCodeObject *codeobj_main = NULL; 104 PyCodeObject *codeobj_main = NULL;
109 105
110 static void createModuleCodeObjects(void) 106 static void createModuleCodeObjects(void)
111 { 107 {
112     module_filename_obj = const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa; 108     module_filename_obj = const_str_digest_405fb6735b7f5f5d7ea1a105358c95fa;
113     codeobj_1ef2eea438af391ba97d36f3856c1b37 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE ); 109     codeobj_1ef2eea438af391ba97d36f3856c1b37 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE );
114     codeobj_main = codeobj_1ef2eea438af391ba97d36f3856c1b37; 110     codeobj_main = codeobj_1ef2eea438af391ba97d36f3856c1b37;
n 115     codeobj_9bac3f3d246f7299975843957fe9d514 = 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 111     codeobj_f929afc52c95e14f41a69a0312d3f5be = 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 );
116 } 112 }
117 113
118 // The module function declarations. 114 // The module function declarations.
119 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); 115 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
120 116
126 #ifndef __NUITKA_NO_ASSERT__ 122 #ifndef __NUITKA_NO_ASSERT__
127     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 123     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
128 #endif 124 #endif
129 125
130     // Local variable declarations. 126     // Local variable declarations.
n 131     PyObject *var_x = NULL; n
132     PyObject *var_local_value = NULL; 127     PyObject *var_local_value = NULL;
n 133     PyObject *tmp_for_loop_1__for_iterator = NULL; n 128     struct Nuitka_FrameObject *frame_f929afc52c95e14f41a69a0312d3f5be;
134     PyObject *tmp_for_loop_1__iter_value = NULL;
135     struct Nuitka_FrameObject *frame_9bac3f3d246f7299975843957fe9d514;
136     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 129     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
137     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; 130     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused;
138     PyObject *exception_type = NULL; 131     PyObject *exception_type = NULL;
139     PyObject *exception_value = NULL; 132     PyObject *exception_value = NULL;
140     PyTracebackObject *exception_tb = NULL; 133     PyTracebackObject *exception_tb = NULL;
141     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 134     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n n 135     static struct Nuitka_FrameObject *cache_frame_f929afc52c95e14f41a69a0312d3f5be = NULL;
136     PyObject *tmp_return_value = NULL;
142     PyObject *exception_keeper_type_1; 137     PyObject *exception_keeper_type_1;
143     PyObject *exception_keeper_value_1; 138     PyObject *exception_keeper_value_1;
144     PyTracebackObject *exception_keeper_tb_1; 139     PyTracebackObject *exception_keeper_tb_1;
145     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 140     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 146     PyObject *exception_keeper_type_2; n
147     PyObject *exception_keeper_value_2;
148     PyTracebackObject *exception_keeper_tb_2;
149     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
150     static struct Nuitka_FrameObject *cache_frame_9bac3f3d246f7299975843957fe9d514 = NULL;
151     PyObject *tmp_return_value = NULL;
152     PyObject *exception_keeper_type_3;
153     PyObject *exception_keeper_value_3;
154     PyTracebackObject *exception_keeper_tb_3;
155     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_3;
156 141
157     // Actual function code. 142     // Actual function code.
158     { 143     {
159     // Tried code: 144     // Tried code:
n 160     MAKE_OR_REUSE_FRAME( cache_frame_9bac3f3d246f7299975843957fe9d514, codeobj_9bac3f3d246f7299975843957fe9d514, module___main__, sizeof(void *)+sizeof(void *) ); n 145     MAKE_OR_REUSE_FRAME( cache_frame_f929afc52c95e14f41a69a0312d3f5be, codeobj_f929afc52c95e14f41a69a0312d3f5be, module___main__, sizeof(void *)+sizeof(void *) );
161     frame_9bac3f3d246f7299975843957fe9d514 = cache_frame_9bac3f3d246f7299975843957fe9d514; 146     frame_f929afc52c95e14f41a69a0312d3f5be = cache_frame_f929afc52c95e14f41a69a0312d3f5be;
162 147
163     // Push the new frame as the currently active one. 148     // Push the new frame as the currently active one.
n 164     pushFrameStack( frame_9bac3f3d246f7299975843957fe9d514 ); n 149     pushFrameStack( frame_f929afc52c95e14f41a69a0312d3f5be );
165 150
166     // Mark the frame object as in use, ref count 1 will be up for reuse. 151     // Mark the frame object as in use, ref count 1 will be up for reuse.
n 167     assert( Py_REFCNT( frame_9bac3f3d246f7299975843957fe9d514 ) == 2 ); // Frame stack n 152     assert( Py_REFCNT( frame_f929afc52c95e14f41a69a0312d3f5be ) == 2 ); // Frame stack
168 153
169     // Framed code: 154     // Framed code:
170     { 155     {
171     tmp_unused = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 156     tmp_unused = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
172 157
183         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 168         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
184         exception_tb = NULL; 169         exception_tb = NULL;
185         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 170         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
186         CHAIN_EXCEPTION( exception_value ); 171         CHAIN_EXCEPTION( exception_value );
187 172
n 188         exception_lineno = 27; n 173         exception_lineno = 26;
189         type_description_1 = "oo"; 174         type_description_1 = "No";
190         goto frame_exception_exit_1; 175         goto frame_exception_exit_1;
191     } 176     }
192 177
193     } 178     }
194     { 179     {
195     PyObject *tmp_assign_source_1; 180     PyObject *tmp_assign_source_1;
n 196     tmp_assign_source_1 = const_int_pos_2; n
197     assert( var_x == NULL );
198     Py_INCREF( tmp_assign_source_1 );
199     var_x = tmp_assign_source_1;
200  
201     }
202     {
203     PyObject *tmp_assign_source_2;
204     tmp_assign_source_2 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 181     tmp_assign_source_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
205 182
n 206     if (unlikely( tmp_assign_source_2 == NULL )) n 183     if (unlikely( tmp_assign_source_1 == NULL ))
207     { 184     {
n 208         tmp_assign_source_2 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value1 ); n 185         tmp_assign_source_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value1 );
209     } 186     }
210 187
n 211     if ( tmp_assign_source_2 == NULL ) n 188     if ( tmp_assign_source_1 == NULL )
212     { 189     {
213 190
214         exception_type = PyExc_NameError; 191         exception_type = PyExc_NameError;
215         Py_INCREF( exception_type ); 192         Py_INCREF( exception_type );
216         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 193         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
217         exception_tb = NULL; 194         exception_tb = NULL;
218         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 195         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
219         CHAIN_EXCEPTION( exception_value ); 196         CHAIN_EXCEPTION( exception_value );
220 197
n 221         exception_lineno = 32; n 198         exception_lineno = 31;
222         type_description_1 = "oo"; 199         type_description_1 = "No";
223         goto frame_exception_exit_1; 200         goto frame_exception_exit_1;
224     } 201     }
225 202
226     assert( var_local_value == NULL ); 203     assert( var_local_value == NULL );
n 227     Py_INCREF( tmp_assign_source_2 ); n 204     Py_INCREF( tmp_assign_source_1 );
228     var_local_value = tmp_assign_source_2; 205     var_local_value = tmp_assign_source_1;
229 206
n 230     } n
231     { 207     }
232     PyObject *tmp_assign_source_3;
233     PyObject *tmp_iter_arg_1;
234     PyObject *tmp_xrange_low_1;
235     PyObject *tmp_xrange_high_1;
236     PyObject *tmp_left_name_1;
237     PyObject *tmp_right_name_1;
238     tmp_xrange_low_1 = var_local_value;
239 208
n 240     CHECK_OBJECT( tmp_xrange_low_1 ); n 209 #if 0
241     tmp_left_name_1 = var_local_value; 210     RESTORE_FRAME_EXCEPTION( frame_f929afc52c95e14f41a69a0312d3f5be );
211 #endif
242 212
n 243     CHECK_OBJECT( tmp_left_name_1 ); n 213     // Put the previous frame back on top.
244     tmp_right_name_1 = const_int_pos_3; 214     popFrameStack();
245     tmp_xrange_high_1 = BINARY_OPERATION_ADD( tmp_left_name_1, tmp_right_name_1 ); 215  
246     if ( tmp_xrange_high_1 == NULL ) 216     goto frame_no_exception_1;
217  
218     frame_exception_exit_1:;
219  
220 #if 0
221     RESTORE_FRAME_EXCEPTION( frame_f929afc52c95e14f41a69a0312d3f5be );
222 #endif
223  
224     if ( exception_tb == NULL )
225     {
226         exception_tb = MAKE_TRACEBACK( frame_f929afc52c95e14f41a69a0312d3f5be, exception_lineno );
247     { 227     }
248         assert( ERROR_OCCURRED() ); 228     else if ( exception_tb->tb_frame != &frame_f929afc52c95e14f41a69a0312d3f5be->m_frame )
229     {
230         exception_tb = ADD_TRACEBACK( exception_tb, frame_f929afc52c95e14f41a69a0312d3f5be, exception_lineno );
231     }
249 232
n 250         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 233     // Attachs locals to frame if any.
251   234     Nuitka_Frame_AttachLocals(
252   235         (struct Nuitka_FrameObject *)frame_f929afc52c95e14f41a69a0312d3f5be,
253         exception_lineno = 35;
254         type_description_1 = "oo"; 236         type_description_1,
255         goto frame_exception_exit_1; 237         NULL,
238         var_local_value
239     );
240  
241  
242     // Release cached frame.
243     if ( frame_f929afc52c95e14f41a69a0312d3f5be == cache_frame_f929afc52c95e14f41a69a0312d3f5be )
256     } 244     {
257     tmp_iter_arg_1 = BUILTIN_XRANGE2( tmp_xrange_low_1, tmp_xrange_high_1 ); 245         Py_DECREF( frame_f929afc52c95e14f41a69a0312d3f5be );
258     Py_DECREF( tmp_xrange_high_1 );
259     if ( tmp_iter_arg_1 == NULL )
260     { 246     }
261         assert( ERROR_OCCURRED() ); 247     cache_frame_f929afc52c95e14f41a69a0312d3f5be = NULL;
262 248
n 263         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 249     assertFrameObject( frame_f929afc52c95e14f41a69a0312d3f5be );
264 250
n n 251     // Put the previous frame back on top.
252     popFrameStack();
265 253
n 266         exception_lineno = 35; n 254     // Return the error.
267         type_description_1 = "oo";
268         goto frame_exception_exit_1;
269     }
270     tmp_assign_source_3 = MAKE_ITERATOR( tmp_iter_arg_1 );
271     Py_DECREF( tmp_iter_arg_1 );
272     if ( tmp_assign_source_3 == NULL )
273     {
274         assert( ERROR_OCCURRED() );
275  
276         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
277  
278  
279         exception_lineno = 35;
280         type_description_1 = "oo";
281         goto frame_exception_exit_1;
282     }
283     assert( tmp_for_loop_1__for_iterator == NULL );
284     tmp_for_loop_1__for_iterator = tmp_assign_source_3;
285  
286     }
287     {
288     // Tried code:
289     {
290     loop_start_1:;
291     {
292     // Tried code:
293     {
294     PyObject *tmp_assign_source_4;
295     PyObject *tmp_value_name_1;
296     tmp_value_name_1 = tmp_for_loop_1__for_iterator;
297  
298     CHECK_OBJECT( tmp_value_name_1 );
299     tmp_assign_source_4 = ITERATOR_NEXT( tmp_value_name_1 );
300     if ( tmp_assign_source_4 == NULL )
301     {
302         if ( !ERROR_OCCURRED() )
303         {
304             exception_type = PyExc_StopIteration;
305             Py_INCREF( exception_type );
306             exception_value = NULL;
307             exception_tb = NULL;
308         }
309         else
310         {
311             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
312         }
313  
314  
315         type_description_1 = "oo";
316         exception_lineno = 35;
317         goto try_except_handler_3; 255     goto try_except_handler_1;
256  
257     frame_no_exception_1:;
258  
318     } 259     {
260     tmp_return_value = Py_None;
261     Py_INCREF( tmp_return_value );
262     goto try_return_handler_1;
319     { 263     }
320         PyObject *old = tmp_for_loop_1__iter_value; 264     // tried codes exits in all cases
321         tmp_for_loop_1__iter_value = tmp_assign_source_4; 265     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
322         Py_XDECREF( old ); 266     return NULL;
267     // Return handler code:
268     try_return_handler_1:;
323     } 269     {
270     CHECK_OBJECT( (PyObject *)var_local_value );
271     Py_DECREF( var_local_value );
272     var_local_value = NULL;
324 273
n n 274     }
325     } 275     {
326     goto try_end_1; 276     goto function_return_exit;
277     }
327     // Exception handler code: 278     // Exception handler code:
n 328     try_except_handler_3:; n 279     try_except_handler_1:;
329     exception_keeper_type_1 = exception_type; 280     exception_keeper_type_1 = exception_type;
330     exception_keeper_value_1 = exception_value; 281     exception_keeper_value_1 = exception_value;
331     exception_keeper_tb_1 = exception_tb; 282     exception_keeper_tb_1 = exception_tb;
332     exception_keeper_lineno_1 = exception_lineno; 283     exception_keeper_lineno_1 = exception_lineno;
333     exception_type = NULL; 284     exception_type = NULL;
334     exception_value = NULL; 285     exception_value = NULL;
335     exception_tb = NULL; 286     exception_tb = NULL;
336     exception_lineno = 0; 287     exception_lineno = 0;
337 288
338     { 289     {
n 339     PyObject *tmp_compare_left_1; n
340     PyObject *tmp_compare_right_1;
341     int tmp_exc_match_exception_match_1;
342     tmp_compare_left_1 = exception_keeper_type_1;
343     tmp_compare_right_1 = PyExc_StopIteration;
344     tmp_exc_match_exception_match_1 = EXCEPTION_MATCH_BOOL( tmp_compare_left_1, tmp_compare_right_1 );
345     if ( tmp_exc_match_exception_match_1 == -1 )
346     {
347         assert( ERROR_OCCURRED() );
348  
349         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
350  
351         Py_DECREF( exception_keeper_type_1 );
352         Py_XDECREF( exception_keeper_value_1 );
353         Py_XDECREF( exception_keeper_tb_1 );
354  
355         exception_lineno = 35;
356         type_description_1 = "oo";
357         goto try_except_handler_2;
358     }
359     if ( tmp_exc_match_exception_match_1 == 1 )
360     {
361         goto branch_yes_1;
362     }
363     else
364     {
365         goto branch_no_1;
366     }
367     branch_yes_1:;
368     {
369     Py_DECREF( exception_keeper_type_1 );
370     Py_XDECREF( exception_keeper_value_1 );
371     Py_XDECREF( exception_keeper_tb_1 );
372     goto loop_end_1;
373     }
374     goto branch_end_1;
375     branch_no_1:;
376     {
377     // Re-raise. 290     // Re-raise.
378     exception_type = exception_keeper_type_1; 291     exception_type = exception_keeper_type_1;
379     exception_value = exception_keeper_value_1; 292     exception_value = exception_keeper_value_1;
380     exception_tb = exception_keeper_tb_1; 293     exception_tb = exception_keeper_tb_1;
381     exception_lineno = exception_keeper_lineno_1; 294     exception_lineno = exception_keeper_lineno_1;
n 382   n
383     goto try_except_handler_2;
384     }
385     branch_end_1:;
386     }
387     // End of try:
388     try_end_1:;
389     }
390     {
391     PyObject *tmp_assign_source_5;
392     tmp_assign_source_5 = tmp_for_loop_1__iter_value;
393  
394     CHECK_OBJECT( tmp_assign_source_5 );
395     {
396         PyObject *old = var_x;
397         var_x = tmp_assign_source_5;
398         Py_INCREF( var_x );
399         Py_XDECREF( old );
400     }
401  
402     }
403     if ( CONSIDER_THREADING() == false )
404     {
405         assert( ERROR_OCCURRED() );
406  
407         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
408  
409  
410         exception_lineno = 35;
411         type_description_1 = "oo";
412         goto try_except_handler_2;
413     }
414     goto loop_start_1;
415     loop_end_1:;
416     }
417     goto try_end_2;
418     // Exception handler code:
419     try_except_handler_2:;
420     exception_keeper_type_2 = exception_type;
421     exception_keeper_value_2 = exception_value;
422     exception_keeper_tb_2 = exception_tb;
423     exception_keeper_lineno_2 = exception_lineno;
424     exception_type = NULL;
425     exception_value = NULL;
426     exception_tb = NULL;
427     exception_lineno = 0;
428  
429     {
430     Py_XDECREF( tmp_for_loop_1__iter_value );
431     tmp_for_loop_1__iter_value = NULL;
432  
433     }
434     {
435     CHECK_OBJECT( (PyObject *)tmp_for_loop_1__for_iterator );
436     Py_DECREF( tmp_for_loop_1__for_iterator );
437     tmp_for_loop_1__for_iterator = NULL;
438  
439     }
440     {
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     }
449     // End of try:
450     try_end_2:;
451     }
452  
453 #if 0
454     RESTORE_FRAME_EXCEPTION( frame_9bac3f3d246f7299975843957fe9d514 );
455 #endif
456  
457     // Put the previous frame back on top.
458     popFrameStack();
459  
460     goto frame_no_exception_1;
461  
462     frame_exception_exit_1:;
463  
464 #if 0
465     RESTORE_FRAME_EXCEPTION( frame_9bac3f3d246f7299975843957fe9d514 );
466 #endif
467  
468     if ( exception_tb == NULL )
469     {
470         exception_tb = MAKE_TRACEBACK( frame_9bac3f3d246f7299975843957fe9d514, exception_lineno );
471     }
472     else if ( exception_tb->tb_frame != &frame_9bac3f3d246f7299975843957fe9d514->m_frame )
473     {
474         exception_tb = ADD_TRACEBACK( exception_tb, frame_9bac3f3d246f7299975843957fe9d514, exception_lineno );
475     }
476  
477     // Attachs locals to frame if any.
478     Nuitka_Frame_AttachLocals(
479         (struct Nuitka_FrameObject *)frame_9bac3f3d246f7299975843957fe9d514,
480         type_description_1,
481         var_x,
482         var_local_value
483     );
484  
485  
486     // Release cached frame.
487     if ( frame_9bac3f3d246f7299975843957fe9d514 == cache_frame_9bac3f3d246f7299975843957fe9d514 )
488     {
489         Py_DECREF( frame_9bac3f3d246f7299975843957fe9d514 );
490     }
491     cache_frame_9bac3f3d246f7299975843957fe9d514 = NULL;
492  
493     assertFrameObject( frame_9bac3f3d246f7299975843957fe9d514 );
494  
495     // Put the previous frame back on top.
496     popFrameStack();
497  
498     // Return the error.
499     goto try_except_handler_1;
500  
501     frame_no_exception_1:;
502  
503     {
504     Py_XDECREF( tmp_for_loop_1__iter_value );
505     tmp_for_loop_1__iter_value = NULL;
506  
507     }
508     {
509     CHECK_OBJECT( (PyObject *)tmp_for_loop_1__for_iterator );
510     Py_DECREF( tmp_for_loop_1__for_iterator );
511     tmp_for_loop_1__for_iterator = NULL;
512  
513     }
514     {
515     tmp_return_value = Py_None;
516     Py_INCREF( tmp_return_value );
517     goto try_return_handler_1;
518     }
519     // tried codes exits in all cases
520     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
521     return NULL;
522     // Return handler code:
523     try_return_handler_1:;
524     {
525     Py_XDECREF( var_x );
526     var_x = NULL;
527  
528     }
529     {
530     Py_XDECREF( var_local_value );
531     var_local_value = NULL;
532  
533     }
534     {
535     goto function_return_exit;
536     }
537     // Exception handler code:
538     try_except_handler_1:;
539     exception_keeper_type_3 = exception_type;
540     exception_keeper_value_3 = exception_value;
541     exception_keeper_tb_3 = exception_tb;
542     exception_keeper_lineno_3 = exception_lineno;
543     exception_type = NULL;
544     exception_value = NULL;
545     exception_tb = NULL;
546     exception_lineno = 0;
547  
548     {
549     Py_XDECREF( var_x );
550     var_x = NULL;
551  
552     }
553     {
554     Py_XDECREF( var_local_value );
555     var_local_value = NULL;
556  
557     }
558     {
559     // Re-raise.
560     exception_type = exception_keeper_type_3;
561     exception_value = exception_keeper_value_3;
562     exception_tb = exception_keeper_tb_3;
563     exception_lineno = exception_keeper_lineno_3;
564 295
565     goto function_exception_exit; 296     goto function_exception_exit;
566     } 297     }
567     // End of try: 298     // End of try:
568     } 299     }
592         impl___main__$$$function_1_calledRepeatedly, 323         impl___main__$$$function_1_calledRepeatedly,
593         const_str_plain_calledRepeatedly, 324         const_str_plain_calledRepeatedly,
594 #if PYTHON_VERSION >= 300 325 #if PYTHON_VERSION >= 300
595         NULL, 326         NULL,
596 #endif 327 #endif
n 597         codeobj_9bac3f3d246f7299975843957fe9d514, n 328         codeobj_f929afc52c95e14f41a69a0312d3f5be,
598         NULL, 329         NULL,
599 #if PYTHON_VERSION >= 300 330 #if PYTHON_VERSION >= 300
600         NULL, 331         NULL,
601         NULL, 332         NULL,
602 #endif 333 #endif
889     tmp_assign_source_3 = Py_None; 620     tmp_assign_source_3 = Py_None;
890     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_3 ); 621     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_3 );
891     } 622     }
892     { 623     {
893     PyObject *tmp_assign_source_4; 624     PyObject *tmp_assign_source_4;
n 894     tmp_assign_source_4 = const_str_digest_80a468ef6f9a6e494dc3bfc6e92a4e08; n 625     tmp_assign_source_4 = const_int_pos_5;
895     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___file__, tmp_assign_source_4 ); 626     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_4 );
896     } 627     }
897     { 628     {
898     PyObject *tmp_assign_source_5; 629     PyObject *tmp_assign_source_5;
n 899     tmp_assign_source_5 = const_int_pos_5; n 630     tmp_assign_source_5 = const_int_pos_3;
900     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_5 ); 631     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_5 );
901     } 632     }
902     { 633     {
903     PyObject *tmp_assign_source_6; 634     PyObject *tmp_assign_source_6;
n 904     tmp_assign_source_6 = const_int_pos_3; n 635     tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
636  
637  
638  
905     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_6 ); 639     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_6 );
906     } 640     }
907     { 641     {
908     PyObject *tmp_assign_source_7; 642     PyObject *tmp_assign_source_7;
n 909     tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); n
910  
911  
912  
913     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_7 );
914     }
915     {
916     PyObject *tmp_assign_source_8;
917     PyObject *tmp_name_name_1; 643     PyObject *tmp_name_name_1;
918     PyObject *tmp_globals_name_1; 644     PyObject *tmp_globals_name_1;
919     PyObject *tmp_locals_name_1; 645     PyObject *tmp_locals_name_1;
920     PyObject *tmp_fromlist_name_1; 646     PyObject *tmp_fromlist_name_1;
921     PyObject *tmp_level_name_1; 647     PyObject *tmp_level_name_1;
922     tmp_name_name_1 = const_str_plain_itertools; 648     tmp_name_name_1 = const_str_plain_itertools;
923     tmp_globals_name_1 = (PyObject *)moduledict___main__; 649     tmp_globals_name_1 = (PyObject *)moduledict___main__;
924     tmp_locals_name_1 = Py_None; 650     tmp_locals_name_1 = Py_None;
925     tmp_fromlist_name_1 = Py_None; 651     tmp_fromlist_name_1 = Py_None;
926     tmp_level_name_1 = const_int_0; 652     tmp_level_name_1 = const_int_0;
n 927     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 653     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 );
928     assert( !(tmp_assign_source_8 == NULL) ); 654     assert( !(tmp_assign_source_7 == NULL) );
929     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_8 ); 655     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_7 );
930     } 656     }
931     // Frame without reuse. 657     // Frame without reuse.
932     frame_1ef2eea438af391ba97d36f3856c1b37 = MAKE_MODULE_FRAME( codeobj_1ef2eea438af391ba97d36f3856c1b37, module___main__ ); 658     frame_1ef2eea438af391ba97d36f3856c1b37 = MAKE_MODULE_FRAME( codeobj_1ef2eea438af391ba97d36f3856c1b37, module___main__ );
933 659
934     // Push the new frame as the currently active one, and we should be exclusively 660     // Push the new frame as the currently active one, and we should be exclusively
936     pushFrameStack( frame_1ef2eea438af391ba97d36f3856c1b37 ); 662     pushFrameStack( frame_1ef2eea438af391ba97d36f3856c1b37 );
937     assert( Py_REFCNT( frame_1ef2eea438af391ba97d36f3856c1b37 ) == 2 ); 663     assert( Py_REFCNT( frame_1ef2eea438af391ba97d36f3856c1b37 ) == 2 );
938 664
939     // Framed code: 665     // Framed code:
940     { 666     {
n 941     PyObject *tmp_assign_source_9; n 667     PyObject *tmp_assign_source_8;
942     PyObject *tmp_iter_arg_1; 668     PyObject *tmp_iter_arg_1;
943     PyObject *tmp_called_instance_1; 669     PyObject *tmp_called_instance_1;
944     tmp_called_instance_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools ); 670     tmp_called_instance_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools );
945 671
946     if (unlikely( tmp_called_instance_1 == NULL )) 672     if (unlikely( tmp_called_instance_1 == NULL ))
947     { 673     {
948         tmp_called_instance_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_itertools ); 674         tmp_called_instance_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_itertools );
949     } 675     }
950 676
951     CHECK_OBJECT( tmp_called_instance_1 ); 677     CHECK_OBJECT( tmp_called_instance_1 );
n 952     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 40; n 678     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 39;
953     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 ) ); 679     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 ) );
954 680
955     if ( tmp_iter_arg_1 == NULL ) 681     if ( tmp_iter_arg_1 == NULL )
956     { 682     {
957         assert( ERROR_OCCURRED() ); 683         assert( ERROR_OCCURRED() );
958 684
959         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 685         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
960 686
961 687
n 962         exception_lineno = 40; n 688         exception_lineno = 39;
963 689
964         goto frame_exception_exit_1; 690         goto frame_exception_exit_1;
965     } 691     }
n 966     tmp_assign_source_9 = MAKE_ITERATOR( tmp_iter_arg_1 ); n 692     tmp_assign_source_8 = MAKE_ITERATOR( tmp_iter_arg_1 );
967     Py_DECREF( tmp_iter_arg_1 ); 693     Py_DECREF( tmp_iter_arg_1 );
n 968     if ( tmp_assign_source_9 == NULL ) n 694     if ( tmp_assign_source_8 == NULL )
969     { 695     {
970         assert( ERROR_OCCURRED() ); 696         assert( ERROR_OCCURRED() );
971 697
972         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 698         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
973 699
974 700
n 975         exception_lineno = 40; n 701         exception_lineno = 39;
976 702
977         goto frame_exception_exit_1; 703         goto frame_exception_exit_1;
978     } 704     }
979     assert( tmp_for_loop_1__for_iterator == NULL ); 705     assert( tmp_for_loop_1__for_iterator == NULL );
n 980     tmp_for_loop_1__for_iterator = tmp_assign_source_9; n 706     tmp_for_loop_1__for_iterator = tmp_assign_source_8;
981 707
982     } 708     }
983     { 709     {
984     // Tried code: 710     // Tried code:
985     { 711     {
986     loop_start_1:; 712     loop_start_1:;
987     { 713     {
988     // Tried code: 714     // Tried code:
989     { 715     {
n 990     PyObject *tmp_assign_source_10; n 716     PyObject *tmp_assign_source_9;
991     PyObject *tmp_value_name_1; 717     PyObject *tmp_value_name_1;
992     tmp_value_name_1 = tmp_for_loop_1__for_iterator; 718     tmp_value_name_1 = tmp_for_loop_1__for_iterator;
993 719
994     CHECK_OBJECT( tmp_value_name_1 ); 720     CHECK_OBJECT( tmp_value_name_1 );
n 995     tmp_assign_source_10 = ITERATOR_NEXT( tmp_value_name_1 ); n 721     tmp_assign_source_9 = ITERATOR_NEXT( tmp_value_name_1 );
996     if ( tmp_assign_source_10 == NULL ) 722     if ( tmp_assign_source_9 == NULL )
997     { 723     {
998         if ( !ERROR_OCCURRED() ) 724         if ( !ERROR_OCCURRED() )
999         { 725         {
1000             exception_type = PyExc_StopIteration; 726             exception_type = PyExc_StopIteration;
1001             Py_INCREF( exception_type ); 727             Py_INCREF( exception_type );
1007             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 733             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1008         } 734         }
1009 735
1010 736
1011 737
n 1012         exception_lineno = 40; n 738         exception_lineno = 39;
1013         goto try_except_handler_2; 739         goto try_except_handler_2;
1014     } 740     }
1015     { 741     {
1016         PyObject *old = tmp_for_loop_1__iter_value; 742         PyObject *old = tmp_for_loop_1__iter_value;
n 1017         tmp_for_loop_1__iter_value = tmp_assign_source_10; n 743         tmp_for_loop_1__iter_value = tmp_assign_source_9;
1018         Py_XDECREF( old ); 744         Py_XDECREF( old );
1019     } 745     }
1020 746
1021     } 747     }
1022     goto try_end_1; 748     goto try_end_1;
1046 772
1047         Py_DECREF( exception_keeper_type_1 ); 773         Py_DECREF( exception_keeper_type_1 );
1048         Py_XDECREF( exception_keeper_value_1 ); 774         Py_XDECREF( exception_keeper_value_1 );
1049         Py_XDECREF( exception_keeper_tb_1 ); 775         Py_XDECREF( exception_keeper_tb_1 );
1050 776
n 1051         exception_lineno = 40; n 777         exception_lineno = 39;
1052 778
1053         goto try_except_handler_1; 779         goto try_except_handler_1;
1054     } 780     }
1055     if ( tmp_exc_match_exception_match_1 == 1 ) 781     if ( tmp_exc_match_exception_match_1 == 1 )
1056     { 782     {
1082     } 808     }
1083     // End of try: 809     // End of try:
1084     try_end_1:; 810     try_end_1:;
1085     } 811     }
1086     { 812     {
n 1087     PyObject *tmp_assign_source_11; n 813     PyObject *tmp_assign_source_10;
1088     tmp_assign_source_11 = tmp_for_loop_1__iter_value; 814     tmp_assign_source_10 = tmp_for_loop_1__iter_value;
1089 815
n 1090     CHECK_OBJECT( tmp_assign_source_11 ); n 816     CHECK_OBJECT( tmp_assign_source_10 );
1091     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_11 ); 817     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_10 );
1092     } 818     }
1093     { 819     {
1094     PyObject *tmp_called_name_1; 820     PyObject *tmp_called_name_1;
1095     tmp_called_name_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly ); 821     tmp_called_name_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly );
1096 822
1107         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" ); 833         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" );
1108         exception_tb = NULL; 834         exception_tb = NULL;
1109         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 835         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1110         CHAIN_EXCEPTION( exception_value ); 836         CHAIN_EXCEPTION( exception_value );
1111 837
n 1112         exception_lineno = 41; n 838         exception_lineno = 40;
1113 839
1114         goto try_except_handler_1; 840         goto try_except_handler_1;
1115     } 841     }
1116 842
n 1117     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 41; n 843     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 40;
1118     tmp_unused = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 ); 844     tmp_unused = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 );
1119     if ( tmp_unused == NULL ) 845     if ( tmp_unused == NULL )
1120     { 846     {
1121         assert( ERROR_OCCURRED() ); 847         assert( ERROR_OCCURRED() );
1122 848
1123         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 849         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1124 850
1125 851
n 1126         exception_lineno = 41; n 852         exception_lineno = 40;
1127 853
1128         goto try_except_handler_1; 854         goto try_except_handler_1;
1129     } 855     }
1130     Py_DECREF( tmp_unused ); 856     Py_DECREF( tmp_unused );
1131     } 857     }
1134         assert( ERROR_OCCURRED() ); 860         assert( ERROR_OCCURRED() );
1135 861
1136         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 862         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1137 863
1138 864
n 1139         exception_lineno = 40; n 865         exception_lineno = 39;
1140 866
1141         goto try_except_handler_1; 867         goto try_except_handler_1;
1142     } 868     }
1143     goto loop_start_1; 869     goto loop_start_1;
1144     loop_end_1:; 870     loop_end_1:;
1191     } 917     }
1192     { 918     {
1193     PyObject *tmp_called_name_2; 919     PyObject *tmp_called_name_2;
1194     tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print ); 920     tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print );
1195     assert( tmp_called_name_2 != NULL ); 921     assert( tmp_called_name_2 != NULL );
n 1196     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 43; n 922     frame_1ef2eea438af391ba97d36f3856c1b37->m_frame.f_lineno = 42;
1197     tmp_unused = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) ); 923     tmp_unused = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) );
1198 924
1199     if ( tmp_unused == NULL ) 925     if ( tmp_unused == NULL )
1200     { 926     {
1201         assert( ERROR_OCCURRED() ); 927         assert( ERROR_OCCURRED() );
1202 928
1203         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 929         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
1204 930
1205 931
t 1206         exception_lineno = 43; t 932         exception_lineno = 42;
1207 933
1208         goto frame_exception_exit_1; 934         goto frame_exception_exit_1;
1209     } 935     }
1210     Py_DECREF( tmp_unused ); 936     Py_DECREF( tmp_unused );
1211     } 937     }