Jump to content
Gord P

What is the likelihood that the new Clang tool chain will be accessible for 32 bit projects?

Recommended Posts

I would like to move away from the Classic compiler to the Clang compiler.  My project that I would like to do that with is large enough than when I looked at making the move a while ago there appeared to be a lot that I was going to have to change so I continued on the Classic compiler.  With the new Clang based c++ tool chain, making the move is more enticing.  However, to use the new tool chain there are two transitions at the same time I have to make.  One is to Clang and the other is 64 bits.  Since 64 bits isn’t crucial for the program, I would like make the transition to the new Clang toolchain in 32 bits.  Once the bugs have been worked out.  Then migrate it over to 64 bits.

 

Anyone hear anything on how likely that is?

 

I put in a feature request for it. RSS-2237

Share this post


Link to post
14 hours ago, Gord P said:

Anyone hear anything on how likely that is?

Umm, are you not aware that there is already a 32bit Clang compiler? (two, actually). You can switch to it by turning off the "Use 'classic' Borland compiler" option in the project settings.

 

https://docwiki.embarcadero.com/RADStudio/en/Win32_Clang-enhanced_Compilers

 

The difference between the 32bit Clang compiler and the newly released 64bit Clang compiler (besides bit-size, obviously) is that the 64bit compiler uses a newer version of clang. But, after it has matured a little bit, I'm sure they will update the 32bit compiler too, as 32bit development is still popular. But, at least you can get started using clang today. 

Edited by Remy Lebeau

Share this post


Link to post

Yes I am aware.  But when I looked at switching over to Clang from the Classic compiler it appeared that there would be a lot of changes to my code that I would have to make so I put if off.  You are right in that I could start the transition now with the old Clang but I am guessing (perhaps incorrectly) that there will be issues switching from the old Clang tool chain to the new one.  So I would rather just go to the new one and skip all that.  Plus for some reason, Code Completion doesn't work for me when using the old Clang compiler (11.3).  

 

On 10/29/2024 at 11:53 PM, Remy Lebeau said:

But, after it has matured a little bit, I'm sure they will update the 32bit compiler too, as 32bit development is still popular.

That's what I am hoping for.  But it would be nice to hear it from Embarcadero.  I wish they would go back to giving road maps - even with all the disclaimers. At least you get a bit of an idea of what they are thinking. 

 

Thanks for your thoughts. 

Edited by Gord P

Share this post


Link to post
5 hours ago, Gord P said:

You are right in that I could start the transition now with the old Clang but I am guessing (perhaps incorrectly) that there will be issues switching from the old Clang tool chain to the new one.

I don't see why. It's still clang, just a newer version with a higher language compliance.

5 hours ago, Gord P said:

So I would rather just go to the new one and skip all that.

At this time, the newer clang compiler is available only for 64bit.

Share this post


Link to post

I've brought a few "Classic" 32 bit VCL apps over to "Clang32". Most of the issues are related to poor code by me (often code that I wrote 30 years ago and would definitely not write now!). So in this sense whilst it is an inconvenience it is actually a good thing - it is making the code base more reliable and more maintainable. Of course I don't know what your apps do and what 3rd party components they use so the same experience may or may not apply in your case.

Equally I have one set of code that is still a significant source of income for me that is based on "Classic" (again 32bit VCL). With this one I am just starting to look at changing over straight to a 64bit app using the "modern" clang64 tool set.

I think I am saying (!!) that you just need to give it a go and see how you get on. You'll know within a day or two whether it's a mamouth task or a relatively straightforward one.

Share this post


Link to post
19 hours ago, Remy Lebeau said:

I don't see why. It's still clang, just a newer version with a higher language compliance.

I don't have any basis for my pessimism other than my experience with these kinds of things.

 

12 hours ago, Roger Cigol said:

I've brought a few "Classic" 32 bit VCL apps over to "Clang32". Most of the issues are related to poor code by me

Oh I definitely expect that to be the case for me.

 

  • Like 1

Share this post


Link to post

 

11 hours ago, Gord P said:

Oh I definitely expect that to be the case for me

It's a definite personal strength to be aware of one's own weaknesses...

Share this post


Link to post

One major drawback is the bad debugger of the 32-bit Clang tool chain. Expect missing variables (you can not even see the values in the watch list) and even wrong variable values, especially when using the same variable name within a function but in different scopes, like

for ( int i = 0; i < 10; ++i )
{
...
}

for ( int i = 1; i < 7; ++i )
{
...
}

 

Share this post


Link to post
12 hours ago, hansw said:

One major drawback is the bad debugger of the 32-bit Clang tool chain. Expect missing variables ...

Good to know.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×