Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Dayman

Pages: [1]
Cafe lounge / Win10
« on: July 29, 2015, 10:37:23 pm »
So, has anybody updated yet?

So far the biggest plus I see is that command prompt can go fullscreen xD

Windows / Stack unwind on mingw
« on: November 27, 2014, 06:20:20 pm »
So, I've been trying to resurrect my mingw64 builds. Everything works except backtrace functionality.

This stuff is real mess with mingw. I'm asking if anyone has accomplished printing a meaningful backtrace with mingw on amd64 arch?

This is what I'm getting:

Code: [Select]
#  0 qbittorrent.exe      0x004b462e  0x004b462e()
#  1 qbittorrent.exe      0x004b5412  0x004b5412()
#  2 qbittorrent.exe      0x00514f81  qt_plugin_instance()
#  3 ntdll.dll            0x7ffcf30c2316 _C_specific_handler()
#  4 ntdll.dll            0x7ffcf30d398d _chkstk()
#  5 ntdll.dll            0x7ffcf30993a7 RtlRaiseException()
#  6 ntdll.dll            0x7ffcf30d2b1a KiUserExceptionDispatcher()
#  7 qbittorrent.exe      0x00474670  0x00474670()
#  8 qbittorrent.exe      0x00475316  0x00475316()
#  9 qbittorrent.exe      0x00508900  qt_plugin_instance()
# 10 QtCore4.dll          0x5b42368b  ZN11QMetaObject8activateEP7QObjectPKS_iPPv()
# 11 QtGui4.dll           0x5a936833  ZN7QWidget5eventEP6QEvent()
# 12 QtGui4.dll           0x5acb22d0  ZN6QFrame5eventEP6QEvent()
# 13 QtGui4.dll           0x5adcb93b  ZN17QAbstractItemView13viewportEventEP6QEvent()
# 14 QtGui4.dll           0x5ae11501  ZN9QTreeView13viewportEventEP6QEvent()
# 15 QtCore4.dll          0x5b40f388  ZN23QCoreApplicationPrivate29sendThroughObjectEventFiltersEP7QObjectP6QEvent()
# 16 QtGui4.dll           0x5a8e106f  ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent()
# 17 QtGui4.dll           0x5a8e7e62  ZN12QApplication6notifyEP7QObjectP6QEvent()
# 18 qbittorrent.exe      0x004f08f3  qt_plugin_instance()
# 19 QtCore4.dll          0x5b40f24c  ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent()
# 20 QtGui4.dll           0x5a950d33  ZN19QApplicationPrivate10closePopupEP7QWidget()
# 21 QtGui4.dll           0x5a95269e  ZN19QApplicationPrivate10closePopupEP7QWidget()
# 22 USER32.dll           0x7ffcf26b250d DispatchMessageW()
# 23 USER32.dll           0x7ffcf26b2367 NotifyWinEvent()
# 24 QtCore4.dll          0x5b43d599  ZN21QEventDispatcherWin3213processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE()
# 25 QtGui4.dll           0x5a94e686  ZN12QApplication21restoreOverrideCursorEv()
# 26 QtCore4.dll          0x5b40dd76  ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE()
# 27 QtCore4.dll          0x5b40e1e4  ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE()
# 28 QtCore4.dll          0x5b413e00  ZN16QCoreApplication4execEv()
# 29 qbittorrent.exe      0x004b65fc  0x004b65fc()
# 30 qbittorrent.exe      0x00516124  qt_plugin_instance()
# 31 qbittorrent.exe      0x004013b5  0x004013b5()
# 32 qbittorrent.exe      0x004014c8  0x004014c8()
# 33 KERNEL32.DLL         0x7ffcf28413d2 BaseThreadInitThunk()
# 34 ntdll.dll            0x7ffcf30b03c4 RtlUserThreadStart()

As you can see symbols from loaded libraries resolve correctly, but internal qBt methods are not. If I call GetLastError after failed SymGetSymFromAddr I get code 487 - "Attempt to access invalid address."

qBt is built in release mode against release libraries with the following flags:
Code: [Select]
CFLAGS = -g -ggdb -O0 -fno-inline -fno-omit-frame-pointer -fno-stack-protector -UQT_NO_DEBUG_OUTPUT -fexceptions
LFLAGS = -fno-stack-protector

