Skip to content

Releases: florianschanda/miss_hit

Release 0.9.14

18 Nov 14:34
Compare
Choose a tag to compare

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 and enforce_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

10 Nov 14:15
Compare
Choose a tag to compare

0.9.13

  • All tools can now run without parameters. By default we analyse the
    current directory, i.e. the default behaviour of mh_style is now
    the same as mh_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 through git, 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 have kdiff3 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 both a-5 and b-2,
    but the ticket mentioned in the report was only a and b.

  • 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

23 Sep 10:08
Compare
Choose a tag to compare

0.9.12

  • [CORRECTNESS] Fix lexing of 1./b. This was a critical bug that
    caused the expression to be incorrectly formatted as 1. / 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 and align_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

26 Aug 13:52
Compare
Choose a tag to compare

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

14 Aug 08:05
Compare
Choose a tag to compare

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 now miss_hit, and miss_hit
    is now miss_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

30 Jul 10:34
Compare
Choose a tag to compare

0.9.9

  • Minor fix for the case where an excluded_dir contains a broken config file.