Hacker News
points by kannanvijayan 2 days ago | 0 comments
Ah, the `__slots__` feature makes it make a lot more sense.

> Sorry, that sounds a bit vague and not too different from what CPython already is doing.

With slots being available, I can see where I was misled. I went looking for a type structure that modeled the dynamic properties on an object which would be used as a typeguard, but the class itself functions as that if you're restricting the optimization to slotted properties.

Appreciate the clarfication!

[–] adrian17 2 days ago
(Note that this optimization can also trigger for plain classes (that’s LOAD_ATTR_INSTANCE_VALUE), it just needs a bit more guards and is only useful if you don’t abuse instances being dynamic objects. I just used slots as the most obvious example, but there are lots of different op specializations since like 3.11)
[–] kzrdude 2 days ago
And we note that these specializations are part of production Python and will not be removed when the JIT is removed.
[–] kannanvijayan 1 day ago
This has been very informative. With object property/method lookup optimized the next big leap in JIT-style perf is actually a hard pull. The next big perf win lies behind local type inference, and a method-jit with your standard bevy of SSA optimizations to hoist the typeguards.

I suppose the various JIT projects are trying to come at that from different angles incrementally, but that's a genuinely hard problem as you don't see real benefits until multiple complex pieces of infrastructure are in place and with good coverage over the language.

Anyway, my hot take was misplaced.