chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal


From: Oleg Kolosov
Subject: Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal
Date: Thu, 04 Sep 2014 09:29:22 +0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0

On 09/04/14 02:44, Felix Winkelmann wrote:

> The major problem is that re-modularization will be the biggest
> barrier in migrating user code. Once that is done we have a groundwork
> for the really tricky things, and for smaller API changes that are
> easier to detect via the module system.
> 

Hello Felix!

If you are still here, perhaps you can answer my questions.

How hard is it would be to add to chicken an option to output a list of
module dependencies: files which it will finally try to dload
considering all renaming, functors, multiple definitions or whatever
corner cases? Something like:

chicken -emit-depends depends.out -analyze-only module.scm

Build system can use this information to build files in proper order,
this also will fix parallel build issues.

I've implemented very crude parser which just extracts an arguments from
use, import, etc. declarations - it's not very generic solution but
helps immensely in our project which have 50+ interdependent modules and
people constantly move things around.

I think this feature will help to ease building of CHICKEN itself as the
number of modules grow.

Also a related problem. Why CHICKEN searches for an extensions in
repository only, import libraries also in the supplied -include-path's.
This behaviour does not make sense for projects with many modules
installed at once. Isn't it better to always search user supplied paths
first, and built-in last? Also with an option to disable built-in.
Similar to how C compilers handle <> includes. This will make crude
scripting in CHICKEN's own test suite unnecessary, among the other things.

-- 
Regards, Oleg



reply via email to

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