È stata rilasciata la prima versione pubblica 0.1.0 della shell interattiva e interprete cross-platform di un linguaggio funzionale in stile F# Endo.
Il progetto è stato creato dall'autore e principale sviluppatore dell'emulatore terminale Contour in linguaggio C++ (standard C++23) e distribuito sotto licenza Apache 2.0.
In questa versione:
- Linguaggio
- di legame, che per impostazione predefinita sono immutabili quando si usa let, e mutabili quando si usa let mut;
- inferenza dei tipi (Hindley-Milner) — i tipi vengono controllati, ma raramente è necessario specificarli esplicitamente;
- pattern matching con condizioni, destrutturazione e pattern 'o';
- union discriminate, record e tipi integrati Option/Result;
- funzioni di currying, applicazione parziale e composizione di funzioni (>> , <<);
- espressioni lambda con sintassi di segnaposto (_ + 1, _.field);
- costrutti di lista con intervalli e filtri;
- calcolo 'pigro' e sequenze;
- ottimizzazione della ricorsione terminale;
- moduli e importazione.
- Strumenti di sviluppo
- Language Server Protocol — un server LSP completo ($ endo —lsp) con diagnostica, completamento automatico, suggerimenti al passaggio del mouse, navigazione alle definizioni, ricerca dei riferimenti, rinominazione, formattazione, token semantici, azioni sul codice, suggerimenti incorporati, Code Lens e molto altro;
- Debug Adapter Protocol — un server DAP completo ($ endo —dap) con supporto per punti di interruzione, esecuzione passo-passo, visualizzazione delle variabili, calcolo delle espressioni e disassemblaggio;
- estensione per VS Code — evidenziazione della sintassi, integrazione con LSP/DAP, frammenti di codice e debug senza configurazione aggiuntiva.
- Shell
- esecuzione di comandi compatibili con Bash: reindirizzamento, template, &&/||, gestione delle attività;
- comandi incorporati strutturati — ls, ps, jobs, git log, git status, docker ps — restituiscono registrazioni tipizzate con dati;
- pipeline doppie: |> per la composizione di funzioni, | per i processi;
- sostituzione di variabili/comandi/processi, espansione di parentesi graffe e tilde;
- più di 110 comandi e funzioni di linguaggio incorporati;
- esecuzione di script .endo con risoluzione dei moduli.
- Modalità ‘AI’-agent
- assistenza integrata in «IA», attivata tramite simbolo # in un campo di input vuoto;
- provider online supportati: Claude, OpenAI, compatibili con OpenAI (Ollama, vLLM, LM Studio) e Gemini;
- supporto per modelli locali nel formato GGUF del progetto llama.cpp;
- 18 strumenti integrati per la gestione di file, git, esecuzione di comandi e accesso a risorse web;
- streaming delle risposte in formato Markdown.
Fonte: linux.org.ru
