Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Sep 2024 11:05:38 +0200
From:      Olivier Certner <olce@freebsd.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: It's not Rust, it's FreeBSD (and LLVM)
Message-ID:  <2372745.viN5riZIyJ@ravel>
In-Reply-To: <202409091859.489Ixdia086264@critter.freebsd.dk>
References:  <202409031532.483FW0If007252@critter.freebsd.dk> <2611284.jQUcPV6jne@ravel> <202409091859.489Ixdia086264@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart2111829.mIT35NG9lc
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"; protected-headers="v1"
From: Olivier Certner <olce@freebsd.org>
To: Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc: freebsd-hackers@freebsd.org
Subject: Re: It's not Rust, it's FreeBSD (and LLVM)
Date: Tue, 10 Sep 2024 11:05:38 +0200
Message-ID: <2372745.viN5riZIyJ@ravel>
In-Reply-To: <202409091859.489Ixdia086264@critter.freebsd.dk>
MIME-Version: 1.0

>> - A system that is easy to build and tweak in practice (for developers a=
t the very least).
> But what are the boundaries of this "system" of which you talk ?

In the quote to which you responded, "system" simply designates FreeBSD, or=
 the "base system" to be even more explicit.

I have not accurately described what this "system" should include, simply b=
ecause I don't believe it can be delimited precisely ex abrupto in all gene=
rality, as this depends on a lot of factors (amount of people; what they ar=
e willing and able to work on; which upstreams project exist, can be used, =
and are cooperative; technology evolutions; our collective project directio=
n; etc.).

That's why I gave some high-level view of what I think the project is and s=
hould remain, and without which its nature would be considerably altered (I=
'd really like to hear other's points of view).  And I contend that this vi=
ew is more important than the precise detail of whether we have this or tha=
t as "base".

However, according to that view, I'm more or less coming to the conclusion =
that FreeBSD should include the compiler.  Which doesn't mean its code has =
to *live* in the 'src' git repository, nor does it mean we cannot rebuild F=
reeBSD without using pre-packaged binary or an earlier build from source.

Before elaborating further, I'd like to expand a bit on my earlier list of =
what FreeBSD is/should be.  I had written this, in particular:
> - A system that is self-sufficient, in the sense that, once installed on =
a machine, one can set it up to do whatever one would like without having t=
o boot something else (e.g., further software installations must be possibl=
e over the network or from some USB key; so it must include some tools to s=
upport the network, etc.).
> - A system that is easy to build and tweak in practice (for developers at=
 the very least).
I would add that "self-sufficient" also means that it can be easily built e=
ntirely from source from itself and other commonly available systems.  And =
also, as developed at the end of my previous mail, that it is easy to obtai=
n a workable view of all the source.
=20
> I am more or less responsible for nearly two hundred computers
> running FreeBSD right now.  Only two of those have zero ports/packages
> installed, one monitors my floor heating system, the other firewalls
> some old crap.
>=20
> To me "src+kernel" is just the foundations.
>=20
> "A system" is what people build on top of the foundations.

That's one possible view of a system, which is consumer-oriented rather tha=
n developer or software-project-oriented.  And I could return the question =
to you: What's the limit of your "system"? One computer? Your network? A gr=
oup of machines owned by someone? Or accomplishing some special task? Does =
it include the network (routers, cables, etc.)? Does it include your ISP?  =
These different groupings can always be seen as foundations of other, bigge=
r ones.  Without more context, I don't see how this foundation/system disti=
nction is going to be fruitful.

By "system", or FreeBSD base, I mean code written, overseen and/or managed =
by the people comprising the FreeBSD project, with the goals listed in my p=
revious mail.  I think that's the fundamental difference with ports: Ports =
are... ports of software developed externally (which doesn't prevent some p=
orters to contribute to upstream), not necessarily tied to FreeBSD's code, =
not having the same quality insurance, nor the same coding policies or rele=
ase schedules, and not collectively maintained by members of the project (a=
t least, we do not promise that; of course, members are individually free t=
o participate to whatever upstream project they like).

There is no denying that for lots of (most?) tasks, being able to run these=
 ports is a pre-requisite, it's just that we are not responsible for their =
development.  What porters are responsible for is ensuring that we can buil=
d and run these softwares on top of FreeBSD, with varying degrees of qualit=
y (depending on the size of upstream, the number of porters for each projec=
t, their level of engagement, etc.).  This sometimes entails participating =
to upstream development, but does not require setting, e.g., the full archi=
tecture or roadmap of these projects.

