symphonytool / symphony

The Symphony IDE
5 stars 4 forks source link

Interpreter: gives exception in main thread for combination of alphabetised and generalised parallelism #250

Closed alvarohm closed 10 years ago

alvarohm commented 10 years ago

There were some problems with the execution of one of our models. We isolated the issue as much as we could and obtained the following process.

channels a,b,c

process T = 
begin 
actions
    A = a -> b -> Stop
    B = b -> c -> Stop
    C = b -> Stop
    D = (C [| {|b|} |] B)
    Alt1 = (A [| {|c|} |] Stop) [| {|b|} |] (D [| {|a|} |] Stop)
    Alt2 = (A [ {|a,b|} || {|b,c|} ] D)
@   Alt2
end

This process has two alternative main actions, Alt1 and Alt2. They are equivalent, but the first executes correctly, and the second gives a 'Exception in thread "main" ' error.

lausdahl commented 10 years ago

The error is related to deepcopy of the context in ActionInspectionVisitor#caseParallelBegin trying to obtain rightChannelset which is not found.

@joey-coleman where are rightChannelset defined in the example?

lausdahl commented 10 years ago

I'm closing with with trace a,b,c if this is not correct then please re-open.