Sounds interesting! I hadn’t heard about this till now, so I’ve no idea how it works. It sounds similar to Docker (?), and this is certainly something that we’ve discussed in the past. There is nothing stopping anyone from doing this, and I’d be all for it, but there’s a few reasons why it might be better to hold off for just a little longer (along with a few other concerns):
-
we’re still really in beta, there’s a lot of changes being committed relatively frequently, Hopefully we’ll release our first official stable release soon, at which point we plan on providing more official pre-built packages for the major OSs. Sounds like snap would also be a good distribution channel.
-
we’re about to merge a pretty big branch with a lot of changes in it, some of which will affect operation and how the software is organised. So again, it would definitely be worth waiting until that happens, or working from the
tag_0.3.16
branch while setting this up if you’re impatient… -
Another more minor concern I have is about providing optimised, high performance binaries. At the moment, users are required to compile locally, and we get the compiler to generate code suitable for running on the user’s specific CPU (via the
-march=native
flag). This means that the code will use vectorised instructions and more advanced features if available, which is particularly beneficial for performance with Eigen (which is designed to make full use of those instructions when available). If we start shipping pre-compiled packages, I’m assuming we’ll need to decide on a minimum CPU spec that will run with decent performance on most systems out there. Is there a mechanism within snap to help with this? Is it possible to have the framework compile various versions of the executables suitable for running on different CPU generations, and snap would then install the most appropriate automatically? Now that would be a great feature…
So in short, I’m pretty sure we’d be interested, but maybe we can discuss this when we enter a more stable release cycle? No doubt the other devs will have an opinion on this too…?