Alex: I tried your updated version and it seems to convert cleanly this time, should be useful for keeping the wiki and REAMDE in sync!
Kristian: thanks for the tips, I wasn't sure how best to name these delete methods since you don't usually have to manually clean up after yourself in scheme. I'll have a look at dynamic-wind, I've not used that yet :) Daniel: set-finalizer! is interesting. Someone mentioned that in the IRC channel when I was asking about this. Apparently it's not the best for performance so I'd like to set a benchmark before trying it out. If it could avoid me having to use a thunk procedure for db-stream (which currently cleans up the leveldb::Iterator afterwards) that would be very nice! Thanks everyone for reviewing the code, what a friendly mailinglist :D Caolan On 21 April 2014 00:58, Daniel Leslie <d...@ironoxide.ca> wrote: > set-finalizer! Is with considering for memory management as well. > > On 20 Apr 2014 16:54, "Kristian Lein-Mathisen" <kristianl...@gmail.com> > wrote: >> >> >> Hey Caolan, >> >> And welcome to the Chicken community! Your leveldb eggs seems pretty well >> written, nice work! Not much to comment on, but I'll put down what I noted >> as I quickly browsed through the code. >> >> Have you looked at the bind egg? It may help you out with basic C++ >> bindings for things like class instantiation, methods and fields. >> >> In your leveldb.setup file, you can use capital -j and leave out the >> module name. >> >> In you call-with-db definition, you could probably do the same with less >> code using dynamic-wind. >> >> And a quick note on naming conventions. I noted you've got things like >> strings->slice, where the return value needs to be freed with delete-slice. >> Since that's just private api, I'm sure you'll get away with it. I wonder >> though, if there's a a way to indicate you need to be careful. Perhaps a % >> prefix or * postfix might be suitable. >> >> Or perhaps a call-with-slice convention that always deletes with >> dynamic-wind might be suitable? I don't know its performance properties, >> though. >> >> Same for check-status, which deletes its argument with delete-status. >> Perhaps a ! postfix, ie "check-status!"? >> >> I hope I can get to play around with leveldb and thus egg at some point! >> Thanks for your contribution! >> >> K. >> >> On Apr 20, 2014 3:00 PM, "Caolan McMahon" <caolan.mcma...@gmail.com> >> wrote: >>> >>> Hi all, >>> >>> I'm new to the list (and CHICKEN) *waves* >>> >>> I thought I'd have a go at writing an egg and put together some >>> bindings to Google's LevelDB embedded key/value store. I've published >>> it at https://github.com/caolan/chicken-leveldb >>> >>> Can someone please help me with getting it onto the egg index? I'd >>> also appreciate any advice people have on coding style / egg layout >>> etc. since I'm still getting the hang of this. >>> >>> Thanks, >>> >>> Caolan >>> >>> _______________________________________________ >>> Chicken-users mailing list >>> Chicken-users@nongnu.org >>> https://lists.nongnu.org/mailman/listinfo/chicken-users >> >> >> _______________________________________________ >> Chicken-users mailing list >> Chicken-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/chicken-users >> > _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users