On Wed, Jun 29, 2016 at 3:55 PM, Rustom Mody <rustompm...@gmail.com> wrote: >> The transparent shift from machine-word to bignum is what no longer >> exists. Both Py2 and Py3 will store large integers as bignums; Py2 has >> two separate data types (int and long), with ints generally >> outperforming longs, but Py3 simply has one (called int, but >> functionally like Py2's long), and does everything with bignums. >> There's no longer a boundary - instead, everything gets the "bignum >> tax". How steep is that tax? I'm not sure, but microbenchmarking shows >> that there definitely is one. How bad is it in real-world code? No >> idea. >> >> ChrisA > > New to me -- thanks. > I thought it did an FSR type covert machine word → BigInt conversion under > the hood. > Tax is one question > Justification for this change is another
CPython doesn't currently do anything like that, but it would be perfectly possible to do it invisibly, and thus stay entirely within the language spec. I'm not aware of any Python implementation that does this, but it wouldn't surprise me if PyPy has some magic like that. It's PyPy's kind of thing. It's also entirely possible that a future CPython will have this kind of optimization too. It all depends on someone doing the implementation work and then proving that it's worth the complexity. ChrisA -- https://mail.python.org/mailman/listinfo/python-list