<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Your test mix struct and lists can you reproduce it without using
      a struct ?<br>
    </p>
    <div class="moz-cite-prefix">Le 16/10/2020 à 14:15, Arvid Rosén a
      écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:285DA550-BF4C-4446-8E9D-E49C07DCE5D3@softube.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        font-size:10.0pt;
        font-family:"Courier New";
        mso-fareast-language:EN-GB;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;
        mso-fareast-language:EN-US;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}</style>
      <div class="WordSection1">
        <p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span lang="EN-US">I already filed a report
            here:<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"> </span><span
            style="color:black;mso-fareast-language:EN-GB"><a
href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=16556"
              title="https://bugzilla.scilab.org/show_bug.cgi?id=16556"
              moz-do-not-send="true"><span style="color:#000064">https://bugzilla.scilab.org/show_bug.cgi?id=16556</span></a><o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">Do
            you want a more compact example than that?<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">Here
            is an even more slimmed version.<br>
            <br>
            <o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">Cheers,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">Arvid<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">----------<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">//
            Define variables<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">testArray
            = list(list([]));<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">testArray(1)(1).testMember
            = 1;<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">testArrayOrig
            = testArray;<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">//
            Define function<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">function
            outArray = testFunc(inArray)<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">   
            inArray(1)(1).testMember = 5<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">   
            outArray = inArray;<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">endfunction<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">//
            Send the variable as argument to the function<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">testArrayOut
            = testFunc(testArray);<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">if
            testArrayOut(1)(1).testMember == testArray(1)(1).testMember<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">   
            error("Error! inputArgument was changed by function");<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US">end<o:p></o:p></span></p>
        <p class="MsoNormal"><span
            style="color:black;mso-fareast-language:EN-GB" lang="EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <p class="MsoNormal"><span
              style="color:#767171;mso-fareast-language:EN-GB"
              lang="EN-US">-- <o:p></o:p></span></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div style="border:none;border-top:solid #B5C4DF
          1.0pt;padding:3.0pt 0cm 0cm 0cm">
          <p class="MsoNormal" style="margin-left:36.0pt"><b><span
                style="font-size:12.0pt;color:black">From:
              </span></b><span style="font-size:12.0pt;color:black">Scilab
              Users List <a class="moz-txt-link-rfc2396E" href="mailto:users-bounces@lists.scilab.org"><users-bounces@lists.scilab.org></a> on
              behalf of Stéphane Mottelet
              <a class="moz-txt-link-rfc2396E" href="mailto:stephane.mottelet@utc.fr"><stephane.mottelet@utc.fr></a><br>
              <b>Reply to: </b>Users mailing list for Scilab
              <a class="moz-txt-link-rfc2396E" href="mailto:users@lists.scilab.org"><users@lists.scilab.org></a><br>
              <b>Date: </b>Friday, 16 October 2020 at 13:40<br>
              <b>To: </b><a class="moz-txt-link-rfc2396E" href="mailto:users@lists.scilab.org">"users@lists.scilab.org"</a>
              <a class="moz-txt-link-rfc2396E" href="mailto:users@lists.scilab.org"><users@lists.scilab.org></a><br>
              <b>Subject: </b>Re: [Scilab-users] Scilab 6 - Problem
              with scope and nested lists</span><span
              style="font-size:12.0pt;color:black;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
        </div>
        <div>
          <p class="MsoNormal" style="margin-left:36.0pt"><o:p> </o:p></p>
        </div>
        <p style="margin-left:36.0pt">Hello,<o:p></o:p></p>
        <p style="margin-left:36.0pt">I think that this is a
          sufficiently serious issue to diserve a report in
          bugzilla.scilab.org. But could you prepare a more compact
          example ?<o:p></o:p></p>
        <p style="margin-left:36.0pt">S.<o:p></o:p></p>
        <div>
          <p class="MsoNormal" style="margin-left:36.0pt">Le 16/10/2020
            à 13:35, Arvid Rosén a écrit :<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <div>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="SV">Hi!</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="SV"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">We have found a tricky issue when moving
                over from Scilab 5 to Scilab 6 in my organization. We
                have a lot of code which works with nested lists, and
                functions modifying those lists. However, when a
                function is called with some nested lists as an input
                argument, the body of that function can change the value
                of the variable in the calling scope. This was not the
                case in Scilab 5, and the issue is super tricky to hunt
                down in our quite extensive code base. Below is a short
                example of the problem, and how to reproduce it.</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">I have also filed a bug report here:
              </span><a
href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=16556"
                moz-do-not-send="true">https://bugzilla.scilab.org/show_bug.cgi?id=16556</a><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">Is anyone else seeing this problem? And do
                you have any workarounds or other suggestions?</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">Cheers,</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">Arvid</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US">------</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"><span
                lang="EN-US"> </span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">// Define
              variables<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">testArray =
              list();<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">for i=1:1:10<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">   
              testArray($+1) = list();<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    for
              j=1:1:10<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">       
              testArray(i)($+1) = [];<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">       
              testArray(i)(j).testMember = 1;<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    end<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">end<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">testArrayOrig
              = testArray;<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"> <o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">// Define
              functions<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">function
              outArray = testFunc(inArray)<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    for
              i=1:1:10<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">        for
              j=1:1:10<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">           
              inArray(i)(j).testMember = 5<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">        end<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    end<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    outArray
              = inArray;<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">endfunction<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"> <o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">// Send the
              variable as argument to the function<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">if %t<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">   
              testArrayOut = testFunc2(testArray);<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt"> <o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    if
              testArrayOut(1)(1).testMember ==
              testArray(1)(1).testMember<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">       
              error("Error! inputArgument was changed by function");<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">    end<o:p></o:p></p>
            <p class="MsoNormal" style="margin-left:36.0pt">end<o:p></o:p></p>
          </div>
          <p class="MsoNormal" style="margin-left:36.0pt"><span
              style="mso-fareast-language:EN-GB"><br>
              <br>
              <o:p></o:p></span></p>
          <pre style="margin-left:36.0pt">_______________________________________________<o:p></o:p></pre>
          <pre style="margin-left:36.0pt">users mailing list<o:p></o:p></pre>
          <pre style="margin-left:36.0pt"><a href="mailto:users@lists.scilab.org" moz-do-not-send="true">users@lists.scilab.org</a><o:p></o:p></pre>
          <pre style="margin-left:36.0pt"><a href="https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users" moz-do-not-send="true">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a><o:p></o:p></pre>
        </blockquote>
        <pre style="margin-left:36.0pt">-- <o:p></o:p></pre>
        <pre style="margin-left:36.0pt">Stéphane Mottelet<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">Ingénieur de recherche<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">EA 4297 Transformations Intégrées de la Matière Renouvelable<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">Département Génie des Procédés Industriels<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">Sorbonne Universités - Université de Technologie de Compiègne<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">CS 60319, 60203 Compiègne cedex<o:p></o:p></pre>
        <pre style="margin-left:36.0pt">Tel : +33(0)344234688<o:p></o:p></pre>
        <pre style="margin-left:36.0pt"><a href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.utc.fr/~mottelet" moz-do-not-send="true">http://www.utc.fr/~mottelet</a><o:p></o:p></pre>
        <p class="MsoNormal" style="margin-left:36.0pt"><span
            style="mso-fareast-language:EN-GB">--><o:p></o:p></span></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet">http://www.utc.fr/~mottelet</a>
</pre>
  </body>
</html>