hamsterdb: a few updates…
This is a short update from the hamsterdb front. Since releasing the first tarball, i have discovered some issues and added some features.
The biggest change so far was the complete overhaul of the SConscript file. It now supports building shared and static libraries, with or without debug information. And it checks the gcc version (see below). I know that most developers still use make, and i’m thinking about writing a very simple Makefile. If somebody is interested, please tell me so.
SCons (www.scons.org) is a cool and comfortable tool, but i needed some time to transfer my Makefile-thinking to SCons (I’m used to Makefiles and also use them at work). However, i did have some problems where even documentation and Wiki did not provide a clue. If you ever run into the error message “Source file blah is static and is not compatible with shared target”, maybe env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME']=1 can help you.
I discovered two issues/bugs. The first issue: if gcc compiles with -O, and the gcc version is smaller then 4.1.1, the library is broken. Some (rare) unit tests fail. In that case, only upgrading gcc helps – the speed difference between -O 3 and no -O is up to 10%.
The second issue: there seems to be a bug when handling big blobs. If you insert data blobs which are 1MB or larger, something goes wrong. I’m working on a fix.
What else? I already designed the iterator-code, but haven’t started with the implementation. I’m also refactoring my unit-test-tool, and i will do a lot of profiling. Especially big blobs and variable length keys are still a bit slow.
I’ll try to post more updates soon…