Skip to content

Babashka & Clojure

Инструменты на Clojure для автоматизации и валидации в экосистеме Rule-ROM.

Настройка

Инструменты на основе Clojure для автоматизации задач в экосистеме Rule-ROM.

Требования

  • Java 11+ (для Babashka)
  • Babashka (scripting Clojure без JVM)

Установка

Windows (через Scoop)

scoop install babashka

Linux

curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | sudo bash

macOS (через Homebrew)

brew install babashka

Проверка установки

bb --version

Использование в Rule-ROM

Запуск Enforcer

# Генерация AST
clang -Xclang -ast-dump=json -fsyntax-only test.c > ast.json

# Валидация
bb -m garden.enforcer ast.json

Запуск Echo (генерация отчётов)

bb -m garden.echo ast.json

Пример EDN-контракта

{:intent :safe-free
 :entities [:ptr]
 :must-set-null true
 :description "После free() указатель должен быть установлен в NULL"}

Пример garden-тегов в C

// [[garden:intent(safe-free)]]
void cleanup(void* ptr) {
    free(ptr);
    ptr = NULL;
}
// [[/garden:intent]]

Ресурсы

Ресурс Описание
Babashka Docs Официальная документация
Clojure EDN Спецификация EDN
Garden-Core Исходный код движка

Ссылки


Bake the Future. Build the Substrate. 🛠️⚡️