Ibex 2.2.0 (message for developers)

I am pleased to announce the release 2.2.0 of Ibex!

The main change was to make a clear separation between:

  • The basic features (intervals computations, contractors, etc.)
  • Specific or advanced features (optimization, affine arithmetic, etc.).

Now, the basic features are the core of the library; Advanced features are spread across different plugins. Plugins can be installed or not, depending on user choice. They will be offered for download separately from the core.

Thanks to the new scripts, installing a plugin is very easy: simply unzip the archive of the plugin xxx in the "plugins" folder, restart "waf configure"  and activate the plugin via an option "- with-xxx ".

The core classes have been modified but the high-level interfaces have not changed so that all the existing codes should compile without problems.

My mission for 2016 is to continue the kernel development to make it more complete / reliable / documented, and I will assure the support. However, I do not make anymore integration or support for plugins (except for the optimization one, since I am involved in, of course). Each group of developers is responsible for its own plugin and the plugin will be the property of their employers (we'll finally be able to settle the issue of copyright).

I have created from the existing the 6 following plugins:

  • affine (affine arithmetic)
    Developed by: J. Ninin, J.A. dit Sandretto, A. Chapoutot. Copyright: ENSTA Bretagne / ENSTA-ParisTech
  • ensta-robotics (contractors for robotics)
        Developed by: B. Desrochers, L. Jaulin ?. Copyright: ENSTA Bretagne
  • ampl (AMPL files loader)
        Developed by: J. Ninin. Copyright: ENSTA Bretagne
  • optim (global optimization)
        Developed by: G. Chabert, B. Neveu, J. and G. Ninin Trombettoni. Copyright: (to be clarified)
  • java (gateway for Choco solver)
        Developed by: G. Chabert. Copyright: Mines de Nantes
  • param-estimated (improvements of q-intersection)
        Developed by: C. Carbonnel, Copyright: LIRMM?

All compile fine with the new kernel and all unit tests (when there was) pass.

Version 2.2 is now under the master/ and develop/ branch under Github. Don't be surprised...

This release was made from the current state of the master and develop branches. It's your job now to merge this code with your own parallel development branches and to adapt your work to this new architecture (the good news is that it is lighter and clearer than the previous one).

I will also ask you to migrate in the future your works related to plugins to other Github projects, to avoid mixing things up.

The new release will be on-line for users in a few days (the time to write the new installation documentation).

Do not hesitate if you have any comments or questions.
Gilles Chabert