Releases
1.6.10 - July 26, 2022
- Bugfix: workaround for very rare Windows 10 bug that can hang the system by reserving too much address space
1.6.9 - May 4, 2022
- Bugfix: possible crash when using inline functions in templated structs of a certain name
1.6.8 - November 11, 2021
- Bugfix: possible crash in dynamic initializer code when using Clang
1.6.7 - November 3, 2021
- Bugfix: detecting changes to files while hot-reload is in progress
1.6.6 - July 19, 2021
- Bugfix: hot-restart no longer needs environment variables which caused problems with processes spawning child processes
- Bugfix: virtual memory page reservations weren't freed correctly when manually restarting one process in a multi-process scenario
- Bugfix: improved parsing and removing of linker directives when compiling with Clang
- Feature: support for relative paths in continuous compilation
1.6.5 - March 26, 2021
- Bugfix: potential crash in user application when using global symbols that emit two dynamic atexit destructors due to throwing destructors
1.6.4 - December 22, 2020
- Bugfix: improved situation where modules could "steal" ±2GB virtual memory range from other registered modules
1.6.3 - November 25, 2020
- Bugfix: regression introduced in 1.6.1 that would wrongly identify source compilands as library compilands, leading to unpatched functions in user code
1.6.2 - November 23, 2020
- Bugfix: crash in user application when linking against the static runtime and calling lpp::lppShutdown in newer versions of Visual Studio 2019
- Feature: improved handling of ±2GB virtual memory range surrounding enabled modules, reducing chances of patches that cannot be activated
- Feature: removed obsolete handling of weak symbols
1.6.1 - October 30, 2020
- Bugfix: changes applied to source files before loading the corresponding module in Live++ were not tracked correctly
- Bugfix: certain relocations to symbols in anonymous namespace were not patched correctly
- Bugfix: potential crash in external build system mode when adding new compilands
- Bugfix: potential crash due to null pointer access
- Bugfix: forcing local file when both local and remote files are stored in compiland dependencies when using Clang
- Feature: dedicated FASTBuild support, i.e. compilation databases and dependencies can be directly read from FASTBuild .fdb database files
- Feature: changed naming of Live++ patches in order to help external tools such as Superluminal Profiler find symbols for patches
- Feature: improved logs when automating the Visual Studio debugger
- Feature: added timeout setting for prewarming the compiler and linker environments
1.6.0 - July 20, 2020
- Roadmap feature: support for Clang (needs patches D43002 and D80833)
- Bugfix: recompiling files that manually set a different entry point using #pragma comment
- Bugfix: forcing DIA interfaces to be created using the msdia140.dll that ships with Live++
- Bugfix: public API header now compiles cleanly under Clang with -Wall
- Bugfix: potential out-of-bounds access when gathering dynamic initializers
- Bugfix: improved handling of symbols containing filename hashes when amalgamation splitting is used
- Feature: extra error handling and safety nets when automating Visual Studio using COM
- Feature: GUI item that allows to trigger recompiles in cases where the keyboard shortcut isn't recognized (e.g. when connecting via OS X remotely)
- Feature: optimized enumeration of files
- Feature: upgraded to xxhash version 0.7.3
- Feature: added versioning information inside of version.txt to deployments
- Feature: ignoring JustMyCode symbols and sections during reconstruction and when patching relocations
1.5.2 - January 27, 2020
- Bugfix: potential error when reading modules in foreign process
- Bugfix: stripping of associated COMDAT sections in object files compiled with /bigobj
- Bugfix: very rare case that caused slowdowns of several seconds when reconstructing symbols
- Bugfix: rare case that pulls in unnecessary object files as 'libraries'
- Feature: improved performance when reconstructing symbols from COFF files
- Feature: safeguard against PDB files that don't store a PDB path
- Feature: fetching the compiler and linker environment no longer needs a temporary file
- Feature: improved development and telemetry logging when timestamps are enabled
- Feature: support for NatVis visualizers in patches in pre-4.22 versions of Unreal Engine 4
1.5.1 - August 1, 2019
- Bugfix: potential hang when prewarming compiler/linker environment
- Feature: lppStartup and lppShutdown APIs for cleaner startup and shutdown
- Feature: lppRestart API for manually initiating restarts
- Feature: menu option to show license file in Windows Explorer
- Feature: Visual Studio 2019 support in Trial Sample and static runtime headers
1.5.0 - July 9, 2019
- Feature: Restart functionality
- Feature: improved Visual Studio debugging experience for halted processes
- Feature: improved debugging of managed C# code that calls into recompiled C++ code
- Feature: improved startup times when prewarming compiler/linker environment
- Feature: explanatory text regarding User ID used for license activation
- Feature: moved log files to "%LocalAppData%\Live++" path
1.4.3 - June 4, 2019
- Bugfix: possible stall in consecutive *Async API calls
- Bugfix: redundant global symbols in rare cases when compiling with exception handling turned on
- Bugfix: rare crash during startup leading to stall in client
- Bugfix: rare hang when re-compiling while being held in the debugger
- Feature: reduced inter-process communication
- Feature: debugging symbols for jump-to-self in code cave
- Feature: improved log messages in a few cases
- Feature: safeguard check ignoring compilands which are newer than the corresponding module
- Feature: LPP_COMPILER_ERROR_MESSAGE_HOOK hook for compile error notifications
- Feature: API for enabling and disabling multiple modules at once
- Feature: API for logging to the Live++ UI
- Feature: UI setting to show timestamps in log messages
- Feature: digitally signed binaries with EV code signing certificate
1.4.2 - April 12, 2019
- Bugfix: licensing problems for some users of 32-bit builds, caused by a bug in the 3rd-party licensing software
1.4.1 - April 9, 2019
- Bugfix: cryptic "Initialization error 4" in 32-bit builds
1.4.0 - April 8, 2019
- Bugfix: possible crash when changing certain UI settings
- Bugfix: potential buffer overrun in Live++ API
- Bugfix: potential crash when enumerating thread instruction pointers
- Bugfix: out-of-bounds read for malformed environment blocks
- Bugfix: license activation status sometimes not showing correctly
- Bugfix: window position not being saved correctly when docking to the desktop borders
- Bugfix: potential slowdown caused by accessing optical drives
- Feature: new API for applying UI settings
- Feature: new API for building patches directly
- Feature: new UI setting for C++ file extensions used when splitting amalgamated/unity files
- Feature: support for relative compiler and linker paths in UI settings
- Feature: support for adding completely new object files when using an external build system
- Feature: support for .o object files
- Feature: writing of callstack dump upon fatal errors
1.3.3 - January 28, 2019
- Bugfix: possible crash when registering modules using relative paths
- Bugfix: increased CPU usage when opening and closing applications belonging to the same Live++ instance
- Bugfix: hashing of module headers for identifying identical modules
- Feature: added compiler command-line to development log
- Feature: optimized logging performance
1.3.2 - November 22, 2018
- Bugfix: improved information in About dialog in case hardware ID doesn't match
- Bugfix: updated documentation regarding continuous compilation
- Feature: UI setting for keeping Live++ in the system tray
- Feature: updated documentation regarding natvis debug visualizers
1.3.1 - September 24, 2018
- Bugfix: improved behaviour and error reporting when launching Live++ executable directly
- Bugfix: fixed possible unresponsiveness when re-compiling while process is halted in debugger
- Feature: updated documentation regarding license activation
1.3.0 - July 11, 2018
- Roadmap feature: support for LLVM LLD
- Roadmap feature: installing code patches while process is halted in debugger
- Roadmap feature: exception handler for installing code patches on fatal exceptions
- Bugfix: handling of C++ catch-clauses in 64-bit applications
- Feature: improved reconstruction of symbols and dynamic initializers
- Feature: performance improvement when loading and reconstructing COFF files
- Feature: unloading and disabling of modules
- Feature: automatic recognition of Visual Studio compilers and linkers when overriding paths
- Feature: new compile hooks
- Feature: support for external build systems
1.2.5 - May 30, 2018
- Bugfix: workaround for incremental Windows API slowdown when enumerating thread instruction pointers
- Bugfix: over-subscription of threads when re-compiling multiple files
- Feature: support for project and user setting files
- Feature: improved error reporting when detecting API vs. DLL version mismatch
- Feature: improved logging when patching multiple processes
- Feature: improved logging when detecting partial PDBs with missing linker environment
- Feature: automatic identification of binary identical modules when editing multiple processes, supports copied executables in different directories
- Feature: updated documentation and FAQ regarding FASTBuild and IncrediBuild setup
1.2.4 - May 24, 2018
- Bugfix: mis-identification of dynamic initializers for COMDAT symbols in named namespaces
- Bugfix: same compiland being added more than once caused by missing normalization of .obj paths
1.2.3 - May 23, 2018
- Feature: digitally signed binaries to remedy false positives generated by certain anti-virus and malware scanners
- Feature: workaround for compile error C2858 experienced when using Incredibuild with remote agents and precompiled header files
- Feature: improved documentation for command-line tools
1.2.2 - May 22, 2018
- Bugfix: linker symbol clashes when linking against the static runtime library using _ITERATOR_DEBUG_LEVEL 0
- Bugfix: crash caused by race condition between client and server signals when client is held in the debugger
- Bugfix: crash caused by not updating directory cache for new dependencies
- Bugfix: 'LNK1143: invalid or corrupt file: no symbol for COMDAT section' when stripping symbols in discardable 'pick any' COMDAT sections
- Bugfix: source files on virtual drives could lead to '#pragma once' being ignored in certain headers
- Bugfix: breakpoints in source files on virtual drives being ignored by the debugger
- Bugfix: loading same modules more than once in multi-process editing scenarios
- Feature: removed obsolete UI setting superseded by additional linker options
- Feature: UI setting for passing additional compiler options used when creating a patch
- Feature: UI setting for letting Live++ minimize into the system tray when being closed
- Feature: UI settings for using compiler and linker override paths as fallback only
- Feature: warning message when changing UI settings related to splitting of amalgamated/unity files
- Feature: improved loading times
- Feature: improved telemetry logs
- Feature: removed message box when no activated license can be found, window title will show 'not activated' instead
1.2.1 - May 11, 2018
- Roadmap feature: automatic splitting of amalgamated/unity files
- Feature: performance improvement when reconstructing COFF files the first time
- Feature: API for manually triggering recompiles
- Feature: API for compile hooks
- Feature: UI setting for passing additional linker options used when creating a patch
- Feature: command-line tools for automated license management (activation, deactivation, and validation)
1.1.2 - April 30, 2018
- Bugfix: corrupt COFF symbol table when stripping object files compiled with /bigobj containing more than 65535 sections
- Bugfix: missing relocation when stripping object files with overflown relocations
- Bugfix: potential crash when PDB contains no linker symbol
- Bugfix: error 87 when trying to spawn compiler or linker, caused by multi-line environment variables
1.1.1 - April 25, 2018
- Feature: installing compiled patches when editing multiple processes that already have patches applied
- Feature: improved performance when applying patches to multiple processes
1.1.0 - April 23, 2018
- Bugfix: potential hang when querying terminated process for page protection
- Bugfix: crash bug when throwing exceptions in 64-bit applications
- Bugfix: system tray misbehaving in certain combinations of notifications and focus events
- Bugfix: compiling to .obj files that contain UTF-8 characters, compiler response file needs ANSI
- Feature: multi-processor compilation when re-compiling multiple files
- Feature: terminated processes/clients are automatically detected and disconnected from the server
- Feature: Live++ instance stays open until the last process terminates or disconnects
- Feature: process group names are automatically fixed should they contain illegal characters
- Feature: global COFF stripping when re-compiling multiple files
- Feature: system tray icon is removed when last process disconnects
1.0.5 - April 12, 2018
- Bugfix: potential hang due to an endless loop when stripping COFFs
- Bugfix: potential crash due to out-of-bounds read when reading and reconstructing COFFs
- Feature: added support for virtual drives
- Feature: added support for playing sounds on successful and failed re-compiles
- Feature: minimizing Live++ now sends it into the system tray, where progress is shown via animated icons
1.0.4 - April 10, 2018
- Feature: added continuous compilation mode
- Feature: optimized finding of changed files, leading to much shorter iteration times, especially on large projects with lots of files
1.0.3 - April 6, 2018
- Bugfix: when linking fails, it will now be retried without having to modify a file first
- Feature: added support for files built remotely using FASTBuild
- Feature: added UI setting for overriding linker paths
- Feature: added UI setting for clearing logs on recompiles
- Feature: added UI settings for disabling the use of compiler and linker environments
1.0.2 - April 4, 2018
- Feature: workaround for WriteProcessMemory slowdown in Windows 10 SDK
1.0.1 - March 29, 2018
- Bugfix: pre- and post-patch hooks would sometimes be discarded by the compiler (VS2015 and newer)
- Feature: added free sample application included in trial version
1.0.0 - March 27, 2018
- Initial release