Fenner
Biblioteca

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 compiladorBedRock
OndeCompiler\rtlCommon\BedRock\rtl
Papela base mínima do compilador; é a que o fc acha sozinhoa biblioteca completa dos aplicativos e do RAD
TrazSystem, 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…
EscolhaConfig All RtlSource <pasta> (ou FC_RTL), padrão ..\rtl do fc.exeo 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óduloO que traz
Systemo núcleo: TObject, as quatro cadeias, vetores dinâmicos, inteiros largos, formatação, TStringStream, TMemoryStream, TFileStream, TUStringBuilder…
System.Remaindero 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.D2D1Direct2D
System.DB e System.DB.*acesso a dados: Firebird, PostgreSQL, MySQL e SQLite
System.Json, System.XmlJSON e XML
System.RegExpexpressões regulares (PCRE2, em UTF-16)
System.HashMD5, SHA-1, a família SHA-2 (com HMAC), Bob Jenkins, FNV-1a
System.Net.Http, System.Net.HttpServer, System.Net.Tlsrede: cliente HTTP, servidor mínimo de webhook e TLS de cliente
System.OpenSSL, System.Bio.Cipher.*, System.UnixCryptcriptografia
System.Compress.Zlib, System.SevenZipcompressã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/sufixoQuer 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
…Defcom 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.