Hello, Julien Lepiller <jul...@lepiller.eu> skribis:
> Users tend to copy what they see in our code base, so it's not rare to have > to help them realise that if their last statement is (define-public ...), the > file doesn't evaluate to a package. > > Running guix build -f mypackage.scm at least gives an error saying it doesn't > know how to compile #<unspecified>. > > Running guix package -f mypackage.scm returns immediately with no error > message and a status of 0, but doesn't actually build or install anything. > You can even try with an empty file :) > > There should be an error message, and probably even a hint. Fixed in f9c0400392843540a87985a67ffb9fb6e4dbc2fa. It doesn’t provide a hint though. I thought we may want to provide ‘load*’ a type predicate that it would check, so that it can say “got #<undefined>, expected <package>”. However, we’d need a contract rather than a mere predicate to have nice error reporting, so I decided to punt on this for now. Ludo’.