Skip to content

stephenrkell/libmemtie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is libmemtie, a simple API for tied heap storage.

What is tied heap storage? It's heap storage which is freed
automatically when some other object, which need not be heap-allocated,
is deallocated. In particular, you can tie heap storage to stack frames,
meaning the heap chunk will be freed when the relevant function activation
function returns.

It is highly experimental, incomplete, and other things. 

Nevertheless, it is useful in both the DwarfPython and Cake runtimes --
these are other projects of mine.

It builds on two other libraries: libdwarfpp and libpmirror. These are
also on my GitHub pages <http://github.com/stephenrkell/>. It also uses
my malloc hooks, available from
<http://www.inf.usi.ch/postdoc/kells/>.

The stack case works by return address hooking. This breaks non-aware stack
walkers (TODO: make libpmirror's walker aware) and conflicts with other code
wanting to hook the return address, e.g. HotSpot lazy deoptimisation (TODO: 
make an API for extensible return hooking, and integrate with libpmirror so
it can dynamically discover how to walk these frames).

About

An implementation of tied heap storage

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published