MilesCranmer/SymbolicRegression.jl

Personalised compilation settings for running in Julia vs PySR

Opened this issue · 1 comments

It would be nice to have the precompilation settings vary by intended user - whether it be PySR users or Julia users.

For example, the Julia users probably want the MLJ interface precompiled.
And the PySR would only want the equation_search interface precompiled, since that's what PySR calls.

For a future issue: it would also be nice if we could precompile some of the Python->Julia calls in PythonCall.jl so speed up startup time.

This looks like a much-needed fix for us! Thanks for looking into it!

In Issue #358 , we were never certain if the saved_state was importing correctly, because the method we were using to test this (setting most mutation weights to zero, so expression length would never change) doesn't work. We now think this is because precompiling is interfering with our wish to set most mutation weights to zero.

This is also reflected in Issue #361 , where turning off precompilation leads to Type errors since we're trying to use modified Node structures with frozen metadata.