1. Vipin Dwivedi
  2. PowerBuilder
  3. Saturday, 27 August 2022 19:49 PM UTC

Hello Appeon Folks,

Greeting!

I have question regarding application full and incremental build. Our application is in PB2017R3 version containing 93 pbls and around 7500 PB objects.

We are currently using PBC17.0 exe to build the exe and pbds but this takes around 3 to 3 and half hours daily and constantly to build the exe and pbds.

 

When we were in old PB version PB12  (I don't know the exact year but should bel approx. 4 year ago)  when PBC compiler was not introduced, we used to use ORCA script to build the exe and PBDs at that time also we had same pbls with around 7400 objects ( we might have added few when we switched to PB2017). The ORCA script used to take only 1 and half hours max to build the EXE and PBD.

 

We recently develop ORCA script for Incremental build on one PBL for patch build where we copy all the changes made in previous application release to one pbl only, make the PBD and keep this PBD on top in the library list so that it takes the recent change objects in effect. This ORCA script also used 45 min to build only one PBD. The ORCA script we used is pretty straight forward with statement (This is just an example with same syntax only path and pbl name is different) 

start session
set debug true
scc set connect property localprojpath "c:\shared_obj" scc set connect property logfile "c:\ test\log.log" scc connect offline scc set target "c:\test\work.pbt" "outofdate importonly" scc refresh target incremental scc refresh target 3pass
build library ".\shared_obj\upatch_test.pbl" "" pbd
scc close end session

I thought to try with only scc refresh target incremental option only but this did not refresh the upatch_test pbl with latest object changes. Also I read that with complex object inheritance better to use 3pass command and our application is using complex inheritance.

 

Kindly suggest better, full proof and how to quickly built the PBD and exe in POWERBUILDER.

DOTNET builds are pretty fast compared to POWERBUILDER. We may need to think about improving the build feature.

 

Thanks,

Vipin 

 

Accepted Answer
Roland Smith Accepted Answer Pending Moderation
  1. Monday, 29 August 2022 20:27 PM UTC
  2. PowerBuilder
  3. # Permalink

Creating a PBD is fast, all it does is copy the existing object binary code from the PBL to the PBD. What takes a long time is the rebuild.

We create our patches manually in PowerGen. It allows for the creation of a PBD file without triggering a rebuild. It usually takes less than 15 seconds.

Comment
  1. Vipin Dwivedi
  2. Thursday, 27 April 2023 21:04 PM UTC


Vipin Dwivedi Thursday, 27 April 2023 15:29 PM UTC Remove Accept as Answer

Continuing th old thread, I have a quesiton regarding full build. Suppose if I make changes in only few pbls say a.pbl and b.pbl. so can i keep only changed pbl in the library list and remaining as pbd to build it faster. So the targe will look like beow (when open in notepad)







Save Format v3.0(19990112)



appname "Trial";



applib "appl_temp.pbl";



LibList "appl_temp.pbl;a_functions.pbd;pfeapsrv.pbd;pfedwsrv.pbd;pfemain.pbd;pfeutil.pbd;pfewnsrv.pbd;pfcapsrv.pbd;pfcdwsrv.pbd;pfcmain.pbd;pfcutil.pbd;pfcwnsrv.pbd;a.pbl;b.pbl;c.pbd;d.pbd;e.pbd;



type "pb";







So this target contains mix of both pbd and pbl. During ORCA build use only those pbls whose objects got changed.



scc connect offline



scc set target "Trial.pbt" "importonly outofdate"



scc refresh target 3pass



build library "appl_temp.pbl" "" pbd // using this pbl as this pbl has application. Though there is no change in this libary. Do I need to add this libary?



build library "a.pbl" "" pbd



build library "b.pbl" "" pbd



build library "c.pbl" "" pbd



build executable "Trial.exe" // There will be other informations but I have skipped that for now in this example.











Please advice
  1. Helpful
  1. Vipin Dwivedi
  2. Sunday, 30 April 2023 01:45 AM UTC
Any suggest is appreciated.
  1. Helpful
There are no comments made yet.
Brad Mettee Accepted Answer Pending Moderation
  1. Monday, 29 August 2022 13:46 PM UTC
  2. PowerBuilder
  3. # 1

If your compile machine has enough memory, I'd suggest setting up a RAM Disk for source and temporary files. We have a project that takes at minimum 40min to compile from standard hard disk. When run from a RAM drive, it's about 2min.

Our compile process is clear RAM disk, copy over all source code, run compile, copy back exe's and pbd's. The only change we've had to make is a dedicated PBW because we don't need all the projects in the normal workspace to be compiled.

Comment
  1. Chris Pollach @Appeon
  2. Sunday, 4 September 2022 15:38 PM UTC
Hi Brad;

Thank you for that great feedback! :-)

Regards ... Chris
  1. Helpful
  1. René Ullrich
  2. Wednesday, 12 October 2022 07:51 AM UTC
I've tested with RAM Disk on my machine and had no such big differences. The build with my test application was on RAM Disk about 17 minutes, on SSD 18 minutes and on HDD 21 minutes. Maybe a virus scanner slows it down but I can't change it's settings because of system policies. :-(
  1. Helpful
  1. Roland Smith
  2. Tuesday, 2 January 2024 17:52 PM UTC
