English {#english}
Release v2.22.0: Current State of the Art
Mintlify docs tour — after Sprint 17 kickoff, we pause at the latest tagged release before diving into technical debt.
Tag: v2.22.0 · Sprint: 14 · Binary version in Cargo.toml: 2.22.0
If you have not followed every sprint review in this series, v2.22.0 is the consolidated snapshot of what CrabPascal reliably does today — documented in Release v2.22.0 and Project Status.
What Sprint 14 added
The headline deliverables:
-
rtl/sys/System.IOUtils.pas— minimal IO surface for real-world file operations. -
Parser — unit names with dots (
System.X) parse correctly. -
Semantic layer — resolves
System.*via RTL when the shim file exists. -
Tests —
system_unitscoversSystem.IOUtils.
This builds directly on Sprint 2's namespace foundation. Dotted filenames are no longer a resolver-only concern — the parser and semantic phases understand them end-to-end.
uses
System.IOUtils;
begin
if TFile.Exists('config.ini') then
WriteLn('found');
end.
The sprint arc behind v2.22.0
Sixteen sprints closed between v2.9.9 and v2.22.0. Highlights from project status:
| Sprint | Version | Milestone |
|---|---|---|
| 1 | v2.9.9 | Real diagnostic spans |
| 2 | v2.10.0 |
System.* namespaces |
| 4 | v2.12.0 | Exceptions in runtime |
| 7 | v2.15.0 | Generics.Collections |
| 10 | v2.18.0 | String parity in C codegen |
| 13 | v2.21.0 | Honest build on exceptions |
| 14 | v2.22.0 | IOUtils + dotted unit names |
What works at v2.22.0
Language and runtime:
- Programs and units with recursive
uses - Classes, inheritance, properties (field and method accessors in
run) - Generics surface:
TList/TDictionary - Typed exceptions in runtime; codegen refuses fake exception C
- Growing UTF-16 string conformance
Tooling:
-
checkwith positioned diagnostics -
runviacomplete_runtime.rs -
build-exewith C toolchain (evolving parity) - Preprocessor with
{$IFDEF}, Delphi/FPC modes
Ecosystem:
- Horse examples (
ping-pong,crud) - VS Code extension on marketplace
- Rust tests + fixtures + HTTP E2E (Sprint 16)
Known gaps (honest summary)
Consult the technical debt backlog. At v2.22.0:
- Native codegen still incomplete for full OO and exceptions
- IDE Problems panel not yet populated from
check - Marketplace extension lagging compiler (TD-MARKETPLACE-001)
- Sprint 17 JSON/CRUD work in flight
Validate your install
cargo test
crab-pascal --version # expect 2.22.0
crab-pascal run examples/hello.dpr
Changelog: Mintlify Essentials → Changelog. Next in our series: the transparent technical debt backlog — how we track what is not done yet.
Português {#portugus}
Release v2.22.0: estado da arte
Tour Mintlify — depois do kickoff Sprint 17, pausamos na última release taggeada antes de mergulhar no débito técnico.
Tag: v2.22.0 · Sprint: 14 · Versão no Cargo.toml: 2.22.0
Se você não acompanhou cada review de sprint desta série, o v2.22.0 é o snapshot consolidado do que o CrabPascal faz com confiança hoje — documentado em Release v2.22.0 e Status do projeto.
O que o Sprint 14 adicionou
Entregas principais:
-
rtl/sys/System.IOUtils.pas— superfície mínima de IO para operações de arquivo reais. -
Parser — nomes de unit com ponto (
System.X) parseiam corretamente. -
Semântica — resolve
System.*via RTL quando o shim existe. -
Testes —
system_unitscobreSystem.IOUtils.
Constrói diretamente sobre a base de namespaces do Sprint 2. Nomes pontuados não são mais só concern do resolver — parser e semântica entendem end-to-end.
uses
System.IOUtils;
begin
if TFile.Exists('config.ini') then
WriteLn('found');
end.
O arco de sprints atrás do v2.22.0
Dezesseis sprints fecharam entre v2.9.9 e v2.22.0. Destaques do status do projeto:
| Sprint | Versão | Marco |
|---|---|---|
| 1 | v2.9.9 | Spans de diagnóstico reais |
| 2 | v2.10.0 | Namespaces System.*
|
| 4 | v2.12.0 | Exceções no runtime |
| 7 | v2.15.0 | Generics.Collections |
| 10 | v2.18.0 | Paridade de strings no codegen C |
| 13 | v2.21.0 | Build honesto em exceções |
| 14 | v2.22.0 | IOUtils + units com ponto |
O que funciona no v2.22.0
Linguagem e runtime:
- Programas e units com
usesrecursivo - Classes, herança, properties (field e accessors por método no
run) - Superfície genérica:
TList/TDictionary - Exceções tipadas no runtime; codegen recusa C falso de exceções
- Conformidade UTF-16 crescente em strings
Ferramentas:
-
checkcom diagnósticos posicionados -
runviacomplete_runtime.rs -
build-execom toolchain C (paridade em evolução) - Pré-processador com
{$IFDEF}, modos Delphi/FPC
Ecossistema:
- Exemplos Horse (
ping-pong,crud) - Extensão VS Code no marketplace
- Testes Rust + fixtures + E2E HTTP (Sprint 16)
Gaps conhecidos (resumo honesto)
Consulte o backlog de débito técnico. No v2.22.0:
- Codegen nativo ainda incompleto para OO e exceções completas
- Painel Problems da IDE ainda não preenchido pelo
check - Extensão marketplace atrás do compilador (TD-MARKETPLACE-001)
- Trabalho JSON/CRUD do Sprint 17 em voo
Valide sua instalação
cargo test
crab-pascal --version # espere 2.22.0
crab-pascal run examples/hello.dpr
Changelog: Mintlify Essentials → Changelog. Próximo na série: backlog transparente de débito técnico — como rastreamos o que ainda não está pronto.
Published on dev.to/@crabpascal · Código em CrabPascal
Top comments (0)