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