DEV Community

CrabPascal
CrabPascal

Posted on

Release v2.22.0: Current State of the Art | Release v2.22.0: estado da arte

Bilingual post · Post bilíngue

Jump to: English · Português


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.
  • Testssystem_units covers System.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.
Enter fullscreen mode Exit fullscreen mode

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:

  • check with positioned diagnostics
  • run via complete_runtime.rs
  • build-exe with 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
Enter fullscreen mode Exit fullscreen mode

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.
  • Testessystem_units cobre System.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.
Enter fullscreen mode Exit fullscreen mode

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 uses recursivo
  • 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:

  • check com diagnósticos posicionados
  • run via complete_runtime.rs
  • build-exe com 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
Enter fullscreen mode Exit fullscreen mode

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)