Summary:
Problem: There exists reason packages in the wild that have omp: * as a
dependency. A new breaking change was released in omp 2.0.0. We cannot
compile against it. We also cannot upgrade to the intended replacement
for the old functionality we were using ppxlib because it doesn't
support older versions of omp.
The only solution is to vendor. This should unbreak existing libraries
that depend on older versions of Reason.
We should have had a constraint of omp: < 2.0.0, but even in that case
the package ecosystem essentially breaks because it splits into two
sides - ones that can use 2.0.0 omp and ones that cannot. Vendoring omp
solves that problem. It might not work during the next compiler upgrade
though (estimated six months).
Summary: Problem: There exists reason packages in the wild that have
omp: *
as a dependency. A new breaking change was released in omp 2.0.0. We cannot compile against it. We also cannot upgrade to the intended replacement for the old functionality we were usingppxlib
because it doesn't support older versions of omp. The only solution is to vendor. This should unbreak existing libraries that depend on older versions of Reason. We should have had a constraint ofomp: < 2.0.0
, but even in that case the package ecosystem essentially breaks because it splits into two sides - ones that can use 2.0.0 omp and ones that cannot. Vendoring omp solves that problem. It might not work during the next compiler upgrade though (estimated six months).Test Plan:
Reviewers:
CC: