Skip to content

Releases

Ostrin v0.2.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 22:15
29c24c0

Ostrin v0.2.0 — Experimental release

Ostrin v0.2.0 is an experimental 0.x release of the ostrinc compiler and
scientific computing toolchain. It is intended for evaluation and feedback; it
is not production-ready. The 0.x compatibility policy permits syntax,
diagnostic and API changes.

Supported platforms

The release workflow builds each archive from the exact v0.2.0 tag and
attaches SHA-256 checksums.

Platform Release asset
Linux x86_64 (glibc) ostrinc-v0.2.0-x86_64-unknown-linux-gnu.tar.gz
macOS ARM64 (Apple silicon) ostrinc-v0.2.0-aarch64-apple-darwin.tar.gz
Windows x64 ostrinc-v0.2.0-x86_64-pc-windows-msvc.zip
WASI Preview 1 ostrinc-v0.2.0-wasm32-wasip1.tar.gz

Native archives include the compiler, license, README and runnable examples.
The WASI archive includes the compiler module, the 28-program smoke matrix,
SHA256SUMS for all WebAssembly modules, and a README. The supported WASI host
must provide Preview 1 and WebAssembly exception handling for cooperative
task cancellation.

Install

Use the repository installer with an explicit version and verify the attached
checksum before running the compiler:

sh scripts/install.sh --version 0.2.0
ostrinc --version
ostrinc --check examples/hello.ostrin
ostrinc --run examples/hello.ostrin

On Windows PowerShell, use scripts/install.ps1 -Version 0.2.0. For WASI,
download the WASI release asset, verify its archive checksum and then verify
each module with sha256sum --check SHA256SUMS after extraction.

Included capabilities

  • A measured native backend with 7,198 IR and 41 HIR bodies and zero AST
    fallbacks in the recorded corpus. This count does not imply native support
    for every valid source shape.
  • Ownership evidence for the tested combinations in
    docs/ownership-matrix.md.
  • Scalar Measurement<Float> support in the documented tested contexts.
  • Numerical validation for LU, Cholesky, QR, SVD and symmetric eigenpairs,
    using analytic cases, residuals and declared tolerances.
  • Scientific plots, tables, 3D scenes and animations, with browser examples.
  • Native and WASI execution, a browser playground and editor tooling.

Compatibility and known limitations

  • The interpreter remains the semantic reference. Native HIR/IR support is
    limited to tested source shapes; unsupported shapes are rejected or use a
    documented fallback.
  • Measurement<Quantity<D>>, Array<Measurement<T>>, broader nested
    ownership combinations and general cancellation states remain guarded or
    unsupported.
  • Effect and provenance coverage is incomplete. R3 remains open: the current
    evidence records partial effect capture and 4,266 unresolved effect calls.
  • Numerical checks do not establish universal cross-platform equivalence or
    scientific correctness beyond their stated assumptions and tolerances.
  • Linux ARM64, Intel macOS, musl and package-manager channels are outside the
    release matrix.
  • Upstream GitHub Linguist recognition and a public package registry are not
    included.

Examples

Try examples/hello.ostrin, examples/measurement_phi.ostrin,
examples/native_dyn_trait_record_field.ostrin and examples/viz_table.ostrin.
The gallery and Scientific Lab include plots, tables, 3D scenes and animations.

Reporting problems

Open an issue at https://github.com/sircalch/Ostrin/issues/new/choose. Include
ostrinc --version, your operating system and architecture, a minimal program,
the command and its full output. For native compilation problems, include your
C compiler and its version.

See CHANGELOG.md for the detailed v0.2.0 history and
implementation scope.

Ostrin v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 03:37

Ostrin 0.1.0 is the first experimental developer release of the Ostrin compiler
(ostrinc). It is meant for trying the language, running the examples and reporting
problems — not for production use. Syntax, diagnostics and the standard library may still
change between 0.x releases.

Supported platforms

Platform Archive
Linux x86_64 (glibc) ostrinc-v0.1.0-x86_64-unknown-linux-gnu.tar.gz
macOS ARM64 (Apple silicon) ostrinc-v0.1.0-aarch64-apple-darwin.tar.gz
Windows x64 ostrinc-v0.1.0-x86_64-pc-windows-msvc.zip

