major changes between 4.50.0 and 5.00.1

General:
  • Added support for 64-bit Windows (AMD64/X64 processors); only tested on Windows Vista 64-bit edition.
  • Windows 9X is no longer supported as a build environment, and special handling for that environment has been removed (except in the C runtime; compiled programs should still run on Windows 9X).
  • Many tools are now using the Unicode version of the Windows API; they are marked below as 'Unicode-only' programs.
  • Added support for UTF-8 and UTF-16LE encoded text files (source files, resource scripts, module definition files, and so on). The support for UTF-16LE is more complete at the moment.
  • Added new code signing utility: POSIGN (Unicode-only program).
  • Added support for C99 complex math in the compiler and the C runtime (_Complex but not _Imaginary, for now).
  • Added exprimental support for more secure C runtime functions from ISO TR24731-1.
  • Library and include files are now in separate directories for Win32/Win64/WinCE. Renamed some WinCE libraries back to the original Microsoft names, and updated almost all WinCE include files.
  • Speed improvements in the code generator, shared by the C compiler and the macro assembler.
  • Revised thread locking for stream functions in the C runtime.
  • Added support for (thread-specific) locale settings in the C runtime.
  • Some C runtime functions, like memcpy and memset, are now more optimized (X86, AMD64). Will use MMX/SSE instructions when available on the host machine.
  • The debugger and the binary file dumper now use the same disassembler library (consistency).
  • Added more error codes to errno.h.
  • Added non-standard 'P' format specifier for the printf family.
  • Added more support for huge files, including a modified fpos_t type.
  • Removed (outdated) DirectX files for desktop Windows; people with more interest in DirectX than me can probably figure out how to use the new versions anyway.
  • Bugfix: negative sign possibly lost by _itoa(), _ltoa(), _itow(), _ltow().

