In general, this is a simple package and should be easy to install.You must have hsc2hs installed in order to compile the package (butthen you probably already do). With the cabal-install program youcan just do:

$> cabal install unix-bytestring

Or if you don't have cabal-install, then you can use the Cabal library:

The test step is optional and currently does nothing. The Haddockstep is also optional.

FFI Problems============

The unix-bytestring package uses standard POSIX header files<sys/types.h>, <sys/uio.h>, and <unistd.h>. If Cabal has difficultyfinding these files or reports another error, be sure your includepath variables are correct. If the problem persists, contact themaintainer.

Building for GHC (6.8 and above)================================

Nothing special to mention.

Building for Hugs (September 2006)==================================

I haven't actually compiled this for Hugs because I don't have anew enough version of Cabal for it, but I don't forsee any difficulties.If you do compile this for Hugs, let the maintainer know how itwent.

When compiling for Hugs, see the following bugs for Cabal's interactionwith ffihugs. These bugs do not currently affect this package, butthis notice is here in case they affect future versions. For moredetails and a minimal regression suite, see:

<http://community.haskell.org/~wren/cabal-ffihugstest/>

(1) <http://hackage.haskell.org/trac/hackage/ticket/526>Options in hugs-options aren't passed through to ffihugs, mostimportantly -98 and +o are the ones we'd like to pass. For enablingthe +o flag Hugs-Sept06 does not honor: pragma {-# LANGUAGE OverlappingInstances #-} pragma {-# OPTIONS_HUGS +o #-} cabal extensions: OverlappingInstancesAnd the -98 flag has similar issues. Therefore this is a realproblem.

Immediate solution: The options set in hugs-options should be passedto ffihugs as well. As of Cabal 1.6 they are not passed (verifiedby Duncan Coutts). The two programs accept all the same options,so this is valid.

Ideal solution: Based on the extensions field, Cabal shouldautomatically determine whether -98 and +o need to be enabled (forboth hugs and ffihugs).

(2) <http://hackage.haskell.org/trac/hackage/ticket/527>If CPP is being used in conjunction with FFI, then cpp/cpphs is notcalled before ffihugs is called. Thus, users must pass an -F flagto ffihugs in order to declare a code filter (and must pass allcpp-options to -F manually). For example:

--ffihugs-option=-F'cpp -P -traditional -D__HUGS__ -D__BLAH__'

This requires duplicating the build specifications, which defeatsthe point of Cabal. Also it leads to tricky issues about ensuringthe proper level of quoting/escaping. (e.g. using the plural,--ffihugs-options=..., breaks it. Wrapping the -F'cpp...' in doublequotes breaks it.)