Announcing Coderrect Scanner v1.0.0

March 3rd 2021 marks the first official release of the Coderrect Scanner. After over a year of developing a prototype and adding support for various features, the Coderrect Scanner has reached version 1.

The release of Coderrect Scanner v1 is one of the biggest releases so far. In addition to the usual core algorithm and detection improvements that come with each release, version 1 also comes with a complete overhaul of the report UI and a ton of new convenience features that make the scanner easier to use.

There are too many changes to cover them all in detail, like our new Github Action (see the Release Notes for the full list) so this post will focus on some of the more exciting updates to the report UI.

New Design

The report has been completely overhauled in both look and functionality. The new Index page lists a quick summary of all the targets that have been scanned for the current project. Clicking on any individual target shows the full race report for that target.

Diff View

One of the most exciting new features in the report is the diff view. This view allows you to choose between viewing all detected races, or only new races. New races are races that were detected in the newest commit, but not the previous commit.

This feature allows you to quickly see if there have been any new races added since a previous version. The screenshot above shows that the Coderrect Scanner detected 14 races in version 6.2.1 of redis that were not present in version 6.2.0.

Filtering Races

The new report also adds a variety of new options for filtering races.

Hovering the mouse over any line of code displayed in the report brings up on option to filter the race, as shown above. Clicking brings up a menu that allows you to decide how to filter the race.

Races can be filtered by variable name, source file, variable type, or by any combination. After selecting one or more options and clicking save, any races matching the added criteria will be hidden from the current report.

Filtering races is only a temporary UI change. If you just want to get a quick idea of what kind of races are being reported or filter races you have already reviewed, this is a perfect way to remove those race from the UI without worrying about hiding any future races.

However, if you you do want the scanner to filter races permanently because either you are confident there will never be a race on a certain variable or you don’t care about races in a certain file, the filter can be made permanent by updating Coderrect Scanner’s json config file. Manually updating the json can be a little tricky, so the report UI offers a way to automatically generate the correct json configuration based any filters set via the report UI.

The “Create a Filter List” button at the top of the report automatically generates the correct json. Simply paste this into a file named coderrect.json in the same directory that you run coderrect from and the filter will be made permanent. If at a later date you want to remove the filter, simply delete this json configuration.

These are just a few of the highlights of the new features included in release v1.0.0. Checkout the newest changes by heading over to the download page and trying out v1.0.0.

Leave a Reply