# hirrolot/metalang99

Full-blown preprocessor metaprogramming

Repository: https://github.com/hirrolot/metalang99
Canonical: https://ross.abutalabs.com/products/metalang99
Homepage: https://metalang99.readthedocs.io/en/latest/
Language: C
License: MIT
License Family: permissive
Topics: c, c99, cpp, cpp11, programming-language, metaprogramming, macros, embedded-language, header-only, functional-programming, fp, functional-language, interpreter, language, metalang99
Last push: 2025-10-05T21:32:35+00:00

## Health v2 (maintenance only)
Score: 54/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 45, release rhythm 40, longevity 100
- inputs: {"age_days": 2175, "days_push": 332, "days_rel": 534, "gap_med": 0, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1082, forks 33 (observed 2026-08-28T04:03:30.902853+00:00)

## What it is
Metalang99 is a header-only C99 preprocessor metaprogramming library that implements a functional programming language atop of C preprocessor macros. It provides compile-time features such as recursion, algebraic data types, pattern matching, currying, and list manipulation, all evaluated at compile time.

## Use cases
- write preprocessor metaprograms in pure C99
- generate C code at compile time with macros
- implement macro recursion and pattern matching in C
- overload C macros on the number of arguments
- manipulate lists at compile time in C
- build type-safe macro libraries like Datatype99 and Interface99

## When to choose
- you need powerful compile-time code generation in plain C99 without external codegen tools
- you want a header-only, dependency-free metaprogramming foundation for C macro libraries
- you need macro overloading, recursion, or ADT-style metaprogramming in C

## When to avoid
- your team prefers readable, conventional C code over dense macro metaprogramming
- you need runtime metaprogramming or reflection rather than compile-time expansion
- compile times and macro error complexity are critical constraints for your project

## Facets
- artifact type: library
- maturity: active
- function: interpreter, programming-language, parser, developer-tools
- domain: programming-languages, developer-tools
- platform: c, cpp, cross-platform
- tags: preprocessor-metaprogramming, header-only, functional-programming, macros, c99, compile-time, embedded-language, algorithms

## Member repositories
- hirrolot/metalang99 (main) score 54

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:30.902853+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:51:15.527388+00:00, confidence not recorded.
  - readme: https://github.com/hirrolot/metalang99 (fetched 2026-08-28T04:03:30.902853+00:00, sha 3497a36e9e39)
- Data as of 2026-08-30T08:39:29.467469+00:00.
