Sobre o projeto

Daslang (anteriormente daScript) é uma linguagem de programação de alto desempenho e tipagem estática, criada para jogos e aplicações em tempo real. Foi desenvolvida na Gaijin Entertainment para resolver a sobrecarga de interop entre linguagens de script e C++ em seu motor de jogos ECS, onde a serialização de dados consumia o orçamento de frames. O layout de dados do Daslang corresponde ao de C++, então as chamadas de script para C++ são descritas como de custo quase zero, sem serialização, boxing ou conversão. Os princípios centrais declarados no README incluem iteração rápida (um jogo completo em produção recompila em cerca de cinco segundos, com hot reload integrado), explicitude (sem conversões de tipo ocultas ou alocações silenciosas; uma flag `options log` mostra a saída do compilador), uma postura pragmática de segurança, `delete` manual para reduzir a pressão do GC, AOT para C++ para velocidade nativa e um sistema de macros em tempo de compilação que permite que bibliotecas remodelam a sintaxe para um domínio. Três níveis de execução são planejados: um interpretador rápido baseado em árvore, compilação AOT para C++ (necessária para consoles) e JIT via LLVM. Um modo híbrido usa hashing semântico para que funções inalteradas permaneçam AOT enquanto as alteradas voltam ao interpretador, permitindo correções rápidas sem reconstrução completa. A instalação é feita via git clone com atualização recursiva de submódulos. A compilação usa CMake com configuração Release e o alvo `daslang`. O uso AOT gera um stub C++ a partir de um arquivo `.das`, que é então compilado e vinculado ao aplicativo host. O uso JIT requer a biblioteca compartilhada LLVM 16.0.6 em um caminho fixo (`lib/LLVM.dll`) devido a ligações dinâmicas, após o que os scripts são executados com `-jit`. A incorporação em aplicações CMake é feita via `find_package(DAS)`, fornecendo os alvos `libDaScript` e `libDaScriptDyn`. Um gerenciador de pacotes integrado, daspkg, lida com instalação, atualização e compilação de pacotes daslang, incluindo módulos puros daslang e nativos C++, a partir de um índice ou URL git, com suporte a busca. Extensões VS Code fornecem realce de sintaxe e recursos de servidor de linguagem, como linting, depuração e snippets. Um servidor MCP expõe 29 ferramentas baseadas no compilador para assistentes de codificação de IA, cobrindo diagnósticos de compilação, inspeção de tipos, ir para definição, encontrar referências, dump de AST, geração AOT, avaliação de expressões, grep ciente de parse e gerenciamento de pacotes, usando transporte stdio sem dependências extras de build. Uma gramática tree-sitter analisa o código e suporta realce de sintaxe, busca ciente de parse via ast-grep e extensões de editor, incluindo uma extensão Zed. O projeto é licenciado sob BSD 3-Clause, com componentes de terceiros incluídos mantendo suas próprias licenças.