Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Which creates more chaos?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo
View previous topic :: View next topic  
Author Message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Mon Aug 03, 2020 1:07 pm    Post subject: Which creates more chaos? Reply with quote

Python or Haskell?

I'm getting tired of dealing with their breakages.

</rant>

Cheers, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram


Last edited by iandoug on Mon Aug 03, 2020 1:19 pm; edited 1 time in total
Back to top
View user's profile Send private message
Tony0945
Watchman
Watchman


Joined: 25 Jul 2006
Posts: 5127
Location: Illinois, USA

PostPosted: Mon Aug 03, 2020 1:10 pm    Post subject: Reply with quote

And perl.
Back to top
View user's profile Send private message
proteusx
Guru
Guru


Joined: 21 Jan 2008
Posts: 338

PostPosted: Mon Aug 03, 2020 1:42 pm    Post subject: Reply with quote

Perl I can cope with.

Python with their python[_single]_target_python{2_7, 3_{6..9}} use flags, and their convoluted eclasses are a source of perpetual grief.

As for haskel I only wish I could have pandoc without the crazy haskell menagerie.
Back to top
View user's profile Send private message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Mon Aug 03, 2020 2:05 pm    Post subject: Reply with quote

proteusx wrote:
Perl I can cope with.

Python with their python[_single]_target_python{2_7, 3_{6..9}} use flags, and their convoluted eclasses are a source of perpetual grief.

As for haskel I only wish I could have pandoc without the crazy haskell menagerie.



Perl used to cause me some grief when dealing with modules I had installed from CPAN, but not lately.

Thanks for solving the puzzle as to why I have Haskell on my system in the first place. Was about to do a bunch of equerys to trace back to the culprit.

Guess I can't uninstall pandoc. Probably we need a replacement written in a less-problematic language.

Mmm...
Code:

trooper ~ # equery depends app-text/pandoc
 * These packages depend on app-text/pandoc:


But I'm sure there are things that use it even if they don't require it...

Cheers, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram
Back to top
View user's profile Send private message
Tony0945
Watchman
Watchman


Joined: 25 Jul 2006
Posts: 5127
Location: Illinois, USA

PostPosted: Mon Aug 03, 2020 2:20 pm    Post subject: Reply with quote

proteusx wrote:
Python with their python[_single]_target_python{2_7, 3_{6..9}} use flags, and their convoluted eclasses are a source of perpetual grief.

From your mouth to God's ear!
Back to top
View user's profile Send private message
proteusx
Guru
Guru


Joined: 21 Jan 2008
Posts: 338

PostPosted: Mon Aug 03, 2020 5:27 pm    Post subject: Reply with quote

@iandoug
Unfortunately I can find no other utility that can do document conversions like Pandoc.
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8933

PostPosted: Mon Aug 03, 2020 5:57 pm    Post subject: Reply with quote

proteusx wrote:
Python with their python[_single]_target_python{2_7, 3_{6..9}} use flags, and their convoluted eclasses are a source of perpetual grief.

Of course what you fail to mention is that you fight the concept instead of understanding it once and for all.

My whole python configuration consumes exactly two lines in /etc/portage/package.use, and that's only necessary because I care to run a more recent version than default, in order to work towards stabilisation for the users.
Back to top
View user's profile Send private message
proteusx
Guru
Guru


Joined: 21 Jan 2008
Posts: 338

PostPosted: Mon Aug 03, 2020 7:10 pm    Post subject: Reply with quote

