[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: defining core modules
From: |
Ludovic Courtès |
Subject: |
Re: defining core modules |
Date: |
Mon, 28 Jan 2019 15:25:59 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi,
Danny Milosavljevic <address@hidden> skribis:
> On Mon, 28 Jan 2019 11:51:53 +0100
> Ludovic Courtès <address@hidden> wrote:
[...]
>> Right. Initially linux.scm was for “kernel + Linux-specific packages”.
>> I think we should change it to have:
>>
>> • linux.scm for the kernel, header, ‘perf’, and little more.
>>
>> • linux-specific.scm (or similar) for Linux-specific packages (ALSA,
>> PAM, libnl, btrfs, FUSE, etc.)
>
> In general I would always prefer that (I thought the python-xyz was
> something like that for python).
>
> There's a difference between "A" and "written using A" (even if it's an
> extension to A), and it doesn't make much sense to conflate them.
>
> For example, CPython is a C program and it doesn't make much sense to
> put it with the Python programs (pypy, on the other hand, is a Python
> program). CPython won't use any of them.
>
> So CPython itself is in gnu/packages/python.scm and the Python
> modules are NOT in gnu/packages/python.scm, but for example in
> gnu/packages/python-xyz.scm or more specific modules.
>
> In your case, gnu/packages/linux.scm would be the Linux kernel and
> gnu/packages/linux-xyz.scm would be packages that only work on the
> Linux kernel (i.e. *clients* of the Linux kernel).
Agreed.
More generally, I think we should have LANGUAGE-CATEGORY.scm modules,
like {python,haskell}-{web,crypto}.scm, rather than catchall web.scm or
crypto.scm.
That way, at least for “non-scripting languages” (Haskell, OCaml, Rust,
etc.), the language packages would all leave in their own set of modules
that you won’t load unless you actually use the language.
(I’m drawing a distinction between “scripting languages”, namely Perl
and Python, and the rest, because those other languages tend to grow
package graphs that are very much independent from the typical GNU/Linux
C code base.)
Thanks,
Ludo’.