RSSAmplifier

Blog

Rail

A self-hosting functional language. Updates from ledatic.org.

ledatic.orgRSS feed ↗16 posts

Latest posts

v5.1.0 — Rail emits its own GPU kernels

Major release. Rail now generates Metal Shading Language source from its op-DAG, JIT-compiles it via Metal's `newLibraryWithSource:`, and dispatches the kernel at runtime. Every kernel the GPU executes is emitted by an attested Rail binary — the substrate piece needed for end-to-end attested GPU training (see [`rail-jit-fused-kernels-plan`](.) for the multi-month roadmap).

v5.0.2 — Attestation pipeline goes fully pure-Rail

Patch release. The first Rail release attested end-to-end through the Rail substrate — no `curl`, no `shasum`, no Python anywhere in the attestation path.

v5.0.1 — Attestation hygiene + codegen tightening

Patch release. No new features.

v5.0.0 — Self-hosted toolchain (Linux ELF substrate)

Major release. Rail produces its own aarch64 Linux ELF binaries — encoder, assembler, static linker, and ELF writer are all pure Rail. On the supported subset of inputs, the build pipeline invokes no external `as`, `ld`, or `codesign`.

v4.1.0 — Repo hygiene + leak-guard CI

Minor release. Comprehensive cleanup pass over the public tree. No compiled-binary change; no language or stdlib changes.

v4.0.1 — Public-surface sanitization

Patch release. Removes operator-specific infrastructure strings from the public tree: Tailscale IPs, SSH usernames, home-directory paths, internal Slack channel IDs, and a stray operator MCP config. No behavior change; the compiled binary is identical to v4.0.0.

v4.0.0 — Substrate maturity

A major version bump tagged on the `next` lineage. (`master` continues the parallel v3.x attestation/agent track; the two have diverged on purpose.) 216 commits since `v3.11.0` was tagged on master 11 days ago — concurrency, playground, public JIT, dual-backend parity, 30/30 substrate hard-bench publicly reproducible, browser-side provenance verifier, four sweeping bug-class closures including a…

v3.7.0 — Float-TCO root fix, mixed-precision inference, parallel rerank

Substantial substrate work. Seven commits, three real bugs (one fixed at root, one workaround'd at source, one falsified), one substantial new feature (Rail-native mixed-precision GPU inference), one substantial new tool (parallel rerank wrapper), and a precise reproducer for one bug that stayed open. 137/137 tests green; byte-identical self-bootstrap verified.

v3.6.1 — Compiler hardening

Two codegen + parser fixes; both gated by 2-pass byte-identical self-bootstrap. 137/137 green.

v3.6.0 — Unified HTTPS client

Chain-walked verification is now the default. `https_get_url` / `https_post_url` (and their `host ip port`-taking siblings `https_get` / `https_post`) perform full X.509 chain validation against `/etc/ssl/cert.pem` on every call. The previous leaf-only drivers live on under explicit `https_*_unsafe_noverify` names for tests that need to exercise the FSM without trust-store setup.

v3.5.0 — Hardened HTTPS client + http_server

Two stdlib hardening passes plus a docs clarification.

v3.4.0 — Ed25519 (RFC 8032 §5.1 verify)

`stdlib/ed25519.rail` now compiles and verifies clean against RFC 8032 TEST 1. Third modern-TLS signature algorithm alongside ECDSA (P-256 / P-384 / P-521) and RSA-PSS / RSA-PKCS1 — Rail's pure-Rail TLS stack now covers every sig_alg in wide deployment.

v3.3.0 — HTTPS keep-alive sessions + ECDSA-P521

Two features land together in v3.3.0 because they share a test session and both pass the full validation gate (137/137 tests, self-compile byte-identical fixed point, live amazon.com strict + keep-alive both green).

v3.2.0 — Strict HTTPS by default + compiler quadratic fix

Two structural fixes in `tools/compile.rail` eliminate the O(3^n) and O(N²) wedges that had been silently taxing every stdlib-heavy build since v3.0.0. A 195-second compile on `https_client.rail + pem.rail + cert_chain.rail` now completes in 12 seconds — 16× speedup — which unblocks the strict-HTTPS default trust posture that v3.1.0 had to ship as a standalone primitive.

v3.1.0 — Streaming HTTPS bodies

Response bodies scale linearly. The v3.0.0 `hc_recv_response` accumulated the HTTP response by re-joining a growing string on every record and re-joining a growing string on every byte within each record — two layers of `join "" [acc, chunk]` making total work O(body_len²). Practical bodies capped at ~64 KB before walltime exploded.

[site] 2026-04-19 — Atom feed, /changelog page, honest copy pass

First pass at making the site itself legible to feed readers and repeat visitors.