From: "Leif Lindholm" <leif.lindholm@linaro.org>
To: "Gao, Liming" <liming.gao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
Rebecca Cran <rebecca@bsdio.com>,
"Feng, Bob C" <bob.c.feng@intel.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>,
"afish@apple.com" <afish@apple.com>
Subject: Re: [PATCH 1/1] edksetup.sh: rework python executable scanning
Date: Wed, 17 Jul 2019 23:37:11 +0100 [thread overview]
Message-ID: <20190717223711.GE2712@bivouac.eciton.net> (raw)
In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4A974D@SHSMSX104.ccr.corp.intel.com>
On Wed, Jul 17, 2019 at 03:23:26AM +0000, Gao, Liming wrote:
> Leif:
> I agree to discuss the behavior first, then review the code logic in detail. I add my comments below.
>
> > -----Original Message-----
> > From: Leif Lindholm [mailto:leif.lindholm@linaro.org]
> > So, first of all - I am entirely happy with dropping the function.
> > But I wanted to have it written anyway in case someone came up with a
> > really good explanation for why we needed to completely cover the same
> > pattern as the code currently in tree: and the situation does not
> > relate to python4 or python5 - it relates to picking the latest of
> > 2.7, 2.7.6, 3.5, 3.5.2, 3.5,4, 3.7 (which is my interpretation of the
> > behaviour of current HEAD).
> >
> > So basically - I think we need to reach an agreement (with BaseTools
> > maintainers, and existing users) about what the behaviour should be.
> >
> > - What does PYTHON3_ENABLE mean? Is it for probing only, or are we
> > setting it for later use by BaseTools?
>
> PYTHON3_EANBLE is to decide python3 enable or not. It has high priority.
> Once it is set, PYTHON_COMMAND will be ignored.
> If it is set to TRUE, edksetup.sh will find Python3 in the system, set PYTHON_COMMAND env.
> If it is set to other value, edksetup.sh will find Python2 in the system, set PYTHON_COMMAND env.
> If PYTHON3_EANBLE is not set, PYTHON_COMMAND will be used if PYTHON_COMMAND is set.
> If PYTHON3_EANBLE is not set, and PYTHON_COMMAND is not set, the
> default behavior will set PYTHON3_EANBLE to TRUE.
(typo as discussed in other email corrected above (python3->python2))
> So, the default behavior is to use highest version Python3. User can
> set PYTHON_COMMAND for their python version.
>
> > - What should the priority order be when looking for python
> > executables?
>
> Find the high version python. When we enable Python3, we find
> Python37 does great performance optimization.
> So, we think high version python can bring more benefit.
This is where I disagree.
As a user/admin, I am no more interested in my build tools deciding I
would prefer another python than the default one than I am in they
deciding I would prefer another toolchain.
If I build a specific commit of edk2 (including BaseTools) from a
specific command line, then I expect any subsequent builds to behave
identically unless I have reconfigured the system. Installing another
version of python without changing the system default shoulds not
change that.
If I _want_ to use the newly installed python, I can change the
python/python2/python3 links. And if I don't want to do that, I can
set PYTHON_COMMAND.
"We have seen better performance with 3.7" is an excellent argment for
suggesting people install, and use, python 3.7. I do not see it as a
good argument for always preferring the highest version available.
> > - Can we use simply 'python' as the default?
>
> Based on previous discussion, we recommend to use Python3 as default.
If python3 is to be the default, then I see no use for PYTHON3_£NABLE.
If PYTHON_COMMAND is set, it should always be respected. If it's not
set, python3 is picked in preference anyway.
> > - Do we need functionality for more than selecting between
> > python2/python3?
>
> Yes. Find the high version python installed in the system.
Best Regards,
Leif
next prev parent reply other threads:[~2019-07-17 22:37 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-16 19:07 [PATCH 1/1] edksetup.sh: rework python executable scanning Leif Lindholm
2019-07-16 20:10 ` [edk2-devel] " rebecca
2019-07-17 14:04 ` Leif Lindholm
2019-07-16 20:49 ` Laszlo Ersek
2019-07-16 22:04 ` Leif Lindholm
2019-07-17 3:23 ` Liming Gao
2019-07-17 10:21 ` Laszlo Ersek
2019-07-17 14:32 ` Liming Gao
2019-07-17 19:43 ` Laszlo Ersek
2019-07-17 22:37 ` Leif Lindholm [this message]
2019-07-18 16:48 ` [edk2-devel] " Liming Gao
2019-07-18 17:55 ` Leif Lindholm
2019-07-19 13:07 ` Liming Gao
2019-07-23 9:44 ` Leif Lindholm
2019-07-24 15:29 ` Liming Gao
2019-07-17 10:13 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190717223711.GE2712@bivouac.eciton.net \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox