This page contains info about current pseudo-release and WIP builds along with an overview of what I plan to add in the future.
Naturally, if a particular feature or fix is particularly important to you and you would like it to be implemented/fixed sooner than later, your best bets would be to either send an e-Mail or post in my modest forum... and I personally prefer the forum option, http://moonlighttorrent.dyndns.info:8080/MTForum
- Note:
- 2005-05-11: Information on this page is going to be purged progressively as MT0200 gets closer to completion and currently serves as a ToDo list and testing/design notes. I remove entries whenever they no longer appear to be relevant as far as MT0200's state is concerned.
All MoonlightTorrent builds past, present and future come with no quarantee whatsoever and are provided AS-IS, use at your own risk.
While MT does not contain any intentionally malicious code, there always is the possibility of a freakishly evil and unexpected bug... and hardware is not exempt from such issues, one well-known example is the IBM GXP "DeathStar" drives.
This section highlights a few things to keep in mind while reading about the builds.
Well, those of you who know a bit of french most likely get the idea and even those who do not most likely have heard the expression frequently enough to have a rough idea. In any case, the "Build du Jour" thing simply means I will be updating it whenever I add, fix or change a couple of meaningful things, basically a pseudo-random release schedule biased towards somewhat frequent minor releases. For all practical purposes, this is the same as what most people call Work-In-Progress (WIP) releases, hence the extra 'wip' suffix.
A "Build du Jour" usually involves the following iterative steps:
- Add some new stuff
- Build
- Do a few quick tests to see if there is any in-your-face-obvious breakage
- Zip it
- Post it
- Go to sleep
- Wait for new releases to download
- Start some downloads for testing
- See unexpected things
- Fix things
- Fix obvious breakage from previous fixes
- Repeat testing/fixing until obvious breakage is gone
- Repeat the "Build du Jour" process after finishing the download(s) and finding new issues
While reading the WIP changes list, one might wonder what the (tags) at the begining of most lines mean, here is a simple little table of them.
| Nothing | Not implemented. |
| +# | Added in wip build #. (F=Final) |
| -# | Removed since wip build #. |
| #1-#2 | Implementation began in build #1 and was completed in build #2 or is #2% complete so far. |
| * | Items I might fast-track due to personal requirements. |
| ? | Wether or not these will materialize is undecided. |
| ##% | About ##% of what is required to enable minimalist functionality is done. |
| E | Experimental stuff that appears to be working but might be broken or be might breaking other stuff in subtle ways. |
| P | Partially implemented and mostly functionnal. |
| U | Urgent stuff that will either fix old issues or foreseeable ones, make development more sustainable or are otherwise required to sustain future developments. |
| N | Expect these in the Next build or in the very Near future. |
| S | I might work on it Soon, probably within the next couple of builds. |
| M | I plan to implement these Maybe within the next few builds. |
| L | I can live without these since I have no time to work on them until (much) Later. |
| T | Temporary/Testing items, mostly to help debugging/tuning or work around glitches and rough edges. |
2004-04-17: MoonlightTorrent 0.1.0.1-alpha3
MoonlightTorrent 0.1.0.1-alpha3 (2004-04-17, 253KB)
Actually, I am not sure it really is a stable build since some experimental stuff was added not very long ago and resulted in me pulling the first two wip (4,5) after introducing them. As far as I know, the alpha3 series was rather stable all the way through and now that the experimental stuff is under control, I believe alpha3 should be better than alpha2 given all the fixes, clean-ups and enhancement that were added... and the higher alpha number :)
The main reason why alpha3 was rushed is that final exams just ended and I have relatively big plans for alpha4 (now 0.1.1.0) so I am sort of in a hurry to get started with a clean change log.
[2004-04-29] Apparently, there is at least one MT (ab)user out there other than me and he claims MT works rather nicely with his average load of 30-50 torrents. If this is really true then alpha3 must be more stable than I expected.
[2004-05-01] MoonlightTorrent 0.1.0.1-alpha3-rev1 (2004-05-01, 253KB)
The build above is an alpha3 code base re-built to use the new scheduler and with all critical wip0/wip1 patches applied. This was put together because my torture-tester reported stability issues with wip0/wip1. Because the only major difference between alpha3-r1 and the original alpha3 is the new scheduler, I am hoping this build will prove that there is nothing wrong with the new scheduler. (But then, that would mean the problem is in one or more of the 1000+ code lines added since alpha3...)
2004-02-15: MoonlightTorrent 0.1.0.1-alpha2
MoonlightTorrent 0.1.0.1-alpha2 (2004-02-15, 246KB)
This build is the first to be almost completely stable under Win2k/WinXP. It also usable under Win9x if you do not mind the known issues for that bunch. This is the first build I have used for a significant while without changing anything and without encountering any crashes or odd issues.
[2005-05-16] Why did I update the 'Updated' date here? I probably meant to update Current "Build du Jour" (WIP): 0.2.0.0-Demo-06a (2005-12-30).
[2005-03-14] After a long break and leaving MT in a broken state while trying to do too many things at once, the time for rewriting has arrived.
Changes:
- Built using VisualC++ 2005
- Many small bugfixes (many discovered thanks to VC2005's improved runtime library checks)
- Many more and less significant optimizations (reduced RAM and CPU usage)
- Many internal structure changes (merged some tightly related bits of code)
- More miscellaneous program logic clean-ups
Download:
- Note:
- Because the 'Demo' builds do not support uploading, they should only be used for feel/bug-testing.
Since MT0200 is >60% new code, there is no sense in trying to put together anything resembling a change log so the general outline goes roughly like this:
- Core: Some code salvaged from MT01xx (~75% rewritten)
- System requirements:
- Windows 2000 or XP
- ~5% CPU time on an Athlon64-3000+ while downloading at 1MB/s and verbose logging enabled (can anybody actually read chunk RX/TX messages at that rate?)
- Roughly 16MB RAM
- Virtual file:
- Reused mostly as-is, some optimizations and added thread-safery
- Still "features" the out-of-disk-space lock-up and pop-up continuum on file system errors
- Peer and peer sockets:
- Almost completely rewritten
- Disposed of most intermediate buffers and copies
- Torrent:
- Mostly new code except for startup
- Merged the virtual file and peer queue managers into the torrent code to get rid of cross-dependencies
- Bunch of small optimizations
- Trackers:
- Actually check HTTP headers instead of brute-forcing zlib
- Refined malformed request handling and cleaned up some loops
- Basic chunked transfer support for the few such trackers I have encountered to date
- Core:
- Mostly rewritten
- Dumped specialized and redundant threads, now using the Win2k/XP API's "QueueUserWorkItem" which dynamically creates and pools threads as necessary to maximize system resources usage during heavy processing - such as startup file rehashing
- Everywhere:
- Eliminated multiple redundant or otherwise equivalent code paths
- More liberal use of worker threads for mid-sized tasks and to avoid deadlocks
- Added update counters to skip costly processing on unchanged items
- Rewrote bitfield manipulations to use templated functions and functors simplify and optimize arbitrary functions, providing as much as a 10X speed-up in some specific cases
- Migrated most lists from MFC CTypedPtrList to STL since the STL makes working with smart pointers and reference-counted objects much more convenient
- Many subltle bug-fixes thanks to VC2005's improved runtime library checks
- GUI: MT01xx code reused wherever possible (~40% rewritten)
- Now using nested tabs to keep information density down to a more sane level
MoonlightTorrent 0.1.1.0-wip4 (2004-06-27, 288KB)
If wip3 can be considered a modest update, wip4 takes modesty to the next level. WIP4 features a couple of memory leaks and potential crash-bug fixes along with some other minor tweaks and code clean-ups.
MoonlightTorrent 0.1.1.0-wip3 (2004-06-07, 286KB)
In terms of features, wip3 is rather modest. In terms of bug fixes, it is also rather modest. In fact, it is rather modest overall but it does have a number of important tracker handling enhancements:
- support for compressed (gzip) tracker responses
- support for compact peer lists
- support for private tracker keys
- plain-text peer ID and key generation (minor bandwidth saving)
The combination of these additions bring MT's tracker support up to current specs and should make MT more compatible with the pickier trackers currently out there.
The following is a summary of what I expect to work in the near (... <- grains of salt, the rest is up to you) future. Some may be duplicates from my next release plans which I will eventually remove from this list, others may be stuff that has been in there since the begining and might not be implemented any time soon. Trivial items will be removed as I implement them, more important items that are not already in the next build's plans will be migrated there as they are implemented.
- (L) Drag&Drop and clipboard-monitoring for .torrent URLs.
- Note: Drag&Drop requires clipboard hooks so I presume these two will turn out to be pretty much one and the same.
- (M) Make read/writes in asynchronous threads to remove more minor hiccups.
- Async IO would be nice were it not for the sector-aligned data requirement which makes them completely useless for multi-file torrents.
- Mystery Bugs:
- Known Issues:
- Dead-lock on out-of-disk-space.
- Suggested temporary work-arounds:
- Buy a larger HDD
- Move files to another drive to free space
- Stop downloading until I address this issue :)
- [2004-07-15] I have not run out of disk space again since the first time I ran out of disk space so I am wondering if MT's out-of-disk-space behavior has changed since...
- Very annoying "Sharing Access Violation" (or any other file-system IO error) pop-up boxes when accessing files opened by some other application or some access restrictions
Hits since December 5, 2003:
Generated on Fri Dec 30 05:33:31 2005 for MoonlightTorrent(.com) by
1.4.5