This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Python extraneous dependencies


On Tue, Feb 26, 2019 at 5:12 AM Yaakov Selkowitz <yselkowitz@cygwin.com> wrote:
>
> On Mon, 2019-02-25 at 04:43 -0800, Steven Penny wrote:
> > On Sun, 24 Feb 2019 17:42:36, Yaakov Selkowitz wrote:
> > > On Sat, 2019-02-23 at 16:29 -0800, Steven Penny wrote:
> > > > I noticed that "python36" requires "binutils".
> > >
> > > This is needed for ctypes.util.find_library().  FWIW, on Linux, not
> > > only binutils is used, but also gcc.

I am very familiar with CPython's source code because I work on the
Anaconda Ditribution, maintaining our Python packages for Windows,
Linux and macOS and I can say that this is not the case, neither
regarding binutils nor gcc. In Python, objdump is used only in a
*fallback* case, and one that no one has run for many years [1]. If it
is used in Cygwin's port of Python then the reason for needing the
fallback needs to be investigated and removed. I might submit a patch
to CPython removing this fallback one day and it is just code-rot at
this point (and leads people to draw incorrect conclusions).

gcc is not used at all in ctypes. It (or some compiler) is used by
disutils when compiling python extension modules, obviously, but
that's not something all (or even most) users of Python probably need
to do.

--

Cheers,

Ray.

[1] https://github.com/python/cpython/blob/e42b705188271da108de42b55d9344642170aa2b/Lib/ctypes/util.py#L193-L212

> > >
> > > > Further, I noticed this dependency chain:
> > > >
> > > >     python36 > libuuid-devel > pkg-config > libglib2.0_0
> > >
> > > Until 3.7, the uuid stdlib module loads libuuid via ctypes, hence the
> > > dependency.  In 3.7, there is a compiled binding, and so the -devel
> > > dependency was dropped.  Also, pkgconf will soon be providing and
> > > replacing pkg-config, which will cause the glib2.0 dependency to be
> > > dropped.
> >
> > thanks. i was interested further in comparison so i took this file:
> >
> > https://python.org/ftp/python/3.6.8/python-3.6.8-embed-amd64.zip
> >
> > then use tar for fair comparison:
> >
> >     tar -a -c -f python-3.6.8-embed-amd64.tar.xz python-3.6.8-embed-amd64
>
> Did you look at the contents of that zip file?  It's quite minimal, and
> therefore not a fair comparison at all.
>
> > and that doesnt include the other packages i previously discussed. so it almost
> > makes more sense to not even use the cygwin version?
>
> Hardly, but discussing how/why *not* to use Cygwin is OT IMO.
>
> --
> Yaakov
>
>
>
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]