Visão geral
As duas RTLs, o mapa dos módulos da BedRock e as convenções de nomes.
A biblioteca-padrão de Fenner é escrita em Fenner e compilada junto com o seu programa. Ela vem em duas versões, e saber qual você usa evita surpresas.
As duas RTLs#
| RTL do compilador | BedRock | |
|---|---|---|
| Onde | Compiler\rtl | Common\BedRock\rtl |
| Papel | a base mínima do compilador; é a que o fc acha sozinho | a biblioteca completa dos aplicativos e do RAD |
| Traz | System, SysInit, classes, TTask e async/await, o módulo Meta, hash, XML, HTTP… | System, System.Remainder, a WCL, bancos de dados, JSON, HTTP/TLS, XML, compressão, expressões regulares… |
| Escolha | Config All RtlSource <pasta> (ou FC_RTL), padrão ..\rtl do fc.exe | o mesmo, apontando para a pasta da BedRock |
A BedRock também é distribuída como package: a Fenner.BedRock.dll, que os aplicativos compartilham.
O mapa da BedRock#
| Módulo | O que traz |
|---|---|
System | o núcleo: TObject, as quatro cadeias, vetores dinâmicos, inteiros largos, formatação, TStringStream, TMemoryStream, TFileStream, TUStringBuilder… |
System.Remainder | o grosso do ecossistema no estilo do Delphi que a WCL exige: TStringList, TList<T>, TDictionary<K,V>, TStringBuilder, TThread, TDirectory, TStopwatch, TDateTime, a API do Windows, COM… |
System.WCL e System.WCL.* | os componentes visuais, os estilos, o SynEdit e as árvores virtuais |
System.D2D1 | Direct2D |
System.DB e System.DB.* | acesso a dados: Firebird, PostgreSQL, MySQL e SQLite |
System.Json, System.Xml | JSON e XML |
System.RegExp | expressões regulares (PCRE2, em UTF-16) |
System.Hash | MD5, SHA-1, a família SHA-2 (com HMAC), Bob Jenkins, FNV-1a |
System.Net.Http, System.Net.HttpServer, System.Net.Tls | rede: cliente HTTP, servidor mínimo de webhook e TLS de cliente |
System.OpenSSL, System.Bio.Cipher.*, System.UnixCrypt | criptografia |
System.Compress.Zlib, System.SevenZip | compressão (gzip/zlib/deflate; LZMA e CRC) |
Convenções de nomes#
A linguagem não esconde a codificação do texto, e a biblioteca segue a mesma regra. Os nomes dizem o que entra e o que sai:
| Prefixo/sufixo | Quer dizer |
|---|---|
…ToUStr, UStr… | UString (UTF-16): o do dia a dia |
…ToLStr, LStr… | LString (bytes) |
…ToU8Str, U8Str… | U8String (UTF-8) |
UStrToInt32, UStrToInt64Def… | converte texto em inteiro; a versão Def aceita um valor padrão em vez de levantar exceção |
Try… | devolve Bool8 e entrega o resultado por out, sem exceção |
…Def | com valor padrão, sem exceção |
Não existe IntToStr: o compilador responde com as três opções (IntToLStr, IntToUStr, IntToU8Str).
O que usar de início#
Um programa de console só precisa de System, que entra sozinho. Um aplicativo de janelas usa System.Remainder e System.WCL. Um serviço que fala com banco de dados acrescenta System.DB e o driver. Veja as páginas seguintes.