This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Add pgen.vcxproj to allow regenerating grammar files on Windows
Type: enhancement Stage: resolved
Components: Build, Windows Versions: Python 3.5
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: BreamoreBoy, loewis, steve.dower, tim.golden, tim.peters, zach.ware
Priority: low Keywords: patch

Created on 2014-03-31 04:04 by zach.ware, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
windows_pgen.diff zach.ware, 2014-03-31 04:04 review
Messages (6)
msg215218 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2014-03-31 04:04
Here's a patch to allow building (and using) pgen on Windows.

All changes outside of PCbuild are solely to avoid compiler warnings, namely 4 instances of C4005 for PGEN being redefined and 2 instances of C4018, "'<' : signed/unsigned mismatch".

pgen.vcxproj is in large part copied directly from _freeze_importlib.vcxproj (and modified appropriately).

pgen is not set to build on any solution configuration, but it happily builds from a clean checkout so pythoncore.vcxproj could be made to depend on it.
msg235819 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2015-02-12 12:27
Would you guys please review the patch as it's Double Dutch to me.
msg235827 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015-02-12 14:28
The patch is way out of date, pgen.vcxproj needs to be updated to match the rest of our projects.

If nobody else takes this over (and it is low priority for a reason!), I'll get back to it eventually.
msg235898 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-02-13 16:10
I don't even know what pgen is or why I'd want to build it...

If running it updates a file that would trigger a rebuild, then I'd really like it to copy what _freeze_importlib currently does as far as writing to a temporary file and conditionally overwriting the actual one. That is the most reliable way to avoid unnecessary rebuilds.
msg235901 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015-02-13 16:18
> I don't even know what pgen is or why I'd want to build it...

pgen is the parser generator, taking Grammar/Grammar as input and generating Include/graminit.h and Python/graminit.c.  Only useful when you're changing Python's grammar, but without the ability to build pgen, it's hard for Windows developers to play with the grammar at all.

> If running it updates a file that would trigger a rebuild, then I'd
> really like it to copy what _freeze_importlib currently does as far as
> writing to a temporary file and conditionally overwriting the actual
> one. That is the most reliable way to avoid unnecessary rebuilds.

_freeze_importlib was what I used for a guide initially, and will be again when I get around to redoing the patch :)
msg335387 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2019-02-13 07:00
This patch is *way* out of date, and we're in the midst of removing pgen (issue35808) anyway, so I'm closing this issue.
History
Date User Action Args
2022-04-11 14:58:01adminsetgithub: 65306
2019-02-13 07:00:36zach.waresetstatus: open -> closed
resolution: out of date
messages: + msg335387

stage: resolved
2015-02-13 16:18:01zach.waresetmessages: + msg235901
2015-02-13 16:10:52steve.dowersetmessages: + msg235898
2015-02-12 14:28:11zach.waresetnosy: + steve.dower
messages: + msg235827
2015-02-12 12:27:11BreamoreBoysetnosy: + BreamoreBoy
messages: + msg235819
2014-03-31 04:04:19zach.warecreate