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

Reply via email to