Merged from trunk 10788:10801
| 10789 | Swap out the whole Package.root_config attribute inside |
| zmedico | depgraph.break_refs(). |
| 10790 | Add a generic portage.cache.mappings.slot_dict_class() |
| zmedico | function which generates mapping classes that behave similar |
| | to a dict but store values as object attributes that are |
| | allocated via __slots__. Instances of these objects have a |
| | smaller memory footprint than a normal dict object. These |
| | classes are used to reduce the memory footprint of the |
| | dbapi.aux_get() caches and the Package.metadata attribute. |
| 10791 | Fix indentation. |
| zmedico | |
| 10792 | Fix KeyError constructor style. |
| zmedico | |
| 10793 | Fix typo. |
| zmedico | |
| 10794 | Add docstring to slot_dict_class(). |
| zmedico | |
| 10795 | Fix typo. |
| zmedico | |
| 10796 | Use SlotDict where appropriate in binarytree._populate(). |
| zmedico | |
| 10797 | Make PackageIndex use SlotDict for package metadata storage. |
| zmedico | The set of allowed keys is passed into the PackageIndex |
| | constructor (normal dict instances will be used if the set |
| | of keys is not passed in for some reason). A |
| | SlotDict.allowed_keys attribute now provides access to a |
| | frozenset of allowed keys. |
| 10798 | Implement lazy initialization of global "portdb", "settings" |
| zmedico | and other variables that pollute the portage module. This |
| | works by initializing the global variables with dummy |
| | "proxy" objects that serve as a means to trigger lazy |
| | initialization. As soon as the first attribute access or |
| | method call occurs on one of the proxy objects, it causes |
| | all the proxy objects to be replaced with the real ones. |
| | It's possible for an unsupported attribute access or method |
| | call on a proxy object to trigger an error, leading to |
| | breakage. However, hopefully these such corner cases will |
| | negligible (only time will tell). |
| 10799 | Use a separate proxy type to trigger portage.portdb |
| zmedico | initialization separately from the rest of the legacy global |
| | variables. This can be useful since sometimes the other |
| | variables are needed while the portdb is not. |
| 10800 | Also use a separate proxy type for portage.mtimedb since |
| zmedico | it's independent from the portdb and settings. |
| 10801 | change default name of EverythingSet to @all-installed (bug |
| genone | #229467) |
svn path=/main/branches/prefix/; revision=10814