Cafe lounge / .NET going open source
« on: November 12, 2014, 07:00:46 pm »
NEW YORK — Nov. 12, 2014 — On Wednesday, Microsoft Corp. reinforced its commitment to cross-platform developer experiences by open sourcing the full server-side .NET stack and expanding .NET to run on the Linux and Mac OS platforms. Microsoft also released Visual Studio Community 2013, a new free edition of Visual Studio that provides easy access to the Visual Studio core toolset. The announcements kicked off Microsoft’s Connect (); event, where the company released Visual Studio 2015 Preview and .NET 2015 Preview.

Interesting. Why all of a sudden?

Cafe lounge / mail provider
« on: July 11, 2013, 11:10:58 pm »
Has anybody used it?
I had a mailbox there long time ago, but it's features (gmx allows regexp filters) were useless to me back then. Now, when I have lots of mail and gmail with it's pathetic filters can't keep up I'm thinking about going back to gmx.

Generic / Poor DL on super-mega-well-seeded-torrents in lt?
« on: June 10, 2013, 08:57:08 pm »
Just asking if anybody had similar issues (see screenshot).
As you can see I'm chocked on all fronts. This always happens on exceptionally well-seeded torrents (around 100K in swarm as you can see). One would expect speed to sky rocket, but it just crawls at very slow speeds (max was around 150 KiB/s; my ISP limit is 70 Mb/s aka 8.75 MiB/s)

Limits are: 25 conn./torrent, 250 conn/global, 20 half-open

Cafe lounge / Any good documentation generators?
« on: January 13, 2013, 06:28:24 pm »
I think the documentation question has been raised a couple of times already. qBittorrent could benefit from having documentation (or at least options description) a lot.

And so I'm looking for documentation generators. The end-user documentation, so Doxygen won't do.
The only thing I can think of is Qt Help system, which can be integrated quiet well.

Maintaining documentation in Wiki is ok, but will be incompatible with older versions.

Requirements are:
  • Can generate documentation from command line
  • Multi-platform (at least Win/Unix/Mac) support
  • TOC (Table of Contents) autogeneration
  • Preferable output type (one of):
    • Single HTML
    • Standard-compliant PDF
    • Binary (like QtHelp; it actually uses sqlite3 database btw)
  • Input files can be easily put under vcs (aka 'input files are text files')
  • Do not require a lot of fancy stuff at runtime (like perl or python)

I currently have 3 candidates: AsciiDoc, Sphinx and markdown. Can't find any good sources on Qt documentation markup, will need to examine end-user documentation sources for designer/assistant/creator to see what it's made of.

Windows - QA Department / Unofficial 64-bit installer/archive 3.3.x
« on: December 29, 2012, 09:27:09 pm »
So, here finally come the builds.
Supported operating systems: Windows Vista x64, Windows7 x64, Windows8 x64
Unsupported operating systems: Windows XP x64, Windows Server 2003 x64


Q: Why are files named is this way qBittorrent-3.1.0alpha-release-3.0.0-171-gbb16636-x64-setup.exe?
A: The blue text represents qBittorrent version as defined by 'PROJECT_VERSION' variable in version.pri file.
The red text represents version string extracted by 'git describe --long', which can be used to identify the latest commit this particular build is based on, like this:

Q: What is the difference between qBittorrent-3.1.0alpha-*-x64-setup.exe and qBittorrent-experimental-3.1.0alpha-*-x64-setup.exe?
A: The version tagged with experimental has patches which are not in master branch; those patches are usually taken from pending pull requests. The list of additional patches is always included in this post. You can check out what experimental branch has here.

Q: Do I need to uninstall 32-bit qBittorrent first in order to use 64-bit qBittorrent?
A: Yes and No. It is recommended to uninstall it first, but you can keep it if you want. 64-bit installer will ask you if you want to uninstall 32-bit version automatically, manually or proceed anyway.
Current limitations of having 32-bit and 64-bit qBittorrent installed at the same time include but not limited to:
  • You cannot launch and use both versions at the same time
  • Associations for torrent files and magnet links will point to the last qBt version installed (depends on chosen options during installation) or, if your account is in 'Administrators' group and qBittorent is configured to register associations itself upon start, they will point to last launched version
