Quickly scanned, and looks generally good to me.

>   rust: iterator version of Graph.parents
>   rust: translation of missingancestors
>   rust: translated random test of missingancestors

Can you send these as separate patches?

>   An alternative would have been to expose to Python
>   MissingAncestors<VecGraphs> but that would have meant
>   
>   - pollution of the release build used from Python,  whereas we do it in 
> this changeset within the tests submodule
>   - waiting on rust-cpython bindings to be ready or doing the cumbersome 
> direct-ffi (more pollution with unsafe C code)

Still I want some CPython interface to measure the perf win. Are there
lots of work remaining to bring rust-cpython to us?

>   although one could argue that actually parents() should return an
>   array instead of a tuple, giving us a similar iterator for free (but on
>   references instead of values, unless we also use the arrayvec crate
>   could help). Notably, the current C-backed parents() internally uses an
>   array for communication with C code, so that currently, we'd get less memory
>   copy and less code using an array.

I prefer changing parents() to return `[Revision; 2]`. Then, we can write a
simple utility function that drops NULL_REVISION, `&[Revision; 2] -> 
&[Revision]`.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to