Every new fucking project I need to dig in... I end up fighting against #Guix it's pretty annoying...
I don't really control very well how to insert variables in the config-flags and when is each thing executed... or the gexps... and at the end of the day this is just a pain in the ass for no reason
Conversation
Notices
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Tuesday, 07-Jun-2022 16:59:37 CEST Ekaitz Zárraga 👹
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Tuesday, 07-Jun-2022 20:01:16 CEST Ekaitz Zárraga 👹
@civodul I'm trying to understand the inner-workings of Guix in order to free myself from the pain and free other people but it's not easy.
It's like all the good things guix gives me have the counterpart of being a pain in the ass too...Most of the time there's no solution.
More specifically, how can I understand properly the execution time of the different parts of the package and how they are launched and the api I have available there? I'm talking about #:configure-flags for instance.
-
Ludovic Courtès (civodul@toot.aquilenet.fr)'s status on Tuesday, 07-Jun-2022 20:01:17 CEST Ludovic Courtès
@ekaitz_zarraga This is sad to hear… especially the “for nothing” part. :-/
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Tuesday, 07-Jun-2022 20:03:36 CEST Ekaitz Zárraga 👹
@civodul also what I said it's not necessarily only a fault of guix. Projects relying on FHS and not being configurable enough are to blame too.
-
w96k (w96k@fosstodon.org)'s status on Tuesday, 07-Jun-2022 23:04:30 CEST w96k
@ekaitz_zarraga Guix adds complexity to reduce complexity of deploying or using stuff when you finally configured your stuff. But overall it has everything that FHS distros has + guiled nix abstraction on top of that. I've read on the net, that many people complain that it is hard to understand what is going on in nix. And also it is hard to understand what's your installed program doing, because it is different from what's written in archwiki (or other source pretending that you use fhs distro)
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Tuesday, 07-Jun-2022 23:06:53 CEST Ekaitz Zárraga 👹
@w96k I can, after 3 years or so, understand what my programs do but customizing guix for my extremely weird needs is sometimes confusing because:
1) I don't know guile well enough
2) I don't know guix well enoughI wish I could just read a book about guix internals that was really technical but explaining everything from the ground up.
It takes time, but when you are working on another project for money, spending time on learning this is hard. I'm already really busy and tired...
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 00:02:46 CEST Ekaitz Zárraga 👹
@w96k having the packages and the code of guix itself together doesn't help for that git flow but I can give it a go.
I think guix's docs are great but they don't fit me well, because of the type of person/coder I am. I don't have the necessary background for it. It's obviously not Guix's fault but mine, but this is what we have.
-
w96k (w96k@fosstodon.org)'s status on Wednesday, 08-Jun-2022 00:02:47 CEST w96k
@ekaitz_zarraga I work for now and I understand that feeling. It is sad, that there is probably no work that would compensate your learning time or something like that.
Guix internals book would be great, but honestly it is rare when docs are at least as good as guix docs. I think we should not complain about that at all. I think one of styles of learning programs is using git time machine, using it to see how program evolved over time. It surely needs a lot of time to investigate.
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 00:06:22 CEST Ekaitz Zárraga 👹
@w96k Also big part of the problem is that I'm working with/for Guix and it's interfering a lot but also it's the only tool that would let me do this work so it's kind of a complex feeling.
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 00:08:29 CEST Ekaitz Zárraga 👹
@w96k Just in case, in order to clarify what kind of person/coder I am:
I have not a background on computer science and I never studied functional programming formally. I understand many of the things, because I read *a lot* and I have some experience with functional programming languages but some underlying concepts are obscure to me still.
So we could summarize that I don't really have the context to understand it all, and the context is what is hard to get.
-
w96k (w96k@fosstodon.org)'s status on Wednesday, 08-Jun-2022 00:13:29 CEST w96k
@ekaitz_zarraga nix docs are huge, but many people find them useless or not informative or too complex. Some people complained in ru chat about guile docs, but honestly as scheme implementation doc it is not that bad, but as scheme as a language it is not that great.
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 00:14:06 CEST Ekaitz Zárraga 👹
@w96k guile docs are pretty good if you already understand scheme really well, and I'm talking about the jargon and all that.
The main problem they have is there's no other place were all that information is packed. Even the R5RS, which is easy to read, does not provide that properly. It's years of experience in the area which gives you the context, and that, for someone that just enters the project, it's undermining.I didn't try with nix, but it probably falls to the other end.
-
Ludovic Courtès (civodul@toot.aquilenet.fr)'s status on Wednesday, 08-Jun-2022 00:18:48 CEST Ludovic Courtès
@ekaitz_zarraga The entry points would be the “Build Systems” and “Build Phases” sections:
https://guix.gnu.org/manual/devel/en/html_node/Build-Systems.html#index-gnu_002dbuild_002dsystem
https://guix.gnu.org/manual/devel/en/html_node/Build-Phases.htmlWe made an effort to make it approachable, but I gather there’s room for improvement.
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 00:18:48 CEST Ekaitz Zárraga 👹
@civodul I (re)read them diagonally this morning trying to get some info and I didn't find what I was looking for but I'll do it tomorrow with more concentration and ping you back. Promise
-
w96k (w96k@fosstodon.org)'s status on Wednesday, 08-Jun-2022 10:14:09 CEST w96k
@ekaitz_zarraga even if you had all education it would take time to understand some software product. I don't think that it matters that much.
I don't have education or whatever too, basically what made me to use guix is Emacs and GNU (and also desire to not wipe out my systemfiles everytime I change a distro). There is no centralised documentation in unix-like world and software in general, to understand guix you have to know guile, for knowing guile you have to know scheme and so on.
Ekaitz Zárraga 👹 repeated this. -
w96k (w96k@fosstodon.org)'s status on Wednesday, 08-Jun-2022 10:14:09 CEST w96k
@ekaitz_zarraga for knowing scheme it would be good to understand functional programming, before functional programming it would be good understand programming in general. Such learning chais are infinite and docs have a problem, that they are often tied for some context, they require its reader to know something to understand them and it is hard to write it in a way that the guy with 0 knowledge would understand everything.
I'm using guix for 3+ years and I still don't know guile and scheme :(
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 10:16:04 CEST Ekaitz Zárraga 👹
@w96k of course but in other projects I can simply read a book about it and get the context i need, or at least most of it.
Scheme is around academia that much that makes it have it's own jargon and makes it hard to reason for people that come from outside. I can code in scheme, but my scheme code is very different from the code that people really into scheme do, and that's a problem. -
Ludovic Courtès (civodul@toot.aquilenet.fr)'s status on Wednesday, 08-Jun-2022 10:16:14 CEST Ludovic Courtès
@emacsen @ArneBab @ekaitz_zarraga The CI tool at https://ci.guix.gnu.org (Cuirass) is set up to build everything for all the supported architectures, with the caveat that there are far fewer ARM build machines (say) than x86_64 build machines.
-
Emacsen (emacsen@emacsen.net)'s status on Wednesday, 08-Jun-2022 10:16:15 CEST Emacsen
Okay this is amazing. I was just asking @ArneBab some of these exact questions today.
Here's a question...
The guix build servers- how do they know what architectures to build for? Do they build all packages on all architectures? Do they do some "on demand"? Is there a flag somewhere that's set?
Ekaitz Zárraga 👹 repeated this. -
taiju :gnu: :emacs: :guix: (taiju@fosstodon.org)'s status on Wednesday, 08-Jun-2022 10:19:45 CEST taiju :gnu: :emacs: :guix:
@ekaitz_zarraga @w96k I have been using Guix in earnest for less than a year. Although my personal time is limited, I have no qualms about spending much of my personal time on Guix now because it tickles my intellectual curiosity.
However, I sometimes wonder if I will end up with the same opinion as yours when I am no longer intellectually curious.
But I believe my love for free software will stop that. -
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 10:19:45 CEST Ekaitz Zárraga 👹
@taiju @w96k I love Guix and it keeps me intellectually engaged, the problem is sometimes I don't have the time to work around it, and my job depends on that. I love working on guix too, but sometimes it's hard to see that in any other distro the problem you have would just disappear, and you are spending one week on solving something because you don't know enough about your platform (and you need to).
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 10:50:11 CEST Ekaitz Zárraga 👹
@civodul Look, this is the kind of thing I wanted to understand:
https://arxiv.org/abs/1709.00833I'll read it later.
-
Ludovic Courtès (civodul@toot.aquilenet.fr)'s status on Wednesday, 08-Jun-2022 12:49:41 CEST Ludovic Courtès
@ekaitz_zarraga That’s a good read :-) but I don’t think you need to understand the design & implementation of gexps to use them. Maybe this section is enough:
https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html -
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 12:49:41 CEST Ekaitz Zárraga 👹
@civodul The kind of person that I am makes me need to understand how things work internally to really understand how to use them. I'm flawed :D
-
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 13:20:00 CEST Ekaitz Zárraga 👹
@civodul DUUUDE This is it!
This is what I needed to understand (among other things)
-
Ryuno-Ki (ryunoki@layer8.space)'s status on Wednesday, 08-Jun-2022 19:07:28 CEST Ryuno-Ki
@ekaitz_zarraga
Can you lend a hand, @cwebber ?
@civodul -
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 19:07:28 CEST Ekaitz Zárraga 👹
@RyunoKi @cwebber @civodul Do you need help to understand it?
It's just the expansion steps of the G-exps -
Ryuno-Ki (ryunoki@layer8.space)'s status on Wednesday, 08-Jun-2022 19:12:20 CEST Ryuno-Ki
@ekaitz_zarraga
I think, I'm at best at a point where I understand each word on its own but not how they play together.
Lisp / Guix uses prefix notation, doesn't it?
@cwebber @civodul -
Ekaitz Zárraga 👹 (ekaitz_zarraga@mastodon.social)'s status on Wednesday, 08-Jun-2022 19:12:20 CEST Ekaitz Zárraga 👹
@RyunoKi @cwebber @civodul sure, prefix notation for the win.
But if you are missing the context of the conversation you'll be completely lost in the meaning of everything.
-