View previous topic :: View next topic |
Author |
Message |
wyrmchild
Joined: 27 May 2006 Posts: 12 Location: Europe
|
Posted: Fri Jun 23, 2006 11:04 am Post subject: Updates, problems and some ideas... |
|
|
Next update is taking a while as I'm working quite randomly on different parts of the code, and have been recoding a lot, trying to find a good design/form for all of it (with little success).
Update [July 17, 2006] : There's been problems committing new data to SVN, and I haven't tried it again in the past few weeks, so I'm not sure if the problem persists (I sent pm to brad or whoever I thought could help some time ago).
Currently my greatest concern is Event I/O, however, as in Windows I can only poll sockets and not file descriptors in general (AFAIK), so I have to do something I never did, when I coded in GNU/Linux. How I miss epoll(4) :(
Update [July 17, 2006] : I hear there's some weird AIO stuff possible in windows, but as far as I can tell, there's no port of it in std D. So, I'll probably either go for libevent (though it probably only uses select in windows) or write my own event i/o interface. The latter would be good if I manage to get it working well.
The second problem is that of multiple torrents running in same process. The design required for this and the event I/O magic is still beyond me, though I have several ideas which I need to test.
Update [July 3, 2006] : I have two alternatives for this, and I'm going for the one that's easier to use when we have only single listening port.
Update [July 17, 2006] : Or not.. I need to figure out something good for this. I'm not sure which is worse, polling one huge set or multiple smaller ones. Large has like one call to poll and then few matches to make to find where it belongs, smaller set would have multiple calls to poll, but it would be much faster to know where the thing goes. I'm not sure which scales better, but it would be easier to manage smaller sets.
Last problem is the file/piece manager. I have absolutely no clue on how I should approach it. So I'll probably leave this last, as it's not really needed to work for anything... just some false positives and we're set for alpha testing :D
Update [July 17, 2006] : MMAP seems to be the only method for file access that does NOT require loading of the file completely in memory. Mango's MappedBuffer is what I've already tried in one test app, and it seemed to work quite well, so that's probably what I'll use.
Then there's also the internal debate for GUI... I've been thinking whether I'd go the mainstream way and integrate it in the client, or go the way MPD went and have a daemon to do all the real work and have some sort of telnet interface to communicate with it. I'm currently all for the daemon-thingie, as it'd free me of MUCH work, and give free reigns to people who want custom GUIs, too :>
Update [July 3, 2006] : It seems I'll try to write a GUI after all, since I managed to get one of the GUI libraries to compile and keep from crashing from some obscure reason. I'm not too happy with it, but at least it works for now and is simple enough to use. Oh, and the library I'm using for now is DFL. Tried DWT (which crases) and Harmonia (which doesn't compile) before ending up with it... Can't remember why I didn't use DUI, though.. DXUL would've been the "nicest" option, but since it seems to be dead, I can't use it.
Update [July 17, 2006] : After experimenting a lot, I noticed the GUI, in some cases, would block the internal stuff of the client unless I created a separate thread for it. And there was that little problem with me not figuring out a good way to propagate data from the core client to gui without tying the core with the GUI (which would've been bad IMO). Tried some reporter delegate() stuff, but that seemed too complex, and I didn't want to create huge number of delegates for hooking everywhere, so I just abandoned the thing. I'll look into it later, again, maybe.
And as always, help is appreciated, as are other helpful or constructive comments or whatever. |
|
Back to top |
|
|
wyrmchild
Joined: 27 May 2006 Posts: 12 Location: Europe
|
Posted: Sat Dec 02, 2006 1:39 am Post subject: Delayed |
|
|
Thought I'd mention this here, since I haven't been able to update the project in a while.
For some reason I can't commit new data to DSource's SVN server, the problem has persisted for about 6 months now. And I haven't improved the codebase since I first encountered the problem. The cause is presumably my ISP's transparent proxy unintentionally breakig WebDAV. HTTPS should fix the problem since I can commit data to SF.net without any problems through it.
And lastly, DMD 0.175 seems to break std.socket, so I can't test anything related to sockets for now.
Until then, I'll be working on some more or less unrelated C++ projects |
|
Back to top |
|
|
wyrmchild
Joined: 27 May 2006 Posts: 12 Location: Europe
|
Posted: Wed May 02, 2007 1:08 pm Post subject: |
|
|
Surprise, surprise! SVN commit went through. Nothing's changed on my side, and I've been quite able to use other SVN servers during the time I was unable to commit stuff here. Anyways, I haven't worked on the client at all during the time, and I'm not sure when I can make some free time to continue working on it now that the SVN seems to be working here again. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|