Version 6.0, Release Candidate #1 available

Started by Pelle, May 02, 2009, 12:12:08 PM

Previous topic - Next topic

AlexN

Quote from: Pelle on May 02, 2009, 12:12:08 PM
Pelles C version 6.0, Release Candidate #1, is now available for download:

Many thanks, it is again a great piece of software.

I have some comments to it:

1.) The code of the new compiler seems to be faster.

2.) If the format of the project file is changed in a way, that the previos version of poide is not able to load it, it would fine when a backup of the project file would be made. (OK, it is possible to change the line "POC_PROJECT_VERSION = 6.00#" to "POC_PROJECT_VERSION = 5.00#" to load it again, but a backup would be fine)

3.) I have a program where i get the message that ___ftoll is not a member of pocrt.dll, when i compile with the Runtime library option "Multithreaded (DLL)". All other options work there. I looked at pocrt.dll at the old and new version. The version number is the same but the newer it is little bit larger and at the exports there is a difference at some labels (like __ftoll).
best regards
Alex ;)

Romashka

#31
Quote from: Pelle on May 02, 2009, 08:11:26 PM
Quote from: Romashka on May 02, 2009, 07:52:36 PM
Yes, 32bit x86. Console app (win32 apps have same issue).
Hmm... I created a new console project, pasted the code (just in case), and also the compiler and linker options ("Macros" tab). When I build the project, it works fine here.

I've tried on a different PC - created a helloworld program using the console app wizard, the only modified setting was 'Runtime library - Multithreaded (DLL)' - and got the same error.
Both PCs have Windows XP SP3 Russian installed, programs were compiled using 6.00 32-bit.


EDIT: here's the text in Debug tab (the application was compiled without any debug info though):
Process C5C started
Thread F9C started
Loading untitled at 00400000
Loading ntdll.dll at 7C900000
Loading C:\WINDOWS\system32\kernel32.dll at 7C800000
Loading C:\Program Files\PellesC\Bin\pocrt.dll at 77000000
Exception: C0000139
Thread C4 started
Thread C4 ended with C000013A
Thread F9C ended with 0
Process C5C ended with C000013A
Done

Pelle

Quote from: AlexN on May 06, 2009, 09:45:26 AM
Many thanks, it is again a great piece of software.
Thanks.

Quote from: AlexN on May 06, 2009, 09:45:26 AM
1.) The code of the new compiler seems to be faster.
The new register allocator and optimizer should do some good - for programs compiled with the new compiler, and for the compiler itself (since it's compiled with the new compiler). The whole "middle-end" of the compiler is rewritten, using new alogorithms (it does more than before, but possibly faster).

Quote from: AlexN on May 06, 2009, 09:45:26 AM
2.) If the format of the project file is changed in a way, that the previos version of poide is not able to load it, it would fine when a backup of the project file would be made. (OK, it is possible to change the line "POC_PROJECT_VERSION = 6.00#" to "POC_PROJECT_VERSION = 5.00#" to load it again, but a backup would be fine)
The only time I can see this being minimally useful is during the test period for a new release. I'm pretty sure I don't want my disk filled with backup copies of project files, generally speaking. This would mean making backups only for release candidates, which doesn't sound right to me...

Quote from: AlexN on May 06, 2009, 09:45:26 AM
3.) I have a program where i get the message that ___ftoll is not a member of pocrt.dll, when i compile with the Runtime library option "Multithreaded (DLL)". All other options work there. I looked at pocrt.dll at the old and new version. The version number is the same but the newer it is little bit larger and at the exports there is a difference at some labels (like __ftoll).
The version number 5.0 for pocrt.dll and pocrt64.dll is wrong, it should be 6.0. This is a bug.
The decoration for exported symbols has changed a bit, to try and match Microsoft better. Because of this you can get linking errors if not all modules are recompiled.
If you get runtime errors, it sounds like the wrong version of pocrt.dll is being picked up somehow.
What happens if you load pocrt.dll into the IDE, change the version resource to 6.0, and save it? I guess "FILEVERSION", and maybe "PRODUCTVERSION", should be the important ones.
/Pelle

Romashka

