macOS
brew install tradcpplocal Homebrew formula metadata
sudo port install tradcppMacPorts ports tree · devel/tradcpp/Portfile · source: api.github.com
brew / rank 9243
K&R-style C preprocessor. Version 0.5.3 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#tradcpp.
install
brew install tradcpplocal Homebrew formula metadata
sudo port install tradcppMacPorts ports tree · devel/tradcpp/Portfile · source: api.github.com
nix profile install nixpkgs#tradcppnixpkgs package indexes · pkgs/by-name/tr/tradcpp/package.nix · source: api.github.com
overview
K&R-style C preprocessor
history
tradcpp is a small traditional, K&R-style C preprocessor maintained from David Holland's NetBSD pages. Its history is tied less to compiling C and more to preserving old build techniques that used cpp as a general text preprocessor.
The official tradcpp page says the tool was written for historical uses of the C preprocessor on non-C input, because modern compiler-bundled preprocessors increasingly do not provide a traditional mode or preserve the behavior old build systems expect. The project deliberately keeps a narrow scope and does not try to become a full modern C89/C99/C11 preprocessor.
A distinctive implementation goal is whitespace preservation. The author calls out makefiles, old Emacs build logic, and imake as examples where rearranging whitespace can break legacy systems. tradcpp also includes a trace mode for diagnosing complex preprocessor use; the page says it was written to investigate an imake problem on Solaris.
The most explicit adoption history is in pkgsrc: the official page says pkgsrc, the NetBSD package system, has used tradcpp for these purposes since 2013. That makes tradcpp a package-system support tool rather than a broad end-user application.
In package-manager culture, tradcpp is used when a build recipe needs a traditional cpp that preserves old preprocessing behavior for files such as makefiles. Users are explicitly steered away from using it for normal modern C code.
tradcpp matters to package nerds because it is infrastructure for keeping old source packages buildable. It represents the unglamorous compatibility layer a portability framework like pkgsrc sometimes needs when upstream build systems rely on historical Unix behavior.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
tradcpp | executable | indexed executable | Discovered from the local executable index. |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:tradcpp |
|---|---|
| Version | 0.5.3 |
| Package manager | Homebrew |
| Homepage | https://www.netbsd.org/~dholland/tradcpp/ |
| Bottle | not recorded |
| Service | none declared |
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
tradcpp
nix profile install nixpkgs#tradcpptradcpp
sudo port install tradcppsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.