Skip to content

replacing the new solver with yet another solver will be hard #6

@lcnr

Description

@lcnr

Each time we meaningfully change how the trait solver works, we have to increase its power.

This is necessary to not break code which works due to weird quirks of the existing solver. I expect that replacing the stable trait solver with the new one will already be very difficult as we have to maintain backwards compatibility. If there are any major issues in the new solver which we have to fix after that solver is stable, fixing them may be even harder as the new solver is already very powerful.

An example here is overflow. In the current solver overflow results in a fatal error and aborts. The new solver has to make overflow as e.g. changes to the evaluation order can surface a path which overflows which was previously hidden. While doing this we already have to be careful to prevent hangs in the new solver when encountering overflow.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions