Pitch: Tyrus - TypeScript syntax. Rust semantics.
Há 4 meses eu tive a curiosidade de criar a minha própria linguagem de programação.
Eu só queria que fosse escrita em Rust, compilada e meu objetivo era printar um Hello World no terminal. Consegui e fui tentando mais funcionalidades.
Eu não sabia nada sobre compiladores e fui conhecendo muitos conceitos novos como análise sintática, semântica, AST, ASan, LSan, UB, LLVM, IR, drop glue, double free, LSP e etc.
Hoje eu já sei uns 5%. Agora é corrigir os bugs que vão aparecer.
Então eu criei o Tyrus: TypeScript syntax. Rust semantics.
O que já está implementado:
- Lexer, parser e AST
- Type checker com inferência e generics
- Borrow checker com NLL
- Codegen LLVM
- REPL com JIT
- Funções assíncronas, async/await e gerenciamento de tarefas
- Arrays, tuplas, Map, Set e métodos de coleção
- Option/Result, comptime, defer/errdefer, pattern matching exaustivo e pipe operator
- Validator Decorations
- Testes automatizados e CLI para criar, verificar, compilar, executar e observar projetos
- LSP para VS Code, Neovim, Zed, Kate e IntelliJ/WebStorm
- Playground WASM
- Módulos nativos: fs, os, net, http, process, temporal, crypto, algorithm, archive, compress, db, encoding, stream, task e outros
Qual funcionalidade você implementaria na sua linguagem de programação?