Održano je prvo javno izdanje 0.1.0 multiplatformske interaktivne komandne ljuske i interpretera funkcionalnog jezika u stilu F#. Endo.
Projekt je stvorio autor i glavni programer emulatora terminala. Contour napisanog u C++ (standard C++23) i distribuira se licencom Apache 2.0.
U ovom izdanju:
- Jezik
- vezivanja, koja su prema zadanim postavkama nepromjenjiva kada se koristi let, a promjenjiva kada se koristi let mut;
- izlaz tipova (Hindley-Milner) — tipovi se provjeravaju, ali ih rijetko treba izričito navesti;
- uskladjenje obrazaca s uvjetima, destrukturiranje i obrasci 'ili';
- diskriminirane unije, zapisi i ugrađeni tipovi Option/Result;
- funkcije-kvari, parcijalna primjena i kompozicija funkcija (>>, <<);
- lambda izrazi s oznakom rezerviranih mjesta (_ + 1, _.field);
- lista konstrukcija s rasponom i filtrima;
- lenje izračunavanje i sekvenciranje;
- optimizacija krajnje rekurzije;
- moduli i uvoz.
- Razvojni alati
- Language Server Protocol — funkcionalni LSP server ($ endo —lsp) s dijagnostikom, automatskim dovršavanjem, savjetima pri prelasku mišem, prijelazom na definiciju, pretragom referenci, preimenovanjem, formatiranjem, semantičkim tokenima, akcijama na kodu, ugrađenim savjetima, Code Lens i mnogim drugim;
- Debug Adapter Protocol — funkcionalni DAP server ($ endo —dap) koji podržava točke prekida, korak po korak izvršavanje, pregled varijabli, izračunavanje izraza i disasembler;
- proširenje za VS Code — isticanje sintakse, integracija s LSP/DAP, isječki koda i debagiranje bez dodatnog podešavanja.
- Ljuska
- izvršavanje komandi kompatibilnih s Bash: preusmjeravanje, obrasci, &&/||, upravljanje zadacima;
- strukturalne ugrađene komande — ls, ps, jobs, git log, git status, docker ps — vraćaju tipizirane zapise s podacima;
- dvostruki cjevovodi: |> za kompoziciju funkcija, | za procese;
- ubacivanje varijabli/komandi/procesa, ekspanzija vitičastih zagrada i tildanja;
- više od 110 ugrađenih komandi i funkcija jezika;
- izvršavanje skripti .endo s odobrenjem modula.
- Način 'AI' agenta
- ugrađena 'AI' pomoć koja se pokreće simbolom # u praznom polju za unos;
- podržani online pružatelji: Claude, OpenAI, OpenAI-kompatibilni (Ollama, vLLM, LM Studio) i Gemini;
- podrška za lokalne modele u GGUF formatu projekta llama.cpp;
- 18 ugrađenih alata za rad s datotekama, git, izvršavanje naredbi i pristup web-resursima;
- streaming odgovora u Markdown formatu.
Izvor: linux.org.ru
