<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython-git.git/Parser, branch travis-macOS</title>
<subtitle>github.com: python/cpython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/'/>
<entry>
<title>Mark files as executable that are meant as scripts. (GH-15354)</title>
<updated>2019-09-09T14:16:33+00:00</updated>
<author>
<name>Greg Price</name>
<email>gnprice@gmail.com</email>
</author>
<published>2019-09-09T14:16:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=fa3a38d81faaf96d17b5a7f0248b9923e3a648cc'/>
<id>fa3a38d81faaf96d17b5a7f0248b9923e3a648cc</id>
<content type='text'>
This is the converse of GH-15353 -- in addition to plenty of
scripts in the tree that are marked with the executable bit
(and so can be directly executed), there are a few that have
a leading `#!` which could let them be executed, but it doesn't
do anything because they don't have the executable bit set.

Here's a command which finds such files and marks them.  The
first line finds files in the tree with a `#!` line *anywhere*;
the next-to-last step checks that the *first* line is actually of
that form.  In between we filter out files that already have the
bit set, and some files that are meant as fragments to be
consumed by one or another kind of preprocessor.

    $ git grep -l '^#!' \
      | grep -vxFf &lt;( \
          git ls-files --stage \
          | perl -lane 'print $F[3] if (!/^100644/)' \
        ) \
      | grep -ve '\.in$' -e '^Doc/includes/' \
      | while read f; do
          head -c2 "$f" | grep -qxF '#!' \
          &amp;&amp; chmod a+x "$f"; \
        done</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the converse of GH-15353 -- in addition to plenty of
scripts in the tree that are marked with the executable bit
(and so can be directly executed), there are a few that have
a leading `#!` which could let them be executed, but it doesn't
do anything because they don't have the executable bit set.

Here's a command which finds such files and marks them.  The
first line finds files in the tree with a `#!` line *anywhere*;
the next-to-last step checks that the *first* line is actually of
that form.  In between we filter out files that already have the
bit set, and some files that are meant as fragments to be
consumed by one or another kind of preprocessor.

    $ git grep -l '^#!' \
      | grep -vxFf &lt;( \
          git ls-files --stage \
          | perl -lane 'print $F[3] if (!/^100644/)' \
        ) \
      | grep -ve '\.in$' -e '^Doc/includes/' \
      | while read f; do
          head -c2 "$f" | grep -qxF '#!' \
          &amp;&amp; chmod a+x "$f"; \
        done</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in the algorithm description (GH-15774)</title>
<updated>2019-09-09T14:08:23+00:00</updated>
<author>
<name>Pablo Galindo</name>
<email>Pablogsal@gmail.com</email>
</author>
<published>2019-09-09T14:08:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=c638521dbf8862d63151e4b984c9b586a954db4c'/>
<id>c638521dbf8862d63151e4b984c9b586a954db4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typos in the documentation of Parser/pgen (GH-15416)</title>
<updated>2019-08-24T18:07:24+00:00</updated>
<author>
<name>Shashi Ranjan</name>
<email>shashiranjankv@gmail.com</email>
</author>
<published>2019-08-24T18:07:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=43710b67b3d40325ba2c31b793895aed48fd8aa7'/>
<id>43710b67b3d40325ba2c31b793895aed48fd8aa7</id>
<content type='text'>
Co-Authored-By: Antoine &lt;43954001+awecx@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-Authored-By: Antoine &lt;43954001+awecx@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor Parser/pgen and add documentation and explanations (GH-15373)</title>
<updated>2019-08-22T01:38:39+00:00</updated>
<author>
<name>Pablo Galindo</name>
<email>Pablogsal@gmail.com</email>
</author>
<published>2019-08-22T01:38:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=71876fa438f706b211360d8c205cb985906212ee'/>
<id>71876fa438f706b211360d8c205cb985906212ee</id>
<content type='text'>
* Refactor Parser/pgen and add documentation and explanations

To improve the readability and maintainability of the parser
generator perform the following transformations:

    * Separate the metagrammar parser in its own class to simplify
      the parser generator logic.

    * Create separate classes for DFAs and NFAs and move methods that
      act exclusively on them from the parser generator to these
      classes.

    * Add docstrings and comment documenting the process to go from
      the grammar file into NFAs and then DFAs. Detail some of the
      algorithms and give some background explanations of some concepts
      that will helps readers not familiar with the parser generation
      process.

    * Select more descriptive names for some variables and variables.

    * PEP8 formatting and quote-style homogenization.

