Send Beginners mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  Haskell Serialization (Ashish Agarwal)
   2. Re:  Problem installing Haskell platform on Ubuntu        Karmic
      (Ashish Agarwal)
   3. Re:  Haskell Serialization (Daniel Fischer)
   4. Re:  Haskell Serialization (Stephen Tetley)


----------------------------------------------------------------------

Message: 1
Date: Mon, 10 May 2010 15:00:14 -0400
From: Ashish Agarwal <[email protected]>
Subject: Re: [Haskell-beginners] Haskell Serialization
To: Stephen Tetley <[email protected]>
Cc: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

> the Binary class as it is specialized to serializing values for Haskell
only

Can you please expand on this? I've been using Data.Binary to (de)serialize
messages for some networking protocols, and have made all my types instances
of Binary. Non-Haskell programs will be receiving and sending messages on
one end, but I didn't think that mattered since my get and put functions are
written to adhere to the protocol's definition. Is there some issue I'm
missing?


On Mon, May 10, 2010 at 6:18 AM, Stephen Tetley <[email protected]>wrote:

> Hi Tom
>
> If you are interfacing with non-Haskell binary objects - you will want
> binary parsing / writing rather than simple serialization as the
> format will be determined by the foreign objects.
>
> You can still use Data.Binary (indeed its probably the best choice),
> but you will want to use the modules Data.Binary.Get and
> Data.Binary.Put directly and probably avoid the Binary class as it is
> specialized to serializing values for Haskell only.
>
> There are probably quite a few libraries on Hackage that you can look
> at for examples, though there might be more packages that supply
> parsers only and don't do writing, e.g:
>
> http://hackage.haskell.org/package/pecoff  (Parser only)
>
> There will be more among the packages this list that directly depend on
> Binary:
>
> http://bifunctor.homelinux.net/~roel/cgi-bin/hackage-scripts/revdeps/binary-0.5.0.2#direct
>
>
> Best wishes
>
> Stephen
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.haskell.org/pipermail/beginners/attachments/20100510/a2c53f1c/attachment-0001.html

------------------------------

Message: 2
Date: Mon, 10 May 2010 15:23:54 -0400
From: Ashish Agarwal <[email protected]>
Subject: Re: [Haskell-beginners] Problem installing Haskell platform
        on Ubuntu       Karmic
To: Kim Stebel <[email protected]>
Cc: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"

Try: "ghc-pkg unregister parsec". I think this will cause parsec to get
recompiled. I had a similar problem and recall having to do this with a few
libraries, although this was during compilation of cabal.


On Sun, Apr 4, 2010 at 2:20 AM, Kim Stebel <[email protected]>wrote:

> Hello List,
>
> I can't compile the haskell platform. I followed this guide
> http://davidsiegel.org/haskell-platform-in-karmic-koala/ and downloaded
> http://hackage.haskell.org/platform/2010.1.0.0/haskell-platform-2010.1.0.0.tar.gzas
>  suggested in comment 5. configure runs fine, but when I try to "make" it,
> it fails to compile the network package.
>
> Preprocessing library network-2.2.1.7...
> Building network-2.2.1.7...
> [1 of 5] Compiling Network.URI      ( Network/URI.hs,
> dist/build/Network/URI.o )
> [2 of 5] Compiling Network.Socket.Internal (
> dist/build/Network/Socket/Internal.hs, dist/build/Network/Socket/Internal.o
> )
> [3 of 5] Compiling Network.Socket   ( dist/build/Network/Socket.hs,
> dist/build/Network/Socket.o )
> [4 of 5] Compiling Network.BSD      ( dist/build/Network/BSD.hs,
> dist/build/Network/BSD.o )
> [5 of 5] Compiling Network          ( Network.hs, dist/build/Network.o )
>
> Network.hs:274:15:
>    Warning: Pattern match(es) are overlapped
>             In a case alternative: a -> ...
>
> Network/URI.hs:108:7:
>    Could not find module `Text.ParserCombinators.Parsec':
>      Perhaps you haven't installed the profiling libraries for package
> `parsec-2.1.0.1'?
>      Use -v to see a list of the files searched for.
>
> Error:
> Building the network-2.2.1.7 package failed
> make: *** [build.stamp] Error 2
>
>
> I'd really appreciate any help.
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.haskell.org/pipermail/beginners/attachments/20100510/e937a1ce/attachment-0001.html

------------------------------

Message: 3
Date: Mon, 10 May 2010 21:28:01 +0200
From: Daniel Fischer <[email protected]>
Subject: Re: [Haskell-beginners] Haskell Serialization
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain;  charset="utf-8"

On Monday 10 May 2010 21:00:14, Ashish Agarwal wrote:
> > the Binary class as it is specialized to serializing values for
> > Haskell
>
> only
>
> Can you please expand on this? I've been using Data.Binary to
> (de)serialize messages for some networking protocols, and have made all
> my types instances of Binary. Non-Haskell programs will be receiving and
> sending messages on one end, but I didn't think that mattered since my
> get and put functions are written to adhere to the protocol's
> definition. Is there some issue I'm missing?
>

I think the point was that

derive (.., Binary)

isn't a good idea when communicating with the Non-Haskell part of the 
world. If you write serialisation functions adhering to a specified 
protocol, defining a Binary instance for your types with those functions 
isn't going to do harm.
Only it might give rise to confusion if somebody wants to transmit those 
types according to another protocol.


------------------------------

Message: 4
Date: Mon, 10 May 2010 22:49:45 +0100
From: Stephen Tetley <[email protected]>
Subject: Re: [Haskell-beginners] Haskell Serialization
Cc: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1

Hi Ashish

Daniel has largely answered this for me (thanks Daniel!).

If you define Binary instances for your data types to match a protocol
- then as Daniel says you can only use them for that protocol.
Similarly the all the regular Haskell types - Int, Word8, Float, etc.
- have Binary instances ready-made which you may not want when dealing
with anything non-Haskell [*]: numbers are always big-endian, the
encodings for Integers, Floats and the like are sparsely documented
and may well handle signs differently to an equivalent C / Java / ...
representation.

[*] Personally I'd go as far as saying, as saying you should avoid
them entirely except for writing other instances of the Binary class.

Best wishes

Stephen


------------------------------

_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 23, Issue 13
*****************************************

Reply via email to