<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hello Antoine,<br>
<br>
Le 09/04/2019 à 09:52, Antoine Elias a écrit :<br>
</div>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<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:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
color:black;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:720324595;
mso-list-template-ids:-642191542;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1
{mso-list-id:1225919342;
mso-list-template-ids:1784075552;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2
{mso-list-id:1337229135;
mso-list-template-ids:-1188503000;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3
{mso-list-id:1406950030;
mso-list-template-ids:1667137282;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l3:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l4
{mso-list-id:1531532808;
mso-list-template-ids:1533070826;}
@list l4:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l4:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l4:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l4:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l5
{mso-list-id:1817917080;
mso-list-template-ids:1651256664;}
@list l5:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l5:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6
{mso-list-id:1975600493;
mso-list-template-ids:1501851878;}
@list l6:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l6:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7
{mso-list-id:1977644094;
mso-list-template-ids:1877907894;}
@list l7:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l7:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8
{mso-list-id:2115782194;
mso-list-template-ids:1719178648;}
@list l8:level1
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level2
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level3
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level4
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level5
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level6
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level7
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level8
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l8:level9
{mso-level-number-format:bullet;
mso-level-text:;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext">Hello
Samuel,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">Just a
question what is the goal of this feature ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">Because
after more than 10 years on Scilab, I never need this, so I
need your help to understand needs and cases.</span></p>
</div>
</blockquote>
<br>
uman predef @<br>
displays a first list of threads about this topic.<br>
<ul>
<li>One may wish to protect some custom variables in the
scilab.ini file.<br>
Please see for instance <br>
</li>
<ul>
<li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Protecting-a-new-variable-by-using-predef-tp4027293.html">http://mailinglists.scilab.org/Protecting-a-new-variable-by-using-predef-tp4027293.html</a><br>
</font></li>
<li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Users-fr-Protection-de-variables-tp4037331.html">http://mailinglists.scilab.org/Users-fr-Protection-de-variables-tp4037331.html</a><br>
</font><br>
</li>
</ul>
<li>When creating a library, one may want and need to provide some
protected constants as members of the library. Please see</li>
<ul>
<li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/problem-defining-protected-functions-in-scilab-tp2615970.html">http://mailinglists.scilab.org/problem-defining-protected-functions-in-scilab-tp2615970.html</a></font></li>
<li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Library-workaround-wanted-predef-bug-tp4034383.html">http://mailinglists.scilab.org/Library-workaround-wanted-predef-bug-tp4034383.html</a><br>
<br>
</font></li>
</ul>
<li>A workaround for libraries existed up to Scilab 5.5,
consisting in including a myConstantes.sci file just setting
variables to be included... and protected, provided that the
library is loaded at startup.<br>
But</li>
<ol>
<li>this worked only for libraries in ATOMS modules loaded at
Scilab startup</li>
<li>In files.sci, Scilab 6 genlib() now ignores everything that
is not a function.</li>
</ol>
</ul>
<br>
A short list of bugs/wishes reported on Bugzilla has been published
here:<br>
<a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Scilab-users-Replacing-predef-with-an-actual-varprot-a-top-5-priority-for-Scilab-6-1-At-last-protecte-tp4036564.html">http://mailinglists.scilab.org/Scilab-users-Replacing-predef-with-an-actual-varprot-a-top-5-priority-for-Scilab-6-1-At-last-protecte-tp4036564.html</a><br>
with some comment about sharing the need for variables protection.<br>
<p>So, a priori the need applies to any variables type, including
libraries.</p>
<p>Another user case: <br>
You are a teacher, and you prepare some Scilab materials --
scripts.sce, etc -- for a practical session with some work to do
with Scilab. When newbies students work with your script, they do
really many things, and often some unexpected ones, as overwriting
some variables predefined in the script, etc. If you don't want to
spend your time during the session to debug the results of their
freedom instead of focusing on the topic of the session,
protecting predefined variables is expected to help a lot...</p>
<p>My first message does not aim to tell all what should be done,
but to tell what we -- devs and users -- <i>should</i><i> be
aware of </i>when designing, then documenting, and finally
using the protection of variables, as well with respect to
existing features : funcprot(), predef(), clear, scope management
of variables, global, clearglobal.</p>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">Currently,
un/protect is only on local variables not on global. ( but
that could change if needed )</span></p>
</div>
</blockquote>
<br>
<b>To me, protecting global variables is not needed</b>. <b>I mean,
in the global storage</b>. The main threat are clear()
instructions loved by a subset of Scilabers. clearglobal() is likely
much less used.<br>
<br>
But, as far as i understand, global works with a local "copy", <b>that
could be protected as a local variable</b>. There is no reason to
prevent this, but it must be clearly stated that such a protection
won't apply to the global counterpart. Example:<br>
<br>
<tt>--> global a</tt><tt><br>
</tt><tt>--> a = 1;</tt><tt><br>
</tt><tt>--> clear a</tt><tt><br>
</tt><tt>--> a</tt><tt><br>
</tt><tt>Undefined variable: a</tt><tt><br>
</tt><tt><br>
</tt><tt>--> global a</tt><tt><br>
</tt><tt>--> a // we locally retrieve a copy of the global
instance</tt><tt><br>
</tt><tt> a = </tt><tt><br>
</tt><tt> 1.</tt><tt><br>
</tt><tt>--> clear a</tt><tt><br>
</tt><tt>--> a = 3</tt><tt> // only local<br>
</tt><tt> a = </tt><tt><br>
</tt><tt> 3.</tt><tt><br>
</tt><tt>--> // protect a</tt><tt><br>
</tt><tt>--> global a</tt><tt><br>
</tt><tt>--> a</tt><tt> // the global content overwrites the
local one</tt><tt><br>
</tt><tt>a = </tt><tt><br>
</tt><tt> 1.</tt><br>
<br>
Now, if we uncomment the <i><tt>// protect a</tt></i> instruction,
what will be expected?<br>
<font color="#cc33cc">The priority between <i>global</i> and the <i>local
protection</i> will have to be clarified and documented.</font><br>
<br>
<br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">Look
Answers/Questions in blue in your message</span></p>
</div>
</blockquote>
<font color="#cc33cc">My replies in magenta:<br>
</font><br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext" lang="FR">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext" lang="FR">Antoine<o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="color:windowtext"
lang="FR">De :</span></b><span
style="color:windowtext" lang="FR"> Samuel Gougeon
<a class="moz-txt-link-rfc2396E" href="mailto:sgougeon@free.fr"><sgougeon@free.fr></a>
<br>
<b>Envoyé :</b> dimanche 7 avril 2019 19:25<br>
<b>À :</b> Antoine Elias
<a class="moz-txt-link-rfc2396E" href="mailto:Antoine.Elias@esi-group.com"><Antoine.Elias@esi-group.com></a>; List dedicated to
development questions <a class="moz-txt-link-rfc2396E" href="mailto:dev@lists.scilab.org"><dev@lists.scilab.org></a><br>
<b>Objet :</b> protect / unprotect: recent progress
& analysis<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="FR"><o:p> </o:p></span></p>
<p>Hello Antoine,<o:p></o:p></p>
<p>On 2019-01-18, you called in a private mail for comments
about the <br>
initial implementation of some variables protect / unprotect
features<br>
commited @ <a moz-do-not-send="true"
href="https://codereview.scilab.org/20712">https://codereview.scilab.org/20712</a><o:p></o:p></p>
<p>First of all, thanks a lot for the implementation progress
about this long-wished feature.<br>
Excellent news.<br>
<br>
After your call, please find below some (sometime naive)
remarks and questions about the initial commit, mainly about
the expected behavior of the features.<br>
<br>
As a contribution to the features analysis,<br>
<br>
Best regards<br>
Samuel<o:p></o:p></p>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
level1 lfo3">
Do protect() and unprotect() return anything?<o:p></o:p></li>
</ul>
<p class="MsoNormal"><span style="color:#0070C0">Antoine:
Currently nothing, do you have any request ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">I can return
status of un/protect and %f for non-existing variable.</span></p>
</div>
</blockquote>
<p><font face="Calibri,sans-serif" color="#cc33cc">Samuel: I think
that returning a matrix of booleans indicating the <i>actual
new status</i> of variables might be useful, indeed.</font></p>
<br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
level1 lfo3">
Do we have<br>
assert_checkequal(size(isprotected(["a", "b", "c"])), [1 3])<o:p></o:p></li>
</ul>
<p class="MsoNormal"><span style="color:#0070C0">Antoine: Yep<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
level1 lfo3">
Will current "permanent variables" be protected with
protect() or with another special protection?<br>
unprotect %inf // => error ?<br>
// IMO, one should avoid keeping concurrent protection
features.<o:p></o:p></li>
</ul>
<p class="MsoNormal"><span style="color:#0070C0">Antoine:
Current protection of predefined variable ( %pi, %inf, %nan,
%e,
</span><span style="font-family:"Times New
Roman",serif;color:#0070C0">…</span><span
style="color:#0070C0"> ) is done by the same feature.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">I don't know if
we should forbidden unprotect of predefined variables.</span></p>
</div>
</blockquote>
<font color="#cc33cc">Samuel: I don't think there should be a
special mechanism for them. But as listed below, protection levels
might be defined.</font><br>
<br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
level1 lfo3">
Protection of global variables: What will happen or is
expected in the following cases, from the top level
(console)?<br>
global a<br>
protect a<br>
clear a<br>
clearglobal a<br>
// See also: <a moz-do-not-send="true"
href="http://bugzilla.scilab.org/15250">http://bugzilla.scilab.org/15250</a><br>
// <a moz-do-not-send="true"
href="http://bugzilla.scilab.org/14928">http://bugzilla.scilab.org/14928</a><o:p></o:p></li>
</ul>
<p class="MsoNormal"><span style="color:#0070C0">Antoine:
Clearly, I don't know </span>
<span style="font-family:"Segoe UI
Emoji",sans-serif;color:#0070C0">😉</span><span
style="color:#0070C0"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">Who is the
strongest between local protection or clearglobal ?<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
level1 lfo3">
Protection and scope:<br>
When protecting a variable in a function, what will happen
when leaving the function?<br>
a = 1;<br>
b = 2;<br>
function r = test(g)<br>
disp(isprotected("g")) <br>
// Is the protection status of a variable as input
argument heritated by the passed copy?<br>
// I guess that no, but this should be clearly stated
and tested.<br>
a = a, protect a<br>
global b, protect b<br>
c = %pi/%e;<br>
r = c;<br>
protect c r<br>
endfunction<br>
e = 3; protect e<br>
d = test(e); // Do we get an error due to deletion
of protected internal c ?<br>
isprotected("a") // => %F : protect a // just protects
the local copie, doesn't it?<br>
isprotected("b") // => %T | %F ?<br>
isprotected("d") // => %T | %F ?<o:p></o:p></li>
</ul>
<p class="MsoNormal"><span style="color:#0070C0">Antoine: When
leaving a function, ALL local variables are deleted
regardless their protection.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">Why ? Because
we don't know where to put them
</span><span style="font-family:"Segoe UI
Emoji",sans-serif;color:#0070C0">😉<br>
</span></p>
</div>
</blockquote>
<font color="#cc33cc">Samuel: This sounds reasonable. But this could
yield an error instead of silently leaving.</font><br>
<br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">Antoine:
funcprot defines a global behavior for redefinition of
functions, that's not exactly the same scope.</span></p>
</div>
</blockquote>
<font color="#cc33cc">Samuel: Indeed, in 5.5.2, functions look
somewhat "global":<br>
<font size="-1"><tt>-->function test()</tt><tt><br>
</tt><tt>--> linspace = 1;</tt><tt><br>
</tt><tt>-->endfunction</tt><tt><br>
</tt><tt>-->test()</tt></font><br>
<font size="-1"><tt>Warning : redefining function: linspace .
Use funcprot(0) to avoid this message</tt></font><br>
<br>
It is <a href="http://bugzilla.scilab.org/show_bug.cgi?id=14892">no
longer the case in 6.0</a>:<br>
<font size="-1"><tt>--> funcprot()<br>
ans =<br>
1.<br>
--> function test()</tt><tt><br>
</tt><tt> > linspace = 1;</tt><tt><br>
</tt><tt> > endfunction</tt><tt><br>
</tt><tt>--> test()</tt><tt><br>
</tt><tt>--> </tt></font></font><br>
<br>
<blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
type="cite">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">Maybe we can
include functions in un/protect feature but what to do with
funcprot ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#0070C0">I think it will
be difficult to keep both and that will be puzzling for
users.</span></p>
</div>
</blockquote>
<font color="#cc33cc">Samuel: clearly, if some "class protection" is
implemented and enabled in addition to some object protection,
funcprot() would have to be deprecated and removed.<br>
<br>
Now, the question is: <b>is a general class protection actually
needed?</b> <br>
For all data types: likely not. For libraries: i don't think so.
But other contributions to this discussion would be welcome.<br>
Reverse question: If funcprot() is kept, will protect() will apply
to functions as well, or will be excluded? If it applies to them,
how will this cope with funcprot()?<br>
<br>
</font>Regards<br>
Samuel<br>
</body>
</html>