/* index.dox -- front-page documentation for ppamltracer -*- c -*- * Copyright (C) 2013, 2014 Galois, Inc. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither Galois's name nor the names of other contributors may be used to * endorse or promote products derived from this software without specific * prior written permission. * * THIS SOFTWARE IS PROVIDED BY GALOIS AND OTHER CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL GALOIS OR OTHER CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** * @mainpage Overview * * ppamltracer is a lightweight, portable tracing library designed for explicit * instrumention of generated code. If you're writing a compiler and need hard * data on your optimizer's efficacy, ppamltracer is the library for you. * * @ref simple.c shows ppamltracer in action tracing two phases of computation * (factorials and Fibonacci numbers), and honestly, it's probably all the API * documentation you need. You can also have a look at @ref ppaml_tracer_t and * @ref ppaml_phase_t, the data structures which ppamltracer manipulates. * * ppamltracer writes trace logs in the [Open Trace Format] * (http://tu-dresden.de/zih/otf/), a free and open standard developed by the * Zentrum für Informationsdienste und Hochleistungsrechnen (Center for * Information Services and High-Performance Computing) at the Technical * University of Dresden. * * We developed ppamltracer as part of DARPA's [Probabilistic Programming for * Advancing Machine Learning] * (http://darpa.mil/Our_Work/I2O/Programs/Probabilistic_Programming_for_Advanced_Machine_Learning_(PPAML%29.aspx) * (PPAML) project. * * @example simple.c */