Merged from trunk 10788:10801
authorFabian Groffen <grobian@gentoo.org>
Fri, 27 Jun 2008 14:47:19 +0000 (14:47 -0000)
committerFabian Groffen <grobian@gentoo.org>
Fri, 27 Jun 2008 14:47:19 +0000 (14:47 -0000)
commitebf51d6cc85ffa5f6e493f104afab6039f8e41bb
tree4ca4cc2ed2bcca9aa22c108077f8bf4ada17e878
parent83d1aca4408498cc349a08e76db7f7ef2311f10e
   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
cnf/sets.conf
pym/_emerge/__init__.py
pym/portage/__init__.py
pym/portage/cache/mappings.py
pym/portage/dbapi/bintree.py
pym/portage/dbapi/porttree.py
pym/portage/getbinpkg.py
pym/portage/util.py