2016-01-29 19:03:19 +02:00
|
|
|
Katie is continuation of the Qt4 C++ toolkit with the goal to keep it alive,
|
|
|
|
clean it up, fix some bugs and backport some features from Qt5. It is based
|
|
|
|
on the latest Git revision of Qt v4.8.
|
|
|
|
|
|
|
|
There are several things you should be aware before considering Katie:
|
|
|
|
|
|
|
|
- some components and tools have been removed:
|
2016-03-16 17:44:37 +00:00
|
|
|
- QMake, Linguist, Assistant, checksdk, macdeployqt, pixeltool, qconfig,
|
2023-05-25 02:33:59 +03:00
|
|
|
qdoc, qev, qvfb, runonphone, designer and other non-essential
|
2021-10-03 10:03:07 +03:00
|
|
|
- Qt3Support, QtWebKit, QtHelp, QtXmlPatterns, QtOpenGL, ActiveQt, Phonon,
|
2023-10-19 15:24:41 +03:00
|
|
|
QtMultimedia, QtSql, QtDesigner, QtDesignerComponents, QtScriptTtools,
|
|
|
|
QtScript and QtDeclarative
|
2016-01-29 19:03:19 +02:00
|
|
|
|
|
|
|
- some things have changed:
|
|
|
|
- QMake build system replaced with CMake
|
2022-02-28 05:08:23 +02:00
|
|
|
- Jansson, Freetype, ICU, X11 and libpng are required for building
|
2022-02-21 16:41:02 +02:00
|
|
|
- D-Bus and CUPS must be linked to during build
|
2016-01-29 19:03:19 +02:00
|
|
|
- QtUiTools is build as shared library by default
|
2022-10-29 10:34:57 +03:00
|
|
|
- moc, uic, etc. are linked to components
|
2016-01-29 19:03:19 +02:00
|
|
|
- updated bundled Harfbuzz from upstream (not Harfbuzz-NG)
|
2020-08-11 17:23:21 +03:00
|
|
|
- versioned and extended classes have been merged into the base class,
|
|
|
|
e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
|
|
|
|
- QGuiPlatformPlugin class is public
|
2022-12-18 19:46:31 +02:00
|
|
|
- updated localizations data from Common Locale Data Repository v42
|
2020-12-24 18:39:12 +00:00
|
|
|
- QTranslator uses gettext for translations
|
2016-02-22 00:25:06 +02:00
|
|
|
- OpenVG is no longer supported graphics output
|
2016-06-28 13:49:11 +00:00
|
|
|
- Blitter is no longer supported painting engine
|
2021-08-10 18:45:17 +03:00
|
|
|
- native graphics system is no more, rasterizer is faster than native
|
2016-11-11 01:10:39 +00:00
|
|
|
- QPicture, QPictureIO and plugins for it are no longer supported
|
2016-09-21 18:47:00 +00:00
|
|
|
- no SIMD, zero performance impact with decent compiler
|
2016-10-23 02:52:09 +00:00
|
|
|
- state machine is no more
|
2016-02-22 00:25:06 +02:00
|
|
|
- removed 3rd party sources that are very common nowdays
|
2020-11-24 21:12:06 +00:00
|
|
|
- dropped non-open source and discontinued platforms support
|
2019-11-26 08:55:51 +00:00
|
|
|
- dropped dnotify filesystem watcher support
|
|
|
|
- dropped Glib2 event dispatcher support
|
2020-02-01 14:04:14 +00:00
|
|
|
- dropped support for a.out format
|
|
|
|
- dropped Motif Drag-And-Drop (DND) support
|
|
|
|
- dropped LPR support
|
2020-11-09 04:47:58 +02:00
|
|
|
- dropped static plugins support
|
2021-12-17 11:31:05 +02:00
|
|
|
- dropped XBM, PGM, MNG, BMP, ICO, TGA, JPEG, TIFF and GIF image format support
|
2022-01-29 05:48:42 +02:00
|
|
|
- dropped obscure (24-bit) and indexed (8-bit) image formats support
|
2020-11-24 21:12:06 +00:00
|
|
|
- dropped Valgrind support
|
2021-07-22 17:36:57 +03:00
|
|
|
- dropped recursive mutex and lock support
|
2021-07-31 19:56:52 +03:00
|
|
|
- dropped wide character and string support
|
2021-08-25 17:38:20 +03:00
|
|
|
- dropped network interfaces management support
|
2021-09-17 01:57:39 +03:00
|
|
|
- dropped no-op touch devices support
|
2022-01-19 18:01:22 +02:00
|
|
|
- dropped bitmap fonts support
|
2022-01-26 19:24:38 +02:00
|
|
|
- dropped accessibility support
|
2016-01-29 19:03:19 +02:00
|
|
|
|
2022-02-27 22:31:24 +02:00
|
|
|
- some additions have been made:
|
|
|
|
- custom image format
|
2022-11-02 04:26:43 +02:00
|
|
|
- custom translations format
|
drop BLAKE3 in favour of custom hash algorithm
faster than BLAKE3 and the other algorithms with collisions risk
reduced based on the length of the input data, benchmark result:
********* Start testing of tst_qcryptographichash *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_qcryptographichash::initTestCase()
RESULT : tst_qcryptographichash::append():"10 (Md5)":
0.00280 msecs per iteration (total: 561, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha1)":
0.00333 msecs per iteration (total: 667, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha256)":
0.00467 msecs per iteration (total: 934, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (Sha512)":
0.00361 msecs per iteration (total: 723, iterations: 200000)
RESULT : tst_qcryptographichash::append():"10 (KAT)":
0.00219 msecs per iteration (total: 439, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Md5)":
0.000620 msecs per iteration (total: 124, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha1)":
0.00109 msecs per iteration (total: 219, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha256)":
0.000900 msecs per iteration (total: 180, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (Sha512)":
0.00106 msecs per iteration (total: 212, iterations: 200000)
RESULT : tst_qcryptographichash::append():"100 (KAT)":
0.000740 msecs per iteration (total: 148, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Md5)":
0.000580 msecs per iteration (total: 116, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha1)":
0.00134 msecs per iteration (total: 268, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha256)":
0.000845 msecs per iteration (total: 169, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (Sha512)":
0.00100 msecs per iteration (total: 200, iterations: 200000)
RESULT : tst_qcryptographichash::append():"250 (KAT)":
0.000625 msecs per iteration (total: 125, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Md5)":
0.000550 msecs per iteration (total: 110, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha1)":
0.00137 msecs per iteration (total: 274, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha256)":
0.000830 msecs per iteration (total: 166, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (Sha512)":
0.000985 msecs per iteration (total: 197, iterations: 200000)
RESULT : tst_qcryptographichash::append():"500 (KAT)":
0.000575 msecs per iteration (total: 115, iterations: 200000)
PASS : tst_qcryptographichash::append()
RESULT : tst_qcryptographichash::append_once():"Md5":
0.00155 msecs per iteration (total: 310, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha1":
0.00212 msecs per iteration (total: 424, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha256":
0.00414 msecs per iteration (total: 828, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"Sha512":
0.00314 msecs per iteration (total: 629, iterations: 200000)
RESULT : tst_qcryptographichash::append_once():"KAT":
0.000805 msecs per iteration (total: 161, iterations: 200000)
PASS : tst_qcryptographichash::append_once()
RESULT : tst_qcryptographichash::statichash():"Md5":
0.00149 msecs per iteration (total: 298, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha1":
0.00206 msecs per iteration (total: 413, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha256":
0.00408 msecs per iteration (total: 817, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"Sha512":
0.00309 msecs per iteration (total: 618, iterations: 200000)
RESULT : tst_qcryptographichash::statichash():"KAT":
0.000610 msecs per iteration (total: 122, iterations: 200000)
PASS : tst_qcryptographichash::statichash()
PASS : tst_qcryptographichash::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of tst_qcryptographichash *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-03-13 22:59:25 +02:00
|
|
|
- custom hash algorithm
|
2021-02-12 13:31:19 +02:00
|
|
|
- JSON document handler
|
2016-01-29 19:03:19 +02:00
|
|
|
- standard directories handler
|
2016-09-21 18:47:00 +00:00
|
|
|
- building with LTO is possible and supported, if the toolchain can handle it
|
2016-03-03 22:19:56 +02:00
|
|
|
- alternative libc implementations support
|
2019-11-26 08:55:51 +00:00
|
|
|
- additional text codecs via ICU converter
|
2019-07-23 20:02:45 +00:00
|
|
|
- Unicode v5.0+ characters and partial scripts support
|
2020-11-24 21:12:06 +00:00
|
|
|
- support for AArch64 architecture
|
2019-11-26 08:55:51 +00:00
|
|
|
- support for locale aliases
|
2022-02-05 02:52:02 +02:00
|
|
|
- qCompress() and qUncompress() use libdeflate which is much faster
|
2021-01-21 17:50:20 +02:00
|
|
|
- stack backtrace on assert, crash or warning via execinfo
|
2016-11-11 21:18:45 +00:00
|
|
|
- brief manual pages for all command-line tools
|
2019-05-23 20:55:56 +00:00
|
|
|
- desktop files, Shell profile and dynamic linker/loader config
|
2016-10-24 22:24:07 +00:00
|
|
|
- more reliable qrand(), seeded per thread
|
2019-06-29 23:10:02 +00:00
|
|
|
- improved signal/slot template arguments handling
|
2017-08-09 04:35:57 +00:00
|
|
|
- improved namespaces support and introduced QT_NAMESPACE_COMPAT
|
2019-12-25 17:57:59 +00:00
|
|
|
- improved cross-compilation support
|
2020-01-30 09:27:25 +00:00
|
|
|
- improved POSIX, XSI, SUSv2, etc. requirements build checks
|
2019-07-09 17:20:24 +00:00
|
|
|
- tests and benchmarks can be run without prior installation
|
2016-01-29 19:03:19 +02:00
|
|
|
|
|
|
|
Bugs fixed in Katie, some of which in Qt5 too:
|
|
|
|
QTBUG-23502, QTBUG-37115, QTBUG-15052, QTBUG-23522, QTBUG-6139, QTBUG-26889,
|
|
|
|
QTBUG-21548, QTBUG-6133, QTBUG-18188, QTBUG-36767, QTBUG-35387, QTBUG-37035,
|
2016-02-22 00:25:06 +02:00
|
|
|
QTBUG-28321, QTBUG-21993, QTBUG-26590, QTBUG-2124, QTBUG-20482, QTBUG-41361,
|
2016-06-22 15:01:33 +00:00
|
|
|
QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
|
2019-05-12 01:53:55 +00:00
|
|
|
QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
|
2019-05-29 15:04:12 +00:00
|
|
|
QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
|
2019-08-11 09:27:53 +00:00
|
|
|
QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
|
2019-11-26 23:15:58 +00:00
|
|
|
QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
|
2021-03-21 18:39:11 +02:00
|
|
|
QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108, QTBUG-6932, QTBUG-42365,
|
2021-08-09 03:39:58 +03:00
|
|
|
QTBUG-83817, QTBUG-4341, QTBUG-36933, QTBUG-49113, QTBUG-69920, QTBUG-40015,
|
2022-06-09 05:51:34 +03:00
|
|
|
QTBUG-54942, QTBUG-91261, QTBUG-73445, QTBUG-21098, QTBUG-59966, QTBUG-85520
|
2016-01-29 19:03:19 +02:00
|
|
|
|
|
|
|
Unless you use QMake and QDoc porting to Katie or even supporting it along with
|
2016-01-31 17:59:24 +02:00
|
|
|
Qt4 in the same codebase is trivial and requires only minor changes because
|
2016-07-19 07:08:23 +03:00
|
|
|
Katie is mostly source compatible with Qt 4.8.x, compatibility with releases
|
|
|
|
earlier than that is not a goal. Do note that using libraries that
|
2016-05-28 01:54:43 +00:00
|
|
|
are linked to Qt4 from applications linked to Katie will trigger undefined
|
2021-01-12 04:53:44 +02:00
|
|
|
behavior.
|