Q: I'm using archive version and qBittorrent cannot set associations for torrent files and/or magnet links.
A: Associating a file extension or protocol system-wide requires administrative privileges. Start qBittorent as Administrator once, set desired options in Preferences->Behavior->Associations and close qBittorrent.

Currently available versions:
  • 3.0.6 [Qt 4.8.4; libtorrent 0.16.6; OpenSSL 1.0.1c; Boost 1.52]
  • 3.0.7 [Qt 4.8.4; libtorrent 0.16.7; OpenSSL 1.0.1c; Boost 1.52]
  • 3.0.8 [Qt 4.8.4; libtorrent 0.16.7; OpenSSL 1.0.1c; Boost 1.52]
  • 3.0.9 [Qt 4.8.4; libtorrent 0.16.9; OpenSSL 1.0.1e; Boost 1.53]
  • 3.0.10 [Qt 4.8.4; libtorrent 0.16.10; OpenSSL 1.0.1e; Boost 1.54]
  • 3.0.11 [Qt 4.8.5; libtorrent 0.16.10; OpenSSL 1.0.1e; Boost 1.54]
  • 3.1.0 [Qt 4.8.5; libtorrent 0.16.11; OpenSSL 1.0.1e; Boost 1.54]
  • 3.1.1 [Qt 4.8.5; libtorrent 0.16.12; OpenSSL 1.0.1e; Boost 1.54]
  • 3.1.2 [Qt 4.8.5; libtorrent 0.16.12; OpenSSL 1.0.1e; Boost 1.55]
  • 3.1.3 [Qt 4.8.5; libtorrent 0.16.12; OpenSSL 1.0.1e; Boost 1.55]
  • 3.1.4 [Qt 4.8.5; libtorrent 0.16.13; OpenSSL 1.0.1e; Boost 1.55]
  • 3.1.5 [Qt 4.8.5; libtorrent 0.16.13; OpenSSL 1.0.1e; Boost 1.55]
  • 3.1.8 [Qt 4.8.5; libtorrent 0.16.15; OpenSSL 1.0.1f; Boost 1.55]
  • 3.1.9 [Qt 4.8.5; libtorrent 0.16.15; OpenSSL 1.0.1f; Boost 1.55]
  • [Qt 4.8.5; libtorrent 0.16.16; OpenSSL 1.0.1f; Boost 1.55]
  • 3.1.10 [Qt 4.8.6; libtorrent 0.16.17; OpenSSL 1.0.1i; Boost 1.56]
  • 3.1.11 [Qt 4.8.6; libtorrent 0.16.17; OpenSSL 1.0.1j; Boost 1.56]
  • 3.1.12 [Qt 4.8.6; libtorrent 0.16.19; OpenSSL 1.0.2; Boost 1.55]
  • 3.2.0 [Qt 4.8.6 / Qt 5.4.1; libtorrent 1.0.5; OpenSSL 1.0.2a; Boost 1.55]
  • 3.2.1 [Qt 4.8.7 / Qt 5.5.0; libtorrent 1.0.6; OpenSSL 1.0.2d; Boost 1.55] (includes torrent renaming patch)
  • 3.2.3 [Qt 4.8.7 / Qt 5.5.0; libtorrent 1.0.6; OpenSSL 1.0.2d; Boost 1.55]
  • 3.2.4 [Qt 4.8.7 / Qt 5.5.0; libtorrent 1.0.6; OpenSSL 1.0.2d; Boost 1.55]
  • 3.2.5 [Qt 4.8.7 / Qt 5.5.1; libtorrent 1.0.7; OpenSSL 1.0.2d; Boost 1.55]
  • 3.3.1 [Qt 5.5.1; libtorrent 1.0.7; OpenSSL 1.0.2d; Boost 1.55]
  • 3.3.5 [Qt 5.7.0; libtorrent 1.0.9/1.1.0; OpenSSL 1.0.2h; Boost 1.61]
All files can be found here:

Big FAT Warning on Qt5 builds:

If you do replace Qt4 version with a Qt5 version all your headers in the UI (torrent list, tracker list, files list, etc) will be messed up (not possible to resize, empty headers and so on).

