On Wed, Dec 12, 2012, at 14:18, Alan McKinnon wrote: > You are wrong, the docs and the man pages are correct. > > The problem is that the word "set" is used in two different ways, one > loosely and the other with reference to an exact construct. > > portage-2.2 introduced the concept of "a defined set" under user > control. It's a list of packages that portage treats as a whole chunk > of things together and the user can define what he wants in a set and > give it a name. When used with emerge, sets like this must have an "@" > prefix so portage can tell them apart from regular packages. Portage > also dynamically creates sets internally that work the same way, things > like @world and @system and @preserved-rebuild. You can use these too, > you just can't define them or modify them directly. > > The portage man page has unfortunately also used the word "set" for a > different reason. Portage has always had a concept of "world" (not > @world) and "system" (not @system) which were really "just a bunch of > stuff that happens to pop out of portage because it's hard-coded that > way". And the docs say things like > > emerge world > > and call the "world" part "the world set". > > "Set" here is a homonym - two completely different words with different > meanings that just happen to be spelled and sound the same.
I'm still not convinced. emerge(1) man page for portage-2.1.11.37 already contains the following command example: > emerge --update --newuse --deep @world And: > emerge --update @world But not a single example without the at sign. I also found this (old) blog post from Portage developer Zac Medico: http://blogs.gentoo.org/zmedico/2010/09/07/portage_2-1-9_release/. It says: > Package set names in emerge arguments have to be prefixed with @ (exceptions: > ‘world’ and ‘system’ can be used without the prefix). So it seems that since version 2.1.9 @world and world (and @system and system) are just treated in the same way, but prefixing them with the at symbol is more future-proof.