Foi lançado o primeiro lançamento público 0.1.0 de uma shell interativa multiplataforma e interpretador de uma linguagem funcional no estilo F# Endo.
O projeto foi criado pelo autor e principal desenvolvedor do emulador de terminal Contour na linguagem C++ (padrão C++23) e é distribuído sob a licença Apache 2.0.
Nesta versão:
- Linguagem
- vinculações, que por padrão são imutáveis ao usar let, e mutáveis ao usar let mut;
- inferência de tipos (Hindley-Milner) — tipos são verificados, mas raramente precisam ser especificados explicitamente;
- desempacotamento de padrões com condições, destruição e padrões "ou";
- uniões discriminadas, registros e tipos embutidos Option/Result;
- funções curry, aplicação parcial e composição de funções (>> , <<);
- expressões lambda com sintaxe de marcadores (_ + 1, _.field);
- estruturas de listas com intervalos e filtros;
- "cálculos" preguiçosos e sequências;
- otimização de recursão de cauda;
- módulos e importação.
- Ferramentas de desenvolvimento
- Language Server Protocol — servidor LSP de funcionalidade completa ($ endo —lsp) com diagnóstico, autocompletar, dicas ao passar o cursor, ir para definição, busca de referências, renomear, formatação, tokens semânticos, ações de código, dicas embutidas, Code Lens e muito mais;
- Debug Adapter Protocol — servidor DAP de funcionalidade completa ($ endo —dap) com suporte a pontos de interrupção, execução passo a passo, visualização de variáveis, avaliação de expressões e descompilação;
- extensão para VS Code — destaque de sintaxe, integração com LSP/DAP, trechos de código e depuração sem configuração adicional.
- Shell
- execução de comandos compatível com Bash: redirecionamento, padrões, &&/||, gerenciamento de tarefas;
- comandos embutidos estruturados — ls, ps, jobs, git log, git status, docker ps — retornam registros tipados com dados;
- pipeline duplos: | para composição de funções, | para processos;
- substituição de variáveis/comandos/processos, expansão de chaves e til;
- mais de 110 comandos e funções embutidas da linguagem;
- execução de scripts .endo com resolução de módulos.
- Modo de agente "IA"
- ajuda embutida de "IA", ativada pelo símbolo # em um campo de entrada em branco;
- provedores online suportados: Claude, OpenAI, compatíveis com OpenAI (Ollama, vLLM, LM Studio) e Gemini;
- suporte a modelos locais no formato GGUF do projeto llama.cpp;
- 18 ferramentas integradas para trabalhar com arquivos, git, executar comandos e acessar recursos da web;
- transmissão de respostas no formato Markdown.
Fonte: linux.org.ru
