Revising structs: please test the upcoming Revise

Now that Julia 1.12-rc2 is out, I’d like to ask willing volunteers to test it together with a branch of Revise that supports redefining structs and other constants. The core functionality needed to support this feature is only in Julia 1.12+, but most of the aspects that make this usable (e.g., recreating existing methods to support the new types, redefining dependent types that may wrap a redefined type) will be implemented in Revise. Only by widespread testing is this likely to be released in robust form.

Trying the new version is easy:

  • juliaup add beta or whatever you need to do to install Julia 1.12-rc2
  • julia +beta -e 'using Pkg; Pkg.add(name="Revise"; rev="teh/struct_revision")'
  • Now do your normal work, but using julia +beta every time you launch Julia

If you want to go back to the released version at any point, you can use pkg> free Revise.

One important thing to keep in mind: if you change a struct definition, you will need to recreate any data that involve that type. That is, if you’re working on code that accepts a list of Foo objects and you then redefine Foo, you will need to recreate list using the new Foo before you can pass it to any methods.

Please report any bugs to Fix struct/const revision by timholy · Pull Request #894 · timholy/Revise.jl · GitHub

58 Likes