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. 12However, all GHC 8.x are supported currently. 13 14### Windows 15 16We use MSYS to build this package on Windows. 17To use the `network` package on Cygwin, use `stack`. 18 19## Coding 20 21### .hs files 22 23If you need C macros created by "configure" or `CALLCONV`/`SAFE_ON_WIN`, put 24 25``` 26#include "HsNetDef.h" 27``` 28 29"HsNet.h" does now work well since Mac's cpp sucks. 30 31### .hsc files 32 33If you need `#peek`, `#poke` and others, create a `.hsc` file with 34 35``` 36#include "HsNet.h" 37``` 38 39`HsNet.h` includes `HsNefDef.h` and necessary C structures. 40Unfortunately, `hsc2hs` does not convert C macros. 41So, if you use `CALLCONV`/`SAFE_ON_WIN`, the following is also necessary: 42 43``` 44##include "HsNetDef.h" 45``` 46 47## Milestones 48 49### 2.6 50 51- [x] Making `SockAddrCan` deprecated 52 53### 2.7 54 55See https://github.com/haskell/network/issues/296 56 57- [x] Making `Network` deprecated 58- [x] Making `Network.BSD` deprecated 59- [x] Making `MkSocket` deprecated 60- [x] Making many APIs deprecated 61 62### 2.8 63 64- [x] Stop exporting the `PortNum` Constructor in `PortNumber` 65 66### 3.0 67 68- [x] Removing `Network` 69- [x] Removing `Network.BSD` 70- [x] Removing `SockAddrCan` 71- [x] Changing the internal structure of `Socket`. 72- [x] Make address extensible. 73- [x] Remove EOF errors 74