Hello Guix! l...@gnu.org (Ludovic Courtès) skribis:
> An unscientific illustration of this point: > > scheme@(guile-user)> ,use(guix scripts build) > scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" > "--no-substitutes" "--no-build-hook") > The following derivations would be built: > > [...] > > ;; 2.724686s real time, 3.117062s run time. 0.880827s spent in GC. > scheme@(guile-user)> (version) > $1 = "2.0.13" > > > Compared to: > > scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" > "--no-substitutes" "--no-build-hook") > > [...] > > ;; 2.224821s real time, 2.347463s run time. 0.374545s spent in GC. > > Roughly an 18% speedup here. In Guile 2.2.1 Andy fixed an optimization of ‘thunk?’, which is called a lot when we load packages (via ‘make-promise’, for record fields marked as ‘delayed’). Now we get… drum roll… --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,use(guix scripts build) scheme@(guile-user)> ,time (guix-build "libreoffice" "certbot" "xmonad" "-n" "--no-substitutes" "--no-build-hook") [...] ;; 1.826528s real time, 1.994426s run time. 0.382750s spent in GC. scheme@(guile-user)> (version) $1 = "2.2.1" --8<---------------cut here---------------end--------------->8--- That’s a 33% speedup compared to 2.0. Andy super-hero! Ludo’.