Merge commit 'tuncer/for-jesper'
[etorrent.git] / NEWS
blob6251bbe86d72765933691f8c50307738c08a8de0
1 Version 0.9:
3   This is yet another Tech. Preview release. The torrent client works
4   to the point where it can be used to download things, but it have
5   not seen much testing yet and there are numerous places it can be
6   improved still. Yet, there are so many changes, that it warrants a
7   new release.
9   The current regressions revolve around a high CPU usage at times. We
10   expect to tackle this problem next with some profiling. We also
11   expect to tackle fast resume support as the main "new thing". And
12   some 10 things in the issue tracker and the TODO lists for the
13   next release. I don't expect it to follow as fast as this one.
15   One development methodology change worth mentioning: the git
16   repository now uses several branches laid out as described in
17   doc/git.txt. Tracking the 'master' branch ought to provide you with
18   a system that is stable at all times, while tracking the 'next'
19   branch gives you the 'cooking pot' of new things that ought to be
20   tested. We'll try to keep 'next' stable, though it may have problems
21   at times.
23   Changes:
25   - There is a set of new commands for viewing what is currently
26   cooking in the torrent client. etorrent:l/0, etorrent:s/1,
27   etorrent:h/0. Implemented with help from Tuncer Ayaz.
29   - Changed build infrastructure. No more autoconf. It simplifies the
30   build structure considerably. Introduce the use of EMakefile for
31   building the erlang parts of the system. Reinstate all make targets
32   and add a 'tags' target for building a TAGS file.
34   - etorrent now correctly handles the 'min_interval' tracker response
35   parameter. It is not strictly part of the spec, but everybody uses
36   it.
38   - Add support for installing etorrent. A shell-script, etorrentctl,
39   is provided to control the etorrent daemon. The installer, while
40   overly simple, has not seen much testing as of yet and may not
41   work. It will be tested before v1.0.
43   - etorrent no longer pre-fills files it want to download with
44   junk. It uses the semantics of fseek() to make a file of the right
45   size initially.
47   - several ETS restructurings has brought the memory use
48   down. Before, etorrent would take some 660 megabytes of memory
49   running 20 torrents. Now it is more like 50-80 megabytes for 20
50   torrents. More can be shaved but this is a good start. Also, memory
51   usage still occasionally spikes because we are doing nothing in certain
52   situations to limit it.
54   - New choking/unchoking algorithm, based on a combination of
55   BitTornado/BitTorrent/Transmission. This is not the smartest one can
56   do, but it follows the spec more or less precisely.
58   - Event Publisher. A gen_event OTP behaviour one can subscribe to and
59   get information about the system. A logfile subscriber is there by
60   default.
62   - Rate calculation optimizations. etorrent now uses a running
63   average over a period of up to 20 seconds to measure the rate of a
64   peer. This yields a more fair measurement of individual peers so we
65   claim the best peers. While here, change the sockets to be passive
66   for now. It bumps the CPU-usage, but makes the rate calculation more
67   precise. There are several optimizations possible revolving around
68   passive/active sockets.
70   - Robustize the supervisor tree. etorrent is now less likely to die
71   due to a crash somewhere in the tree. It is not entirely safe yet,
72   but it will be during the next releases.
74 Version 0.8:
76   First Technology Preview.