chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Partial automation of egg dependencies


From: Mario Domenech Goulart
Subject: Re: Partial automation of egg dependencies
Date: Mon, 21 Nov 2022 22:28:03 +0100

On Mon, 21 Nov 2022 19:09:43 +0200 Lassi Kortela <lassi@lassi.io> wrote:

>> My take on that as a user: I care about dependencies and tend to avoid
>> eggs with many dependencies.  If I see `(auto-dependencies)' in an egg
>> file, I don't know the dependencies of that egg.  I would not like that.
>> Also, that would break the [reverse] dependency ranks of salmonella
>> reports.
>
> auto-dependencies should only cover things that are possible to
> compute statically by looking at the source files. So you'd have a
> simple, predictable tool that expands them to manual dependencies at
> will.
>
> The main source of trouble is that this:
>
> (import foo bar baz)
>
> specifies stuff that is then duplicated in the .egg file. When the
> imports change, the .egg has to be changed too. Else the build may
> break.
>
> This is the same problem that C/C++ programmers face in keeping
> makefiles synced with #include. Many of them concluded that thy can't 
> maintain correct makefiles by hand, and wrote tools like makedepend.

I think I understand the problem, but I'm not sure I understand the
solution (I'm probably missing something). :-)

* Regarding the usability problem mentioned, I still don't see how a
  user could easily see all the dependencies of an egg if the egg file
  has only `(auto-dependencies)'.

* Regarding the problem related to salmonella reports, I suppose
  salmonella would have to rely on some file emitted by chicken-install
  to be able to figure out dependencies.

* Regarding the import problem, another thing to keep in mind is that we
  don't have a 1-1 mapping between egg and module names.  Module names
  don't have to be the same as egg names and one egg might ship zero,
  one or multiple modules.  If you have `(import foo)' it doesn't mean
  that the `foo' module is shipped by an egg called `foo'.

* How can `auto-dependencies' deal with egg versions?

All the best.
Mario
-- 
http://parenteses.org/mario



reply via email to

[Prev in Thread] Current Thread [Next in Thread]