Construct DictCreation

Performance Diagrams

Construct DictCreation 0010000000100000002000000020000000300000003000000040000000400000005000000050000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)5506244288.95192307692307257.0CPython 3.1041000034242.31730769230768320.1108471639973Nuitka (main)41000310395.6826923076923320.10960850033325Nuitka (develop)41000246549.0480769230769320.1098957266902Nuitka (factory)Construct DictCreationTicks Construct DictCreation 001000000010000000200000002000000030000000300000004000000040000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)4988410188.95192307692307257.0CPython 3.836500210242.31730769230768323.3009918153158Nuitka (main)36499629395.6826923076923323.30386996758443Nuitka (develop)36500011549.0480769230769323.3019776196212Nuitka (factory)Construct DictCreationTicks Construct DictCreation 0010000000100000002000000020000000300000003000000040000000400000005000000050000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)5007930988.95192307692307257.0CPython 2.731199995242.31730769230768350.1596108960812Nuitka (main)31199976395.6826923076923350.15970465121484Nuitka (develop)31199976549.0480769230769350.15970465121484Nuitka (factory)Construct DictCreationTicks

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);