Skip to content

Maddi, the Modification Analyzer for Duplication Detection and Immutability.

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

CodeLaser/maddi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

maddi

maddi stands for Modification Analyzer for Duplication Detection and Immutability. It is a re-implementation of e2immu, an open source project which started in 2020 but has now been archived.

maddi is and will remain open source. Please contact Bart Naudts at CodeLaser for any information.

Current status

maddi is still under development, and, as of October 2025, will receive plenty of attention with the goal of being production ready in 2026.

  • concepts: stable
  • parser, resolver: has been tested on a number of open source projects, and one closed source 3M lines of code project. Not without errors, but pretty robust.
  • modification analysis: has only been tested on one larger test set. Not ready for general use.
  • plugins: Maven and Gradle plugins should work but have not received any attention in the last half year, since maddi is mostly being run from CodeLaser's Refactor engine.

Road to Immutability

This distribution contains the AsciiDoc sources for the Road to Immutability, currently the only document detailing the concepts behind maddi.

Building

maddi can be built both with Gradle and Bazel:

  • the Maven plugin is, naturally, built with Maven
  • the Gradle plugin is, naturally, only built with Gradle
  • quite a few tests do not run in Bazel, because they expect to find class files in some relative location. This needs to be fixed at some point.
  • The Bazel build system has been added to test CodeLaser's Refactor input configuration construction system.

Building with Gradle

Run gradle test

Building with Bazel

Build all sub-projects with bazel build //....

Run individual project's tests with bazel test //maddi-graph:maddi-graph_test.


(C) Copyright Bart Naudts, 2020-2025.

About

Maddi, the Modification Analyzer for Duplication Detection and Immutability.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages