public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Alan McKinnon <alan.mckinnon@gmail.com>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] Portage 2.2
Date: Wed, 24 Jul 2013 12:46:59 +0200	[thread overview]
Message-ID: <51EFB0A3.9070309@gmail.com> (raw)
In-Reply-To: <20130724111708.447eaa91@hactar.digimed.co.uk>

On 24/07/2013 12:17, Neil Bothwick wrote:
> On Wed, 24 Jul 2013 14:00:54 +0400, Pavel Volkov wrote:
> 
>> It initially suported set arithmetic (you could writes expressions like
>> "@set1+@set2/@set3"), I wonder why it was dropped :)
> 
> What does that mean? set1 and one of set2 or set 3? Or both set1 and set2
> or set3 only? I'm not sure how this would be useful but I can certainly
> see how it would cause confusion and problems, but I hadn't heard if it
> before.
> 
> 

It's standard mathematical set operators. In maths, a set is defined as
"a collection of well-defined objects". Sets have no dupes.

http://en.wikipedia.org/wiki/Set_%28mathematics%29
http://en.wikipedia.org/wiki/Set_theory

Sets have several well-defined operations that can be done on them:
union, intersection, difference plus a few others.

@set1+@set2/@set3 reduces to:

all the elements of set1 and set2 without the elements that are in set3
(/ is difference).

As an example, assume portage ships two sets @kde and @kdedev:

@kde
  kdeadmin-meta
  kdebase-meta
  kdemultimedia-meta
  kdepim-meta
  ...

@kdedev
  kdewebdev-meta
  kdebindings-meta
  kdesdk-meta


However, kmail sucks and akonadi sucks moar, so define for yourself

@suckykde
  kdepim-meta

And add to your world sets:

@kde+@kdedev/@suckykde

effectively giving you kde without kde-pim.
Without operators, you have to copy-paste an existing set and maually
remove the entriess you don't want.

Useful, not so?
Well, it all gets extremely murky very very quickly. Portage applies
more than just mathematical sets, there's this concept of deps that are
not part of set theory.

What if something in set1 has a dep, and that dep is listed in set3 and
must be removed. To resolve this, you must have precedence rules and
must ignore something. You either ignore set3 and install anyway, or
throw a blocker and say the item is required in set1.

Either way there's no clean way to do it and lots of users are going to
get annoyed. Not to mention the extra bug reports





-- 
Alan McKinnon
alan.mckinnon@gmail.com



  reply	other threads:[~2013-07-24 10:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-24 10:00 [gentoo-user] Portage 2.2 Pavel Volkov
2013-07-24 10:05 ` Alan McKinnon
2013-07-24 10:13 ` Yohan Pereira
2013-07-24 10:52   ` Pavel Volkov
2013-07-24 10:53     ` Alan McKinnon
2013-07-24 10:17 ` Neil Bothwick
2013-07-24 10:46   ` Alan McKinnon [this message]
2013-07-24 13:20     ` Neil Bothwick
2013-07-24 13:27       ` Alan McKinnon
2013-07-24 15:26         ` Michael Orlitzky
2013-07-24 20:06     ` Willie WY Wong
2013-07-24 20:15       ` gottlieb
2013-07-24 21:13         ` Alan McKinnon
2013-07-24 21:21           ` gottlieb
2013-07-24 21:24             ` Alan McKinnon
2013-07-24 12:06 ` [gentoo-user] " Nikos Chantziaras

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=51EFB0A3.9070309@gmail.com \
    --to=alan.mckinnon@gmail.com \
    --cc=gentoo-user@lists.gentoo.org \
    /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