Change Log

5.3.0.0

Released: 2023-11-31

  • Fixed rare issue with TLS static member instantiation preventing patch linking.

  • Correctly handle explicit specializations of TLS static members.

  • Prevent spurious warning stale TLS public symbol found for TLS.

  • Add support for MSVC variant of __builtin_assume_aligned intrinsic.

  • Add support for __is_assignable_no_precondition_check intrinsic.

  • Prevent ICE in C++20 mode with #pragma lib directives.

  • Enable char8_t support if /Zc:char8_t or C++20 (or above) specified.

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% or Documents 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.