0.5.0-alpha
Pre-releaseHarbour Rust 0.5.0-alpha
English
Harbour Rust is an independent, community-led, open source compiler project written in Rust and designed for compatibility with CA-Clipper and Harbour.
This repository is maintained as a public, non-commercial contribution to the software community. It is not affiliated with, endorsed by, or sponsored by the Harbour Project, xHarbour, CA-Clipper, or any related trademark owner. Those names are used only to describe compatibility goals and historical context.
This release publishes the first 0.5.0-alpha line after the completion of phases 0 through 14 and the first release slice of phase 15.
Highlights
- Curated phase 15 compatibility expansion focused on advanced preprocessor behavior.
- Expanded PP corpus guided by
harbour-core/tests/hbpp/, includingDEFINE CLIPBOARD,RELEASE,SAVE, and the firstLISTcorridor. - Structural improvements in the PP matcher for compound restricted markers, including forms such as
<prn:TO PRINTER>. - Per-item rendering for blockify result markers over lists, covering
<{v}>inLIST. - Continued coverage for previously released compiler layers:
- lexer
- preprocessor
- parser / AST
- HIR / semantic analysis
- runtime
- IR
- C code generation backend
- Cross-platform release assets for Linux, macOS, and Windows.
- Validation through local release preflight plus GitHub Actions quality and release workflows.
Release assets
This release publishes:
harbour-rust-cli-0.5.0-alpha-linux-x86_64.zipharbour-rust-cli-0.5.0-alpha-macos-aarch64.zipharbour-rust-cli-0.5.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Scope
This alpha consolidates a focused post-0.4 compatibility slice. The main goal is to grow observable Harbour preprocessor compatibility through small, reversible, oracle-backed increments rather than broad unmeasured matcher expansion.
Current baseline areas:
- parser and runtime remain usable for the currently implemented subset
- C remains the primary executable backend
- DBF/RDD support remains present as an initial foundation
- public repository governance, bilingual documentation, issue templates, Pages deployment, CI, and release workflows are in place
- advanced PP compatibility is broader than in
0.4.0-alpha, especially around selected command translations, list markers, and curatedhbpptest/_pp_testslices
Known limitations
This is still alpha software.
Known limitations include:
- partial rather than complete xBase dialect coverage
- selected builtins implemented only for the currently tested subset of value kinds
- no native backend yet;
codegen-cis the primary executable backend - the preprocessor is not yet a complete token-based engine equivalent to Harbour
ppcore.c LIST REST,LIST ALL, and largerLISTvariations remain outside this release slice- compatibility gaps remain in broader macro behavior, runtime fidelity, and extended RDD coverage
- automatic comparison against Harbour may still depend on an external local runner in some workflows
Validation used for this release
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace
cargo check --manifest-path fuzz/Cargo.toml
cargo run -p harbour-rust-tests --bin benchmark-suite -- --fixture examples/hello.prg --iterations 1
cargo build --release -p harbour-rust-cli
The release workflow also built and published CLI assets for Ubuntu/Linux, Windows, and macOS.
Project position
Harbour Rust is:
- open source
- community-oriented
- non-commercial as a project initiative
- independently maintained
- intended as a respectful technical contribution to a historically important ecosystem
The project also has a personal origin: xBase was the maintainer's first serious programming environment and played an important role in his path as a developer. That background motivates the work, but the project is intended to remain technically rigorous, community-oriented, and professionally documented.
Documentation
Portugues do Brasil
Harbour Rust e um projeto independente, open source e orientado pela comunidade, escrito em Rust e voltado a compatibilidade com CA-Clipper e Harbour.
Este repositorio e mantido como uma contribuicao publica e sem fins lucrativos para a comunidade de software. Ele nao e afiliado, endossado ou patrocinado pelo Harbour Project, xHarbour, CA-Clipper ou por qualquer titular de marca relacionado. Esses nomes sao usados apenas para descrever objetivos de compatibilidade e contexto historico.
Esta release publica a primeira linha 0.5.0-alpha apos a conclusao das fases 0 a 14 e o primeiro recorte publicavel da fase 15.
Destaques
- Expansao curada de compatibilidade da fase 15 com foco em comportamento avancado do pre-processador.
- Ampliacao do corpus PP guiado por
harbour-core/tests/hbpp/, incluindoDEFINE CLIPBOARD,RELEASE,SAVEe o primeiro corredorLIST. - Melhorias estruturais no matcher do PP para restricted markers compostos, incluindo formas como
<prn:TO PRINTER>. - Renderizacao por item para result markers blockify sobre listas, cobrindo
<{v}>emLIST. - Continuidade da cobertura das camadas de compilador ja publicadas:
- lexer
- pre-processador
- parser / AST
- HIR / analise semantica
- runtime
- IR
- backend C para geracao de codigo
- Assets de release multiplataforma para Linux, macOS e Windows.
- Validacao por preflight local de release e workflows de qualidade/release no GitHub Actions.
Assets da release
Esta release publica:
harbour-rust-cli-0.5.0-alpha-linux-x86_64.zipharbour-rust-cli-0.5.0-alpha-macos-aarch64.zipharbour-rust-cli-0.5.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Escopo
Este alpha consolida um recorte focado de compatibilidade pos-0.4. O objetivo principal e ampliar a compatibilidade observavel do pre-processador Harbour por incrementos pequenos, reversiveis e ancorados em oraculo, em vez de expandir genericamente o matcher sem medicao.
Areas do baseline atual:
- parser e runtime continuam utilizaveis para o subconjunto ja implementado
- C continua sendo o backend executavel principal
- suporte a DBF/RDD permanece presente como fundacao inicial
- governanca publica do repositorio, documentacao bilingue, templates de issues, Pages deployment, CI e workflows de release ja estao disponiveis
- a compatibilidade avancada de PP esta mais ampla que em
0.4.0-alpha, especialmente em traducoes selecionadas de comandos, markers de lista e recortes curados dehbpptest/_pp_test
Limitacoes conhecidas
Este ainda e um software em estagio alpha.
Limitacoes conhecidas incluem:
- cobertura parcial, e nao completa, dos dialetos xBase
- alguns builtins implementados apenas para o subconjunto de tipos atualmente coberto por testes
- ainda nao existe backend nativo;
codegen-ccontinua sendo o backend executavel principal - o pre-processador ainda nao e uma engine token-based completa equivalente ao
ppcore.cdo Harbour LIST REST,LIST ALLe variacoes maiores deLISTpermanecem fora deste recorte de release- ainda existem lacunas de compatibilidade em comportamento macro mais amplo, maior fidelidade de runtime e cobertura estendida de RDD
- a comparacao automatica com Harbour ainda pode depender de runner externo/local em alguns fluxos
Validacao usada nesta release
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace
cargo check --manifest-path fuzz/Cargo.toml
cargo run -p harbour-rust-tests --bin benchmark-suite -- --fixture examples/hello.prg --iterations 1
cargo build --release -p harbour-rust-cli
O workflow de release tambem compilou e publicou assets da CLI para Ubuntu/Linux, Windows e macOS.
Posicionamento do projeto
Harbour Rust e:
- open source
- orientado pela comunidade
- sem fins lucrativos como iniciativa de projeto
- mantido de forma independente
- pensado como uma contribuicao tecnica respeitosa a um ecossistema historicamente importante
O projeto tambem tem uma origem pessoal: xBase foi o primeiro ambiente de programacao realmente importante na trajetoria do mantenedor. Esse contexto motiva o trabalho, mas o projeto busca permanecer tecnicamente rigoroso, orientado a comunidade e documentado de forma profissional.