Alo Sarv
lead developer

Donate via

Latest Builds

version 0.3
tar.gz tar.bz2
Boost 1.33.1 Headers
MLDonkey Downloads Import Module Development
Payment completed
Development in progress.
Developer's Diary

Tuesday, December 06, 2005

Boost 1.33.1 update, settings changes and new builds

Apparently, the change of config file parser to Spirit wasn't such a good idea after all. The new parser was broken, and completely broke config.ini (and I didn't notice it until testers started reporting it), so quite a few testers lost their settings files due to that. In the end, I decided to revert that change completely, since it caused more problems than it solved.

However, that breakage brought two issues to my attention that I had actually been aware of for a while, but was never motivated enough to fix. Namely, ed2k userhash, and modules statistics data, were also stored in config.ini, but it's completely wrong place for them. So now we have two new files - statistics.ini, which stores all statistics-related things, and ed2k/userhash.dat, which stores your ed2k user hash. Settings are copied automatically from the old locations, but the old values are also left in place (for backwards-compatibility reasons).

Wubbla (known for his work on the http module) came up with an interesting idea today - secure sockets. The idea is to provide SecSocket class, which transparently encrypts the connection session, to simplify implementation of things that use it (https for example). After some discussion we agreed upon the base design (wrapper class with forwarding functions around SocketClient class [pimpl]), using Botan crypto library. However, Botan library doesn't provide SSL itself, it just provides means to implement this. So it's estimated that it'll take at least several weeks to properly implement SSL - but we have a reference implementation, namely Ajisai library, which started to implement the same thing a while ago, but now seems to be dead project.

Early today morning, Boost version 1.33.1 was released, being a bugfix release. Hydranode's bundled Boost sources were updated, and Hydranode compilation now requires Boost 1.33.1 headers. I made a stripped-down version of the headers, available at in two formats - tar.bz2 and zip. SVN revisions 2459 and newer require those headers to be present during compilation. Of-course, you can use the headers from the official tarball as well (they'r identical).

The reason I was waiting so anxiosly for this upgrade was that Boost.Signals library had major issues when used across DLL boundaries, and Hydranode uses a LOT of dlls, and some of the base components (events) are implemented using Boost.Signals. This update should clear up a lot of wierd crashes when having multiple modules loaded.

New builds (r2461) are available now, built against Boost 1.33.1. Windows binaries are now built with MSVC 8.0 compiler. Note that this is the first time I'm publishing MSVC-compiled binaries, so let me know if the archive is missing some dll's, or similar (I need to bundle C and C++ runtime DLL's, since we cannot link against them statically due to the modular nature of Hydranode - same reason why I'm bundling in Linux builds).

An interesting thing though - the very first MSVC build I made yesterday resulted in almost 20% smaller binaries than anything I'v managed to create after that. A complete mystery ... the first binaries bundle was 940kb, the r2461 snapshot is 1.2MB. Strangeness ...

Madcat, ZzZz

Did u remeber to burn a goat to the altar of MSVC?

MSVC 8 procuces biggers executables than 7.
But the compiler times its half time than.
So its a good balance !
I just read this Post in the university and tried to start the new build, but after starting hydranode.exe I got no output at all. I started it from a console, so there really was no output. Might be because of security restrictions, but I can run every other executable (that does not need registry and stuff) here.
Well I'm interested in the linux version anyway :) Keep up the great work!
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?