The output of the parser generator remains the same (Include/graminit.h
and Python/graminit.c remain untouched by running the new parser generator).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Refactor Parser/pgen and add documentation and explanations

To improve the readability and maintainability of the parser
generator perform the following transformations:

    * Separate the metagrammar parser in its own class to simplify
      the parser generator logic.

    * Create separate classes for DFAs and NFAs and move methods that
      act exclusively on them from the parser generator to these
      classes.

    * Add docstrings and comment documenting the process to go from
      the grammar file into NFAs and then DFAs. Detail some of the
      algorithms and give some background explanations of some concepts
      that will helps readers not familiar with the parser generation
      process.

    * Select more descriptive names for some variables and variables.

    * PEP8 formatting and quote-style homogenization.

The output of the parser generator remains the same (Include/graminit.h
and Python/graminit.c remain untouched by running the new parser generator).</pre>
</div>
</content>
</entry>
<entry>
<title>Indent code inside if block. (GH-15284)</title>
<updated>2019-08-15T16:19:07+00:00</updated>
<author>
<name>Hansraj Das</name>
<email>raj.das.136@gmail.com</email>
</author>
<published>2019-08-15T16:19:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=69f37bcb28d7cd78255828029f895958b5baf6ff'/>
<id>69f37bcb28d7cd78255828029f895958b5baf6ff</id>
<content type='text'>
Without indendation, seems like strcpy line is parallel to `if` condition.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without indendation, seems like strcpy line is parallel to `if` condition.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix `SyntaxError` indicator printing too many spaces for multi-line strings (GH-14433)</title>
<updated>2019-07-29T13:59:13+00:00</updated>
<author>
<name>Anthony Sottile</name>
<email>asottile@umich.edu</email>
</author>
<published>2019-07-29T13:59:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=5b94f3578c662d5f1ee90c0e6b81481d9ec82d89'/>
<id>5b94f3578c662d5f1ee90c0e6b81481d9ec82d89</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove duplicate call to strip method in Parser/pgen/token.py (GH-14938)</title>
<updated>2019-07-24T20:31:19+00:00</updated>
<author>
<name>Hansraj Das</name>
<email>raj.das.136@gmail.com</email>
</author>
<published>2019-07-24T20:31:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=e018dc52d1268bc0c5e4037c132e463f1a4002af'/>
<id>e018dc52d1268bc0c5e4037c132e463f1a4002af</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-37593: Swap the positions of posonlyargs and args in the constructor of ast.parameters nodes (GH-14778)</title>
<updated>2019-07-14T23:32:18+00:00</updated>
<author>
<name>Pablo Galindo</name>
<email>Pablogsal@gmail.com</email>
</author>
<published>2019-07-14T23:32:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=cd6e83b4810549c308ab2d7315dbab526e35ccf6'/>
<id>cd6e83b4810549c308ab2d7315dbab526e35ccf6</id>
<content type='text'>
https://bugs.python.org/issue37593</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugs.python.org/issue37593</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-37253: Remove PyAST_obj2mod_ex() function (GH-14020)</title>
<updated>2019-06-13T07:18:45+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@redhat.com</email>
</author>
<published>2019-06-13T07:18:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=022ac0a497b668d8b15e34e582a6396ead1a35e1'/>
<id>022ac0a497b668d8b15e34e582a6396ead1a35e1</id>
<content type='text'>
PyAST_obj2mod_ex() is similar to PyAST_obj2mod() with an additional
'feature_version' parameter which is unused.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PyAST_obj2mod_ex() is similar to PyAST_obj2mod() with an additional
'feature_version' parameter which is unused.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-36974: tp_print -&gt; tp_vectorcall_offset and tp_reserved -&gt; tp_as_async (GH-13464)</title>
<updated>2019-05-31T02:13:39+00:00</updated>
<author>
<name>Jeroen Demeyer</name>
<email>J.Demeyer@UGent.be</email>
</author>
<published>2019-05-31T02:13:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=530f506ac91338b55cf2be71b1cdf50cb077512f'/>
<id>530f506ac91338b55cf2be71b1cdf50cb077512f</id>
<content type='text'>
Automatically replace
tp_print -&gt; tp_vectorcall_offset
tp_compare -&gt; tp_as_async
tp_reserved -&gt; tp_as_async
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Automatically replace
tp_print -&gt; tp_vectorcall_offset
tp_compare -&gt; tp_as_async
tp_reserved -&gt; tp_as_async
</pre>
</div>
</content>
</entry>
</feed>
