Hi
Waits are certainly reduced by better scheduling and at the moment,
I've disabled some optimizations to stress the wait scheduling
logic.
However some waits are unavoidable.
a) the run-time deferred invocation resolves a wait for a transitive
access to some *:1 property, but requires that all input objects and
all *:N property accessed objects exist.
b) waiting for input objects or *:N content requires an accumulator.
Possibly just a lazy allInstances(). Better an
accumulated-instances. Optionally a re-computed-instances.
Consider the superClass resolution of example2. All classes must be
created, contained and named before any superclass can be resolved.
The invocations must therefore be delayed. The iterator for the
invocations is accumulated from the lasses of root classCSws,
wierdly-contained classCSes, packaged classCSes, packaged-packaged
classCSes, ... The recursive traversal of the packageCSes needs to
accumulate the values for later.
In this example allInstances() could work, but incurs more overheads
than accumulating what has already been intelligently vetted.
Retraversing can be accurate but also incurs more overheads.
Wait accumulators are also unavoidable for multi-headed mappings
whose invocation can only iterate sensibly and lazily on one input.
The others must be eagerly available in some accumulator.
----
I've only had time to promote the 'neutral half' of ewillink/480567
and I'm not totally confident that it's a coherent half. Please wait
till you see the repackaged commits for the other helf before
assessing/merging.
Regards
Ed Willink
On 16/12/2015 16:36, Adolfo
Sánchez-Barbudo Herrera wrote:
Hi Ed,
From a scheduling point of view, couldn't not "simply"
those mappings producing those "further requirements" be
called before B is executed ?. If it were required, coundn't
they even be called before A is executed ?
It sounds like as if a new runtime mechanism is solving a
lazy/not-clever-enough scheduler.
On the other hand, I'm glad to hear that M4 will have a
stable version of the scheduler on which I can work. I'm
looking forward to merge my asanchez/mtc3 branch. Although I
expect a fair amount of conflicts to look at, I'll give it a
try tomorrow to see what's the outcome.
Regards,
Adolfo.
_______________________________________________
qvtd-dev mailing list
qvtd-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/qvtd-dev
|