Skip to content

Latest commit

 

History

History
288 lines (213 loc) · 18.5 KB

CHANGELOG.md

File metadata and controls

288 lines (213 loc) · 18.5 KB

Changelog

[0.22.0] - 27 May 2024

[0.21.1] - 30 Jun 2023

[0.21.0] - 02 Jun 2023

[0.20.0] - 17 Jan 2023

🚨 Breaking change: Mull now exits with an error if mutants survive. Use --allow-surviving to preserve old behavior.

[0.19.0] - 28 Aug 2022

[0.18.0] - 05 May 2022

  • Fixed a phi-node miscompilation caused by cxx_logical_and_to_or and cxx_logical_or_to_and #994 #998
  • Improved diagnostics to track and workaround miscompilations #1000
  • All the changes

[0.17.1] - 17 Mar 2022

[0.17.0] - 09 Mar 2022

🚨 With this release, the mull-cxx tool is removed.

  • Fixed 'inconsistency in registered CommandLine options' when building against certain configs of LLVM #983
  • Removed mull-cxx #984
  • Simplified database schema for SQLite reporter #987
  • All the changes

[0.16.0] - 21 Feb 2022

  • Added a workaround to not miscompile functions that use variadic arguments #977 #978
  • Fixed an issue when mull-ir-frontend could not find Clang's headers (such as stdarg.h) #979
  • mull-runner uses code coverage automatically #971 #967
  • Added tutorials on CMake and Makefile integration #980
  • mull-ir-frontend and mull-runner share the config #972
  • Added more debugging facilities #975 #976
  • All the changes

[0.15.1] - 31 Jan 2022

  • Added a workaround to not miscompile functions that use "jump-tables" #963
  • Added module verification #964
  • Added more debugging facilities #962
  • Mull is using itself for testing #952
  • All the changes

[0.15.0] - 20 Jan 2022

🚨 With this release, the mull-cxx tool is deprecated and will be removed in the future.

Mull switches to the new model - compiler plugin called Mull IR Frontend. The tutorial showing how to use it was updated.

  • Introduce Mull IR Frontend #938
  • Introduce YAML-based configuration #934
  • Drop LLVM 7 #936
  • Drop LLVM 8 #942
  • Fix a bug in mull-runner with duplicated mutants from templates #940
  • Fix a bug with junk detection when the code is located in symlinked folders #943
  • All the changes

[0.14.0] - 20 Dec 2021

  • Mutants are now also extracted from dependent dynamic libraries #903 #931
  • Fixed linking by deferring object code lowering to external compiler instead of using (mostly) incorrect defaults #929
  • Added warning if number of workers specified exceeds available CPU cores (by Matthias Bilger) #928
  • Most of the Ubuntu packages now built against the official LLVM/Clang instead of precompiled ones #926
  • All the changes

[0.13.0] - 23 Nov 2021

This release happens solely due to m42e's efforts. Thank you, Matthias!

[0.12.0] - 23 Oct 2021

Important note: The mull package is now replaced with a separate package for each supported LLVM version, e.g. mull-8, mull-13, etc. The mull package won't be updated!

Important note: The binaries mull-cxx and mull-runner are now named after the corresponding LLVM version, e.g. mull-cxx-8, mull-runner-13, etc.

  • Publish mull-${LLVM_VERSION} package instead of mull package 904
  • Include LLVM version into the package/binary name 904
  • Added LLVM 13 support #905
  • All the changes

[0.11.2] - 26 Aug 2021

[0.11.1] - 04 Aug 2021

  • Switched to main instead of master for the main branch #892
  • Added LLVM 12 support #886
  • Dropped debug output from mull-runner #889
  • Fixed a bug leading to non-deterministic results #890 #891
  • All the changes

[0.11.0] - 13 Jun 2021

Important note: AST-based mutations are in the works, but not yet available in the pre-built packages.

  • Fixed a bug when mutants may be eliminated from the mutated program (by Yuta Saito) 863
  • Fixed a bug when test-program vs ./test-program changed Mull behavior 868
  • Fixed a multi-threading-related bug 865
  • Mull uses grep -E compatible regular expressions 850
  • Introduced mull-runner 854
  • Incremental mutation testing using git diff filter #833
  • Dropped the package size by ~3.5-4Mb 884
  • All the changes

[0.10.0] - 07 Mar 2021

Important note: Bintray is shutting down, so Mull moved to Cloudsmith!

  • Fixed bug with incorrect mutation of intrinsics (by Yuta Saito) #libirm/24
  • Fixed bug with losing calling conventions (by Yuta Saito) #834
  • Fixed bug with incorrect locations of mutants in the header files 837
  • Deduplicate mutants coming from inlined functions/templates #829
  • Add support for not covered mutants 831
  • All the changes

[0.9.0] - 07 Jan 2021

Important note: this release is a breaking change!

We decided to move away from JIT and because of that Mull's API has changed. Make sure you go though the first three tutorials to see the difference.

Actual changelog:

[0.8.0] - 14 Oct 2020

[0.7.0] - 24 Mar 2020

[0.6.1] - 14 Dec 2019

  • Moved LogicalAndToOr and LogicalOrToAnd to experimental group #638
  • IDEReporter now can also show killed mutants next to survived #640
  • Fixed an issue with the compilation database containing relative paths #637
  • Gained first proper integration tests #631
  • All the changes

[0.6.0] - 04 Dec 2019

  • Switched to libirm - generic library for LLVM mutations #566
  • Started building online documentation: https://mull.readthedocs.io
  • Introduce a more granular mutation operators: https://mull.readthedocs.io/en/latest/SupportedMutations.html
  • Fixed compilation database parsing issue #632 #629
  • Fixed gcc builds #630
  • Report warning when JIT cannot resolve undefined symbol #628
  • Added an option to whitelist mutants by paths (-include-path=...) #617
  • Added -dry-run options #616
  • Removed the old driver (mull-driver) #612
  • Added LLVM 9 support #609
  • Fixed a bug when even junk mutations were applied, resulting in a longer execution time #595
  • Sped up junk detection by an order of magnitude #582
  • All the changes

[0.5.0] - 28 Aug 2019

  • Print more info when original test fails #549
  • Reporting JSON to Mutation Testing Elements (initial support) #517, #507
  • Introduce -exclude-path option to filter mutations #553
  • Enable reporters configuration via -reporters option #555
  • Junk detection for the Scalar Value mutator #557
  • Junk detection for the Replace Assignment mutator #559
  • All the changes

[0.4.0] - 11 Aug 2019

  • Fixed the original value use-after-free issue #532, #536
  • Automated release process on macOS #537
  • Fix incorrect handling of the NSW/NUW flags #540
  • Bring back abandoned sandbox approach #541, #542
  • Add LLVM 9 support #544
  • Include build date into the version info #546
  • Include Ubuntu 18.04 into release process #547
  • All the changes

[0.3.0] - 02 Jun 2019

  • Add junk detection
    • AndOrReplacement #509
    • MathDiv #511
    • MathMul #511
    • ReplaceCall #512
  • Handle edge case for AND-OR mutator #501
  • Add better handling of edge cases when there is no debug information #519, #520, #524
  • Print more info when Junk Detector fails to parse a file #524
  • All the changes

[0.2.0] - 02 May 2019

  • Add FreeBSD Package #503
  • Switch back to PackageMaker on macOS #504
  • Add internal target to validate mutants #500
  • Lots of refactoring
  • All the changes

[0.1.0] - 02 Apr 2019

  • Initial Release

[0.0.0] - 16 Apr 2016

  • Initial commit