On Friday, 5 April 2013 at 01:26:27 UTC, Jonathan M Davis wrote:
But I would point out that the bugs that you listed are not at
really related
to this discussion. They're about dmd running out of memory
when compiling,
and it's running out of memory not because it needs 64-bit to
have enough
memory or because size_t is signed (because it is) but because
it doesn't
reuse memory like it's supposed to. It generally just eats more
without
releasing it properly. It should be perfectly possible for a
32-bit dmd to
compile those programs without running out of memory. And if
that issue has
anything to do with this discussion, it would be to point out
that dmd's
problems would be made worse by making size_t signed
How is that if the problem is not in size_t? If dmd would need a
large array, it won't be possible to solve by properly releasing
memory: if the array is needed, no matter what you release,
nothing you can do with that array. The issues show a real memory
consumption mechanics: in a case, when an application needs
gigabytes, it won't stop at 4 gigs just *because* there is 32-bit
limit, so if uint buys you anything, it's too negligible to be
considered: it's much easier to migrate to 64-bit than playing
russian roulette pushing limits of 32-bit and see whether you hit
them.