Wywołania async i zasady przepływu są zapisane w kodzie aplikacji.
1async function release() {2 const output = await build()3 await test(output)4 if (!existsSync(output)) {5 throw new Error("artifact missing")6 }7}
Znajomy jak JavaScript i Python. Jawny tam, gdzie ma to znaczenie, jak Rust. Jeden czytelny język do skryptów, narzędzi i zadań.
build.orvi1task build -> Result<string, string> {2 let output = path.join([context.project_dir, "dist/app"])3 fs.create_dir_all("dist")?4 fs.write_text(output, "built by OrviScript")?5 return Ok(output)6}
orviscript task run buildJęzyk, nie zbiór przypadkowych skryptów
Zacznij od dziesięciu linii. Dodaj typy, gdy program urośnie. Zamień powtarzalne polecenia w zadania z zależnościami bez przechodzenia do osobnego systemu budowania.
Wywołania async i zasady przepływu są zapisane w kodzie aplikacji.
1async function release() {2 const output = await build()3 await test(output)4 if (!existsSync(output)) {5 throw new Error("artifact missing")6 }7}
Zależności i wyniki zadań są częścią języka.
1task release -> Result<void, string> {2 needs: [build, test]3 let output = task.result("build")?4 if !fs.exists(output) {5 return Err("artifact missing")6 }7 return Ok()8}
Prosty od początku
Używaj dynamicznych wartości do szybkich skryptów albo dodaj adnotacje typów. Błędy operacyjne wykorzystują Result<T, E> i operator ?, dzięki czemu nie znikają w kodach wyjścia.
Bloki i wyrażenia są naturalne dla osób znających JavaScript, Python lub Rust.
Zmienna może pozostać dynamiczna albo egzekwować typ, strukturę, Option lub Result.
defer i using wykonują cleanup także przy return, błędzie i propagacji ?.
Automatyzacja jest częścią języka
Zadeklaruj budowanie, testowanie lub wdrożenie w tym samym języku. OrviScript sprawdza graf zależności, zatrzymuje zależne zadania po błędzie i jawnie przekazuje wyniki.
Pomiar OrviScript 0.6.2
OrviScript wykonał zadanie w 115,9 ms. Na tej samej maszynie z Ryzen 9 9950X3D Node.js osiągnął 102,3 ms, a Python 384,8 ms w 30 próbach.
Zobacz wyniki i metodologięPełna pętla pracy
CLI, formatter, analiza semantyczna, serwer językowy i interpreter korzystają ze wspólnego parsera w Rust. Aktualne wydanie ma diagnostykę między plikami, podpowiedzi, definicje, referencje, rename i formatowanie.
Zobacz aktualne narzędzia$ orviscript check✓ sprawdzono 8 modułów$ orviscript test✓ 12 zaliczonych · 0 błędówDokąd zmierza język
Dziś OrviScript działa przez interpreter. Samodzielne bundlowanie, maszyna bytecode i eksperymentalna kompilacja natywna będą osobnymi ścieżkami wykonania. Interpreter pozostanie pełnoprawnym wyborem.
OrviScript jest open source, działa i nadal możesz wpłynąć na jego kierunek.