revo – eine dynamische Sprache für die Freude am Programmieren
(github.com/if-not-nil)- Eine in Zig geschriebene dynamisch typisierte Sprache, die eine „everything is something“-Struktur übernimmt, bei der alles einen Wert zurückgibt
- Unterstützt ein nahtloses Nebenläufigkeitsmodell, bei dem blockierender Code allein durch Voranstellen von
spawnin nicht blockierenden Code umgewandelt wird - Mit dem Pipe-Operator (
|>) werden Werte fortlaufend transformiert, wobei mit_auf den unmittelbar vorherigen Wert verwiesen wird- Beispiel:
"hello" |> _:upper() |> _:sub(1, 2)
- Beispiel:
- Unterstützung für Pattern Matching und Result-Typen; Funktionen geben Werte in der Form
(:ok, value)/(:err, reason)zurück und werden anschließend mitmatchverzweigt verarbeitet - Integrierte First-Class-Tests, die nur dann kompiliert und ausgeführt werden, wenn das Flag
--testgesetzt ist; bietet einzelnetest- sowie gruppiertesuite-Blöcke - Bietet eine Embedding-API, mit der sich über
revo.hdirekt in C-Code einbetten lässterevo_vm_create,erevo_compile,erevo_run,erevo_evalusw.
- Integrierter LSP-Server revolt, der Diagnostic/Go-to-Definition/Hover/Referenzen/Symbole verarbeitet
- Wird standardmäßig mit Release-Builds gebündelt und mit
revo --lspgestartet
- Wird standardmäßig mit Release-Builds gebündelt und mit
- Stellt isocline als Standard-REPL-Backend bereit. Unterstützt mehrzeilige Eingabe/Tab-Vervollständigung/Verlaufssuche
- Die Windows-Version ist noch unvollständig: Asynchrones Backend und vollständiger Zeileneditor werden nicht unterstützt
- MIT-Lizenz
Noch keine Kommentare.