Construct DictCreation
Performance Diagrams
Source Code with Construct
dict_val3 = module_value3 dict_val4 = module_value4 # construct_begin l = { dict_key1: dict_val1, dict_key2: dict_val2, dict_key3: dict_val3, dict_key4: dict_val4, } # construct_alternative return ( l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4, ) 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
dict_val3 = module_value3 dict_val4 = module_value4 # construct_begin # construct_alternative l = 1 # construct_end return ( l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4, ) 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 | ||||
---|---|---|---|---|---|
19 | dict_val2 = module_value2 | 19 | dict_val2 = module_value2 | ||
20 | dict_val3 = module_value3 | 20 | dict_val3 = module_value3 | ||
21 | dict_val4 = module_value4 | 21 | dict_val4 = module_value4 | ||
22 | 22 | ||||
23 | # construct_begin | 23 | # construct_begin | ||
n | 24 | l = { | n | ||
25 | dict_key1: dict_val1, | ||||
26 | dict_key2: dict_val2, | ||||
27 | dict_key3: dict_val3, | ||||
28 | dict_key4: dict_val4, | ||||
29 | } | ||||
30 | # construct_alternative | ||||
31 | 24 | ||||
32 | 25 | ||||
t | t | 26 | |||
27 | |||||
28 | |||||
29 | |||||
30 | # construct_alternative | ||||
31 | l = 1 | ||||
32 | # construct_end | ||||
33 | 33 | ||||
34 | return ( | 34 | return ( | ||
35 | l, | 35 | l, | ||
36 | dict_val1, | 36 | dict_val1, | ||
37 | dict_val2, | 37 | dict_val2, |
Context Diff of Generated Code
Construct | Baseline | ||||
---|---|---|---|---|---|
31 | 31 | ||||
32 | PyObject *module___main__; | 32 | PyObject *module___main__; | ||
33 | PyDictObject *moduledict___main__; | 33 | PyDictObject *moduledict___main__; | ||
34 | 34 | ||||
35 | /* The declarations of module constants used, if any. */ | 35 | /* The declarations of module constants used, if any. */ | ||
n | 36 | static PyObject *mod_consts[20]; | n | 36 | static PyObject *mod_consts[21]; |
37 | #ifndef __NUITKA_NO_ASSERT__ | 37 | #ifndef __NUITKA_NO_ASSERT__ | ||
n | 38 | static Py_hash_t mod_consts_hash[20]; | n | 38 | static Py_hash_t mod_consts_hash[21]; |
39 | #endif | 39 | #endif | ||
40 | 40 | ||||
41 | static PyObject *module_filename_obj = NULL; | 41 | static PyObject *module_filename_obj = NULL; | ||
42 | 42 | ||||
43 | /* Indicator if this modules private constants were created yet. */ | 43 | /* Indicator if this modules private constants were created yet. */ | ||
48 | if (constants_created == false) { | 48 | if (constants_created == false) { | ||
49 | loadConstantsBlob(tstate, &mod_consts[0], UNTRANSLATE("__main__")); | 49 | loadConstantsBlob(tstate, &mod_consts[0], UNTRANSLATE("__main__")); | ||
50 | constants_created = true; | 50 | constants_created = true; | ||
51 | 51 | ||||
52 | #ifndef __NUITKA_NO_ASSERT__ | 52 | #ifndef __NUITKA_NO_ASSERT__ | ||
n | 53 | for (int i = 0; i < 20; i++) { | n | 53 | for (int i = 0; i < 21; i++) { |
54 | mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]); | 54 | mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]); | ||
55 | } | 55 | } | ||
56 | #endif | 56 | #endif | ||
57 | } | 57 | } | ||
58 | } | 58 | } | ||
68 | #ifndef __NUITKA_NO_ASSERT__ | 68 | #ifndef __NUITKA_NO_ASSERT__ | ||
69 | void checkModuleConstants___main__(PyThreadState *tstate) { | 69 | void checkModuleConstants___main__(PyThreadState *tstate) { | ||
70 | // The module may not have been used at all, then ignore this. | 70 | // The module may not have been used at all, then ignore this. | ||
71 | if (constants_created == false) return; | 71 | if (constants_created == false) return; | ||
72 | 72 | ||||
n | 73 | for (int i = 0; i < 20; i++) { | n | 73 | for (int i = 0; i < 21; i++) { |
74 | assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i])); | 74 | assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i])); | ||
75 | CHECK_OBJECT_DEEP(mod_consts[i]); | 75 | CHECK_OBJECT_DEEP(mod_consts[i]); | ||
76 | } | 76 | } | ||
77 | } | 77 | } | ||
78 | #endif | 78 | #endif | ||
82 | static PyCodeObject *codeobj_af42d691ff26b82f4b712204a54f3d42; | 82 | static PyCodeObject *codeobj_af42d691ff26b82f4b712204a54f3d42; | ||
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[5]; CHECK_OBJECT(module_filename_obj); | n | 87 | module_filename_obj = mod_consts[6]; CHECK_OBJECT(module_filename_obj); |
88 | codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[18], mod_consts[18], NULL, NULL, 0, 0, 0); | 88 | codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9 = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[19], mod_consts[19], NULL, NULL, 0, 0, 0); | ||
89 | codeobj_main = codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9; | 89 | codeobj_main = codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9; | ||
n | 90 | codeobj_af42d691ff26b82f4b712204a54f3d42 = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[13], mod_consts[13], mod_consts[19], NULL, 0, 0, 0); | n | 90 | codeobj_af42d691ff26b82f4b712204a54f3d42 = MAKE_CODE_OBJECT(module_filename_obj, 10, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[14], mod_consts[14], mod_consts[20], NULL, 0, 0, 0); |
91 | } | 91 | } | ||
92 | 92 | ||||
93 | // The module function declarations. | 93 | // The module function declarations. | ||
94 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | 94 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | ||
95 | 95 | ||||
108 | PyObject *var_dict_key4 = NULL; | 108 | PyObject *var_dict_key4 = NULL; | ||
109 | PyObject *var_dict_val1 = NULL; | 109 | PyObject *var_dict_val1 = NULL; | ||
110 | PyObject *var_dict_val2 = NULL; | 110 | PyObject *var_dict_val2 = NULL; | ||
111 | PyObject *var_dict_val3 = NULL; | 111 | PyObject *var_dict_val3 = NULL; | ||
112 | PyObject *var_dict_val4 = NULL; | 112 | PyObject *var_dict_val4 = NULL; | ||
n | 113 | PyObject *var_l = NULL; | n | ||
114 | struct Nuitka_FrameObject *frame_af42d691ff26b82f4b712204a54f3d42; | 113 | struct Nuitka_FrameObject *frame_af42d691ff26b82f4b712204a54f3d42; | ||
115 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | 114 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | ||
116 | PyObject *exception_type = NULL; | 115 | PyObject *exception_type = NULL; | ||
117 | PyObject *exception_value = NULL; | 116 | PyObject *exception_value = NULL; | ||
118 | PyTracebackObject *exception_tb = NULL; | 117 | PyTracebackObject *exception_tb = NULL; | ||
119 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | 118 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | ||
n | 120 | int tmp_res; | n | ||
121 | static struct Nuitka_FrameObject *cache_frame_af42d691ff26b82f4b712204a54f3d42 = NULL; | 119 | static struct Nuitka_FrameObject *cache_frame_af42d691ff26b82f4b712204a54f3d42 = NULL; | ||
122 | PyObject *tmp_return_value = NULL; | 120 | PyObject *tmp_return_value = NULL; | ||
123 | PyObject *exception_keeper_type_1; | 121 | PyObject *exception_keeper_type_1; | ||
124 | PyObject *exception_keeper_value_1; | 122 | PyObject *exception_keeper_value_1; | ||
125 | PyTracebackObject *exception_keeper_tb_1; | 123 | PyTracebackObject *exception_keeper_tb_1; | ||
167 | 165 | ||||
168 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 166 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
169 | 167 | ||||
170 | 168 | ||||
171 | exception_lineno = 13; | 169 | exception_lineno = 13; | ||
n | 172 | type_description_1 = "ooooooooo"; | n | 170 | type_description_1 = "ooooooooN"; |
173 | goto frame_exception_exit_1; | 171 | goto frame_exception_exit_1; | ||
174 | } | 172 | } | ||
175 | assert(var_dict_key1 == NULL); | 173 | assert(var_dict_key1 == NULL); | ||
176 | Py_INCREF(tmp_assign_source_1); | 174 | Py_INCREF(tmp_assign_source_1); | ||
177 | var_dict_key1 = tmp_assign_source_1; | 175 | var_dict_key1 = tmp_assign_source_1; | ||
189 | 187 | ||||
190 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 188 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
191 | 189 | ||||
192 | 190 | ||||
193 | exception_lineno = 14; | 191 | exception_lineno = 14; | ||
n | 194 | type_description_1 = "ooooooooo"; | n | 192 | type_description_1 = "ooooooooN"; |
195 | goto frame_exception_exit_1; | 193 | goto frame_exception_exit_1; | ||
196 | } | 194 | } | ||
197 | assert(var_dict_key2 == NULL); | 195 | assert(var_dict_key2 == NULL); | ||
198 | Py_INCREF(tmp_assign_source_2); | 196 | Py_INCREF(tmp_assign_source_2); | ||
199 | var_dict_key2 = tmp_assign_source_2; | 197 | var_dict_key2 = tmp_assign_source_2; | ||
211 | 209 | ||||
212 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 210 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
213 | 211 | ||||
214 | 212 | ||||
215 | exception_lineno = 15; | 213 | exception_lineno = 15; | ||
n | 216 | type_description_1 = "ooooooooo"; | n | 214 | type_description_1 = "ooooooooN"; |
217 | goto frame_exception_exit_1; | 215 | goto frame_exception_exit_1; | ||
218 | } | 216 | } | ||
219 | assert(var_dict_key3 == NULL); | 217 | assert(var_dict_key3 == NULL); | ||
220 | Py_INCREF(tmp_assign_source_3); | 218 | Py_INCREF(tmp_assign_source_3); | ||
221 | var_dict_key3 = tmp_assign_source_3; | 219 | var_dict_key3 = tmp_assign_source_3; | ||
233 | 231 | ||||
234 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 232 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
235 | 233 | ||||
236 | 234 | ||||
237 | exception_lineno = 16; | 235 | exception_lineno = 16; | ||
n | 238 | type_description_1 = "ooooooooo"; | n | 236 | type_description_1 = "ooooooooN"; |
239 | goto frame_exception_exit_1; | 237 | goto frame_exception_exit_1; | ||
240 | } | 238 | } | ||
241 | assert(var_dict_key4 == NULL); | 239 | assert(var_dict_key4 == NULL); | ||
242 | Py_INCREF(tmp_assign_source_4); | 240 | Py_INCREF(tmp_assign_source_4); | ||
243 | var_dict_key4 = tmp_assign_source_4; | 241 | var_dict_key4 = tmp_assign_source_4; | ||
255 | 253 | ||||
256 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 254 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
257 | 255 | ||||
258 | 256 | ||||
259 | exception_lineno = 18; | 257 | exception_lineno = 18; | ||
n | 260 | type_description_1 = "ooooooooo"; | n | 258 | type_description_1 = "ooooooooN"; |
261 | goto frame_exception_exit_1; | 259 | goto frame_exception_exit_1; | ||
262 | } | 260 | } | ||
263 | assert(var_dict_val1 == NULL); | 261 | assert(var_dict_val1 == NULL); | ||
264 | Py_INCREF(tmp_assign_source_5); | 262 | Py_INCREF(tmp_assign_source_5); | ||
265 | var_dict_val1 = tmp_assign_source_5; | 263 | var_dict_val1 = tmp_assign_source_5; | ||
277 | 275 | ||||
278 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 276 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
279 | 277 | ||||
280 | 278 | ||||
281 | exception_lineno = 19; | 279 | exception_lineno = 19; | ||
n | 282 | type_description_1 = "ooooooooo"; | n | 280 | type_description_1 = "ooooooooN"; |
283 | goto frame_exception_exit_1; | 281 | goto frame_exception_exit_1; | ||
284 | } | 282 | } | ||
285 | assert(var_dict_val2 == NULL); | 283 | assert(var_dict_val2 == NULL); | ||
286 | Py_INCREF(tmp_assign_source_6); | 284 | Py_INCREF(tmp_assign_source_6); | ||
287 | var_dict_val2 = tmp_assign_source_6; | 285 | var_dict_val2 = tmp_assign_source_6; | ||
299 | 297 | ||||
300 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 298 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
301 | 299 | ||||
302 | 300 | ||||
303 | exception_lineno = 20; | 301 | exception_lineno = 20; | ||
n | 304 | type_description_1 = "ooooooooo"; | n | 302 | type_description_1 = "ooooooooN"; |
305 | goto frame_exception_exit_1; | 303 | goto frame_exception_exit_1; | ||
306 | } | 304 | } | ||
307 | assert(var_dict_val3 == NULL); | 305 | assert(var_dict_val3 == NULL); | ||
308 | Py_INCREF(tmp_assign_source_7); | 306 | Py_INCREF(tmp_assign_source_7); | ||
309 | var_dict_val3 = tmp_assign_source_7; | 307 | var_dict_val3 = tmp_assign_source_7; | ||
321 | 319 | ||||
322 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 320 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||
323 | 321 | ||||
324 | 322 | ||||
325 | exception_lineno = 21; | 323 | exception_lineno = 21; | ||
n | 326 | type_description_1 = "ooooooooo"; | n | 324 | type_description_1 = "ooooooooN"; |
327 | goto frame_exception_exit_1; | 325 | goto frame_exception_exit_1; | ||
328 | } | 326 | } | ||
329 | assert(var_dict_val4 == NULL); | 327 | assert(var_dict_val4 == NULL); | ||
330 | Py_INCREF(tmp_assign_source_8); | 328 | Py_INCREF(tmp_assign_source_8); | ||
331 | var_dict_val4 = tmp_assign_source_8; | 329 | var_dict_val4 = tmp_assign_source_8; | ||
n | 332 | } | n | ||
333 | { | ||||
334 | PyObject *tmp_assign_source_9; | ||||
335 | PyObject *tmp_dict_key_1; | ||||
336 | PyObject *tmp_dict_value_1; | ||||
337 | CHECK_OBJECT(var_dict_val1); | ||||
338 | tmp_dict_value_1 = var_dict_val1; | ||||
339 | CHECK_OBJECT(var_dict_key1); | ||||
340 | tmp_dict_key_1 = var_dict_key1; | ||||
341 | tmp_assign_source_9 = _PyDict_NewPresized( 4 ); | ||||
342 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
343 | if (tmp_res != 0) { | ||||
344 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
345 | |||||
346 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
347 | |||||
348 | |||||
349 | exception_lineno = 25; | ||||
350 | type_description_1 = "ooooooooo"; | ||||
351 | goto dict_build_exception_1; | ||||
352 | } | ||||
353 | CHECK_OBJECT(var_dict_val2); | ||||
354 | tmp_dict_value_1 = var_dict_val2; | ||||
355 | CHECK_OBJECT(var_dict_key2); | ||||
356 | tmp_dict_key_1 = var_dict_key2; | ||||
357 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
358 | if (tmp_res != 0) { | ||||
359 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
360 | |||||
361 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
362 | |||||
363 | |||||
364 | exception_lineno = 26; | ||||
365 | type_description_1 = "ooooooooo"; | ||||
366 | goto dict_build_exception_1; | ||||
367 | } | ||||
368 | CHECK_OBJECT(var_dict_val3); | ||||
369 | tmp_dict_value_1 = var_dict_val3; | ||||
370 | CHECK_OBJECT(var_dict_key3); | ||||
371 | tmp_dict_key_1 = var_dict_key3; | ||||
372 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
373 | if (tmp_res != 0) { | ||||
374 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
375 | |||||
376 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
377 | |||||
378 | |||||
379 | exception_lineno = 27; | ||||
380 | type_description_1 = "ooooooooo"; | ||||
381 | goto dict_build_exception_1; | ||||
382 | } | ||||
383 | CHECK_OBJECT(var_dict_val4); | ||||
384 | tmp_dict_value_1 = var_dict_val4; | ||||
385 | CHECK_OBJECT(var_dict_key4); | ||||
386 | tmp_dict_key_1 = var_dict_key4; | ||||
387 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
388 | if (tmp_res != 0) { | ||||
389 | assert(HAS_ERROR_OCCURRED(tstate)); | ||||
390 | |||||
391 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | ||||
392 | |||||
393 | |||||
394 | exception_lineno = 28; | ||||
395 | type_description_1 = "ooooooooo"; | ||||
396 | goto dict_build_exception_1; | ||||
397 | } | ||||
398 | goto dict_build_noexception_1; | ||||
399 | // Exception handling pass through code for dict_build: | ||||
400 | dict_build_exception_1:; | ||||
401 | Py_DECREF(tmp_assign_source_9); | ||||
402 | goto frame_exception_exit_1; | ||||
403 | // Finished with no exception for dict_build: | ||||
404 | dict_build_noexception_1:; | ||||
405 | assert(var_l == NULL); | ||||
406 | var_l = tmp_assign_source_9; | ||||
407 | } | 330 | } | ||
408 | 331 | ||||
409 | 332 | ||||
410 | // Put the previous frame back on top. | 333 | // Put the previous frame back on top. | ||
411 | popFrameStack(tstate); | 334 | popFrameStack(tstate); | ||
430 | var_dict_key4, | 353 | var_dict_key4, | ||
431 | var_dict_val1, | 354 | var_dict_val1, | ||
432 | var_dict_val2, | 355 | var_dict_val2, | ||
433 | var_dict_val3, | 356 | var_dict_val3, | ||
434 | var_dict_val4, | 357 | var_dict_val4, | ||
n | 435 | var_l | n | 358 | NULL |
436 | ); | 359 | ); | ||
437 | 360 | ||||
438 | 361 | ||||
439 | // Release cached frame if used for exception. | 362 | // Release cached frame if used for exception. | ||
440 | if (frame_af42d691ff26b82f4b712204a54f3d42 == cache_frame_af42d691ff26b82f4b712204a54f3d42) { | 363 | if (frame_af42d691ff26b82f4b712204a54f3d42 == cache_frame_af42d691ff26b82f4b712204a54f3d42) { | ||
454 | // Return the error. | 377 | // Return the error. | ||
455 | goto try_except_handler_1; | 378 | goto try_except_handler_1; | ||
456 | frame_no_exception_1:; | 379 | frame_no_exception_1:; | ||
457 | { | 380 | { | ||
458 | PyObject *tmp_tuple_element_1; | 381 | PyObject *tmp_tuple_element_1; | ||
n | 459 | CHECK_OBJECT(var_l); | n | ||
460 | tmp_tuple_element_1 = var_l; | 382 | tmp_tuple_element_1 = mod_consts[4]; | ||
461 | tmp_return_value = MAKE_TUPLE_EMPTY(9); | 383 | tmp_return_value = MAKE_TUPLE_EMPTY(9); | ||
462 | PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); | 384 | PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); | ||
463 | CHECK_OBJECT(var_dict_val1); | 385 | CHECK_OBJECT(var_dict_val1); | ||
464 | tmp_tuple_element_1 = var_dict_val1; | 386 | tmp_tuple_element_1 = var_dict_val1; | ||
465 | PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); | 387 | PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); | ||
512 | Py_DECREF(var_dict_val3); | 434 | Py_DECREF(var_dict_val3); | ||
513 | var_dict_val3 = NULL; | 435 | var_dict_val3 = NULL; | ||
514 | CHECK_OBJECT(var_dict_val4); | 436 | CHECK_OBJECT(var_dict_val4); | ||
515 | Py_DECREF(var_dict_val4); | 437 | Py_DECREF(var_dict_val4); | ||
516 | var_dict_val4 = NULL; | 438 | var_dict_val4 = NULL; | ||
n | 517 | CHECK_OBJECT(var_l); | n | ||
518 | Py_DECREF(var_l); | ||||
519 | var_l = NULL; | ||||
520 | goto function_return_exit; | 439 | goto function_return_exit; | ||
521 | // Exception handler code: | 440 | // Exception handler code: | ||
522 | try_except_handler_1:; | 441 | try_except_handler_1:; | ||
523 | exception_keeper_type_1 = exception_type; | 442 | exception_keeper_type_1 = exception_type; | ||
524 | exception_keeper_value_1 = exception_value; | 443 | exception_keeper_value_1 = exception_value; | ||
541 | var_dict_val1 = NULL; | 460 | var_dict_val1 = NULL; | ||
542 | Py_XDECREF(var_dict_val2); | 461 | Py_XDECREF(var_dict_val2); | ||
543 | var_dict_val2 = NULL; | 462 | var_dict_val2 = NULL; | ||
544 | Py_XDECREF(var_dict_val3); | 463 | Py_XDECREF(var_dict_val3); | ||
545 | var_dict_val3 = NULL; | 464 | var_dict_val3 = NULL; | ||
n | 546 | Py_XDECREF(var_dict_val4); | n | ||
547 | var_dict_val4 = NULL; | ||||
548 | // Re-raise. | 465 | // Re-raise. | ||
549 | exception_type = exception_keeper_type_1; | 466 | exception_type = exception_keeper_type_1; | ||
550 | exception_value = exception_keeper_value_1; | 467 | exception_value = exception_keeper_value_1; | ||
551 | exception_tb = exception_keeper_tb_1; | 468 | exception_tb = exception_keeper_tb_1; | ||
552 | exception_lineno = exception_keeper_lineno_1; | 469 | exception_lineno = exception_keeper_lineno_1; | ||
578 | 495 | ||||
579 | 496 | ||||
580 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { | 497 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { | ||
581 | struct Nuitka_FunctionObject *result = Nuitka_Function_New( | 498 | struct Nuitka_FunctionObject *result = Nuitka_Function_New( | ||
582 | impl___main__$$$function__1_calledRepeatedly, | 499 | impl___main__$$$function__1_calledRepeatedly, | ||
n | 583 | mod_consts[13], | n | 500 | mod_consts[14], |
584 | #if PYTHON_VERSION >= 0x300 | 501 | #if PYTHON_VERSION >= 0x300 | ||
585 | NULL, | 502 | NULL, | ||
586 | #endif | 503 | #endif | ||
587 | codeobj_af42d691ff26b82f4b712204a54f3d42, | 504 | codeobj_af42d691ff26b82f4b712204a54f3d42, | ||
588 | NULL, | 505 | NULL, | ||
968 | 885 | ||||
969 | // Module code. | 886 | // Module code. | ||
970 | { | 887 | { | ||
971 | PyObject *tmp_assign_source_1; | 888 | PyObject *tmp_assign_source_1; | ||
972 | tmp_assign_source_1 = Py_None; | 889 | tmp_assign_source_1 = Py_None; | ||
n | 973 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); | n | 890 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_1); |
974 | } | 891 | } | ||
975 | { | 892 | { | ||
976 | PyObject *tmp_assign_source_2; | 893 | PyObject *tmp_assign_source_2; | ||
n | 977 | tmp_assign_source_2 = mod_consts[5]; | n | 894 | tmp_assign_source_2 = mod_consts[6]; |
978 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); | 895 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_2); | ||
979 | } | 896 | } | ||
980 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9 = MAKE_MODULE_FRAME(codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9, module___main__); | 897 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9 = MAKE_MODULE_FRAME(codeobj_d5f1dfb2e1b34bb767c58eccab8dbec9, module___main__); | ||
981 | 898 | ||||
982 | // Push the new frame as the currently active one, and we should be exclusively | 899 | // Push the new frame as the currently active one, and we should be exclusively | ||
983 | // owning it. | 900 | // owning it. | ||
989 | PyObject *tmp_assign_source_3; | 906 | PyObject *tmp_assign_source_3; | ||
990 | PyObject *tmp_name_value_1; | 907 | PyObject *tmp_name_value_1; | ||
991 | PyObject *tmp_globals_arg_value_1; | 908 | PyObject *tmp_globals_arg_value_1; | ||
992 | PyObject *tmp_locals_arg_value_1; | 909 | PyObject *tmp_locals_arg_value_1; | ||
993 | PyObject *tmp_fromlist_value_1; | 910 | PyObject *tmp_fromlist_value_1; | ||
n | 994 | tmp_name_value_1 = mod_consts[7]; | n | 911 | tmp_name_value_1 = mod_consts[8]; |
995 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | 912 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | ||
996 | tmp_locals_arg_value_1 = Py_None; | 913 | tmp_locals_arg_value_1 = Py_None; | ||
997 | tmp_fromlist_value_1 = Py_None; | 914 | tmp_fromlist_value_1 = Py_None; | ||
998 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9->m_frame.f_lineno = 4; | 915 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9->m_frame.f_lineno = 4; | ||
999 | 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); | 916 | 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); | ||
1005 | 922 | ||||
1006 | exception_lineno = 4; | 923 | exception_lineno = 4; | ||
1007 | 924 | ||||
1008 | goto frame_exception_exit_1; | 925 | goto frame_exception_exit_1; | ||
1009 | } | 926 | } | ||
n | 1010 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); | n | 927 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_3); |
1011 | } | 928 | } | ||
1012 | { | 929 | { | ||
1013 | PyObject *tmp_assign_source_4; | 930 | PyObject *tmp_assign_source_4; | ||
n | 1014 | tmp_assign_source_4 = mod_consts[8]; | n | 931 | tmp_assign_source_4 = mod_consts[9]; |
1015 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); | 932 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); | ||
1016 | } | 933 | } | ||
1017 | { | 934 | { | ||
1018 | PyObject *tmp_assign_source_5; | 935 | PyObject *tmp_assign_source_5; | ||
n | 1019 | tmp_assign_source_5 = mod_consts[8]; | n | 936 | tmp_assign_source_5 = mod_consts[9]; |
1020 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5); | 937 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5); | ||
1021 | } | 938 | } | ||
1022 | { | 939 | { | ||
1023 | PyObject *tmp_assign_source_6; | 940 | PyObject *tmp_assign_source_6; | ||
n | 1024 | tmp_assign_source_6 = mod_consts[8]; | n | 941 | tmp_assign_source_6 = mod_consts[9]; |
1025 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_6); | 942 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_6); | ||
1026 | } | 943 | } | ||
1027 | { | 944 | { | ||
1028 | PyObject *tmp_assign_source_7; | 945 | PyObject *tmp_assign_source_7; | ||
n | 1029 | tmp_assign_source_7 = mod_consts[8]; | n | 946 | tmp_assign_source_7 = mod_consts[9]; |
1030 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_7); | 947 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_7); | ||
1031 | } | 948 | } | ||
1032 | { | 949 | { | ||
1033 | PyObject *tmp_assign_source_8; | 950 | PyObject *tmp_assign_source_8; | ||
n | 1034 | tmp_assign_source_8 = mod_consts[8]; | n | 951 | tmp_assign_source_8 = mod_consts[9]; |
1035 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8); | 952 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8); | ||
1036 | } | 953 | } | ||
1037 | { | 954 | { | ||
1038 | PyObject *tmp_assign_source_9; | 955 | PyObject *tmp_assign_source_9; | ||
n | 1039 | tmp_assign_source_9 = mod_consts[8]; | n | 956 | tmp_assign_source_9 = mod_consts[9]; |
1040 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_9); | 957 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_9); | ||
1041 | } | 958 | } | ||
1042 | { | 959 | { | ||
1043 | PyObject *tmp_assign_source_10; | 960 | PyObject *tmp_assign_source_10; | ||
n | 1044 | tmp_assign_source_10 = mod_consts[8]; | n | 961 | tmp_assign_source_10 = mod_consts[9]; |
1045 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_10); | 962 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10); | ||
1046 | } | 963 | } | ||
1047 | { | 964 | { | ||
1048 | PyObject *tmp_assign_source_11; | 965 | PyObject *tmp_assign_source_11; | ||
n | 1049 | tmp_assign_source_11 = mod_consts[8]; | n | 966 | tmp_assign_source_11 = mod_consts[9]; |
1050 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_11); | 967 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_11); | ||
1051 | } | 968 | } | ||
1052 | { | 969 | { | ||
1053 | PyObject *tmp_assign_source_12; | 970 | PyObject *tmp_assign_source_12; | ||
1054 | 971 | ||||
1055 | 972 | ||||
1056 | tmp_assign_source_12 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | 973 | tmp_assign_source_12 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | ||
1057 | 974 | ||||
n | 1058 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_12); | n | 975 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_12); |
1059 | } | 976 | } | ||
1060 | { | 977 | { | ||
1061 | PyObject *tmp_assign_source_13; | 978 | PyObject *tmp_assign_source_13; | ||
1062 | PyObject *tmp_iter_arg_1; | 979 | PyObject *tmp_iter_arg_1; | ||
1063 | PyObject *tmp_called_instance_1; | 980 | PyObject *tmp_called_instance_1; | ||
n | 1064 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]); | n | 981 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]); |
1065 | 982 | ||||
1066 | if (unlikely(tmp_called_instance_1 == NULL)) { | 983 | if (unlikely(tmp_called_instance_1 == NULL)) { | ||
n | 1067 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]); | n | 984 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]); |
1068 | } | 985 | } | ||
1069 | 986 | ||||
1070 | assert(!(tmp_called_instance_1 == NULL)); | 987 | assert(!(tmp_called_instance_1 == NULL)); | ||
1071 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9->m_frame.f_lineno = 47; | 988 | frame_d5f1dfb2e1b34bb767c58eccab8dbec9->m_frame.f_lineno = 47; | ||
1072 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( | 989 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( | ||
1073 | tstate, | 990 | tstate, | ||
1074 | tmp_called_instance_1, | 991 | tmp_called_instance_1, | ||
n | 1075 | mod_consts[14], | n | 992 | mod_consts[15], |
1076 | &PyTuple_GET_ITEM(mod_consts[15], 0) | 993 | &PyTuple_GET_ITEM(mod_consts[16], 0) | ||
1077 | ); | 994 | ); | ||
1078 | 995 | ||||
1079 | if (tmp_iter_arg_1 == NULL) { | 996 | if (tmp_iter_arg_1 == NULL) { | ||
1080 | assert(HAS_ERROR_OCCURRED(tstate)); | 997 | assert(HAS_ERROR_OCCURRED(tstate)); | ||
1081 | 998 | ||||
1131 | } | 1048 | } | ||
1132 | { | 1049 | { | ||
1133 | PyObject *tmp_assign_source_15; | 1050 | PyObject *tmp_assign_source_15; | ||
1134 | CHECK_OBJECT(tmp_for_loop_1__iter_value); | 1051 | CHECK_OBJECT(tmp_for_loop_1__iter_value); | ||
1135 | tmp_assign_source_15 = tmp_for_loop_1__iter_value; | 1052 | tmp_assign_source_15 = tmp_for_loop_1__iter_value; | ||
n | 1136 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[16], tmp_assign_source_15); | n | 1053 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[17], tmp_assign_source_15); |
1137 | } | 1054 | } | ||
1138 | { | 1055 | { | ||
1139 | PyObject *tmp_called_value_1; | 1056 | PyObject *tmp_called_value_1; | ||
1140 | PyObject *tmp_call_result_1; | 1057 | PyObject *tmp_call_result_1; | ||
n | 1141 | tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[13]); | n | 1058 | tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[14]); |
1142 | 1059 | ||||
1143 | if (unlikely(tmp_called_value_1 == NULL)) { | 1060 | if (unlikely(tmp_called_value_1 == NULL)) { | ||
n | 1144 | tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[13]); | n | 1061 | tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[14]); |
1145 | } | 1062 | } | ||
1146 | 1063 | ||||
1147 | if (tmp_called_value_1 == NULL) { | 1064 | if (tmp_called_value_1 == NULL) { | ||
1148 | assert(HAS_ERROR_OCCURRED(tstate)); | 1065 | assert(HAS_ERROR_OCCURRED(tstate)); | ||
1149 | 1066 | ||||
1209 | Py_XDECREF(tmp_for_loop_1__iter_value); | 1126 | Py_XDECREF(tmp_for_loop_1__iter_value); | ||
1210 | tmp_for_loop_1__iter_value = NULL; | 1127 | tmp_for_loop_1__iter_value = NULL; | ||
1211 | CHECK_OBJECT(tmp_for_loop_1__for_iterator); | 1128 | CHECK_OBJECT(tmp_for_loop_1__for_iterator); | ||
1212 | Py_DECREF(tmp_for_loop_1__for_iterator); | 1129 | Py_DECREF(tmp_for_loop_1__for_iterator); | ||
1213 | tmp_for_loop_1__for_iterator = NULL; | 1130 | tmp_for_loop_1__for_iterator = NULL; | ||
t | 1214 | tmp_print_value = mod_consts[17]; | t | 1131 | tmp_print_value = mod_consts[18]; |
1215 | tmp_result = PRINT_ITEM(tmp_print_value); | 1132 | tmp_result = PRINT_ITEM(tmp_print_value); | ||
1216 | if (tmp_result == false) { | 1133 | if (tmp_result == false) { | ||
1217 | assert(HAS_ERROR_OCCURRED(tstate)); | 1134 | assert(HAS_ERROR_OCCURRED(tstate)); | ||
1218 | 1135 | ||||
1219 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); | 1136 | FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); |