Changelog

Every notable change to SafeC — the compiler, the standard library, safeguard and the install scripts — as recorded in CHANGELOG.md, newest first. Changes that are merged but not yet released are under Unreleased; each release also has its own release-notes post.

Unreleased

1.0.0-beta-7 - 2026-10-27

Release notes

Fixed

Changed — no void* anywhere in std

Changed — no void* left in std/gui

Changed — no void* left in std/ml

Changed — no void* left in std/audio; fewer in std's internals

Changed — std's public API has no void* and no pointer + length pairs

std's public declarations no longer take or return void*, raw T* buffers, (pointer, length) pairs or arrays through pointers.

Added — read-only, optional and checked slices; typed erasure

Breaking changes — slices and typed erasure in std

Every change below is a signature change the compiler reports at each call site (wrong argument count or type); none changes behaviour silently except where noted.

Added — self-hosted compiler (selfhost/)

Added — safeguard doc and safeguard publish

Added — ownership checks (Drop) and thread safety (Send/Sync)

Changed — ownership

Fixed — found by the ownership checks

Changed