katie/README

91 lines
4.6 KiB
Text
Raw Permalink Normal View History

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:
- QMake, Linguist, Assistant, checksdk, macdeployqt, pixeltool, qconfig,
qdoc, qev, qvfb, runonphone, designer and other non-essential
- Qt3Support, QtWebKit, QtHelp, QtXmlPatterns, QtOpenGL, ActiveQt, Phonon,
QtMultimedia, QtSql, QtDesigner, QtDesignerComponents, QtScriptTtools,
QtScript and QtDeclarative
- some things have changed:
- QMake build system replaced with CMake
- Jansson, Freetype, ICU, X11, libpng and libdeflate are required for building
- D-Bus and CUPS must be linked to during build
- QtUiTools is build as shared library by default
- moc, uic, etc. are linked to components
- versioned and extended classes have been merged into the base class,
e.g. QIconEngineV2 into QIconEngine and QKeyEventEx into QKeyEvent
- QGuiPlatformPlugin class is public
- updated localizations data from Common Locale Data Repository v42
- QTranslator uses gettext for translations
2016-02-22 00:25:06 +02:00
- OpenVG is no longer supported graphics output
- Blitter is no longer supported painting engine
- native graphics system is no more, rasterizer is faster than native
- QPicture, QPictureIO and plugins for it are no longer supported
- no SIMD, zero performance impact with decent compiler
- state machine is no more
2016-02-22 00:25:06 +02:00
- removed 3rd party sources that are very common nowdays
- dropped non-open source and discontinued platforms support
- dropped dnotify filesystem watcher support
- dropped Glib2 event dispatcher support
- dropped support for a.out format
- dropped Motif Drag-And-Drop (DND) support
- dropped LPR support
- dropped static plugins support
- dropped XBM, PBM, PPM, PGM, MNG, BMP, ICO, TGA, JPEG, TIFF and GIF image format support
- dropped obscure (24-bit) and indexed (8-bit) image formats support
- dropped Valgrind support
- dropped recursive mutex and lock support
- dropped wide character and string support
- dropped network interfaces management support
- dropped no-op touch devices support
- dropped bitmap fonts support
- dropped accessibility support
- some additions have been made:
- custom image format
- 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
- JSON document handler
- standard directories handler
- building with LTO is possible and supported, if the toolchain can handle it
- alternative libc implementations support
- additional text codecs via ICU converter
- Unicode v5.0+ characters and partial scripts support
- support for AArch64 architecture
- support for locale aliases
- SVG document handler use libdeflate which is much faster
- stack backtrace on assert, crash or warning via execinfo
- brief manual pages for all command-line tools
- desktop files, Shell profile and dynamic linker/loader config
- more reliable qrand(), seeded per thread
- improved signal/slot template arguments handling
- improved namespaces support and introduced QT_NAMESPACE_COMPAT
- improved cross-compilation support
- improved POSIX, XSI, SUSv2, etc. requirements build checks
- tests and benchmarks can be run without prior installation
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,
QTBUG-40153, QTBUG-35479, QTBUG-1628, QTBUG-42989, QTBUG-34861, QTBUG-46767,
QTBUG-25114, QTBUG-24672, QTBUG-23524 (WIP), QTBUG-56088, QTBUG-42189,
QTBUG-39285, QTBUG-18173, QTBUG-28968, QTBUG-34336, QTBUG-40974, QTBUG-44286,
QTBUG-12564, QTBUG-20028, QTBUG-71967, QTBUG-70956, QTBUG-71446, QTBUG-61307,
QTBUG-27287, QTBUG-25143, QTBUG-22833, QTBUG-57399, QTBUG-59159, QTBUG-15773,
QTBUG-70506, QTBUG-46054, QTBUG-11223, QTBUG-63108, QTBUG-6932, QTBUG-42365,
QTBUG-83817, QTBUG-4341, QTBUG-36933, QTBUG-49113, QTBUG-69920, QTBUG-40015,
QTBUG-54942, QTBUG-91261, QTBUG-73445, QTBUG-21098, QTBUG-59966, QTBUG-85520
Unless you use QMake and QDoc porting to Katie or even supporting it along with
Qt4 in the same codebase is trivial and requires only minor changes because
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
are linked to Qt4 from applications linked to Katie will trigger undefined
behavior.