@matt regarding your question on ACD, from the rationale:
2^63-1
vs2^64-1
2^63-1
is chosen because it allows representing the gas value as a signed integer, and so the out of gas check can be done as a simple “less than zero” check after subtraction.
The check can be as simple as with signed numbers:
gasAvailable -= cost
if gasAvailable < 0:
raise OOG
(In theory this also allows processing multiple instructions and checking OOG once – this is not realistic given we need to stop at the exact OOG spot)
When working with unsigned numbers:
if gasAvailable < cost:
raise OOG
gasAvailable -= cost
geth currently uses uint64, and with the EIP they do not need to change that, however they can, and use a check like above, which could be cheaper on most CPUs.
@chfast since you had a strong preference for the signed version, let me know if you have anything to add.