On Thu, Apr 26, 2018 at 8:22 AM, Al Pacifico <pacif...@pobox.com> wrote: > > Matthias and Vishal- > > On Wed, Apr 25, 2018 at 11:43 AM, Mathieu Lirzin <m...@gnu.org> wrote: > > > Hello Vishal, > > > > Vishal Gupta <vishalgupta7...@gmail.com> writes: > > > > > My proposal for the project " Parse Makefile.am using abstract syntax > > > tree" has been accepted and I am excited to start working on the same. > > > > Congrats! > > > > > The community bonding period will be till 14th May. As discussed in > > > the proposal, I will be working on improving my perl skills and > > > understanding the Automake's Code. Some queries about that : > > > > > > 1) Good resource for studying Perl and important concepts required for > > > completing the project. A short task of 4-5 days would be great for > > > testing my knowledge of perl and quantify my progress. > > > > Like I said to Matthias, Perl comes with an extensive set of manpages > > which consist of tutorials and reference manuals. ‘perlintro(1)’ is a > > good entry point. The “Learning Perl” book by Tom Phoenix and Randal > > Schwartz is a nice introduction to Perl. > > > > You will need to get familiar with perl references which is a somewhat > > advance topic in order to build recursive structure for the AST. > > > > To learn Perl I think it is important to have an interactive environment > > ‘perl -d -e ''’ is useful for that. > > > > I'd like to add to what Mathieu wrote regarding becoming familiar with Perl. > > I have used Perl off and on extensively over the past 20-odd years and > there are eight Perl books on my bookshelf. I'm guessing that you will be > using its object-oriented features for this project, and looking over my > second edition of "Learning Perl," it has no coverage of OO features, > although they are mentioned on pages 195-197. > > My recollection is that I learned most about Perl's OO features from Damian > Conway's "Object Oriented Perl" > <https://www.amazon.com/Object-Oriented-Perl-Comprehensive-Programming/dp/1884777791> > which > is available as a used book very cheaply. Probably the chapter on OO > features in the hefty O'Reilly title "Programming Perl" > <https://www.amazon.com/Programming-Perl-Unmatched-processing-scripting/dp/0596004923> > (AKA "the Camel book") would do just as well. If I were to own one Perl > book, it would be the Camel, but it is pricey. > > -Al > > > > > > 2) How to go about understanding the Automake code . > > > > The first step is to compile it from the Git repository and report > > unclear points. I encourage you to get familiar with Automake from a > > user perspective by creating build definitions for some dummy C programs > > and libraries by following the Automake manual which is nicely written. > > > > > 3) Any other task required to be completed during the community bonding > > period. > > > > I think, it is important that you get more familiar with Git usage and > > good practices before the coding period. There is a lot of resources > > online and particularly a great book freely available: > > > > https://git-scm.com/book/en/v2 > > > > > As discussed in the proposal that I will be having my exams from 8th > > > to 15th May, so I will try to complete the work before that time. > > > > No problem. > > > > If you have any question or difficulty in your discovery, you can ask on > > the #autotools IRC channel on Freenode or directly to me (my pseudo is > > ‘mthl’). I am not sure about your actual timezone (mine is UTC+2) but > > if you are from India don't expect me to available too soon in the > > morning. :-) > >
I'm not sure if this has been mentioned in this discussion, but http://modernperlbooks.com/ is the de-facto overview of, well, Modern Perl. It's what all of the cool kids use these days. It has a very good introduction to modern OO in Perl. (And the online book is free.) In terms of parsing Makefile.am's, CPAN (https://metacpan.org) is awash with parsing frameworks. The most powerful is Marpa (https://metacpan.org/pod/distribution/Marpa-R2/pod/Marpa_R2.pod). There's the old favorite Parse::RecDescent (https://metacpan.org/pod/Parse::RecDescent). There's also Pegex, which is a combination of Parsing Expression Grammars and Regular Expressions (https://metacpan.org/pod/distribution/Pegex/lib/Pegex.pod)