Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8065

64 bit compiler woes

$
0
0

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

debugtrace.jpg

 

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


Viewing all articles
Browse latest Browse all 8065

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>