ocelot is a collection of libraries to provide features that the C language
lacks, various data structures that most programs use in common, and facilities
for interaction between a program and its environment.
This package collects libraries into three categories called
cel. Libraries belonging to
cbl(C basic library) provide features that the
the language lacks and include alternative memory allocators and an exception
handling facility. Those to
cdsl(C data structure library) implement various
data structures frequently used by most programs. Those to
library) aid interaction with the execution environment.
src directory contains sub-directories
cel for the
libraries of each category:
cbl: C basic library
arena.h/c: arena library (lifetime-based memory allocator)
assert.h/c: assertion library
except.h/c: exception library
memory.h/c: memory library (for production)
memory.h/memoryd.c: memory library (for debugging)
text.h/c: text library (high-level string manipulation)
cdsl: C data structure library
bitv.h/c: bit-vector library
dlist.h/c: doubly-linked list library
dwa.h/c: double-word arithmetic library
hash.h/c: hash library
list.h/c: list library (singly-linked list)
set.h/c: set library
stack.h/c: stack library
table.h/c: table library
cel: C environment library
conf.h/c: configuration library (configuration file parser)
opt.h/c: option library (option parser)
As of the 0.4.0 release which breaks backward compatibility, the soname has been adjusted from 1.x to 0.x in order to match the release version.
How to install
INSTALL.md for an installation guide.
- ocelot-1.1.0.tar.gz (latest)
You can always get the latest version from http://code.woong.org/download/ocelot.
ocelot had used Mercurial (which is also and commonly called
hg) as its repository, and moved into git to be published on github. You can browse the repository through the web, or clone it as follows:
git clone https://github.com/mycoboco/ocelot.git
If you want to contribute to the project, simply fork it and send me pull requests.
Recent commits are:
- chore(LICENSE): change to western name order
- feat(opt): check duplicate sopt members for debug (#33)
- fix(memory): fix to compile memoryd with NDEBUG #defined (#32)
- doc(INSTALL.md): fix incorrect sample output
- doc(INSTALL.md): update according to 56e9fcac18d44f734fe5418507d1edadbd9ce6af
ocelot employed github for its issue tracker. If you'd like to file a bug or ask a question, do not hesitate to post a new issue; a self-describing title or a short text to deliver your idea would be enough. Even if issues I have posted are all written in English, nothing keeps you from posting in Korean.
Open issues are:
- enhance guess of max. alignment factor
- problems related to putting parsing options into a function
- removing unnecessary restrictions in recognizing the configuration data
- further modularizing code to parse configuration data
LICENSE.md describes the license imposed on users of