Hello Guix, after a pull, seeing the news, and subsequent rollback I went on exploring how the new feature of the record system works. It seems to work just for some fields (e.g., I can use it with inputs, but not with version), which is quite confusing. Additionally, it does not seem to allow cross-references (e.g., I cannot use inputs in propagated-inputs).
However the reason I am writing this email is this part from the news: > the newly introduced bindings could shadow same-named bindings which sounds quite annoying to deal with. Does this basically mean that adding new field to any record in Guix can break arbitrary user code? For now, I will spend the weekend checking that all my code does not have any naming conflict, but I am not sure what to do next. Especially given the fact that there is no warning when the shadowing occurs. I assume committers will ensure that no record will have fields that are named the same way as any built-in procedure (and possibly some hand-picked SRFIs and ICE-9s?), but in what matter shall I write my own code? Is there some reserved prefix, I can be sure no record will ever used for its fields? How should I future-proof my code? Could someone please provide some guidance here? Have a nice day, Tomas -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.