You have two options to counter this:
  • Do a clean install. You need to manually remove %APPDATA%\qBittorrent\qBittorrent.ini You will lose settings but torrents should remain intact.
  • Manually edit %APPDATA%\qBittorrent\qBittorrent.ini and remove information about header positions. All your torrents and options (except columns configurations ofc) are preserved.
  • It looks like the above issue is fixed in recent Qt versions (5.4.0 and up); but downgrading to Qt4 and back to Qt5 will still break the headers.
If you decide to go with option #2 you need to look for lines similar to these (they are safe to remove):

Code: [Select]
[email protected](\0\0\0\xff\0\0\0\0\0\0\0\x2\0\0\0x\0\0\x2\b\x1\0\0\0\x5\x1\0\0\0\x1)
[email protected](\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x5)\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x3\0\0\x1\xe6\0\0\0\x1\0\0\0\0\0\0\0\xc8\0\0\0\x2\0\0\0\0\0\0\x2{\0\0\0\x1\0\0\0\0)
Peers\[email protected](\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x5\x18\0\0\0\n\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x3\0\0\0\x1f\0\0\0\x1\0\0\0\0\0\0\x3 \0\0\0\b\0\0\0\0\0\0\x1\xd9\0\0\0\x1\0\0\0\0)

This is an example - you'll have different values after '=' sign.

P.S. If anybody is interested: build script, installer script

Windows / Windows stacktrace support
« on: December 25, 2012, 12:43:25 pm »
I'm wondering if it is possible to add stacktrace on crash functionality on windows. This may do a lot of good since windows AppCrash dialog shows nothing useful.

Cafe lounge / The big CPU topic (and Qt5?)
« on: December 09, 2012, 10:22:30 pm »
RC1 is already out. Are we going to do some porting?
Btw Qt's configure now requires perl (the one in root folder for sure).

The configure has the following options now:
Code: [Select]
Installation options:

These are optional, but you may specify install directories.

    -prefix <dir> ...... This will install everything relative to <dir>
                         (default $QT_INSTALL_PREFIX)

    -hostprefix [dir] .. Tools and libraries needed when developing
                         applications are installed in [dir]. If [dir] is not
                         given, the current build directory will be used.
                         (default PREFIX)

You may use these to separate different parts of the install:

    -bindir <dir> ...... User executables will be installed to <dir>
                         (default PREFIX/bin)
    -libdir <dir> ...... Libraries will be installed to <dir>
                         (default PREFIX/lib)
    -headerdir <dir> ... Headers will be installed to <dir>
                         (default PREFIX/include)
    -archdatadir <dir> . Architecture-dependent data used by Qt will be
                         installed to <dir>
                         (default PREFIX)
    -libexecdir <dir> .. Program executables will be installed to <dir>
                         (default ARCHDATADIR/libexec)
    -plugindir <dir> ... Plugins will be installed to <dir>
                         (default ARCHDATADIR/plugins)
    -importdir <dir> ... Imports for QML1 will be installed to <dir>
                         (default ARCHDATADIR/imports)
    -qmldir <dir> ...... Imports for QML2 will be installed to <dir>
                         (default ARCHDATADIR/qml)
    -datadir <dir> ..... Data used by Qt programs will be installed to <dir>
                         (default PREFIX)
    -docdir <dir> ...... Documentation will be installed to <dir>
                         (default DATADIR/doc)
    -translationdir <dir> Translations of Qt programs will be installed to
                          (default DATADIR/translations)
    -examplesdir <dir> . Examples will be installed to <dir>
                         (default PREFIX/examples)
    -testsdir <dir> .... Tests will be installed to <dir>
                         (default PREFIX/tests)

    -hostbindir <dir> .. Host executables will be installed to <dir>
                         (default HOSTPREFIX/bin)
    -hostdatadir <dir> . Data used by qmake will be installed to <dir>
                         (default HOSTPREFIX)

