[Bug 25489] New: [Imports]: Script execution order is non-deterministic in cyclic cases

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25489

            Bug ID: 25489
           Summary: [Imports]: Script execution order is non-deterministic
                    in cyclic cases
           Product: WebAppsWG
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Component Model
          Assignee: dglazkov@chromium.org
          Reporter: gkrizsanits@mozilla.com
        QA Contact: public-webapps-bugzilla@w3.org
                CC: mike@w3.org, public-webapps@w3.org

As it is currently specced, it's hard to see why would the right edge be marked
as cycle and not a random one from the cycle.

 M---> I1--->I4<-
 |\           | |
 | --> I2 <---- |
 |      |       |
 |      v       |
 ----> I3--------

Arrows represents links. If the parser is not blocked then the three edges of
the circle between I2, I3, I4 might be found in random order. For example if
between I1 and I4 there is a long chain of imports than I4->I2 directed path
will be found late and because of it I4->I2 will be marked as cycle, since
I3->I4 is already in, and at that point in time it was not considered as a
cycle.
It's easy to see from here that, Execution order of I4 and I3 is based on luck
mostly.

For me it's obvious that the intention should be to execute I3 first in this
example and mark I3->I4 as the cycle, but speccing that way needs a bit more
work and the algorithm might be significantly more complicated because of
this...

Sorry for the ASCII, but I think this is the simplest way to illustrate the
problem.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Received on Monday, 28 April 2014 07:49:54 UTC