aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/compiler.pri
Commit message (Collapse)AuthorAgeFilesLines
* Remove the qmake project filesFabian Kosmale2021-01-151-29/+0
| | | | | | | | | Remove all qmake project files, except for examples which are used to test that qmake continues to work. Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Split compiler and runtime more clearlyUlf Hermann2019-07-111-6/+2
| | | | | | | | Provide different export macros and different top level headers for each, don't include runtime headers from compiler sources. Change-Id: I7dc3f8c95839a00a871ba045ec65af87123154be Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Inline the rest of qv4compileddata.cppUlf Hermann2019-06-261-1/+0
| | | | | | | | | This way we get a header-only representation usable for the QmlCommon module. Change-Id: Ia75e445ffbee0c3b2d473a2a3a6309b2f12e8eea Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Eliminate qmldevtools_buildUlf Hermann2019-05-311-25/+6
| | | | | | | | Move the relevant files into more fitting locations and build the devtools from only parser, compiler and qmldirparser. Change-Id: Ibf37a1187f36d02983f9f43c6622acb243785b7b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Split CompiledData::CompilationUnit in twoUlf Hermann2019-05-161-4/+4
| | | | | | | | We need a CompilationUnit that only holds the data needed for compilation and another one that is executable by the runtime. Change-Id: I704d859ba028576a18460f5e3a59f210f64535d3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move QQmlIR::IRLoader out of qqmlirbuilder*Ulf Hermann2019-05-061-0/+2
| | | | | | | | We don't need it to build the IR and we can drop a few checks for V4_BOOTSTRAP this way. Change-Id: I9464e65528c70c42ebc8ddad576eaab001dc9d2f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move PropertyResolver out of qqmlirbuilder*Ulf Hermann2019-05-061-0/+2
| | | | | | | | The "early" compilation doesn't use it and we can get rid of a few V4_BOOTSTRAP checks this way. Change-Id: I1c4845aba445b105ddace0b6810e0e5c28a25b29 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move bytecode handler into a separate file, so it can be re-usedErik Verbruggen2018-05-281-2/+4
| | | | | Change-Id: I11721025fd3df5efbcc6f6c8cb31fa2f89ead03f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Tighten QML cache version checkingSimon Hausmann2018-03-201-2/+0
| | | | | | | | | | | | | Don't just include the "compile hash" of QtQml in the dependencies hash of QML files but use a dedicated field in the data structure, that we will also fill in when generating cache files ahead of time. This ensures that AOT generated cache files are considered invalid even when switching between different sha1s of declarative. Task-number: QTBUG-66986 Change-Id: I3d8ee103fd1a33a5b4c4576b3a2703fcd09712dd Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Drop the qml-interpreter featureUlf Hermann2018-01-101-9/+4
| | | | | | | We cannot build QML without interpreter anymore. Change-Id: Ibc51240caa956132eef8753fa6c75939026930d5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of the specialized Moth::CompilationUnitLars Knoll2017-08-311-2/+0
| | | | | | | | It didn't do anything special anymore, so fold the last small bit of functionality back into the base class. Change-Id: Ic8f62e645b2742aa91f13f63adaf321353962bc5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move Codegen::ScanFunctions into it's own fileLars Knoll2017-07-031-0/+2
| | | | | Change-Id: I2c6c2fa09bc58a26a350011f5d525ec9f4b89d7f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Split up qv4codegen into several filesLars Knoll2017-07-031-0/+3
| | | | | | | | | | | And changed the namespace of those classes to QV4::Compiler. ScanFunctions should over time also move into its own file. Change-Id: If084acea4a9a20b9c79ad47dac19e02dc720e098 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove now unused filesLars Knoll2017-06-301-7/+2
| | | | | | | | | Remove all files from the old compiler pipeline that are now unused. This includes the whole IR, JIT code generation, and the old Moth Isel. Change-Id: I50d06abfbcf0e9755a54ed94638f8bb74f9512b1 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Remove the old compiler pipelineLars Knoll2017-06-221-8/+2
| | | | | | | | Don't compile the JIT and related code into libQtQml anymore. Change-Id: Ieb0ec33c964d09b121ede4097fe4218b147c673d Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Move the Moth CompilationUnit into it's own fileLars Knoll2017-06-221-0/+2
| | | | | Change-Id: I8d2dc724d705360c413f9ac75535970e295d1b39 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Add a BytecodeGenerator classLars Knoll2017-06-191-0/+2
| | | | | | | | | Use the generator to store the list of instructions, labels and patches. The finalize() method can then create the final bytecode out of that list. Change-Id: If2ea3118ed6e8744545bb918ecc4bbc87d6a3ff1 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Fix gcc5 miscompile of qle_bitfieldVille Voutilainen2017-06-081-0/+4
| | | | | | | Task-number: QTBUG-61123 Change-Id: I124d925846a2f485f7b69870c5eebc7f7f6b50f7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add qtConfig(dlopen) check before adding libdlKimmo Ollila2017-05-041-1/+1
| | | | | Change-Id: Iad67b9719fe6336b8dfc28de2e88463c588a0849 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Simon Hausmann2017-04-271-2/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qtqmlglobal.h src/qtqmlglobal_p.h src/jsruntime/qv4global_p.h src/qml/compiler/compiler.pri src/qml/compiler/qv4ssa.cpp src/qmldevtools/qtqmldevtoolsglobal_p.h tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp Change-Id: I55c5d015b2cb1053b83b9c61caaf004fb49ee486
| * switch to new way to refer to libdlOswald Buddenhagen2017-04-111-1/+1
| | | | | | | | | | | | | | | | note that the condition is insufficient (it should include qtConfig(dlopen)), but this is just consistent with the c++ code. Change-Id: I4b447ff504539e4dc07ece3d696e5a85b2f4cc50 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix support for jsTr() and QT_TR_NOOP in list elements when cachingSimon Hausmann2017-04-061-2/+4
| | | | | | | | | | | | | | | | | | Similar to the Qt Quick Compiler we need to do the expression simplification pass at cache generation time to extract translation calls in list elements. Change-Id: I267fc9647ab82bc83d6b087c06c0036df38238ff Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Include the interpreter codegen and QML cache saving code in qmldevtoolsSimon Hausmann2017-01-281-4/+4
|/ | | | | Change-Id: Ic3f1476b87bfa7ab0c280c928e9ac97f92698336 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Improve QML development experienceSimon Hausmann2016-10-181-0/+1
| | | | | | | | | | | | | | | With the cache files it is tricky to do changes to the code generator and it is easy to forget that the cache files need to be re-generated. So facilitate this, we add the sha1 checksum of the QtQml library to the checksum embedded in the cache files. This is currently only implemented on Unixy platforms and it is limited to developer builds with shared libraries. This is not intended for release builds. Change-Id: If59f31f700254f7e9c6e3384d2fae4e5396fb698 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Make the Moth interpreter configurableLars Knoll2016-10-101-4/+10
| | | | | | Change-Id: I2b784820c4e39a7932f81bfee9ce78e01a2e96b5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Enable disk caching on WindowsSimon Hausmann2016-08-101-0/+1
| | | | | | | | | | | | In order to enable the disk cache we need to replace the QFile::map usage with direct win32 file API calls in order to create executable file mappings. The files opened with QFile lack GENERIC_EXECUTE in the open flags. The code remains disabled on WinRT for now. Change-Id: I7d12267755a9de0344ac087b2ff67140531d9df0 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Reduce file descriptor pressure on Unix platformsSimon Hausmann2016-08-091-0/+2
| | | | | | | | When opening cached compilation units, we can close the file descriptor after mmap'ing the contents, on Unix platforms. Change-Id: Ifb797a69743ebdc5e55db0b2e52b5cd66d071ca3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Separate header verification and mmap handling of CompiledData::UnitSimon Hausmann2016-08-091-2/+4
| | | | | | | | ...into a separate class. This will make it easier to specialize the handling for Posix and Windows platforms. Change-Id: I995538fa8239eac8586c96812086e50b4c19257f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Separate QQmlPropertyValidator into a standalone fileSimon Hausmann2016-06-171-2/+4
| | | | | | | | The type compiler file is getting crowded and this class is destined to be used outside of the scope of the type compiler. Change-Id: I21aff8ee64dbfeb039523518e912ef206637fb41 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* File naming cleanupSimon Hausmann2016-06-151-2/+4
| | | | | | | Separate out the property cache creation code into a standalone file. Change-Id: Ib67bb1ef72c3de70ebd1ca8cae41947cbad7bfe3 Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
* Extend the QML bootstrap library by the IR buildersSimon Hausmann2014-04-231-6/+16
| | | | | | | | | | | | | This is among other things needed to fix the qml import scanner to detect dependencies from .js files correctly. The patch also fixes the use of Q_QML_EXPORT towards Q_QML_PRIVATE_EXPORT where appropriate and corrects the wrong include path for the double conversion code to actually be relative to the file it is included from. This worked by accident because of other include paths present in the build. Change-Id: I338583dad2f76300819af8ab0dae8e5724c84430 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Cleanup, part 2Simon Hausmann2014-03-181-2/+2
| | | | | | | | | | | * QQmlCodeGenerator -> QQmlIR::IRBuilder (it doesn't generate code, it generates the Object/Property/Signal/etc. IR of the .qml file, that's going to get transformed to QV4::CompiledData::*) * ParsedQML -> QQmlIR::Document Change-Id: I329e858487b66e1ae528d44316761f5dd34b79f4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Move JIT infrastructure into it's own directoryLars Knoll2014-02-221-8/+0
| | | | | | | | This is a starting point to clean up some of the code base for the JIT. Change-Id: I388ce8df7d4ab87095e227cf36643f4be2594b7d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* [new compiler] CleanupsSimon Hausmann2014-01-081-2/+4
| | | | | | | | Move the code that calls the main compilation passes into a separate QQmlTypeCompiler class, away from the QQmlTypeLoader. Change-Id: Ia2f33a074d7fe7d9a092ff94d1e6cfc961ad5bdb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on ARM in ARM mode (instead of thumb2)Simon Hausmann2013-10-171-7/+4
| | | | | | | | | | We don't support the traditional ARM assembler (yet), only JIT on thumb2. In order for us to reliably check that, we have to wait until the pre-processor runs, which this patch achieves by moving all JIT enable/disable decisions into qv4global_p.h Change-Id: I7eff5b4fbf1cd26297a08dee16984ad867358113 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Beginning of a new qml parserSimon Hausmann2013-09-081-2/+4
| | | | | | | | | | | | | | The goal is to parse QML and JavaScript binding expressions/functions in one go and generate data structures that allow for the parsing to happen in a thread and the instantiation of the object tree in another thread, just reading from the generated data structures. This will replace qqmlcompiler and the VME. This new way of loading QML is currently hidden behind the QML_NEW_COMPILER=1 environment variable. There's lots of work left to fill in the gaps in object construction, Component support, Component.onComplete, error messages, etc. etc. Change-Id: I5e40643cff169f469f0b6ce151584ffee5ca5e90 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* wince: Build fix, disable the assembler when JIT is disabled.Sérgio Martins2013-08-291-2/+5
| | | | | Change-Id: Ibd22f27401c3751bc64749c6f1eea3aba57d66eb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Merge branch 'wip/v4' of ssh://codereview.qt-project.org/qt/qtdeclarative ↵Simon Hausmann2013-08-201-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into dev Conflicts: src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4codegen_p.h src/qml/compiler/qv4isel_moth.cpp src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4functionobject.cpp src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4runtime_p.h src/qml/jsruntime/qv4script.cpp sync.profile Change-Id: I1d785e2134bffac9553a1c16eed12816cbd1ad2c
| * Initial version of generator for new data structuresSimon Hausmann2013-08-151-0/+4
| | | | | | | | | | | | Change-Id: I172a504f8b4f8284967a4a02e207bf4c0a04c2a4 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Add linear scan register allocation.Erik Verbruggen2013-08-191-2/+4
|/ | | | | | | | Currently disabled for all platforms. Will be enabled step-by-step when specific platforms get supported. Change-Id: I144c6c991b1666e1ff752d776bca0a7b57a4fe7c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* The Moth VME is actually part of the runtime, not the compilerLars Knoll2013-08-081-3/+1
| | | | | Change-Id: Idcb7a6b6157c58e33192f86750ded487c0e75b9f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Restructure source codeLars Knoll2013-08-081-0/+27
Move the v4 engine classes from a subdir of qml/qml into two subdirs (compiler and jsruntime) of the qml module Remove an unsued qv4syntaxchecker class, and move the moth code directly into compiler. Change-Id: I6929bede1f25098e6cb2e68087e779fac16b0c68 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>