X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FScope%2FUpper.pm;h=6ef56c0b9da2dbebed800056b1a5fa8eb28dbe6c;hb=c6e995c68b5384510061cde2d433e9506a3935f5;hp=377e434e5bd8adc8c6e2be7e2bd4f20b692155c8;hpb=52e46d61da554bbc0d80d317e07176bb730f3efb;p=perl%2Fmodules%2FScope-Upper.git diff --git a/lib/Scope/Upper.pm b/lib/Scope/Upper.pm index 377e434..6ef56c0 100644 --- a/lib/Scope/Upper.pm +++ b/lib/Scope/Upper.pm @@ -520,8 +520,25 @@ However, it's possible to hook the end of the current scope compilation with L to replace an L'd code frame does not work when a custom runloop is used or when debugging flags are set with C. -In those two cases, L will look for a C statement in its callback and, if there is one, throw an exception before executing the code. +Calling C to replace an L'd code frame does not work : + +=over 4 + +=item * + +for a C older than the 5.8 series ; + +=item * + +for a C C run with debugging flags set (as in C) ; + +=item * + +when the runloop callback is replaced by another module. + +=back + +In those three cases, L will look for a C statement in its callback and, if there is one, throw an exception before executing the code. Moreover, in order to handle C statements properly, L currently has to suffer a run-time overhead proportional to the size of the the callback in every case (with a small ratio), and proportional to the size of B the code executed as the result of the L call (including subroutine calls inside the callback) when a C statement is found in the L callback. Despite this shortcoming, this XS version of L should still run way faster than the pure-Perl version from L.