1. 23 Oct, 2017 1 commit
  2. 21 Oct, 2017 1 commit
  3. 05 Oct, 2017 1 commit
    • Marco Bubke's avatar
      Clang: Add file cache · d2e15e5f
      Marco Bubke authored
      The database is using file path integer ids to handle file paths because
      otherwise we would save many redundant data. This patch is improving it
      further with the introduction of a database based file path cache. The
      entries are now divided in a directory path and file name. This is quite
      handy for directory based file watching.
      
      Change-Id: I03f2e388e43f3d521d6bf8e39dfb95eb2309dc73
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      d2e15e5f
  4. 20 Sep, 2017 3 commits
  5. 18 Sep, 2017 1 commit
    • Marco Bubke's avatar
      ProjectExplorer: Remove test for Macro · 53f68fd8
      Marco Bubke authored
      Under windows the signature for private and public member are different. So
      the hack to make private members public is not working. The other method
      to use a macro project macro header is not wanted.
      
      Change-Id: I25a3f4a8645394ba6b49a7d4778adab90155f892
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      53f68fd8
  6. 15 Sep, 2017 1 commit
  7. 14 Sep, 2017 2 commits
    • Marco Bubke's avatar
      Convert macros from plain QByteArray to a vector of structs · b6e12f4a
      Marco Bubke authored
      The old code model expected the macros as C++ formatted text
      ("#define Foo 42) but newer targets like the Clang codemodel expect key
      value arguments like "-DFoo=42". So instead of parsing the text again and
      again we use an abstract data description.
      
      Task-number: QTCREATORBUG-17915
      Change-Id: I0179fd13c48a581e91ee79bba9d42d501c26f19f
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      b6e12f4a
    • Marco Bubke's avatar
      Clang: Add Symbol Indexing · 3adb71d4
      Marco Bubke authored
      It is a first step and now a database is generated if you start QtCreator.
      Some code is now shared with the PchManager which can be improved in the
      future.
      
      Change-Id: Ic267fe7960f6c455d91832859a673ce98f269aa2
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      3adb71d4
  8. 30 Aug, 2017 1 commit
  9. 29 Aug, 2017 4 commits
  10. 18 Aug, 2017 1 commit
  11. 03 Aug, 2017 1 commit
    • Nikolai Kosjar's avatar
      Clang: Suspend least recently used translation units · 2d27c553
      Nikolai Kosjar authored
      ...to free some memory.
      
      The translation units of the 7 most recently used documents ("hot
      documents", tracked by document visibility) are kept in memory.
      Translation units of other documents are suspended and will be resumed
      once they become visible again.
      
      The resumption of a translation unit needs the same time as reparse
      (since it is a reparse effectively).
      
      The number of hot documents can be modified by the run time environment
      variable QTC_CLANG_HOT_DOCUMENTS=N. Visible documents are always hot.
      
      Task-number: QTCREATORBUG-11640
      Change-Id: I68ecd2b1373e303372300203e42d90f65a4b39b3
      Reviewed-by: Ivan Donchevskii's avatarIvan Donchevskii <ivan.donchevskii@qt.io>
      Reviewed-by: Marco Bubke's avatarMarco Bubke <marco.bubke@qt.io>
      2d27c553
  12. 24 Jul, 2017 1 commit
  13. 21 Jul, 2017 1 commit
  14. 20 Jul, 2017 1 commit
  15. 03 Jul, 2017 3 commits
  16. 29 Jun, 2017 1 commit
  17. 28 Jun, 2017 1 commit
    • Marco Bubke's avatar
      Clang: Fix canceling of clang query · f5d68398
      Marco Bubke authored
      Every AST unit is created and queried asynchronously, like before, but
      we don't wait anymore but use a timer to process new sources. So the server
      will not be blocked and can process other messages like cancel.
      
      Change-Id: If0e69466c78f628190f59fd32a03cab1c3a4d0a3
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      f5d68398
  18. 15 Jun, 2017 1 commit
  19. 14 Jun, 2017 1 commit
  20. 06 Mar, 2017 1 commit
  21. 27 Feb, 2017 1 commit
    • Eike Ziller's avatar
      Move mimetype definitions to plugin specs · d64e17ad
      Eike Ziller authored
      - Avoids the hassle of QRC files and manually registering mime types
      - Avoids performance regressions because of mime types that are
        registered after mime database has been used
      - Makes it technically possible to detect that a disabled plugin could
        handle a mime type if it was enabled
      
      Change-Id: I373008b1b56e9c6b4853055f20b3eeb112a6eff9
      Reviewed-by: Christian Stenger's avatarChristian Stenger <christian.stenger@qt.io>
      Reviewed-by: default avatarhjk <hjk@qt.io>
      d64e17ad
  22. 20 Feb, 2017 1 commit
    • Nikolai Kosjar's avatar
      CppTools/ProjectManagers: Reduce ui blocking when loading projects · 8c90998f
      Nikolai Kosjar authored
      ${AnyProject}::updateCppCodeModel() did two potentially not that cheap
      operations in the ui thread:
       (1) Querying the MimeDatabase for the mime type for the source files of
           the project. In 99.9% of the cases no files need to be read for
           this as the file extension will resolve the type. The expensiveness
           comes from the sheer number of files that can occur.
       (2) Calling compilers with the "(sub)project's compiler command line"
           to determine the macros. While the caches avoid redundant calls,
           the number of the unique compiler calls makes this still a
           ui-freezing experience.
      
      These two operations are moved into a worker thread. For this, the
      expensive compiler calls are encapsulated in thread safe lambdas
      ("runners") in order to keep the "mutexed" data minimal. The original
      API calls of the toolchains are implemented in terms of the runners.
      
      While adapting the project managers, remove also the calls to
      setProjectLanguage(). These are redundant because all of the project
      managers already set a proper value in the constructor. Also, currently
      there is no need (client) to report back detection of C sources in
      project parts. This also keeps CppProjectUpdater simple.
      
      There is still room for improvement:
       * Run the compiler calls in parallel instead of sequence.
       * Ensure that the mime type for a file is determined exactly once.
      
      Change-Id: I2efc4e132ee88e3c8f264012ec8fafe3d86c404f
      Reviewed-by: Tobias Hunger's avatarTobias Hunger <tobias.hunger@qt.io>
      8c90998f
  23. 10 Feb, 2017 1 commit
  24. 09 Feb, 2017 1 commit
  25. 06 Feb, 2017 1 commit
  26. 31 Jan, 2017 2 commits
    • Marco Bubke's avatar
      Clang: Add Process Generator · ea4141ee
      Marco Bubke authored
      So far we only compiled the precompiled headers only sequentially. The
      process generator is creating, managing a queue of processes to compile
      the PCHs parallel.
      
      Change-Id: I8075def4ef9e6b0191bbd51b3631d1c51ec7b361
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      ea4141ee
    • Marco Bubke's avatar
      Clang: Add timer based path notification compression · 2c55a9c5
      Marco Bubke authored
      QFileWatcher is only reporting one path per signal which is suboptimal if
      you change many files at once. This patch is introducing a timer which is
      waiting some time time to see if more path changes are reported and is
      collecting them in a vector.
      
      Change-Id: I50f7c21186353b199634e7b3cd5a41f8d581a31d
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      2c55a9c5
  27. 30 Jan, 2017 2 commits
    • Marco Bubke's avatar
      Clang: Add ClangPchManager · c072cdfb
      Marco Bubke authored
      Compiling every header file again and again is quite time comsuming. There
      are technics to improve this like preambles(a kind of automated
      precompiled header) but they don't share their data between translation
      units. This approach provides an automatically generated precompiled
      header for every project and subproject to improve the loading time.
      
      Change-Id: I34f5bd4db21951175920e2a9bbf6b97b1d705969
      Reviewed-by: Eike Ziller's avatarEike Ziller <eike.ziller@qt.io>
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      c072cdfb
    • Tim Jenssen's avatar
      UnitTests: fix that feature "shared" was set · d4b1cb4a
      Tim Jenssen authored
      Resulted in wrong import/export defines of Utils symbols. Also it needs
      to be set before the project includes are be done.
      
      Change-Id: I950155a92c9a8ea21d5d91a57bd42058980d3971
      Reviewed-by: Marco Bubke's avatarMarco Bubke <marco.bubke@qt.io>
      d4b1cb4a
  28. 04 Jan, 2017 1 commit
    • Marco Bubke's avatar
      UnitTests: Fix names and disable slow tests by default · ada5ea19
      Marco Bubke authored
      Slow and very slow tests have now their own test category. We add SlowTest
      for tests which are slower than ~5ms and VerySlowTest if they are slower
      than ~100ms. They are disabled them by "-*SlowTest.*". If you have a faster
      machine than most developers simply try lower values. The aim is that most
      developers can execute the tests in under ~2s.
      
      In the long run we should use dependency breaking and data sharing to
      reduce the count of the slow tests.
      
      Change-Id: I8578071258d7f89b2052709f3dd526ced811483f
      Reviewed-by: Nikolai Kosjar's avatarNikolai Kosjar <nikolai.kosjar@qt.io>
      ada5ea19
  29. 20 Dec, 2016 1 commit
  30. 16 Dec, 2016 1 commit