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