Here are the notes from the session

https://wiki.qt.io/Qt_Contributors_Summit_2019_-_moc_and_QMetaObject

Summary:

We discuss if we should rewrite moc using libclang.
moc currently hasn't still fully be ported to support C++11 yet. Features such as raw literals, trailing returns and other will confuse moc. It is agreed that using clang for moc would be the path forward even if it is slower. We discussed that we should use the clang C API for compatibility reasons. we should avoid using Qt in the implementation to simplify the bootstrap proccess. There is already a prototype i made years ago (but it is using the C++ API) https://github.com/woboq/moc-ng However this was not seen as a blocking issue for Qt6 as the changes we want to do to the "generator" can easily be ported to the new moc without requiring to do all the work twice..

We discussed if Qt should provide an additional API such as
https://github.com/woboq/verdigris which allow to write code that does not use moc. But the consensus is that this wasn't usefull, and that verdigris can stay a separate library. However it should still be made possible. (And a solution for the new json output required by QML3 will be needed)

We discussed the reflexion features coming in future version of C++. But since this is for the far future and won't help us immediately, we won't consider them now. Later they can be adopted.

The QMetaObject itself will gain new feature for performance reasons so QML can be faster.

--
Olivier
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to