Construct DictCreation

Performance Diagrams

Construct DictCreation 0010000000100000002000000020000000300000003000000040000000400000005000000050000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)5506244288.95192307692307257.0CPython 3.1040999564242.31730769230768320.11295648255543Nuitka (main)41000543395.6826923076923320.10856281687785Nuitka (develop)41000415549.0480769230769320.10913726959154Nuitka (factory)Construct DictCreationTicks Construct DictCreation 001000000010000000200000002000000030000000300000004000000040000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)4988410188.95192307692307257.0CPython 3.836499845242.31730769230768323.3027999488408Nuitka (main)36499758395.6826923076923323.3032309286125Nuitka (develop)36499605549.0480769230769323.3039888585559Nuitka (factory)Construct DictCreationTicks Construct DictCreation 0010000000100000002000000020000000300000003000000040000000400000005000000050000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)5007930988.95192307692307257.0CPython 2.731199953242.31730769230768350.1598181442713Nuitka (main)31199953395.6826923076923350.1598181442713Nuitka (develop)31199994549.0480769230769350.15961583056185Nuitka (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_0526e2a0d50118283a4f7caebdad7c1d; 82 static PyCodeObject *codeobj_0526e2a0d50118283a4f7caebdad7c1d;
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_9362af6b067a028cabcaa09c34a7a7ce = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[18], mod_consts[18], NULL, NULL, 0, 0, 0); 88     codeobj_9362af6b067a028cabcaa09c34a7a7ce = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[19], mod_consts[19], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_9362af6b067a028cabcaa09c34a7a7ce; 89     codeobj_main = codeobj_9362af6b067a028cabcaa09c34a7a7ce;
n 90     codeobj_0526e2a0d50118283a4f7caebdad7c1d = 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_0526e2a0d50118283a4f7caebdad7c1d = 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_0526e2a0d50118283a4f7caebdad7c1d; 113     struct Nuitka_FrameObject *frame_0526e2a0d50118283a4f7caebdad7c1d;
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_0526e2a0d50118283a4f7caebdad7c1d = NULL; 119     static struct Nuitka_FrameObject *cache_frame_0526e2a0d50118283a4f7caebdad7c1d = 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_0526e2a0d50118283a4f7caebdad7c1d == cache_frame_0526e2a0d50118283a4f7caebdad7c1d) { 363     if (frame_0526e2a0d50118283a4f7caebdad7c1d == cache_frame_0526e2a0d50118283a4f7caebdad7c1d) {
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(tstate, 9); 383         tmp_return_value = MAKE_TUPLE_EMPTY(tstate, 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_0526e2a0d50118283a4f7caebdad7c1d, 504         codeobj_0526e2a0d50118283a4f7caebdad7c1d,
588         NULL, 505         NULL,
960 877
961     // Module code. 878     // Module code.
962     { 879     {
963         PyObject *tmp_assign_source_1; 880         PyObject *tmp_assign_source_1;
964         tmp_assign_source_1 = Py_None; 881         tmp_assign_source_1 = Py_None;
n 965         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); n 882         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_1);
966     } 883     }
967     { 884     {
968         PyObject *tmp_assign_source_2; 885         PyObject *tmp_assign_source_2;
n 969         tmp_assign_source_2 = mod_consts[5]; n 886         tmp_assign_source_2 = mod_consts[6];
970         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); 887         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_2);
971     } 888     }
972     frame_9362af6b067a028cabcaa09c34a7a7ce = MAKE_MODULE_FRAME(codeobj_9362af6b067a028cabcaa09c34a7a7ce, module___main__); 889     frame_9362af6b067a028cabcaa09c34a7a7ce = MAKE_MODULE_FRAME(codeobj_9362af6b067a028cabcaa09c34a7a7ce, module___main__);
973 890
974     // Push the new frame as the currently active one, and we should be exclusively 891     // Push the new frame as the currently active one, and we should be exclusively
975     // owning it. 892     // owning it.
981         PyObject *tmp_assign_source_3; 898         PyObject *tmp_assign_source_3;
982         PyObject *tmp_name_value_1; 899         PyObject *tmp_name_value_1;
983         PyObject *tmp_globals_arg_value_1; 900         PyObject *tmp_globals_arg_value_1;
984         PyObject *tmp_locals_arg_value_1; 901         PyObject *tmp_locals_arg_value_1;
985         PyObject *tmp_fromlist_value_1; 902         PyObject *tmp_fromlist_value_1;
n 986         tmp_name_value_1 = mod_consts[7]; n 903         tmp_name_value_1 = mod_consts[8];
987         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 904         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
988         tmp_locals_arg_value_1 = Py_None; 905         tmp_locals_arg_value_1 = Py_None;
989         tmp_fromlist_value_1 = Py_None; 906         tmp_fromlist_value_1 = Py_None;
990         frame_9362af6b067a028cabcaa09c34a7a7ce->m_frame.f_lineno = 4; 907         frame_9362af6b067a028cabcaa09c34a7a7ce->m_frame.f_lineno = 4;
991         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); 908         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);
997 914
998             exception_lineno = 4; 915             exception_lineno = 4;
999 916
1000             goto frame_exception_exit_1; 917             goto frame_exception_exit_1;
1001         } 918         }
n 1002         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); n 919         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_3);
1003     } 920     }
1004     { 921     {
1005         PyObject *tmp_assign_source_4; 922         PyObject *tmp_assign_source_4;
n 1006         tmp_assign_source_4 = mod_consts[8]; n 923         tmp_assign_source_4 = mod_consts[9];
1007         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 924         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
1008     } 925     }
1009     { 926     {
1010         PyObject *tmp_assign_source_5; 927         PyObject *tmp_assign_source_5;
n 1011         tmp_assign_source_5 = mod_consts[8]; n 928         tmp_assign_source_5 = mod_consts[9];
1012         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5); 929         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5);
1013     } 930     }
1014     { 931     {
1015         PyObject *tmp_assign_source_6; 932         PyObject *tmp_assign_source_6;
n 1016         tmp_assign_source_6 = mod_consts[8]; n 933         tmp_assign_source_6 = mod_consts[9];
1017         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_6); 934         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_6);
1018     } 935     }
1019     { 936     {
1020         PyObject *tmp_assign_source_7; 937         PyObject *tmp_assign_source_7;
n 1021         tmp_assign_source_7 = mod_consts[8]; n 938         tmp_assign_source_7 = mod_consts[9];
1022         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_7); 939         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_7);
1023     } 940     }
1024     { 941     {
1025         PyObject *tmp_assign_source_8; 942         PyObject *tmp_assign_source_8;
n 1026         tmp_assign_source_8 = mod_consts[8]; n 943         tmp_assign_source_8 = mod_consts[9];
1027         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8); 944         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8);
1028     } 945     }
1029     { 946     {
1030         PyObject *tmp_assign_source_9; 947         PyObject *tmp_assign_source_9;
n 1031         tmp_assign_source_9 = mod_consts[8]; n 948         tmp_assign_source_9 = mod_consts[9];
1032         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_9); 949         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_9);
1033     } 950     }
1034     { 951     {
1035         PyObject *tmp_assign_source_10; 952         PyObject *tmp_assign_source_10;
n 1036         tmp_assign_source_10 = mod_consts[8]; n 953         tmp_assign_source_10 = mod_consts[9];
1037         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_10); 954         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10);
1038     } 955     }
1039     { 956     {
1040         PyObject *tmp_assign_source_11; 957         PyObject *tmp_assign_source_11;
n 1041         tmp_assign_source_11 = mod_consts[8]; n 958         tmp_assign_source_11 = mod_consts[9];
1042         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_11); 959         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_11);
1043     } 960     }
1044     { 961     {
1045         PyObject *tmp_assign_source_12; 962         PyObject *tmp_assign_source_12;
1046 963
1047 964
1048         tmp_assign_source_12 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 965         tmp_assign_source_12 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
1049 966
n 1050         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_12); n 967         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_12);
1051     } 968     }
1052     { 969     {
1053         PyObject *tmp_assign_source_13; 970         PyObject *tmp_assign_source_13;
1054         PyObject *tmp_iter_arg_1; 971         PyObject *tmp_iter_arg_1;
1055         PyObject *tmp_called_instance_1; 972         PyObject *tmp_called_instance_1;
n 1056         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]); n 973         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]);
1057 974
1058         if (unlikely(tmp_called_instance_1 == NULL)) { 975         if (unlikely(tmp_called_instance_1 == NULL)) {
n 1059             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]); n 976             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[8]);
1060         } 977         }
1061 978
1062         assert(!(tmp_called_instance_1 == NULL)); 979         assert(!(tmp_called_instance_1 == NULL));
1063         frame_9362af6b067a028cabcaa09c34a7a7ce->m_frame.f_lineno = 47; 980         frame_9362af6b067a028cabcaa09c34a7a7ce->m_frame.f_lineno = 47;
1064         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 981         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
1065             tstate, 982             tstate,
1066             tmp_called_instance_1, 983             tmp_called_instance_1,
n 1067             mod_consts[14], n 984             mod_consts[15],
1068             &PyTuple_GET_ITEM(mod_consts[15], 0) 985             &PyTuple_GET_ITEM(mod_consts[16], 0)
1069         ); 986         );
1070 987
1071         if (tmp_iter_arg_1 == NULL) { 988         if (tmp_iter_arg_1 == NULL) {
1072             assert(HAS_ERROR_OCCURRED(tstate)); 989             assert(HAS_ERROR_OCCURRED(tstate));
1073 990
1123     } 1040     }
1124     { 1041     {
1125         PyObject *tmp_assign_source_15; 1042         PyObject *tmp_assign_source_15;
1126         CHECK_OBJECT(tmp_for_loop_1__iter_value); 1043         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1127         tmp_assign_source_15 = tmp_for_loop_1__iter_value; 1044         tmp_assign_source_15 = tmp_for_loop_1__iter_value;
n 1128         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[16], tmp_assign_source_15); n 1045         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[17], tmp_assign_source_15);
1129     } 1046     }
1130     { 1047     {
1131         PyObject *tmp_called_value_1; 1048         PyObject *tmp_called_value_1;
1132         PyObject *tmp_call_result_1; 1049         PyObject *tmp_call_result_1;
n 1133         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[13]); n 1050         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[14]);
1134 1051
1135         if (unlikely(tmp_called_value_1 == NULL)) { 1052         if (unlikely(tmp_called_value_1 == NULL)) {
n 1136             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[13]); n 1053             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[14]);
1137         } 1054         }
1138 1055
1139         if (tmp_called_value_1 == NULL) { 1056         if (tmp_called_value_1 == NULL) {
1140             assert(HAS_ERROR_OCCURRED(tstate)); 1057             assert(HAS_ERROR_OCCURRED(tstate));
1141 1058
1201     Py_XDECREF(tmp_for_loop_1__iter_value); 1118     Py_XDECREF(tmp_for_loop_1__iter_value);
1202     tmp_for_loop_1__iter_value = NULL; 1119     tmp_for_loop_1__iter_value = NULL;
1203     CHECK_OBJECT(tmp_for_loop_1__for_iterator); 1120     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
1204     Py_DECREF(tmp_for_loop_1__for_iterator); 1121     Py_DECREF(tmp_for_loop_1__for_iterator);
1205     tmp_for_loop_1__for_iterator = NULL; 1122     tmp_for_loop_1__for_iterator = NULL;
t 1206     tmp_print_value = mod_consts[17]; t 1123     tmp_print_value = mod_consts[18];
1207     tmp_result = PRINT_ITEM(tmp_print_value); 1124     tmp_result = PRINT_ITEM(tmp_print_value);
1208     if (tmp_result == false) { 1125     if (tmp_result == false) {
1209         assert(HAS_ERROR_OCCURRED(tstate)); 1126         assert(HAS_ERROR_OCCURRED(tstate));
1210 1127
1211         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 1128         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);