.cron.yml
author Nicholas Nethercote <nnethercote@mozilla.com>
Fri, 10 Aug 2018 18:00:29 +1000
changeset 431180 ad30dc53e38ec41adc99f81fd8a5102ecf7775fd
parent 428764 10dea25a944b9f2335ed0e422e8c1fc045e63ef8
child 437905 3c7a1fb334621318a2d4a98c1622c0d9fb469fef
permissions -rw-r--r--
Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink Entry storage allocation now occurs on the first lookupForAdd()/put()/putNew(). This removes the need for init() and initialized(), and matches how PLDHashTable/nsTHashtable work. It also removes the need for init() functions in a lot of types that are built on top of mozilla::Hash{Map,Set}. Pros: - No need for init() calls and subsequent checks. - No memory allocated for empty tables, which are not that uncommon. Cons: - An extra branch in lookup() and lookupForAdd(), but not in put()/putNew(), because the existing checkOverloaded() can handle it. Specifics: - Construction now can take a length parameter. - init() is removed. Explicit length-setting, when necessary, now occurs in the constructors. - initialized() is removed. - capacity() now returns zero when the entry storage is absent. - lookupForAdd() is no longer `const`, because it can instantiate the storage, which requires modifications. - lookupForAdd() can now return an invalid AddPtr in two cases: - old: hashing failure (due to OOM in the hasher) - new: OOM while instantiating entry storage The existing failure handling paths for the old case work for the new case. - clear(), finish(), and clearAndShrink() are replaced by clear(), compact(), and reserve(). The old compactIfUnderloaded() is also removed. - Capacity computation code is now in its own functions, bestCapacity() and hashShift(). setTableSizeLog2() is removed. - uint32_t is used throughout for capacities, instead of size_t, for consistency with other similar values. - changeTableSize() now takes a capacity instead of a deltaLog2, and it can now handle !mTable. Measurements: - Total source code size is reduced by over 900 lines. Also, lots of existing lines got shorter (i.e. two checks were reduced to one). - Executable size barely changed, down by 2 KiB on Linux64. The extra branches are compensated for by the lack of init() calls. - Speed changed negligibly. The instruction count for Bench_Cpp_MozHash increased from 2.84 billion to 2.89 billion but any execution time change was well below noise.

# Definitions for jobs that run periodically.  For details on the format, see
# `taskcluster/taskgraph/cron/schema.py`.  For documentation, see
# `taskcluster/docs/cron.rst`.

---

jobs:
    - name: nightly-desktop
      job:
          type: decision-task
          treeherder-symbol: Nd
          target-tasks-method: nightly_desktop
      run-on-projects:
          - mozilla-central
      when:
          by-project:
              # Match buildbot starts for now
              mozilla-central: [{hour: 10, minute: 0}, {hour: 22, minute: 0}]
              # No default

    - name: nightly-desktop-linux
      job:
          type: decision-task
          treeherder-symbol: Nd-Ln
          target-tasks-method: nightly_linux
      run-on-projects:
          - mozilla-central
      when: []  # never (hook only)

    - name: nightly-desktop-osx
      job:
          type: decision-task
          treeherder-symbol: Nd-OSX
          target-tasks-method: nightly_macosx
      run-on-projects:
          - mozilla-central
      when: []  # never (hook only)

    - name: nightly-desktop-win32
      job:
          type: decision-task
          treeherder-symbol: Nd-win32
          target-tasks-method: nightly_win32
      run-on-projects:
          - mozilla-central
      when: []  # never (hook only)

    - name: nightly-desktop-win64
      job:
          type: decision-task
          treeherder-symbol: Nd-win64
          target-tasks-method: nightly_win64
      run-on-projects:
          - mozilla-central
      when: []  # never (hook only)

    - name: nightly-android
      job:
          type: decision-task
          treeherder-symbol: Na
          target-tasks-method: nightly_fennec
      run-on-projects:
          - mozilla-central
      when:
          by-project:
              # Match buildbot starts for now
              mozilla-central: [{hour: 10, minute: 0}]
              # No default

    - name: nightly-mochitest-valgrind
      job:
          type: decision-task
          treeherder-symbol: Vg
          target-tasks-method: mochitest_valgrind
      run-on-projects:
          - mozilla-central
      when:
          - {hour: 16, minute: 0}
          - {hour: 4, minute: 0}

    - name: nightly-dmd
      job:
          type: decision-task
          treeherder-symbol: Ndmd
          target-tasks-method: nightly_dmd
      run-on-projects:
          - mozilla-central
      when:
          by-project:
              mozilla-central: [{hour: 10, minute: 0}]
              # No default

    - name: searchfox-index
      job:
          type: decision-task
          treeherder-symbol: Searchfox
          target-tasks-method: searchfox_index
      run-on-projects:
          - mozilla-central
      when:
          by-project:
              mozilla-central: [{hour: 10, minute: 30}]
              # No default

    - name: bouncer-check
      job:
          type: decision-task
          treeherder-symbol: Rel
          target-tasks-method: bouncer_check
      run-on-projects:
          - mozilla-beta
          - mozilla-release
      when:
          by-project:
              # No default branch
              mozilla-beta:
                  - {hour: 7, minute: 0}
                  - {hour: 19, minute: 0}
              mozilla-release:
                  - {hour: 7, minute: 0}
                  - {hour: 19, minute: 0}

    - name: periodic-update
      job:
          type: decision-task
          treeherder-symbol: Nfile
          target-tasks-method: file_update
      run-on-projects:
          - mozilla-central
          - mozilla-beta
          - mozilla-release
          - mozilla-esr60
      when:
          by-project:
              # No default branch
              mozilla-central:
                  - {weekday: 'Monday', hour: 10, minute: 0}
                  - {weekday: 'Thursday', hour: 10, minute: 0}
              mozilla-beta:
                  - {weekday: 'Monday', hour: 10, minute: 0}
                  - {weekday: 'Thursday', hour: 10, minute: 0}
              mozilla-release:
                  - {weekday: 'Monday', hour: 10, minute: 0}
                  - {weekday: 'Thursday', hour: 10, minute: 0}
              mozilla-esr60:
                  - {weekday: 'Monday', hour: 10, minute: 0}
                  - {weekday: 'Thursday', hour: 10, minute: 0}

    - name: pipfile-update
      job:
          type: decision-task
          treeherder-symbol: Nfile
          target-tasks-method: pipfile_update
      run-on-projects:
          - mozilla-central
      when:
          by-project:
              # No default branch
              mozilla-central:
                  - {weekday: 'Monday', hour: 10, minute: 0}