Issue with localized compilers in RAD Studio and C++Builder 10.3.3
David Millington
25/2/2020
David Millington
25/2/2020
[SHOWTOGROUPS=4,19,20]
The localized versions of the C++Builder 10.3.3 C++ compilers are not up to date.
We've identified an issue in RAD Studio and C++Builder 10.3.3 regarding the localized versions of the C++ compilers.
Background
In the past, we translated the compiler error messages, aiming to assist developers in non-English countries to understand compiler hints, warnings and errors. To do this, we shipped multiple copies of each compiler, one for each language.
As of 10.3, we are no longer translating compiler error and warning messages because it caused a number of issues, not least of which is that it made it hard for developers to search using the message text to find information from other developers who'd encountered it online. We appreciate presenting as much UI and text in a developer's local language as possible, but we do want to help our customers find information, and in the past we were the only compiler vendor who translated warnings and errors. Any Clang error message is always English for every other vendor, for example.
Currently, however, we still ship compiler binaries in the localization folders, except the compilers are the same as the English version, and are not translated. That is, the binaries for the French, German and Japanese compilers should be identical to the English binaries.
Issue
Unfortunately, in 10.3.3, the Clang compiler binaries for French, German and Japanese do not match the English binaries. Specifically, they are the 10.3.2 binaries, not 10.3.3. This means that if you're using the French, German or Japanese version of RAD Studio, and you compile a C++ project, you'll be using an out of date compiler -- missing out on a large number of quality improvements we made in 10.3.3.
If you have localized your installation of RAD Studio 10.3.3, you will have the wrong Clang compiler. You do not need to verify, and can skip to the ‘Solution’ section to apply the fix.
However, if you are unsure or want to manually verify, including after resolving the issue (see below), use the following steps.
Checking if you are affected by this issue
You can verify if you have the right files installed by checking the file sizes of the files in your RAD Studio installation's \bin folder, usually c:\Program Files (x86)\Embarcadero\Studio\20.0\bin. Open a command prompt in your \bin folder, and run the following command (if you copy the command, right-click into the command prompt window to paste it):
dir /ON bcc32c.exe bcc32x.exe cpp32c.exe bcc64.exe cpp64.exe bccaarm.exe cppaarm.exe bcciosarm.exe cppiosarm.exe bcciosarm64.exe cppiosarm64.exe ideclang.dll compclang33.dll
Compare the output file sizes to the following; any file size difference indicates the issue. The compilers available will depend on which platforms you have installed.
Directory of C:\Program Files (x86)\Embarcadero\Studio\20.0\bin
14/11/2019 01:55 36,325,752 bcc32c.exe
14/11/2019 01:55 36,127,744 bcc32x.exe
14/11/2019 01:55 36,134,776 bcc64.exe
14/11/2019 01:55 17,665,912 bccaarm.exe
14/11/2019 01:55 17,665,912 bcciosarm.exe
14/11/2019 01:55 17,665,912 bcciosarm64.exe
14/11/2019 01:55 18,435,960 compclang33.dll
14/11/2019 01:55 36,307,832 cpp32c.exe
14/11/2019 01:55 17,640,824 cpp64.exe
14/11/2019 01:55 17,641,848 cppaarm.exe
14/11/2019 01:55 17,641,848 cppiosarm.exe
14/11/2019 01:55 17,641,848 cppiosarm64.exe
14/11/2019 01:55 12,623,736 ideclang.dll
13 File(s) 299,519,904 bytes
0 Dir(s) 10,593,681,408 bytes free
Solution
We considered a patch for this issue, but the workaround is very simple, possibly simpler than downloading and applying a patch. Since the compiler files should be identical to the English version, the fix is simply to copy the files from the \bin\en folder to \bin.
The available compilers (bcc*.exe) and preprocessors (cpp*.exe) depend on which platforms you have installed.
Windows 32-bit
[/SHOWTOGROUPS]
The localized versions of the C++Builder 10.3.3 C++ compilers are not up to date.
We've identified an issue in RAD Studio and C++Builder 10.3.3 regarding the localized versions of the C++ compilers.
Background
In the past, we translated the compiler error messages, aiming to assist developers in non-English countries to understand compiler hints, warnings and errors. To do this, we shipped multiple copies of each compiler, one for each language.
As of 10.3, we are no longer translating compiler error and warning messages because it caused a number of issues, not least of which is that it made it hard for developers to search using the message text to find information from other developers who'd encountered it online. We appreciate presenting as much UI and text in a developer's local language as possible, but we do want to help our customers find information, and in the past we were the only compiler vendor who translated warnings and errors. Any Clang error message is always English for every other vendor, for example.
Currently, however, we still ship compiler binaries in the localization folders, except the compilers are the same as the English version, and are not translated. That is, the binaries for the French, German and Japanese compilers should be identical to the English binaries.
Issue
Unfortunately, in 10.3.3, the Clang compiler binaries for French, German and Japanese do not match the English binaries. Specifically, they are the 10.3.2 binaries, not 10.3.3. This means that if you're using the French, German or Japanese version of RAD Studio, and you compile a C++ project, you'll be using an out of date compiler -- missing out on a large number of quality improvements we made in 10.3.3.
If you have localized your installation of RAD Studio 10.3.3, you will have the wrong Clang compiler. You do not need to verify, and can skip to the ‘Solution’ section to apply the fix.
However, if you are unsure or want to manually verify, including after resolving the issue (see below), use the following steps.
Checking if you are affected by this issue
You can verify if you have the right files installed by checking the file sizes of the files in your RAD Studio installation's \bin folder, usually c:\Program Files (x86)\Embarcadero\Studio\20.0\bin. Open a command prompt in your \bin folder, and run the following command (if you copy the command, right-click into the command prompt window to paste it):
dir /ON bcc32c.exe bcc32x.exe cpp32c.exe bcc64.exe cpp64.exe bccaarm.exe cppaarm.exe bcciosarm.exe cppiosarm.exe bcciosarm64.exe cppiosarm64.exe ideclang.dll compclang33.dll
Compare the output file sizes to the following; any file size difference indicates the issue. The compilers available will depend on which platforms you have installed.
Directory of C:\Program Files (x86)\Embarcadero\Studio\20.0\bin
14/11/2019 01:55 36,325,752 bcc32c.exe
14/11/2019 01:55 36,127,744 bcc32x.exe
14/11/2019 01:55 36,134,776 bcc64.exe
14/11/2019 01:55 17,665,912 bccaarm.exe
14/11/2019 01:55 17,665,912 bcciosarm.exe
14/11/2019 01:55 17,665,912 bcciosarm64.exe
14/11/2019 01:55 18,435,960 compclang33.dll
14/11/2019 01:55 36,307,832 cpp32c.exe
14/11/2019 01:55 17,640,824 cpp64.exe
14/11/2019 01:55 17,641,848 cppaarm.exe
14/11/2019 01:55 17,641,848 cppiosarm.exe
14/11/2019 01:55 17,641,848 cppiosarm64.exe
14/11/2019 01:55 12,623,736 ideclang.dll
13 File(s) 299,519,904 bytes
0 Dir(s) 10,593,681,408 bytes free
Solution
We considered a patch for this issue, but the workaround is very simple, possibly simpler than downloading and applying a patch. Since the compiler files should be identical to the English version, the fix is simply to copy the files from the \bin\en folder to \bin.
- Close RAD Studio
- Make a backup of the files in your installation’s bin folder, usually c:\Program Files (x86)\Embarcadero\Studio\20.0\bin, following the file list below
- Copy the files in the file list before from bin\en to bin, replacing the files you backed up.
- Verify you have the correct version following the steps above
- Reopen RAD Studio.
The available compilers (bcc*.exe) and preprocessors (cpp*.exe) depend on which platforms you have installed.
Windows 32-bit
- bcc32c.exe
- bcc32x.exe
- cpp32c.exe
- bcc64.exe
- cpp64.exe
- bccaarm.exe
- cppaarm.exe
- bcciosarm.exe
- cppiosarm.exe
- bcciosarm64.exe
- cppiosarm64.exe
- ideclang.dll
- compclang33.dll
[/SHOWTOGROUPS]