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: felix . winkelmann
Subject: Re: Partial automation of egg dependencies
Date: Mon, 21 Nov 2022 21:37:49 +0100

> > Actually, perhaps the best way would be to use a custom build
> > using csm to build the components of the egg. A little bit of
> > inventiveness might be required, but I think it should be possible.
>
> This would make the egg depend on csm. I don't mind this for programs,
> but for eggs that are just libraries, isn't this a bit "opinionated" /
> heavy given that all the build steps (apart from the import groveling)
> can be done using the current chicken-install?

Well, the import grovelling is what you need, right? It is an additional
dependency, true, but so is every other egg you depend on, like, say,
the r7rs egg. csm is not big, nor complex, and it basically just builds
a dependency graph, with some attempts to be able to read all source files
involved.

>
> Perhaps the csm groveler could be extracted into a library? Perhaps it
> could even be shipped in chicken-core at some point, since after all
> Chicken has to be able to trace all imports and includes in order for
> the compiler and interpreter to work.

The compiler and interpreter do this incrementally, they never build
the total dependency graph. This is not needed in the core system, so
we externalize it into an egg.

>
> > I added a "-compile-imports" to csm today to force import libs to
> > be compiled, which may be a start. Perhaps we can cover this
> > particular scenario without too much extra effort.
>
> This is above my paygrade :) I'll try to understand the patch.

It just enables an option that I forgot to expose to the user :-)
(It really does nothing else than compile the import lib after
a module is compiled). I was trying out some stuff thinking about
the problem that you are trying to solve and noticed that import
libs are not compiled by default by csm. If you use a custom-build
rule in an egg, it might be required to be able to do this.

I will try to come up with a simple test case and figure out how
to combine custom-build with csm.


felix




reply via email to

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