I've added the patches here[1], to be more clear about the workflow and the small modifications in the CPython build system.
[1] http://bugs.python.org/issue26359 Thank you, Alecsandru > -----Original Message----- > From: Python-Dev [mailto:python-dev- > bounces+alecsandru.patrascu=intel....@python.org] On Behalf Of Patrascu, > Alecsandru > Sent: Tuesday, February 9, 2016 1:45 PM > To: python-dev@python.org > Subject: [Python-Dev] CPython build options for out-of-the box performance > > Hi all, > > This is Alecsandru from the Dynamic Scripting Languages Optimization Team > at Intel Corporation. I want to open a discussion regarding the way > CPython is built, mainly the options that are available to the > programmers. Analyzing the CPython ecosystem we can see that there are a > lot of users that just download the sources and hit the commands > "./configure", "make" and "make install" once and then continue using it > with their Python scripts. One of the problems with this workflow it that > the users do not benefit from the entire optimization features that are > existing in the build system, such as PGO and LTO. > > Therefore, I propose a workflow, like the following. Assume some work has > to be done into the CPython interpreter, a developer can do the following > steps: > A. Implementation and debugging phase. > 1. The command "./configure PYDIST=debug" is ran once. It will enable > the Py_DEBUG, -O0 and -g flags > 2. The command "make" is ran once or multiple times > > B. Testing the implementation from step A, in a pre-release environment > 1. The command "./configure PYDIST=devel" is ran once. It will disable > the Py_DEBUG flags and will enable the -O3 and -g flags, and it is just > like the current implementation in CPython > 2. The command "make" is ran once or multiple times > > C. For any other CPython usage, for example distributing the interpreter, > installing it inside an operating system, or just the majority of users > who are not CPython developers and only want to compile it once and use it > as-is: > 1. The command "./configure" is ran once. Alternatively, the command > "./configure PYDIST=release" can be used. It will disable all debugging > functionality, enable the -O3 flag and will enable PGO and LTO. > 2. The command "make" is ran once > > If you think this benefits CPython, I can create an issue and post the > patches that enable all of the above. > > Thank you, > Alecsandru > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python- > dev/alecsandru.patrascu%40intel.com _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com