VS2015 + Elements 9.3 install alongside Water + Elements 10?

I use vs2015 with Elements 9.3.103.2211 for production work, but want to move to current tools. Can I install the latest Water with 10.0.0.2331 without impacting my current vs2015 installation? I’d like to do some side by side testing before removing the old environment.

I’m currently only using the Oxygene language.

Hrmm that’s a bit tricky as they use the same registry info and gac entries. Your best option would be a virtual machine of sorts for this.

Richard,

what are you reasons form wanting to stick to 9.3 if I may ask? That’s a really old version and we really recommend staying up to date with the latest, if possible.

Really just risk reduction during the switch over. I tried to move to v10 earlier, but encountered the issues with no preparser (IFDEF stuff) and didn’t have time to deal with it. Unfortunately, the breaking syntax changes means that moving back to v9.3 if needed due to encountering some unexpected regression will require removing the code changes needed for v10…

I should have specified that I plan to use defined() to resolve the IFDEF issues, thus my new code will be dependent upon an Elements v10 unique feature…

1 Like

Hi Richard,
I’m also still in Elements 9, because of {$if} and other issues.
But, I still have the source code (Oxygene) that is compatible between Elements 9 and 10, so I don’t have to edit when I change Elements version.

Can you tell me what other types of issues are keeping you on v9?

Some code that is generated differently in Elements 10 (should be corrected in a future version).
Some source code files that makes VS2017 very slow (should be corrected in next version).
Custom templates not visible in VS2017.
Can not publish web service (https://talk.remobjects.com/t/intermitent-error-compiling/14532)

Each time a new version of Elements 10 is out, I try it… until I found something that prevents me to continue.
As a safety measure, I currently compile with Elements 9 before posting a new version.

keep in mind that its entirely possible to keep Elements 10 code backwards compatible, and vice versa. the {$IF logic in v10 is a bit stricter, and doesn’t allow some lax use of ifdefs around partial code constructs that v9 did allow. But once code is adjusted to that, those changes remain compatible with v9.

Using defined() of course requires v10, yes.

Understood, thanks. “lax use of ifdefs” really means using the fact that it was a preprocessor. I’ve been using such preprocessing to handle multi-target code for 40 years…of course we had to write our own preprocessor back then…

Yes. in v9 and earlier, {$IF was purely text based pre-processing. in v10, {$IF is part of the code structure.

Understood. I read that one of the motivations was speed. I just rebuilt a project using Elements v10 in VS2015 and then Water. Both times I cleaned it first. VS took about 3 seconds while Water took about 5 seconds. Does this make sense?

Build speed should be the same in both, as both use the same compiler and build engine. It’s the IDE itself that makes the difference. the 3 vs 5 seconds, how did you measure those — is that the build time reported in the build log? If so, different states of the cache from previous builds could affect that, as could the logging level.

“Expression will always evalute to “True”” is a warning in VS and a hint in Water…similarly for a local variable that is assigned but not read.

Hmm, can I see a project that shows this? VS and Water use the exact same compiler; the only thing I could imagine is that VS somehow shows Hints in the wrong color? Can I see a screenshot?

from Water:

from VS:

Upon close look I see “warning H11” which may imply it’s really just a hint…

Also from Water:
image

Note: no mention of any warnings…

To a management type ‘warnings’ are scarier than ‘hints’ :slight_smile:

Yeah, I believe MSBuild just doesn’t know about “Hints”, so on that level they all come thru as warnings.