[Scilab-users] clone a function in a library
Stéphane Mottelet
stephane.mottelet at utc.fr
Wed Feb 28 14:52:00 CET 2018
Hello,
With the new library system, it is no longer possible to clone a
function in a library. This feature is still documented in the help page
of "lib" but is not working anymore since saving a user-defined scilab
function uses the sod/hdf5 format. Maybe one can ask why such a feature
is needed ? Sometimes it can be usefull to have a function which is
callable by different names but actually does the same thing. The
different calling names can come from the adaptation for different types
of data, which can sometimes lead to the same treatment, hence to the
same function. Instead of writing two functions with the same source
code but a different calling name, cloning the original one was an
interesting feature.
I admit that the way it worked under scilab<6.x was not clean at all
*but* officially documented in the "lib" help page. For example, imagine
that a library has just been built (e.g. the plotlib...)
genlib('plotlib','macros')
I need to add to this library %axesData_i_h which is a clone of
generic_i_h (in overloadinglib), which can be done in scilab<6.x by:
%axesData_i_h=generic_i_h;
save('macros/%axesData_i_h.bin',%axesData_i_h)
mputl([mgetl('macros/names');'%axesData_i_h'],'macros/names')
I said above "not clean at all", because the binary file "macros/lib"
(which is created by the genlib call) does not need to be updated, as a
subsequent
plotlib=lib("macros")
loads all functions, including %axesData_i_h
Doing things like this is not possible any more. It was was also to add
persistent variables in libraries, with the same mechanism.
By the way, under scilab 6.0.1, the "macros/lib" is now an XML file with
a clear syntax, e.g.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<scilablib name="plotliblib">
<macro name="%c_i_pltlibH" file="%c_i_pltlibH.bin"
md5="d0966468b335a69681a29d84c99feb5c"/>
<macro name="%figureDa_i_h" file="%figureDa_i_h.bin"
md5="a1ebda57a1607b28095def2e415e2ec1"/>
...
</scilablib>
It does not seem to be documented either.
S.
--
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
More information about the users
mailing list