Fenner
Compilador

Recursos do compilador

A tabela de todos os recursos do fc e da linguagem tratados nestas páginas, com a página, o demo e o pacote em que cada um entrou.

Como usar esta página#

Cada linha liga um recurso à página que o explica, ao demo que o exercita (uma pasta numerada de programas comentados, com a saída real gravada) e ao pacote de melhorias em que ele entrou no fc, segundo as notas de versão do compilador (novidades.md). O padrão do compilador não muda: o que não é pedido por opção, diretiva ou sintaxe nova gera o mesmo código e as mesmas mensagens de antes.

Os pacotes, em ordem: 1º (feat), 2º (feat2), 3º (feat3), 8º (feat7 a feat8) e 9º (feat9). "Base" quer dizer que já existia antes dos pacotes.

A linguagem#

RecursoPáginaDemoPacote
deferdefer36, 401º
for..in com enumerador, downinfor..in e enumeradores39, 071º
uses A as B, uses A (T1, T2 as U)uses com apelido521º
Tuplas, desestruturação, T.0.1Tuplas411º (T.0.1 e comparação < no 3º)
Interpolação $'…' e formatosInterpolação13, 551º (formatos: 2º; g e datas: 3º)
case com guarda e padrões, case-expressãocase com guardas421º
Tipos soma choicechoice43, 302º (métodos e padrões aninhados: 3º)
Fenner.ResultResult e propagação441º
Propagação F()?Result e propagação449º
Closures e funções anônimasClosures em detalhe45, 38base (correções no 3º; noescape e FE1457 depois)
async/awaitasync e Fenner.Tasks46base
Fenner.Tasksasync e Fenner.Tasks462º
iterator function e yieldIteradores e corrotinas47Compiler\extras
Corrotinas TGeneratorIteradores e corrotinas48Compiler\extras
static_assert e constantes ampliadasstatic_assert491º
deprecated, experimentalMarcas de uso501º (experimental passou a aviso no 2º)
tip, todo, fc --todoMarcas de uso502º
{$config … fatal}Marcas de uso503º
Avisos opt-in e LintAvisos opt-in511º (cinco); depois ampliados
nameof(X)nameof348º
?., ??=, aritmética liftedAcesso condicional31, 198º
?, PEnum^, TEnum = … (tipo anulável)Nulos e exceções198º
R with (Campo: Valor), literal de recordwith de expressão298º
readonly, property initreadonly e init259º
Fatias A[1..3], A[^1]Fatias e concatenação159º
Concatenação de vetores A + BFatias e concatenação158º (feat8)
Argumentos nomeadosArgumentos nomeados11, 559º
Módulos que se citam (ciclos)Ciclos entre módulos532º (ciclo por declaração: 3º)
Identificadores UnicodeCiclos entre módulos532º
public region, forward, initializationRegiões e forward54base

O compilador e as ferramentas#

RecursoPáginaDemoPacote
[Test], Fenner.TestingTestes571º (fc test: 2º)
fc fmtFormatador591º (--width, --colon-space: 3º)
fc --doc e ///Documentação581º
fc --symbolssymbols e LSP1º
fc --lsp e a extensão do VS Codesymbols e LSP2º
--diag=plain|rich|jsonCódigos de diagnóstico1º
--diag-codes, --explainCódigos de diagnóstico2º (75 explicações: 3º)
-coverage, --sanitize=undefined, -reproducibleCobertura e sanitizadores2º
fc new|build|run|test|check|clean|doc|add, fenner.tomlProjetos2º
fc --server, fc --clientServidor de compilação2º
package e .fxdPackages na práticadesenho de 2026-08; formato v20

Onde achar mais#