On Jan 26, 2008 2:02 PM, Georg Brandl <[EMAIL PROTECTED]> wrote: > Guido van Rossum schrieb: > > On Jan 26, 2008 1:45 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote: > >> Am strongly -1 on changing the repr for set to set({a, b, c}) . Creating > >> an innermost frozenset doubles the memory consumption. > > > > Raymond, I think you're overestimating how often the repr() of a set > > actually gets eval()'ed. I expect this happens approximately never. I > > certainly haven't used it myself, and most certainly not in a > > performance-critical context. > > > > The reason that repr() returns an eval()'able expression isn't that > > the expression is likely to be eval()'ed -- it is that the programmer > > is already familiar with the notation and can thus immediately > > understand what it means. > > Which means of course that users will pick up that idiom when they're > creating nonempty sets in their own code, thus causing the issues > Raymond mentioned.
But didn't we start by establishing that users are rarely going to create non-empty non-frozen sets anyway, because most algorithms involving mutable sets start with an empty one? Even if users occasionally write initialized sets, I find it hard to believe that this would occur in a performance-critical position. I think Raymond has been focusing on performance for so long that he sees performance issues *everywhere*. It reminds me of the ugly idioms that were common in Zope (long ago, it's probably changed) because they boosted performance -- unfortunately they were used everywhere, not just in performance-critical code, making the code harder to read and maintain. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com