major changes between 8.00 and 9.00

General:
  • All tools are now 64-bit only, except the installer. You can still build for both 32-bit and 64-bit Windows.
  • The Add-In SDK is now part of the main Setup (not a separate Setup).
  • Switched from Microsoft CodeView to Pelles C Debug Info.
  • Added support for new C17 standard (mainly affects the help file).
  • Added new (private) C runtime functions (see the help file).
  • Added support for UTF-16LE and UTF-8 encoded text files in the C runtime.
  • Updated a bunch of Windows include files.

IDE:
  • Added support for project modes. Default modes are Release and Debug.
  • Added support to the source code editor for search/replace of text in all project/workspace files.
  • Added better support for clean project and clean workspace.
  • Revised backup file handling in the source code editor.
  • Added composite file to File Differences.
  • Added debugger support for Pelles C Debug Info, dropped support for Microsoft CodeView info.
  • Added debugger support for thread descriptions (the application must provide them).
  • Improved debugger stack walking, especially for X86.
  • Revised layout of debugger register tab.
  • Completely rewritten ZIP file helper library, with f.e. support for UTF-8 encoding.
  • Added slightly better support for installer projects.
  • Added support for reading old PPM images (simply because I needed it).
  • Removed support for WinHelp files.

Compiler:
  • Added support for Pelles C Debug Info, dropped support for Microsoft CodeView info.
  • Added option /ARCH for X64, with choice of SSE2, AVX, or AVX2.
  • Added new alias analysis (f.e. the restrict qualifier will have more effect than before).
  • Added support for unrolling trivial loops.
  • Revised support for atomics and implementation of stdatomic.h.
  • Revised support for variable arguments and implementation of stdarg.h.
  • Added support for __has_include() operator in preprocessor.
  • Changed __declspec(noretchk) to __declspec(nodiscard) (fewer functions with important return value than unimportant ones).
  • Added attempt at some basic Spectre mitigations.
  • Added constant folding of many more SIMD intrinsics.
  • Added better reporting of source line for inlined code.
  • Added option /Zd to disable a warning (the option can be used multiple times, for different warnings).
  • Revised spilling in register allocator to make it less likely to die of register starvation (on X86).
  • Minor improvements to suggestion for misspelled name.
  • Removed experimental analyzer for strict aliasing (too many false positives). May get revisited in the future.
  • Added more intrinsics, optimizations, warnings, bugfixes, you name it!
  • Added minimal support for some new Stupid Microsoft Tricks (TM).
  • Changed default architecture to X64.

Macro assembler:
  • Added support for Pelles C Debug Info, dropped support for Microsoft CodeView info.
  • Added some new instructions.
  • Changed default architecture to X64.

Linker:
  • Added support for Pelles C Debug Info, dropped support for Microsoft CodeView info.
  • Added support for UTF-8 encoded .drectve sections.
  • Removed linker option /OPT:WIN98, /OPT:NOWIN98.
  • Raised default OS version to 6.0 for console and windows programs.
  • Fixed problem linking drivers.

Dump utility:
  • Added dump of Pelles C Debug Info.
  • Added support for some new instructions in the disassembler.

Registry editor:
  • Added support for importing and exporting .REG files.
  • Added support for Registry key permissions.

Install builder:
  • Added commands SectionGroup, SectionGroupEnd, MixedBitmap and UninstallCaption.
  • Added variables $ESTIMATEDSIZE, $INSTALLDATE, $LASTERROR, $LASTERRORTEXT, $PROFILE, USERPROFILES, $USERPROGRAMFILES, $USERPROGRAMFILESCOMMON and $WIN64.
  • Added command line option /OUT.