English {#english}
Changelog 2026: A Year of Sprints
Series — Part 2: Previous: Teaching Pascal in 2026 with CrabPascal (059-teaching-pascal-with-crabpascal). Sources: essentials/changelog, roadmap/sprints-overview, releases/release-v2-22-0.
2026 transformed CrabPascal from a capable interpreter into a governed, sprint-tagged compiler approaching Delphi parity in measured steps. This year-end review walks the changelog — not every micro-commit, but the release arc that defined the project. Current binary: v2.22.0 per essentials/project-status.
January–May: Foundation before the sprint wave
Early 2026 consolidated v2.x internals: runtime heap, VMT, preprocessor FPC alignment, VS Code integration docs. Blog Part 1 (posts 001–031) covered fundamentals for Dev.to readers joining mid-year.
The sprint convention — one sprint, one version, one review — formalized in roadmap/sprints-overview, setting up the release train starting v2.9.9.
Sprint releases (2026 arc)
| Sprint | Version | Headline |
|---|---|---|
| 1 | v2.9.9 | Real diagnostic spans in check
|
| 2 | v2.10.0 |
System.* namespace resolution |
| 3 | v2.11.0 |
System.Classes minimum surface |
| 4 | v2.12.0 | Exception handling in runtime |
| 5 | v2.13.0 | Delphi string helpers (pascal_*) |
| 6 | v2.14.0 | OO properties |
| 7 | v2.15.0 | Generics.Collections + var params |
| 8 | v2.16.0 | Unicode UTF-16 groundwork |
| 9 | v2.17.0 | Run/build parity initiative |
| 10 | v2.18.0 | String semantics in C codegen |
| 11 | v2.19.0 | Parser hardening |
| 12 | v2.20.0 | Method-based properties |
| 13 | v2.21.0 | Honest build (no fake exceptions) |
| 14 | v2.22.0 |
System.IOUtils, dotted unit names |
Each row has a matching sprint-N-review.md and release-v2-XX-0.md in Mintlify — blog Part 2 posts 041–048 narrated several of these.
Themes across the year
Diagnostics you can trust
Sprint 1 replaced placeholder 1:1 errors with file/line/column spans. IDE integration still catching up (Rafael audit TD-IDE-001), but CLI check became classroom-ready.
RTL as product surface
Sprints 2, 3, 7, and 14 expanded rtl/sys/ — the layer Delphi developers feel first. IOUtils in v2.22.0 unblocks file-centric Horse modules.
Honest dual-mode
Sprints 9–13 attacked the dangerous gap where run succeeded and build-exe lied. v2.21.0 refuses exception codegen instead of emitting fake C — a philosophy win documented in blog post 024.
Parser maturity
Sprint 11 closed enum/multi-field/inherited class of bugs reminiscent of v2.8.3 hotfixes — now with regression tests in parser_hardening.rs.
v2.22.0 — Current state of the art
releases/release-v2-22-0 highlights:
- Minimal
System.IOUtilsRTL - Parser:
unit System.Xdotted names - Semantic resolver finds
System.*via RTL files
Still open per audits: full Unicode IO, property codegen parity, IDE Problems panel, Horse CI harness offline mode.
Technical debt transparency
Posts 049–054 translated technical-debt/audit-overview into Dev.to narrative. The changelog shows what shipped; audits show what remains — together they replace marketing fog.
Metrics that matter (qualitative)
-
Examples:
examples/crudremains flagship; new e2e fixtures added in sprints - Tests: parity gates when GCC present; Marina audit drives build coverage
- Docs: Mintlify reorganization (posts 032–033) mapped to live paths
- Community: 61 bilingual blog posts staged — education + ops + audits
Looking at the full changelog
essentials/changelog spans v1.0 through v2.22.0 — thousands of lines. For daily work, prefer:
-
essentials/project-status— consolidated snapshot - Latest sprint review for your version
-
technical-debt/backlog— open TD-IDs
Contributor reflection
If you merged a PR in 2026, you likely tied it to a sprint acceptance bullet. That discipline is the year's legacy — compiler construction as sequence of shippable wins, not a mythical v3.
Takeaway
2026 was the year CrabPascal learned to release honestly. From v2.9.9 diagnostics to v2.22.0 IOUtils, each tag tells a story in Mintlify. Read the changelog when debugging version skew; read sprint reviews when planning upgrades.
Final post in series: Docs, Blog, and 2027 (061-year-end-docs-blog-2027).
Português {#portugus}
Changelog 2026: um ano de sprints
Série — Parte 2: Anterior: Ensinando Pascal em 2026 (059-teaching-pascal-with-crabpascal). Fontes: essentials/changelog, roadmap/sprints-overview, releases/release-v2-22-0.
2026 transformou CrabPascal de interpretador capaz em compilador governado com tags sprint aproximando paridade Delphi em passos medidos. Este review de fim de ano percorre o changelog — não cada micro-commit, mas o arco de releases que definiu o projeto. Binário atual: v2.22.0 segundo essentials/project-status.
Janeiro–Maio: fundação antes da onda sprint
Início de 2026 consolidou internals v2.x: heap runtime, VMT, alinhamento preprocessor FPC, docs integração VS Code. Blog Parte 1 (posts 001–031) cobriu fundamentos para leitores Dev.to entrando mid-year.
A convenção sprint — um sprint, uma versão, um review — formalizou em roadmap/sprints-overview, preparando trem de releases a partir de v2.9.9.
Releases sprint (arco 2026)
| Sprint | Versão | Manchete |
|---|---|---|
| 1 | v2.9.9 | Spans de diagnóstico reais no check
|
| 2 | v2.10.0 | Resolução namespace System.*
|
| 3 | v2.11.0 | Surface mínima System.Classes
|
| 4 | v2.12.0 | Tratamento de exceptions no runtime |
| 5 | v2.13.0 | Helpers string Delphi (pascal_*) |
| 6 | v2.14.0 | Properties OO |
| 7 | v2.15.0 | Generics.Collections + params var
|
| 8 | v2.16.0 | Base Unicode UTF-16 |
| 9 | v2.17.0 | Iniciativa paridade run/build |
| 10 | v2.18.0 | Semântica string no codegen C |
| 11 | v2.19.0 | Parser hardening |
| 12 | v2.20.0 | Properties por método |
| 13 | v2.21.0 | Build honesto (sem exceptions falsas) |
| 14 | v2.22.0 |
System.IOUtils, unit names com ponto |
Cada linha tem sprint-N-review.md e release-v2-XX-0.md correspondentes no Mintlify — posts 041–048 da Parte 2 blog narraram vários.
Temas ao longo do ano
Diagnósticos confiáveis
Sprint 1 substituiu erros placeholder 1:1 por spans arquivo/linha/coluna. Integração IDE ainda alcançando (auditoria Rafael TD-IDE-001), mas check CLI ficou pronto para sala de aula.
RTL como surface de produto
Sprints 2, 3, 7 e 14 expandiram rtl/sys/ — camada que desenvolvedores Delphi sentem primeiro. IOUtils em v2.22.0 desbloqueia módulos Horse centrados em arquivo.
Dual-mode honesto
Sprints 9–13 atacaram gap perigoso onde run passava e build-exe mentia. v2.21.0 recusa codegen de exception em vez de emitir C falso — vitória de filosofia documentada no blog post 024.
Maturidade de parser
Sprint 11 fechou classe de bugs enum/multi-field/inherited lembrando hotfixes v2.8.3 — agora com testes de regressão em parser_hardening.rs.
v2.22.0 — Estado da arte atual
releases/release-v2-22-0 destaca:
- RTL mínimo
System.IOUtils - Parser: unit names com ponto
unit System.X - Resolver semântico acha
System.*via arquivos RTL
Ainda aberto por auditorias: IO Unicode completo, paridade codegen properties, painel Problems IDE, modo offline harness CI Horse.
Transparência de débito técnico
Posts 049–054 traduziram technical-debt/audit-overview em narrativa Dev.to. Changelog mostra o que shipou; auditorias mostram o que resta — juntos substituem neblina de marketing.
Métricas que importam (qualitativo)
-
Exemplos:
examples/crudpermanece flagship; fixtures e2e novos em sprints - Testes: gates paridade com GCC; auditoria Marina drive cobertura build
- Docs: reorganização Mintlify (posts 032–033) mapeada a paths vivos
- Comunidade: 61 posts bilíngues staged — educação + ops + auditorias
Olhando changelog completo
essentials/changelog abrange v1.0 até v2.22.0 — milhares de linhas. Para trabalho diário, prefira:
-
essentials/project-status— snapshot consolidado - Sprint review mais recente da sua versão
-
technical-debt/backlog— TD-IDs abertos
Reflexão para contribuidores
Se você mergeou PR em 2026, provavelmente ligou a bullet de aceitação de sprint. Essa disciplina é legado do ano — construção de compilador como sequência de wins shippáveis, não v3 mítico.
Conclusão
2026 foi o ano em que CrabPascal aprendeu a release honesto. De diagnósticos v2.9.9 a IOUtils v2.22.0, cada tag conta história no Mintlify. Leia changelog ao debugar skew de versão; leia sprint reviews ao planejar upgrades.
Post final da série: Docs, blog e 2027 (061-year-end-docs-blog-2027).
Published on dev.to/@crabpascal · Código em CrabPascal
Top comments (0)