Discussion:
Proposal Accepted for GSoC
Vishal Gupta
2018-04-24 04:23:43 UTC
Permalink
Hi everyone,

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.

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.

2) How to go about understanding the Automake code .

3) Any other task required to be completed during the community bonding
period.

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.

Looking forward for your suggestions.

Regards,
Vishal Gupta
Mathieu Lirzin
2018-04-25 18:43:59 UTC
Permalink
Hello Vishal,
Post by Vishal Gupta
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!
Post by Vishal Gupta
The community bonding period will be till 14th May. As discussed in
the proposal, I will be working on improving my perl skills and
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.
Post by Vishal Gupta
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.
Post by Vishal Gupta
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
Post by Vishal Gupta
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. :-)

HTH,
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
Al Pacifico
2018-04-26 12:22:45 UTC
Permalink
Matthias and Vishal-
Post by Mathieu Lirzin
Hello Vishal,
Post by Vishal Gupta
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!
Post by Vishal Gupta
The community bonding period will be till 14th May. As discussed in
the proposal, I will be working on improving my perl skills and
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
Post by Mathieu Lirzin
Post by Vishal Gupta
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.
Post by Vishal Gupta
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
https://git-scm.com/book/en/v2
Post by Vishal Gupta
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. :-)
HTH,
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
--
Please forgive typo's, equally likely to have been typed on cell phone and
to have been typed one-handed.
Diab Jerius
2018-04-27 19:34:09 UTC
Permalink
Post by Al Pacifico
Matthias and Vishal-
Post by Mathieu Lirzin
Hello Vishal,
Post by Vishal Gupta
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!
Post by Vishal Gupta
The community bonding period will be till 14th May. As discussed in
the proposal, I will be working on improving my perl skills and
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
Post by Mathieu Lirzin
Post by Vishal Gupta
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.
Post by Vishal Gupta
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
https://git-scm.com/book/en/v2
Post by Vishal Gupta
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)
Daniel Herring
2018-04-28 02:13:42 UTC
Permalink
+1 for Diab's book and parser recommendations. Here are two more links to
them.

http://modernperlbooks.com/books/modern_perl_2014/07-object-oriented-perl.html

https://jeffreykegler.github.io/Marpa-web-site/


If you like historical perspective, then here's an interesting read.

https://jeffreykegler.github.io/personal/timeline_v3


If you have trouble with grammars, then ANTLR has some good tools but
unfortunately no Perl support.

http://www.antlr.org/tools.html


- Daniel
Vishal Gupta
2018-05-03 03:28:48 UTC
Permalink
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.
Post by Mathieu Lirzin
Hello Vishal,
Post by Vishal Gupta
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!
Post by Vishal Gupta
The community bonding period will be till 14th May. As discussed in
the proposal, I will be working on improving my perl skills and
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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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.

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.

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 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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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
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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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.
Post by Mathieu Lirzin
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.

As suggested by Diab Jerius, Marpa and Parse::RecDescent are good parsers.
Will we be using these parsers for parsing?


Regards,
Vishal Gupta
Matthias Paulmier
2018-05-03 13:45:39 UTC
Permalink
Hello Vishal,
Post by Vishal Gupta
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.
Post by Mathieu Lirzin
Hello Vishal,
Post by Vishal Gupta
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!
Post by Vishal Gupta
The community bonding period will be till 14th May. As discussed in
the proposal, I will be working on improving my perl skills and
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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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.
Post by Vishal Gupta
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)'.
Post by Vishal Gupta
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.
Post by Vishal Gupta
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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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
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.
Post by Mathieu Lirzin
Post by Vishal Gupta
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.
Post by Mathieu Lirzin
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).
Post by Vishal Gupta
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

Loading...