guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#49280] [PATCH v2 1/3] gnu: racket: Update to 8.2.


From: Philip McGrath
Subject: [bug#49280] [PATCH v2 1/3] gnu: racket: Update to 8.2.
Date: Mon, 19 Jul 2021 17:46:54 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0) Gecko/20100101 Thunderbird/78.12.0

Hi,

On 7/19/21 3:46 PM, Leo Prikler wrote:
Am Montag, den 19.07.2021, 02:31 -0400 schrieb Philip McGrath:
* gnu/packages/racket.scm (racket-minimal, racket): Update to 8.2.
* gnu/packages/racket.scm (racket-minimal)[#:arguments]: Fix
patch-config.rktd-lib-search-dirs phase. When a config.rktd file
doesn't contain an entry for `lib-search-dirs`, the default is
equivalent to `'(#f)`, not `'()`.
What is the point of this value?  Can we use a (sequence of) string(s)
in its stead?

As you'd probably guess, `lib-search-dirs` and other `-search-dirs` "config.rktd" entries specify search paths. The `#f` value is used to specify the point at which the default search path should be spliced into the list: a configuration file can ignore the default altogether or exercise fine-grained control over the search order. Using `#f` also helps to maintain something closer to a single point of control, rather than hard-code the same string constants in several places.

Most importantly, the default value is not always a constant: for example, command-line flags and Racket parameters control whether user-specific paths are included.

(For `lib-search-dirs` in particular, it's also worth noting that these are Racket-specific search directories: it does not control the use of OS-level defaults for e.g. `dlopen`.)

The problems with omitting `#f` from `lib-search-dirs` were not very noticeable until the patch to start using layered and tethered installations. For a more obvious example, if `catalogs` is `'()`, `raco pkg` won't consult any package catalogs, whereas `'(#f)` will cause it to use the default catalogs.

The documentation for these configuration options is here: https://docs.racket-lang.org/raco/config-file.html#(idx._(gentag._70._(lib._scribblings%2Fraco%2Fraco..scrbl)))

(As of this writing, the docs on the website are still at 8.1---the whole package catalog is rebuilt after a new Racket release, which takes a little while to finish. You could alternatively apply this patch and run `lynx "file://"$(./pre-inst-env guix build racket)"/share/doc/racket/raco/config-file.html#(idx._(gentag._70._(lib._scribblings%2Fraco%2Fraco..scrbl)))"`.)


-Philip





reply via email to

[Prev in Thread] Current Thread [Next in Thread]