<mark_weaver>sriharsha: '`' is quasiquote. it's a lisp/scheme templating mechanism. it's like "'" (normal quote), except that selected parts can be _unquoted_ using comma ','. After the comma comes an expression that is evaluated. For example (let ((foo 42)) `(this is a test of ,(+ foo 1))) => (this is a test of 42)
*civodul just offloaded a build from his laptop to hydra.gnu.org :-)
<mark_weaver>civodul: when the offloads are done, does the actual build machine attach a signature that can be preserved, such that an end user can trust the build machine without necessarily trusting hydra?
<mark_weaver>The reason I ask is because it would be good to limit the amount of damage a compromised hydra can do.
<mark_weaver>for example, suppose that all modern intel machines are compromised by design, but loongson machines aren't. (not saying this is necessary true, it's just a hypothetical).
<mark_weaver>it would be good if loongson users can trust the loongson build machine without trusting any intel machines.
<mark_weaver>(this is generally good security practice, to minimize the number of machines that can compromise any given signature)
<mark_weaver>I should probably do some kind of fresh install here. I've been running iceweasel on this machine.
<mark_weaver>I have enormously more confidence in the 2F machines, but alas they are quite slow.
<mark_weaver>civodul: oh, one complication with the 3A: its CPUs are hot-swapped automatically, based on load (or something), so even though there are 4 cores, (current-processor-count) often reports less.
<mark_weaver>well, I guess I can just pass --cores=4 to guix-daemon, which is what I've been doing.
<mark_weaver>its faq says: "Gnuplot is freeware in the sense that you don’t have to pay for it. However it is not freeware in the sense that you would be allowed to distribute a modified version of your gnuplot freely."
<jmd>It does allow modified distributions. It just says that they must be distributed as patches.
<jmd>Lots of GNU software has dependencies on it and has don years.
<mark_weaver>sriharsha: records are defined in terms of a lower-level concept in Guile called structures. structures have vtables that define their layout. in this case, 'license?' is defined roughly as (define (license? obj) (and (struct? obj) (eq? (struct-vtable obj) <license>)))
<mark_weaver>so first it checks that it's a structure, and then it extracts the vtable from that structure and makes sure it is <license>, which is the vtable for that record type.
<mark_weaver>that's all it does. it doesn't look at the license name or consult any list.
<mark_weaver>but these are low-level details that you should not depend on. they might change in a future version of guile. just explaining for educational purposes :)
<mark_weaver>from a high-level perspective, (license? <obj>) simply tells you whether <obj> is the result of a call to (license ...)
<sriharsha>ok, thanks! so, this is kind of type checking then?