@asturm
Suppose one wants to know the dependencies of, say, ipython
Code:
# qdepends ipython
dev-python/ipython-7.16.1: >=dev-python/sphinx-2[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] >=dev-python/setuptools-42.0.2[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/traitlets[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] >=dev-python/ipykernel-5.1.0[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-lang/python:3.8[readline,sqlite,threads(+)] dev-python/jedi[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/qtconsole[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-lang/python:3.6[readline,sqlite,threads(+)] dev-python/setuptools[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] >=dev-python/ipyparallel-6.2.3[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/pickleshare[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] <dev-python/prompt_toolkit-3.1[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] >=dev-lang/python-exec-2:2/2=[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] >=dev-python/prompt_toolkit-2[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/notebook[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/backcall[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/pygments[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/widgetsnbextension[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/decorator[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/ipywidgets[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/pexpect[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)] dev-python/matplotlib[python_targets_python3_6(+),python_targets_python3_8(+),-python_single_target_python3_6(+),-python_single_target_python3_7(+),-python_single_target_python3_8(+)]
Are you telling me that you can make sense out of this elegance?

EDIT.
P.S. Reading the ebuild is equally unrevealing because of the ${PYTHON_USEDEP}, ${PYTHON_MULTI_USEDEP}, etc., that need to be expanded to reveal the dependencies.
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8933

PostPosted: Mon Aug 03, 2020 8:53 pm    Post subject: Reply with quote

So you're really criticising qdepends then? Just use `equery g` instead.

proteusx wrote:
P.S. Reading the ebuild is equally unrevealing because of the ${PYTHON_USEDEP}, ${PYTHON_MULTI_USEDEP}, etc., that need to be expanded to reveal the dependencies.

All you need to check is the ebuild's PYTHON_COMPAT... don't make it look more complicated than it really is. Only when you actually *write* the ebuild do you need to check the dependency for using PYTHON_MULTI_USEDEP or not.
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Mon Aug 03, 2020 10:07 pm    Post subject: Reply with quote

Gentoo's insistence on accumulating every python package and slot currently in the main tree with no good story for outsourcing that burden to whoever actually uses them was a technical debt it'll never be rid of.

Look at perl for comparison: you have a System Perl like RHEL (but up to date and a complete install, unlike redhat) and you can install App-{perlbrew,cpanminus} for anything else. There are perl packages/apps in tree, but they aren't there for their own sake.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21490

PostPosted: Tue Aug 04, 2020 2:01 am    Post subject: Reply with quote

I would be happier if Portage could handle updating the python targets on a given ebuild without reinstalling all the unchanged data, but overall, I like that Python is slotted. It allows me to install a very recent Python, and packages that have been updated to that Python, as soon as the specific things I want are ready. There is no need to rebuild everything and drop the old Python immediately. In contrast, since Perl is not slotted, I need to reinstall everything Perl related for the new subslot on each major perl upgrade. This means suspending all the system processes that might use Perl, updating everything in one big step, then resuming those processes. For Python, provided the dependency data is correct, I can install all the packages for the new version before making /usr/bin/python point to it, so everything runs smoothly during the update.

In criticising one approach versus the other, it is also important to distinguish which use case(s) you dislike. For example, do you object to the scheduling (too fast or too slow) of updates, to the (lack of) ease reading the state, to the (lack of) ease of using Portage and related tools to handle the updates, etc.? The convoluted output from the dependency data is a bit hard to read, but I gladly accept that for the benefits that come from having Python slotted and able to handle incrementally rolling out updates.
Back to top
View user's profile Send private message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Tue Aug 04, 2020 6:09 am    Post subject: Reply with quote

My rant was directed more at the people managing the languages upstream, than at the Gentoo devs, who have a hard time dealing with the chaos upstream.

In particular, yesterday the Haskell subsystem threw up a whole bunch of blockers, which triggered me... a few years back they did the same thing, and we are all familiar with the recent Python mess.

Even PHP decided to "deprecate" things, including ways to access MySQL, which means I need to redo a large financial system... this is a large technical debt which I didn't need. Can't even bill the client for it, but has to be done.

Regarding the Haskell, I had no idea how to see why it was complaining, but adding backtrack=30 let it sort itself out up to a point: there was a bunch of things it wanted to revdep-rebuild, but that didn't work because there are also some dev-ada packages that want rebuilding, and dev-ada/gps is temporarily hard-masked, so revdep-rebuild just threw up its hands and gave up.

Maybe there's a case for pandoc-bin so that general users who have no other need for Haskell can get pandoc without Haskell? And put a "hint" for anyone about to install pandoc, of the consequences.

Cheers, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8933

PostPosted: Tue Aug 04, 2020 6:20 am    Post subject: Reply with quote

Most regular systems do not need pandoc or haskell. Do you have USE=doc globally enabled?
Back to top
View user's profile Send private message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Tue Aug 04, 2020 6:26 am    Post subject: Reply with quote

asturm wrote:
Most regular systems do not need pandoc or haskell. Do you have USE=doc globally enabled?


Only have docbook in make.conf.

I vaguely remember some package saying (or requesting) that pandoc would enable conversions between assorted formats. Can't remember if this was something like Cailibre or a word processor or something else.

equery depends does not show any packages that demand it.

Thanks, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8933

PostPosted: Tue Aug 04, 2020 6:28 am    Post subject: Reply with quote

That would be dev-python/nbconvert that has such an einfo message ("for formats other than Python, HTML and Markdown.").

It is probably in your world file for no good reason.
Back to top
View user's profile Send private message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Tue Aug 04, 2020 8:00 am    Post subject: Reply with quote

asturm wrote:
That would be dev-python/nbconvert that has such an einfo message ("for formats other than Python, HTML and Markdown.").

It is probably in your world file for no good reason.


Not installed.

It may have been one of the Latex packages ... I tried Latex years ago, and then again in recent months, so may be some leftover thing from years ago.

Thanks, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram
Back to top
View user's profile Send private message
proteusx
Guru
Guru


Joined: 21 Jan 2008
Posts: 338

PostPosted: Tue Aug 04, 2020 8:54 am    Post subject: Reply with quote

@iandoug
If you want to keep pandoc, ignore the blockages and emerge ghc on its own
Code:
emerge -1a ghc
and it will take care of all the haskell dependencies.

@asturm
I love qdepends, it is a very useful tool I have been using for years. I usually simplify its output so I can see the simple dependencies.e.g.
Code:
~ $ qdepends ipython | tr ' ' '\n' | sed 's/[=><]//g; s/:.*$//; s/-[[:digit:]].*$//; s/\[.*\]//'     
dev-python/ipython
dev-python/sphinx
dev-python/setuptools
dev-python/traitlets
dev-python/ipykernel
dev-lang/python
dev-python/jedi
dev-python/qtconsole
dev-lang/python
dev-python/setuptools
dev-python/ipyparallel
dev-python/pickleshare
dev-python/prompt_toolkit
dev-lang/python-exec
dev-python/prompt_toolkit
dev-python/notebook
dev-python/backcall
dev-python/pygments
dev-python/widgetsnbextension
dev-python/decorator
dev-python/ipywidgets
dev-python/pexpect
dev-python/matplotlib
What I am complaining about is, as Hu put it
Hu wrote:
The convoluted output from the dependency data is a bit hard to read
as well as the daft python use flag naming, although I understand that it is too late to change any of that nonsense.

EDIT. Deleted spaces from code
Back to top
View user's profile Send private message
iandoug
l33t
l33t


Joined: 11 Feb 2005
Posts: 816
Location: Cape Town, South Africa

PostPosted: Tue Aug 04, 2020 6:48 pm    Post subject: Reply with quote

proteusx wrote:
@iandoug
If you want to keep pandoc, ignore the blockages and emerge ghc on its own
Code:
emerge -1a ghc
and it will take care of all the haskell dependencies.


backtrack=30 allowed Haskell to do its thing, but then there were a bunch of preserved libs which won't run because of Ada getting in the way.

I tried your suggestion anyway but still get the same issue.

Probably will resolve itself in next few days.

Thanks, Ian
_________________
Asus X570-PRO, Ryzen 7 5800X, GeForce GTX 1650, 32 GB RAM | Asus Sabertooth P990, AMD FX-8150, GeForce GTX 560, 16GB Ram
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Things Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum