fxopt is a plugin for GCC that converts floating-point functions to fixed-point arithmetic, primarily for implementation in embedded, real-time systems without floating-point hardware. The conversion is performed in GCC's "middle-end", after the source code has been converted to GCC's intermediate representation but before any target-specific optimizations are done. Several optimization options are available to improve the accuracy of the fixed-point arithmetic, including affine range estimation, rounding, and double-precision multiplications. Fixed-point code produced by fxopt can be significantly more accurate than typical fixed-point implementations with comparable execution time and code size. In many cases the fixed-point code produced by fxopt provides accuracy comparable to single-precision floating-point arithmetic with a factor of 10 faster execution.
Wnotes are small, self-contained text notes for X Window System desktops. You can create, type, cut-and-paste, and save notes in any combination you like. Wnotes let you store notes and their window configurations using any database which accepts input from the Unix shell. It is compatible with most Linux and Unix desktops. The source code package includes sdb, a simple note database written as a bash script, and other examples of how to use Wnotes.
GCC-MELT is a high-level domain specific language that eases the development of plugin-like extensions for GCC, the Gnu Compiler Collection. These extensions can analyze or modify GCC internal representations, and can be used for static source code analysis, refactoring, specific warnings, optimizations, etc. The MELT language provides high-level features. Notably, MELT code is translated to C or C++, and can even contain C or C++ code. It includes powerful pattern matching facilities and can manipulate dynamically typed values and raw GCC structures. It enables functional/applicative, object-oriented, reflective programming styles and has a familiar Lisp-like syntax.
Generic Makefile for C Projects is a generic makefile that builds a binary from C source code files. Any number of build modes are supported - Release and Debug are predefined. The CFlags and LFlags variables can be defined in a mode dependent way, i.e. CFlags_Debug. File dependencies are generated by the compiler (-MMD flag for preconfigured GNU compiler) and included by the makefile automatically. All output is written under a single target directory. It supports source files with the same name that are located in different directories. You can use wildcards to add any number of source files.
ftracer is a simple user space implementation of a Linux kernel style function tracer. It allows you to trace every call in instrumented user applications. It is useful for debugging and performance analysis due to its fine grained time stamp. This allows you to do control flow oriented debugging without any special instrumentation. So if the program does something unexpected, it's easily possible to look at the function calls before that, and use that to deduce the cause of the problem. ftracer relies on gcc generating a call on top of every function call. The tracing slows every function call down (about 3x). The tracing is per thread and does not create a global bottleneck. It supports a dump function in C, directly callable by the program or on exit, and a gdb function to dump from gdb.
YAGAC is a library that when linked to your C program, allows you to conveniently track or trash memory leaks within your application while it is still running. You can have multiple garbage collectors according the code part you are in. It tracks memory assigned by your code only, and does not monitor third part libraries. Tracking can be activated by updating a debug flag without restarting your application. It is intended for use with daemon-type programs.
iPDC is a Phasor Data Concentrator that collects data from PMUs and PDC/iPDC that are compliant with the IEEEC37.118 Synchrophasors standard. iPDC does time alignment and combines the received data into frames as per IEEEC37.118 and can send to other iPDCs and applications. It can also archive received data in a MySQL database on the local/remote machine. It includes a PMU Simulator, which is also IEEEC37.118 compliant. A friendly graphical user interface allows a user to add or remove new devices (PMU/iPDC) and send command frames to the devices from which the data is being received.