From: Rick M. <obj...@gm...> - 2008-01-01 00:56:29
|
I've just checked in the bulk of the changes for task 1821253. With this checkin, it's conceivable that the interpreter can be build and run in 64-bit mode. I welcome anybody with access to a 64-bit capable system to give it a try and start working through any problems. There are a couple of areas that are still going to need some work to work correctly on 64-bit. Many of these areas are in Windows code. 1. The rxwinsys code is going to have problems with the handle values formatted as strings. The current system of using atol(), etc. to format these values as strings just will not work properly in 64-bit. I believe portions of handle values will end up getting truncated when the size of a pointer is not the same as an int value. I solved this for the semaphore functions in rexxutil by using sprintf/sscanf with a %p formatting trigger to format these values as hex digits. I think this solution should be used here, but there are a LOT of places where this is done, and (of course) non of the formatting/parsing is centralized so this will need a pretty good reworking. 2. oodialog has the same problem in spades. All of the different handle values it uses need the same treatment. 3. The regex code needs a little cleanup too. This is more of a general /Wp64 fix up than a general problem area. 4. The rxsock class needs to be looked at for formatting/processing socket types also. Again, this is done in a lot of places and needs to be generalized. 5. The compile checking has only been done for Windows, so there might be some 64-bit issues in the unix platform-specific code. We sort of have a catch-22 situation here. as a lot of these problems can be fixed by going to the new APIs, but there's still a lot of work needed to get those in. I think it would be a bit risky assuming we can get the new APIs in place for the next release AND also get the code converted to the new API set. I'm going to continue to focus on moving us in that direction, but I think we've reached the point where we can start doing more things in parallel. Mark, rxwinsys and oodialog are sort of your baliwick. How do you feel about tackling those changes? Rick |