code-maat
dmd
code-maat | dmd | |
---|---|---|
7 | 146 | |
2,320 | 2,893 | |
- | 0.4% | |
3.1 | 9.9 | |
11 months ago | 2 days ago | |
Clojure | D | |
- | Boost Software License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
code-maat
-
Ask HN: Measurements of Code Quality?
Get a copy of "Your code as a crime scene", then check out two GitHub repos
https://github.com/adamtornhill/code-maat
https://github.com/smontanari/code-forensics
-
Code Red: The Business Impact of Code Quality
He also wrote Your Code as a Crime Scene and authored the open source tool, Code Maat. I've found both extremely useful in my current job where I took over a code base with immense technical debt.
https://github.com/adamtornhill/code-maat
-
Why I Write Dirty Code: Code Quality in Context
It's not as neat as that unfortunately. You use this to extract different data from the version control history: https://github.com/adamtornhill/code-maat
Then visualize it however. I have some d3 scripts that came with the book that I've modified and you can track down somewhere on github I'm pretty sure. I mostly use those for demoing it to devs unfamiliar with the techniques though, since it looks cool and is immediately obvious what it's for.
For serious use I dump it into sqlite and use a mix of different scripts and techniques to figure it out. It's been kind of a language playground for me over the years so is in a lot of different languages and is "learning code" in most of them. Cleaning them up and sharing is one of those "maybe some day" things though.
-
Find files which change together frequently
After searching a bit more, it seems like https://github.com/adamtornhill/code-maat is a great tool
- adamtornhill/code-maat: A command line tool to mine and analyze data from version-control systems
-
The #1 tip to familiarize with new JavaScript codebases
The tool code-complexity is closely coupled to JavaScript and TypeScript-based codebases. For other languages like Java, C#, Python, or PHP there are other tools, but one tool that is generic and works for most of the codebases is code-maat. It is a tool created by the author of the book mentioned in the chapter before.
-
Emacs as your code-compass: how stable is my code?
https://github.com/adamtornhill/code-maat#Usage
dmd
- D2 Playground
-
DMD Compiler as a Library: A Call to Arms
Here's the pipeline spitting out the same error as on my macbook did.
https://github.com/dlang/dmd/actions/runs/8023469412/job/219...
-
My favourite Git commit (2019)
Not completely on topic (if you read TFA) but my favorite Git commit is by compiler badass and HN frequenter, where he checks in an entire C compiler to the D language repo:
https://github.com/dlang/dmd/pull/12507
https://news.ycombinator.com/item?id=27102584
-
The C Bounded Model Checker: Criminally Underused
A new generated code alone is 4000 lines long [1]. The actual code added is just 2000 lines, and some are used to pay debts, I mean, to make a proper code generator (which can be alternatively written in a simpler scripting langauge). In any case it is never comparable to the entier C parser proper.
[1] https://github.com/dlang/dmd/pull/15307/files#diff-3677bcc89...
-
OpenD, a D language fork that is open to your contributions
D is completely opensource already (https://github.com/dlang/dmd). The "open" of OpenD is just ADR saying that OpenD will be more open to new language features than D has historically been.
-
The OpenD Programming Language (fork of D)
The reference compiler, DMD, is open source: https://github.com/dlang/dmd
But they don't accept just any Pull Request or features the community submits, understandably. There's a process called DIP for language improvements: https://github.com/dlang/DIPs/blob/master/DIPs/README.md
However, by some accounts, it's really hard to get anything through.
Given D already has so many feature, I find that to be a good thing , to be honest, by not everyone agrees, of course.
- Odin Programming Language
- D Programming Language
What are some alternatives?
code-complexity - Measure the churn/complexity ratio. Higher values mean hotspots where refactorings should happen.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
sloc - simple tool to count SLOC (source lines of code)
ldc - The LLVM-based D Compiler.
code-compass - A set of code analyses that assist you in tackling software complexity
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
temporal-coupling - Explores git repositories to find files that are commonly changed together
dextool - Suite of C/C++ tooling built on LLVM/Clang
Compiler
Odin - Odin Programming Language
code-forensics - A toolset for code analysis and report visualisation
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.