JuliaPackaging / Scratch.jl

Scratch spaces for all your persistent mutable data needs
MIT License
58 stars 11 forks source link

Support earlier Julia versions? #22

Closed willow-ahrens closed 3 years ago

willow-ahrens commented 3 years ago

Thank you Scratch developers for making such a clean solution to persistent mutable storage. Scratch looks like the perfect fit for mutable storage in MatrixDepot (https://github.com/JuliaMatrices/MatrixDepot.jl/issues/73), which currently defaults to storing large (at times, 83GB) matrices in the repo itself, sometimes resulting in redownloading of such matrices after Pkg operations.

However, Scratch currently requires Julia 1.5, while MatrixDepot currently supports Julia 1. I have been able to get Scratch to pass tests on Mac on Julia 1.3, do you think it is possible to support even earlier Julia versions? From what I can tell, it seems that the testing framework poses more of a challenge than the source itself. What might be involved in supporting these versions, and would you be open to such changes?

StefanKarpinski commented 3 years ago

I didn't write any of it but I'm very glad it works well. That's exactly the kind of use case it was intended for. I think the only way to answer this is for someone to try. If you can patch it to work for Julia 1.0, I think @staticfloat would be happy to accept that change — the package is so clean and simple that it really doesn't need much further development. Given that 1.6 is very likely to be a new LTS version of Julia, however, it may be worth just dropping support for Julia 1.0 in a new version of MatrixDepot: users of Julia 1.0 can keep using the existing versions of the package that support it while users of newer Julia versions will get the new goodness.

staticfloat commented 3 years ago

Yeah, I'm totally open to small changes that add support for earlier versions of Julia; but note as said in the compatibility note that anything before 1.6 won't properly gc scratch spaces.

willow-ahrens commented 3 years ago

Thanks for your help! Planning for a Julia 1.6 LTS requirement in MatrixDepot looks to be the path of least resistance, but it's good to know that you would be open to small patches to Scratch if need be.