Re: Why are we shipping debug builds of pythons?

2018-08-09 Thread Miro Hrončok

On 4.8.2018 22:25, Miro Hrončok wrote:

Hi,

an interesting discussion came up in the Python Maint team recently, 
about not shipping python3-debug and python2-debug.


On the Chesterton's fence principle [0], I'd would like to know why are 
we building and shipping them before we have a discussion about their 
removal to save build time and remove packaging cruft.


Anyone has an idea? Those packages are meant to debug Python, yet all 
people I know who do that, build they own Python for that purpose (often 
from the master branch).


I tracked down the introduction of the python-debug package in this 
commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14 
shortly before upgrade to 2.7. Yet the commit message lacks rationale.


[0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
[1] 
https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105dad425ba9c6637a 



Thank you all, we'll keep them.

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/TEL5L3YAESPSCN53IMBZOVWANC7FS7RT/


Re: Why are we shipping debug builds of pythons?

2018-08-06 Thread John Dennis

On 08/06/2018 11:22 AM, David Malcolm wrote:

On Sat, 2018-08-04 at 22:25 +0200, Miro Hrončok wrote:

Hi,

an interesting discussion came up in the Python Maint team recently,
about not shipping python3-debug and python2-debug.

On the Chesterton's fence principle [0], I'd would like to know why
are
we building and shipping them before we have a discussion about
their
removal to save build time and remove packaging cruft.

Anyone has an idea? Those packages are meant to debug Python, yet
all
people I know who do that, build they own Python for that purpose
(often
from the master branch).

I tracked down the introduction of the python-debug package in this
commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14
shortly before upgrade to 2.7. Yet the commit message lacks
rationale.

[0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
[1]
https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105
dad425ba9c6637a


Python's --with-pydebug adds lots of checking that's useful when
developing *extension modules*, as well as debugging Python itself.
This checking breaks ABI (due to adding nodes for a doubly-linked list
of all objects into the base PyObject struct).

The reason I added these packages to Fedora was to make Fedora a more
attractive OS for people developing Python extension modules (given
that Debian did, and we didn't, at the time).  If you're trying to
track down a reference leak in some module, having to build your own
Python feels like an unnecessary hurdle (IMHO).


FWIW as a Python extension author and maintainer I have taken advantage 
of these deubg builds, it's very useful.


If you're developing at the level of CPython you probably also have the 
skill to build your own version but why?


--
John Dennis
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/RUHMQLAZTZGRG7Z5CLRO72ZGWPSQVIF5/


Re: Why are we shipping debug builds of pythons?

2018-08-06 Thread David Malcolm
On Mon, 2018-08-06 at 13:15 +0200, Jan Kratochvil wrote:
> On Mon, 06 Aug 2018 10:57:31 +0200, Petr Viktorin wrote:
> > On 08/05/18 14:01, Jan Kratochvil wrote:
> > > That is all together messy. This is why Microsoft has their debug
> > > build of
> > > their whole OS - Windows - called Checked Build:
> > >   https://docs.microsoft.com/en-us/windows-hardware/drivers/devte
> > > st/checked-and-free-build-differences
> > 
> > The main issue with --with-pydebug is that it changes the ABI, i.e.
> > all
> > extensions need to be re-built specifically for it (and debug
> > extensions
> > outside the standard library aren't usually packaged in Fedora).
> > That makes
> > it much less useful than if it just used less optimizations.

Petr: IMHO, it's much *more* useful: it checks for leaked objects,
which is the most painful issue to deal with when debugging Python
extensions.  That was my motivation for adding it.

> 
> That confirms the whole OS "Checked Build" variant would solve even
> this
> problem.

Jan:  In my view, it's not a problem, it's a feature.  An OS-wide
change wouldn't turn on "--with-pydebug" for Python, unless it was
directly coded into the specfile.

The change to the ABI is due to two new fields with the base struct for
python objects.


Dave
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/HJGZIFX56BJAAUKOHTQSMHGOPI6WE7S3/


Re: Why are we shipping debug builds of pythons?

2018-08-06 Thread David Malcolm
On Sat, 2018-08-04 at 22:25 +0200, Miro Hrončok wrote:
> Hi,
> 
> an interesting discussion came up in the Python Maint team recently, 
> about not shipping python3-debug and python2-debug.
> 
> On the Chesterton's fence principle [0], I'd would like to know why
> are 
> we building and shipping them before we have a discussion about
> their 
> removal to save build time and remove packaging cruft.
> 
> Anyone has an idea? Those packages are meant to debug Python, yet
> all 
> people I know who do that, build they own Python for that purpose
> (often 
> from the master branch).
> 
> I tracked down the introduction of the python-debug package in this 
> commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14 
> shortly before upgrade to 2.7. Yet the commit message lacks
> rationale.
> 
> [0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
> [1] 
> https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105
> dad425ba9c6637a

Python's --with-pydebug adds lots of checking that's useful when
developing *extension modules*, as well as debugging Python itself. 
This checking breaks ABI (due to adding nodes for a doubly-linked list
of all objects into the base PyObject struct).

The reason I added these packages to Fedora was to make Fedora a more
attractive OS for people developing Python extension modules (given
that Debian did, and we didn't, at the time).  If you're trying to
track down a reference leak in some module, having to build your own
Python feels like an unnecessary hurdle (IMHO).

FWIW, I use it myself in gcc-python-plugin, which is built 4 times (for
Python 2 vs 3, optimized vs debug).

Dave
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/OLAMAEBXNUXXOHSNSV6562OADEK4EM27/


Re: Why are we shipping debug builds of pythons?

2018-08-06 Thread Petr Viktorin

On 08/05/18 14:01, Jan Kratochvil wrote:

On Sun, 05 Aug 2018 13:39:58 +0200, Charalampos Stratakis wrote:

Here we are referring to the python2-debug or python3-debug builds, which
are just extra python builds that are compiled with the --with-pydebug flag


Not just --with-pydebug:

--
%if %{with debug_build}
BuildPython debug \
   "--without-ensurepip --with-pydebug" \
   "-O0"
%endif # with debug_build

BuildPython optimized \
   "--without-ensurepip %{optimizations_flag}" \
   ""
--

Many packages have their *-debug variants. And then some packages (like
kernel) switch even their standard builds to debug mode but only in Rawhide.
Despite all that the *-debug package one occasionally needs is then missing
and one still has to build it locally.

That is all together messy. This is why Microsoft has their debug build of
their whole OS - Windows - called Checked Build:

https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/checked-and-free-build-differences


The main issue with --with-pydebug is that it changes the ABI, i.e. all 
extensions need to be re-built specifically for it (and debug extensions 
outside the standard library aren't usually packaged in Fedora). That 
makes it much less useful than if it just used less optimizations.

___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/4E32NGEBSVXDBVFP5UOMSKADV3EU2GAU/


Re: Why are we shipping debug builds of pythons?

2018-08-05 Thread Charalampos Stratakis


- Original Message -
> From: "Troy Curtis Jr" 
> To: "Development discussions related to Fedora" 
> 
> Cc: "Fedora Python SIG" 
> Sent: Sunday, August 5, 2018 3:44:39 AM
> Subject: Re: Why are we shipping debug builds of pythons?
> 
> 
> 
> On Sat, Aug 4, 2018 at 5:16 PM Miro Hrončok < mhron...@redhat.com > wrote:
> 
> 
> Hi,
> 
> an interesting discussion came up in the Python Maint team recently,
> about not shipping python3-debug and python2-debug.
> 
> On the Chesterton's fence principle [0], I'd would like to know why are
> we building and shipping them before we have a discussion about their
> removal to save build time and remove packaging cruft.
> 
> Anyone has an idea? Those packages are meant to debug Python, yet all
> people I know who do that, build they own Python for that purpose (often
> from the master branch).
> 
> The other main use for the Python debug package is debugging Python C
> extensions. I recently made very good use of it while using GDB to debug
> some extensions I was working on. This is more than just having debug
> symbols, which of course is essential, but the debug build means that when
> you are stepping through the code, you can more easily follow what the
> interpreter is doing. Also, I think that is the package that has some
> niceties that extend GDB to work even better with Python code.
> 
> 
> I tracked down the introduction of the python-debug package in this
> commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14
> shortly before upgrade to 2.7. Yet the commit message lacks rationale.
> 
> [0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
> [1]
> https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105dad425ba9c6637a
> 
> Thanks,
> --
> Miro Hrončok
> --
> Phone: +420777974800
> IRC: mhroncok
> 
> Troy
> 
> 
> ___
> python-devel mailing list -- python-devel@lists.fedoraproject.org
> To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/AHOMI7GX6IBXSINVDDTBX6GYZF2Y5QLY/
> 

Hello. I would suppose you'd be referring to the debuginfo package, which is 
automatically generated by rpm and holds (via some hacks)
the files required by gdb for properly debugging python apps.

Here we are referring to the python2-debug or python3-debug builds, which are 
just extra python builds that are compiled with the --with-pydebug flag [0]

[0] 
http://pythonextensionpatterns.readthedocs.io/en/latest/debugging/debug_python.html

-- 
Regards,

Charalampos Stratakis
Software Engineer
Python Maintenance Team, Red Hat
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/J4KJV5NSD6D6EARF22WD76ZTAYD3CCOX/


Re: Why are we shipping debug builds of pythons?

2018-08-05 Thread Miro Hrončok

On 5.8.2018 03:20, Sérgio Basto wrote:

On Sat, 2018-08-04 at 22:25 +0200, Miro Hrončok wrote:

Hi,

an interesting discussion came up in the Python Maint team recently,
about not shipping python3-debug and python2-debug.

On the Chesterton's fence principle [0], I'd would like to know why
are
we building and shipping them before we have a discussion about
their
removal to save build time and remove packaging cruft.

Anyone has an idea? Those packages are meant to debug Python, yet
all
people I know who do that, build they own Python for that purpose
(often
from the master branch).


I think I used debug builds for this feature :

https://fedoraproject.org/wiki/Features/EasierPythonDebugging

https://wiki.python.org/moin/DebuggingWithGdb


None of it mentions the debug build.

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/E7YTTEE4HSR3Q3NRAFRLVZHLWDAAI4KX/


Re: Why are we shipping debug builds of pythons?

2018-08-04 Thread Troy Curtis Jr
On Sat, Aug 4, 2018 at 5:16 PM Miro Hrončok  wrote:

> Hi,
>
> an interesting discussion came up in the Python Maint team recently,
> about not shipping python3-debug and python2-debug.
>
> On the Chesterton's fence principle [0], I'd would like to know why are
> we building and shipping them before we have a discussion about their
> removal to save build time and remove packaging cruft.
>
> Anyone has an idea? Those packages are meant to debug Python, yet all
> people I know who do that, build they own Python for that purpose (often
> from the master branch).
>

The other main use for the Python debug package is debugging Python C
extensions.  I recently made very good use of it while using GDB to debug
some extensions I was working on.  This is more than just having debug
symbols, which of course is essential, but the debug build means that when
you are stepping through the code, you can more easily follow what the
interpreter is doing.  Also, I think that is the package that has some
niceties that extend GDB to work even better with Python code.


> I tracked down the introduction of the python-debug package in this
> commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14
> shortly before upgrade to 2.7. Yet the commit message lacks rationale.
>
> [0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
> [1]
>
> https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105dad425ba9c6637a
>
> Thanks,
> --
> Miro Hrončok
> --
> Phone: +420777974800 <+420%20777%20974%20800>
> IRC: mhroncok
>

Troy
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/AHOMI7GX6IBXSINVDDTBX6GYZF2Y5QLY/


Re: Why are we shipping debug builds of pythons?

2018-08-04 Thread Sérgio Basto
On Sat, 2018-08-04 at 22:25 +0200, Miro Hrončok wrote:
> Hi,
> 
> an interesting discussion came up in the Python Maint team recently, 
> about not shipping python3-debug and python2-debug.
> 
> On the Chesterton's fence principle [0], I'd would like to know why
> are 
> we building and shipping them before we have a discussion about
> their 
> removal to save build time and remove packaging cruft.
> 
> Anyone has an idea? Those packages are meant to debug Python, yet
> all 
> people I know who do that, build they own Python for that purpose
> (often 
> from the master branch).

I think I used debug builds for this feature :

https://fedoraproject.org/wiki/Features/EasierPythonDebugging

https://wiki.python.org/moin/DebuggingWithGdb


> I tracked down the introduction of the python-debug package in this 
> commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14 
> shortly before upgrade to 2.7. Yet the commit message lacks
> rationale.
> 
> [0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
> [1] 
> https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105
> dad425ba9c6637a
> 
> Thanks,
> -- 
> Miro Hrončok
> --
> Phone: +420777974800
> IRC: mhroncok
> ___
> python-devel mailing list -- python-devel@lists.fedoraproject.org
> To unsubscribe send an email to python-devel-leave@lists.fedoraprojec
> t.org
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelin
> es
> List Archives: https://lists.fedoraproject.org/archives/list/python-d
> e...@lists.fedoraproject.org/message/AK6HE4YL6VAU2ZW4XPYWI2MPDQDVAAEP
> /
-- 
Sérgio M. B.
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/HNNQX6YXFZLCPZ5RVNK6J7ZTOLS6OOXJ/


Why are we shipping debug builds of pythons?

2018-08-04 Thread Miro Hrončok

Hi,

an interesting discussion came up in the Python Maint team recently, 
about not shipping python3-debug and python2-debug.


On the Chesterton's fence principle [0], I'd would like to know why are 
we building and shipping them before we have a discussion about their 
removal to save build time and remove packaging cruft.


Anyone has an idea? Those packages are meant to debug Python, yet all 
people I know who do that, build they own Python for that purpose (often 
from the master branch).


I tracked down the introduction of the python-debug package in this 
commit [1] by David Malcolm (CCed) @ 8 years ago, added in Fedora 14 
shortly before upgrade to 2.7. Yet the commit message lacks rationale.


[0] https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
[1] 
https://src.fedoraproject.org/rpms/python/c/f020abd35954981b383884105dad425ba9c6637a


Thanks,
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
___
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/AK6HE4YL6VAU2ZW4XPYWI2MPDQDVAAEP/