QuiltMC / quilt-loader

The loader for Quilt mods.
Apache License 2.0
472 stars 87 forks source link

Add solver pre-processing #374

Closed AlexIIL closed 1 year ago

AlexIIL commented 1 year ago

For some reason the way we use sat4j seems to be non-optimal, leading to the full 5 seconds of optimising being used. (Removing this limit in the blanketcon pack leads to Sat4j churning for at least 20 mins to "prove" that it's found the most optimal result, with this PR Sat4j only takes ~60ms to solve the remaining rules and options).

This means we can be more confident that we get a fully optimal solution in more cases. (When this isn't the case you'll see this line in the log: Aborted mod solving optimisation due to timeout)

This also means we can use the solver system for more features, and be confident that it still finds the optimal solution quickly.

Breaking changes:

Misc Changes:

Other changes from the src/main/resources/changelog/solver-pre-processor.txt file:

AlexIIL commented 1 year ago

This will probably go in 0.22, since it's a bit bigger than the other PRs that are going in 0.21.2