Configure options:

 The defaults (*) are usually acceptable. A plus (+) denotes a default value
 that needs to be evaluated. If the evaluation succeeds, the feature is
 included. Here is a short explanation of each option:

    -release ........... Compile and link Qt with debugging turned off.
 *  -debug ............. Compile and link Qt with debugging turned on.
 +  -debug-and-release . Compile and link two Qt libraries, with and without
                         debugging turned on.

    -force-debug-info .. Create symbol files for release builds.

    -developer-build ... Compile and link Qt with Qt developer options
                         (including auto-tests exporting)

    -opensource ........ Compile and link the Open-Source Edition of Qt.
    -commercial ........ Compile and link the Commercial Edition of Qt.

    -c++11 ............. Compile Qt with C++11 support enabled.
    -no-c++11 .......... Do not compile Qt with C++11 support enabled.

 *  -shared ............ Create and use shared Qt libraries.
    -static ............ Create and use static Qt libraries.

    -ltcg .............. Use Link Time Code Generation. (Release builds only)
 *  -no-ltcg ........... Do not use Link Time Code Generation.

 *  -no-fast ........... Configure Qt normally by generating Makefiles for all
                         project files.
    -fast .............. Configure Qt quickly by generating Makefiles only for
                         library and subdirectory targets.  All other Makefiles
                         are created as wrappers which will in turn run qmake.

    -make <part> ....... Add part to the list of parts to be built at make time
    -nomake <part> ..... Exclude part from the list of parts to be built.

    -no-widgets ........ Disable QtWidgets module.

    -no-accessibility .. Do not compile Windows Active Accessibility support.
 *  -accessibility ..... Compile Windows Active Accessibility support.

    -no-sql-<driver> ... Disable SQL <driver> entirely, by default none are
                         turned on.
    -qt-sql-<driver> ... Enable a SQL <driver> in the Qt Library.
    -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to at run
                         Available values for <driver>:
 +                         sqlite
                         (drivers marked with a '+' have been detected as
                         available on this system)

    -system-sqlite ..... Use sqlite from the operating system.

    -no-opengl ......... Do not support OpenGL.
    -opengl <api> ...... Enable OpenGL support with specified API version.
                         Available values for <api>:
                           desktop - Enable support for Desktop OpenGL
                           es1 - Enable support for OpenGL ES Common Profile
 *                         es2 - Enable support for OpenGL ES 2.0

 *  -no-openvg ......... Disables OpenVG functionality.
    -openvg ............ Enables OpenVG functionality.

    -force-asserts ..... Activate asserts in release mode.

    -platform <spec> ... The operating system and compiler you are building on.
                         (default %QMAKESPEC%)

    -xplatform <spec> .. The operating system and compiler you are cross
                         compiling to.

                         See the README file for a list of supported operating
                         systems and compilers.

    -sysroot <dir> ..... Sets <dir> as the target compiler's and qmake's
                         sysroot and also sets pkg-config paths.
    -no-gcc-sysroot .... When using -sysroot, it disables the passing of
                         --sysroot to the compiler.

 *  -no-nis ............ Do not compile NIS support.
    -nis ............... Compile NIS support.

    -neon .............. Enable the use of NEON instructions.
 *  -no-neon ........... Do not enable the use of NEON instructions.

    -no-iconv .......... Do not enable support for iconv(3).
 +  -iconv ............. Enable support for iconv(3).
 +  -sun-iconv ......... Enable support for iconv(3) using sun-iconv.
 +  -gnu-iconv ......... Enable support for iconv(3) using gnu-libiconv.

 +  -inotify ........... Explicitly enable Qt inotify(7) support.
    -no-inotify ........ Explicitly disable Qt inotify(7) support.

 *  -largefile ......... Enables Qt to access files larger than 4 GB.

    -fontconfig ........ Build with FontConfig support.
 *  -no-fontconfig ..... Do not build with FontConfig support.

    -posix-ipc ......... Enable POSIX IPC.

    -glib .............. Compile Glib support.

    -sysconfdir <dir> .. Settings used by Qt programs will be looked for in

    -system-proxies .... Use system network proxies by default.
 *  -no-system-proxies . Do not use system network proxies by default.

    -qtnamespace <name> Wraps all Qt library code in 'namespace name {...}'.
    -qtlibinfix <infix> Renames all Qt* libs to Qt*<infix>.

    -D <define> ........ Add an explicit define to the preprocessor.
    -I <includepath> ... Add an explicit include path.
    -L <librarypath> ... Add an explicit library path.
    -l <libraryname> ... Add an explicit library name, residing in a

    -help, -h, -? ...... Display this information.

