Repository navigation
Releases
Ostrin v0.2.0
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.ostrinOn 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
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.0Windows 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 -AddToPathBoth 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 andderive. 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,clangorcc, orOSTRIN_CC). - Modules and packages with
ostrin.toml, localpathand 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:
--lspand--dapservers used by the VS Code extension in
vscode-ostrin/(not yet on the Marketplace). - Initial scientific example packages:
tables,plot(SVG) and forward-modeautodiff.
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.ostrinandexamples/advanced.ostrinare 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.