W# 0.1.1

Status

Eleven numbered items, all of them done, and what is next.

W# is young. The first release was cut on 7 September 2026 and the current one is 0.1.1. What is here is tested end to end, and the whole case suite runs a second time under a collector that collects at every allocation and validates every root.

The items are numbered by the original feature list. All eleven are done.

1. Core language, Zig-style syntax.

2. Hindley-Milner type inference.

3. Garbage collector. Reference counting, a concurrent mark trace for cycles, and compaction. See the collector.

4. Multiple dispatch over a subtype lattice, with the HTTP status types as its standard-library instance, abstract types for scalars, and overload sets as values.

5. Arrays, for loops, a growable array, and explicit generic parameters on functions, structs and fn literals.

6. Standard library behind a module system: strings, arrays, math and I/O.

7. Multithreading. Workers with their own heaps, talking by typed RPC or through a Kafka-shaped message broker.

8. The operating system declared by hand. Files and sockets on Linux, macOS/BSD and Windows arms, a readiness API, and a safe region that lets a thread block in a syscall while its collector walks the stack it left behind. std/net and std/http are on top of it.

9. Sized and unsigned integers, and bitwise operators. i8 through u64, & | ^ << >> ~, a rotate, and integer literals that take the type they are used at. i64 was the right default and the wrong only choice the moment a program computed on bytes; ChaCha20’s quarter round is now a test case rather than a thing the language could not say.

10. TLS 1.3, written in W#, with certificate chains verified against the platform’s own root store, which is what turns https:// from error.NotSupported into a connection. Every hash, cipher, curve, signature scheme and X.509 structure is a .ws file, and the whole client and server are replayed against RFC 8448’s published traces byte for byte.

11. Package management, in a tool called ingot. Git spoken rather than shelled out to, a content-addressed store, and a resolver that says why a version was ruled out rather than that it was. The resolver is PubGrub over version sets as unions of intervals, and it found a real bug in the garbage collector on its way in. TOML 1.0 is read and written in W#; the store can tell “not installed” from “damaged”. And there is a registry, Foundry, recording per version the commit to fetch and the tree it must hash to, so resolving is arithmetic over a file and installing is checked against a hash somebody’s CI already verified.

Since the list ran out

sharpie, the version manager, is the second real program written in W#. See toolchains.

What is left

The honest list of what does not work is on Limitations. The last outstanding item in TLS is a certificate chain through a P-521 key.

The full development log, organised by item, with what was built, the decisions worth recording, and what each left open, is in ROADMAP.md.

Releases

Version
0.1.07 September 2026The first release. wsharp, ingot, and lib/libwsharp_start.a
0.1.18 September 2026ingot learns a registry: version dependencies resolve out of Foundry, INGOT_REGISTRY, and the verbs update and search

Release notes live on the releases page.

Last changed 8 September 2026. Improve this page

On this page