Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release 1.220 on tuesday, 2014-11-11 #92

Closed
wchristian opened this issue Nov 1, 2014 · 18 comments
Closed

release 1.220 on tuesday, 2014-11-11 #92

wchristian opened this issue Nov 1, 2014 · 18 comments
Assignees
Milestone

Comments

@wchristian
Copy link
Member

mainly a not for myself

@wchristian wchristian added this to the 1.220 milestone Nov 1, 2014
@wchristian wchristian self-assigned this Nov 1, 2014
@wchristian
Copy link
Member Author

And 1.219_001 is on CPAN for this.

Summary:
- incompatible behavior fixes on PPI::Statement::Sub->prototype
- improved parsing of various syntax elements
- code quality improvements

Details:
- {} is now recognized as anonymous hash constructor instead of a code block after these operators: &&= //= || && // ? : (GitHub #36) (MOREGAN)
- regex capture variables greater than $9 are now parsed completely, instead of being parsed as single digit captures with numbers after them (GitHub #38) (MOREGAN)
- DESTROY and AUTOLOAD subs are now parsed even without the sub keyword (GitHub #39) (MOREGAN)
- PPI::Statement::Sub->prototype behavior now matches its documentation, instead of returning the prototype string unchanged and still including the parens (GitHub #56) (MOREGAN)
- PPI::Statement::Sub->prototype now returns undef on subs without a prototype, instead of returning an empty string (GitHub #56) (MOREGAN)
- list of keywords which are not parsed as packages when followed by the Perl4 package separator ' has been increased (GitHub #77) (MOREGAN)
- application of a number of Perl::Critic policies and documentation fixes (GitHub #53) (MOREGAN, MITHALDU)
- automation of README.md generation for git (GitHub #86) (COWENS)

@jeffreykegler
Copy link

The bleeding edge Github version on Marpa::R2 tests all OK.

@thaljef
Copy link
Member

thaljef commented Nov 1, 2014

With respect to Perl-Critic/Perl-Critic#192 and Perl-Critic/Perl-Critic#390, this release does parse certain hash constructors better, but it still misses in some cases, like this: %{$a_hash_ref}

@thaljef
Copy link
Member

thaljef commented Nov 1, 2014

I can confirm that it fixes Perl-Critic/Perl-Critic#455

@wchristian
Copy link
Member Author

@jeffreykegler : Thanks. :)

@thaljef : Can you give me a concrete failure example, i.e. code i can run and debug? I see that %{$a_hash_ref} parses as a cast, followed by a block containing a variable, which looks correct to me. What should it be instead?

@thaljef
Copy link
Member

thaljef commented Nov 1, 2014

%{$a_hash_ref}

Isn't that an anonymous hash constructor instead of a block?

@thaljef
Copy link
Member

thaljef commented Nov 1, 2014

I can also confirm that this fixes Perl-Critic/Perl-Critic#451

@wchristian
Copy link
Member Author

This script implies strongly to me that it is indeed a block:

use strict;
use warnings;
use Data::Dumper;
my $r = { 1, 2, 3, 4 };
my %thing = %{
    print qq[blah1\n];
      $r;
};
print Dumper( \%thing );

__END__
blah1
$VAR1 = {
          '1' => 2,
          '3' => 4
        };

Edit: Though amusingly Perl::Tidy gets a little confused by it.

Editedit: And thanks for the confirmations, good to know. :)

@thaljef
Copy link
Member

thaljef commented Nov 2, 2014

You're right, it is a block. One of my Perl::Critic test cases may be bogus. I'll investigate more tomorrow.

@wchristian
Copy link
Member Author

Neat. Enlightenment all around. :D

@epa
Copy link

epa commented Nov 3, 2014

The title of this bug is "release 1.120" but did you mean 1.220?

@wchristian wchristian changed the title release 1.120 on tuesday, 2014-11-11 release 1.220 on tuesday, 2014-11-11 Nov 3, 2014
@wchristian
Copy link
Member Author

Doh, you're right. Early typo. :)

thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
This bug has been fixed via Perl-Critic/PPI#92
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
This is fixed in the next release
of PPI via Perl-Critic/PPI#92
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
The parsing of hash constructors has been improved
in PPI and this bug is now fixed via Perl-Critic/PPI#92.
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
This bug has been fixed via Perl-Critic/PPI#92
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
This is fixed in the next release
of PPI via Perl-Critic/PPI#92
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
thaljef added a commit to Perl-Critic/Perl-Critic that referenced this issue Nov 3, 2014
The parsing of hash constructors has been improved
in PPI and this bug is now fixed via Perl-Critic/PPI#92.
@thaljef
Copy link
Member

thaljef commented Nov 3, 2014

@wchristian Perl-Critic is good to go with this release of PPI.

Thanks for all your effort to keep this vital project moving forward.

@genehack
Copy link

genehack commented Nov 4, 2014

+1 on my PPI-using module still passing all tests.

@kevindawson
Copy link
Contributor

ok here :)
info. follows

$ cpanm https://cpan.metacpan.org/authors/id/M/MI/MITHALDU/PPI-1.219_001.tar.gz
--> Working on https://cpan.metacpan.org/authors/id/M/MI/MITHALDU/PPI-1.219_001.tar.gz
Fetching https://cpan.metacpan.org/authors/id/M/MI/MITHALDU/PPI-1.219_001.tar.gz ... OK
Configuring PPI-1.219_001 ... OK
Building and testing PPI-1.219_001 ... OK
Successfully installed PPI-1.219_001
1 distribution installed

$ prove -l
t/autoprereq.t .................. ok     
t/scan-module.t ................. ok   
t/scan_prereqs.t ................ ok   
t/scanner-eval.t ................ ok     
t/scanner-test_requires.t ....... ok    
t/scanner-use_module.t .......... ok    
t/scanner-useok.t ............... ok    
t/scanner-version-assertions.t .. ok    
All tests successful.
Files=8, Tests=558,  6 wallclock secs ( 0.17 usr  0.01 sys +  5.17 cusr  0.24 csys =  5.59 CPU)
Result: PASS

$ perl -v
This is perl 5, version 18, subversion 2 (v5.18.2) built for i686-linux-thread-multi

@moregan
Copy link
Collaborator

moregan commented Nov 10, 2014

I've been travelling and unable to chip in. Thank you, @wchristian , for your continuing efforts.

@wchristian
Copy link
Member Author

@moregan Sure thing, you did plenty already. :)

If you find a little time, it would help me if you could remove some of the merged branches from your repo.

@wchristian
Copy link
Member Author

1.220 is on CPAN, now to close all the related issues. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants