2017-07-22 13:32 GMT+02:00 Ricardo Wurmus : > Hey Guix, > > it always bothered me that after building a package we lose all of the > beautiful features that Guix as a Guile library gives us. We always > need to keep track of the Guix version at the time of building the > package and only then can we hope to rebuild the same thing again at > some point in the future. > > What do you think about storing the serialised subset of the package > graph in a separate output of the package? Currently, the only place > where we store anything meta is the database. Wouldn’t it be great if > we could “dump an image” of the state of Guile when it has evaluated the > section of the package graph that is needed to build it? > > Then we could just load the serialised state into Guile at a later point > and inspect the package graph as if we had Guix checked out at the given > version. I suppose we could also store this kind of information in the > database. > > I’d really like the graph to stay alive even after Guix has moved on to > later versions. It also sounds like a really lispy thing to do. > > What do you think? > In the Clojure world, there's Datomic On the Datomic web site there are sentences like "Build flexible, distributed systems that can leverage the entire history of your critical data, not just the most current state" "Critical insights come from knowing the full story of your data, not just the most recent state." Disclaimer: I never used Datomic, I only read about it. I think that would be an extremely cool tool; it cold be useful for a lot of applications, not only Guix It could be useful for the academia, both for teaching and research. Stored computations can be very important A tool like that could have a place in the "data science" arena AND it could be an option for Datomic users (sorry Rich Hyckey), so it could attract some Clojure people to the copyleft world Also, the ability to store "images" borrows from the Lisp and Smalltalk tradition So, this is an extremely cool idea Too bad I wouldn't know where to start from :-/