Pular para o conteúdo

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.Sequence
using 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" }, " "))
end

Use 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.

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/.