Mercurial > hg
view relnotes/5.2 @ 50682:2cc5de261d76
rust-hg-core: move from `ouroboros` to `self_cell`
`ouroboros` has a fundamental soundness problem that, while not applicable
today, could become applicable given new compiler optimizations.ยน
`self_cell` is a crate that accomplishes a lot of the same things that
`ouroboros` did while remaining sound (that is, unless a new soundness issue
is discovered) by not assuming as much about the memory layout of the program.
`self_cell` has been scrutinized heavily in the past few months by very
competent people, some from the compiler team and has shown no weaknesses
for a while, with a 1.0 stable release coming out a couple months ago.
Our internal API is exactly the same, this is just an implementation detail.
To reiterate, no actual soundness issue was found with our use of `ouroboros`,
but there might be evolutions of `rustc` (or even a future separate compiler)
that could generate unsound code.
[1] https://github.com/joshua-maros/ouroboros/issues/88
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Mon, 12 Jun 2023 23:41:28 +0200 |
parents | a825ba8eb0a1 |
children |
line wrap: on
line source
== New Features == * The amend extension supports the `--currentuser` argument. * The amend extension supports the `--close-branch` argument. * The amend extension supports the `--secret` argument. * The uncommit extension supports the `rewrite.update-timestamp` config option. == New Experimental Features == == Bug Fixes == == Backwards Compatibility Changes == * A shell that supports `$(command)`` syntax for command substitution is now required for running the test suite. The test runner normally uses `sh`, so if that is a shell that doesn't support `$(command)` syntax, you can override it by setting `$HGTEST_SHELL` or by passing it to `run-tests.py --shell <shell>`. * The (experimental) narrow extension's wire protocol changed. If you're using it, you'll need to make sure to upgrade server and client at the same time. == Internal API Changes ==