Third Party Libraries:

    -qt-zlib ........... Use the zlib bundled with Qt.
 +  -system-zlib ....... Use zlib from the operating system.

    -qt-pcre ........... Use the PCRE library bundled with Qt.
    -system-pcre ....... Use the PCRE library from the operating system.

 +  -icu ............... Use the ICU library.
    -no-icu ............ Do not use the ICU library.

    -no-gif ............ Do not compile GIF reading support.

    -no-libpng ......... Do not compile PNG support.
    -qt-libpng ......... Use the libpng bundled with Qt.
 +  -system-libpng ..... Use libpng from the operating system.

    -no-libjpeg ........ Do not compile JPEG support.
    -qt-libjpeg ........ Use the libjpeg bundled with Qt.
 +  -system-libjpeg .... Use libjpeg from the operating system.

    -no-freetype ....... Do not compile in Freetype2 support.
 *  -qt-freetype ....... Use the libfreetype bundled with Qt.
 *  -system-freetype ... Use the libfreetype provided by the system.
 +  -angle ............. Use the ANGLE implementation of OpenGL ES 2.0.
    -no-angle .......... Do not use ANGLE.

Qt for Windows only:

    -no-vcproj ......... Do not generate VC++ .vcproj files.
 *  -vcproj ............ Generate VC++ .vcproj files, only if platform

    -no-incredibuild-xge Do not add IncrediBuild XGE distribution commands to
                         custom build steps.
 +  -incredibuild-xge .. Add IncrediBuild XGE distribution commands to custom
                         build steps. This will distribute MOC and UIC steps,
                         and other custom buildsteps which are added to the
                         INCREDIBUILD_XGE variable.
                         (The IncrediBuild distribution commands are only added
                         to Visual Studio projects)

    -no-plugin-manifests Do not embed manifests in plugins.
 *  -plugin-manifests .. Embed manifests in plugins.

    -no-qmake .......... Do not compile qmake.
 *  -qmake ............. Compile qmake.

 *  -process ........... Generate top-level Makefiles/Project files.
    -fully-process ..... Generate Makefiles/Project files for the entire Qt
    -dont-process ...... Do not generate Makefiles/Project files. This will
                         override -no-fast if specified.

    -no-rtti ........... Do not compile runtime type information.
 *  -rtti .............. Compile runtime type information.
    -no-strip .......... Do not strip libraries and executables of debug info
                         when installing.
 *  -strip ............. Strip libraries and executables of debug info when

    -no-sse2 ........... Do not compile with use of SSE2 instructions.
 +  -sse2 .............. Compile with use of SSE2 instructions.
    -no-sse3 ........... Do not compile with use of SSE3 instructions.
 +  -sse3 .............. Compile with use of SSE3 instructions.
    -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
 +  -ssse3 ............. Compile with use of SSSE3 instructions.
    -no-sse4.1 ......... Do not compile with use of SSE4.1 instructions.
 +  -sse4.1 ............ Compile with use of SSE4.1 instructions.
    -no-sse4.2 ......... Do not compile with use of SSE4.2 instructions.
 +  -sse4.2 ............ Compile with use of SSE4.2 instructions.
    -no-avx ............ Do not compile with use of AVX instructions.
 +  -avx ............... Compile with use of AVX instructions.
    -no-avx2 ........... Do not compile with use of AVX2 instructions.
 +  -avx2 .............. Compile with use of AVX2 instructions.

    -no-openssl ........ Do not compile support for OpenSSL.
 +  -openssl ........... Enable run-time OpenSSL support.
    -openssl-linked .... Enable linked OpenSSL support.

    -no-dbus ........... Do not compile in D-Bus support.
 +  -dbus .............. Compile in D-Bus support and load libdbus-1
    -dbus-linked ....... Compile in D-Bus support and link to libdbus-1.

    -no-audio-backend .. Do not compile in the platform audio backend into
 +  -audio-backend ..... Compile in the platform audio backend into

    -no-qml-debug ...... Do not build the in-process QML debugging support.
 *  -qml-debug ......... Build the in-process QML debugging support.

 *  -no-directwrite .... Do not build support for DirectWrite font rendering.
    -directwrite ....... Build support for DirectWrite font rendering
                         (experimental, requires DirectWrite availability on
                         target systems, e.g. Windows Vista with Platform
                         Update, Windows 7, etc.)

    -no-style-<style> .. Disable <style> entirely.
    -qt-style-<style> .. Enable <style> in the Qt Library.
                         Available styles:
 *                         windows
 +                         windowsxp
 +                         windowsvista
 *                         fusion

    -no-native-gestures Do not use native gestures on Windows 7.
 *  -native-gestures ... Use native gestures on Windows 7.

 *  -no-mp ............. Do not use multiple processors for compiling with MSVC
    -mp ................ Use multiple processors for compiling with MSVC (-MP).

    -loadconfig <config> Run configure with the parameters from file configure_
    -saveconfig <config> Run configure and save the parameters in file
    -redo .............. Run configure with the same parameters as last time.

