Re: #$(this-package-input "subversion") in git introduces a cycle

2023-11-30 Thread Simon Tournier
Hi Maxim,

I am late to the party and maybe it is already solved.

On ven., 06 oct. 2023 at 22:13, Maxim Cournoyer  
wrote:

> I've narrowed the problem down to #$(this-package-input "subversion");
> the following diff allows the build to start:

[...]

> I'm puzzled as to why this happens.  Would someone have an idea?

No idea.  On a side note, on the top of
cd46757c1a0f886848fbb6828c028dd2a2532767, I get this error:

--8<---cut here---start->8---
phase `build' succeeded after 17.4 seconds
starting phase `build-subtree'
error: in phase 'build-subtree': uncaught exception:
unbound-variable #f "Unbound variable: ~S" (native-inputs) #f 
phase `build-subtree' failed after 0.0 seconds
Backtrace:
In srfi/srfi-1.scm:
634:9 19 (for-each # …)
In ice-9/boot-9.scm:
  1752:10 18 (with-exception-handler _ _ #:unwind? _ # _)
In guix/build/gnu-build-system.scm:
   929:23 17 (_)
In ice-9/boot-9.scm:
142:2 16 (dynamic-wind # …)
In ice-9/eval.scm:
619:8 15 (_ #(#(# (# # …
In ice-9/boot-9.scm:
  1752:10 14 (with-exception-handler _ _ #:unwind? _ # _)
In ice-9/ports.scm:
   433:17 13 (call-with-input-file _ _ #:binary _ #:encoding _ # _)
In guix/build/utils.scm:
   899:26 12 (_ #)
   959:29 11 (loop "\t$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man …")
In srfi/srfi-1.scm:
   460:18 10 (fold # …)
In ice-9/eval.scm:
   202:51  9 (_ #(#(#(#(#(#(# …)) …) …) …) …))
163:9  8 (_ #(#(#(#(#(#(# …)) …) …) …) …))
163:9  7 (_ #(#(#(#(#(#(# …)) …) …) …) …))
159:9  6 (_ #(#(#(#(#(#(# …)) …) …) …) …))
   293:34  5 (_ #(#(#(#(#(#(# …)) …) …) …) …))
   223:20  4 (proc #(#(#(#(#(#(# …)) …) …) …) …))
In unknown file:
   3 (%resolve-variable (7 . native-inputs) #)
In ice-9/boot-9.scm:
  1685:16  2 (raise-exception _ #:continuable? _)
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Unbound variable: native-inputs
--8<---cut here---end--->8---

And it probably comes from:

(search-input-directory
 (or native-inputs inputs)
 (string-append
  "xml/xsl/docbook-xsl-"
  #$(package-version docbook-xsl)))

Maybe it is related to the error you observed later.  Hum, I do not
know… I have not investigated further. :-)

Cheers,
simon



Re: Building and caching old Guix derivations for a faster time machine

2023-11-30 Thread Guillaume Le Vaillant
Maxim Cournoyer  skribis:

> Hi Simon,
>
> Simon Tournier  writes:
>
>> Hi,
>>
>> On mer., 22 nov. 2023 at 19:27, Ludovic Courtès  wrote:
>>
>>> For long-term storage though, we could choose to keep lzip only (because
>>> it compresses better).  Not something we can really do with the current
>>> ‘guix publish’ setup though.
>>
>> It looks good to me.  For me, the priority list looks like:
>
> I'd like to have a single archive type as well in the future, but I'd
> settle on Zstd, not lzip, because it's faster to compress and
> decompress, and its compression ratio is not that different when using
> its highest level (19).

Last time I checked, zstd with max compression (zstd --ultra -22) was
a little slower and had a little lower compression ratio than lzip with
max compression (lzip -9).
Zstd is however much faster for decompression.

Another thing that could be useful to consider is that lzip was designed
for long term storage, so it has some redundancy allowing fixing/recovering
a corrupt archive (e.g. using lziprecover) if there has been some bit
rot in the hardware storing the file.
Whereas as far as I know zstd will just tell you "error: bad checksum"
and will have no way to fix the archive.


signature.asc
Description: PGP signature


RISC-V builds and substitutes

2023-11-30 Thread Christopher Baines
Hey,

I have a RISC-V board that is hooked up to the bordeaux build farm, and
there is another board connected, although there's some issues with the
connection/agent.

1 to 2 boards though isn't enough to get good substitute availability
and build packages for patches and branches though.

There's now HiFive Unmatched Rev B boards available [1], so is there
interest in buying additional boards for the project so that we can
improve substitute availability and get QA doing RISC-V things?

1: 
https://www.sifive.com/blog/unlock-the-possibilities-with-hifive-unmatched-risc-v

Chris


signature.asc
Description: PGP signature


Re: Building and caching old Guix derivations for a faster time machine

2023-11-30 Thread Maxim Cournoyer
Hi Simon,

Simon Tournier  writes:

> Hi,
>
> On mer., 22 nov. 2023 at 19:27, Ludovic Courtès  wrote:
>
>> For long-term storage though, we could choose to keep lzip only (because
>> it compresses better).  Not something we can really do with the current
>> ‘guix publish’ setup though.
>
> It looks good to me.  For me, the priority list looks like:

I'd like to have a single archive type as well in the future, but I'd
settle on Zstd, not lzip, because it's faster to compress and
decompress, and its compression ratio is not that different when using
its highest level (19).

>  1. Keep for as longer as we can all the requirements for running Guix
>  itself, e.g., “guix time-machine”.  Keep all the dependencies and all
>  the outputs of derivations.  At least, for all the ones the build farms
>  are already building.
>
>  2. Keep for 3-5 years all the outputs for specific Guix revision, as
>  v1.0, v1.1, v1.2, v1.3, v1.4.  And some few others.

That'd be nice, but not presently doable as we can't fine tune retention
for a particular 'derivation' and its inputs in the Cuirass
configuration, unless I've missed it.

-- 
Thanks,
Maxim



Re: Syntactic Diabetes (was Re: A friendlier API for operating-system declarations)

2023-11-30 Thread Attila Lendvai
> > the downside of generating countless macros is that they won't show up
> > in backtraces, and they cannot be found when grep'ping the codebase,
> > and as such make the codebase much less approachable.
> 
> 
> Reading your words really helped me feel that I'm not alone. You more or
> less summarized my feelings about the Guix codebase, which I have been
> reading now for over a year. Guile's syntax features make the code more
> symbolic and less approachable to newcomers.


just FTR, i don't think that the guix codebase is too bad in this regard.

here i just wanted to remind people to the not so obvious cost of syntactic 
abstractions that should be accounted for when making decisions. introducing 
macros that generate macros is rarely justified.

in general, it's *very* valuable when stuff can be grep'ped -- and not only for 
newcomers. after enough time has passed i can feel like a newcomer to my own 
codebase... :) modulo the protocols that i keep while writing code.

e.g. define.*whatever is a grep that i regularly employ. the pattern here is 
that although there are countless ways to define countless different stuff, 
there's a convention to stick to the define.*[name] pattern.

intuitive, unique (i.e. grep'pable) names are also key to facilitate code 
approachability, especially for abstractions that are scattered around in many 
source files. in some situations i even copy-paste names of abstractions into 
comments for any future grep'ping to pick it up.

a negative example for this in the guix codebase is the use of 'service' to 
describe two rather different abstractions: a component of an OS vs. a deamon 
process run by shepherd. for a while it caused me quite some confusion.



-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“The State is that organization in society which attempts to maintain a 
monopoly of the use of force and violence in a given territorial area; in 
particular, it is the only organization in society that obtains its revenue not 
by voluntary contribution or payment for services rendered but by coercion.”
— Murray N. Rothbard (1926–1995), 'Anatomy of the State' (1974)




Re: sbcl-py4cl does not appear in --list-dependent output

2023-11-30 Thread Simon Tournier
Hi,

On mer., 29 nov. 2023 at 13:27, "jgart"  wrote:

> Does anyone happen to know why sbcl-py4cl doesn't appear in this output?
>
> guix refresh --list-dependent python-numpy
>
> Building the following 1490 packages would ensure 3164 dependent packages are 
> rebuilt:

I guess sbcl-py4cl is not part of the 1490 packages but is part of the
3164 ones.

Cheers,
simon



Re: sbcl-py4cl does not appear in --list-dependent output

2023-11-30 Thread Efraim Flashner
On Wed, Nov 29, 2023 at 01:27:15PM +, jgart wrote:
> Hi Guixers,
> 
> Does anyone happen to know why sbcl-py4cl doesn't appear in this output?
> 
> guix refresh --list-dependent python-numpy
> 
> 

(ins)efraim@3900XT ~$ guix refresh -l sbcl-py4cl
A single dependent package: cl-py4cl@0.0.0-2.2f2a008

cl-py4cl@0.0.0-2.2f2a008 does appear in the list

-- 
Efraim Flashner  רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature