The TruePascal Compiler
tpc writes every byte of your program - no linker, no toolchain, nothing to install.
One compiler, seven targets
The same source and the same front end. Only the last step differs.
Target
Switch
Output
Windows
-Twin64
PE32+ .exe
Linux
-Tlinux
static ELF64
FreeBSD
-Tfreebsd
static ELF64
The browser
-Twasm
.wasm module
ARM64 / Android
-Taarch64
ARMv8-A 64-bit
Raspberry Pi Pico
-Tpico
.uf2 (RP2040)
Raspberry Pi Pico 2
-Tpico2
.uf2 (RP2350)
Linux and FreeBSD also build a static-PIE image (-Tlinux-pie, -Tfreebsd-pie) for hardened systems that randomise load addresses; on ARM64 every binary is position independent already.
Linux and FreeBSD binaries are static and reach the kernel directly - no libc and no interpreter, so there is nothing to install on the machine that runs them.
What is inside tpc
It is one program, and everything it needs it carries.
No linker
tpc emits machine code and then writes the container around it - a PE image, an ELF, a .wasm module, a .uf2. Every byte of the output file is placed by tpc.
One invocation
One source file. tpc follows the uses clauses itself. No unit paths to configure, no project file, no separate compilation step.
Its own runtime
The runtime and the standard library travel inside the compiler rather than as libraries to link, so nothing ships beside your program.
Both dialects
Object Pascal in {$MODE DELPHI} and {$MODE OBJFPC} spellings, {$H+} long strings, and the {$Q+}, {$R+} and {$I+} check switches.
Real debugging
Built with -gl a runtime error reports the file and the line, not just an address. tpc writes its own DWARF and ships a debugger.
Self-hosting
tpc compiles its own source - about 178,000 lines of Pascal across 111 files. That is the primary test: the compiler is its own hardest program.
How we know it works
Measured, not asserted.
131
gates, run on every version
401
corpus programs, compared byte for byte
12%
faster than dcc64 on identical work
A ninety-seven version optimisation series took the self-compile from 14,521 ms to 1,393 ms - 10.4 times faster - with every gate green.
Built with TruePascal IDE
(c) 2026 TruePascal IDE - truepascal.com