O que mudou na rc.6
A Pop 0.1.0-rc.6 é uma candidata muito mais ampla que a rc.3. A superfície da linguagem continua estática e inspirada no Luau, mas a base utilizável agora alcança coleções, texto, bytes, tempo, arquivos, terminal, fatos da plataforma e rede.
Biblioteca Standard
Seção intitulada “Biblioteca Standard”A base reservada Pop.Standard agora inclui estas famílias voltadas ao usuário:
| Família | APIs representativas |
|---|---|
Pop.Sequence |
map, filter, take, drop, fold, collect, first, last, findOr, sort, reverse |
Pop.Math |
min, max, abs, sign, gcd, lcm, coprime, potência e divisão inteira verificadas |
Pop.Text e Pop.Unicode |
busca, fatias, trimming, substituição, divisão, junção, parsing de inteiros e inspeção de Rune |
Pop.Bytes |
views, Bytes.Buffer reutilizável, hex/base32/base64, bits, comparação e leituras/escritas endian |
Pop.Time |
datas, relógios, date-times civis, offsets, deadlines e relógios de teste determinísticos |
Pop.Net |
endereços, prefixos, TCP/UDP, DNS, streams Unix, transferências limitadas e fatos de rede |
Pop.File e Pop.Directory |
capacidades explícitas de host, leituras/escritas limitadas, texto e snapshots de diretório |
Pop.Terminal, Pop.Process, Pop.Platform |
controles de saída, executável/argumentos e fatos de sistema/arquitetura |
Pop.Random, Pop.Uri, Pop.Version, Pop.Locale, Pop.Mime, Pop.Guid, Pop.Csv, Pop.Path |
parsers tipados e valores determinísticos |
Esses são namespaces e funções tipados, não busca dinâmica de membros. Custo, alocação, capacidade e falhas fazem parte de cada contrato. Consulte o mapa da API Standard e os ponteiros para a fonte/baseline.
Iteração generalizada
Seção intitulada “Iteração generalizada”String agora é exatamente Iterable<Rune>:
namespace CountLetters
function main() local count = 0 for rune in "Pop 🫧" do if Unicode.isAsciiLetter(rune) then count += 1 end end print(count)endO loop decodifica cada escalar Unicode uma vez. Text.View continua sendo uma
view emprestada e não iterável nesta versão.
CLI e projetos
Seção intitulada “CLI e projetos”O driver agora separa os fluxos de arquivo e de manifesto para check, fix,
lint, format, build, documentation, run, test e benchmark, além
de new, initialize, ffi generate e do transpiler C experimental.
Comandos de manifesto usam --manifestPath bubble.toml; format também aceita
--check. Consulte a referência da linha de comando.
Packages resolvem grafos locais e bloqueados de Bubbles, compilam seleções de
biblioteca/binário/teste/benchmark, emitem documentação e metadados .poplib
e preservam Item → Module → Bubble → Package → Workspace.
Rede e HTTP
Seção intitulada “Rede e HTTP”TCP e UDP usam streams tipados, transferências limitadas de bytes, deadlines,
cancelamento e resultados explícitos. Pop.Http é um Package separado e
versionado para valores de requisição/resposta HTTP/1.1; ele não é incorporado
ao Bubble Standard reservado. O exemplo HTTP é um Bubble normal com dependência
em examples/httpServer/.
Limites
Seção intitulada “Limites”A rc.6 ainda é uma candidata. LLVM/nativo é o backend entregue ativamente. O interpretador MIR é uma ferramenta interna de conformidade, e o backend C é experimental e limitado por capacidades. Reflexão em runtime, valores dinâmicos, exceções capturáveis e I/O implícito de host continuam fora da linguagem.
