Tobias Geerinckx-Rice <m...@tobias.gr> skribis: > On 2016-07-21 18:06, l...@gnu.org wrote: >>>> (inputs `(("somethingsilly" ,glib "bin"))) >> >> This "somethingsilly" is just a label that allows you to refer to an >> input on the build side, in idioms like: >> >> (assoc-ref inputs "somethingsilly") >> => "/gnu/store/…-glib-42.0-bin" > > I remember writing something like > > (inputs `(("libuuid" ,util-linux))) > > once, to indicate that libuuid really is all we need and that one > could swap out util-linux for another — extremely hypothetical — > libuuid provider. > > Was this, in hindsight, somethingsilly? :-)
I think it’s fine, but a comment would work well too. > If so, is there still a reason to keep all this duplication around? Build systems haven’t migrated yet to gexps. There’s a branch to do that, ‘wip-build-systems-gexp’, but there’s a performance regression compared to what we have, which is why I have not merged it. That’ll happen, someday, but even then, I’m not sure we’ll remove labels; at least we won’t remove them overnight, for sure. ;-) >> This predates g-expressions, which solve this problem more elegantly. > > Interesting! I always assumed[1] gexps were one of the foundations for > Guix since day 0. In an ideal world it would have been this way. :-) Ludo’.