Changelog
Not in any release yet
-
New features
- Add pager for MDB commands which tend to have long output
- Experimental support for profiling metaprograms in MDB
- Experimental support for traversing the whole environment in MDB
- New MDB command:
finish - New MDB command:
break - MDB now shows DeducedTemplateArgumentSubstitution events, which helps you to debug expressions involving SFINAE.
- Support for displaying preprocessed code (
#msh pp) - Support for displaying the preprocessed version of the shell commands
(
#msh preprocessed echo) - Support for hiding C++ errors (
#msh show cpp_errors) - Support for disabling the evaluation of metaprograms
(
#msh metaprogram evaluation) - Add command to set the shell to preprocessor mode
(
#msh preprocessor mode) - Add command to set the shell to metaprogramming mode
(
#msh metaprogram mode) - Add command to display a comment in the shell (
#msh echo) - Add command to display macro definitions (
#msh macros) - Add command to display macro names (
#msh macro names)
-
Changes to existing behaviour
- File sections displayed by MDB now shows the source location of the instantiated template instead of the point of instantiation.
- Breaking change Compiler-dependent command line arguments (eg. -I, -D, etc) are accepted as compiler arguments only (after the --) and are not allowed as "normal" Metashell arguments.
- Breaking change
--clang <clang path>is not supported. To use a custom Clang, one has to use--engine clang -- <clang path> -std=c++0x -ftemplate-depth=256 -Wfatal-errors. On Windows the-fno-ms-compatibility -U_MSC_VERarguments also need to be added. - Breaking change Environment saving is enabled by default and can be
disabled by using
--disable_saving.
-
Documentation updates
- New "How to..." section about debugging SFINAE.
Version 2.1.0
-
New features
- Support different shell modes (plain, readline, JSON)
- Optional logging of what Metashell is doing in the background.
- New MDB command:
step out - New MDB command:
next, alias forstep over - New MDB command:
frame - MDB now can debug metaprograms which fail to compile
- MDB now prints the relevant sections of the source code for movement commands
- Significantly improved MDB performance for large metaprograms
- New command-line arguments:
--consolefor choosing shell mode--logfor enabling logging--nosplashfor disabling the splash at (sub)shell startup
-
Fixes
- Detect environment setup commands that are expanded from a macro call
-
Documentation updates
- New section about
step overin Getting started.
- New section about
Version 2.0.0
-
New features
- mdb, the template metaprogram debugger. (Andras Kucsma's contribution)
- Support for precompiled header usage. It is based on Marshall Clow's advice and is a major speed improvement.
- Pragmas controlling the shell
- More flexible environment management
- Environment stack (with
pushandpopoperations) for trying temporary definitions out - Environment reset to avoid restarting the shell
- Saving the environment in a file for code developed in the shell
- Environment stack (with
- Multi-line input in the shell
- New command-line arguments:
-Dfor defining macros-wfor suppressing warnings--no_precompiled_headersfor disabling precompiled header support--clangfor specifying which clang binary to use-ftemplate-depthfor specifying the maximum template depth--enable_savingfor enabling saving the environment in a file
-
Fixes
- The shell accepts the following on the command prompt:
- macro definitions
- empty command
- type alias definitions when
typedefis not the first token - comment
- constexpr function definition
- Don't store empty lines in history
- Store repeated commands only once in history
- The shell accepts the following on the command prompt:
Version 1.0.0
- First release