So, while we as a group are not living in an isolated island for sure, and,=
 e.g., should strive to maintain good working relationship with other proje=
cts, we are not (and cannot) be the developers or maintainers of all useful=
 software.  But we have to be so for software that we consider part of Free=
BSD.

Of course, code that is our own (provided, again, that it is needed to fulf=
ill the high-level principles), i.e., for which there's no upstream and no =
changes happen that aren't done or fully reviewed by project members (well,=
 this may be slightly idealistic, but hey...), belongs to 'src'.

=46inally, we have the kind of middle-ground comprising upstream projects, =
such as LLVM, which AFAICT are growing in number.  As long as we consider t=
hem to be needed in FreeBSD ("base") according to the high-level principles=
, we are responsible for them functioning correctly and consistently with t=
he rest of the system, even if we are not the primary developers.  So, we a=
lso "own" this code, albeit differently to code entirely in our hands.  And=
 it should be maintained collectively.  From commits and internal discussio=
ns, I can identify more or less correctly the (small) group of FreeBSD peop=
le working on LLVM in FreeBSD.  If, for some reason, these people would sto=
p working on it, we would have a problem, to which I expect the project as =
a whole would respond with actively trying to find a solution (some would i=
nvest more time to work on it, and/or we would try to find external people =
who can, or we would switch to another toolchain, etc.).  If, for some reas=
on, let's say, Firefox would lose enough of its developers to have its viab=
ility threatened, I don't expect us (as a project) to react to that as Fire=
fox is not part of base.  This doesn't exclude having a project response to=
 the difficulty of *porting* some software that we deem very important for =
the ecosystem, occasionally or in a longer term fashion.

This is only my view, but I have the feeling it is implicitly shared by man=
y.  I'm very interested in hearing whether it is more or less conform to re=
ality and what people think about it as of now and for FreeBSD's future.

That said, I also think this debate is mostly independent from the possibil=
ity of building FreeBSD without having to rebuild a full compiler every tim=
e.  It is however relevant to the proposal of removing LLVM's code from 'sr=
c', as this has bad consequences (according to the principles I listed) tha=
t we probably can, and should, remedy with tooling, although, as the saying=
 goes, the daemon is in the details.

Thanks and regards.

=2D-=20
Olivier Certner
--nextPart2111829.mIT35NG9lc
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part.
Content-Transfer-Encoding: 7Bit

-----BEGIN PGP SIGNATURE-----

iQIzBAABCQAdFiEEmNCxHjkosai0LYIujKEwQJceJicFAmbgC+IACgkQjKEwQJce
Jiekqg//Qkpz81a9uLWWWXPPpwJ355VlZFitQ9Cz0OvY0qf3oOVjfsy1sgzW/S81
s8pUk2nDUHw/mPhLsNgp7NjI9NzDMs1m66IWJgfI/tzsfkoVflN6uJ5zrDCLdMKy
NsT2h0fpzkZn4JGBksb9wsq84S3yaOTLcvGQlYj/c81pogHklYXbmdDX+5emYh8e
SuhrV/9ANViKAIbYlg4KRmyL9ocWK2/I6i30otlrvZq8AxoqUDDJj2fKvYv/b6fR
k8HYAYIninxIzYjod31H/vxAWcfIfU3FvVdj/ZE9ZNKApAAysi4lYRaVpRSmUyWT
gVVJIVujseW7PvimJQc0+/X78JQwWWE+yOymIu/bVF8j/DUwBMDCzL5BcsbOFtxk
/V9JKcgeDJSEmxBOx1x0mzn2YKtO+qU3gE3MtSu6RS8rZ5HtJP7Ap+GJVdKrs6f4
huy3gZLN5EHOR4PbSNiPhljwash3A8gRfZjw7SvXcBbHA1clVUAjgS8YgpNgifem
EezJM0odNmpZchUlbJM7kzGtZo16XlujZWfgVlZOdbiwU4IUgGgkJKZgSgsNFflV
ksicOndvgh2v4OP3xlxDXVvfD8+5JhWbiwl42OLTrflMRgkibZnGAMezz983HKWO
ibBVoxM3rq5GEsX1jNNQYqjSJ8ZH36gLT/5RvxoFLtSiW+8gvuI=
=OPAQ
-----END PGP SIGNATURE-----

--nextPart2111829.mIT35NG9lc--






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2372745.viN5riZIyJ>