diff --git a/README.md b/README.md index ba6f89ae22..8e8d42b05d 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![GitHub Action](https://img.shields.io/github/actions/workflow/status/raviqqe/melior/test.yaml?branch=main&style=flat-square)](https://github.com/raviqqe/melior/actions?query=workflow%3Atest) [![Crate](https://img.shields.io/crates/v/melior.svg?style=flat-square)](https://crates.io/crates/melior) +![API coverage](https://img.shields.io/badge/api%20coverage-36%25-blue.svg?style=flat-square) [![License](https://img.shields.io/github/license/raviqqe/melior.svg?style=flat-square)](LICENSE) The rustic MLIR bindings for Rust diff --git a/tools/api_completeness.sh b/tools/api_completeness.sh new file mode 100755 index 0000000000..0117d5e606 --- /dev/null +++ b/tools/api_completeness.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +cd $(dirname $0)/.. +cd melior + +count() { + grep -o '\(m\|M\)lir[A-Z][a-zA-Z0-9]*' | sort -u | wc -l +} + +implemented_count() { + cargo install cargo-expand + cargo expand | count +} + +upstream_count() { + cat $(find $(brew --prefix llvm)/include/mlir-c -type f) | count +} + +echo $(implemented_count) / $(upstream_count) | bc -l