Releases: arcostasi/harbour-rust
Release list
0.7.0-alpha
Harbour Rust 0.7.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 release publishes the 0.7.0-alpha line and completes the second release slice of phase 16: expanded runtime fidelity through small, tested Harbour runtime/library slices.
Highlights
- Kept the
hb_JsonDecode()one-argument runtime slice from the current phase 16 baseline. - Expanded zlib-family coverage with
hb_ZCompressBound()and focusedhb_ZError()message mapping. - Expanded
hb_gzCompress()coverage with observable@nResult, numericnDstBufLen, and@cBufferdestination-buffer writeback behavior. - Expanded
hb_processRun()coverage from exit-status handling tohb_processRun( cCommand, NIL, @cStdOut )stdout capture. - Preserved documented limits for broader zlib/process APIs instead of claiming untested Harbour compatibility.
- Kept the executable C backend, CLI, regression harnesses, compatibility fixtures, benchmark smoke, fuzz scaffold, site release links, and release automation in the validation baseline.
Release assets
This release publishes:
harbour-rust-cli-0.7.0-alpha-linux-x86_64.zipharbour-rust-cli-0.7.0-alpha-macos-aarch64.zipharbour-rust-cli-0.7.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Known limitations
This is still alpha software. The runtime fidelity added here is intentionally narrow:
hb_JsonDecode()does not yet cover the full Harbour by-reference/codepage/hash behavior.hb_gzCompress()does not yet cover explicit compression levels, byte-for-byte zlib parity claims, or the full compression/decompression API family.hb_ZCompressBound()covers only the raw-zlib bound calculation for string or numeric-length input.hb_ZError()covers a focused table of common zlib status codes, not host-zlib-specific undefined behavior.hb_processRun()does not yet cover stdin, stderr capture, merged streams, detach/async behavior, custom environment, or advanced quoting.- sockets and threading remain deferred until cross-platform IO, ownership, and concurrency semantics are explicitly designed.
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 is expected to validate and package Ubuntu/Linux, Windows, and macOS assets from the 0.7.0-alpha tag.
Português do Brasil
Harbour Rust é um projeto de compilador open source, independente e orientado pela comunidade, escrito em Rust e voltado à compatibilidade com CA-Clipper e Harbour.
Esta release publica a linha 0.7.0-alpha e fecha o segundo slice publicável da fase 16: fidelidade de runtime ampliada por slices pequenos, testados e alinhados a comportamento observável do Harbour.
Destaques
- Mantido o slice de runtime de
hb_JsonDecode()com um argumento dentro do baseline atual da fase 16. - Ampliada a cobertura da família zlib com
hb_ZCompressBound()e mapeamento focado de mensagens emhb_ZError(). - Ampliada a cobertura de
hb_gzCompress()com comportamento observável de@nResult,nDstBufLennumérico e writeback em buffer de destino@cBuffer. - Ampliada a cobertura de
hb_processRun()do exit status para captura de stdout emhb_processRun( cCommand, NIL, @cStdOut ). - Mantidos limites explícitos para APIs zlib/process mais amplas, sem alegar compatibilidade Harbour não testada.
- Mantidos backend C executável, CLI, harnesses de regressão, fixtures de compatibilidade, benchmark smoke, scaffold de fuzz, links de release do site e automação de release no baseline de validação.
Assets da release
Esta release publica:
harbour-rust-cli-0.7.0-alpha-linux-x86_64.zipharbour-rust-cli-0.7.0-alpha-macos-aarch64.zipharbour-rust-cli-0.7.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Limitações conhecidas
Este ainda é um software alpha. A fidelidade de runtime adicionada aqui é deliberadamente estreita:
hb_JsonDecode()ainda não cobre todo o comportamento Harbour de by-reference, codepage e hash.hb_gzCompress()ainda não cobre níveis explícitos de compressão, alegações de paridade byte-a-byte com zlib ou a família completa de APIs de compressão/descompressão.hb_ZCompressBound()cobre apenas o cálculo de bound zlib bruto para entrada string ou comprimento numérico.hb_ZError()cobre uma tabela focada de códigos comuns de status zlib, não comportamento indefinido específico da zlib do host.hb_processRun()ainda não cobre stdin, captura de stderr, merge de streams, detach/async, ambiente customizado ou quoting avançado.- sockets e threading continuam adiados até haver desenho explícito de IO, ownership e concorrência multiplataforma.
Validação usada para esta 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 deve validar e empacotar assets para Ubuntu/Linux, Windows e macOS a partir da tag 0.7.0-alpha.
0.6.0-alpha
Harbour Rust 0.6.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 release publishes the first 0.6.0-alpha line and completes the first release slice of phase 16: focused runtime fidelity through small, tested Harbour runtime/library builtins.
Highlights
- Added the first
hb_JsonDecode()runtime slice for one-argument JSON decoding into the currentValuemodel. - Added
hb_gzCompressBound()for string or numeric-length compressed-size estimates. - Added focused
hb_gzCompress()coverage for direct gzip output,@nResultwriteback, numericnDstBufLen, and too-small-bufferNIL/-5behavior. - Added minimal
hb_processRun( cCommand )support returning normalized shell exit status. - Preserved documented limits for broader zlib/process APIs instead of claiming untested Harbour compatibility.
- Kept the executable C backend, CLI, regression harnesses, compatibility fixtures, benchmark smoke, fuzz scaffold, and release automation in the validation baseline.
Release assets
This release publishes:
harbour-rust-cli-0.6.0-alpha-linux-x86_64.zipharbour-rust-cli-0.6.0-alpha-macos-aarch64.zipharbour-rust-cli-0.6.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Known limitations
This is still alpha software. The runtime fidelity added here is intentionally narrow:
hb_JsonDecode()does not yet cover the full Harbour by-reference/codepage/hash behavior.hb_gzCompress()does not yet cover@cBuffer, explicit compression levels, or byte-for-byte zlib parity claims.hb_processRun()does not yet cover stdin, stdout/stderr capture by reference, detach/async behavior, custom environment, or advanced quoting.- sockets and threading remain deferred until cross-platform IO, ownership, and concurrency semantics are explicitly designed.
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 is expected to validate and package Ubuntu/Linux, Windows, and macOS assets from the 0.6.0-alpha tag.
Português do Brasil
Harbour Rust é um projeto de compilador open source, independente e orientado pela comunidade, escrito em Rust e voltado à compatibilidade com CA-Clipper e Harbour.
Esta release publica a primeira linha 0.6.0-alpha e fecha o primeiro slice publicável da fase 16: fidelidade de runtime com builtins pequenos, testados e alinhados a comportamento observável do Harbour.
Destaques
- Adicionado o primeiro slice de
hb_JsonDecode()para decodificação JSON de um argumento no modelo atual deValue. - Adicionado
hb_gzCompressBound()para estimativas de tamanho comprimido a partir de string ou comprimento numérico. - Ampliada a cobertura focada de
hb_gzCompress()para saída gzip direta, writeback de@nResult,nDstBufLennumérico e comportamentoNIL/-5quando o buffer é pequeno demais. - Adicionado suporte mínimo a
hb_processRun( cCommand )retornando exit status normalizado do shell. - Mantidos limites explícitos para APIs zlib/process mais amplas, sem alegar compatibilidade Harbour não testada.
- Mantidos backend C executável, CLI, harnesses de regressão, fixtures de compatibilidade, benchmark smoke, scaffold de fuzz e automação de release no baseline de validação.
Assets da release
Esta release publica:
harbour-rust-cli-0.6.0-alpha-linux-x86_64.zipharbour-rust-cli-0.6.0-alpha-macos-aarch64.zipharbour-rust-cli-0.6.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Limitações conhecidas
Este ainda é um software alpha. A fidelidade de runtime adicionada aqui é deliberadamente estreita:
hb_JsonDecode()ainda não cobre todo o comportamento Harbour de by-reference, codepage e hash.hb_gzCompress()ainda não cobre@cBuffer, níveis explícitos de compressão ou alegações de paridade byte-a-byte com zlib.hb_processRun()ainda não cobre stdin, captura de stdout/stderr por referência, detach/async, ambiente customizado ou quoting avançado.- sockets e threading continuam adiados até haver desenho explícito de IO, ownership e concorrência multiplataforma.
Validação usada para esta 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 deve validar e empacotar assets para Ubuntu/Linux, Windows e macOS a partir da tag 0.6.0-alpha.
0.5.0-alpha
Harbour 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.
Documentacao
0.4.0-alpha
Harbour Rust 0.4.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 marks the first public 0.4.0-alpha line after the completion of phases 0 through 12 of the initial roadmap.
Highlights
- End-to-end compiler pipeline implemented:
- lexer
- preprocessor
- parser / AST
- HIR / semantic analysis
- runtime
- IR
- C code generation backend
- Practical procedural alpha baseline available
- Support for arrays,
STATIC, memvars, codeblocks, and selected macro/preprocessor features - Initial DBF/RDD support:
- schema parsing
- record navigation
- field reads
- append / update / delete / recall in the supported subset
- CLI includes:
helpcheckbuildruntranspile --to c
- Quality tooling in place:
- golden tests
- compatibility harnesses
- benchmark smoke runner
- fuzzing scaffold
- CI and release workflows
Release assets
This release publishes:
harbour-rust-cli-0.4.0-alpha-linux-x86_64.zipharbour-rust-cli-0.4.0-alpha-macos-aarch64.zipharbour-rust-cli-0.4.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Scope
This alpha consolidates the work delivered up to phases 10, 11, and 12, on top of the compiler and runtime foundation built in earlier phases.
Current baseline areas:
- parser and runtime are usable for the currently implemented subset
- C is the primary executable backend
- DBF/RDD support is present as an initial foundation
- public repository governance, bilingual documentation, issue templates, and release workflows are in place
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 - compatibility gaps remain in advanced macro behavior, broader 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
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 marca a primeira linha publica 0.4.0-alpha apos a conclusao das fases 0 a 12 do roadmap inicial.
Destaques
- Pipeline fim a fim do compilador implementado:
- lexer
- pre-processador
- parser / AST
- HIR / analise semantica
- runtime
- IR
- backend C para geracao de codigo
- Baseline alpha procedural utilizavel
- Suporte a arrays,
STATIC, memvars, codeblocks e um subconjunto selecionado de macros/pre-processamento - Suporte inicial a DBF/RDD:
- parsing de schema
- navegacao de registros
- leitura de campos
- append / update / delete / recall no subconjunto suportado
- A CLI inclui:
helpcheckbuildruntranspile --to c
- Infraestrutura de qualidade presente:
- golden tests
- harnesses de compatibilidade
- benchmark smoke runner
- scaffold de fuzzing
- workflows de CI e release
Assets da release
Esta release publica:
harbour-rust-cli-0.4.0-alpha-linux-x86_64.zipharbour-rust-cli-0.4.0-alpha-macos-aarch64.zipharbour-rust-cli-0.4.0-alpha-windows-x86_64.zipbenchmark-report.mdSHA256SUMS.txt
Escopo
Este alpha consolida o trabalho entregue ate as fases 10, 11 e 12, sobre a fundacao do compilador e do runtime construida nas fases anteriores.
Areas do baseline atual:
- parser e runtime utilizaveis para o subconjunto ja implementado
- C como backend executavel principal
- suporte a DBF/RDD presente como fundacao inicial
- governanca publica do repositorio, documentacao bilingue, templates de issues e workflows de release ja disponiveis
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 - ainda existem lacunas de compatibilidade em comportamento macro avancado, maior fidelidade de runtime e cobertura mais ampla 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
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.