| Initial reaction to headline was it sounded like (a) no more python, and (b) this is a decided future direction. Instead, it sounds like this is a proof-of-concept for flipping the main 'hg' command from being python + C extensions, to instead being a rust binary with an embedded python interpreter. Part of the rationale appears to be performance, but also smoothing out cross platform experience, especially on Windows. Pulling out some related snippets: ----- While Python is still a critical component of Mercurial and will be
for the indefinite future, I'd like Mercurial to pivot away from
being pictured as a "Python application" and move towards being
a "generic/system application." In other words, Python is just
an implementation detail. ----- Desired End State hg is a Rust binary that embeds and uses a Python interpreter when appropriate (hg is a Python script today).
Python code seemlessly calls out to functionality implemented in Rust.
Fully self-contained Mercurial distributions are available (Python is an implementation detail / Mercurial sufficiently independent from other Python presence on system) ----- "Standalone Mercurial" is a generic term given to a distribution
of Mercurial that is standalone and has minimal dependencies on
the host (typically just the C runtime library). Instead, most of
Mercurial's dependencies are included in the distribution. This
includes a Python interpreter. ----- This patch should be considered early alpha and RFC quality. |