#33
Quote from: Pelle on May 06, 2009, 05:15:50 PMThe version number 5.0 for pocrt.dll and pocrt64.dll is wrong, it should be 6.0. This is a bug.
Aha, this may explain my bug too.
A fresh install of 32-bit Pelles C 6.00 RC1 (on a system where it wasn't ever installed, so no old version could exist) has pocrt.dll with file version 5.00.3 while other DLLs like pobr.dll and porc.dll have 6.00.0.
So it looks that RC1 is incorrectly packaged.
The reason you could not reproduce my bug on your system is that you obviously have pocrt.dll v6.00.0 on your system.

Robert

Quote from: Romashka on May 07, 2009, 09:33:24 AM
Quote from: Pelle on May 06, 2009, 05:15:50 PMThe version number 5.0 for pocrt.dll and pocrt64.dll is wrong, it should be 6.0. This is a bug.
Aha, this may explain my bug too.
A fresh install of 32-bit Pelles C 6.00 RC1 (on a system where it wasn't ever installed, so no old version could exist) has pocrt.dll with file version 5.00.3 while other DLLs like pobr.dll and porc.dll have 6.00.0.
So it looks that RC1 is incorrectly packaged.
The reason you could not reproduce my bug on your system is that you obviously have pocrt.dll v6.00.0 on your system.

Pelle's C Version 6.0 RC1 64-bit
pocrt64.dll file version is 5.03.0, product version 5.00 according to the Properties Details.

Robert Wishlaw

AlexN

Quote from: Pelle on May 06, 2009, 05:15:50 PM

Quote from: AlexN on May 06, 2009, 09:45:26 AM
2.) If the format of the project file is changed in a way, that the previos version of poide is not able to load it, it would fine when a backup of the project file would be made. (OK, it is possible to change the line "POC_PROJECT_VERSION = 6.00#" to "POC_PROJECT_VERSION = 5.00#" to load it again, but a backup would be fine)
The only time I can see this being minimally useful is during the test period for a new release. I'm pretty sure I don't want my disk filled with backup copies of project files, generally speaking. This would mean making backups only for release candidates, which doesn't sound right to me...
I think it is only necessary pre-release versions. Perhaps you create for this a link for the new version with the parameters /n and /xml so that you don't overwrite the options from a stable version with the parameters for a pre-release version.

Quote from: Pelle on May 06, 2009, 05:15:50 PM
Quote from: AlexN on May 06, 2009, 09:45:26 AM
3.) I have a program where i get the message that ___ftoll is not a member of pocrt.dll, when i compile with the Runtime library option "Multithreaded (DLL)". All other options work there. I looked at pocrt.dll at the old and new version. The version number is the same but the newer it is little bit larger and at the exports there is a difference at some labels (like __ftoll).
The version number 5.0 for pocrt.dll and pocrt64.dll is wrong, it should be 6.0. This is a bug.
The decoration for exported symbols has changed a bit, to try and match Microsoft better. Because of this you can get linking errors if not all modules are recompiled.
If you get runtime errors, it sounds like the wrong version of pocrt.dll is being picked up somehow.
What happens if you load pocrt.dll into the IDE, change the version resource to 6.0, and save it? I guess "FILEVERSION", and maybe "PRODUCTVERSION", should be the important ones.

To change the version number of the file pocrt.dll has no effect. When I start the program from the IDE I can see that the correct DLL is loaded. I think that I have this problem with all GUI-programs and the Runtime library option "Multithreaded (DLL)".
best regards
Alex ;)

Pelle

I modified the module-definition file for pocrt.dll to match the new export handling, and the exported symbols now look like version 5.0; the version was bumped to 6.0 - this will be in RC2.
/Pelle

virtualcoder128

I want to thank to pelle for this wonderful tool saved my life/work(Im tired of VS)  ;D And congratz for this release and I will try my best to help support Pelles C, It is Awesome.

DaLiV

V6
width,height measured in "dialog units", can that be switched to pixels (or in configuration set measure of 1 dialog unit to pixel) ?

Pelle

Quote from: DaLiV on May 13, 2009, 01:51:16 PM
width,height measured in "dialog units", can that be switched to pixels (or in configuration set measure of 1 dialog unit to pixel) ?
No, since pixels would be pretty useless...
/Pelle

JohnF

Pelle, in your changes file you say that the source code is included for resizable dialogs.

"Added static library, including source code, for basic handling of resizable dialogs."

Where is the source code?

John

Pelle

Quote from: JohnF on May 16, 2009, 11:20:43 AM
Pelle, in your changes file you say that the source code is included for resizable dialogs.

"Added static library, including source code, for basic handling of resizable dialogs."

Where is the source code?
The source code is installed in the default project folder, under the name Resizer - "<Windows-documents>\Pelles C Projects\Resizer". The actual name for <Windows-documents> depends on the Windows version.
/Pelle

JohnF

#42
It's not anywhere on my hard drive. I don't have a folded called 'Windows-documents'.

EDIT: I've found

"My Documents\Pelles C Projects\"

But no Resizer.

John

Stefan Pendl

Quote from: JohnF on May 16, 2009, 03:41:08 PM
I don't have a folded called 'Windows-documents'.
Check My Documents, I think this is what Pelle is referring to.
---
Stefan

Proud member of the UltraDefrag Development Team

Pelle

Yes - it's "Dokument" on my Swedish Vista version (physical folder "C:\Users\Pelle\Documents"), but I guess "My documents" is what you are looking for...
/Pelle