Fenner
Fenner

Object Pascal moderno, compilado para código nativo.

Uma linguagem de sintaxe Delphi com tipos que dizem a largura, cadeias que sabem a codificação, dinheiro exato e um compilador LLVM escrito nela mesma. E um RAD para desenhar os formulários.

Nativa via LLVM Auto-hospedada Windows 64 bits Genéricos · lambdas · async
hero.fxp
program Hero;

type
  TCustomer = class(TObject)
  public
    Name: UString;
    Credit: ?Currency64;      // pode não existir
  end class;

var
  C: TCustomer;
  Amount: Currency64;
  Big: Int256;
begin
  C := TCustomer.Create;
  C.Name := 'Ana';
  WriteLn(C.Name, ': ', C.Credit ?? 0);   // vazio vira 0

  Amount := 19.99;                        // moeda exata
  C.Credit := Amount;
  WriteLn(C.Name, ': ', C.Credit ?? 0);

  Big := 1_000_000_000_000_000_000;
  WriteLn(Big * Big * Big);   // Int256 nativo
end.
Saída
Ana: 0.0000
Ana: 19.9900
1000000000000000000000000000000000000000000000000000000

Uma linguagem que recusa cedo

A base é o Pascal que você conhece. O que a Fenner muda, muda para o compilador pegar no fc o que costumava virar defeito em produção.

Compile em segundos, rode em nativo

O fc lê o .fxp, gera LLVM IR e liga o executável com o lld embutido. Nada de máquina virtual, nada a instalar além do próprio fc.exe e da RTL.

  • Níveis -O0 a -O3: itere rápido, entregue otimizado.
  • Poda de código morto a partir do corpo principal, e devirtualização.
  • Depuração com -g: um .pdb com rotina, arquivo e linha.
  • Verificações opcionais de faixa e de transbordo, e exceções para erros de hardware.

Linha de comando →   Como o compilador funciona →

Escreva

Salve hello.fxp com um program e um begin..end..

Compile

fc hello.fxp e o Hello.exe sai ao lado do fonte.

Rode

Sem runtime a instalar: é um executável do Windows como outro qualquer.

O ecossistema

Da linguagem à janela na tela, tudo escrito em Fenner.

4096bits: a largura do maior inteiro nativo
4tipos de cadeia, cada um com a sua codificação
42classes na paleta de componentes do RAD
O0–O3níveis de otimização do compilador

Participe da comunidade

Tire dúvidas, conte o que está construindo e acompanhe as novidades da linguagem e do RAD no grupo do WhatsApp.

Apoie o projeto

A Fenner é desenvolvida de forma independente. Financie o desenvolvimento no Apoia.se ou faça uma doação avulsa via PIX.