Horatio's Memory Manager This is a memory manager for C programmers, documentation is provided at the following URL: http://daybologic.bitbucket.org/libhoratio libhoratio was formerly known as DPCRTLMM. libhoratio is provided under a BSD-style license.
Added gawk to debian/control and rebuild aclocal.m4
Merged f/201908-sourcehut-build
Grab dlscripts 0.4.1 for fix for non-indep dependencies when running build-deps
Attempt to install build dependencies
build-scripts path incorrectly
Use raw2c from build-scripts (Pure Perl); Drop using C variant
Move to build-scripts-1.0.0 for pure Perl version of raw2c
make and make check
Added libtool to build.yml
Added autoconf to build.yml
build with libglib2.0-dev for glibconfig.h
Update build-scripts correctly
First crack at build manifest
Replace libmysqlclient-dev with default-libmysqlclient-dev
Create branch for build system on Sourcehut
Merge down default, with .hgsub fixes
Added new .hgsub after migration from bitbucket to sourcehut
libglib2.0-dev because of a problem with MongoDB?
Created branch for Debian on ARM: f/201804-debian-stretch-armhf
Remove aclocal.m4 because it does not necessarily match libtool
Rename libmysqlclient-perl default-libmysqlclient-perl
Revisiting libhoratio to ensure it is building under the latest Debian stable distribution
Merged in f/201406-database-log (pull request #10)
Close branch f/201406-database-log
Merge from master develop branch
Merged in f/201603-remove-legacy-dpcrtlmm (pull request #13)
Close branch f/201603-remove-legacy-dpcrtlmm
0f9d96298267 — David Duncan Ross Palmer 3 years ago
Freshen branch
Shift block to the right only
Merge from master develop branch
Merged in f/201603-utils-subrepo (pull request #15)
Close branch f/201603-utils-subrepo
Rename utils to build-scripts
Experimental path mappings
Use ssh key for subrepo
Fixes due to utilities moving into bin subdir
Attempt to define remote location
Create branch to make utils/ a rub-repo
ee94e5b2a719 — David Duncan Ross Palmer 3 years ago
A load more reformatting options; seems legit to me
First crack at astyle options
Create branch for dealing with style guidelines, using astyle
9fd12b8c36c6 — David Duncan Ross Palmer 3 years ago
Merged 2.0.2 into default release branch
2ba535170405 — David Duncan Ross Palmer rel/2.0 3 years ago
Added tag libhoratio-2.0.2 for changeset 4c227364dac0
4c227364dac0 — David Duncan Ross Palmer libhoratio-2.0.2 3 years ago
Merged version admin
8afb7dca87fc — David Duncan Ross Palmer 3 years ago
Merge stable into rel/2.0 and prepare for 2.0.2 release
Make counters for all deprecated function calls
Start work on reducing number of deprecated calls warnings
9a442799b6af — David Duncan Ross Palmer 3 years ago
Merged stable into develop
a927a697c9ae — David Duncan Ross Palmer 3 years ago
Merged default release (2.0.1) into stable
70817e8be676 — David Duncan Ross Palmer 3 years ago
Merged 2.0.1 into default release branch


browse log
browse .tar.gz


Documentation is provided on the following site: http://2E0EOL.bitbucket.org/libhoratio

What is the purpose of this library?
It is a memory tracking tool.  Although it can't detect memory
over runs on pointer accesses or corruption.  It can be used
to detect failures to release memory (as long as it's allocated
by us) and attempts to release memory which we do not own.
It has an automatic garbage collection feature to free up all
unfreed memory too.  It should be used by the entire program to
be most effective, it can provide statistics on memory left an
such like too.  The best thing about the MM is that it provides
a central place for dynamic memory allocation in a program so
we can trace all activity, an optional log mode is avialable
though a define.  Swapping cannot be implemented as the MM has
no control over pointer-based memory accesses.  This is indeed
why we don't see memory overruns. If the program is going to
be released even though it contains memory bugs, the traps can
be turned off or passed to a handler which will only execute the
serious ones.

Direction: We intend to log statistics to optional back-end systems such
as MongoDB, MySQL and SQLite.  Although this work is ongoing,
it has yet to be merged into mainline.

At some point we will write a dummy library, which will allow
programs which are designed around libhoratio to effectively
remove the library, without being re-written.

Language: Everything here is portable to ANSI C, We try our best to make
this library as portable as possible and appreciate any feedback for /any/
system on which a flaw is seen, whether this is embedded or games console.