Skip to content

Standard foundation

Pop.Standard is the reserved portable foundation. Normal Bubbles receive its verified public contract; they do not import compiler internals or receive a dynamic runtime namespace.

The prelude includes scalar types, Array<T>, Table<K, V>, iteration/result protocols, print, and the checked compiler-known collection operations. The standard-tier namespaces provide the broader APIs described in the Standard API map: Pop.Sequence, Pop.Text, Pop.Unicode, Pop.Bytes, Pop.Math, Pop.Time, Pop.Net, explicit file/directory access, terminal/process/platform facts, and typed value helpers.

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 exact typed signatures from the checked API baseline. Allocation, copying, safe points, traps, capability requirements, and cancellation are not hidden behind a universal object or reflection API. Bytes.Buffer is mutable owned storage; Bytes.View is an immutable borrowed range; List<T> is a growable owned collection. These identities must not be substituted for one another.

Pop.Http, Pop.Data, Pop.Cli, Pop.Rpc, Pop.Syntax, and Pop.Lsp are independently versioned Packages. HTTP/1.1 belongs to Pop.Http and composes Standard network transports; it is not silently part of the prelude.

The exact public roots and signatures are maintained in libraries/standard/bootstrap/api-baseline.tsv. Source implementations and checked XML documentation live under crates/libraries/standard/pop/src/.