notcpp: Avoiding the C preprocessor via cunning use of Template Haskell

[ bsd3, library, template-haskell ] [ Propose Tags ]

notcpp is a library that attempts to provide an alternative to using CPP as a mechanism for conditional compilation. It provides facilities for determining if specific names or class instances exist and responding accordingly.

When a value or class instance appears between minor releases of a third-party package, a common way of dealing with the problem is to use CPP to conditionally use one block of code or another. The trouble with CPP is it's hard to statically analyse: tools based on haskell-src-exts will outright refuse to parse it, for example. It turns out Template Haskell will do the same job in some cases.

notcpp is largely a proof-of-concept, experimental package: you are welcome to use it if it suits you, but it may be liable to change suddenly.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.1, 0.1, 0.1.0.1, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3
Dependencies base (<5), template-haskell (>=2.5 && <2.9) [details]
License BSD-3-Clause
Copyright 2012 Ben Millwood
Author Ben Millwood <haskell@benmachine.co.uk>
Maintainer Ben Millwood <haskell@benmachine.co.uk>
Category Template Haskell
Bug tracker https://github.com/benmachine/notcpp/issues
Source repo head: git clone git://github.com/benmachine/notcpp
Uploaded by BenMillwood at 2012-09-07T22:25:45Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 4796 total (19 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]