[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] working with bit- and byte-level structures
From: |
john |
Subject: |
Re: [Chicken-users] working with bit- and byte-level structures |
Date: |
Wed, 16 Apr 2008 19:16:46 +0100 |
The idea behind packedobjects is to be able to use an abstract syntax
for describing what gets bit packed into messages to be sent across a
network. The syntax is loosely based on ASN.1 but uses s-expressions
to avoid the need for an ASN.1 compiler. The encoding is based on
unaligned Packed Encoding Rules (PER). So if you are looking at
packing data into messages in a machine independent way it might be
useful.
Cheers,
John.
On 16/04/2008, Martin DeMello <address@hidden> wrote:
> Interesting post on one of the advantages of C++ - I just wondered how
> such problems are handled in the scheme world
>
>
> ------------------------------------------------------------------------------------------------------
> What you can do in C++ that you *can't* do in Java is define a class
> whose in-memory representation maps directly to the format of data in
> memory, and then say "I want to treat this large swath of memory as if
> it were an array of Foo objects" - and gain all of the abstraction of
> calling object methods on that data, with zero performance penalty for
> instantiating thousands of objects.
>
> It's not something you want to do every day, but on the rare occasion
> you need it, C++ comes closest to letting you have your cake and eat
> it too.
>
> -- Avdi Grimm on the pragmaticprogrammers mailing list
>
> ------------------------------------------------------------------------------------------------------
>
> I ran into this exact problem when trying to access a packed C data
> structure from OCaml - I had to write a bunch of code to index into
> the block, pull out a chunk of bytes and then write accessor functions
> to do bitshifting and bitmasking to retrieve the individual members
> from the struct, without much "higher level" help from OCaml. I'm
> imagining some combination of C and chicken would do a nicer job of
> this, and naturally I'd want to do it with as little C as possible. I
> found http://chicken.wiki.br/packedobjects but I couldn't tell if it
> could work directly with a block of memory or it there'd be a lot of
> from/to overhead.
>
> martin
>
>
> _______________________________________________
> Chicken-users mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/chicken-users
>