chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Msgpack implementation for scheme (and some question


From: Kristian Lein-Mathisen
Subject: Re: [Chicken-users] Msgpack implementation for scheme (and some questions)
Date: Thu, 31 Jan 2013 01:52:54 +0100

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, 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, 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 <address@hidden> 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 <address@hidden> 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
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users


_______________________________________________
Chicken-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users



reply via email to

[Prev in Thread] Current Thread [Next in Thread]