IDE:
  • Unicode-only program.
  • Added support for 64-bit project types (POIDE64 only).
  • Added support for 64-bit debugging (and 32-bit debugging on Windows Vista; POIDE64 only).
  • Added support for Install builder projects, and CAB builder projects (Windows Mobile).
  • Added support for storing settings in XML files using new /xml command line option.
  • Added support for explicit selection of UI language using new /L command line option.
  • Added prestart program (poide.com) for displaying help using new /? command line option.
  • Removed dependencies on WinHelp, and revised F1 help for the entire IDE.
  • Revised handling of the 'system definitions' database, and browse information in general.
  • Revised focus handling; tab pages and the project pane can now receive focus, for example. Added keyboard interface for tab pages.
  • Added (limited) support for importing Visual Studio 2005/2008 projects (maybe 2003 too).
  • Added Unicode version of all add-in macros.
  • Increased limit to 16 user-defined tools and help files.
  • Added support for UTF-8 and UTF-16LE encoded text files (source editor).
  • Added support for UTF-8 and UTF-16LE encoded files in 'Find in files', which is now also less fuzzy about white-space.
  • Added support for code snippets by language, including 16 'surround by' snippets (source editor).
  • Revised all syntax color parsers (source editor).
  • Added folding of #if, #ifdef, and #ifndef blocks (source editor).
  • Added a few more attempts at making the 'smart indent' mode less stupid (source editor).
  • Added support for UTF-8 and UTF-16LE encoded project files.
  • Moved default location for project files away from the 'Program Files' branch.
  • Added support for building (and rebuilding) an entire workspace.
  • The extended project settings (.ppx files) are now stored in XML files.
  • Added less optional project settings for LIB and INCLUDE environment variables, together with predefined project symbol PellesCDir, to handle library and include files being moved to separate directories.
  • Added more consistent use of LIB and INCLUDE environment settings (open #include file, scan for dependencies, and so on).
  • Added 'Open As' to project tree context menu; makes it easier to open a resource script in text mode, a source file in hex mode, and so on (previously supported by add-ins).
  • Added support for code signing in projects (using new POSIGN tool).
  • Added Unicode version of project wizard API functions.
  • Added support for UTF-8 and UTF-16LE encoded resource scripts (resource editor).
  • Added 'New HTML resource' command (resource editor).
  • Added support for new dialog controls: IP-address, Native font (maybe not so useful), Split Button, Command Link, SysLink, and Net Address (dialog editor).
  • Added support for MS Shell Dlg and MS Shell Dlg 2 font in extended dialogs (dialog editor).
  • Added help identifier property for extended dialogs (dialog editor).
  • Added a few more selections to the version resource editor.
  • Added 'Find' and 'Find next' support to stringtable resource editor.
  • Symbolic names of styles introduced by custom controls will now be written directly to the resource script if the proper include file wasn't included (avoiding problems reopening the script).
  • Added options dialog for debugging standalone EXEs.
  • Added support for debugger pseudo-variables @ERR, @PID, @TID, and @TIB/@TEB.
  • Added support for selecting groups of registers to view in the debugger.
  • Added support for debugging custom controls.
  • Revised stack walking code for X86, ARM, and AMD64/X64 (debugger).
  • Revised code for connecting to, and disconnecting from, the remote server (Windows Mobile).
  • Added proportional image resizing (image editor).
  • Added gradient rectangle tool (image editor).
  • Added support for PNG compression in Windows Vista icons (image editor).
  • Added support for transparent color in GIF files (Image editor).
  • Added support for 24 bits-per-pixel PCX images (pretty obsolete format, but trivial enough).
  • Added 'Find' and 'Find next' support to binary dump editor (search for ASCII string inside the binary data).
  • Added better scrolling in the binary dump editor.
  • Minor changes for Windows Vista, and several minor bugfixes.
  • Removed exprimental custom assembler support.

Compiler:
  • Unicode-only program (preprocessor and lexer).
  • Added support for AMD64/X64 code generator.
  • Added support for UTF-8 and UTF-16LE encoded source files; removed support for #pragma code_page().
  • Added __POCC_TARGET__, __POCC_DEBUG__, and __STDC_IEC_559_COMPLEX__ builtin macros.
  • Revised memory management; should use less overall memory.
  • Added support for #pragma once.
  • Added support for C99 STDC #pragma's CX_LIMITED_RANGE, FENV_ACCESS, and FP_CONTRACT.
  • Added stricter C99 float-to-int conversions in standard mode.
  • Added C99 block scopes for selection and iteration statements.
  • Added support for preprocessing to file (new /P option).
  • Revised exception and unwind handling code (X86, ARM).
  • revised _alloca() code.
  • Changed /Op option to /fp option; /Op maps to /fp:precise, /Op- maps to /fp:fast. The /fp option will affect more things than the old /Op option.
  • Added many new intrinsic functions; see help file.
  • Added parsing of __declspec(deprecated[(text)]); no message is currently issued (too annoying when using Microsoft include files).
  • Alignment requirement larger than 8 bytes, for stack variables, will attempt to align the stack pointer (X86).
  • Added __alignof operator (and __alignof__ extension).
  • Use of __declspec(align(n)) will propagate better for nested structs.
  • Revised bitfield handling and added support for long long bitfields (Microsoft mode).
  • Added support for UCN in character literals, string literals, and identifiers.
  • Added support for the '$' character in identifiers.
  • Revised __fastcall handling to be more consistent with Microsoft.
  • Added annotation of the C runtime exeception handler for /SAFESEH linker option.
  • Bugfix: postfix expression lost for compound literals.
  • Bugfix: compound literals didn't always work with sizeof operator.
  • Bugfix: some cases of pointer to VLA didn't work.
  • Bugfix: fixed association bug with C99 idempotent type qualifiers.
  • Bugfix: added C99 storage class check for identifier declared in a for statement.
  • Bugfix: __leave statement only allowed in __try blocks.
  • Bugfix: functions returning a struct or union in Microsoft mode will now return a pointer to the hidden value location.
  • Bugfix: empty inline functions could cause an access violation.
  • Bugfix: some cases of indexing a C-symbol array didn't work in the inline assembler (X86).
  • 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).

Macro assembler:
  • Added support for :DEF: operator in ARM mode.
  • Added support for bar-delimited identifiers in ARM mode.
  • Added warning for label without colon in ARM mode.
  • Added support for Intel Wireless MMX instructions in ARM mode.
  • Added .CORE processor type in X86 mode.
  • Added support for .SAFESEH directive in X86 mode.
  • Changed fastcall handling to match the C compiler.
  • Added WRT operator, for RIP-relative addressing in AMD64 mode.
  • Added minimal support for UTF-16 encoded source files (see help file).
  • Added better error message for bogus character in a source file.
  • Added support for SSSE3 and SSE4 instructions in X86 mode.
  • Revised IFB, ELSEIFB, IFNB, ELSEIFNB handling (X86, AMD64).
  • Added support for forward definition of PTR type (X86, AMD64).

