Vx is a systems programming language for heterogeneous computing where CPU, GPU, NPU and accelerator memory are part of the type system. A host thread dereferencing a device pointer is a compile error, not a segfault. It is available for macOS on Apple Silicon and Linux x86_64. Heterogeneity belongs in the type system, not the runtime. Where data lives is part of its type. Most languages treat the accelerator as infrastructure: you write math, and a large opaque runtime decides how to ship it. Vx treats it as semantics. A tensor pinned to NPU high-bandwidth memory has a different type from one in host DRAM, and crossing between them takes an explicit transfer() — even when the hardware boundary is free. On Apple's unified memory that transfer compiles to almost nothing. It is still written down, because data locality should be provable by reading the source rather than by profiling the binary.
The compiler rules out address-space typing, capacity admission, seam contracts, linear types, topology reachability, and autodiff issues. The machine is declared, not assumed. Most compilers hard-code a cost model. Vx reads one. A machine file describes the memory hierarchy and interconnect of a real part, and the compiler admits or rejects placements against it. Units are exact integer conversions, never floats: SI prefixes are decimal (GB = 10^9), IEC are binary (GiB = 2^30). A figure copied off a vendor sheet means what the sheet meant. The repository ships machine files for H100, H200, B200, A100, MI300X, Apple M4 and multi-GPU nodes — each citing its sources, and marking unverified figures as unverified.
How it compiles: A data-oriented parallel frontend. Every symbol, nominal type and monomorphized variant is a flat 256-bit identifier. A nominal type system plus mandatory boxing for recursive types decouples modules, so the pipeline runs parallel across cores with no query engine and no lock contention. Compilation walks flat arrays rather than pointer-chased trees. The same source compiles to byte-identical MLIR whether it is built serially or in parallel. That is asserted in the test suite rather than hoped for — at benchmark scale, at one thread, at four, and with the thread pool taken off the path entirely, plus a corpus recompiled in fresh processes so each run gets its own hash seed.
Source: Hacker News · Summarized by HeadlinesBriefing