Grant Proposal: Perl::Lint - Yet Another Static Analyzer for Perl5

Category: Grants

Comments (13)


I endorse this grant.
We should really go on with Compiler::Lexer and Compiler::Parser, and a linter is the easiest way to follow.

The interpreter is a long shot, the parser is not re-entrant yet. (eval)


The proposed benefits are clear and compelling and the example of Perl::MinimumVersion::Fast gives me confidence that this project can succeed. I fully support this grant.

(If I may suggest a follow-on idea, please consider doing the work in a way that would allow a faster and more powerful Perl::Tidy as well.)


This looks very interesting. To me this is clearly the best of the submitted proposals.

(My suggestion for a follow-on would be a faster Perl::PrereqScanner, but that's another discussion).


This looks good to me.


A framework for reliable and _fast_ tokenizing/parsing of Perl code (without simultaneously executing it) would enable the creation of a whole new generation of tools.

Also the amount of money requested is (surprisingly) low for the workload.

If it turns out that either time or money won´t suffice to reach the original goals I´d suggest to focus on the low level parts: feature completeness and API/ABI of the C++ library, not Perl::Critic compatibility.


This looks useful. I'd love to be able to speed up my code that uses PPI, even if it requires porting to some new parser/DOM. This seems like a good place to explore.


I agree this is an excellent proposal. More work on these kinds of tools is healthy for the Perl ecosystem.


This is an excellent proposal. The speedups demonstrated by Perl::MinimumVersion::Fast show that applying the same approach to Perl::Critic is likely to work well. I hope that this turns out to be the case.

As everyone else is suggesting a follow-up, may I too? The CPAN testers results for Compiler::Parser suggest that currently it only builds cleanly on a few platforms. Maybe addressing portability would be a good candidate for a future grant proposal, if someone feels able to. But to be clear, please don't see those test results as a blocker for accepting or working on this grant. Compiler::Parser already passes 100% on enough platforms that things built atop it will benefit a significant part of the Perl userbase.


+1
Very good proposal. That's exactly for this kind of projects that grants should be targeted. I expect it will have wide benefits for the whole Perl 5 ecosystem.


Thank you for a lot of feedbacks.

By the way, I made a lightweight prereq scanner by using Compiler::Lexer to ensure the solution which is proposed (inspired by Mr.Leon's post).

https://metacpan.org/release/Perl-PrereqScanner-Lite
https://github.com/moznion/Perl-PrereqScanner-Lite

The new one is faster about 30 times than Perl::PrereqScanner.
Therefore Perl::Lint also can realize acceleration, I think.


I would definitely want this. I've seen goccy's talk at YAPC::Asia 2013 and it was amazing; there's little doubt that static analysis using these tools is very nice.


+1


I would love a faster Perl::Critic.


Sign in to add comment