Qt for Windows CE only:

    -no-iwmmxt ......... Do not compile with use of IWMMXT instructions.
 +  -iwmmxt ............ Do compile with use of IWMMXT instructions. (Qt for
                         Windows CE on Arm only)

 *  -no-crt ............ Do not add the C runtime to default deployment rules.
    -qt-crt ............ Qt identifies C runtime during project generation.
    -crt <path> ........ Specify path to C runtime used for project generation.

    -no-cetest ......... Do not compile Windows CE remote test application.
 +  -cetest ............ Compile Windows CE remote test application.

    -signature <file> .. Use <file> for signing the target project.

And these options are gone:
Code: [Select]
-graphicssystem <value>

Most notable changes: sse3, ssse3, sse4.1, sse4.2, avx, avx2; removal of qt styles (like cleanlooks and plastique; and as far as i remember qBt needs -qt-style-cleanlooks -qt-style-plastique) and addition of qt-fusion style; building webkit now requires ICU library.
SSE stuff seems to have runtime checks (I hope): saw no usual -DQT_HAS_MMX during QtCore compilation. Or maybe they removed SSE defines from all modules except QtOpenGL (it was used only there anyway). "-qt-freetype" and "-qt-pcre"; Qt now has freetype and libpcre bundled.

P.S. I'm not able to build stuff continuously now (bought new CPU and still have old cooler - sky high temps on full load, even setting process affinity doesn't help).

Just looked through qmakespecs
Code: [Select]
QMAKE_CFLAGS_SSE2       = -arch:SSE2
QMAKE_CFLAGS_SSE3       = -arch:SSE2
QMAKE_CFLAGS_SSSE3      = -arch:SSE2
QMAKE_CFLAGS_SSE4_1     = -arch:SSE2
QMAKE_CFLAGS_SSE4_2     = -arch:SSE2
QMAKE_CFLAGS_AVX        = -arch:AVX
QMAKE_CFLAGS_AVX2       = -arch:AVX
Looks like no asm code is used and everything is decided by compiler.
Attaching screenshot of typical dynamic build for qBt (to compare size). QtGui now consists of two modules: gui and widgets.

Cafe lounge / Bugtracker: not as useful as it could be
« on: November 20, 2012, 10:24:57 pm »
I'd strongly recommend on developing some kind of guidelines for bug reporting.
The bare minimum of:
  • OS
  • qBt version
    repo used in case of Linux
    full blown list of dependencies versions if using a custom build from sources
  • steps to reproduce
would be nice to have, 'cause currently most of reports mention the 'bare minimum' only after an explicit question.

P.S. GitHub bug tracker is IMO really featureless. Sure it gives good integration and fork management, but maybe it would be better to migrate to something 'heavier'?

Generic / Caching mechanism mem overconsumption
« on: October 19, 2012, 05:38:59 pm »
Has anyone noticed memory overconsumption since 3.0.7 (most likely introduced by this commit ) when disk write cache size is set to auto.

For example with manual 64 Meg cache i get around 160 Megs of ram consumed. With disk cache set to auto this goes to around 600+ Megs.
This would be fine if, for example, I'm downloading with high speed and some heavy disk I/O is running in the background. But this happens even if I have no downloads at all - only uploads.

P.S. That's probably libtorrent bug, but nevertheless I'd like somebody to confirm this.

Generic / All DHT nodes are dropped after 30m+ uptime
« on: June 26, 2012, 09:35:16 pm »
I have a strange situation. When i start qbt i see 50+ DHT nodes, but after qbt runs for more than 30 minutes all DHT nodes are dropped (status bar says "DHT: 0").
DHT/PeX/uTP are all enabled. Both udp and tcp ports are forwarded through NAT.
Can anybody confirm this behavior?

Pages: [1]