develooper Front page | perl.perl5.porters | Postings from February 2014

TONYC TPF grant report #28

Tony Cook
February 24, 2014 01:51
TONYC TPF grant report #28
Message ID:
[Hours]         [Activity]
2014/02/17      Monday
 0.77           #121223 minor fixes, apply to blead
 0.30           #121259 comment, start bisect
 1.23           #120120 try to reproduce, comment
 1.22           #121196 produce a test, a fix and a comment
 0.68           #121257 reproduce and comment
 0.37           #121033 review, review PerlIO_openn(), comment
 0.38           #120939 try to reproduce leak

2014/02/18      Tuesday
 1.83           check for cygwin build failure, reproduce failure, produce
                and test a fix
 0.87           #120936 cygwin shm.t failure - fix skip logic
 1.17           #120936 cygwin taint.t failure
 1.85           cygwin win32core.t failure

2014/02/19      Wednesday
 0.37           cygwin win32core.t failure, produce a fix on cygwin and
                start a win32 test run
 0.43           #121081 apply patch and comment
 0.80           #121269 review patch and linked discussion, review older
 0.32           more win32core, find some related issues
 0.47           #121269 test UTF-16 BOM, comment
 0.97           win32core.t - work up final commits, test on both cygwin
                and win32, push to blead
 0.82           I18N::Collate test failure cygwin - strange strxfrm
 0.17           run/locale.t tests for khw

2014/02/21      Friday
 0.32           #121287 review and comment
 1.03           #120939 fix just the leak
 0.28           #121259 test sprout's patch
 0.30           #121291 test -Dusedl build, check on Module::Load failure,
 0.87           #121269 review discussion, review code, experiment and
 0.10           #121291 test, comment and close
 0.28           #121292 open ticket based on 121269 discussion
 0.68           #121196 rebase, review, retest and apply
 1.57           #121112 produce a patch

Which I calculate is 20.45 hours

Approximately 14 tickets were reviewed or otherwise worked on, and 3
patches were applied.

With this week, I've spent 265.07 hours on my second grant, which
exceeds the limits of the grant.

I've applied for a new grant, but the Perl 5 Core Maintenance fund is
low on funds,

Partly due to that, and to a new stable release coming soon, I
concentrated on short-term tasks.

This included looking over test failures on Cygwin, where a couple of
test scripts were failing when cygserver[1] isn't running.  It turned
out one test file, io/shm.t was attempting to skip the tests, but due
to the difference in how skip_all is requested between Test::More and, was crashing instead.  The other, op/taint.t was failing
(exiting on a SIGSYS) because it didn't have any skip logic at all.

The other failure I was seeing on my current (1.7.28) Cygwin was in
ext/Win32Core/t/win32core.t, which checks that calling a function like
Win32::GetLastError() without having loaded will load and do it without modifying the windows error code - fairly
important if you happen to be calling Win32::GetLastError().

The test code as written, didn't check that the value (exposed as $^E
on MSWin32 builds) was preserved on Cygwin, but that the value was 0,
which was strange.  It turns out $^E doesn't read or write the Win32
error code on Cygwin, but acts as an alias for $!, making the test

I modified the test to check $^E only on Win32 builds, and added code
and tests for also preserving $! on both Cygwin and Win32.  I
considered modifying the dSAVE_ERRNO macros to preserve the Win32
error code on Cygwin, but unfortunately Cygwin doesn't #include the
windows SDK headers, so I wasn't sure it was safe, and I was getting
beyond the point of a quick fix, so I left dSAVE_ERRNO as it was and
added explicit code to save errno.

This changed cygwin from failing or passing TODOs for 6 different
tests, down to 3, one of which is intermittent (op/threads.t), one
which has a tickets (78502) and the other is passing TODO tests, which
I haven't looked into.

[1] Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About