[Scilab-users] Scilab 6 - Problem with scope and nested lists
Stéphane Mottelet
stephane.mottelet at utc.fr
Fri Oct 16 14:19:48 CEST 2020
Your test mix struct and lists can you reproduce it without using a struct ?
Le 16/10/2020 à 14:15, Arvid Rosén a écrit :
>
> Hi,
>
> I already filed a report here:
>
> https://bugzilla.scilab.org/show_bug.cgi?id=16556
> <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=16556>
>
> Do you want a more compact example than that?
>
> Here is an even more slimmed version.
>
> Cheers,
>
> Arvid
>
> ----------
>
> // Define variables
>
> testArray = list(list([]));
>
> testArray(1)(1).testMember = 1;
>
> testArrayOrig = testArray;
>
> // Define function
>
> function outArray = testFunc(inArray)
>
> inArray(1)(1).testMember = 5
>
> outArray = inArray;
>
> endfunction
>
> // Send the variable as argument to the function
>
> testArrayOut = testFunc(testArray);
>
> if testArrayOut(1)(1).testMember == testArray(1)(1).testMember
>
> error("Error! inputArgument was changed by function");
>
> end
>
> --
>
> *From: *Scilab Users List <users-bounces at lists.scilab.org> on behalf
> of Stéphane Mottelet <stephane.mottelet at utc.fr>
> *Reply to: *Users mailing list for Scilab <users at lists.scilab.org>
> *Date: *Friday, 16 October 2020 at 13:40
> *To: *"users at lists.scilab.org" <users at lists.scilab.org>
> *Subject: *Re: [Scilab-users] Scilab 6 - Problem with scope and nested
> lists
>
> Hello,
>
> 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 ?
>
> S.
>
> Le 16/10/2020 à 13:35, Arvid Rosén a écrit :
>
> Hi!
>
> 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.
>
> I have also filed a bug report here:
> https://bugzilla.scilab.org/show_bug.cgi?id=16556
> <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=16556>
>
> Is anyone else seeing this problem? And do you have any
> workarounds or other suggestions?
>
> Cheers,
>
> Arvid
>
> ------
>
> // Define variables
>
> testArray = list();
>
> for i=1:1:10
>
> testArray($+1) = list();
>
> for j=1:1:10
>
> testArray(i)($+1) = [];
>
> testArray(i)(j).testMember = 1;
>
> end
>
> end
>
> testArrayOrig = testArray;
>
> // Define functions
>
> function outArray = testFunc(inArray)
>
> for i=1:1:10
>
> for j=1:1:10
>
> inArray(i)(j).testMember = 5
>
> end
>
> end
>
> outArray = inArray;
>
> endfunction
>
> // Send the variable as argument to the function
>
> if %t
>
> testArrayOut = testFunc2(testArray);
>
> if testArrayOut(1)(1).testMember == testArray(1)(1).testMember
>
> error("Error! inputArgument was changed by function");
>
> end
>
> end
>
>
>
> _______________________________________________
>
> users mailing list
>
> users at lists.scilab.org <mailto:users at lists.scilab.org>
>
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users>
>
> --
> 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
> http://www.utc.fr/~mottelet <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.utc.fr/~mottelet>
>
> -->
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
--
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
http://www.utc.fr/~mottelet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20201016/6548d509/attachment.htm>
More information about the users
mailing list