Automic VaultAutomic Vault

brew

Install camlp5 with Homebrew, apt, MacPorts, pacman

Preprocessor and pretty-printer for OCaml. Version 8.05.02 via Homebrew; verified 2026-07-01.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install camlp5

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install camlp5

MacPorts ports tree · lang/camlp5/Portfile · source: api.github.com

overview

Package summary

Preprocessor and pretty-printer for OCaml

Commands and aliases

  • camlp5
  • camlp5o
  • camlp5o.opt
  • camlp5r
  • camlp5r.opt
  • camlp5sch
  • mkcamlp5
  • mkcamlp5.opt
  • ocpp5

history

Project history and usage

Camlp5 is an OCaml preprocessor and pretty-printer used to extend or redefine OCaml syntax, convert between syntaxes, and build parsing or pretty-printing extensions.

Project history

The official Camlp5 about page traces its ideas to Michel Mauny in the 1990s. Daniel de Rauglaudre implemented the first version in 1996 under the name Camlp4, where the four Ps meant Pre-Processor-Pretty-Printer.

In 2002, Camlp4 maintenance moved to Michel Mauny and was later extended by Nicolas Pouillard with different design ideas and some incompatibilities. In 2006, de Rauglaudre restarted the original line of work and renamed it Camlp5.

The current GitHub README says Camlp5 was originally written by Daniel de Rauglaudre, with maintenance and upgrades by Chet Murthy. It also notes a newer 8.x line that differs substantially from the 7.x releases and is tested against modern OCaml versions.

Adoption history

Camlp5 has long lived in the OCaml toolchain's syntax-extension culture. Its official docs describe use as a shell command, as an OCaml compiler preprocessor through -pp, and inside the OCaml toplevel.

The package metadata in this batch shows Camlp5 in Homebrew, Debian, Ubuntu, MacPorts, and Arch, reflecting its role as a durable compatibility package for OCaml projects that still rely on Camlp5 syntax extensions or revised syntax.

How it is used

Common shell commands include camlp5o for ordinary OCaml syntax and camlp5r for revised syntax. The docs show invoking them through ocamlc -pp and loading camlp5o.cma or camlp5r.cma in the OCaml toplevel.

Developers use Camlp5 to write parsing and printing kits, extensible grammars, quotations, macros, syntax extensions, and pretty-printers. It is also used to convert OCaml programs from one syntax to another and to inspect syntax-extension output.

Why package nerds care

Camlp5 matters to package nerds because it is both a real tool and an archaeological layer in OCaml packaging. It preserves a branch of the Camlp4 preprocessor tradition that many older OCaml packages and syntax experiments depended on.

It is also a reminder that language ecosystems carry syntax tooling as compatibility debt. Keeping Camlp5 packaged means old source distributions, revised-syntax code, and pre-ppx extension workflows can still be built on modern Unix systems.

Timeline

  • 1990s: Michel Mauny expresses ideas that later feed into Camlp5.
  • 1996: Daniel de Rauglaudre implements the first version as Camlp4.
  • 2002: Camlp4 maintenance moves and later evolves with incompatible design changes.
  • 2006: Daniel de Rauglaudre restarts the original line as Camlp5.
  • 2016: camlp5/camlp5 GitHub repository is created.
  • 2021: Camlp5 8.00 release appears in the GitHub releases feed.
  • 2026: Current repository activity shows ongoing maintenance for modern OCaml compatibility.

Related projects

  • Camlp4 is the predecessor and divergence point described by the official Camlp5 history.
  • OCaml is the language and compiler toolchain Camlp5 preprocesses.
  • The OCaml ppx ecosystem is the modern comparison point for many syntax-extension workflows, although Camlp5 remains its own preprocessor line.
  • JoCaml is mentioned in the GitHub README as historically supported by older Camlp5 versions.

security posture

No protected-tool coverage found yet

No matching local secret-handling manifest was found for camlp5. Nucleus package metadata is still published here so future coverage has a stable package URL.

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Installs with 3 runtime dependencies.
  • Build metadata lists 3 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
camlp5cliglobal executable
camlp5ocliglobal executable
camlp5o.optcliglobal executable
camlp5rcliglobal executable
camlp5r.optcliglobal executable
camlp5schcliglobal executable
mkcamlp5cliglobal executable
mkcamlp5.optcliglobal executable
ocpp5cliglobal executable

freshness

Version and 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.

page generated2026-07-08
manager version8.05.02
manager updated2026-07-01
local dataok
upstreamcurrent
latest detected8.05.02

https://github.com/camlp5/camlp5

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:camlp5
Version8.05.02
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/camlp5
Homepagehttps://camlp5.github.io/
Repositoryhttps://github.com/camlp5/camlp5
Upstream docshttps://camlp5.github.io/doc/html
LicenseBSD-3-Clause
Source archivehttps://github.com/camlp5/camlp5/archive/refs/tags/8.05.02.tar.gz
Last updated2026-07-01T00:08:52Z
Pulseupdated
Dependenciescamlp-streams, ocaml, pcre2
Build dependenciesocaml-findlib, opam, pkgconf
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namecamlp5
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

camlp5 8.03.01-1+b7

Pre Processor Pretty Printer for OCaml - classical version

https://camlp5.github.io/

sudo apt install camlp5
  • Section: ocaml
  • Architecture: amd64
  • Source Package: camlp5
  • 13 dependencies
  • 1 provides
  • 1 optional deps
  • normalized package name match
  • Matched by: Camlp5
Debian stable package indexes · deb.debian.org · Debian stable package indexes: camlp5 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Ubuntu apt95%

camlp5 8.02.01-2build6

Pre Processor Pretty Printer for OCaml - classical version

https://camlp5.github.io/

sudo apt install camlp5
  • Section: universe/devel
  • Architecture: amd64
  • 13 dependencies
  • 1 provides
  • 1 optional deps
  • normalized package name match
  • Matched by: Camlp5
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: camlp5 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
pacman95%

camlp5 8.05.01-1

A preprocessor-pretty-printer of OCaml.

https://camlp5.github.io/

sudo pacman -S camlp5
  • License: BSD-3-Clause
  • Architecture: x86_64
  • 5 dependencies
  • normalized package name match
  • Matched by: Camlp5
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: camlp5 from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
MacPorts95%

camlp5

sudo port install camlp5
  • normalized package name match
  • Matched by: Camlp5
MacPorts ports tree · api.github.com · MacPorts ports tree: lang/camlp5/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment