[PATCH v2 0/3] Resolve a circular module dependencies in embedded modules

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
normal
Merged with
M
M
Maxim Cournoyer wrote on 18 Sep 2023 02:41
(address . guix-patches@gnu.org)(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
cover.1694997702.git.maxim.cournoyer@gmail.com
This series is the culmination of at least a day of effort tracking down the
source of a module dependency cycle (!). The last commit adds some guidelines
in the hope to avoid a repeat (perhaps 'lint' could be taught to
automate these checks).

Changes in v2:
- Use mlambda for procedures
- Fix ((make-avr-toolchain)) typo
- Use mlambda for procedures

Maxim Cournoyer (3):
gnu: avr: Delay all cross compilation packages.
gnu: embedded: Turn packages using top-level variables into
procedures.
doc: Add new 'Circular Module Dependencies' section.

doc/contributing.texi | 56 ++
gnu/packages/avr-xyz.scm | 2 +-
gnu/packages/avr.scm | 214 +++---
gnu/packages/axoloti.scm | 6 +-
gnu/packages/embedded.scm | 1227 ++++++++++++++++++---------------
gnu/packages/raspberry-pi.scm | 2 +-
6 files changed, 838 insertions(+), 669 deletions(-)


base-commit: fc1b4756e36857e66986a30a6652ee988f8f30fd
--
2.41.0
L
L
Ludovic Courtès wrote on 25 Sep 2023 16:07
control message for bug #65860
(address . control@debbugs.gnu.org)
87ttri5ost.fsf@gnu.org
merge 65860 66063
quit
M
M
Maxim Cournoyer wrote on 25 Sep 2023 19:58
Re: bug#66063: [PATCH v2 0/3] Resolve a circular module dependencies in embedded modules
(name . Ludovic Courtès)(address . ludo@gnu.org)
871qem2kzh.fsf_-_@gmail.com
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (30 lines)
> Hi Ludovic,
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
> [...]
>
>> I agree that this needs to be addressed. I wondered whether/how hard we
>> should search for a different solution.
>
> OK. I think the current situation needs to be resolved ASAP, but longer
> term I'm definitely willing to revisit our strategy when it comes to
> cross compiler toolchains.
>
> [...]
>
>> BTW, another issue with the package-returning procedures: they return a
>> fresh package object at each call, which defeats caching. I think you
>> should be able to observe it with:
>>
>> GUIX_PROFILING=object-cache guix build axoloti-runtime -d --no-grafts
>>
>> The effect will be more acute on the build farms since they compute
>> derivations for everything that depends on these toolchains.
>>
>> The solution would be to make those procedures memoizing, with ‘mlambda’
>> or similar.
>
> I haven't tried measuring the impact, but I've use mlambda in the v2
> just sent; thanks for the suggesting it!

I've now pushed this series. If we can make AVR a native
target/platform in Guix, that may make things simpler/nicer, but
otherwise, this is at least resolved.

--
Thanks,
Maxim
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 66063@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 66063
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch