public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Igor Grinberg <grinberg@compulab.co.il>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC PATCH v2 0/2] Make Python scripts compatible with older versions
Date: Tue, 12 Aug 2014 13:32:17 +0300	[thread overview]
Message-ID: <53E9ED31.7000604@compulab.co.il> (raw)
In-Reply-To: <53E8F645.9070008@wwwdotorg.org>

On 08/11/14 19:58, Stephen Warren wrote:
> On 08/10/2014 02:49 AM, Igor Grinberg wrote:
>>
>>
>> On 08/07/14 20:33, Stephen Warren wrote:
>>> On 08/07/2014 10:57 AM, Tom Rini wrote:
>>>> On Thu, Aug 07, 2014 at 04:17:21PM +0300, Igor Grinberg wrote:
>>>>> On 08/07/14 13:57, Tom Rini wrote:
>>> ..
>>>>>> we just need
>>>>>> /usr/bin/env python2 as how we invoke our scripts.
>>>>>
>>>>> This means impose python version dependency for U-Boot source build?
>>>>> Correct me if you think I'm wrong, but I don't think this is a good
>>>>> practice...
>>>>> I think that for tools like buildman, patman, etc. - this is
>>>>> perfectly fine to impose an interpreter/compiler version, but not
>>>>> for the basic source builds.
>>>>
>>>> I agree.  You don't need MAKEALL or buildman to do basic source builds.
>>>> Doing 'make foo_defconfig' doesn't require re-creating boards.cfg.
>>>>
>>>> To me, the gray area is people doing SoC level (or higher) changes that
>>>> want to be good and test more areas.  That's when MAKEALL or buildman
>>>> become handy and some sort of win over a shell forloop.
>>>
>>> Why on earth isn't relying specifically on either Python2 (with the current script code) or Python3 (after porting the code) a good practice?
>>
>> Because I think (I can think this way, right?) it is not a good practice
>> to bring another host machine dependency (moreover, version dependency)
>> for the simple source code build (now it also backfired in OE).
>>
>>> Banning or replacing the use of Python just because they cleaned up their language seems like poking your eye out to spite your nose (or whatever the expression is). The same thing will happen with Perl, and happened with dtc, etc.
>>
>> Did I say ban python or something? No, I did not say that.
> 
> I only see two alternatives:
> 
> a) We allow Python to be used to implement parts of the U-Boot build process and/or associated utility scripts. This introduces a dependency on Python, and such a dependency has to be on a specific (major) version of Python because the language in Python2 and Python3 is a bit different.

I think we can also handle multiple versions support, it will require
more thinking and work though...

> 
> b) We avoid introducing a dependency on Python by disallowing parts of the build process/scripts to be implemented in Python.
> 

Why be so strict in choosing the way?
It sounds like we have to choose yes or no.
I would separate the cases and thus let developers use any dependency they
like in helper tools/scripts, yet keeping the core build sustained.

>> What I'm saying is:
>> Right now, we have compiler dependency (a must as you can't practically
>> produce any code without it), and we have dtc (a must if you want to
>> compile dts), and we have make, and we have shell (this one is found
>> on every host, although windows users have to use cygwin or such,
>> but who cares, so no problem), and now we also add python to the soup?
>>
>> Don't get me wrong, I don't have any problem with python...
>> I can have any number of python versions I want (I think gentoo is
>> the best at supporting this kind of stuff...).
>> I just don't think that basic code compile should depend on even more
>> stuff being added.
>> I've compiled various bootloaders and have seen huge dependencies on
>> tools and after all the build time and complexity got worth and worth.
>> I don't really want U-Boot to go that direction, but more to keep it
>> simple and stupid.
> 
> To me, that sounds *exactly* like you're saying ban Python (at least as part of the core build process).
> 

Not exactly, but I do want to separate the cases here (at least for now),
the core build process and the utility scripting.

For the core build process: currently, I don't think python dependency
is needed... It is only the multiconfig.py which was not here until recently.
Linux, does not have the python dependency for the core builds...
Does Linux core build simpler than U-Boot core build?
Well, of course this is unrelated, but just to get a bit of comparison.

Nevertheless, if we are about to use python in the core build process,
the decision must be done in a educated manner and documented
appropriately as a dependency (and may be including some documentation
or links to description on how to setup the correct version) and not
the way it was done, by just sneaking it in (Masahiro, I'm not accusing
you, please don't get offended, you've done a great job!).

For the utility scripting: it might be more convenient, and add a lot of
power to the scripts, and developers will be very happy to write python
stuff, so no problem with that at all. And I think, if that is the case
also for java, then I have no problem with that also and will use java...
What, I'm saying is that I don't have any particular/personal problem
with python.


-- 
Regards,
Igor.

  reply	other threads:[~2014-08-12 10:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-04 10:23 [U-Boot] [RFC PATCH v2 0/2] Make Python scripts compatible with older versions Masahiro Yamada
2014-08-04 10:23 ` [U-Boot] [RFC PATCH v2 1/2] kconfig: make multiconfig.py compatible with Python 2.4 Masahiro Yamada
2014-08-04 10:23 ` [U-Boot] [RFC PATCH v2 2/2] tools: make genboardscfg.py compatible with Python 2.5 Masahiro Yamada
2014-08-22  6:01   ` Masahiro Yamada
2014-08-22  6:18     ` Masahiro Yamada
2014-08-23 12:44     ` Tom Rini
2014-08-25  1:53       ` Masahiro Yamada
2014-08-04 10:40 ` [U-Boot] [RFC PATCH v2 0/2] Make Python scripts compatible with older versions Simon Glass
2014-08-04 11:21 ` Igor Grinberg
2014-08-04 12:00   ` Masahiro Yamada
2014-08-04 12:59     ` Masahiro Yamada
2014-08-04 13:17       ` Igor Grinberg
2014-08-04 13:28         ` Masahiro Yamada
2014-08-07 10:57         ` Tom Rini
2014-08-07 13:17           ` Igor Grinberg
2014-08-07 16:57             ` Tom Rini
2014-08-07 17:33               ` Stephen Warren
2014-08-07 17:53                 ` Tom Rini
2014-08-10  8:49                 ` Igor Grinberg
2014-08-10 11:14                   ` Tom Rini
2014-08-11 10:18                     ` Igor Grinberg
2014-08-11 13:12                       ` Tom Rini
2014-08-11 23:03                         ` Masahiro YAMADA
2014-08-12  1:53                           ` Tom Rini
2014-08-18  4:45                             ` Masahiro Yamada
2014-08-11 16:58                   ` Stephen Warren
2014-08-12 10:32                     ` Igor Grinberg [this message]
2014-08-04 13:50 ` Tom Rini
2014-08-05  2:05   ` Yan, Miao
2014-08-05 14:18     ` Tom Rini

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-all 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=53E9ED31.7000604@compulab.co.il \
    --to=grinberg@compulab.co.il \
    --cc=u-boot@lists.denx.de \
    /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