Build
-----
+- Add a FAST_LOOPS build option that speeds-up looping by trading away
+ periodic threadstate and signal checking in tight loops. By default,
+ this option is turned-off. It should only be enabled in debugged,
+ performance critical applications.
+
- Patch #786737: Allow building in a tree of symlinks pointing to
a readonly source.
PREDICTED_WITH_ARG(JUMP_ABSOLUTE);
case JUMP_ABSOLUTE:
JUMPTO(oparg);
+#if FAST_LOOPS
+ /* Enabling this path speeds-up all while and for-loops by bypassing
+ the per-loop checks for signals. By default, this should be turned-off
+ because it prevents detection of a control-break in tight loops like
+ "while 1: pass". Compile with this option turned-on when you need
+ the speed-up and do not need break checking inside tight loops (ones
+ that contain only instructions ending with goto fast_next_opcode).
+ */
+ goto fast_next_opcode;
+#else
continue;
+#endif
case GET_ITER:
/* before: [obj]; after [getiter(obj)] */