[Top][All Lists]

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

Heuristic adaptation of compilation order: desirable? feasible?

From: Joachim Wuttke
Subject: Heuristic adaptation of compilation order: desirable? feasible?
Date: Wed, 4 Apr 2018 20:19:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

I would like to propose a new option to the 'make' command
which instructs the software to change the order of execution
of same-level rules according to past success or failure,
in order to reduce average turn-around times in software

Consider a target T, which depends on components C_i (i=1,..n),
which in turn depend on a root component R. Suppose 'make T'
failed with an error in component C_j. The user modifies file R,
and reruns 'make T'.

As per now, Make will process C_1, .., C_n.

However, in a typical software development situation, the
compilation is much more likely to fail again on C_j than
on any other single component. Therefore, it would be
rational for Make to change the compilation order to
C_j, C_(j+1), .., C_n, C_1, .., C_(j-1).

Implementation would require Make to store and retrieve
information about the last compilation outcome, possibly
in a hidden file ".make.result" or similar.

This would be a considerable modification, and therefore
should not be enacted by default. Therefore I propose to
add a command-line option that enables logging and
heuristically modified compilation order.

Would you agree that such enhanced functionality is desirable?
Would it be feasible within GNU Make's current architecture?

- Joachim

Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt

reply via email to

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