Hi, Liliana Marie Prikler <liliana.prik...@gmail.com> skribis:
> Am Freitag, den 10.09.2021, 12:34 +0300 schrieb Efraim Flashner: >> I've been fighting my manifest to try to get "git" and "git:send- >> email" both included, while using package transformations. For the >> sake of brevity, here's a stripped down version of my manifest: >> >> (packages->manifest >> (map specification->package+output >> '("git" "git:send-email"))) >> >> Here's what I learned from some experimentation: >> >> (cmd)scheme@(guile-user)> (specification->package+output "git:send- >> email") >> $14 = #<package git@2.32.0 gnu/packages/version-control.scm:176 >> 7f730e918320> >> $15 = "send-email" >> (ins)scheme@(guile-user)> (list (specification->package+output >> "git:send-email")) >> $16 = (#<package git@2.32.0 gnu/packages/version-control.scm:176 >> 7f730e918320>) >> (ins)scheme@(guile-user)> (list (specification->package+output >> "git")) >> $17 = (#<package git@2.32.0 gnu/packages/version-control.scm:176 >> 7f730e918320>) >> >> Meanwhile, (specifications->manifest '("git" "git:send-email")) does >> actually return a manifest with both the "out" and the "send-email" >> outputs of git. >> >> (package->manifest-entry (specification->package+output "git:send- >> email")) >> returns a manifest entry for "git:out" and >> (package->manifest-entry git "send-email") returns a manifest entry >> for >> "git:send-email". > I think for this use of specification->package+output you need to > compose it with list like (compose list specification->package+output). > The reason you observe this behaviours is that specification- >>package+output returns multiple values, whereas package->manifest- > entry expects a single value which is either a package or a list of the > form (package "output"). Yes, and Guile truncates multiple-value returns by default: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (list (values 1 2)) $7 = (1) scheme@(guile-user)> (+ (values 1 2) 2) $8 = 3 --8<---------------cut here---------------end--------------->8--- Ludo’.