Masm32 SDK description, downloads and other helpful links

Main Menu

Pelles C version 8.00 RC1

Started by Vortex, April 07, 2014, 03:57:57 AM

Previous topic - Next topic


Hi Erol,

Quote from: Vortex on April 07, 2014, 03:57:57 AM

wow, a lot of changes between version 7 and 8. Thank you for forwarding the news.  :t

You have to know the facts before you can distort them.


Pelles C version 8.00 Release Candidate 2 :

Pelle's announcement :

QuoteMajor changes (from version 7.00):

RC2 changes:

    Fixed problem in cnd_signal() runtime function where the number of signals to issue could be too high.
    Fixed buffer overrun problem in debugger decoder for wide string literals ("\u0000" is longer than "\x00" - duh!)
    Fixed crash in C compiler tail-call detection code for unoptimized code (shouldn't even be called for unoptimized code).
    Fixed problem with OpenMP min and max reduction where initialization values was reversed (same problem in the help file too).
    Modified the code to refresh the caret when changing font size (using the mouse wheel, or other means). The old code apparently tried to solve some problem it no longer solves. Bleh.
    Added null-pointer check to debugger, in a place where it looks nearly impossible for the pointer to be either null or bogus - but at least one person manged to crash here anyway.
    Added attempt at handling some unknown functions with ESP frame during debugger stack walking on X86. (Unknown in the sense of not having associated debug/fpo information.)
    Fixed resource version text for 64-bit SQLite DLL.
    Changed spelling of name in ws2_32.lib from _WSAFDIsSet to __WSAFDIsSet.
    Added macros to io.h for MS compatibility: _filelengthi64(h), _lseeki64(h,o,m), _telli64(h) (the easy ones, some harder cases will have to wait).
    Updated output in Events Add-In sample.


Pelles C version 8.00 Release Candidate 3

Pelle's announcement, RC3 changes:

    Fixed problem with __crt_abort() not being exported from C runtime DLL's.
    Fixed missing functions in OpenMP stub libraries.
    Fixed crash when using OpenMP runtime schedule.
    Fixed problem in IDE with erasing in MDI Tab Control using Windows classic theme.
    Fixed problem in compiler with reference-counting of elements in "tiny" struct optimizer pass.
    Fixed problem in compiler with equated labels in tail-recursion optimization pass.
    Fixed problem in compiler with const-qualified predetermined data-sharing symbols in OpenMP.
    Fixed problem in IDE with add-in menu commands for the debugger.
    Added support in IDE for add-in menu commands for Differences and File->New.
    Added status message to IDE when building browse information for functions (so people with a huge source file to have something to look at)
    Replaced backtracking updates with cached data, in the Browse information manager, for ~4% speed improvement (which is better than 0%, I guess).
    Changed () to (void) in callback for OpenGL gluQuadricCallback(), gluTessCallback(), gluNurbsCallback().
    The compiler will now only display calling convention for a function type in Microsoft mode.


Release candidate 4 announced by Pelle :

QuoteRC4 changes:

    Upgraded to SQLite
    Revised the Browse Information builder to expand some macros, and evaluate some preprocessor expressions, for slightly better information.
    Added attempt to show hidden console window before waiting for keypress in idespawn.exe.
    Added compiler support, in Microsoft mode only, for zero-sized array in union, and incomplete type in sizeof. Also, all '__w64' keywords are simply ignored.
    Added status bar text of fully qualified filename for projects on the start page (if same project name in multiple locations, f.e.).
    Removed linker attempt to convert Microsoft undocumented 'v4' CodeView information.
    Removed possibility to use a break statement in the body of an OpenMP loop (not valid).
    Added resource compiler option /M to display MAKE dependencies.
    Fixed dialog editor crash when changing font to a longer name than previously used.
    Fixed debugger problem with dangling binary search tree pointers (only happened when CodeView information was poor, and the debugger tried COFF information instead).
    Fixed compiler problem with dead store elimination before a function with an optimized-away return value.
    Fixed compiler problem with incomplete check of the shape of a (nested) conditional operator tree, when optimizing, and the condition involved a non-register type (like a floating-point value on X86).
    Fixed compiler problem with too aggressive demotion of multiplication in a condition.
    Fixed compiler problem with register allocation for an atomic assignment involving [un]signed long long (X86).
    Fixed compiler code generation problem with multiple post-increments of the same pointer in a condition (X86, X64).
    Fixed atomic_load() and atomic_load_explicit() as per C11 Defect Report #459 (still open, by adding const seems like a good thing).
    Fixed typo in msxml6.h.
    Fixed several typos in the help file.


Release candidate 5 announced by Pelle :

RC5 changes:

Quote64-bit IDE only: fixed synchronization in project options between compiler machine type, assembler machine type, linker machine type, LIB (and INCLUDE) path, and project type. Removed "Upgrade        project to Win64" since changing the machine type will now have the same effect.
    Fixed compiler problem with atomic assignments (X86, X64).
    Fixed compiler problem with integer demotion in conditions.
    Fixed compiler problem with missing volatile check in 'scalar replacement of aggregates' optimization.
    Fixed compiler problem with C11 anonymous struct/union.
    Fixed compiler problem with SIMD intrinsics _mm256_castps128_ps256(), _mm256_castpd128_pd256(), and _mm256_castsi128_si256().
    Fixed compiler problem with propagation of internal const/volatile annotation for nested struct/union.
    Fixed compiler problem with initializer for an entire struct.
    Fixed problem with _fseeko() and _ftello() not being exported from pocrt.dll and pocrt64.dll.
    Fixed and improved IDE syntax color highlighting of __asm blocks.
    Updated Greek translation, thanks to Harry Karayannis.
    Improved address-taken analysis for SIMD objects.
    Revised internal interfaces to help the register-starved X86 target with register allocation for byte-sized registers.
    Added support for atomic ^= on _Bool type (for "toggle flag" operations).
    Added documentation for internal symbol __POCC_STDC_VERSION__.
    Added conditional definition of symbol __POCC__EXTENSIONS when option /Zx is used.
    Added prototypes for GdiAlphaBlend(), GdiTransparentBlt(), GdiGradientFill() in wingdi.h.
    Added runtime functions _fseek64() and _ftell64().
    Added sapi.lib to the distribution.


Release candidate 6 announced by Pelle :

QuoteRC6 changes:

    Fixed compiler problem with qualifiers on pointed-to type in pointer addition and subtraction.
    Fixed compiler problem with invalid common sub-expression expansion during aggregate address transformations.
    Fixed compiler problem with unwanted warning on sizeof for a variable-length array (cosmetic).
    Fixed compiler problem with unwanted warning from alias analyzer about varible-length array (cosmetic).
    Fixed compiler error for unimplemented 'always intrinsic' function missing in release build.
    Fixed compiler problem with underscore not being accepted as part of a pp-number (apparently a very old bug from the original LCC preprocessor).
    Fixed binary file dumper problem with misplaced/unwanted line-feed.
    Fixed problem in formatted wide character output functions with a buffer limit in bytes (=128), not wide characters (=64), leading to a local buffer overrun (and crash).
    Fixed problem with <sys\time.h> not being part of the setup.

This is the final release candidate. Basically, any bugs reported from now on will go into some future version.


Pelles C version 8.00 Release Candidate 7 by Pelle :

QuoteRC7 changes:

    Fixed compiler problem with too optimistic copy propagation of (local) common sub-expression.
    Fixed compiler problem with signedness cast in a condition during integer demotion.
    Fixed compiler alias problem in global common subexpression elimination.
    Fixed compiler analysis of induction variable usage by skipping uses outside the current body.
    Fixed compiler problem with the transformation of a small block copy into simple assignments, for code like <i>u = *(u.ptr)</i>.
    Fixed compiler problem with address taken of compound literal with constness ('assigned' to a void pointer).
    Fixed compiler problem with detection of special va_list type; Added new warning about suspected misuse of va_list type.
    Fixed compiler problem with missing register targeting for float-to-integer conversion in non-Microsoft mode, X86 target machine.
    Fixed compiler problem with missing scope check in detection of constant compound literals.
    Fixed compiler problem with variable-length array at function scope combined with unreachable code at the end of the function.
    Fixed IDE problem with screen repainting after saving a file using a different known extension, triggering a switch to a different language parser.
    Fixed IDE problem with code pages and string conversion in the built-in help viewer.
    Fixed IDE problem with source editor listbox always ending up on the first monitor in a dual-monitor setup.
    Fixed problem with UTF-16 character truncation in the XML-parser used for IDE settings.
    Fixed IDE C code formatter DLL problem with HEAP corruption (under not so common conditions).
    Fixed uninstaller problem removing some files (pomp.lib for 32-bit setup, pomp.lib, pomp64.lib, porc.exe for 64-bit setup).
    Fixed linker problem with exports forwarded to a different DLL.
    Fixed typo in ntsecapi.h and added lsalookup.h to distribution.
    Fixed problem in netioapi.h, ntddndis.h, tcpestats.h, windot11.h, ws2ipdef.h when requesting Windows Vista+ definitions.
    Added identification of struct padding in the 'scalar replacement of aggregate' optimization, which will enable the optimization in a few more cases.
    Added extensive changes to handling of 'tiny' structs (1/2/4/8 bytes, that fits into a register).
    Fixed problem in winnt.h with warning about unused return value for RtlMoveMemory(), RtlCopyMemory(), RtlFillMemory(), and RtlZeroMemory() Windows API function.
    Added detection of some common byte-swapping idioms in the optimizer (mainly 32-bit swaps).
    Added saving of dirty files in the entire workspace for Build and Rebuild Workspace, not just the current project.
    Only because '\a' is mentioned in the help file, since it doesn't seem to matter on Windows versions that are supported by Pelles C, the escape sequence '\a' will be encoded as '\b' for any resource by the resource compiler (meny, string table, etc.). Also, the IDE will do the same encoding but otherwise ignore this useless feature.
    Added POASM type SQWORD (and sqword).


Thanks, Erol. I saw it already in the forum, it's a long list of changes. He doesn't mention XP support - one of my notebooks still runs on XP, so that could be a little problem. But OK, let's move on ;-)


Hello Jochen,

I installed this latest release candidate on my XP system and no problem. Only the Open Multi-Processing feature is not supported by Windows XP.


Release Candidate 8 announced by Pelle :

QuoteFixed IDE problem with dangling vtable-pointer in save ZIP-file dialog on Windows Vista+.
Fixed compiler problem with new handling of 'tiny' structs and extraction of a floating-point fields (X64).
Fixed compiler problem with struct padding in optimizer SRA pass.
Removed compiler early CSE code; Unoptimized code will be more bloated (which I don't care about), and the optimizer is already doing similar work. Floating-point code for X86 will generally be better by related changes.
Fixed problem with timeval struct and -Go compiler option for <sys/time.h>, <winsock.h> and <winsock2.h>.
Added Windows elscore.h, elssrvc.h, and elscore.lib to the distribution.