Zane Hambly
This computer was made for you and me
Kia ora, I'm Zane. Nau mai, haere mai. I'm a self-taught developer down in Aotearoa New Zealand who got curious about how computers actually work, the old ones especially, and never quite managed to stop pulling the thread.
Mostly I build compilers, emulators and language servers for machines nobody's bothered to write tooling for in decades. It's a lot of reading. No one has put a 1974 flight computer on Stack Overflow, so it all starts with primary sources: original manuals, faded specs, and every so often an email to whoever's sitting on the last surviving copy. One of those turned out to be a filing cabinet in Kansas, so I sent the email and waited for the renovations to finish.
I like giving old ideas somewhere new to live. My GPU compiler reports its crashes as 1960s mainframe dumps, because IBM had post-mortems sorted by 1964 and I reckon we quietly lost the plot somewhere after that.
Some of it goes upstream. I've had work merged into the OCaml compiler's native backend, LLVM's X86 backend, LFortran and z390, mostly at the unglamorous end where a wrong instruction is a bug nobody sees until it matters.
LLMs are part of how software gets made now, and I use them too. I'd sooner be upfront about it than pretend otherwise. Here's how I use them, with a breakdown project by project if you're curious. :-)
Based in New Zealand. Student at Massey University.
Writing
Voyager FDS Emulator
The only emulator for the computer leaving the solar system. Built from original JPL documentation found in a university archive in Kansas, after NASA said no and a chain of links from a blog to Reddit to Hackaday led to a filing cabinet in Wichita. Now being put on a chip the width of a human hair.
Booth
An open-source GPU compiler written from scratch in C99. Takes CUDA, HIP and Triton and targets AMD, NVIDIA, Tenstorrent, or a plain CPU with no GPU at all. Tested by simulating nuclear reactors, because orthodox was never really the plan.
Ernest
A quantum compiler in C99 that ran a frame of DOOM on real IBM hardware, then learned to compile Fortran to quantum circuits. The whole field runs on Python, which is a strange choice for the mathematics that has been written in Fortran for sixty years.
HALMAT
Reconstructing the Space Shuttle's undocumented compiler intermediate language. All 180 opcodes across 9 classes, recovered by parsing 630 source files that nobody had touched since the 1990s. Built on Ron Burkey's Virtual AGC project.
MPB
Mainframe Package Bureau. A package manager for COBOL, HLASM, REXX, PL/I, and JCL, standing on fifty years of communal generosity that started with Arnold Casinghino mailing magnetic tapes through the post in 1975.
Projects
Compilers
- Booth GPU compiler in C99. CUDA, HIP, Triton in; AMD, NVIDIA, Tensix, CPU out.
- Karearea Fortran 77 compiler. 735/735 SLATEC files. PE-COFF and ELF.
- Wasabi WebAssembly to x86-64 AOT compiler.
- Plankalkul World's first high-level language, 1945. From Zuse's manuscripts.
- FLOW-MATIC Grace Hopper's 1955 business language. COBOL's ancestor.
Emulators
- Voyager FDS The computer leaving the solar system. The only emulator.
- Minuteman D-17B ICBM guidance computer.
- Setun-70 Soviet ternary computer.
- Viking Lander 1976 Mars mission.
Mainframe
- z390 Portable mainframe emulator. Core contributor.
- MPB Package manager for COBOL, HLASM, REXX, PL/I, JCL.
- zblas z/OS native BLAS in HLASM. z13+ vector SIMD.
- HLASM Strong Type VS Code LSP with type checking for registers and macros.
- HLASM for Notepad++ Column-aware syntax highlighting.
Language Servers
Scientific Computing
Quantum
Chip Design
- Takahe Universal hardware synthesis. Thirteen computing paradigms. SKY130.
- Voyager FDS on silicon The JPL flight computer. 58 gates. Fabrication-ready.
- Ruru Probabilistic processor. Distributions as a data type.
- Qsim 8-qubit quantum gate simulator on silicon.
Other
- HALMAT Space Shuttle compiler language, reconstructed.
- KW-26 ROMULUS Cold War teleprinter cipher. Reconstructed from declassified docs.
- Olint OCaml linter with auto-fix support.
- Plankalkul IDE VS Code extension with 2D grid editor.
- Kea Preemptive real-time OS for RISC-V.
Upstream
Merged
- OCaml #14575 Native atomic fetch-and-add across all five architectures.
- OCaml #14547 s390x GOT-indirect calls, fixing heap corruption with the shared runtime.
- LLVM #212803 X86: don't emit personality info when the personality isn't a function.
- LLVM #212417 X86: apply the data32 mode switch in the Intel matcher.
- LFortran #11679 Legacy F77 iargc and getarg aliases.
- z390 COBOL macros, VSAM, and NIST test suite work on the mainframe assembler.
Open
- OCaml #14980 Native atomic exchange and compare-and-set, all five architectures. Raw output.
- OCaml #14515 amd64: emit endbr64 only where it matters.
Contact
Open to contract work and the occasional full-time problem worth solving.
Student at Massey University. Right to work in New Zealand, the UK, Australia, and the EU.