pyproject.toml
author Georges Racinet on incendie.racinet.fr <georges@racinet.fr>
Tue, 17 Oct 2023 22:42:40 +0200
changeset 51224 43241f31cf5b
parent 48004 58fe6d127a01
child 52003 d4b275587847
permissions -rw-r--r--
rust-index: find_gca_candidates bit sets genericization This allows to use arbitratry size of inputs in `find_gca_candidates()`. We're genericizing so that the common case of up to 63 inputs can be treated with the efficient implementation backed by `u64`. Some complications with the borrow checker came, because arbitrary sized bit sets will not be `Copy`, hence mutating them keeps a mut ref on the `seen` vector. This is solved by some cloning, most of which can be avoided, preferably in a follow-up after proof that this works (hence after exposition to Python layer). As far as performance is concerned, calling `clone()` on a `Copy` object (good case when number of revs is less than 64) should end up just doing a copy, according to this excerpt of the `Clone` trait documentation: Types that are Copy should have a trivial implementation of Clone. More formally: if T: Copy, x: T, and y: &T, then let x = y.clone(); is equivalent to let x = *y;. Manual implementations should be careful to uphold this invariant; however, unsafe code must not rely on it to ensure memory safety. We kept the general structure, hence why there are some double negations. This also could be made nicer in a follow-up. The `NonStaticPoisonableBitSet` is included to ensure that the `PoisonableBitSet` trait is general enough (had to correct `vec_of_empty()` for instance). Moving the genericization one level to encompass the `seen` vector and not its elements would be better for performance, if worth it.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46381
45afff0f530a pyproject: add config file
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
[build-system]
45afff0f530a pyproject: add config file
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
requires = ["setuptools", "wheel"]
46382
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     3
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     4
[tool.black]
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     5
line-length = 80
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     6
exclude = '''
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     7
build/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     8
| wheelhouse/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
     9
| dist/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    10
| packages/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    11
| \.hg/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    12
| \.mypy_cache/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    13
| \.venv/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    14
| mercurial/thirdparty/
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    15
'''
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    16
skip-string-normalization = true
d4c8b4b90ecb black: merge config into main pyproject.toml now that we have it
Augie Fackler <augie@google.com>
parents: 46381
diff changeset
    17
quiet = true