1. Arnaud Bailly
  2. PowerBuilder
  3. Monday, 29 June 2020 10:35 AM UTC

I am trying to streamline our build process and in particular preventing as much as possible full rebuilds. In our CI we use pbc190 compiler to compile from source code. What I observe is that even when I use the /i flag instead of /f, thus expecting an incremental rebuild, the compiler still regenerates all the PBLs which takes a lot of time (about 10 minutes). It seems the "incremental" part is only the pure compilation from PBLs to PBD which, indeed, is reasonably fast.

Is there a way to prevent the compiler from regenerating the PBLs on each invocation?

Roland Smith Accepted Answer Pending Moderation
  1. Monday, 29 June 2020 12:44 PM UTC
  2. PowerBuilder
  3. # 1

Incremental tells the compiler to only recompile objects that need to be recompiled, usually because another object that it references was changed after the object in question was last compiled. A full will recompile all objects.

Creating a PBD doesn't involve compiling, it just copies the executable code directly from the PBL file.

It appears that the compiling and generating PBD files are two separate steps. All PBD files get recreated, even if no objects in the PBL were recompiled.

 

Comment
  1. Roland Smith
  2. Monday, 29 June 2020 18:37 PM UTC
I don't know why the PBL shows as updated when an incremental is run.



PowerBuilder strings and code are UTF16LE which is a two byte format.
  1. Helpful
  1. John Fauss
  2. Monday, 29 June 2020 19:23 PM UTC
Arnaud: UTF-16 encoding is one of several implementations of Unicode. You may not consider it to be "real" Unicode (whatever that is), but UTF-16 is a valid, recognized Unicode implementation. From the FAQ Section titled "UTF-8, UTF-16, UTF-32 & BOM" at the Unicode Consortium's web site:

Q: Can Unicode text be represented in more than one way?

A: Yes, there are several possible representations of Unicode data, including UTF-8, UTF-16 and UTF-32.

  1. Helpful
  1. Arnaud Bailly
  2. Tuesday, 30 June 2020 12:21 PM UTC
Of course, it's a valid representation of Unicode, just saying it's NOT Unicode.
  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Monday, 29 June 2020 20:58 PM UTC
  2. PowerBuilder
  3. # 2

Hi Arnaud;

  The "incremental" build only works if the current PBL's and especially their corresponding PBD's are still located where the Target/Project expects them. If you have moved the PBD's from their "default" location, then the PB IDE and/or PBC external compiler will then automatically default back to a "full Build".

HTH

Regards ... Chris

Comment
  1. Arnaud Bailly
  2. Tuesday, 30 June 2020 12:20 PM UTC
I just tried right now, with all the PBLs and PBDs in the target folder, and pbc190 /i still goes on recreating them one by one.
  1. Helpful
  1. Arnaud Bailly
  2. Wednesday, 1 July 2020 05:35 AM UTC
Chris, do you have an explanation for this behviour? What am I doing wrong?
  1. Helpful
  1. Chris Pollach @Appeon
  2. Monday, 6 July 2020 18:14 PM UTC
Hi Arnaud ... That may occur if you have changed high level base ancestors that then force all their descendants to be recompiled though out most of your PBL's. If that is not that case, then it might be worth opening a Support Ticket for this issue.
  1. Helpful
There are no comments made yet.
Bjarne Anker Accepted Answer Pending Moderation
  1. Tuesday, 30 June 2020 07:33 AM UTC
  2. PowerBuilder
  3. # 3

Is this method "safe" to use now?

Back in the days (PB12.5) we used incremental with very varying success.

Sometime the exe-file just resulted in a Windows error, "Has encountered a problem..." and so on.

So we stopped using incremental.

But that was 6-7 years a go, and there would be reason to believe that things has gotten better now?

 

Codebase: PB2019R2, 150 PBL's, 900 MB of source.

PFC framework

 

Bjarne

Maritech - Norway

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Monday, 6 July 2020 18:43 PM UTC
  2. PowerBuilder
  3. # 4

Like others, Incremental was never very reliable and I only use it sporadically when I want to create a PBD for a single PBL (create runtime library). That's when incremental is used.

I don't know if it has improved, but with our applications, I'm getting the impression that a Full Build is as fast or faster than the incremental.

We don't use it, there's no gain in time.

my 2cts.

Comment
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.