>>26Efficient implementation of rationals is more a question of memory management than execution speed, and virtual memory solved that issue a long time ago with 64-bit address spaces (well 47 bits for userspace today) picking up the rest. Furthermore the parallelism issue can be solved by storing the limbs of an arbitrary-precision integer in a "long carry" format, so that there's (say) 12 bits of carry and 52 bits of body, allowing operations to produce denormal limbs, and catching carry overflow with a slowpath which normalizes the operands first.
This isn't common practice because libgmp is the practical standard, and it fixes a carryless format. But perhaps one day.