GNU bug report logs - #49280
[PATCH v2 0/3] gnu: racket: Update to 8.2. Bootstrap from C.

Previous Next

Package: guix-patches;

Reported by: Philip McGrath <philip <at> philipmcgrath.com>

Date: Tue, 29 Jun 2021 21:54:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #46 received at 49280 <at> debbugs.gnu.org (full text, mbox):

From: Philip McGrath <philip <at> philipmcgrath.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>, 49280 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 1/3] gnu: racket: Update to 8.2.
Date: Mon, 19 Jul 2021 17:46:54 -0400
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




This bug report was last modified 3 years and 355 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.