* bootstrapping scenario for a package
@ 2021-12-20 7:03 Andy Tai
2021-12-21 14:11 ` Efraim Flashner
0 siblings, 1 reply; 4+ messages in thread
From: Andy Tai @ 2021-12-20 7:03 UTC (permalink / raw)
To: help-guix
Hi, I was trying to update mono to the current release version. The
build step as documented actually says to download a minimal C#
compiler from the mono site which is then used to compile the rest of
the source to build the full system. I looked and did not find the
source of this minimal compiler--so it is a black box in a way.
In free software it is ideal to build everything from source. I
wonder how is such a package handled in Guix? What is the strategy
for bootstrapping? Thanks
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: bootstrapping scenario for a package
2021-12-20 7:03 bootstrapping scenario for a package Andy Tai
@ 2021-12-21 14:11 ` Efraim Flashner
0 siblings, 0 replies; 4+ messages in thread
From: Efraim Flashner @ 2021-12-21 14:11 UTC (permalink / raw)
To: Andy Tai; +Cc: help-guix
[-- Attachment #1: Type: text/plain, Size: 1522 bytes --]
On Sun, Dec 19, 2021 at 11:03:25PM -0800, Andy Tai wrote:
> Hi, I was trying to update mono to the current release version. The
> build step as documented actually says to download a minimal C#
> compiler from the mono site which is then used to compile the rest of
> the source to build the full system. I looked and did not find the
> source of this minimal compiler--so it is a black box in a way.
>
> In free software it is ideal to build everything from source. I
> wonder how is such a package handled in Guix? What is the strategy
> for bootstrapping? Thanks
For circular dependencies our first attempt is to use a minimal variant
of the package that's missing features to build the full package. For
something like a language that depends on a working implementation of
itself we'll see if we can bootstrap it using either a previous version
of itself, a different implementation or a slimmed down version that has
enough working to be able to build itself.
Some notable examples are rust, bootstrapped from mrustc, and a chain of
rust compilers. Also go, bootstrapped from gccgo or go-1.4 (written in
C). One where this fails is GHC, where even going back to the early 90's
it was near impossible to find an implementation that didn't depend on a
previous version.
--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* bootstrapping scenario for a package
@ 2021-12-20 20:06 Andy Tai
2022-01-03 14:37 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: Andy Tai @ 2021-12-20 20:06 UTC (permalink / raw)
To: guix-devel
Hi, I was trying to update mono to the current release version. The
build step as documented actually says to download a minimal C#
compiler from the mono site which is then used to compile the rest of
the source to build the full system. I looked and did not find the
source of this minimal compiler--so it is a black box in a way.
In free software it is ideal to build everything from source. I
wonder how is such a package handled in Guix? What is the strategy
for bootstrapping? Thanks
(msg sent to help-guix first but this list may be more appropriate)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: bootstrapping scenario for a package
2021-12-20 20:06 Andy Tai
@ 2022-01-03 14:37 ` Ludovic Courtès
0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2022-01-03 14:37 UTC (permalink / raw)
To: Andy Tai; +Cc: guix-devel
Hi!
Andy Tai <atai@atai.org> skribis:
> Hi, I was trying to update mono to the current release version. The
> build step as documented actually says to download a minimal C#
> compiler from the mono site which is then used to compile the rest of
> the source to build the full system. I looked and did not find the
> source of this minimal compiler--so it is a black box in a way.
>
> In free software it is ideal to build everything from source. I
> wonder how is such a package handled in Guix? What is the strategy
> for bootstrapping? Thanks
In several important cases (GCC, Java, Rust, OCaml, etc.), Guix goes to
great lengths to build things from source. Most of the time, that
involves doing work that upstream isn’t doing, such as finding a path
from older or separate implementations that can be built from source to
the target compiler. You can read a bit about it here:
https://guix.gnu.org/en/blog/tags/bootstrapping/
What you describe for Mono sounds problematic. If would be nice to see
if the currently packaged version already had this problem, and if not,
we could make it a dependency of the new version.
HTH!
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-01-03 14:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-20 7:03 bootstrapping scenario for a package Andy Tai
2021-12-21 14:11 ` Efraim Flashner
-- strict thread matches above, loose matches on Subject: below --
2021-12-20 20:06 Andy Tai
2022-01-03 14:37 ` Ludovic Courtès
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.