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

NWCLARK TPF grant report #23

Nicholas Clark
February 22, 2012 06:57
NWCLARK TPF grant report #23
Message ID:
[Hours]		[Activity]
2012/02/06	Monday
 2.00		POSIX::strptime
 0.75		RT #109828
 1.25		process, scalability, mentoring
 2.50		reading/responding to list mail

2012/02/07	Tuesday
 0.50		RT #110078
 4.75		installhtml
 2.00		lib/Pod/t/eol.t

2012/02/08	Wednesday
 1.00		SVf and HEKf
 6.75		reading/responding to list mail

2012/02/09	Thursday
 0.75		RT #109726
 5.25		reading/responding to list mail

2012/02/10	Friday
 1.00		Pod::Html

2012/02/12	Sunday
 0.75		Pod::Functions

Which I calculate is 29.25 hours

Another less-than-exciting week. Mostly a lot of smaller tasks, dealing with
bugs and answering with threads on the mailing list.

The largest item of note was installhtml. This was mysteriously passing its
tests on George Greer's Win32 setup that smokes "smoke-me" branches, and yet
failing one test on George Greer's Win32 setup that smokes blead. Same
operating system, same code, same everything, so why isn't it the same result?
After quite a lot of head scratching, code chasing (you are in a twisty maze
of abstraction layers, all alike), it turns out that the problem is that on
one VM, the smoker is configured to smoke at a pathname D:\path\to\smoker
and on the other VM its configured to smoke at d:\path\to\smoker. That
difference is *almost* irrelevant, because filenames on Win32 are* case
preserving, case insensitive, and most things aren't concerned with which
name a file has, merely whether they can open (or delete) it.

However, Pod::Html has an explicit white-box test for its caching. That test
needs to be sure that the right pathnames are in the cache index. And it turns
out that the pathnames written to the cache are canonicalised by File::Spec,
whilst the expectation list built by the test is not. And that whilst files
and directories on Win32 are case preserving, and hence unchanged on
canonicalisation, *drive letters* are canonicalised to upper case. Yay.

I wonder what useful stuff gets displaced from my brain by this obscure
knowledge? I'm sure I used to be able to remember the lyrics to American
Pie... :-(

Nicholas Clark

* generally. My understanding is that NTFS can be case sensitive, and can do
  hardlinks, but that most Win32 code would have kittens if it were run with
  these settings. Likewise, *nix can quite happily mount case insensitive file
  systems, and that's going to be breaking some code too... Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About