v0.6.2February 23, 2020
v0.6.1 ChangesSeptember 11, 2018
➕ Added the
--only-macroscommand line flag. Does not splice lines, remove comments, or do trigraph replacement. It does macro processing and #line marker output (which can be disabled with the
🔄 Changed the default configuration to emit
#linemarkers. Can be disabled with
v0.6.0 ChangesSeptember 11, 2018
- ✅ Various bug fixes by @rahulmutt. These may change behavior not captured by the MCPP test suite.
- ✅ Switch to
bytestring-triefor stackage compatibility
- 🔨 Internal refactoring
v0.6.0.1September 11, 2018
v0.5.2March 27, 2018
➕ Added the
expandAPI for pure macro processing (i.e.
#includes are ignored).
- Redesigned library API
Hppmodule exports the main pieces.
Hpp.Configmay be used for configuring the preprocessor.
- Redesigned library API 🔧 The
- 📜 Simplify the parsing machinery
- 💅 Don't remove C++-style single-line comments
- Don't error on unknown cpp directives Previously, a line beginning with "#-}" would cause an error
- 0️⃣ Don't do trigraph replacement by default.
Haskell allows "??" in operator names and you can be sure
➕ Address a change wherein GHC 8 will pass
-includearguments without a space between "-include" and the file to be included.
Switch to a stream processing model.
This library is designed to have minimal dependencies, so we now have a bespoke implementation of a cross between the pipes and machines libraries included.
📜 This change was done to make some parsing operations easier, believe it or not. For example, most pre-processing 👍 is done on a line-by-line basis, but we must also support macro function applications that cross line boundaries. Thus the expansion logic can not merely be given one line at a time from an input file. Previously, a heuristic tried to combine consecutive lines 📜 before the parsing stage. Now, the parser itself is able to pull tokens in across lines when necessary.
TL;DR: The upshot is that processing
/usr/include/stdio.hon OS X (a surprisingly complicated file!) now uses 78% of the time and 0.38% the memory of previous versions of