In perl.git, the branch vincent/faster-PathTools has been created

<http://perl5.git.perl.org/perl.git/commitdiff/b574b16abe5b45a0d42bd85cfd560f88248bde1a?hp=0000000000000000000000000000000000000000>

        at  b574b16abe5b45a0d42bd85cfd560f88248bde1a (commit)

- Log -----------------------------------------------------------------
commit b574b16abe5b45a0d42bd85cfd560f88248bde1a
Author: Vincent Pit <[email protected]>
Date:   Sat Jun 30 15:06:38 2012 +0200

    Test some edge cases of File::Spec::Unix::catfile()
    
    They are related to RT #113898.

M       dist/Cwd/t/Spec.t

commit 59be2e66c41e22dd2ac019daf8caf7e62a3127c0
Author: Vincent Pit <[email protected]>
Date:   Fri Jun 29 12:30:49 2012 +0200

    Optimize File::Spec::Cygwin::{canonpath,catdir}()
    
    Profiling shows that the hot spot in File::Spec::Cygwin::canonpath()
    is the return line, even in exclusive terms. Since SUPER is slow and
    File::Spec::Cygwin::canonpath() is explicitely documented as calling
    its ::Unix ancestor, we can state explicitely which method we should
    recall into.
    
    One would expect this to have little impact, but it yields an average
    20% speedup on top of the previous optimizations brought to
    File::Spec::Unix::canonpath().

M       dist/Cwd/lib/File/Spec/Cygwin.pm

commit bf66893927ac1d56abc7c2741e1b0a1f8fdbd209
Author: Vincent Pit <[email protected]>
Date:   Wed Jun 27 23:04:15 2012 +0200

    Optimize File::Spec::Epoc::canonpath()
    
    Since File::Spec::Epoc::canonpath() looks a lot like
    File::Spec::Unix::canonpath(), it is easy to apply to the former the
    optimizations devised for the latter.
    
    The tests differing between File::Spec::Unix::canonpath() and
    File::Spec::Epoc::canonpath() are also enabled by this commit, so that
    it is easy to catch a behaviour change in the future.

M       dist/Cwd/lib/File/Spec/Epoc.pm
M       dist/Cwd/t/Spec.t

commit 47d9e27db4042d20c540e1925ab64d868c85c142
Author: Vincent Pit <[email protected]>
Date:   Wed Jun 27 23:09:52 2012 +0200

    Properly align comments in File::Spec::Unix::canonpath()
    
    Whitespace-only change.

M       dist/Cwd/lib/File/Spec/Unix.pm

commit 615d7f0bcc3c25bd3fc1b37a7c42fdffe7c94c52
Author: Vincent Pit <[email protected]>
Date:   Wed Jun 27 23:08:57 2012 +0200

    Document and test a couple of edge cases of File::Spec::Unix::canonpath()

M       dist/Cwd/lib/File/Spec/Unix.pm
M       dist/Cwd/t/Spec.t

commit fc0fd59d0d2335b1b359e73c199218a7670a6c9f
Author: Vincent Pit <[email protected]>
Date:   Thu Apr 26 19:30:43 2012 +0200

    Simplify the third regexp of File::Spec::Unix::canonpath()
    
    At the second regexp, any path looking like './././xx' gets turned into
    './xx', so there is no need to look for several './' at the beginning of
    the path anymore. This means that '(?:\./)+' can be simplified into '\./'.
    
    This also makes it more clear why '././' is not turned into the empty
    string by the third regexp even though it is not equal to './'.
    
    Also remove the /s flag, as there is no '.' (sic) in the regexp.

M       dist/Cwd/lib/File/Spec/Unix.pm

commit b401775513cb81f8d3acefecb02637eca6a58691
Author: Vincent Pit <[email protected]>
Date:   Thu Apr 26 18:53:21 2012 +0200

    Merge two substitutions in one in File::Spec::Unix::canonpath()
    
    Now that the comment was corrected, it is obvious that the two
    substitutions can be merged.
    
    I suspect that that '$' is wrong and should be a '\z' but, knowing
    File::Spec, I'm pretty sure someone somewhere relies on this.

M       dist/Cwd/lib/File/Spec/Unix.pm

commit ef4b5699b4e7b8feb9458cab938809c6812a7f65
Author: Vincent Pit <[email protected]>
Date:   Thu Apr 26 18:47:58 2012 +0200

    Fix a comment in File::Spec::Unix::canonpath()
    
    The code was not doing what the comment was describing, and I believe the
    code is right here ('/../xx' should be turned into '/xx' and not into 'xx').

M       dist/Cwd/lib/File/Spec/Unix.pm

commit 3017b768e3cef48392acad9a2d7fa10816a36f40
Author: Vincent Pit <[email protected]>
Date:   Thu Apr 26 17:47:39 2012 +0200

    Conditionally compile QNX/NTO code in File::Spec::Unix::canonpath()
    
    File::Spec::Unix::canonpath() does a platform run-time check at each
    invocation to apply a QNX/NTO hack. As this is not needed on plain Unix
    systems, the check can be moved to a constant so that the special code
    can be optimized away by constant folded.
    
    This seems to yield a 25% speedup for each call to canonpath().

M       dist/Cwd/lib/File/Spec/Unix.pm
-----------------------------------------------------------------------

--
Perl5 Master Repository

Reply via email to