In the style of my late strategy of rapid-fire-news-posts, here's an important update to the AMD64 folks.
PM OnoTo has scratched out a plan-of-concept to making an End-All Everything-Works AMD64 port. However, the compiler version that's anywhere near 64bit safe, 2.5.1, is still heavily broken (our crash test is compiling WC3).
This means we have two options: Wait for Thiadmer of ITB Compuphase to release 2.6.0, or backport the necessary changes into the 2.1.0 compiler.
2.5.x has a number of improvements that we'd all like, however, it doesn't seem useable at this point. We've decided to wait for 2.6.0. If 2.6.0 doesn't work, we'll backport everything into 2.1.0 (which will probably be more work).
The end result is, we'll be checking
Small's Site regularly for updates, but we're not going to waste time working what we don't have. Consider the 64bit port a development fork for now - it is something we're branching off and will come back to, hopefully by 1.0.
The technical details:
What PM and I are currently discussing has been an ongoing issue for months now, and we eventually decided we would need to make some low level changes to the AMX file structure. The first issue is the cell size difference, on AMD64 a cell would be 8 bytes instead of 4, because of the size of a void pointer. Since a void pointer obviously can't be casted, reading a 32bit plugin on a 64bit machine results in assertion failures and garbage pointer to functions.
There are a number of solutions to this, one is simply releasing 64bit plugins and 32bit plugins. Support nightmare, no thanks.
The second solution is to interactively cast the cells to the appropriate size as the 32bit plugin is being read. This is much cleaner, except for the fact that it makes differentiating between floats/doubles and normal cells impossible. This is where we have to also modify the file format to internally tag data types - which is an area we're still debating about.
PM, feel free to correct anything I've said here. Hope this clears up the issue.
__________________