+/** @addtogroup XBT_config
+ *
+ * All modules of the SimGrid toolkit can be configured with this API.
+ * User modules and libraries can also use these facilities to handle
+ * their own configuration.
+ *
+ * A configuration set contain several \e variables which have a uniq name
+ * in the set and can take a given type of value. For example, it may
+ * contain a \a size variable, accepting \e int values.
+ * Moreover, of values.
+ *
+ * It is impossible to set a value to a variable which has not been registered before.
+ * Usually, the module registers all the options it accepts in the configuration set,
+ * during its initialization and user code then set and unset values.
+ *
+ * The easiest way to register a variable is to use the xbt_str_register_str function,
+ * which accepts a string representation of the config element descriptor. The syntax
+ * is the following: \verbatim <name>:<min nb>_to_<max nb>_<type>\endverbatim
+ *
+ * For example, <tt>size:1_to_1_int</tt> describes a variable called \e size which
+ * must take exactly one value, and the value being an integer.
+ *
+ * Another example could be <tt>outputfiles:0_to_10_string</tt> which describes a variable
+ * called \e outputfiles and which can take between 0 and 10 strings as value.
+ *
+ * To some extend, configuration sets can be seen as typed hash structures.
+ *
+ * \todo This great mecanism is not used in SimGrid yet...
+ *
+ * \todo We need a callback mecanism so that the configurable code get
+ * notified of configuration changes.
+ *
+ * \section XBT_cfg_ex Example
+ *
+ * \dontinclude config_usage.c
+ *
+ * First, let's create a configuration set with some registered variables.
+ * This must be done by the configurable library before the user interactions.
+ *
+ * \skip make_set
+ * \until end_of_make_set
+ *
+ * Now, set and get a single value
+ * \skip get_single_value
+ * \skip int
+ * \until cfg_free
+ *
+ * And now, set and get a multiple value
+ * \skip get_multiple_value
+ * \skip dyn
+ * \until cfg_free
+ *
+ * All those functions throws mismatch_error if asked to deal with an
+ * unregistered variable.
+ * \skip myset
+ * \until cfg_free
+ * @{
+ */
+
+/** @name 1. Type declaration and memory management