Paul Johnson
2012-10-08 00:18:50 UTC
In accordance with the terms of my grant from TPF this is the report for
week 19 of my work on improving Devel::Cover.
This report covers 22.09 to 28.09.
This week I released Devel::Cover versions 0.95 and 0.96.
I spent some time tracking down a strange bug. Christian Walde reported in
https://github.com/pjcj/Devel--Cover/issues/29 that Devel::Cover was going
into an infinite loop running the Moo test suite, and in particular on one of
the xt/ tests. (It was xt/super-jenga.t.)
I was unable to repeat the problem, so Christian allowed me to login to his
machine. There I could repeat the problem, but copying Devel/Cover.pm locally
and running with -I . to use the local file caused the problem not to occur.
It turned out that during global destruction a file-scoped lexical variable
had already been destroyed when a subroutine using it was called. This
strange situation caused the infinite loop in that subroutine.
I wanted to fix the problem by checking ${^GLOBAL_PHASE} but, unfortunately,
that variable doesn't exist before 5.14, so I ended up just checking that the
lexical variable wasn't false. (The variable holds a regex.)
Closed Github tickets:
29 cover -test on windows loops endlessly
27 Newer versions assume $^X is always pointing to Perl executable
Merged pull requests:
28 You are sat next to me so I guess this is ok
(I was sat next to him, and forgot that I would use the title here.)
You can see the commits at https://github.com/pjcj/Devel--Cover/commits/master
Hours worked:
22.09 1:45
24.09 7:10
Total 8:55
week 19 of my work on improving Devel::Cover.
This report covers 22.09 to 28.09.
This week I released Devel::Cover versions 0.95 and 0.96.
I spent some time tracking down a strange bug. Christian Walde reported in
https://github.com/pjcj/Devel--Cover/issues/29 that Devel::Cover was going
into an infinite loop running the Moo test suite, and in particular on one of
the xt/ tests. (It was xt/super-jenga.t.)
I was unable to repeat the problem, so Christian allowed me to login to his
machine. There I could repeat the problem, but copying Devel/Cover.pm locally
and running with -I . to use the local file caused the problem not to occur.
It turned out that during global destruction a file-scoped lexical variable
had already been destroyed when a subroutine using it was called. This
strange situation caused the infinite loop in that subroutine.
I wanted to fix the problem by checking ${^GLOBAL_PHASE} but, unfortunately,
that variable doesn't exist before 5.14, so I ended up just checking that the
lexical variable wasn't false. (The variable holds a regex.)
Closed Github tickets:
29 cover -test on windows loops endlessly
27 Newer versions assume $^X is always pointing to Perl executable
Merged pull requests:
28 You are sat next to me so I guess this is ok
(I was sat next to him, and forgot that I would use the title here.)
You can see the commits at https://github.com/pjcj/Devel--Cover/commits/master
Hours worked:
22.09 1:45
24.09 7:10
Total 8:55
--
Paul Johnson - ***@pjcj.net
http://www.pjcj.net
Paul Johnson - ***@pjcj.net
http://www.pjcj.net