Skip to content

0.7.0-alpha

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 May 00:35

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 focused hb_ZError() message mapping.
  • Expanded hb_gzCompress() coverage with observable @nResult, numeric nDstBufLen, and @cBuffer destination-buffer writeback behavior.
  • Expanded hb_processRun() coverage from exit-status handling to hb_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.zip
  • harbour-rust-cli-0.7.0-alpha-macos-aarch64.zip
  • harbour-rust-cli-0.7.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 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 em hb_ZError().
  • Ampliada a cobertura de hb_gzCompress() com comportamento observável de @nResult, nDstBufLen numérico e writeback em buffer de destino @cBuffer.
  • Ampliada a cobertura de hb_processRun() do exit status para captura de stdout em hb_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.zip
  • harbour-rust-cli-0.7.0-alpha-macos-aarch64.zip
  • harbour-rust-cli-0.7.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 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.