Ferramentas de AST
A tarefa AST Tools mantém todos os artefatos gerados: builder de AST, visitantes, traits como ContentEq e ContentHash, tipos TypeScript etc.
Arquivos gerados incluem:
crates/oxc_ast/src/generated/ast_builder.rscrates/oxc_ast/src/generated/visit.rscrates/oxc_ast/src/generated/visit_mut.rscrates/oxc_ast/src/generated/derive_content_eq.rscrates/oxc_ast/src/generated/derive_content_hash.rsnpm/oxc-types/src/generated/types.d.ts
Contexto
O tempo de compilação em Rust já é alto; gerar esse volume com procedural macros só piora.
Forçar geração no cargo build adia quem usa o projeto como dependência.
Builds cheios ou incrementais podem regredir muito.
RFC
Discussão na RFC: codegen AST related codes:
Requisitos
- Nada de
build.rspublicado para o usuário - Todo código gerado versionado em git
- Sem nightly obrigatório
- Tipos marcados
#[ast]no Rust são a fonte de verdade — parseamos e gravamos um schema - Evitar procedural macros pesadas na compilação
Fluxo
- alteração no repositório
- watch deteta
- parse de tipos
#[ast] - gravação do schema AST
- geração a partir do schema e escrita nos arquivos
Infraestrutura
Detalhes adicionais em breve.