Hey Ludovic :)

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, May 4, 2021 3:49 PM, Ludovic Courtès <l...@gnu.org> wrote:

> Hi Luis!
>
> Luis Felipe luis.felipe...@protonmail.com skribis:
>
> > Are all these constants (%base-packages, for example)? Is this a Guix
> > convention or does it come from Guile?
>
> To complement Leo’s answer… The ‘%’ convention comes from Guile, which
> may have borrowed it from other Schemes.

I did find uses of the percent sign in other Scheme code (e.g. 
http://science.slc.edu/~jmarshall/metacat/)but enclosing the whole name. For 
instance (Metacat-1.2/Metacat/constants.ss):

;; Default window sizes
(define %default-trace-width% #f)
(define %default-trace-height% #f)
(define %virtual-trace-length% #f)


> Initially, it was meant to
> read as “sys” (“system”), as can be seen in libguile, meaning that a
> percent-binding somehow belongs to “the system”: ‘%load-path’,
> ‘%make-void-port’, ‘%load-hook’, etc.

Ah, I see.

> In Guix it’s used with an extending meaning, typically for variables
> holding Guixy constants: ‘%base-packages’, ‘%setuid-programs’,
> ‘%desktop-services’, etc. I hope it makes some sense!

It does. Thanks for the explanation.





Reply via email to