1. 21 Sep, 2019 1 commit
  2. 16 Sep, 2019 2 commits
  3. 14 Sep, 2019 1 commit
    • Jehan's avatar
      tools: improve the install-* meson targets. · 8e74a22c
      Jehan authored
      Continue installing the list of files to install even if a failure
      occured. In particular, I encountered a problem where script-fu was
      failing to install because the installed binary was being executed (and
      its memory probably mmap-ed). Hence the copy failed with:
      
      > [Errno 26] Text file busy: '/my/prefix/lib64/gimp/2.99/plug-ins/script-fu/script-fu'
      
      Yet trying to reinstall plug-ins while GIMP is being run, hence
      script-fu is being executed, is a very common development trick (for me
      at least). So instead, when such an error occurs, I simply save it and
      output all the exceptions in the end (where these warnings are properly
      visible), instead of failing everything.
      
      Of course, ideally the subtarget should not even try to install
      script-fu as it is unchanged. This is why I changed shutil.copy() by
      shutil.copy2() to install metadata, which include last access timestamp.
      Maybe this could be used to decide whether the installed file is already
      the last one, thus not retry, though I am actually unsure if this is
      enough (on the other hand, the ultimate check of bit-to-bit comparison
      may obviously be too much/slow which is counter-productive), which is
      why I am not doing this change right now.
      8e74a22c
  4. 12 Sep, 2019 2 commits
    • Ell's avatar
      tools: add mnemonic-clashes to EXTRA_DIST · f0a8a5b6
      Ell authored
      f0a8a5b6
    • Ell's avatar
      tools: add mnemonic-clashes tool · a2a7fc99
      Ell authored
      Add a new mnemonic-clashes tool, which checks for mnemonic clashes
      in menus.  This tool can be invoked directly from the shell.  It
      takes an optional parameter which limits the search to a specific
      type of menus, according to their xml tag (in particular, "menu"
      for regular menus, and "popup" for popup menus).
      a2a7fc99
  5. 11 Sep, 2019 3 commits
    • Jehan's avatar
      tools: fix install-* meson targets. · 3bfbf997
      Jehan authored
      We should not rely on the current working directory, as it looks like
      meson sets it to be the source directory (even when actually in the
      build dir) when running custom target (so it fails).
      
      Instead meson explicitly sets MESON_SOURCE_ROOT and MESON_BUILD_ROOT
      environment variables for us. We should use these. This should work in
      every cases (whether calling from the source or build dir).
      
      Also removing the special-casing for a _build/ directory. This updated
      version is generic and won't assume that you used some generic naming or
      direct subdir under the source (even if many people might use this path
      and name; I, for one, certainly don't!).
      
      See: https://mesonbuild.com/Run-targets.html
      3bfbf997
    • Salamandar's avatar
      Add meson_install_subdir script · db892273
      Salamandar authored
      db892273
    • Salamandar's avatar
      Meson port. · 65eff6f1
      Salamandar authored
      65eff6f1
  6. 07 Aug, 2019 1 commit
  7. 28 Jul, 2019 1 commit
    • Jehan's avatar
      tools: port defcheck.py to Python 3. · 94b73487
      Jehan authored
      This build-only file could theoretically still run with Python 2, but
      since now we use Python 3, better not our build to require both Python 2
      and 3.
      94b73487
  8. 11 Jun, 2019 1 commit
  9. 01 May, 2019 1 commit
  10. 25 Jan, 2019 2 commits
  11. 23 Jan, 2019 2 commits
  12. 16 Jan, 2019 2 commits
  13. 03 Jan, 2019 1 commit
  14. 10 Nov, 2018 1 commit
  15. 09 Nov, 2018 1 commit
  16. 07 Nov, 2018 2 commits
  17. 03 Nov, 2018 1 commit
  18. 21 Oct, 2018 1 commit
  19. 20 Oct, 2018 1 commit
  20. 19 Oct, 2018 2 commits
  21. 11 Oct, 2018 1 commit
  22. 10 Oct, 2018 1 commit
    • Ell's avatar
      tools: add performance-log-coalesce.py; use in performance-log-viewer · cb51ea98
      Ell authored
      Add a new performance-log-coalesce.py tool, which groups together
      performance-log address-map entries belonging to the same function
      into a single symbol, by filling-in missing base symbol addresses.
      The addresses are grouped such that each set of addresses
      corresponding to a symbol of the same name, in the same source
      file, are given the same (unique, but arbitrary) base address.
      See the previous commit for why this is necessary.
      
      This should work fine in most cases, however, for logs produced on
      Windows, it can over-coalesce addresses belonging to different C++
      lambda-functions in the same source file, since they all seem to be
      given the same _FUN symbol name.
      
      Use the new tool as part of the pipeline in performance-log-viewer.
      cb51ea98
  23. 30 Sep, 2018 4 commits
    • Ell's avatar
      tools: in performance-log-viewer.py, add annotated source view · 88438c50
      Ell authored
      Add an annotated source view to the performance-log viewer's
      profile view.  When selecting the [Self] entry of a function's
      profile, for which source information is available and whose source
      is found locally, a new column opens, showing the function's
      source, annotated with sample statistics.  Header-bar buttons allow
      navigation through the annotated lines, selection of all the
      samples corresponding to a given line, and opening the text editor
      at the current line.
      88438c50
    • Ell's avatar
      tools: in performance-log-view.py, don't change call-graph path ... · b672f200
      Ell authored
      ... when selecting a function's samples
      
      Since we now preserve the call-graph path across state changes,
      there's no need to explictly set the path after selecting a
      function's samples in the profile view.
      b672f200
    • Ell's avatar
      tools: in performance-log-viewer.py, cache source file lookups · 97498017
      Ell authored
      In the performance-log viewer, cache the results of source-file
      lookups, to speed up future lookups.
      97498017
    • Ell's avatar
      tools: in performance-log-viewer.py, allow viewing source files ... · 0f387092
      Ell authored
      ... in backtraces
      
      In the performance-log viewer's backtrace viewer, show a document
      icon next to stack frames with source-location information, whose
      source file is found locally.  Clicking the icon opens the source
      file in a text editor at the relevant line.
      
      Two environment variables control this feature:
      
        - PERFORMANCE_LOG_VIEWER_PATH is a list of colon-separated
          directories in which to look for source files.  If this
          variable is undefined, the current directory is used.
      
        - PERFORMANCE_LOG_VIEWER_EDITOR is the command to use to launch
          the text editor, for editing a specific file at a specific
          line.  The special strings "{file}" and "{line}" are replaced
          with the filename and line-number, respectively.  If this
          variable is undefined, "xdg-open {file}" is used.
      0f387092
  24. 29 Sep, 2018 2 commits
  25. 28 Sep, 2018 1 commit
  26. 27 Sep, 2018 1 commit
    • Ell's avatar
      tools: various improvements in gimp-performance-log-viewer.py · d33fb0e7
      Ell authored
      Fix int-ratio variable formatting when the input is NaN, which can
      happen when calculating the standard deviation, if all the values
      are infinite.
      
      Fix keyboard sample-range selection.
      
      Deselect all samples when right-clicking a sample graph.
      d33fb0e7
  27. 23 Sep, 2018 1 commit