Change Log
5.2.0.0
Released: 2023-09-01
Fix Recode patch linking under VS2022 (17.7.3) if TLS used in module.
Prevent Recode failure due to regression in VS2022 during save all files.
Updated to latest clang implementation.
5.1.0.0
Released: 2022-09-16
Added SHA256 source hashing support for VS2022+.
Improved diagnostics for source hash patching (enable with
ObjPatch
category).Fix rewrite error for alignas/alignof (and other variants).
VSP: Auto-expand UI if custom diagnostics in use.
Updated to latest clang implementation.
5.0.0.0
Released: 2022-03-09
Support for VS2022 tool-chain.
64-bit VSIX installer available for VS2022+.
32-bit VSIX installer supports VS2017 & VS2019.
Improved handling of
/std:c++##
,/std:c##
&/Zc:__cplusplus
MSVC switches.Fixed target process crash in STL iterators under
/std:c++20
.Dropped Recode extension support for VS2015 (tool-chain still supported).
4.1.6.0
Released: 2021-08-10
Prevent
error C7510 'type-name': use of dependent template name must be prefixed with 'template'
.Fixed regression due to changed handling anonymous static members in VS2019 (16.9+).
Fix for DLL reference stub binding on later VS2019 tool-chains.
4.1.5.0
Released: 2021-02-17
Fix for rare failure in Recode license key validation.
4.1.4.0
Released: 2020-10-26
Full support for C++17 inline static members.
4.1.3.0
Released: 2020-08-05
Fixed handling of duplicate symbols under LLD.
4.1.2.0
Released: 2020-05-28
Fixed incorrect handling of globals dependent on template specialization in rare cases.
Fixed issue with new TLS guard introduced by VS 16.5.
C++20 compatibility improvements.
4.1.1.0
Released: 2020-03-09
Prevent incorrect PDB data causing
error recode: compiler/linker has merged N functions
when Recoding with with VS2019 16.4.x.Improved C++ standards compatibility.
4.1.0.0
Released: 2020-01-03
Handle globals declared in anonymous namespaces under VS2019.
Improved compatibility with newer C++ features.
Prevent crash due to missing linker compiland symbol.
Fix failure when Recoding with greater than 512 modules loaded into a process.
Fixed spurious
error recode: patch .tls section does not mirror <module>
.Reduced log verbosity for untested compiler version message to reduce log spam.
4.0.2.0
Released: 2019-05-03
Fix rare issues where
extern "C" const FOO
constants were stubbed with internal linkage.Prevent log warnings caused by VS2015 Community Edition installed without the DIA SDK.
4.0.1.0
Released: 2019-04-12
Fixed
Failed to load any DIA DLL
error when VS2015 (or earlier) wasn’t installed.Improved DIA related diagnostics.
4.0.0.0
Released: 2019-04-09
LLD link compatibility (since r357308). Use lld-link.exe for faster link times.
Improved user licensing management. A recode.lic file in
%APPDATA%
orDocuments
will now take precedence over one beside the.sln
file.Official support for VS2019 16.0.0 (MSVC 19.20.27508.0).
Official support for VS2017 15.9.11 (MSVC 19.16.27030.0).
Removed Recode support for IDE integration with VS2012 & VS2013.
Fixes for Recoding with standards conformance mode (
/permissive-
).Prevent rare DIA SDK lookup failures by relying on VS registry instead of ENV.
Fix for
Unresolved stub symbol: _Init_thread_unlock
error.Fix for Recoding where Cylance DLLs are injected into running processes.
Better support for const globals without an evaluable initializer.
VS integration now uses async pattern to improve UI responsiveness.
3.3.1.0
Released: 2018-03-27
Official support for VS2017 15.6.3 (MSVC 19.13.26129.0).
Fix Recoding of
/DEBUG:FASTLINK
linked modules when debugging under VS2017 15.6.1+ (VS now writes to the PDB at runtime).Ignore
/DEFAULTLIB:onecore.lib
introduced by msvcrt[d].lib under VS2017 15.6.3 which could cause linking to fail.Improve detection of Local VC Toolset lib dir when obj files are stripped.
Fixed fallback error when looking for the linker in the compiler directory.
Cleaned up logging during
Find Changes
Recode phase.
3.3.0.0
Released: 2018-03-06
Local VC Toolsets are now supported with Recode.
Fix when Recoding the same remapped source file more than once.
Fix stubbing of members dependent on packed template arguments.
Fix assert when evaluating pre-VS2010 DLL dependencies.
Reduced verbosity of non-critical Recode parsing warnings.
Minor UI fixes.
3.2.1.0
Released: 2018-02-01
Official support for VS2017 15.5.6 (MSVC 19.12.25835.0).
Fix Recode failure with template parameter packs using ellipsis ie.
VariadicTemplate<types...>
.Fix Recode failure when
/Zc:wchar_t-
is used with<locale>
header.Prevent Recode UI going into an unresponsive state when cancelling a Recode.
3.2.0.0
Released: 2018-01-26
Official support for VS2017 15.5.3 (MSVC 19.12.25834.0).
Support for FastBuild remapped drive compilation caching.
Recode logs for a debug session now stored in a .rlogs directory.
Added
Explore Logs
button to Recode panel to open log directory.Reduced VSP memory usage and improved recovery for low-memory situations.
Improved link diagnostics.
3.1.5.0
Released: 2017-12-08
Official support for VS2017 15.5 (MSVC 19.12.25830.0).
Support for non-standard MSVC offsetof implementation (and similar variants).
Improved and optimized
constexpr
handling within Recode.Fix for rare issue when obj section relocations overflow.
Prevent spurious blank lines being printed to the log during Recode.
Define
__RECODE__
during preprocessing to allow workarounds for MSVC preprocessing bugs.
3.1.4.0
Released: 2017-11-23
Correctly preserve
/FI
(Force Include) compile arguments after the first Recode.Fix failure with types defined inside global variable declarations where type is forward declared.
Fix failure to Recode using VS2010 linker with VS2015 without previous VS installations available.
3.1.3.0
Released: 2017-10-13
Fix bug where output from MSVC wasn’t logged in certain situations.
Add VS2017 15.4 (MSVC 19.11.25547) as a supported MSVC version.
Add VS2015 Update 3 Compiler Optimization Hotfix (19.0.24218) as a supported MSVC version.
Reduced verbosity of
warning recode: no symbol found for [qualname] (publicname)
.Silence unnecessary
warning: #pragma once in main file
in clang output.
3.1.2.0
Released: 2017-09-27
Fix stack overflow crash caused by deep macro recursion in some code bases.
3.1.1.0
Released: 2017-09-25
Fix issues relating to new TLS support globals appearing due to Recoding.
Fix Recoding of scoped enums used as partial template parameters for static members.
Suppress log noise caused by (ignorable) warning C4291.
Improved general compatibility by preventing stub generation for unused template members.
Fixed various issues using boost.
Support for latest release of VS2017 (15.3.5).
3.1.0.0
Released: 2017-09-12
VSIX installer now used instead of MSI to allow full VS2017 compatibility.
Admin rights no longer needed for per-user installation.
Support for latest release of VS2017 (15.3.3).
Recode binaries now part of VSIX installation.
Fix TLS stubbing for non-incrementally linked VS2017 15.3.x builds.
Improved incomplete array dimension lookup when initializer is available.
Fix Recoding of certain template reference parameters using namespaces.
Fix issue where same file may appear on the Recode edit list twice.
Prevent superfluous new-lines in log output.
Attempt to fallback on using VC 14.10 toolset if VC 14.11 is unavailable.
Warn if
/DEBUG:FASTLINK
support is broken due to MS regression in VS 15.3.x.Added a
Save Log
button to Recode UI.Indicate skipped (no work to do) Recode state more clearly via popup notification.
3.0.5.0
Released: 2017-06-21
Fixed several issues impacting Havok 2016 SDK users.
Fix for variadic template static members.
Fix for template incomplete array static members.
Fix for template static members where the type has a custom new operator.
Improved support for template static members using initializer lists.
3.0.4.0
Released: 2017-05-09
Fixed failure with implicitly inaccessible template type parameters on static members.
Reduced log spam caused by redundant clang diagnostic.
3.0.3.0
Released: 2017-04-24
Allow fallback to installed
vcvars*.bat
file if relative version can’t be found.Recode license key reservations can now be retired if no longer in use.
3.0.2.0
Released: 2017-04-11
Improved reliability of partial PDB (/DEBUG:FASTLINK) conversion.
3.0.1.0
Released: 2017-04-10
Support for VS2017.1 update.
Fixed
/DEBUG:FASTLINK
support if distributed/redirected compilation is in use.Fixed global references to abstract classes (resolves issue with boost::system::error_category).
3.0.0.0
Released: 2017-04-04
Official VS2017 support.
Adds support for the
/DEBUG:FASTLINK
linker option (partial PDBs).Fixed preprocessing of code reliant on MSVC specific preprocessing (Havok etc.)
Greatly improved support for static members in templated types.
Improved and expanded search for DLL dependencies when resolving DLL imports.
Now supports adding new template specializations (with static members) at runtime.
Now supports inline record type declaration within global declarations.
Now supports inline declaration of calling convention on global function pointers.
Now supports multiply included headers (without header guards).
Now supports global declarations across #if/#include directives.
Pause process immediately option is saved between VS restarts.
Improved static local Recode reliability.
Dropped support for VS2010.
Requires 64-bit Windows.
Smaller installation.
New icons.
2.4.3.0
Released: 2017-01-31
Fix for .tls section layout issue with unaligned variables.
Fix update issue in preparation for Recode 3.
2.4.2.0
Released: 2016-11-17
Error List items created by Recode are now correctly cleared before Recodes and debug sessions.
Fixed issues with disabled Recode button and file tracking due to async solution loading.
Fixed patches being linked against the wrong version of ucrt.lib.
Show linker verbose output if it fails with LNK1104 (cannot open lib).
Prevent Recode being enabled without a real solution being loaded.
2.4.1.0
Released: 2016-11-04
Fixed rare crash in handling of auto lambda functors using inherited this pointers.
Offical support for MSVC 2015.3 Hotfix 2 (and below)
Additional improvments in MSVC parsing support.
2.4.0.0
Released: 2016-07-11
Fixed handling of explicit extern template instantiations.
Improved handling of templated static members specialized to lambdas.
Resolved issue with static member constexpr data.
Official support for VS2015.3.
Added
Test with Recode
option to code editor context menu.Added
Show Recode Log
button to Recode file pane.Further standardized diagnostics.
New and improved icons.
2.3.8.0
Released: 2016-06-20
Improved FastBuild detection logic to fix issues with Recoding distributed compilands.
Add support for Recoding global array references.
Fixed stack overflow in parsing code in rare situation with unqualified template lookup.
Improved warnings with name of DLL imported static members used in inline functions.
Enable C++14 support if VS2015+ compiler is used.
2.3.7.0
Released: 2016-04-26
Fix handling of
__pragma(comment(linker, ""))
.
2.3.6.0
Released: 2016-04-25
Fix bug with empty macros set via /D command-line.
Emit error diagnostic when encountering an unsupported static local TLS variable.
VS2015.2 supported.
2.3.5.0
Released: 2016-04-04
Fix license key reservation when behind an authenticated proxy server.
2.3.4.0
Released: 2016-03-22
Fix globals using private/protected inner template types.
2.3.3.0
Released: 2016-02-23
Fix indirectly specialized static members. Resolves issue with latest Havok SDK.
Added support for
__pragma(comment(lib, "foo.lib"))
usage.Correctly preserve CVR qualifiers when stubbing incomplete arrays.
2.3.2.0
Released: 2016-02-16
Fix issue when incomplete array typedef is used as static member. Resolves a Havok 2015 issue.
Recode protect coverage extended to more functions.
General code analysis improvements.
2.3.1.0
Released: 2016-02-05
Implemented batch
Test with Recode
on projects & folders via the solution explorer.VSP now restores the previous output pane (usually Debug) after a successful Recode.
Fixed rare issue using deoptimize with
__declspec(noreturn)
functions.Fixed VS2015 fallback logic for determining compiler path with distributed builds.
Eliminated unnecessary warnings relating to Recode protect.
2.3.0.0
Released: 2016-01-14
Official support for VS2015.1.
Support for
thread_local
storage class (VS2015+).Fix rare issue with updates download on high-latency connections.
Improved performance and reduced stalls during debug for exception recovery logic.
2.2.13.0
Released: 2015-12-16
Support Recoding shared obj/lib files linked by two or more loaded modules.
Fix for failure in rare cases with source paths containing parent (
..
) directives.Fix for rare crash in live stack analysis using VS2015 (DIA140).
Disabled unnecessary C4275 warning during Recoding.
2.2.12.0
Released: 2015-11-23
Fix for Recode failure if
Pause process immediately
is disabled in Recode Options.
2.2.11.0
Released: 2015-11-20
Allow Recoding explicitly extern const globals with initializers.
Allow Recoding explicitly extern globals declared in namespaces.
Recode now uses
/bigobj
by default to avoid failures with large source/unity files.Fix unity file splitting if UNIX style paths were passed to the compiler.
Improved debugger reliability while a Recode build is in progress.
Prevent debugger timeout when awaiting Recode completion for large source files.
Improve reliability of save all before Recode by retrying if it fails initially (VS bug).
Fix spurious warnings about CRT init and unnecessary delay if patch build fails.
VS2015: Fixed Recode of file static data within namespaces.
2.2.10.0
Released: 2015-11-09
Fix issue with boost auto_link.hpp by allowing some unguarded multiple includes.
Improved diagnostics for unity splitting.
Reduced warnings.
2.2.9.0
Released: 2015-11-02
Fix WOW64 DLL redirection for subdirectories under c:\windows\system32\.
Show Recode status panel on first edit during debug to improve usability.
Internal improvements and updates.
2.2.8.0
Released: 2015-10-26
Improved caching and cleaning of build data to improve performance.
Fixed issue with thread-local static members.
2.2.7.0 [RC6]
Released: 2015-10-19
VS2015: Support VS2015 static local and thread-safe init guard detection.
VS2015: Fixed issue leading to “LNK1101: incorrect MSPDB140.DLL version” error when linking patch.
VS2015: Skip modules linked using the /DEBUG:FASTLINK (unsupported due to DIA limitations).
VS2012: Added support for VS2012 Update 5 tool-chain.
Improved handling of merged symbols when only one of the merged symbols survives patching.
Improved static local variable preservation with multiple static locals in one function.
Fixed leak of temporary response files during patch compilation.
Fall-back to earlier DIA if Recoding VS2010 modules in VS2015 environment (bug in DIA140).
2.2.6.0 [RC5]
Released: 2015-09-04
Fixed failure to install VS2015 VSP if other VS versions were installed.
Improved logging for link diagnostics.
2.2.5.0 [RC4]
Released: 2015-08-27
Added support for targeted diagnostic logging.
Added timers.
2.2.4.0 [RC3]
Released: 2015-08-26
Disable /Gy (Function Level-Linking) & /Gw (Optimize Global Data) for patch generation.
Improved IO error logging.
Optimized logging.
2.2.3.0 [RC2]
Released: 2015-08-21
Added option to immediately pause process reducing CPU/IO contention during patch build.
Demoted error to warning where public symbol has no corresponding function/thunk symbol.
2.2.2.0 [RC1]
Released: 2015-08-19
Optimized macro handling giving 5%-15% reduction in typical Recode times.
Statistics log level added to give hierarchical performance timings and stats.
Fixed invalid warning due to incorrect size calculation of incomplete array types.
2.2.1.0 [Beta]
Released: 2015-08-14
Correctly pack 1-byte TLS variables in section layout.
Workaround stale TLS symbols (compiler bug) in PDB data that prevented Recode.
TLS section layout validation enabled to ensure reliability.
Ignore resource-only DLL’s when Recoding.
Detect compiler generated weak symbols, avoiding unnecessary warnings.
Improve reliability of Recoding small functions in non-incremental modules.
Unity file splitting success/failure logging clarified.
Improved Recode reliability of static locals when using native x64 compiler.
Preliminary VS2015 RTM support.
2.2.0.0 [Alpha]
Released: 2015-07-27
Incremental linking no longer required for Recoding.
Directly linked lib dependencies supported for Recode.
Use Library Dependency Inputs
no longer required.Improved reliability of patch injection when virtual address space is crowded.
Warning when patching currently executing functions.
Current installed version shown on update dialog.
2.1.6.0
Released: 2015-06-11
Fix for uninitialized string buffer that could cause random Recode failures.
Private key server support for enterprise license management.
Improved licensing UI.
2.1.5.0
Released: 2015-05-06
Fix for global variable initializers containing
#if
/#endif
directives.Fix for bug where Recode could incorrectly reuse the original obj file directory.
Fix to ensure clean up of Recode generated obj files once Recoding has completed.
Improved license key time remaining display.
2.1.4.0
Released: 2015-04-30
Recode now falls back on searching all in-process DLL modules when resolving imported symbols.
Fix for issue with DEFINE_CLSID & DEFINE_IID macros used by XAudio2.h.
Improved diagnostics if Recode updates are blocked by firewall rules.
Log performance improvements.
2.1.3.0
Released: 2015-04-02
Recode errors and warnings now appear in the Visual Studio
Error List
window.Reduced log spam from “warning: cannot preserve specializations” common in STL code.
Fixed a rare crash when handling static member specializations.
2.1.2.0
Released: 2015-03-26
Fix for failed Recode if source file is above compiler current directory.
2.1.1.0
Released: 2015-03-25
Fix for incomplete array static members required for Havok compatibility.
Fix for method local extern variables required for Havok compatibility.
2.1.0.0
Released: 2015-03-23
Unity file splitting reimplemented, falls back on compiling unity file if split fails.
Compilation fully parallelized without requiring original compilands built with /MP.
Improved static local patching when variables require one-time construction/initialization.
Force use of compiler tool-chain in environments where linker version differs from compiler version.
Improved diagnostics should Recode license key request fail.
Correctly handle defines assigned to string for code analysis.
Fixed warnings relating to MSVC version macros during code analysis.
Corrected value for __cplusplus define during code analysis (MSVC uses 199711L).
Fixed occasional crash during cancellation of Recode compilation.
2.0.18.0
Released: 2015-02-18
Fix: File static variables were not resolved if obj file name didn’t match the source file.
Fix: Recode options are now correctly inherited by the compiland/unity files.
Improved reliability for static members of class templates.
FastBuild compatibility improvements for parent directory relative includes.
Improved diagnostics in case no Recode compatible modules were discovered.
Better diagnostic hints provided when no file changes were found.
Find modification algorithm optimized.
2.0.17.0
Released: 2015-02-10
Fix: Support FastBuild distributed compilation.
2.0.16.0
Released: 2015-02-09
Improved support for preserving globals in anonymous namespaces.
Fix: Support FastBuild generated preprocessed unity files.
Fix: Support for VS2015 CTP5 x86 native tool-chain.
2.0.15.0
Released: 2015-02-05
Derive cl.exe path from compiland tool version info where possible.
Improve handling of template static members.
2.0.14.0
Released: 2015-02-02
Derive cl.exe path from compilands before falling back on linker directory.
Improved diagnostics for failure to resolve build environment variables.
2.0.13.0
Released: 2015-01-29
Improved support for distributed FastBuild builds.
Extended debug diagnostics support for rewrite issues.
Fix: Specialized template members using construction style initialization.
2.0.12.0
Released: 2015-01-22
Support FastBuild generated vcxproj files using <CustomBuild> items types.
Recode success/failure result now more explicit in the log output.
Fix: The cl.exe /analyze option would cause Recode to fail.
Fix: Remember existing installation when upgrading to preserve any customized path.
2.0.11.0
Released: 2015-01-15
Update dialog is now non-modal and minimizable. Taskbar used for download feedback.
Fix: VS could crash if two solutions with the same name were opened on different paths.
2.0.10.0
Released: 2015-01-13
Fix: Workaround for missing MFC DLL export CDockingManager::m_SDTheme.
Fix: Final inject could fail if base module candidate lacked symbols.
2.0.9.0
Released: 2015-01-13
Reduced log level for “constant with external linkage updated” from warning to note.
Fix: Duplicate DLL exported explicit class instantiations could cause error C2961.
2.0.8.0
Released: 2015-01-12
Improved support for DLL imported static members in specializations.
Diagnostics improved by clarifying output sections.
Fix: Static members could cause linking to fail across two or more compilands.
Fix: ATL CString specializations could break patch linking.
Fix: Ignorable non-incremental modules would cause patch inject to fail.
2.0.7.0
Released: 2015-01-08
Improved handling of specialized static members using previously unseen specializations.
Infer OS & CRT libs paths from known libs to improve patch linking reliability.
2.0.6.0
Released: 2014-12-19
Support for linking ordinal based DLL’s (such as MFC).
Dump linker output if error code is unexpected ie. LNK1104.
Ignore cl.exe /showIncludes option for patch compiles to avoid log spam.
Support for overqualified static data member declarations (seen in MFC).
Fix: Ignore #pragma comment(lib/linker, “”) directives to avoid link issues.
Fix: Implicitly exported out-of-line template methods could fail.
1.0.18.0
Released: 2014-08-12
Add support for VS2013 Update 3.
Fix: Stubbing TLS globals with call style initializers could fail.
1.0.17.0
Released: 2014-07-31
License management improvements.
Fix: Fixed Recoding of compound declare and define global pointers.
Fix: __declspec(dllexport) globals could fail to stub in rare cases.
1.0.16.0
Released: 2014-07-16
Improved PDB search algorithm for PDB files built outside the module output directory.
Licensing improvements to ensure Recode license keys are renewed promptly.
Fix: Prevent inline methods with static locals failing to Recode due to optimizations.
Fix: Allow /FI when it’s used to specify the PCH header via /Yu.
1.0.15.0
Released: 2014-06-27
Fix: Forced includes for PCH - Forced include (/FI) would fail with Create PCH (/Yc)
1.0.14.0
Released: 2014-06-26
New Update System - Update system improved with reminders and download verification.
New License System - Online key system implemented ready for online management system.
VS2013 Update 2 Support - New compiler offically supported for Update 2.
DLL exports - Improved support for DLL exported specializations.
Fix: Win SDK 7.x - Recode now compiles cleanly with the v110_xp toolchain on VS2012.
Fix: Address-of operators - Globals with custom unary operator& now Recode correctly.
Fix: Forced Includes - The cl.exe /FI option could fail with Recode enabled.
1.0.13.0
Replaced by 1.0.14.0.
1.0.12.0
Released: 2014-06-11
Improved lambda support - Templates specialized with lambdas are more reliable.
Lib auxiliary obj files - Improved support for Havok code setup.
DLL handling improved - DLL exporting of classes now supported.
Fix: Handling of __int64 - Static members specialized to __int64 could fail.
1.0.11.0
Released: 2014-05-26
Fix: Specialized typedefs - Typedefs in namespaces could cause Recode failures.
1.0.10.0
Released: 2014-05-15
Fix: Compile crash - Relative PCH #include paths could cause a Recode crash.
1.0.9.0
Released: 2014-05-14
Inject statistics - Number of functions updated per module is now logged.
PCH validation - PCH include must be on include path, this is now validated.
Improved Docs - Expanded troubleshooting and build settings documentation.
Fix: Static locals - Adding new static locals could prevent later Recodes.
Fix: Thread locals - TLS variables declared in a PCH now Recode correctly.
Fix: Explicit instantiations - Permit duplicate explicit class instantiations.
Fix: DLL export - Macro declared __declspec(dllexport) variables are supported.
Fix: VS2013 support - MSBuild 12 now used (if available), fixing VS2013 issues.
Fix: Solution parsing - Improved support for custom generated sln files.
1.0.8.0
Released: 2014-05-02
Native x64 MSVC support - Recode is officially compatible with the native x64 compiler.
/bigobj support - The MSVC /bigobj option allows for a .obj with more sections.
LNK4075 diagnostics - Improved diagnostics in case a /GL compiled .obj is detected.
Fix: Improved error handling - Reduced risk of parse failures & improved error reporting.
Fix: Extern class specializations - Extern template static members now Recode correctly.
1.0.7.0
Released: 2014-04-28
CRT DLLs Unnecessary - Recode no longer needs the CRT DLLs to run.
Compiler Dependencies - New diagnostics if compiler DLL dependencies are missing.
/MT not supported - Compile time error added to catch this issue earlier.
RecodeLocalInstallDir added - New .recode property for custom build systems.
Fix: Stale PCH files - PCH files were not cleaned in some cases, breaking compilation.
Fix: VS2013 support - VS2013 Recoding could fail if VS2010 was not installed.
Fix: Solution Parsing - Parsing fixed to better deal with edited sln files.
1.0.6.0
Released: 2014-04-22
Improved link diagnostics - Unknown extern globals diagnosed to identify obj & lib files.
Improved compile diagnostics - Skipped files not under base path (or excluded) diagnosed.
Thread local arrays - Recode now supports thread local arrays.
Improved MSVC compatibility - Improved __FUNCTION__ and __FUNCSIG__ handling.
Fix: Patch linking - Only link libs to patches if the libs were not built with Recode.
Fix: Anon enums - Static template members parameterized with anon enums are unsupported. Error diagnostic added.
Fix: License validation - Improved license string validation for invalid inputs.
1.0.5.0
Released: 2014-04-14
Fix: Licensing issue - Updated recode.lic could fail to install the Recode license.
1.0.4.0
Released: 2014-03-17
Error/warning coloration - Errors and warning logs are now colorized to increase visibility.
New licensing system - Licensing system rewritten to improve reliability for large install bases.
Fix: Recode notifications bring VS topmost - Ensures Recode Protect dialogs are not hidden.
Fix: Improved UI - Toggling Recode enabled for a single project only requires a single click now.
1.0.3.0
Released: 2014-02-25
Online documentation - Preliminary Recode help is now available online.
UI Improvements - Recode dialogs updated to be clearer and more descriptive.
External license file - To avoid rebuilds caused by updating *.recode files, a separate “recode.lic” file is now used.
Fix: Thread local static members - TLS static members could cause Recode failures.
Fix: Size of struct calculations - x86 structure sizes could be incorrectly calculated.
Fix: Demunch for members specialization - Static member specializations could be incorrectly skipped during demunch.
Fix: Recode Configuration opens immediately - Large solutions would cause delays in opening Recode Configuration.
1.0.2.0
Released: 2014-02-11
VS2013 support - VS2013 is now fully supported by Recode.
Linker override - Incremental linking enabled and linker optimizations disabled if Recoding. No need to change manually.
Larger patches - Recode now support patches up to 6MB in size allowing you to Recode hundreds of files in one patch.
Fix: Array support - Global array support rewritten. Templated and incomplete global arrays now work reliably.
Fix: __pragma support - Globals declared with __pragma in macros now Recode correctly.
Fix: Single file compile - Right-click compile for individual files now supports Recode.
Fix: Function pointers - Globals using function pointers would sometimes cause errors under x86.
Fix: Template enum params - Globals using enums as template params now Recode correctly.
Fix: Unloaded projects - Unloaded/unavailable projects will now be skipped with a warning.
Fix: Local extern arrays - Extern arrays declared in functions now Recode correctly.
Fix: PCH struct layouts - Structs defined in pre-compiled headers now correctly use MSVC layout rules.
Fix: Paths with spaces - Recode now works correctly with file and project paths containing spaces.
1.0.1.0
Released: 2014-01-28
Auto-protect - Auto-protects key functions to allow SEH recovery (C++ exception have to be disabled).
Improved Demunch - Extensive improvements for munch/unity/uber file support.
Improved diagnostics - Reduced noisy log messages and made it easier to find compile errors.
Crash reporter - Recode now generates a crash dump file in case of a fatal error.
Fix: MSVC header lookup rules - Recode now fully implements MSVC header lookup rules.
Fix: Define and use variables - Support for “struct Foo {} g_defineAndUse;” style globals.
Fix: Globals without initializers - Globals without explicit initializers would fail to Recode.
1.0.0.0
Released: 2013-12-09
Per-module Recode - Reduce compile times by enabling Recode only on your active projects via Configure Recode…
Full Settings UI - All common Recode settings can now be configured via Configure Recode…
Patch DLL renaming - Recode patch DLL(s) renamed and hidden to avoid issues with plugin systems trying to load them.
Recode user settings renamed to .recode.user - Any old .urecode files may now be deleted.
VS2012 Update 4 - Update 4 is now offically supported by Recode.
New Recode logo - Icons and images have all been updated to use the new logo.
Fix: Config names with whitespace - Recode now works with configuration names containing whitespace.
Fix: Improved MSVC compatibility - Follows MSVC conversion logic for null-pointers.