# MikePopoloski/slang

SystemVerilog compiler and language services

Repository: https://github.com/MikePopoloski/slang
Canonical: https://ross.abutalabs.com/products/mikepopoloski-slang
Language: C++
License: MIT
License Family: permissive
Topics: verilog, compiler, systemverilog, slang, parse, language-service
Last push: 2026-09-02T13:29:37+00:00

## Health v2 (maintenance only)
Score: 86/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 60, longevity 100
- inputs: {"age_days": 3498, "days_push": 0, "days_rel": 111, "gap_med": 109.0, "n_releases_24m": 7}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1127, forks 253 (observed 2026-09-03T02:15:06.684725+00:00)

## What it is
slang is a fast, highly compliant SystemVerilog frontend library providing lexing, parsing, type checking, and elaboration, plus a CLI tool for compiling and statically analyzing SystemVerilog projects. It is designed to be embedded as a frontend for synthesis, simulation, linting, and editor tooling, with Python bindings available.

## Use cases
- lint and syntax-check SystemVerilog code
- parse SystemVerilog into an AST and dump it as JSON
- build a SystemVerilog language server for code editors
- refactor or generate SystemVerilog source code
- use a SystemVerilog frontend for a synthesis or simulation tool
- introspect SystemVerilog designs from Python

## When to choose
- you need a fast, standards-compliant SystemVerilog parser or elaborator
- you're building EDA tooling like linters, editors, or synthesis frontends
- you need robust error recovery on incomplete or broken source code
- you want programmatic access to SystemVerilog ASTs via C++ or Python

## When to avoid
- you need a full synthesis or simulation engine - slang is only a frontend
- you're working with Verilog-1995 or other HDLs like VHDL
- you want a GUI IDE - slang provides a library and CLI, not an editor

## Facets
- artifact type: library
- maturity: active
- function: compiler, parser, linter, type-system, interpreter, developer-tools
- domain: hardware, developer-tools, parsers, programming-languages
- platform: windows, cpp, python, cli
- tags: systemverilog, verilog, hardware-description-language, language-services, ast, elaboration, python-bindings, eda, linux, macos

## Member repositories
- MikePopoloski/slang (main) score 86

## Provenance
- Observed fields: from GitHub, fetched 2026-09-03T02:15:06.684725+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:40:54.546201+00:00, confidence not recorded.
  - readme: https://github.com/MikePopoloski/slang (fetched 2026-09-03T02:15:06.684725+00:00, sha e5ab71d43284)
- Data as of 2026-08-30T08:39:29.467469+00:00.
