guix-patches
[Top][All Lists]
Advanced

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

[bug#39734] [PATCH] scripts: Emit GC hint if free space is lower than ab


From: Pierre Neidhardt
Subject: [bug#39734] [PATCH] scripts: Emit GC hint if free space is lower than absolute and relative threshold.
Date: Sat, 22 Feb 2020 12:39:19 +0100

Ludovic Courtès <address@hidden> writes:

> Hi!
>
> Pierre Neidhardt <address@hidden> skribis:
>
>> * guix/scripts.scm (%disk-space-warning-absolute): New variable.
>> (warn-about-disk-space): Test against %disk-space-warning-absolute.
>> Fix error in display-hint due to extraneous 'profile' argument.
>
> [...]
>
>> +(define %disk-space-warning-absolute
>> +  ;; The decimal number of GiB of free disk space below which a warning is
>> +  ;; emitted.
>> +  (make-parameter (match (and=> (getenv "GUIX_DISK_SPACE_WARNING_ABSOLUTE")
>> +                                string->number)
>> +                    (#f        17.0)
>> +                    (threshold threshold))))
>
> Perhaps we should arrange for ‘GUIX_DISK_SPACE_WARNING’ to handle both
> cases?
>
> That is, we’d first try to convert it with ‘size->number’; if that
> works, it’s an absolute measure, and if it returns #f, then pass the
> string to ‘string->number’ and assume it’s a fraction.

I thought of something similar too, but this needs discussion:

- If we change the meaning of a value like "1", we are breaking backward 
compatibility.

- GUIX_DISK_SPACE_WARNING is currently undocumented, so I guess it's OK
  to break backward compatibility.  However, it'd be nice to document it :)

- Currently (size->number "1.MiB") "leaves" the Guile instance on error.  Which
  I find quite weird, I'd expect it to return #f when it cannot parse
  the input.

- Currently (size->number "0.8") returns 1.  If we want to use your
  suggestion, we would need to change the behaviour so that it returns
  #f.

- Alternatively, since we are breaking backward compatibility anyways,
  we could parse a trailing percent sign "%" to decide whether the value
  is relative or absolute.

Anyways, the issue was originally about dealing with both small and big
partitions, and for this we need both a default absolute threshold and a
default relative threshold.  Does that make sense?

>> +         (absolute-threshold-in-bytes (* 1024 1024 1024 
>> absolute-threshold)))
>
> Always use bytes internally; that is, convert to bytes at the UI border.

What do you mean?

-- 
Pierre Neidhardt
https://ambrevar.xyz/

Attachment: signature.asc
Description: PGP signature


reply via email to

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