Message107119
| Author |
jackdied |
| Recipients |
benrg, jackdied, loewis, r.david.murray, terry.reedy |
| Date |
2010年06月05日.01:31:54 |
| SpamBayes Score |
0.040253147 |
| Marked as misclassified |
No |
| Message-id |
<1275701517.16.0.648116430065.issue8847@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
if the id() of the left operand is identical to the id() of the first element in the result it would strongly support compiler skulldugerry.
class Crasher(tuple): pass
foo = Crasher()
x = [1]
a = x + foo
b=a[0]
if id(b) == id(x):
raise Exception("It's the C compiler what did it!")
The only way I can think of this coming about is the right_op getting new'd and then .extend'ing(left_op). That extend() must be going batsh*t and inserting the left_op instead of it's contained items. The C-code for extend is more fiddly than the code for concatenation so there is more room for the compiler to generate bad code. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2010年06月05日 01:31:57 | jackdied | set | recipients:
+ jackdied, loewis, terry.reedy, r.david.murray, benrg |
| 2010年06月05日 01:31:57 | jackdied | set | messageid: <1275701517.16.0.648116430065.issue8847@psf.upfronthosting.co.za> |
| 2010年06月05日 01:31:55 | jackdied | link | issue8847 messages |
| 2010年06月05日 01:31:54 | jackdied | create |
|