Hi Hugo, Msgpack seems like an interesting project indeed. Thanks for making an egg for it!
I'm quite a newbie myself, but I noticed the coops egg includes the module implementation directly<http://bugs.call-cc.org/browser/release/4/coops/trunk/coops-module.scm>, so you don't have to declare two modules. Maybe that's easier in your case too? I also noticed you're using (let () ...). Is there a reason you're not simply using (begin ...)? I've been poking around the msgpack-repositories, they support a lot of languages! It's real neat that Chicken Scheme now joins in on the fun too. So, looking at the node.js port<https://github.com/msgpack/msgpack-node/tree/master/deps/msgpack>, it seems like they've created js-bindings to the official C library. Perhaps this might be suitable for Chicken Scheme too? From what I can tell, you are reimplementing most of the functionality from scratch, is that correct? Great work, great piece of software to keep handy! K. On Tue, Jan 29, 2013 at 1:18 AM, Ivan Raikov <ivan.g.rai...@gmail.com>wrote: > Hi Hugo, > > Thanks for your work on msgpack, it seems like an interesting > project. Unfortunately, machine floating point formats are complicated, so > any related code will be complicated as well. I don't know much about the > msgpack protocol, but if representing floating-point numbers as strings is > an option, I encourage you to look at fpio ( > http://wiki.call-cc.org/eggref/4/fpio ), a BSD-licensed egg for > converting floating point numbers to strings and vice versa. endian-blob > includes code from GDB, so it cannot be relicensed without approval from > the GNU project. > > Ivan > > > > On Tue, Jan 29, 2013 at 5:53 AM, Hugo Arregui <hugo.arre...@gmail.com>wrote: > >> Hi, >> >> Recently I wrote an implementation of msgpack[1], which can be found >> here[2]. This is my first "full" project in scheme, so I would >> appreciate any feedback (please, be destructive). >> >> A couple of points already has been mentioned: >> >> - Macros to reduce redundancy (I'm reading about them, so I'm >> expecting to fix this soon). >> - A non technical but important thing: I'm using endian-blob egg, >> which is licensed as gpl and it's incompatible with the project >> license, which is bsd. >> >> But, beside that, I have a few questions: >> >> 1) To avoid the creation of very heavy structures in tests, i'm using >> a kind of mock[3], which overrides some procedures, and restores it >> later. Is this the right way to do it?. >> >> In fact, in the "egg" branch I tried to pack the project as an egg and >> I think this "hack" is not working. >> >> 2) To access the procedures mentioned in (1), i'm using two modules: >> "msgpack-imple" which contains the whole project and it's used for the >> tests, and "msgpack" which import "msgpack-imple" and expose the real >> interface. Again, is this the right way to do it? >> >> 3) To read/write float/double numbers (in ieee754) i'm using >> endian-blob egg (here[4]), it's there any alternative without >> implementing the full float/double->binary logic (which seems quite >> complicated)? >> >> Thanks, >> Hugo. >> >> [1] http://msgpack.org/ >> [2] https://github.com/hugoArregui/msgpack-scheme >> [3] >> https://github.com/hugoArregui/msgpack-scheme/blob/master/tests/run.scm#L187 >> [3] >> https://github.com/hugoArregui/msgpack-scheme/blob/master/msgpack-imple.scm#L131 >> >> _______________________________________________ >> 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