As of this month, Claude watermarks its text output. Anthropic’s documentation is direct about the mechanism: for text, “it weaves an imperceptible watermark directly into the text itself. You won’t see it, and it doesn’t change the meaning, quality, or readability.” For files, it attaches signed provenance metadata following the C2PA standard. Models launched on or after 2 August 2026 support ...
In September I am presenting a session at CppCon that challenges conventional frontend design: “Escaping the AST: A Data-Oriented, Lock-Free Parallel Compiler Architecture.”1 The core thesis requires a structural shift. By abandoning traditional pointer-chasing ASTs in favour of representing the program as flat, contiguous arrays of bit-packed global identifiers, and by deferring name resoluti...
I have eight devices. I want a matmul whose contracting dimension is split across some of them. So I write the matmul normally, say where the two operands live, and compile: mesh = Mesh(np.array(jax.devices()).reshape(4, 2), ('data', 'model')) xs = jax.device_put(x, NamedSharding(mesh, P('data', 'model'))) # K split on 'model' Ws = jax.device_put(W, NamedSharding(mesh, P('model', None))) ...
This is the last post on the JAX/XLA stack. We went from Python to a jaxpr, from a jaxpr to optimized single-device HLO, and from single-device HLO to a mesh of devices. One door left, and it is the one you take when the compiler’s automatic decisions are not good enough: writing the kernel yourself. In JAX that door is Pallas, and it lowers through two very different backends — Triton on GPU a...
Coming from PyTorch, the first thing JAX does is offend you. You write a simple function with an if statement, wrap it in jax.jit, and call it. Instead of running, it throws a TracerBoolConversionError. No graceful fallback. No partial compile. Just a hard stop on a line of Python that would have run fine a second ago. torch.compile would have shrugged, taken a graph break, and moved on. JAX ...