Remove from Scilab mlist() disguised in structures
@sgougeon)
Reported by Samuel GOUGEON (BUG DESCRIPTION:
----------------
Some mlist(["st" "dims"..],..) are defined and used in Scilab, in place of official Scilab 6 structures.
This can be quite trapping, noticeably for overloads.
The list of mlist(["st" .; occurences in .sci .sce .tst files is:
----------------------------------------------------------------
\scilab\modules\ast\tests\nonreg_tests\bug_15034.tst (1 hit)
Line 18: a = mlist(["st", "dims", "champs"], int32([1 1]));
\scilab\modules\m2sci\macros\compat_functions\mtlb_dir.sci (1 hit)
Line 72: L=mlist(["st","dims","name","date","bytes","isdir"],int32([n 1]),lfiles,ldate,lbytes,lisdir)
\scilab\modules\overloading\macros\%st_e.sci (1 hit)
Line 103: //S(2,3).f1=12 -> k=3;I=6;ww(I)=12;s=mlist(["st","dims","f1"],int32([1;1]));
\scilab\modules\overloading\macros\%st_i_st.sci (1 hit)
Line 72: R=mlist(["st","dims",matrix(FR,1,-1)],int32(Ndims));
\scilab\modules\overloading\macros\%st_6.sci (1 hit)
Line 27: //s=mlist(['st','dims'],int32([0 0]))
\scilab\modules\overloading\macros\createstruct.sci (9 hits)
Line 38: M=mlist(["st","dims",index(2)],int32(Dims),N);
Line 40: M=mlist(["st","dims",index(2)],int32(Dims));
Line 64: M=mlist(["st","dims",index(2)],int32(Dims),Li);
Line 69: M=mlist(["st","dims",index(1)],int32([1,1]),...
Line 70: mlist(["st","dims",index(2)],int32([1,1]),N));
Line 99: M=mlist(["st","dims",index(1)],int32([1,1]),z);
Line 107: M=mlist(["st","dims",index($)],int32([1,1]),N);
Line 161: M=mlist(["st","dims",index($-1)],int32([1,1]),z);
Line 177: M=mlist(["st","dims",index($)],int32([1,1]),N);
The list of createstruct occurrences in .sci .sce and .tst files is:
-------------------------------------------------------------------
\scilab\modules\m2sci\macros\compat_functions\%msp_i_s.sci (1 hit)
Line 25: M=createstruct(index,N)
\scilab\modules\m2sci\macros\kernel\%infer_i_s.sci (1 hit)
Line 30: M=createstruct(index,N)
\scilab\modules\overloading\macros\%b_i_s.sci (1 hit)
Line 21: M=createstruct(index,N)
\scilab\modules\overloading\macros\%c_i_s.sci (1 hit)
Line 36: M=createstruct(index,N)
\scilab\modules\overloading\macros\%i_i_s.sci (1 hit)
Line 22: M=createstruct(index,N)
\scilab\modules\overloading\macros\%lss_i_s.sci (1 hit)
Line 21: s=createstruct(i,s1)
\scilab\modules\overloading\macros\%p_i_s.sci (1 hit)
Line 20: M=createstruct(index,N)
\scilab\modules\overloading\macros\%r_i_s.sci (1 hit)
Line 22: f2=createstruct(i,f2)
\scilab\modules\overloading\macros\%sp_i_s.sci (1 hit)
Line 25: M=createstruct(index,N)
\scilab\modules\overloading\macros\%s_i_s.sci (1 hit)
Line 38: M=createstruct(index,N)
\scilab\modules\overloading\macros\createstruct.sci (6 hits)
Line 13: function M=createstruct(index,N)
Line 78: if typeof(N)=="st" then // When recursive call of createstruct
Line 112: // If only one index value (happens when recursive calls to createstruct)
Line 167: error(msprintf(_("%s: Not implemented.\n"),"createstruct"));
Line 172: M=createstruct(index,M);
Line 179: error(msprintf(_("%s: Not implemented.\n"),"createstruct"));
\scilab\modules\overloading\macros\generic_i_s.sci (1 hit)
Line 24: M=createstruct(index,N)
\scilab\modules\overloading\macros\st_i_generic.sci (1 hit)
Line 24: M=createstruct(index,N)
ERROR LOG:
----------
HOW TO REPRODUCE THE BUG:
-------------------------
OTHER INFORMATION:
------------------
An example of side effect of this kind of disguising, for the mtlb_dir() case:
https://www.mail-archive.com/users@lists.scilab.org/msg09899.html
Edited by Vincent COUVERT