Skip to content

0.6.0-alpha

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 May 01:22
· 6 commits to main since this release

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 current Value model.
  • Added hb_gzCompressBound() for string or numeric-length compressed-size estimates.
  • Added focused hb_gzCompress() coverage for direct gzip output, @nResult writeback, numeric nDstBufLen, and too-small-buffer NIL / -5 behavior.
  • 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.zip
  • harbour-rust-cli-0.6.0-alpha-macos-aarch64.zip
  • harbour-rust-cli-0.6.0-alpha-windows-x86_64.zip
  • benchmark-report.md
  • SHA256SUMS.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 de Value.
  • 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, nDstBufLen numérico e comportamento NIL / -5 quando 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.zip
  • harbour-rust-cli-0.6.0-alpha-macos-aarch64.zip
  • harbour-rust-cli-0.6.0-alpha-windows-x86_64.zip
  • benchmark-report.md
  • SHA256SUMS.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.