[issue46097] Split function versions into 1-0xffff and 0x1000+ regions

2021-12-16 Thread Brandt Bucher
Brandt Bucher added the comment: Ah, never mind, I think I understand what you meant. Special methods get 0x0001-0x, all other functions get 0x0001-0x. So we use 16-bit versions for special method caches, and 32-bit versions for normal call caches. "super().__init__()" and

[issue46097] Split function versions into 1-0xffff and 0x1000+ regions

2021-12-16 Thread Brandt Bucher
Brandt Bucher added the comment: Interesting idea! > It is likely that programs will have more than 2**16 functions versions, but > it is much less likely that they will have more than 2**16 versions of > special methods. Is it? The pyperformance suite isn't exactly representative of huge

[issue46097] Split function versions into 1-0xffff and 0x1000+ regions

2021-12-16 Thread Ken Jin
Change by Ken Jin : -- nosy: +kj ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe:

[issue46097] Split function versions into 1-0xffff and 0x1000+ regions

2021-12-16 Thread Mark Shannon
New submission from Mark Shannon : Because functions are mutable, specifically because the __code__ attribute is mutable, we need to version functions when specializing. However, some specializations (for special methods mainly) only have space for 16 bit versions. It is likely that