1# [`network`](http://hackage.haskell.org/package/network) [![Build Status](https://travis-ci.org/haskell/network.svg?branch=master)](https://travis-ci.org/haskell/network) [![Build status](https://ci.appveyor.com/api/projects/status/5erq63o4m29bhl57/branch/master?svg=true)](https://ci.appveyor.com/project/eborden/network/branch/master) 2 3To build this package directly from git, you must run `autoreconf -i`. 4And then use `cabal configure; cabal build` or `stack build`. 5 6## Support Policy 7 8### GHC 9 10The `network` package support [3 major versions of GHC](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/intro.html#ghc-version-numbering-policy) only. 11This means that the current stable version and two previous stable versions are supported. 12 13### Windows 14 15We use MSYS to build this package on Windows. 16To use the `network` package on Cygwin, use `stack`. 17 18## Coding 19 20### .hs files 21 22If you need C macros created by "configure" or `CALLCONV`/`SAFE_ON_WIN`, put 23 24``` 25#include "HsNetDef.h" 26``` 27 28"HsNet.h" does now work well since Mac's cpp sucks. 29 30### .hsc files 31 32If you need `#peek`, `#poke` and others, create a `.hsc` file with 33 34``` 35#include "HsNet.h" 36``` 37 38`HsNet.h` includes `HsNefDef.h` and necessary C structures. 39Unfortunately, `hsc2hs` does not convert C macros. 40So, if you use `CALLCONV`/`SAFE_ON_WIN`, the following is also necessary: 41 42``` 43##include "HsNetDef.h" 44``` 45 46## Milestones 47 48### 2.6 49 50- [x] Making `SockAddrCan` deprecated 51 52### 2.7 53 54See https://github.com/haskell/network/issues/296 55 56- [x] Making `Network` deprecated 57- [x] Making `Network.BSD` deprecated 58- [x] Making `MkSocket` deprecated 59- [x] Making many APIs deprecated 60 61### 2.8 62 63- [x] Stop exporting the `PortNum` Constructor in `PortNumber` 64 65### 3.0 66 67- [x] Removing `Network` 68- [x] Removing `Network.BSD` 69- [x] Removing `SockAddrCan` 70- [x] Changing the internal structure of `Socket`. 71- [x] Make address extensible. 72- [x] Remove EOF errors 73