all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: Josselin Poiret <dev@jpoiret.xyz>,
	Christopher Baines <mail@cbaines.net>,
	Simon Tournier <zimon.toutoune@gmail.com>,
	Mathieu Othacehe <othacehe@gnu.org>,
	60847@debbugs.gnu.org, Tobias Geerinckx-Rice <me@tobias.gr>,
	Lars-Dominik Braun <lars@6xq.net>,
	Ricardo Wurmus <rekado@elephly.net>, jgart <jgart@dismail.de>
Subject: [bug#60847] [PATCH] Enable cross-compilation for the pyproject-build-system.
Date: Fri, 10 Mar 2023 18:00:33 +0100	[thread overview]
Message-ID: <87a60kh77y.fsf@gnu.org> (raw)
In-Reply-To: <87v8j8r8jt.fsf@gmail.com> (Maxim Cournoyer's message of "Fri, 10 Mar 2023 09:21:42 -0500")

Hi Maxim,

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

[...]

>>>>> +  (let ((builder-name (procedure-name (bag-build bag))))
>>>>> +    (if (or (bag-target bag)
>>>>> +            (eq? 'pyproject-build builder-name))
>>>>> +        (bag->cross-derivation bag)
>>>>
>>>> This one part is a showstopper to me, for two reasons:
>>>>
>>>>   1. We cannot rely on ‘procedure-name’ (it’s a debugging aid and it’s
>>>>      not guaranteed to return something useful).
>>>>
>>>>   2. Special-casing build systems here is not okay: the bag and build
>>>>      system abstractions exist to maintain separation of concerns.
>>>>
>>>> I understand there’s an actual bug to fix and the desire to fix a more
>>>> common issue, but I think this one approach is not the way forward.
>>>>
>>>> I hope that makes sense!
>>>
>>> I agree this is not "pretty", but it would be a "temporary" kludge until
>>
>> To make sure there’s no misunderstanding, I think that’s not okay even
>> as a “temporary kludge” (I’m not against temporary kludges in general,
>> I’ve done my share of that ;-), but this would be way too brittle.)
>
> "way too brittle" is a strong warning :-).

It is; I’m objecting to this change.

> I don't understand what is
> so brittle about it?  It's not like we change the build system names
> often.

I have little to add to what I wrote above: procedure names don’t mean
anything, especially with higher-order functions, and separation of
concerns is an important design principle.

I’m speaking with 15+ years of experience with Guile; I don’t mind being
challenged, it’s healthy, but I think we also need to recognize the
expertise of each other and encounter each other halfway.

[...]

>> Perhaps one suggestion would be: start the native-inputs/inputs change
>> on a new branch, for all the build systems (or at least the main
>> ones), and then try to build the ‘core’ subset (which includes
>> cross-compilation) to get an idea of the kind of code simplification
>> opportunities as well as issues that arise.  I feel like it’s hard to
>> anticipate the impact of such a change without actually trying.
>
> I can do this; the exercise would be similar to what I've done for
> pyproject-build-system, where I was able to build complex packages (both
> natively and cross-compiled) with the new same-bag representation
> change, but to a larger scale.  It's more work, which is why I would
> have preferred to contain its scope to get started, but the changes were
> easy, IIRC.

Yes, I agree it’s more work, but it’s dissimilar in that you’ll be
confronted with tons of weird cases, some of which we can already
anticipate, but probably others we’ll probably be surprised to discover.

> Basically, it forces us to review all the (assoc-ref inputs
> "package-name") or (search-input-file inputs "file") procedure calls and
> remove the assumption that native-inputs are also inputs for native
> builds (that'll fix multiple cross-compilation bugs at the same time, so
> it's a good thing to do anyway).

I do hope it’ll be this simple, but I just can’t tell.

Thank you,
Ludo’.




  reply	other threads:[~2023-03-10 17:01 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-16  4:04 [bug#60847] [PATCH 0/5] Enable cross-compilation for the pyproject-build-system Maxim Cournoyer
2023-01-16  5:01 ` [bug#60847] [PATCH 0/1] " Maxim Cournoyer
2023-01-16  5:01   ` [bug#60847] [PATCH 1/1] build: Enable cross-compilation for pyproject-build-system Maxim Cournoyer
2023-01-23 13:32 ` [bug#60847] [PATCH v2 0/1] Enable cross-compilation for the pyproject-build-system Maxim Cournoyer
2023-01-23 13:32   ` [bug#60847] [PATCH v2 1/1] build: Enable cross-compilation for pyproject-build-system Maxim Cournoyer
2023-03-06 17:04     ` [bug#60847] [PATCH] Enable cross-compilation for the pyproject-build-system Ludovic Courtès
2023-03-07 14:08       ` Maxim Cournoyer
2023-03-07 15:05         ` Christopher Baines
2023-03-07 19:03           ` Maxim Cournoyer
2023-03-07 19:26             ` Christopher Baines
2023-03-10 14:13               ` Maxim Cournoyer
2023-03-10  8:57         ` Ludovic Courtès
2023-03-10 14:21           ` Maxim Cournoyer
2023-03-10 17:00             ` Ludovic Courtès [this message]
2023-03-12  4:05               ` Maxim Cournoyer
2023-03-12  4:05               ` Maxim Cournoyer
2023-03-06 22:56     ` jgart via Guix-patches via
2023-03-07  0:25     ` jgart via Guix-patches via
2023-01-24  2:05   ` [bug#60847] [PATCH v2 1/1] build: Enable cross-compilation for pyproject-build-system jgart via Guix-patches via

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a60kh77y.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=60847@debbugs.gnu.org \
    --cc=dev@jpoiret.xyz \
    --cc=jgart@dismail.de \
    --cc=lars@6xq.net \
    --cc=mail@cbaines.net \
    --cc=maxim.cournoyer@gmail.com \
    --cc=me@tobias.gr \
    --cc=othacehe@gnu.org \
    --cc=rekado@elephly.net \
    --cc=zimon.toutoune@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.