[llvm-dev] MemoryBuffer: Migrating to Expected/llvm::Error from ErrorOr/std::error_code

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 26 10:48:03 PDT 2021


I like this idea. MemoryBuffer is one of the biggest remaining users of
ErrorOr (along with sys::FileSystem and VirtualFileSystem). Migrating
MemoryBuffer to Expected would get us that much closer to eliminating
ErrorOr entirely, which seems worth some churn.

-- Lang.

On Sun, Sep 19, 2021 at 2:44 PM David Blaikie <dblaikie at gmail.com> wrote:

> Hey folks - I'm/we're considering a somewhat laborious/disruptive
> refactoring for MemoryBuffer's APIs to improve error handling safety.
> Details here:  https://reviews.llvm.org/D109345
>
> Duncan's pointed out that a reasonable migration strategy would be to:
>
>    1. Add MemoryBufferErrorAPI (wrapping APIs with errorOrToExpected) and
>    MemoryBufferErrorCodeAPI (alias for MemoryBuffer) in the same commit.
>    2. Migrate in-tree callers to MemoryBufferErrorCodeAPI (via mass
>    rename). (Could even move some to MemoryBufferErrorAPI?)
>    3. Update MemoryBuffer to use Error/Expected APIs, change
>    MemoryBufferErrorAPI to an alias of it, and leave behind
>    MemoryBufferErrorCodeAPI (wrapping APIs with expectedToErrorOr).
>    4. One or more commits:
>       1. Migrate in-tree callers to MemoryBuffer.
>       2. Delete MemoryBufferErrorAPI alias.
>    5. Delete MemoryBufferErrorCodeAPI wrappers.
>
> (this isn't the only option (some variations discussed on the code review)
> - but something along these lines that separates the semantic changes from
> the renaming and makes it easier for folks with stable release branches to
> still cherry pick pieces of this without other pieces (eg: they can pick
> any amount of 1-4 without 5, specifically they could take 1-2, do a
> mass-rename on their branch of "MemoryBuffer:: ->
> MemoryBufferErrorCodeAPI::" and then be pretty stable/relatively easy to
> cherry pick things after that)
>
> What do folks think of this? Any major objections (including "the churn
> doesn't seem worth the benefit" - happy to discuss that further), nuanced
> situations/tweaks/particular scenarios that we should make an effort to
> account for?
>
> If there aren't huge objections - I'll probably start this in the next
> O(weeks).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210926/6c29ea45/attachment.html>


More information about the llvm-dev mailing list