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:
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.
|