The installer ( avoid installing on top of an older version ) :
http://www.smorgasbordet.com/pellesc/500/setup.exe
Major changes between 4.50.0 and 5.00.0 :
http://www.smorgasbordet.com/pellesc/changes_450_500.htm
My opinion : excellent compiler :(, but exists some remarks :
a) not well counting of prototypes in headers :
Memory.c(47): warning #2027: Missing prototype for 'memavail'.
Memory.c(64): warning #2027: Missing prototype for 'maxavail'.
b) and not well const qualifier, mean outside call could be and ordinary variable :
char ducmp(const grant* number1,const grant* number2)
...
grant mirror, num;
while(gucmp(&mirror,&num) > 0)
Index.c(224): error #2140: Type error in argument 1 to 'ducmp'; found 'grant (*)', expected 'const unsigned long int (*)[2]'.
c) not vell pointer types compare :
char* stristalk(const char* string,const char sim) {
unsigned char *substr = addptr(string,strlen(string));
while (substr != string)
Strings.c(183): error #2168: Operands of != have incompatible types 'unsigned char *' and 'const char *'.
Be sure to report it to Pelle in his forum http://forum.pellesc.de/index.php?topic=2369.0
That's what betas are for :wink
Version 5.00 Beta 2 available :
http://www.smorgasbordet.com/pellesc/500/setup.exe
(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)
http://www.smorgasbordet.com/pellesc/download.htm
Quote
* Added relocation section to resource-only DLLs in the Bin\Intl subdirectory (apparently needed on some computers).
* Added some missing (GUID) libraries to the 64-bit Setup.
* Fixed a typedef problem in addin.h for ANSI mode (UNICODE/_UNICODE not defined).
* Added 'CALLBACK' to list of special Windows symbols in pobr(64).dll - will help with some 'type (CALLBACK *pfnMember)(...)' declarations.
* Fixed problem with symbol annotations in debugger and PODUMP disassembler.
* Added check for sysdefs.tag file in POIDE folder (if moved there manually).
* Fixed some problems with INVOKE and stack parameters in POASM (AMD64 mode, parameter 5+).
* Fixed sort-by-address problem in POVIEWP64.
* Fixed a compiler problem with <floating-point-expression>*I in AMD64 backend.
Version 5.00 Beta 3 available :
http://www.smorgasbordet.com/pellesc/download.htm
(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)
Quote
* Added missing calling convention to some prototypes in winbase.h and winnt.h.
* Fixed CreateDesktop() versioning, and added CreateDesktopEx() prototype in winuser.h.
* Fixed some target size problems in inttypes.h and stdint.h.
* IDE: fixed missing code signing tab, in project options, for a new (not upgraded) project.
* IDE: fixed problem with console executable being locked after a debugging session (Windows Vista).
* IDE: fixed linker option /largeaddressaware on linker tab, in project options.
* IDE: when jumping to a source line from the Project or Output tab, the entire line will now be selected.
* POMAKE: will now also define command line macros before processing make files (for preprocessing conditions to work).
* POCC: fixed argument handling when expanding inline functions (including better handling of some side effects).
* POCC: fixed a problem where a fastcall argument wasn't always spilled when it's address was taken (X86).
* POCC: fixed a problem with address calculations for LDR/STR instructions (ARM).
* POCC: added _PreLoad() intrinsic (ARM).
* POCC: fixed problem with wide string literals in _Pragma operator.
* POCC: added a few more cases for warning #2215 (narrowing conversion).
Version 5.00 Beta 4 available :
http://www.smorgasbordet.com/pellesc/500/setup.exe
(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)
Quote* IDE: fixed buffer size error for MENUBAR resource (Windows CE), possibly causing a corrupt string table (buffer size was in chars, but must be wide chars for v5.0).
* POCC: Fixed (rare) case when strlen, wcslen, strnlen_s, wcsnlen_s intrinsic wasn't inlined.
* POCC: Fixed problem when a call to a void function ended a __try block in a __try - __except statement (X64).
* POCC: Fixed off-by-one buffer refill problem for line splicing (bug introduced june 2000, obviously uncommon).
* POCC: Fixed a problem where a volatile reference could be optimized away.
* POCC: Fixed problem with not being able to turn off memcpy intrinsic using #pragma function (ARM).
* POCC: Fixed a problem with struct copy, and intrinsic memcpy, copying unaligned words (ARM).
* POCC: fixed yet another problem with address calculations (ARM).
* POCC: Added a few more expression simplification cases.
* POCC: Removed some superfluous byte and word specifiers from the assembly output (harmless, but silly looking).
Pelle
Version 5.00 released :
http://www.smorgasbordet.com/pellesc/500/setup.exe
(for 32-bit Windows 2K/XP/Vista; avoid installing on top of an older version)
Major changes between 4.50.0 and 5.00.0 :
http://www.smorgasbordet.com/pellesc/changes_450_500.htm
Version 5.00.1 uploaded :
http://www.smorgasbordet.com/pellesc/500/setup.exe
Quote# Bugfix [5.00.1]: a return statement, using the conditional operator (?:), containing a fetch with postfix increment (*p++), usually turned the postfix increment into a prefix increment (X86, X64).
# Bugfix [5.00.1]: a float-to-integer conversion, in standard C mode, without optimizations, produced the wrong code sequence (X86).