thrift-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bryanduxb...@apache.org
Subject svn commit: r763029 - in /incubator/thrift/trunk/lib/hs: README src/TChannelTransport.hs src/TSocket.hs
Date Tue, 07 Apr 2009 23:23:39 GMT
Author: bryanduxbury
Date: Tue Apr  7 23:23:39 2009
New Revision: 763029

URL: http://svn.apache.org/viewvc?rev=763029&view=rev
Log:
THRIFT-390. hs: Cabalize Haskell library code

Use Cabal to build and install the Haskell library code.


Modified:
    incubator/thrift/trunk/lib/hs/README
    incubator/thrift/trunk/lib/hs/src/TChannelTransport.hs
    incubator/thrift/trunk/lib/hs/src/TSocket.hs

Modified: incubator/thrift/trunk/lib/hs/README
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/hs/README?rev=763029&r1=763028&r2=763029&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/hs/README (original)
+++ incubator/thrift/trunk/lib/hs/README Tue Apr  7 23:23:39 2009
@@ -1,19 +1,62 @@
 Haskell Thrift Bindings
 
-Running: you need -fglasgow-exts.
+Running
+=======
 
-Enums: become haskell data types. Use fromEnum to get out the int value.
+You need -fglasgow-exts. Use Cabal to compile and install. If you're trying to
+manually compile or load via ghci, and you're using ghc 6.10 (or really if your
+default base package has major version number 4), you must specify a version of
+the base package with major version number 3. Furthermore if you have the syb
+package installed you need to hide that package to avoid import conflicts.
+Here's an example of what I'm talking about:
 
-Structs: become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All fields
are Maybe types.
+  ghci -fglasgow-exts -package base-3.0.3.0 -hide-package syb -isrc Thrift.hs
 
-Exceptions: identical to structs. Throw them with throwDyn. Catch them with catchDyn.
+To determine which versions of the base package you have installed use the
+following command:
 
-Client: just a bunch of functions. You may have to import a bunch of client files to deal
with inheritance.
+  ghc-pkg list base
 
-Interface: You should only have to import the last one in the chain of inheritors. To make
an interface, declare a label:
-data MyIface = MyIface
-and then declare it an instance of each iface class, starting with the superest class and
proceding down (all the while defining the methods).
-Then pass your label to process as the handler.
+All of this is taken care of for you if you use Cabal.
 
-Processor: Just a function that takes a handler label, protocols. It calls the superclasses
process if there is a superclass.
+
+Enums
+=====
+
+become haskell data types. Use fromEnum to get out the int value.
+
+Structs
+=======
+
+become records. Field labels are ugly, of the form f_STRUCTNAME_FIELDNAME. All
+fields are Maybe types.
+
+Exceptions
+==========
+
+identical to structs. Throw them with throwDyn. Catch them with catchDyn.
+
+Client
+======
+
+just a bunch of functions. You may have to import a bunch of client files to
+deal with inheritance.
+
+Interface
+=========
+
+You should only have to import the last one in the chain of inheritors. To make
+an interface, declare a label:
+
+  data MyIface = MyIface
+
+and then declare it an instance of each iface class, starting with the superest
+class and proceding down (all the while defining the methods).  Then pass your
+label to process as the handler.
+
+Processor
+=========
+
+Just a function that takes a handler label, protocols. It calls the
+superclasses process if there is a superclass.
 

Modified: incubator/thrift/trunk/lib/hs/src/TChannelTransport.hs
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/hs/src/TChannelTransport.hs?rev=763029&r1=763028&r2=763029&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/hs/src/TChannelTransport.hs (original)
+++ incubator/thrift/trunk/lib/hs/src/TChannelTransport.hs Tue Apr  7 23:23:39 2009
@@ -18,10 +18,14 @@
 --
 
 module TChannelTransport(TChannelTrans(..)) where
-import System.IO
-import IO
+
 import Thrift
 import Control.Exception
+
+import System.IO
+import System.IO.Error ( isEOFError )
+
+
 data TChannelTrans = TChannelTrans (Handle)
 
 instance TTransport TChannelTrans where

Modified: incubator/thrift/trunk/lib/hs/src/TSocket.hs
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/hs/src/TSocket.hs?rev=763029&r1=763028&r2=763029&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/hs/src/TSocket.hs (original)
+++ incubator/thrift/trunk/lib/hs/src/TSocket.hs Tue Apr  7 23:23:39 2009
@@ -18,11 +18,15 @@
 --
 
 module TSocket(TSocket(..)) where
+
 import Thrift
 import Data.IORef
 import Network
-import IO
 import Control.Exception
+
+import System.IO
+
+
 data TSocket = TSocket{host::[Char],port::PortNumber,chan :: Maybe Handle}
 
 instance TTransport TSocket where



Mime
View raw message