I've mostly been working on the redland iterator changes needed for contexts that edd wanted. The current state is 'make check' works fine, except for memory leak, which I'm still hunting. I tried valgrind, but it gave false info which took yet more time to work that out.
After I get this fixed this, I'll have to consider changing streams to match this new model, however I'm a little worried since it may cause too much user-level change. Iterators are pretty internal and hardly leak out for non-C.
The changes for streams, like iterators are as follows: The two methods on stream are presently: is_end and get_next. is_end will remain the same, but get_next splits into get and next. It may be possible to hide this outside C. The general change is from:
while !stream.is_end { s=stream.get_next;blah blah }
to:
while !stream.is_end { s=stream.get; blah blah; stream.next() }
where the 's' is a shared pointer in C but could be a copy outside. After stream.next() the pointer moves and isn't valid.
(actually this makes things more efficent, there is less copying inside redland and things should work faster)