Compiler driver:
  • Unicode-only program.
  • Added /o option; a combination of the /Fo and /Fe option, depending on the file extension.
  • Added better support for just linking files.
  • Added recognition of .o file extension.
  • Response files may now use UTF-8 and UTF-16LE encoding.

Linker:
  • Added support for AMD64/X64 machine.
  • Added support for DLL forwarding: from the command line, and in module definition files.
  • Removed /OLDIMPLIB option and support for old style import libraries.
  • The module definition file parser will now check for 'stop characters' rather than 'valid characters', allowing more oddball symbol names (without quotes).
  • Module definition files may now use UTF-16LE encoding.
  • Response files may now use UTF-16LE encoding.
  • Added /SAFESEH option (X86).
  • Added /ALLOWISOLATION option.
  • Added /NXCOMPAT option.
  • Added /ALTERNATENAME option.
  • Added /MANIFEST, /MANIFESTDEPENDENCY, and /MANIFESTFILE options.
  • Added recognition of .a file extension (silly, but anyway).
  • Added more tests to reject bogus object files from buggy external translators (not from Pelle's toolchain).
  • Revised internal default value handling; slightly better at guessing some values the lazy programmer didn't bother to specify...
  • Revised stub file management and alignment.
  • Linking with a library containing multiple/merged import libraries should work now.

Library manager:
  • Added support for AMD64/X64 machine.
  • Will now auto-detect file types based on content, not just the file extension (recognizing .o and .a file extension, for example).
  • Removed /OLDIMPLIB option and support for old style import libraries.
  • The module definition file parser will now check for 'stop characters' rather than 'valid characters', allowing more oddball symbol names (without quotes).
  • Module definition files may now use UTF-16LE encoding.
  • Response files may now use UTF-16LE encoding.

Binary file dumper:
  • Added dump of certificates.
  • Added dump of new items for AMD64/X64.
  • Added /UNWINDINFO option.
  • Added /LOADCONFIG option.
  • Added support for SSSE3 and SSE4 instructions in the disassembler (X86).
  • Added support for UTF-16LE encoded source files (not UTF-8).
  • Added LONGLONGS format to /RAWDATA option.

Resource compiler:
  • Unicode-only program.
  • Added support for UTF-8 and UTF-16LE encoded resource scripts.
  • Added support for Windows Vista icons (using PNG compression).
  • Added support for PUSHBOX controls (consistency).
  • Added support for extra control data in DIALOGEX resources (currently *not* supported by the IDE).
  • Added /N option; support for appending a null character to all strings in the STRINGTABLE resource.

Message compiler:
  • Unicode-only program.
  • Added support for UTF-8 and UTF-16LE encoded message scripts.
  • Added support for OutputBase statement.
  • Added support for TagName statement, and /T option.

Browse information manager:
  • Unicode-only program.
  • Added support for UTF-8 and UTF-16LE encoded source files.
  • Added support for parsing install builder scripts.
  • Browse information is now stored in SQLite3 databases.

Make utility:
  • Unicode-only program.
  • Added support for UTF-8 and UTF-16LE encoded makefiles.
  • Added support for '.phony' targets.
  • Fixed path handling code for pre-requisites.

Bind utility:
  • Unicode-only program.

Rebase utility:
  • Unicode-only program.
  • Added support for 64-bit executables.

Install builder:
  • Added variables $ADMINTOOLS, $ADDDATA, $COMMONADMINTOOLS, $COMMONAPPDATA, $COMMONDESKTOP, $COMMONDOCUMENTS, $COMMONFILES32, $COMMONFILES64, $COMMONFILES, $COMMONSMPROGRAMS, $COMMONSMSTARTUP, $COMMONSTARTMENU, $DOCUMENTS, $PROGRAMFILES32, $PROGRAMFILES64 and $SENDTO.
  • Added SetRegView statement.
  • Added support for Windows Vista, and minimal support for 64-bit Windows.

CAB builder:
  • Added support for UTF-16 encoded scripts.
  • Added support for user-defined _setup.xml (CPF) using new /Fx option.

Registry editor:
  • Unicode-only program.
  • Revised code for connecting to, and disconnecting from, the remote device (Windows Mobile).

Process viewer:
  • Unicode-only program.
  • Revised code for connecting to, and disconnecting from, the remote device (Windows Mobile).

Screen capture for Windows CE:
  • Unicode-only program.
  • Revised code for connecting to, and disconnecting from, the remote device (Windows Mobile).

Copy utilities for Windows CE:
  • Unicode-only program.
  • Bugfix: will remove the partial file on failure.