py3: use integer division in histedit
Histedit uses the `/` operator, which does type conversion to float in
Python 3 instead of integer division likeon Python 2. Let's preserve
the Python 2 behavior by importing and using the `//` operator.
Differential Revision: https://phab.mercurial-scm.org/D8324
rust: update README to reflect use of `regex` crate
Differential Revision: https://phab.mercurial-scm.org/D8325
rust: update all dependencies
We do this periodically to say up to date.
No major versions were crossed this time per se, but the `rand` is still in v0,
and their 0.7x series broke three things:
- Some distribution-related elements were moved to a separate crate,
flashing a deprecation warning
- The `LogNormal::new` associated function now returns a `Result`
- Certain RNGs were updated to sample a `u32` instead of `usize` when their
upper-bound is less than `u32::MAX` for better portability, which changed
the output for 2 tests.
Moreover, the recent use of the `regex` crate for ignore mechanisms prompted
some benchmarking that revealed that `regex` was slower at compiling big regex
than `Re2`. The author of `regex` was very quick to discover an optimization
that yielded a 30% improvement. It's still slower than `Re2` in that regard, but
less so in the 1.3.6 release.
Differential Revision: https://phab.mercurial-scm.org/D8320
rust: update micro-timer dependency
The new version uses a much more robust technique and should remove any existing
risk of bad compiler error or performance hit.
Differential Revision: https://phab.mercurial-scm.org/D8319
rust-status: only involve ignore mechanism when needed
This prevents unnecessary fallbacks to Python, improving performance for
`hg update` for instance.
On Mozilla-Central a noop update goes from 1.6s down to 700ms.
Differential Revision: https://phab.mercurial-scm.org/D8315
templater: fix cbor() filter to recursively convert smartset to list
The previous attempt,
e3e44e6e7245 "templater: fix cbor() filter to accept
smartset", was incomplete since obj may be a collection containing a smartset.
This works around the problem by converting smartsets recursively. Another
option is to teach cborutil how to encode a smartset. That should be okay,
but I hesitated to add "import smartset" to cborutil.py as the cborutil is
pretty generic.
shelve: split up dounshelve() in unshelvecmd() and _dounshelve()
I'd like to be able to override the new `_dounshelve()`, getting
access to the name of the shelve to unshelve. `unshelvecmd()` seems to
better match the existing `createcmd()`, `listcmd()` etc.
Differential Revision: https://phab.mercurial-scm.org/D8322