On 12 Aug 2010, at 09:01, Florian Klaempfl wrote:

The "final" plan is to use a task queue with dependencies and all needed
information. Such tasks may be: parse module X, generated code for
module X, load module Y, search for module Y, assemble module X etc.
Each task has a list of dependencies which much be done first before the
task can be executed.

One problem with this model currently is inlining: once the implementation of a unit containing an inline procedure is compiled, its interface crc changes (because the code of the inlined routine is part of the interface), and this can trigger recompilations of other units.

An easy solution is to not let the code of inline routine (and the flag that indicates that it's available) influence the interface crc, but in that case it won't be inlinable in units it depends on in its implementation. Doing that would probably solve a lot of crashes and other errors that currently exist with the unit loading though.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to