Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread question about circular references ("uses"), ewb v2 vs. ewb v3
Mon, May 25 2020 5:42 PMPermanent Link

Bruno Larochelle

Playing around with a few things as we are trying to convert larger projects from v2 to v3, we have noticed something that I consider strange.

In EWB v2 (and in Pascal, Delphi), you can not have circular references in the 'uses' clauses. We of course use ways to avoid that, typically putting the second reference in the implementation section, or vice versa.

In EWB v3b13.. I am able to compile (and run) a simple program where the units in the interface section are circular:

Snippet below, shows unit 1 referring to unit 2, and unit 2 referring to unit 1.

unit Unit1;

interface

uses WebCore, WebUI, WebForms, WebCtrls, WebBtns, WebLabels, unit2;

/////////

unit Unit2;

interface

uses WebCore, WebUI, WebForms, WebCtrls, WebLabels, WebBtns, unit1;


//

The reason we ran into this is because we have noticed a couple instances where the compiler (EWB v3b13) is not recognizing some referenced objects/variables that it should. We are still trying to isolate this in a simple reproducible example. Not even sure that the trouble we are perceiving is related to what may be an issue of circular referencing (above), but I thought that it might be.

//

Or I am just missing something! It has happened before Smile
Fri, May 29 2020 11:18 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Bruno,

<< In EWB v3b13.. I am able to compile (and run) a simple program where the units in the interface section are circular: >>

I'll check this out.  There's a circular reference check in the compiler, but it may not be working correctly with the new architecture.

<< The reason we ran into this is because we have noticed a couple instances where the compiler (EWB v3b13) is not recognizing some referenced objects/variables that it should. We are still trying to isolate this in a simple reproducible example. Not even sure that the trouble we are perceiving is related to what may be an issue of circular referencing (above), but I thought that it might be. >>

This is most likely the issue with the JS emitting as it relates to referenced declarations, which is fixed in the (coming out today) build 14.  This issue was just a case of the compiler not re-checking references after certain compilation actions took place, resulting in JS being emitted with references to declarations that weren't included in the emitted JS.

Tim Young
Elevate Software
www.elevatesoft.com
Fri, May 29 2020 11:29 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Bruno,

Yep, this was a case where an additional compiler state was added, but the circular unit reference checking wasn't updated to check for the additional compiler state.  This is now fixed for build 14.

Tim Young
Elevate Software
www.elevatesoft.com
Fri, May 29 2020 11:31 AMPermanent Link

R&D team @ Environment Canada

Thank you Tim!

Tim Young [Elevate Software] wrote:

Bruno,

Yep, this was a case where an additional compiler state was added, but the circular unit reference checking wasn't updated to check for the additional compiler state.  This is now fixed for build 14.

Tim Young
Elevate Software
www.elevatesoft.com
Fri, May 29 2020 11:33 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Bruno,

<< Thank you Tim! >>

You're welcome, but I forgot to thank you for the report, so thank you, also ! Smile

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Jun 1 2020 4:09 PMPermanent Link

Douglas Lyman

I've also got circular reference errors popping up in build 14.
Fri, Jun 5 2020 10:15 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Doug,

<< I've also got circular reference errors popping up in build 14. >>

These should be valid - Bruno's report was that he wasn't seeing such errors when he *should* have been.

Are you saying that you're seeing circular reference errors when you shouldn't see them ?

Thanks,

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Jun 5 2020 11:58 AMPermanent Link

Douglas Lyman

Yes,
Fri, Jun 5 2020 1:06 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Doug,

Please send me an example of what you're seeing via email (or you can post it here).

Thanks,

Tim Young
Elevate Software
www.elevatesoft.com
Image