Gnulib, the GNU portability library, offers a macro system and C
declarations and definitions for commonly-used API elements and
abstracted system behaviors. It can be used to improve portability and
other functionality in your programs.
Gnulib takes a different approach than libiberty. Gnulib components are
intended to be shared at the source level, rather than being a library that
gets built, installed, and linked against. Thus, there is no distribution
tarball; the idea is to copy files from Gnulib into your own source tree.
However, there are bimonthly stable snapshots of the Gnulib codebase
published at http://erislabs.net/ianb/projects/gnulib/
The gettext lint tools is a collection of tools for checking the validity and
consistency of PO and POT files. It also includes an experimental glossary
building tool.
This package includes:
* POFileStatus - PO file validator and status reporting
* POFileChecker - searches for common mistakes in PO files
* POTFileChecker - searches for common mistakes in POT files
* POFileConsistency - PO file consistency checks
* POFileConsistencyShell - PO file consistency checks, interactive mode
* POFileEquiv - PO file glossary generator
All tools generate XML to the standard output; just run them with a list of PO
or POT files to check. Some have extra options, run the command with no
parameters for a short usage message.
Gradle is build automation evolved.
Gradle can automate the building, testing, publishing, deployment
and more of software packages or other types of projects such as
generated static websites, generated documentation or indeed anything
else.
Gradle combines the power and flexibility of Ant with the dependency
management and conventions of Maven into a more effective way to
build. Powered by a Groovy DSL and packed with innovation, Gradle
provides a declarative way to describe all kinds of builds through
sensible defaults. Gradle is quickly becoming the build system of
choice for many open source projects, leading edge enterprises and
legacy automation challenges.
This is Gwenhywfar, a multi-platform (*BSD, Linux, MS-Win, etc.)
helper library for networking and security applications and libraries.
It is used by several 'finance' ports, and possibly others.
Gwenhywfar includes the following features, among several others:
- OS abstraction functions for directory and Internet address handling
and library loading (src/os/)
- Networking functions which allow managing many connections to be used
economically even in single threaded applications
- High-level functions for parsing files with a simplified "XML-like"
format and accessing them like a hierarchical database (src/parser/)
It is able to process valid XML files, too.
- High-level cryptographic functions on top of OpenSSL functionality
(src/crypt/)
The ivykis library is a thin, portable wrapper around OS-provided
mechanisms such as epoll(4), kqueue(2), poll(2) and select(2). It was
mainly designed for building high-performance network applications,
but can be used in any event-driver application that uses pollable
file descriptors as its event sources.
Programs written to the ivykis API are generally single-threaded (or
use only a small number of threads), and never block on I/O. All
input and output is done in a nonblocking fashion, with I/O readiness
notification delivered via callback functions.
JSAP: the Java-based Simple Argument Parser
JSAP parses your command line and instantiates objects of types you specify
based upon that command line. If you configure JSAP to expect an Integer on the
command line, and the user does not provide a String that can be converted to
an Integer, JSAP will alert your program to the fact that there was a problem
with the command line. If JSAP indicates that your command line was
successfully parsed, you are guaranteed an Integer when you request that
parameter's value from your program. There's a pretty big (and growing) list of
return types supported by JSAP.
Parsing a program's command line arguments has always been a distraction from
the main programming task at hand. The argtable library simplifies the job by
enabling the programmer to define the command line options directly in the
source code as a static array of structs and then pass that array to argtable
library functions which parse the command line accordingly. The values
extracted from the command line are deposited directly into user-defined program
variables where they can be accessed by the main program. Argtable can also
generate descriptions of the command line syntax from that same array for
display as on-line help.
An abstract interface to highly-parameterizable queues/deques. Background:
There exists a feature space for queues that extends between:
* simple, single-ended, non-concurrent, bounded queues
* double-ended, threadsafe, growable queues
... with important points inbetween (such as the queues used for
work-stealing). This package includes an interface for Deques that
allows the programmer to use a single API for all of the above, while
using the type-system to select an efficient implementation given the
requirements (using type families). This package also includes a simple
reference implementation based on 'IORef' and "Data.Sequence".
An efficient packed, immutable Unicode text type (both strict and lazy),
with a powerful loop fusion optimization framework.
The Text type represents Unicode character strings, in a time and
space-efficient manner. This package provides text processing
capabilities that are optimized for performance critical use, both in
terms of large data quantities and high speed.
The Text type provides character-encoding, type-safe case conversion via
whole-string case conversion functions. It also provides a range of
functions for converting Text values to and from ByteStrings, using
several standard encodings.
Efficient locale-sensitive support for text IO is also supported.
This hierarchy contains all the source code from
"C Interfaces and Implementations: Techniques for Creating Reusable
Software (Addison-Wesley Professional Computing Series, 1997,
ISBN 0-201-49841-3).
For installation instructions, see install.html.
For a summary of the distribution's revision history, see history.html.
David R. Hanson
http://www.research.microsoft.com/~drh/
FreeBSD note: in /usr/local
lib/libcii.a -> lib/cii/1/libcii.a
include/cii -> lib/cii/1/include
example binaries are in lib/cii/1/examples
copyright, history, etc share/doc/cii
source of CII share/doc/cii/src
source of examples share/doc/cii/examples
There is no documentation other than the book and its web site.