ATOMS

ATOMS is the packaging system of Scilab external modules. Through this tool, it is trivial to install prebuilt Scilab modules.

The idea is similar to the one developed by most of the Linux/BSD distributions. With just one function, a module can be installed including its dependencies.

Supported platforms

ATOMS modules are available for all supported Scilab platforms. That means Microsoft Windows, GNU/Linux & Mac OS X.

However, modules which only contains Scilab macros are available on non-supported operating system.

How to use ATOMS?

Use ATOMS GUI

Scilab includes a GUI to facilitate the use of ATOMS. This GUI is also available through the Scilab menu "Applications".

atomsGui();

atomsGui.png

Search of a module

The function atomsSearch("keywords") allows the search of available modules.

For example:

-->atomsSearch("network")
 ans  =

!lolimot  A fast neural network - LOcal LInear MOdel Tree  !
!                                                          !
!metanet  Graph and Network toolbox                        !

The first column is the name of the module.

Install a module

The function atomsInstall("name_of_the_module") allows to install a Scilab module packaged in ATOMS.

For example:

-->atomsInstall("metanet");

On the next start of Scilab, the module will be loaded automatically. To load it manually, call:

atomsLoad("metanet");

For more details, please read atomsInstall

Install a module for all users or for a single user

In some corporate environments, a typical user has no admin rights. But it is still possible to install modules, because Scilab can install them without admin rights.

It is possible to install a module in "user" mode, with the "user" option of the atomsInstall function. The module is then available only for the current user, and not for others.

-->atomsInstall("NISP","user")
        NISP (2.4.1-1) will be installed in the 'user' section
        specfun (0.4.1-1) will be installed in the 'user' section
        apifun (0.4.1-1) will be installed in the 'user' section
        helptbx (0.4-1) will be installed in the 'user' section
        Installing NISP (2.4.1-1) ... success
        Installing specfun (0.4.1-1) ... success
        Installing apifun (0.4.1-1) ... success
        Installing helptbx (0.4-1) ... success
 ans  =
!NISP     2.4.1-1  user  SCIHOME\atoms\NISP\2.4.1-1     I  !
!specfun  0.4.1-1  user  SCIHOME\atoms\specfun\0.4.1-1  A  !
!apifun   0.4.1-1  user  SCIHOME\atoms\apifun\0.4.1-1   A  !
!helptbx  0.4-1    user  SCIHOME\atoms\helptbx\0.4-1    A  !

It is also possible to run Scilab in administrator mode, so that we can install Scilab for all the users of the computer. This way, any user who logs on the computer will have the external Scilab module installed. In order to run Scilab in admin mode on Windows, we Shift-Right Click on Scilab's icon, and, if necessary, enter the admin login and password.

In the following session, we have launched Scilab in admin mode and installed the NISP module for Scilab. This corresponds to the "allusers" option of atomsInstall.

-->atomsInstall("NISP")
        NISP (2.4.1-1) will be installed in the 'allusers' section
        specfun (0.4.1-1) will be installed in the 'allusers' section
        apifun (0.4.1-1) will be installed in the 'allusers' section
        helptbx (0.4-1) will be installed in the 'allusers' section
        Installing NISP (2.4.1-1) ... success
        Installing specfun (0.4.1-1) ... success
        Installing apifun (0.4.1-1) ... success
        Installing helptbx (0.4-1) ... success
 ans  = 
!NISP     2.4.1-1  allusers  SCI\contrib\NISP\2.4.1-1     I  !
!specfun  0.4.1-1  allusers  SCI\contrib\specfun\0.4.1-1  A  !
!apifun   0.4.1-1  allusers  SCI\contrib\apifun\0.4.1-1   A  !
!helptbx  0.4-1    allusers  SCI\contrib\helptbx\0.4-1    A  !

Remove a module

The function atomsRemove("name_of_the_module") allows to uninstall a Scilab module packaged in ATOMS.

For example:

atomsRemove("metanet");

For more details, please read atomsRemove

Configure the network proxy

If your internet configuration uses a proxy, it might be necessary to configure the proxy settings, so that Scilab can download the required files. For example, we may use the following settings, with customized values :

atomsSetConfig("Verbose","True")
atomsSetConfig("useProxy","True")
atomsSetConfig("proxyHost","myProxyHost")
atomsSetConfig("proxyPort","myProxyPort")
atomsSetConfig("proxyUser","myUserName")
atomsSetConfig("proxyPassword","myPassword")

For more details, see the Scilab documentation on atomsSetConfig

ATOMS for developers

How can I have my module included to ATOMS?

Your steps are:

  1. Develop your toolbox following the example of toolbox_skeleton

  2. Register on http://atoms.scilab.org/login

  3. Fill the form on http://atoms.scilab.org/add/

Once it is done, we will process your module shortly (generation of binary versions for available platforms, ...).

Note : if you are posting your sources, don't forget to set its class as "sources of a valid Scilab package".

When you receive a feedback from us, your module will be available for all users.

Once it has been validated, to take this change into account in your local Scilab, update your package list by running:

atomsSystemUpdate()

For more details, please read Voir atomsSystemUpdate

What are the technical expectations ?

To make an ATOMS module from a contribution, we need several things:

Scilab distribution is providing a skeleton/template for Scilab modules: SCI/contrib/toolbox_skeleton or on the ATOMS website

If you work depends on a third party native library, let us know and please provide as much as information as possible. If you don't want your module to be packaged under a certain OS, please let us know after posting it.

What kind of restrictions is there?

There is no restriction on the kind of modules which are accepted into ATOMS as long as they provide a new Scilab feature (whatever it is).

Since we need to build the module, sources must be available. However, there is no restriction on the license of a module (even if we prefer free licenses).

In any case, do not submit binary files, as they are often not working on different OS or configurations.

Will you modify my module?

Sometimes, we have to patch to make sure that the module builds and runs perfectly. We usually send back the patches for upstream incorporation. Those change are usually :

Consider those points before submitting a module, as they are quickly fixed by you and often make us lose a lot of time, which could be used improving ATOMS and fixing its bugs!

I have just a Scilab function/macro and I would like to have it into ATOMS

No problem, just submit it.

I have some modules/toolboxes on the toolboxes center, what will happen to them?

If your work is available on Scilab Toolboxes Center, please migrate it to ATOMS website. Even if you do not want to have your module available in Scilab through ATOMS, please migrate it.

Note : the contribution website ("Scilab Toolboxes Center" not ATOMS website) is now deprecated and is only kept for historic reasons.

ATOMS admin created a new version of my module

This is usually because you set your module as available for Scilab greater or equal to 5.3.0. In order to package it for Scilab 5.4, we need to create a new module, with the same archive and the same code, but in a different version number than 5.3 (you can notice it is set as greater or equal to 5.4). This is mainly due to some change we will bring in Scilab 5.4 way of managing ATOMS modules, in order to make it more precise. Another change like this may appear for Scilab 6.0.

If you package your modules on your own, please note that a working compiled module for 5.3.0 may not be functional for 5.4.x, especially if you are not only dealing with macros but also with C, C++ or Fortran.

From 5.3 to 5.4 family

Due to a change in the compilers for the 5.4 family on windows, modules indicated as available for Scilab >= 5.3 or >= 5.2 might not be available in 5.4. Packagers should make another version of their module setting it as available for >= 5.4.

Preparing for Scilab 6

In Scilab 6, stack-c.h won't be available anymore. It is currently set as deprecated, and should be replaced by api_scilab.h.

Guidelines while submitting a module

public: ATOMS (last edited 2013-01-30 09:41:17 by michael.baudin@contrib.scilab.org)