Hello Vishal,
Vishal Gupta <vishalgupta7...@gmail.com> writes: > Hello and sorry for late reply. Last few days, I was preparing for final > practical exam, doing reports and assignments. But, I made some progress. > > On Thu, Apr 26, 2018 at 12:13 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 am learning Perl from the book "Programming Perl" suggested by Al > Pacifico. I have completed some basics and I will try to learn Perl > references in the coming days. > >> >> > 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. >> > > I have compiled the program from Git repository and executed it. Some > queries regarding that :- > > 1) I was trying to find from where the execution started in the Automake > directory > <https://github.com/vishalgupta97/Automake-Fork/tree/master/lib/Automake> > I wasn't able to find the start of execution, then after compiling I looked > at the file Automake > <https://github.com/vishalgupta97/Automake-Fork/blob/master/bin/automake>, > and it contains the start of the execution but how is this file generated > as I am not able to find the associated perl code written in this file and > this file is generated after compilation. This file is generated from automake/bin/makefile.in. > 2) In Rule.pm > <https://github.com/vishalgupta97/Automake-Fork/blob/6d227715530ddb8c55edd6904eaa96314c162eb6/lib/Automake/Rule.pm#L148> > file, > =head1, =head2, =cut and =back are some sort of description for the file, I > think head indicate starting of description, cut indicates end of that > description. I can't find description about them in perl book. Lines that start with an `=' sign are commands for the perl documentation format (POD). More about it under 'perlpod(1)'. > 3) In Rule.pm > <https://github.com/vishalgupta97/Automake-Fork/blob/6d227715530ddb8c55edd6904eaa96314c162eb6/lib/Automake/Rule.pm#L174> > file, > ($$$;%) means that it accept three scalar value and one optional values. In > this case, if optional value is not present then what is stored in the > variable and can we have more than two optional variable. I'm not their yet in my learning of perl but I would guess undef (?). The 'perlsub(1)' man page should hold the necessary information for this. > I have created a Makefile > <https://github.com/vishalgupta97/vsql/blob/master/Makefile> for my DBMS > project. It is a basic makefile, but i will try to make it better during > the the coming days. > >> >> > 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 > > > Some basic command which I have worked with are init, clone, add, status, > commit, remote, push, pull. I have not worked with branching and merging > commands. > >> >> >> > 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 am from India and my timezone is UTC+5:30. > >> >> HTH, >> >> -- >> Mathieu Lirzin >> GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37 >> > > It would be good if I can get an architecture diagram of how all the files > are related, or I will try to make something. I will need that for my GSoC too so I will be working on that in the next couple of weeks I guess. I need to discuss this further with Mathieu. I will check in IRC soon (I should already be in there if my ZNC server is setup properly). > As suggested by Diab Jerius, Marpa and Parse::RecDescent are good parsers. > Will we be using these parsers for parsing? > > > Regards, > Vishal Gupta Please correct me if I'm wrong. -- Matthias Paulmier