Colleagues,
I'm currently tasked with exploring 64bit deploy for a massive PowerBuilder app. I've currently hit the wall with an issue and am wondering if other's have had or are having a similar experience.
First an observation: Not having a 64 bit IDE is detrimental to productivity! The only way to test an app in 64 bit is by doing a complete build. In our case even the smallest change requires an over 90 min compile cycle. Because of PBL interdependencies building a single PBD takes almost as long as a complete build. This is similar to the PB .NET compile situation.
Now on to the issue:
One of the central application features is a window whose code size is well over 1.1meg, coupled with all the related objects it instantiates, we're talking about a massive memory load. The window has (through v12.5) and continues to (in v12.6) compile and run correctly in the 32 bit environment
While most of the app is running fine, in 64bit deploy instantiating and rendering this massive window at runtime is failing miserably. From the outside, it is throwing systems error in <<dw>>.object assignment statements on load. But on the inside - from the perspective of debug traces - things are worse. Symptoms seems to indicate that the referenced datawindows are not present at runtime
Here is a side-by-side comparison of the affected area as seen in /debug traces
The 32bit version, shown on the right (12.5 & 12.6 are the same) creates 12 DWObjects in a row, including creating and calling global functions referenced in property expressions
Then it moves on to create other window controls
The 64 bit version creates 4 DWObjects and then moves on to window size setting activities. Skipping entirely over creating dataobject and the other controls. It really looks like the create sequence is messed up for this massive window. I have not been able to isolate the issue and reproduce it in a small app.
I'm really at a loss what to do here. I can't create a case yet because I can't reproduce this in a small app.
Any suggestions are appreciated
Yakov
One positive side note: Although I have not seen this written, It seems to be clear that PBDs are bit size independent. Once they are created they can be used for both 64 and 32 bit EXEs