Hello,

Sorry for a long post and for abusing the language.

I know that XQuery is a side-effect free language. Unfortunately, trying to express some of course side-effect full :( workflow diagrams, I have to avoid that feature.

I have to ensure that functions F1...FN will execute and will execute in proper order. So my document looks like:

let
    $v1 := F1(...),
    $v2 := F2(...),
return (
    e($v1),e($2),
   let
      $v3 := F3($v2),
      $v4 := F4()
   return (
      e($v3),e($v4),
      <result>{$v3}</result>
   ))

All the F1...FN function are external Java functions, and so is 'e' that returns void (without that function, F1 and F4 would not be called, should they?). For example, F1 and F4 can be used to open and close a computation session.

My problem is that such documents (that are of course much more complicated) do not execute well with the latest Saxon-B. With previous versions everything worked OK.

Are there any advanced optimizations introduced in Saxon-B 8.4? Or is my idea flawed? Is the sequence of computation guaranteed - that is, will always $v3 be evaluated before $v4?

Thanks a lot,
Grzegorz Kaczor

--
The significant problems we face cannot be solved by the same level of thinking that created them.
Albert Einstein