Base Standard
Pop.Standard é a base portátil reservada. Bubbles normais recebem seu
contrato público verificado; não recebem internals do compilador nem um
namespace dinâmico em runtime.
O prelude inclui tipos escalares, Array<T>, Table<K, V>, protocolos de
iteração/resultado, print e operações de coleção conhecidas pelo compilador.
Os namespaces Standard fornecem APIs mais amplas: Pop.Sequence, Pop.Text,
Pop.Unicode, Pop.Bytes, Pop.Math, Pop.Time, Pop.Net, acesso explícito a
arquivos/diretórios e fatos de terminal/processo/plataforma. Veja o mapa da API
Standard.
using Pop.Sequenceusing Pop.Text
namespace FoundationExample
function main() local values: {Int} = { 2, 4, 6 } local doubled = map<<Int, {Int}, Int>>(values, function(value: Int): Int return value * 2 end) print(sum<<Iterator<Int>>(doubled)) print(join<<{String}>({ "Pop", "Standard" }, " "))endUse as assinaturas tipadas exatas do baseline verificado. Alocação, cópia,
safe points, traps, capacidades e cancelamento não ficam escondidos atrás de
objeto universal ou reflexão. Bytes.Buffer é armazenamento mutável próprio;
Bytes.View é um intervalo emprestado imutável; List<T> é uma coleção própria
crescente. Essas identidades não podem ser substituídas umas pelas outras.
Packages separados
Seção intitulada “Packages separados”Pop.Http, Pop.Data, Pop.Cli, Pop.Rpc, Pop.Syntax e Pop.Lsp são
Packages independentes e versionados. HTTP/1.1 pertence a Pop.Http e compõe
transportes de rede Standard; não entra silenciosamente no prelude.
As raízes e assinaturas públicas exatas ficam em
libraries/standard/bootstrap/api-baseline.tsv. As implementações e a
documentação XML ficam em crates/libraries/standard/pop/src/.