Every archive has a matching .sha256 file and contains ostrinc, LICENSE, README.md
and the repository examples/. Before upload, the release workflow runs the test suite on
each platform, checks that ostrinc --version matches the tag, verifies the checksum,
extracts the archive and runs both examples/hello.ostrin and the packaged project with a
local path dependency. Intel macOS, Linux ARM64 and musl archives are not published yet.

Install

Unix (Linux x86_64 or macOS ARM64):

curl --fail --location https://raw.githubusercontent.com/sircalch/Ostrin/main/scripts/install.sh \
  --output /tmp/ostrinc-install.sh
sh /tmp/ostrinc-install.sh --version 0.1.0

Windows PowerShell:

$installer = Join-Path $env:TEMP 'ostrinc-install.ps1'
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/sircalch/Ostrin/main/scripts/install.ps1 -OutFile $installer
powershell -ExecutionPolicy Bypass -File $installer -Version 0.1.0 -AddToPath

Both installers download the archive from this release, verify its SHA-256 before extracting
and check ostrinc --version after installing. You can also download an archive by hand,
verify it against its .sha256 file and put ostrinc on your PATH.

Then:

ostrinc --version                     # ostrinc 0.1.0
ostrinc --run examples/hello.ostrin   # ends with "hola desde Ostrin"

What is included

  • Rust compiler and tree-walking interpreter; the interpreter is the semantic reference.
  • Physical quantities as types (5 m / 2 s), with unit conversion and dimension checking.
  • Records, enums, traits, generics, dyn Trait, operator overloading and derive.
  • Option/Result, try/try catch, exhaustive pattern matching with guards.
  • List, Map, Set, Array<T> with broadcasting, statistics and basic linear algebra.
  • Deterministic cooperative concurrency (spawn, join, spawn_scope, channels, select,
    cancellation) and opt-in OS threads for compiled programs (--native-threads).
  • Native compilation through C (--emit-c, --compile) with --leak-check; requires a C
    compiler (gcc, clang or cc, or OSTRIN_CC).
  • Modules and packages with ostrin.toml, local path and explicit Git dependencies,
    deterministic lockfiles and --locked.
  • Small standard library written in Ostrin: math, lists, strings, dates, JSON, args,
    environment and map helpers.
  • Editor tooling: --lsp and --dap servers used by the VS Code extension in
    vscode-ostrin/ (not yet on the Marketplace).
  • Initial scientific example packages: tables, plot (SVG) and forward-mode autodiff.

The browser playground at https://sircalch.github.io/Ostrin/playground.html runs the same
compiler as WebAssembly (WASI); it interprets programs but cannot compile to native code.

Known limitations

  • Experimental. No stability guarantee for syntax, diagnostics or APIs.
  • The native backend is being migrated to typed HIR/IR. Constructs outside the covered
    families use a verified HIR/AST fallback; a few constructs are rejected with a clear error
    instead of compiling with different semantics.
  • Native closures capture by value; native ownership lowering is still conservative for
    complex aggregates and escapes.
  • The interpreter is a simple tree-walker without optimizations.
  • File I/O error messages differ between the interpreter and native programs.
  • No public package registry, networking, GPU execution or reverse-mode autodiff.
  • No Homebrew, winget, Scoop, Chocolatey or AUR packages yet.
  • examples/newlines.ostrin and examples/advanced.ostrin are syntax samples, not runnable
    programs.

Examples

Start with examples/hello.ostrin, physics.ostrin, collections.ostrin,
concurrency.ostrin and dataframe.ostrin, and the project in
examples/pkg_project/main_app (ostrinc --run --project examples/pkg_project/main_app).

Reporting problems

Open an issue at https://github.com/sircalch/Ostrin/issues/new/choose using the bug report
template. Include ostrinc --version, your OS and architecture, the smallest program that
reproduces the problem, the command you ran and its full output. For native compilation
problems, also include your C compiler and its version.

See CHANGELOG.md for the full list of changes.