Many laptops these days have chip based 'hard drives' so adding a RAM Drive probably won't be helpful.
  1. Helpful
There are no comments made yet.
mike S Accepted Answer Pending Moderation
  1. Sunday, 28 August 2022 17:18 PM UTC
  2. PowerBuilder
  3. # 2

You need to make sure your library list is made up of only pbds, the update pbl, and also your application object in a pbl.  For some reason the application object must be in a pbl. Makes no sense, but there it is.

 

If you included all  your other pbls, then it will take a lot of time rebuilding objects in those pbls for no reason.

 

 

Comment
  1. mike S
  2. Monday, 29 August 2022 17:50 PM UTC
since you use

scc set target "c:\test\work.pbt"

scc refresh target incremental

scc refresh target 3pass



then you must create a target that instead of pbL had pbD for your libraries, except for the update pbl and a pbl with the application object .



if you do that, it won't waste a huge amount of time to recompile all the libraries that aren't building.









  1. Helpful
  1. Vipin Dwivedi
  2. Thursday, 27 April 2023 15:29 PM UTC
Continuing th old thread, I have a quesiton regarding full build. Suppose if I make changes in only few pbls say a.pbl and b.pbl. so can i keep only changed pbl in the library list and remaining as pbd to build it faster. So the targe will look like beow (when open in notepad)



Save Format v3.0(19990112)

appname "Trial";

applib "appl_temp.pbl";

LibList "appl_temp.pbl;a_functions.pbd;pfeapsrv.pbd;pfedwsrv.pbd;pfemain.pbd;pfeutil.pbd;pfewnsrv.pbd;pfcapsrv.pbd;pfcdwsrv.pbd;pfcmain.pbd;pfcutil.pbd;pfcwnsrv.pbd;a.pbl;b.pbl;c.pbd;d.pbd;e.pbd;

type "pb";



So this target contains mix of both pbd and pbl. During ORCA build use only those pbls whose objects got changed.

scc connect offline

scc set target "Trial.pbt" "importonly outofdate"

scc refresh target 3pass

build library "appl_temp.pbl" "" pbd // using this pbl as this pbl has application. Though there is no change in this libary. Do I need to add this libary?

build library "a.pbl" "" pbd

build library "b.pbl" "" pbd

build library "c.pbl" "" pbd

build executable "Trial.exe" // There will be other informations but I have skipped that for now in this example.





Please advice

  1. Helpful
  1. Vipin Dwivedi
  2. Sunday, 30 April 2023 01:46 AM UTC
Any advice is appreciated.
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Sunday, 28 August 2022 04:20 AM UTC
  2. PowerBuilder
  3. # 3

Hi, Vipin -

With an application that large/complex, I suggest you take a look at PowerGen, from E. Crane Computing, especially if PBAutoBuild.exe does not meet your expectations. It's been around for a long time and it supports all Appeon versions of PB. According to their web site, it supports incremental builds. They offer a 30-day free trial with full support during the trial period.

https://www.ecrane.com/powergen-overview/

 

Comment
  1. Vipin Dwivedi
  2. Sunday, 28 August 2022 07:45 AM UTC
When Appeon is putting lots of effort to new release , adding C# features and Cloud features then it should have in build capability. Why relies on third party tool for building exe. That sounds weird
  1. Helpful
  1. John Fauss
  2. Sunday, 28 August 2022 15:09 PM UTC
If you believe voicing your displeasure will accomplish more than seeking an alternative that might improve your situation, that is your prerogative. I and others offer suggestions you either may not be aware of or may not have considered. Good luck and best wishes!
  1. Helpful 2
  1. Armeen Mazda @Appeon
  2. Sunday, 28 August 2022 15:42 PM UTC
Adding to what John said, this is a technical Q&A. So it is a place to learn from others how to properly use product features and how other customers have solved technical problems similar to yours. If you are unhappy with the job Appeon is doing or you want to suggest feature enhancements, please email Appeon product management directly: product@appeon.com. I will say one thing, it is unreasonable to expect getting feature enhancements in 5 year old version. If you aren’t willing to upgrade to newer version no way you going to get a better PowerBuilder!
  1. Helpful 2
There are no comments made yet.
Armeen Mazda @Appeon Accepted Answer Pending Moderation
  1. Saturday, 27 August 2022 22:09 PM UTC
  2. PowerBuilder
  3. # 4

Try the PBAutoBuild.exe in PB 2022 see if it is faster.

Comment
  1. Vipin Dwivedi
  2. Sunday, 28 August 2022 07:41 AM UTC
We have no plan to upgrade to PB2022 currently. I am not sure about the future. Appeon should think about giving this option to older version at least from 2017 onwards. Please think about it.
  1. Helpful
  1. Chris Pollach @Appeon
  2. Sunday, 28 August 2022 13:14 PM UTC
Hi Vipin;

FYI: The PBAutoBuild compiler is also available in PB2021. Also note that the PBAutoBuild utility is the external compiler replacement for the old PBC compiler.

Regards ... Chris
  1. Helpful 1
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.