changes between 3.00.0 and 4.00.1 |
General: * Added more C runtime support for wide characters (Unicode), Posix-style functions, and console screen I/O. See help file for details. * Added more Pocket PC import libraries and include files. * Added new tool, CEGET, which does the opposite of CEPUT: it copies a file from Pocket PC. * Bugfix 4.00.1: The include file ftw.h is now actually included (in the distribution... ;-) IDE: * New, and better looking, splash screen (thank you, Alexander Stoica!). * Rewritten project manager (many changes in many places): - Support for a 'workspace' with multiple projects. - New file type (*.ppw) for saving a 'workspace'. - Project files will now use relative path's and a new version number (once loaded in 4.0, they will not load in any previous version!). - The file projdefs.tag is now merged into projname.tag. - Support for 'verbose build' (useful when debugging build problems). - Context menus in the project tree are now more context sensitive. - More. * Rewritten image editor: - Support for alpha channel (transparency) in XP icons and PNG files. - GDI calls are no longer used to draw lines, circles, or to fill areas (you shouldn't see any difference). - New dialog for selecting colors - when double-clicking a color in the image toolbox. - New 'sepia-tone' and 'drop shadow' effects. - Non-standard icon and cursor sizes can be edited (but not created). - More. * Many changes in the debugger: - Support for expressions in several places: in breakpoints, on the Watch tab, in the new Quick Watch dialog, and in several address fields. - New 'Step out' of function, and 'Run to cursor' commands. - Support for hardware breakpoints. - Better support for functions without a standard EBP-frame (in stack trace). - Better support for variables in processor registers. - New break-on-entrypoint setting. - More. * New breakpoint tab for all project/workspace breakpoints. Added support for 'pass count' and 'expression' (break when true) in breakpoints. Many changes in the source editor to support the new breakpoints (many more than I thought possible!). * Added support for block 'comment'/'uncomment' in the source editor (C and MASM code). * Added support for 'find calls to' in the source editor (C and MASM code). * Added support for nested structs/unions in the member list. Also added support for global variables and better 'context info' for local variables. * Typed characters will now be grouped into a single undo action in the source code editor (when possible). This will save memory and will also make it easier to undo/redo typed text (no more character-by-character). * Resource scripts will now use relative path's. * New filename field in resource properties. * New general setting to make totally unique resource identifiers. * The IDE will now accept only one instance of itself. Any attempt to start a new instance will activate the first. It will still be possible to run a new instance in some cases, like debugging an add-in. * Added support for sorted/unsorted function names in the project tree. * Added support for making ZIP filenames unique. * Added styles SS_REALSIZECONTROL, PBS_MARQUEE, WS_EX_APPWINDOW, WS_EX_TOPMOST and WS_EX_NOACTIVATE in dialog editor. * Added 'Raw window styles' setting in the dialog editor (see context menu for the Property window). * Added more inconsistency checks for custom controls (to make them work anyway). * Build tab will now wait 5 minutes before asking if the process should be killed. * Added support for Shift+F10 in most windows with a context menu - in POIDE, POREG and POVIEWP. Works on XP at least. * Added $$ as an escape for a literal $ in project files. * Removed support for Platform SDK help. * Bugfix: the debugger allowed editing in several tabs while the debuggee was running. * Bugfix: the source editor allowed toggling breakpoints when debugger was running. * Bugfix: several problems fixed with search/replace in the source editor. * Bugfix: pasting immediately after an auto-indent didn't indent properly. * Bugfix: the source editor could display the wrong line number on the status bar (after folding). * Bugfix: fixed several problems with 'formatted C code' in the source editor. * Bugfix: buffers for environment variables like PATH and LIB could sometimes overflow, causing strange effects. * Bugfix: imported Message Table and Manifest resources were assigned the wrong identifier. * Bugfix: Ansi/Unicode encoding could sometimes get out-of-sync between different entries in a Message Table. * Bugfix: bitmap controls, when testing a dialog, will now display a default image (ignoring any resource identifier). * Bugfix: pasting controls in the dialog editor could sometimes crash the IDE. * Bugfix: the dependency scanner will now convert forward slash to backward slash in filenames. * Bugfix: the syntax color highlighter didn't handle two traditional comments in a row: /*...*//*...*/. * Bugfix: the undo buffer for the source code editor could get very big after a long editing session. * Bugfix: when an error occurred during the opening of a file for saving (like "access denied"), the file could be deleted(!). * Bugfix: switching from a source code window, to another window, and back again, would reset the caret position when positioned at an "indent point". Compiler: * Generally somewhat faster at compiling. * Added a few more optimizations. * Added support for GNU C __typeof__ operator - require the /Zx option. * Added support for GNU C case ranges (case e1 ... e2) - require the /Zx option. * Added new level 2 warnings about 'unused return value from function' and 'possible truncation of data'. Sometimes annoying, sometimes very useful. * Bugfix: using # ## # should not produce a new ## operator. * Bugfix: several problems fixed in ARM code generator (as previously posted). * Bugfix: the compiler failed for preprocessor expressions containing the conditional operator (?:). * Bugfix: problems initializing structures containing unaligned fields. * Bugfix: problems when the conditional operator (?:) appeared in an expression used as an argument to an inline function, and the inline function used this argument more than once. * Bugfix: unreferenced parameters in _fastcall functions were counted as stack-based parameters (so the emitted return instruction could be wrong - leading to a crash). * Bugfix 4.00.1: ARM code generator didn't handle usage of VLA's or _alloca() in a function that also called another function with more than 4 arguments. * Bugfix 4.00.1: ARM code generator could sometimes spill incoming argument (in register) to wrong address. Linker: * Should be slightly faster at compacting CodeView debug information. * Better error reporting for multiply defined symbols (with filename, when possible). * A dummy DllMain() function will be fabricated automagically if not found. * Bugfix: extremely long (import/export) symbols could crash POLINK. * Bugfix: sometimes problem with imported/exported _fastcall decorated symbols. Library manager: * Added option /MAKEDEF to create module-definition file from import library. * Added support for reading import libraries in OMF format. * Bugfix: extremely long (import/export) symbols could crash POLIB. * Bugfix: the option /NOUND didn't work with symbols from a module-definition file. Binary file dumper: * Bugfix: the import dump didn't handle some cases. Resource compiler: * Added new option /E for preprocessing script only - might be useful in debugging some scripts. Browse information manager: * Added new kind (C) to /K option - find function or macro call. * Bugfix: fixed several problems with conditional code (#if, #else, #endif). * Bugfix: attempt to handle different decorations for function definitions (Windows mode). Make utility: * Added $$ as an escape for a literal $ in makefiles. * Bugfix: will now strip spaces at the end of macros - could cause problems when combining macros. Screen capture (WinCE): * Added support for saving screen captures in GIF format. * Bugfix: some images had the red and blue color component swapped. |