Releases: florianschanda/miss_hit
Release 0.9.14
0.9.14
-
Support for projects.
This is a major new feature for all MISS_HIT tools, intended to make it
easier to analyse specific programs in large shared code repositories.
For example instead of having to do:$ mh_lint shared_lib_1 shared_lib_2 my_potato_app my_potato_lib
You can now instead simply do:
$ mh_lint --entry-point=PotatoApp
You can set up libraries and entrypoints and the dependencies
between them with new configuration directives.Currently the functionality is limited, however in the future this
will be the basis for all advanced static analysis; since it
provides the equivalent of path or matlabpath to the MISS_HIT tools. -
New documentation for the
common command-line interface, which is shared between all MISS_HIT tools (except for MH Diff). -
New switch for all tools
--input-encoding
(which is by default
cp1252). You can use this to request a different input encoding to
be used when reading files.Note: this is not applicable for Simulink models, since Simulink
models actually specify the input encoding to be used. -
MH Style has a new rule
unicode
and two new configuration options
enforce_encoding
andenforce_encoding_comments
to make sure
source files only contain ASCII characters.You can configure the encoding enforced using
enforce_encoding
to
e.g.iso8859_15
, if that is what you want instead; and you can
optionally allow comments and line continuations to contain
anything. -
Fixed bug in MH Metric HTML reports. When MH Metric was installed
via pip, the link to the assets and stylesheetds did not
resolve. This is now fixed.In addition the new
--portable-html
option for MH Metric will
hotlink to the assets from https://florianschanda.github.io/miss_hit
instead of trying to use the ones from the locally installed
MISS_HIT.
Release 0.9.13
0.9.13
-
All tools can now run without parameters. By default we analyse the
current directory, i.e. the default behaviour ofmh_style
is now
the same asmh_style .
-
MH Diff:
A new tool, that can be used to diff the code embedded
inside Simulink models. The best way to use it is throughgit
, for
example:git difftool HEAD^ -yx "mh_diff" Potato.slx
You can also provide the option
--kdiff3
to show a visual diff (on
systems that havekdiff3
installed). -
Config file directive no longer have to be separated by
newlines. While this is still encouraged for readability, it is no
longer an error to write a single directive over multiple lines or
multiple directives on the same line. -
Fix minor issue with
regex_tickets
where regular expressions with
brackets only matched what was inside the brackets. For example a
ticket regex with(a|b)-[0-9]
should match botha-5
andb-2
,
but the ticket mentioned in the report was onlya
andb
. -
Support hex and binary literals (e.g.
0x12s64
) from MATLAB
2019b. This resolves the one outstanding compatibility issue, and we
should now be compatible with up to and including MATLAB 2020b. -
MH Style now accepts a slightly wider form of copyright statements
(specifically you can now include the word 'by' before the legal
entity).
Release 0.9.12
0.9.12
-
[CORRECTNESS] Fix lexing of
1./b
. This was a critical bug that
caused the expression to be incorrectly formatted as1. / b
(i.e. using/
instead of./
).The main user-visible problem is that the style rule
operator_whitespace
could then re-write expressions and change
semantics of the re-written code. -
Fix parsing of
[,]
. This is a valid expression and is equivalent
to[]
. Previously a syntax error was issued. -
Fix parsing of
[;;1]
and similar expressions where leading or
trailing semicolons or newlines were present in a matrix or
cell. Previously a syntax error was issued. -
MH Style has a New rule
spurious_row_semicolon
which removes
useless semicolons from matrix or cell expressions. -
MH Style now aligns any continuations in a more sensible way if the
expression is inside brackets. This works for normal brackets, but
also matrix and cell expressions:potato = [1 0 0 1]; kitten = foo(bar, ... baz);
There are two new configuration options to control this behaviour:
align_round_brackets
andalign_other_brackets
for(
and[{
respectively. -
New configuration option
regex_tickets
which can be used to
identify which text strings are tickets in your particular issue
tracking system. This information is used by MH Metric to produce a
report on all tickets referenced in justifications. -
MH BMC:
Started work on an experimental tool for bounded model
checking. This tool is not usable for anything yet, but is intended
as a proof-of-concept. -
Also provide the
--html
option for MH Lint. -
New
--json
option for MH Style and MH Lint to produce message
using JSON. In the future the--html
option from MH Style and MH
Lint will disappear and be replaced by a small set of tools that
render JSON messages in plain text, HTML, or post mesages as gerrit
review comments. The exact schema of this JSON file is not stable
yet.
Release 0.9.11
0.9.11
-
MH Lint now contains the three lint-like messages that were part of
MH Style previously (block comments, relation chaining, and builtin
redefinition). MH Style no longer issues these messages.Note that MH Lint currently operators on a file-by-file basis like,
just like the other MISS_HIT tools. However this will definitely
change in the future, as we move to a "per project" analysis for the
linter. But for now MH Lint can be use just like the other tools. -
The configuration directive "style rule" for "builtin_redefinition"
is now a lint rule; while this change is not documented yet properly
it will mean existing configuration files continue to work. I have
not yet decided how lint rules will be configurable, but it is
likely they will share a namespace with the style rules. -
Added documentation for lint checks, explaining the meaning of
"low", "medium", and "high" checks. -
Added GitHub and Travis CI templates to the documentation. Thank you Remi Gau for your contribution.
-
MH Style now correctly vertically aligns annotations. One-line
annotation blocks were always OK, but multi-line annotations were
considered continuations (and thus indented in an unnatural way). -
MH Style has a new rule "spurious_row_comma" which complains about
trailing or starting commas in matrix and cell expressions (for
example:[,1,2,]
) -
MH Style has a new rule "whitespace_semicolon" which does the same
as "whitespace_comma", but for semicolons; this means one-line
matrix expressions are now nicely formatted. -
MH Style should now only print
[fixed]
for problems that really
are fixed. Specifically in files that contain parse errors, we now
no longer pretend the problems are fixed. -
Fixed an issue for all MISS_HIT tools where any issue in embedded
MATLAB code could be reported multiple times.
Release 0.9.10
0.9.10
-
Fixed another Windows multi-threading issue.
-
Reverted new behaviour to consider all directories containing
.git
as a project root. It is useful, but until it can be configured
(#156) it can
be really disruptive. -
MH Metric can now produce reports in JSON using the new
--json
option. -
Rename packages (
miss_hit_agpl
is nowmiss_hit
, andmiss_hit
is nowmiss_hit_core
). It's likely this is not the last renaming,
sorry. I can only promise that it will be stable after 1.0 is
released.
Release 0.9.9
0.9.9
- Minor fix for the case where an
excluded_dir
contains a broken config file.