язык системного программирования, отдающий приоритет проверяемой корректности, детерминизму и производительности
Универсальный системный язык и производственный инструментарий с безопасной по умолчанию поверхностью безопасного языка, проверяемой корректностью, детерминированным выполнением и встроенной отладкой на основе воспроизведения первого шага.
fzy поставляет один производственный CLI, fz, как для рабочих процессов компилятора, так и для детерминированной валидации. Корректность, детерминизм, воспроизведение, артефакты инцидентов и производственные доказательства являются частью обычного рабочего процесса, а не второстепенной мыслью. Для быстрого визуального обзора языка откройте прилагаемый FZL showcase в браузере с помощью open fzl-showcase.html. Краткое обоснование, почему вы можете выбрать его, см. в WHYFZY.md.
Политика архитектуры репозитория типизирована внутри и JSON только на реальных границах.
INSTALL.mdUSAGE.mdWHYFZY.mdCODE.mddocs/production-workflow-v1.mddocs/gpu-v1.mddocs/system-safety-trust-model-v1.mddocs/unsafe-contract-authoring-v1.mddocs/language-stability-v1.mddocs/workspace-policy-v1.mddocs/operational-insights-v1.mdfzyllm: saint0x/fzyllmРекомендуемая установка:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh
Это устанавливает fz в ~/.local/bin, обновляет PATH при необходимости и проверяет установку с помощью fz version и fz env.
Запасной вариант из исходников:
curl -fsSL https://raw.githubusercontent.com/saint0x/fzy/main/install.sh | sh -s -- --from-source
Хотите самый быстрый обзор? Откройте fzl-showcase.html с помощью open fzl-showcase.html, просмотрите WHYFZY.md для аргументации продукта, затем используйте пример ниже как компактный исполняемый набросок.
use core.log;
use core.path;
use core.process;
use core.time;
enum Mode {
Fast,
Safe,
}
trait Scorer {
fn score(endpoint: Url) -> i32;
}
struct HttpScorer {}
impl Scorer for HttpScorer {
fn score(endpoint: Url) -> i32 {
discard endpoint;
return 7;
}
}
struct Config<TEndpoint> {
retries: i32,
endpoint: TEndpoint,
mode: Mode,
}
fn weight(mode: Mode) -> i32 {
match mode {
Mode::Fast => return 3,
Mode::Safe => return 1,
_ => return 1,
}
}
async fn boost(v: i32) -> i32 {
checkpoint()
return v + 1
}
fn normalize<T: Scorer>(cfg: Config<Url>) -> i32 {
return weight(cfg.mode) + T.score(cfg.endpoint)
}
async fn run_once(cfg: Config<Url>) -> i32 {
let base = normalize<HttpScorer>(cfg)
return await boost(base)
}
fn main() -> i32 {
let cfg = Config { retries: 4, endpoint: url.parse("https://example.test"), mode: Mode::Fast }
let now = time.now()
let out_path = path.join("tmp", "score.log")
let mode = process.argv_or(1, "showcase")
let score = normalize<HttpScorer>(cfg)
log.info("snippet.run", out_path)
discard mode
discard run_once
if score + now > 0 then return score
return score
}
Для более широкого охвата языка используйте CODE.md, examples/ и удобный для браузера FZL showcase.
Пакеты фреймворков следуют обычным правилам для пакетов: объявите их в fozzy.toml в разделе [deps], затем импортируйте их в исходном коде с помощью use fzbounds;, use fzweb; и аналогичных имен пакетов. Прямые проверки исходного кода, такие как fz check src/services/mod.fzy --json, теперь выполняются в контексте владеющего пакета, поэтому импорт зависимостей и модули-соседи ведут себя так же, как и в полных проверках проекта.
fz: CLI компилятора для сборки, запуска, тестирования, проверки, документации, IR, RPC, заголовков, проверок ABI и многого другогоfz fmt, fz doc gencrates/parser, crates/ast, crates/hir, crates/fircrates/verifiercrates/runtimecrates/drivertests/*.fozzy.jsonРеализовано и подтверждено на сегодня:
alloc(...) / free(...)defer времени выполнения как в обычном коде, так и в островках unsafe { ... }, поэтому детерминированная очистка обеспечивается принудительно, а не просто документируетсяalloc(...) / free(...) и проверками жизненного цикла, видимыми верификаторуfifo, random, coverage_guidedrpc_send, rpc_recv, rpc_deadline, rpc_canceltestmodpubext c fnfz rpc gencore.crypto и core.security, включая безопасный случайный, хеширование, HMAC, сравнение за постоянное время и URL-безопасные кодировкиfzweb для маршрутизации приложений, куки, сессий, многокомпонентных загрузок, персистентности, SSE, веб-сокетов и экспорта OpenAPIfz run выполняет нативный вывод напрямую с живой потоковой передачей текста или захватом JSONpython3 scripts/direct_memory_architecture_gate.pypython3 scripts/direct_memory_perf_gate.pycore.gpu, с живым выполнением Metal на Apple плюс общие контракты адаптеров spirv/nvptxfzy настроен на поддержку следующих производственных утверждений сегодня: