Construct LoopSmallRange
Performance Diagrams
Source Code with Construct
for x in range(local_value, local_value + 3): pass # construct_end for x in itertools.repeat(None, 50000): calledRepeatedly() print("OK.") # Python test originally created or extracted from other peoples work. The # parts from me are licensed as below. It is at least Free Software where # it's copied from other people. In these cases, that will normally be # indicated. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.
Source Code without Construct
for x in itertools.repeat(None, 50000): calledRepeatedly() print("OK.") # Python test originally created or extracted from other peoples work. The # parts from me are licensed as below. It is at least Free Software where # it's copied from other people. In these cases, that will normally be # indicated. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.
Context Diff of Source Code
Construct | Baseline | ||||
---|---|---|---|---|---|
15 | x = 2 | 15 | x = 2 | ||
16 | 16 | ||||
17 | local_value = module_value1 | 17 | local_value = module_value1 | ||
18 | 18 | ||||
19 | # construct_begin | 19 | # construct_begin | ||
t | 20 | for x in range(local_value, local_value + 3): | t | 20 | |
21 | pass | 21 | |||
22 | # construct_end | 22 | |||
23 | 23 | ||||
24 | 24 | ||||
25 | for x in itertools.repeat(None, 50000): | 25 | for x in itertools.repeat(None, 50000): | ||
26 | calledRepeatedly() | 26 | calledRepeatedly() | ||
27 | 27 |
Context Diff of Generated Code
Construct | Baseline | ||||
---|---|---|---|---|---|
82 | static PyCodeObject *codeobj_f898b9b5d7d91c30f9a7245c401a9cf8; | 82 | static PyCodeObject *codeobj_f898b9b5d7d91c30f9a7245c401a9cf8; | ||
83 | /* For use in "MainProgram.c". */ | 83 | /* For use in "MainProgram.c". */ | ||
84 | PyCodeObject *codeobj_main = NULL; | 84 | PyCodeObject *codeobj_main = NULL; | ||
85 | 85 | ||||
86 | static void createModuleCodeObjects(void) { | 86 | static void createModuleCodeObjects(void) { | ||
n | 87 | module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj); | n | 87 | module_filename_obj = mod_consts[2]; CHECK_OBJECT(module_filename_obj); |
88 | codeobj_544d6601aeb38f2297e6915b5fb288ce = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0); | 88 | codeobj_544d6601aeb38f2297e6915b5fb288ce = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[13], mod_consts[13], NULL, NULL, 0, 0, 0); | ||
89 | codeobj_main = codeobj_544d6601aeb38f2297e6915b5fb288ce; | 89 | codeobj_main = codeobj_544d6601aeb38f2297e6915b5fb288ce; | ||
90 | codeobj_f898b9b5d7d91c30f9a7245c401a9cf8 = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[8], mod_consts[14], NULL, 0, 0, 0); | 90 | codeobj_f898b9b5d7d91c30f9a7245c401a9cf8 = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[8], mod_consts[14], NULL, 0, 0, 0); | ||
91 | } | 91 | } | ||
92 | 92 | ||||
100 | #ifndef __NUITKA_NO_ASSERT__ | 100 | #ifndef __NUITKA_NO_ASSERT__ | ||
101 | NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate); | 101 | NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate); | ||
102 | #endif | 102 | #endif | ||
103 | 103 | ||||
104 | // Local variable declarations. | 104 | // Local variable declarations. | ||
n | 105 | PyObject *var_x = NULL; | n | ||
106 | PyObject *var_local_value = NULL; | 105 | PyObject *var_local_value = NULL; | ||
n | 107 | PyObject *tmp_for_loop_1__for_iterator = NULL; | n | ||
108 | PyObject *tmp_for_loop_1__iter_value = NULL; | ||||
109 | struct Nuitka_FrameObject *frame_f898b9b5d7d91c30f9a7245c401a9cf8; | 106 | struct Nuitka_FrameObject *frame_f898b9b5d7d91c30f9a7245c401a9cf8; | ||
110 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | 107 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | ||
111 | NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; | 108 | NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; | ||
112 | PyObject *exception_type = NULL; | 109 | PyObject *exception_type = NULL; | ||
113 | PyObject *exception_value = NULL; | 110 | PyObject *exception_value = NULL; | ||
114 | PyTracebackObject *exception_tb = NULL; | 111 | PyTracebackObject *exception_tb = NULL; | ||
115 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | 112 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | ||
n | n | 113 | static struct Nuitka_FrameObject *cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8 = NULL; | ||
114 | PyObject *tmp_return_value = NULL; | ||||
116 | PyObject *exception_keeper_type_1; | 115 | PyObject *exception_keeper_type_1; | ||
117 | PyObject *exception_keeper_value_1; | 116 | PyObject *exception_keeper_value_1; | ||
118 | PyTracebackObject *exception_keeper_tb_1; | 117 | PyTracebackObject *exception_keeper_tb_1; | ||
119 | NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; | 118 | NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; | ||
n | 120 | static struct Nuitka_FrameObject *cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8 = NULL; | n | ||
121 | PyObject *tmp_return_value = NULL; | ||||
122 | PyObject *exception_keeper_type_2; | ||||
123 | PyObject *exception_keeper_value_2; | ||||
124 | PyTracebackObject *exception_keeper_tb_2; | ||||
125 | NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2; | ||||
126 | 119 | ||||
127 | // Actual function body. | 120 | // Actual function body. | ||
128 | // Tried code: | 121 | // Tried code: | ||
129 | if (isFrameUnusable(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8)) { | 122 | if (isFrameUnusable(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8)) { | ||
130 | Py_XDECREF(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8); | 123 | Py_XDECREF(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8); | ||
166 | 159 | ||||
167 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 160 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
168 | 161 | ||||
169 | 162 | ||||
170 | exception_lineno = 12; | 163 | exception_lineno = 12; | ||
n | 171 | type_description_1 = "oo"; | n | 164 | type_description_1 = "No"; |
172 | goto frame_exception_exit_1; | 165 | goto frame_exception_exit_1; | ||
173 | } | 166 | } | ||
174 | } | 167 | } | ||
175 | { | 168 | { | ||
176 | PyObject *tmp_assign_source_1; | 169 | PyObject *tmp_assign_source_1; | ||
185 | 178 | ||||
186 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 179 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
187 | 180 | ||||
188 | 181 | ||||
189 | exception_lineno = 17; | 182 | exception_lineno = 17; | ||
n | 190 | type_description_1 = "oo"; | n | 183 | type_description_1 = "No"; |
191 | goto frame_exception_exit_1; | 184 | goto frame_exception_exit_1; | ||
192 | } | 185 | } | ||
193 | assert(var_local_value == NULL); | 186 | assert(var_local_value == NULL); | ||
194 | Py_INCREF(tmp_assign_source_1); | 187 | Py_INCREF(tmp_assign_source_1); | ||
195 | var_local_value = tmp_assign_source_1; | 188 | var_local_value = tmp_assign_source_1; | ||
196 | } | 189 | } | ||
n | n | 190 | |||
191 | |||||
192 | // Put the previous frame back on top. | ||||
193 | popFrameStack(tstate); | ||||
194 | |||||
195 | goto frame_no_exception_1; | ||||
196 | frame_exception_exit_1: | ||||
197 | |||||
198 | |||||
199 | if (exception_tb == NULL) { | ||||
200 | exception_tb = MAKE_TRACEBACK(frame_f898b9b5d7d91c30f9a7245c401a9cf8, exception_lineno); | ||||
201 | } else if (exception_tb->tb_frame != &frame_f898b9b5d7d91c30f9a7245c401a9cf8->m_frame) { | ||||
202 | exception_tb = ADD_TRACEBACK(exception_tb, frame_f898b9b5d7d91c30f9a7245c401a9cf8, exception_lineno); | ||||
197 | { | 203 | } | ||
198 | PyObject *tmp_assign_source_2; | 204 | |||
199 | PyObject *tmp_iter_arg_1; | 205 | // Attaches locals to frame if any. | ||
200 | PyObject *tmp_xrange_low_1; | 206 | Nuitka_Frame_AttachLocals( | ||
201 | PyObject *tmp_xrange_high_1; | 207 | frame_f898b9b5d7d91c30f9a7245c401a9cf8, | ||
202 | PyObject *tmp_add_expr_left_1; | 208 | type_description_1, | ||
203 | PyObject *tmp_add_expr_right_1; | 209 | NULL, | ||
210 | var_local_value | ||||
211 | ); | ||||
212 | |||||
213 | |||||
214 | // Release cached frame if used for exception. | ||||
215 | if (frame_f898b9b5d7d91c30f9a7245c401a9cf8 == cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8) { | ||||
216 | #if _DEBUG_REFCOUNTS | ||||
217 | count_active_frame_cache_instances -= 1; | ||||
218 | count_released_frame_cache_instances += 1; | ||||
219 | #endif | ||||
220 | Py_DECREF(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8); | ||||
221 | cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8 = NULL; | ||||
222 | } | ||||
223 | |||||
224 | assertFrameObject(frame_f898b9b5d7d91c30f9a7245c401a9cf8); | ||||
225 | |||||
226 | // Put the previous frame back on top. | ||||
227 | popFrameStack(tstate); | ||||
228 | |||||
229 | // Return the error. | ||||
230 | goto try_except_handler_1; | ||||
231 | frame_no_exception_1:; | ||||
232 | tmp_return_value = Py_None; | ||||
233 | Py_INCREF(tmp_return_value); | ||||
234 | goto try_return_handler_1; | ||||
235 | NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); | ||||
236 | return NULL; | ||||
237 | // Return handler code: | ||||
238 | try_return_handler_1:; | ||||
204 | CHECK_OBJECT(var_local_value); | 239 | CHECK_OBJECT(var_local_value); | ||
205 | tmp_xrange_low_1 = var_local_value; | 240 | Py_DECREF(var_local_value); | ||
206 | CHECK_OBJECT(var_local_value); | 241 | var_local_value = NULL; | ||
207 | tmp_add_expr_left_1 = var_local_value; | 242 | goto function_return_exit; | ||
208 | tmp_add_expr_right_1 = mod_consts[1]; | ||||
209 | tmp_xrange_high_1 = BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(tmp_add_expr_left_1, tmp_add_expr_right_1); | ||||
210 | if (tmp_xrange_high_1 == NULL) { | ||||
211 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
212 | |||||
213 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
214 | |||||
215 | |||||
216 | exception_lineno = 20; | ||||
217 | type_description_1 = "oo"; | ||||
218 | goto frame_exception_exit_1; | ||||
219 | } | ||||
220 | tmp_iter_arg_1 = BUILTIN_XRANGE2(tstate, tmp_xrange_low_1, tmp_xrange_high_1); | ||||
221 | Py_DECREF(tmp_xrange_high_1); | ||||
222 | if (tmp_iter_arg_1 == NULL) { | ||||
223 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
224 | |||||
225 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
226 | |||||
227 | |||||
228 | exception_lineno = 20; | ||||
229 | type_description_1 = "oo"; | ||||
230 | goto frame_exception_exit_1; | ||||
231 | } | ||||
232 | tmp_assign_source_2 = MAKE_ITERATOR(tstate, tmp_iter_arg_1); | ||||
233 | Py_DECREF(tmp_iter_arg_1); | ||||
234 | if (tmp_assign_source_2 == NULL) { | ||||
235 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
236 | |||||
237 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
238 | |||||
239 | |||||
240 | exception_lineno = 20; | ||||
241 | type_description_1 = "oo"; | ||||
242 | goto frame_exception_exit_1; | ||||
243 | } | ||||
244 | assert(tmp_for_loop_1__for_iterator == NULL); | ||||
245 | tmp_for_loop_1__for_iterator = tmp_assign_source_2; | ||||
246 | } | ||||
247 | // Tried code: | ||||
248 | loop_start_1:; | ||||
249 | { | ||||
250 | PyObject *tmp_next_source_1; | ||||
251 | PyObject *tmp_assign_source_3; | ||||
252 | CHECK_OBJECT(tmp_for_loop_1__for_iterator); | ||||
253 | tmp_next_source_1 = tmp_for_loop_1__for_iterator; | ||||
254 | tmp_assign_source_3 = ITERATOR_NEXT(tmp_next_source_1); | ||||
255 | if (tmp_assign_source_3 == NULL) { | ||||
256 | if (CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED(tstate)) { | ||||
257 | |||||
258 | goto loop_end_1; | ||||
259 | } else { | ||||
260 | |||||
261 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
262 | type_description_1 = "oo"; | ||||
263 | exception_lineno = 20; | ||||
264 | goto try_except_handler_2; | ||||
265 | } | ||||
266 | } | ||||
267 | |||||
268 | { | ||||
269 | PyObject *old = tmp_for_loop_1__iter_value; | ||||
270 | tmp_for_loop_1__iter_value = tmp_assign_source_3; | ||||
271 | Py_XDECREF(old); | ||||
272 | } | ||||
273 | |||||
274 | } | ||||
275 | { | ||||
276 | PyObject *tmp_assign_source_4; | ||||
277 | CHECK_OBJECT(tmp_for_loop_1__iter_value); | ||||
278 | tmp_assign_source_4 = tmp_for_loop_1__iter_value; | ||||
279 | { | ||||
280 | PyObject *old = var_x; | ||||
281 | var_x = tmp_assign_source_4; | ||||
282 | Py_INCREF(var_x); | ||||
283 | Py_XDECREF(old); | ||||
284 | } | ||||
285 | |||||
286 | } | ||||
287 | if (CONSIDER_THREADING(tstate) == false) { | ||||
288 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
289 | |||||
290 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
291 | |||||
292 | |||||
293 | exception_lineno = 20; | ||||
294 | type_description_1 = "oo"; | ||||
295 | goto try_except_handler_2; | ||||
296 | } | ||||
297 | goto loop_start_1; | ||||
298 | loop_end_1:; | ||||
299 | goto try_end_1; | ||||
300 | // Exception handler code: | 243 | // Exception handler code: | ||
n | 301 | try_except_handler_2:; | n | 244 | try_except_handler_1:; |
302 | exception_keeper_type_1 = exception_type; | 245 | exception_keeper_type_1 = exception_type; | ||
303 | exception_keeper_value_1 = exception_value; | 246 | exception_keeper_value_1 = exception_value; | ||
304 | exception_keeper_tb_1 = exception_tb; | 247 | exception_keeper_tb_1 = exception_tb; | ||
305 | exception_keeper_lineno_1 = exception_lineno; | 248 | exception_keeper_lineno_1 = exception_lineno; | ||
306 | exception_type = NULL; | 249 | exception_type = NULL; | ||
307 | exception_value = NULL; | 250 | exception_value = NULL; | ||
308 | exception_tb = NULL; | 251 | exception_tb = NULL; | ||
309 | exception_lineno = 0; | 252 | exception_lineno = 0; | ||
310 | 253 | ||||
n | 311 | Py_XDECREF(tmp_for_loop_1__iter_value); | n | ||
312 | tmp_for_loop_1__iter_value = NULL; | ||||
313 | CHECK_OBJECT(tmp_for_loop_1__for_iterator); | ||||
314 | Py_DECREF(tmp_for_loop_1__for_iterator); | ||||
315 | tmp_for_loop_1__for_iterator = NULL; | ||||
316 | // Re-raise. | 254 | // Re-raise. | ||
317 | exception_type = exception_keeper_type_1; | 255 | exception_type = exception_keeper_type_1; | ||
318 | exception_value = exception_keeper_value_1; | 256 | exception_value = exception_keeper_value_1; | ||
319 | exception_tb = exception_keeper_tb_1; | 257 | exception_tb = exception_keeper_tb_1; | ||
320 | exception_lineno = exception_keeper_lineno_1; | 258 | exception_lineno = exception_keeper_lineno_1; | ||
n | 321 | n | |||
322 | goto frame_exception_exit_1; | ||||
323 | // End of try: | ||||
324 | try_end_1:; | ||||
325 | |||||
326 | |||||
327 | // Put the previous frame back on top. | ||||
328 | popFrameStack(tstate); | ||||
329 | |||||
330 | goto frame_no_exception_1; | ||||
331 | frame_exception_exit_1: | ||||
332 | |||||
333 | |||||
334 | if (exception_tb == NULL) { | ||||
335 | exception_tb = MAKE_TRACEBACK(frame_f898b9b5d7d91c30f9a7245c401a9cf8, exception_lineno); | ||||
336 | } else if (exception_tb->tb_frame != &frame_f898b9b5d7d91c30f9a7245c401a9cf8->m_frame) { | ||||
337 | exception_tb = ADD_TRACEBACK(exception_tb, frame_f898b9b5d7d91c30f9a7245c401a9cf8, exception_lineno); | ||||
338 | } | ||||
339 | |||||
340 | // Attaches locals to frame if any. | ||||
341 | Nuitka_Frame_AttachLocals( | ||||
342 | frame_f898b9b5d7d91c30f9a7245c401a9cf8, | ||||
343 | type_description_1, | ||||
344 | var_x, | ||||
345 | var_local_value | ||||
346 | ); | ||||
347 | |||||
348 | |||||
349 | // Release cached frame if used for exception. | ||||
350 | if (frame_f898b9b5d7d91c30f9a7245c401a9cf8 == cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8) { | ||||
351 | #if _DEBUG_REFCOUNTS | ||||
352 | count_active_frame_cache_instances -= 1; | ||||
353 | count_released_frame_cache_instances += 1; | ||||
354 | #endif | ||||
355 | Py_DECREF(cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8); | ||||
356 | cache_frame_f898b9b5d7d91c30f9a7245c401a9cf8 = NULL; | ||||
357 | } | ||||
358 | |||||
359 | assertFrameObject(frame_f898b9b5d7d91c30f9a7245c401a9cf8); | ||||
360 | |||||
361 | // Put the previous frame back on top. | ||||
362 | popFrameStack(tstate); | ||||
363 | |||||
364 | // Return the error. | ||||
365 | goto try_except_handler_1; | ||||
366 | frame_no_exception_1:; | ||||
367 | Py_XDECREF(tmp_for_loop_1__iter_value); | ||||
368 | tmp_for_loop_1__iter_value = NULL; | ||||
369 | CHECK_OBJECT(tmp_for_loop_1__for_iterator); | ||||
370 | Py_DECREF(tmp_for_loop_1__for_iterator); | ||||
371 | tmp_for_loop_1__for_iterator = NULL; | ||||
372 | tmp_return_value = Py_None; | ||||
373 | Py_INCREF(tmp_return_value); | ||||
374 | goto try_return_handler_1; | ||||
375 | NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); | ||||
376 | return NULL; | ||||
377 | // Return handler code: | ||||
378 | try_return_handler_1:; | ||||
379 | Py_XDECREF(var_x); | ||||
380 | var_x = NULL; | ||||
381 | CHECK_OBJECT(var_local_value); | ||||
382 | Py_DECREF(var_local_value); | ||||
383 | var_local_value = NULL; | ||||
384 | goto function_return_exit; | ||||
385 | // Exception handler code: | ||||
386 | try_except_handler_1:; | ||||
387 | exception_keeper_type_2 = exception_type; | ||||
388 | exception_keeper_value_2 = exception_value; | ||||
389 | exception_keeper_tb_2 = exception_tb; | ||||
390 | exception_keeper_lineno_2 = exception_lineno; | ||||
391 | exception_type = NULL; | ||||
392 | exception_value = NULL; | ||||
393 | exception_tb = NULL; | ||||
394 | exception_lineno = 0; | ||||
395 | |||||
396 | Py_XDECREF(var_x); | ||||
397 | var_x = NULL; | ||||
398 | Py_XDECREF(var_local_value); | ||||
399 | var_local_value = NULL; | ||||
400 | // Re-raise. | ||||
401 | exception_type = exception_keeper_type_2; | ||||
402 | exception_value = exception_keeper_value_2; | ||||
403 | exception_tb = exception_keeper_tb_2; | ||||
404 | exception_lineno = exception_keeper_lineno_2; | ||||
405 | 259 | ||||
406 | goto function_exception_exit; | 260 | goto function_exception_exit; | ||
407 | // End of try: | 261 | // End of try: | ||
408 | 262 | ||||
409 | NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); | 263 | NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); | ||
817 | 671 | ||||
818 | // Module code. | 672 | // Module code. | ||
819 | { | 673 | { | ||
820 | PyObject *tmp_assign_source_1; | 674 | PyObject *tmp_assign_source_1; | ||
821 | tmp_assign_source_1 = Py_None; | 675 | tmp_assign_source_1 = Py_None; | ||
n | 822 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1); | n | 676 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1); |
823 | } | 677 | } | ||
824 | { | 678 | { | ||
825 | PyObject *tmp_assign_source_2; | 679 | PyObject *tmp_assign_source_2; | ||
n | 826 | tmp_assign_source_2 = mod_consts[3]; | n | 680 | tmp_assign_source_2 = mod_consts[2]; |
827 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2); | 681 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2); | ||
828 | } | 682 | } | ||
829 | frame_544d6601aeb38f2297e6915b5fb288ce = MAKE_MODULE_FRAME(codeobj_544d6601aeb38f2297e6915b5fb288ce, module___main__); | 683 | frame_544d6601aeb38f2297e6915b5fb288ce = MAKE_MODULE_FRAME(codeobj_544d6601aeb38f2297e6915b5fb288ce, module___main__); | ||
830 | 684 | ||||
831 | // Push the new frame as the currently active one, and we should be exclusively | 685 | // Push the new frame as the currently active one, and we should be exclusively | ||
832 | // owning it. | 686 | // owning it. | ||
838 | PyObject *tmp_assign_source_3; | 692 | PyObject *tmp_assign_source_3; | ||
839 | PyObject *tmp_name_value_1; | 693 | PyObject *tmp_name_value_1; | ||
840 | PyObject *tmp_globals_arg_value_1; | 694 | PyObject *tmp_globals_arg_value_1; | ||
841 | PyObject *tmp_locals_arg_value_1; | 695 | PyObject *tmp_locals_arg_value_1; | ||
842 | PyObject *tmp_fromlist_value_1; | 696 | PyObject *tmp_fromlist_value_1; | ||
n | 843 | tmp_name_value_1 = mod_consts[5]; | n | 697 | tmp_name_value_1 = mod_consts[4]; |
844 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | 698 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | ||
845 | tmp_locals_arg_value_1 = Py_None; | 699 | tmp_locals_arg_value_1 = Py_None; | ||
846 | tmp_fromlist_value_1 = Py_None; | 700 | tmp_fromlist_value_1 = Py_None; | ||
847 | frame_544d6601aeb38f2297e6915b5fb288ce->m_frame.f_lineno = 4; | 701 | frame_544d6601aeb38f2297e6915b5fb288ce->m_frame.f_lineno = 4; | ||
848 | tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); | 702 | tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); | ||
854 | 708 | ||||
855 | exception_lineno = 4; | 709 | exception_lineno = 4; | ||
856 | 710 | ||||
857 | goto frame_exception_exit_1; | 711 | goto frame_exception_exit_1; | ||
858 | } | 712 | } | ||
n | 859 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3); | n | 713 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3); |
860 | } | 714 | } | ||
861 | { | 715 | { | ||
862 | PyObject *tmp_assign_source_4; | 716 | PyObject *tmp_assign_source_4; | ||
n | 863 | tmp_assign_source_4 = mod_consts[6]; | n | 717 | tmp_assign_source_4 = mod_consts[5]; |
864 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); | 718 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); | ||
865 | } | 719 | } | ||
866 | { | 720 | { | ||
867 | PyObject *tmp_assign_source_5; | 721 | PyObject *tmp_assign_source_5; | ||
n | 868 | tmp_assign_source_5 = mod_consts[1]; | n | 722 | tmp_assign_source_5 = mod_consts[6]; |
869 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5); | 723 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5); | ||
870 | } | 724 | } | ||
871 | { | 725 | { | ||
872 | PyObject *tmp_assign_source_6; | 726 | PyObject *tmp_assign_source_6; | ||
873 | 727 | ||||
878 | } | 732 | } | ||
879 | { | 733 | { | ||
880 | PyObject *tmp_assign_source_7; | 734 | PyObject *tmp_assign_source_7; | ||
881 | PyObject *tmp_iter_arg_1; | 735 | PyObject *tmp_iter_arg_1; | ||
882 | PyObject *tmp_called_instance_1; | 736 | PyObject *tmp_called_instance_1; | ||
n | 883 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]); | n | 737 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[4]); |
884 | 738 | ||||
885 | if (unlikely(tmp_called_instance_1 == NULL)) { | 739 | if (unlikely(tmp_called_instance_1 == NULL)) { | ||
t | 886 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]); | t | 740 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[4]); |
887 | } | 741 | } | ||
888 | 742 | ||||
889 | assert(!(tmp_called_instance_1 == NULL)); | 743 | assert(!(tmp_called_instance_1 == NULL)); | ||
890 | frame_544d6601aeb38f2297e6915b5fb288ce->m_frame.f_lineno = 25; | 744 | frame_544d6601aeb38f2297e6915b5fb288ce->m_frame.f_lineno = 25; | ||
891 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( | 745 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( |