[MERGE] FIFOCache and FIFOSizeCache

John Arbash Meinel john at arbash-meinel.com
Tue Dec 9 23:41:43 GMT 2008

Hash: SHA1

Robert Collins wrote:
> On Tue, 2008-12-09 at 16:54 -0600, John Arbash Meinel wrote:
>> That would optimize for the case where you are replacing items, rather
>> than optimizing for the case where add is called when the item is not
>> present.
> Well, I wasn't trying to change the optimisation at all.
>> It is hard to say what the most common case is, but I would guess that
>> most caches are only used for things that won't actually mutate, so I
>> would rather optimize for that case.
>> Or are you just trying to change the semantics of "del fifo[foo]" into
>> "fifo.discard(foo)" [which doesn't raise if foo doesn't exist]?
> if moved into __delitem__ I was expecting
> if key not in self:
>     raise KeyError(key)
> ...
>> I'm willing to change it, but I think I have it written the correct
>> way.
> It just seems duplicative.
> -Rob

Writing it this way allows us to not have to raise and then catch
KeyError in the common case that key is not in self. I'm presuming that
it is a more common case than key is in self which wouldn't raise the


Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the bazaar mailing list