Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
6.7.2
-
None
-
Linux, NixOS unstable (commit d0e1602ddde669d5beb01aec49d71a51937ed7be)
Description
The QML engine will not run AOT compiled code or bytecode generated by qmlcachegen.
My steps:
- compile the attached test
- edit <builddir>/.rcc/qmlcache/cachegen_test_qmlcache_loader.cpp
- add 'qCritical() << ":: REGISTRY INIT";' on the first line of "Registry"'s constructor.
- Add 'qCritical() << ":: lookupCachedUnit" << url;' on the opening line of 'Registry::lookupCachedUnit'
- edit <builddir>/.rcc/qmlcache/cachegen_test_test_qml.cpp
- Add 'qCritical() << ":: AOT EXPRESSION EVALUATED";' following the comment that starts with '// expression for onCompleted'
- recompile the test, ensuring the edited files are rebuilt
You will see the following:
> ./build/cachegen_test :: REGISTRY INIT qml: Component.onComplete called
The only thing happening with the generated cache is initialization of its registry. It is never used to load a compilation unit, and the AOT compilation does not run.
Logs with QML_IMPORT_TRACE=1 and QT_LOGGING_RULES="qt*=true" are attached.