Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Revert "remove a few smells in instrumentation"
authorMartin Quinson <martin.quinson@loria.fr>
Sun, 25 Dec 2016 21:40:09 +0000 (22:40 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 25 Dec 2016 21:40:15 +0000 (22:40 +0100)
This breaks on Mac OSX, for some obscure reason

This reverts commit c82adb6ec2917d3ec0657dab7e5d1d053759accd.

examples/msg/trace-process-migration/trace-process-migration.tesh
src/instr/instr_interface.cpp
src/instr/instr_paje_containers.cpp
src/instr/instr_paje_header.cpp
src/instr/instr_resource_utilization.cpp
src/instr/instr_trace.cpp

index af47bc1..fb4b0ed 100644 (file)
@@ -707,8 +707,8 @@ $ tail -n +3 procmig.trace
 > 16 0 17 0 topology 21 44
 > 15 0 17 0 topology 30 45
 > 16 0 17 0 topology 28 45
-> 1 20 13 bmigration_order "0.857926 0.545312 0.800026"
-> 1 21 1 pmigration_order "0.857926 0.545312 0.800026"
+> 1 20 13 bmigration_order "0.800026 0.545312 0.857926"
+> 1 21 1 pmigration_order "0.800026 0.545312 0.857926"
 > 6 0 32 4 3 "emigrant-1"
 > 6 0 33 4 1 "policeman-2"
 > 12 0 5 32 7
@@ -1309,8 +1309,8 @@ $ tail -n +3 procmig.trace
 > 16 0 17 0 topology 21 44
 > 15 0 17 0 topology 30 45
 > 16 0 17 0 topology 28 45
-> 1 20 13 bmigration_order "0.857926 0.545312 0.800026"
-> 1 21 1 pmigration_order "0.857926 0.545312 0.800026"
+> 1 20 13 bmigration_order "0.800026 0.545312 0.857926"
+> 1 21 1 pmigration_order "0.800026 0.545312 0.857926"
 > 6 0 32 4 3 "emigrant-1"
 > 6 0 33 4 1 "policeman-2"
 > 12 0 5 32 7
@@ -1900,8 +1900,8 @@ $ tail -n +3 simgrid.trace
 > 16 0 6 0 topology 21 44
 > 15 0 6 0 topology 30 45
 > 16 0 6 0 topology 28 45
-> 1 9 3 bmigration_order "0.857926 0.545312 0.800026"
-> 1 10 1 pmigration_order "0.857926 0.545312 0.800026"
+> 1 9 3 bmigration_order "0.800026 0.545312 0.857926"
+> 1 10 1 pmigration_order "0.800026 0.545312 0.857926"
 > 7 18.155073 1 6
 > 7 18.155073 1 3
 > 7 18.155073 3 28
index 5ed606f..78a41cf 100644 (file)
@@ -56,7 +56,7 @@ static xbt_dynar_t instr_dict_to_dynar (xbt_dict_t filter)
  *
  *  \param category The name of the new tracing category to be created.
  *
- *  \see TRACE_category_with_color, MSG_task_set_category
+ *  \see TRACE_category_with_color, MSG_task_set_category, SD_task_set_category
  */
 void TRACE_category(const char *category)
 {
@@ -76,7 +76,7 @@ void TRACE_category(const char *category)
  *  \param color The color of the category (see \ref outcomes_vizu to
  *  know how to correctly specify the color)
  *
- *  \see MSG_task_set_category
+ *  \see MSG_task_set_category, SD_task_set_category
  */
 void TRACE_category_with_color (const char *category, const char *color)
 {
@@ -97,7 +97,10 @@ void TRACE_category_with_color (const char *category, const char *color)
   char final_color[INSTR_DEFAULT_STR_SIZE];
   if (!color){
     //generate a random color
-    snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%f %f %f", /*red*/drand48(), /*green*/drand48(), /*blue*/drand48());
+    double red = drand48();
+    double green = drand48();
+    double blue = drand48();
+    snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%f %f %f", red, green, blue);
   }else{
     snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%s", color);
   }
@@ -111,13 +114,14 @@ void TRACE_category_with_color (const char *category, const char *color)
 /** \ingroup TRACE_category
  *  \brief Get declared categories
  *
- * This function should be used to get categories declared with #TRACE_category or with #TRACE_category_with_color.
+ * This function should be used to get categories that were already declared with #TRACE_category or with
+ * #TRACE_category_with_color.
  *
  * See \ref outcomes_vizu for details on how to trace the (categorized) resource utilization.
  *
  * \return A dynar with the declared categories, must be freed with xbt_dynar_free.
  *
- *  \see MSG_task_set_category
+ *  \see MSG_task_set_category, SD_task_set_category
  */
 xbt_dynar_t TRACE_get_categories ()
 {
@@ -147,8 +151,9 @@ void TRACE_declare_mark(const char *mark_type)
     THROWF (tracing_error, 1, "mark_type is nullptr");
 
   //check if mark_type is already declared
-  if (xbt_dict_get_or_null(declared_marks, mark_type) != nullptr)
+  if (xbt_dict_get_or_null(declared_marks, mark_type) != nullptr) {
     THROWF (tracing_error, 1, "mark_type with name (%s) is already declared", mark_type);
+  }
 
   XBT_DEBUG("MARK,declare %s", mark_type);
   PJ_type_event_new(mark_type, PJ_type_get_root());
@@ -160,8 +165,9 @@ void TRACE_declare_mark(const char *mark_type)
  *
  * This function declares a new colored value for a Paje event type in the trace file that can be used by simulators to
  * declare application-level marks. This function is independent of which API is used in SimGrid. The color needs to be
- * a string with three numbers separated by spaces in the range [0,1]. A light-gray color can be specified using
- * "0.7 0.7 0.7" as color. If a nullptr color is provided, the color used will be white ("1 1 1").
+ * a string with three numbers separated by spaces in the range [0,1].
+ * A light-gray color can be specified using "0.7 0.7 0.7" as color. If a nullptr color is provided, the color used will
+ * be white ("1 1 1").
  *
  * \param mark_type The name of the new type.
  * \param mark_value The name of the new value for this type.
@@ -181,8 +187,9 @@ void TRACE_declare_mark_value_with_color (const char *mark_type, const char *mar
     THROWF (tracing_error, 1, "mark_value is nullptr");
 
   type_t type = PJ_type_get (mark_type, PJ_type_get_root());
-  if (!type)
+  if (!type){
     THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type);
+  }
 
   char white[INSTR_DEFAULT_STR_SIZE] = "1.0 1.0 1.0";
   if (!mark_color)
@@ -196,7 +203,8 @@ void TRACE_declare_mark_value_with_color (const char *mark_type, const char *mar
  * \brief Declare a new value for a previously declared mark type.
  *
  * This function declares a new value for a Paje event type in the trace file that can be used by simulators to declare
- * application-level marks. This function is independent of which API is used in SimGrid.
+ * application-level marks. This function is independent of which API is used in SimGrid. Calling this function is the
+ * same as calling \ref TRACE_declare_mark_value_with_color with a nullptr color.
  *
  * \param mark_type The name of the new type.
  * \param mark_value The name of the new value for this type.
@@ -235,8 +243,9 @@ void TRACE_mark(const char *mark_type, const char *mark_value)
 
   //check if mark_type is already declared
   type_t type = PJ_type_get (mark_type, PJ_type_get_root());
-  if (!type)
+  if (!type){
     THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type);
+  }
 
   val_t value = PJ_value_get (mark_value, type);
   XBT_DEBUG("MARK %s %s", mark_type, mark_value);
index 1306ddc..6af90f2 100644 (file)
@@ -25,9 +25,8 @@ xbt_dict_t trivaEdgeTypes = nullptr;     /* all link types defined */
 
 long long int instr_new_paje_id ()
 {
-  static long long int type_id = -1;
-  type_id++;
-  return type_id;
+  static long long int type_id = 0;
+  return type_id++;
 }
 
 void PJ_container_alloc ()
index 3b2c584..d0b48b1 100644 (file)
@@ -11,7 +11,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_header, instr, "Paje tracing event sy
 
 extern FILE *tracing_file;
 
-static void TRACE_header_PajeDefineContainerType (int basic)
+static void TRACE_header_PajeDefineContainerType (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineContainerType %d\n", PAJE_DefineContainerType);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -24,7 +24,7 @@ static void TRACE_header_PajeDefineContainerType (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDefineVariableType (int basic)
+static void TRACE_header_PajeDefineVariableType (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineVariableType %d\n", PAJE_DefineVariableType);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -38,7 +38,7 @@ static void TRACE_header_PajeDefineVariableType (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDefineStateType (int basic)
+static void TRACE_header_PajeDefineStateType (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineStateType %d\n", PAJE_DefineStateType);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -51,7 +51,7 @@ static void TRACE_header_PajeDefineStateType (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDefineEventType (int basic)
+static void TRACE_header_PajeDefineEventType (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineEventType %d\n", PAJE_DefineEventType);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -64,7 +64,7 @@ static void TRACE_header_PajeDefineEventType (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDefineLinkType (int basic)
+static void TRACE_header_PajeDefineLinkType (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineLinkType %d\n", PAJE_DefineLinkType);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -81,7 +81,7 @@ static void TRACE_header_PajeDefineLinkType (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDefineEntityValue (int basic)
+static void TRACE_header_PajeDefineEntityValue (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDefineEntityValue %d\n", PAJE_DefineEntityValue);
   fprintf(tracing_file, "%%       Alias string\n");
@@ -95,7 +95,7 @@ static void TRACE_header_PajeDefineEntityValue (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeCreateContainer ()
+static void TRACE_header_PajeCreateContainer (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeCreateContainer %d\n", PAJE_CreateContainer);
   fprintf(tracing_file, "%%       Time date\n");
@@ -106,7 +106,7 @@ static void TRACE_header_PajeCreateContainer ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeDestroyContainer ()
+static void TRACE_header_PajeDestroyContainer (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeDestroyContainer %d\n", PAJE_DestroyContainer);
   fprintf(tracing_file, "%%       Time date\n");
@@ -115,7 +115,7 @@ static void TRACE_header_PajeDestroyContainer ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeSetVariable ()
+static void TRACE_header_PajeSetVariable (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeSetVariable %d\n", PAJE_SetVariable);
   fprintf(tracing_file, "%%       Time date\n");
@@ -125,7 +125,7 @@ static void TRACE_header_PajeSetVariable ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeAddVariable ()
+static void TRACE_header_PajeAddVariable (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeAddVariable %d\n", PAJE_AddVariable);
   fprintf(tracing_file, "%%       Time date\n");
@@ -135,7 +135,7 @@ static void TRACE_header_PajeAddVariable ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeSubVariable ()
+static void TRACE_header_PajeSubVariable (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeSubVariable %d\n", PAJE_SubVariable);
   fprintf(tracing_file, "%%       Time date\n");
@@ -146,7 +146,7 @@ static void TRACE_header_PajeSubVariable ()
 }
 
 
-static void TRACE_header_PajeSetState ()
+static void TRACE_header_PajeSetState (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeSetState %d\n", PAJE_SetState);
   fprintf(tracing_file, "%%       Time date\n");
@@ -156,7 +156,7 @@ static void TRACE_header_PajeSetState ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajePushState (int size)
+static void TRACE_header_PajePushState (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajePushState %d\n", PAJE_PushState);
   fprintf(tracing_file, "%%       Time date\n");
@@ -177,7 +177,7 @@ static void TRACE_header_PajePushState (int size)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajePopState ()
+static void TRACE_header_PajePopState (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajePopState %d\n", PAJE_PopState);
   fprintf(tracing_file, "%%       Time date\n");
@@ -186,7 +186,7 @@ static void TRACE_header_PajePopState ()
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeResetState (int basic)
+static void TRACE_header_PajeResetState (int basic, int size)
 {
   if (basic) return;
 
@@ -214,7 +214,7 @@ static void TRACE_header_PajeStartLink (int basic, int size)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeEndLink (int basic)
+static void TRACE_header_PajeEndLink (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeEndLink %d\n", PAJE_EndLink);
   fprintf(tracing_file, "%%       Time date\n");
@@ -230,7 +230,7 @@ static void TRACE_header_PajeEndLink (int basic)
   fprintf(tracing_file, "%%EndEventDef\n");
 }
 
-static void TRACE_header_PajeNewEvent ()
+static void TRACE_header_PajeNewEvent (int basic, int size)
 {
   fprintf(tracing_file, "%%EventDef PajeNewEvent %d\n", PAJE_NewEvent);
   fprintf(tracing_file, "%%       Time date\n");
@@ -243,22 +243,22 @@ static void TRACE_header_PajeNewEvent ()
 void TRACE_header(int basic, int size)
 {
   XBT_DEBUG ("Define paje header");
-  TRACE_header_PajeDefineContainerType (basic);
-  TRACE_header_PajeDefineVariableType (basic);
-  TRACE_header_PajeDefineStateType (basic);
-  TRACE_header_PajeDefineEventType (basic);
-  TRACE_header_PajeDefineLinkType (basic);
-  TRACE_header_PajeDefineEntityValue (basic);
-  TRACE_header_PajeCreateContainer ();
-  TRACE_header_PajeDestroyContainer ();
-  TRACE_header_PajeSetVariable ();
-  TRACE_header_PajeAddVariable ();
-  TRACE_header_PajeSubVariable ();
-  TRACE_header_PajeSetState ();
-  TRACE_header_PajePushState (size);
-  TRACE_header_PajePopState ();
-  TRACE_header_PajeResetState (basic);
+  TRACE_header_PajeDefineContainerType (basic, size);
+  TRACE_header_PajeDefineVariableType (basic, size);
+  TRACE_header_PajeDefineStateType (basic, size);
+  TRACE_header_PajeDefineEventType (basic, size);
+  TRACE_header_PajeDefineLinkType (basic, size);
+  TRACE_header_PajeDefineEntityValue (basic, size);
+  TRACE_header_PajeCreateContainer (basic, size);
+  TRACE_header_PajeDestroyContainer (basic, size);
+  TRACE_header_PajeSetVariable (basic, size);
+  TRACE_header_PajeAddVariable (basic, size);
+  TRACE_header_PajeSubVariable (basic, size);
+  TRACE_header_PajeSetState (basic, size);
+  TRACE_header_PajePushState (basic, size);
+  TRACE_header_PajePopState (basic, size);
+  TRACE_header_PajeResetState (basic, size);
   TRACE_header_PajeStartLink (basic, size);
-  TRACE_header_PajeEndLink (basic);
-  TRACE_header_PajeNewEvent ();
+  TRACE_header_PajeEndLink (basic, size);
+  TRACE_header_PajeNewEvent (basic, size);
 }
index 29e3620..70137b6 100644 (file)
@@ -21,7 +21,9 @@ static void __TRACE_surf_check_variable_set_to_zero(double now, const char *vari
    */
 
   // create a key considering the resource and variable
-  char *key = bprintf ("%s%s", resource, variable);
+  int n = strlen(variable)+strlen(resource)+1;
+  char *key = (char*)xbt_malloc(n*sizeof(char));
+  snprintf (key, n, "%s%s", resource, variable);
 
   // check if key exists: if it doesn't, set the variable to zero and mark this in the dict
   if (!xbt_dict_get_or_null(platform_variables, key)) {
index 7112549..c2ceae6 100644 (file)
@@ -26,15 +26,13 @@ std::vector<paje_event_t> buffer;
 
 void dump_comment (const char *comment)
 {
-  if (!strlen(comment))
-    return;
+  if (!strlen(comment)) return;
   fprintf (tracing_file, "# %s\n", comment);
 }
 
 void dump_comment_file (const char *filename)
 {
-  if (!strlen(filename))
-    return;
+  if (!strlen(filename)) return;
   FILE *file = fopen (filename, "r");
   if (!file){
     THROWF (system_error, 1, "Comment file %s could not be opened for reading.", filename);
@@ -42,14 +40,12 @@ void dump_comment_file (const char *filename)
   while (!feof(file)){
     char c;
     c = fgetc(file);
-    if (feof(file))
-      break;
+    if (feof(file)) break;
     fprintf (tracing_file, "# ");
     while (c != '\n'){
       fprintf (tracing_file, "%c", c);
       c = fgetc(file);
-      if (feof(file))
-        break;
+      if (feof(file)) break;
     }
     fprintf (tracing_file, "\n");
   }
@@ -60,8 +56,7 @@ double TRACE_last_timestamp_to_dump = 0;
 //dumps the trace file until the timestamp TRACE_last_timestamp_to_dump
 void TRACE_paje_dump_buffer (int force)
 {
-  if (!TRACE_is_enabled())
-    return;
+  if (!TRACE_is_enabled()) return;
   XBT_DEBUG("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump);
   if (force){
     for (auto event :buffer){
@@ -136,7 +131,7 @@ void new_pajeDefineContainerType(type_t type)
   event->print = active_writer.print_DefineContainerType;
   event->free                                  = &free_paje_event;
   event->data = xbt_new0(s_defineContainerType_t, 1);
-  (static_cast<defineContainerType_t>(event->data))->type = type;
+  ((defineContainerType_t)(event->data))->type = type;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -153,7 +148,7 @@ void new_pajeDefineVariableType(type_t type)
   event->print = active_writer.print_DefineVariableType;
   event->free                                 = &free_paje_event;
   event->data = xbt_new0(s_defineVariableType_t, 1);
-  (static_cast<defineVariableType_t>(event->data))->type = type;
+  ((defineVariableType_t)(event->data))->type = type;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -170,7 +165,7 @@ void new_pajeDefineStateType(type_t type)
   event->print = active_writer.print_DefineStateType;
   event->free                              = &free_paje_event;
   event->data = xbt_new0(s_defineStateType_t, 1);
-  (static_cast<defineStateType_t>(event->data))->type = type;
+  ((defineStateType_t)(event->data))->type = type;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -187,7 +182,7 @@ void new_pajeDefineEventType(type_t type)
   event->print = active_writer.print_DefineEventType;
   event->free                              = &free_paje_event;
   event->data = xbt_new0(s_defineEventType_t, 1);
-  (static_cast<defineEventType_t>(event->data))->type = type;
+  ((defineEventType_t)(event->data))->type = type;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -204,9 +199,9 @@ void new_pajeDefineLinkType(type_t type, type_t source, type_t dest)
   event->print = active_writer.print_DefineLinkType;
   event->free                               = &free_paje_event;
   event->data = xbt_new0(s_defineLinkType_t, 1);
-  (static_cast<defineLinkType_t>(event->data))->type = type;
-  (static_cast<defineLinkType_t>(event->data))->source = source;
-  (static_cast<defineLinkType_t>(event->data))->dest = dest;
+  ((defineLinkType_t)(event->data))->type = type;
+  ((defineLinkType_t)(event->data))->source = source;
+  ((defineLinkType_t)(event->data))->dest = dest;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -223,7 +218,7 @@ void new_pajeDefineEntityValue (val_t value)
   event->print = active_writer.print_DefineEntityValue;
   event->free                                 = &free_paje_event;
   event->data = xbt_new0(s_defineEntityValue_t, 1);
-  (static_cast<defineEntityValue_t>(event->data))->value = value;
+  ((defineEntityValue_t)(event->data))->value = value;
 
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
 
@@ -240,7 +235,7 @@ void new_pajeCreateContainer (container_t container)
   event->print = active_writer.print_CreateContainer;
   event->free                                   = &free_paje_event;
   event->data = xbt_new0(s_createContainer_t, 1);
-  (static_cast<createContainer_t>(event->data))->container = container;
+  ((createContainer_t)(event->data))->container = container;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -257,7 +252,7 @@ void new_pajeDestroyContainer (container_t container)
   event->print = active_writer.print_DestroyContainer;
   event->free                                    = &free_paje_event;
   event->data = xbt_new0(s_destroyContainer_t, 1);
-  (static_cast<destroyContainer_t>(event->data))->container = container;
+  ((destroyContainer_t)(event->data))->container = container;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -274,9 +269,9 @@ void new_pajeSetVariable (double timestamp, container_t container, type_t type,
   event->print = active_writer.print_SetVariable;
   event->free                               = &free_paje_event;
   event->data = xbt_new0(s_setVariable_t, 1);
-  (static_cast<setVariable_t>(event->data))->type = type;
-  (static_cast<setVariable_t>(event->data))->container = container;
-  (static_cast<setVariable_t>(event->data))->value = value;
+  ((setVariable_t)(event->data))->type = type;
+  ((setVariable_t)(event->data))->container = container;
+  ((setVariable_t)(event->data))->value = value;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -292,9 +287,9 @@ void new_pajeAddVariable (double timestamp, container_t container, type_t type,
   event->print = active_writer.print_AddVariable;
   event->free                               = &free_paje_event;
   event->data = xbt_new0(s_addVariable_t, 1);
-  (static_cast<addVariable_t>(event->data))->type = type;
-  (static_cast<addVariable_t>(event->data))->container = container;
-  (static_cast<addVariable_t>(event->data))->value = value;
+  ((addVariable_t)(event->data))->type = type;
+  ((addVariable_t)(event->data))->container = container;
+  ((addVariable_t)(event->data))->value = value;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -309,9 +304,9 @@ void new_pajeSubVariable (double timestamp, container_t container, type_t type,
   event->print = active_writer.print_SubVariable;
   event->free                               = &free_paje_event;
   event->data = xbt_new0(s_subVariable_t, 1);
-  (static_cast<subVariable_t>(event->data))->type = type;
-  (static_cast<subVariable_t>(event->data))->container = container;
-  (static_cast<subVariable_t>(event->data))->value = value;
+  ((subVariable_t)(event->data))->type = type;
+  ((subVariable_t)(event->data))->container = container;
+  ((subVariable_t)(event->data))->value = value;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -326,19 +321,19 @@ void new_pajeSetState (double timestamp, container_t container, type_t type, val
   event->print = active_writer.print_SetState;
   event->free                            = &free_paje_event;
   event->data = xbt_new0(s_setState_t, 1);
-  (static_cast<setState_t>(event->data))->type = type;
-  (static_cast<setState_t>(event->data))->container = container;
-  (static_cast<setState_t>(event->data))->value = value;
+  ((setState_t)(event->data))->type = type;
+  ((setState_t)(event->data))->container = container;
+  ((setState_t)(event->data))->value = value;
 
 #if HAVE_SMPI
   if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
     smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
-    (static_cast<setState_t>(event->data))->filename   = loc->filename;
-    (static_cast<setState_t>(event->data))->linenumber = loc->linenumber;
+    ((setState_t)(event->data))->filename   = loc->filename;
+    ((setState_t)(event->data))->linenumber = loc->linenumber;
   }
 #endif
 
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, static_cast<int>(event->event_type), event->timestamp);
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
 }
@@ -352,20 +347,20 @@ void new_pajePushStateWithExtra (double timestamp, container_t container, type_t
   event->print = active_writer.print_PushState;
   event->free                             = &free_paje_event;
   event->data = xbt_new0(s_pushState_t, 1);
-  (static_cast<pushState_t>(event->data))->type = type;
-  (static_cast<pushState_t>(event->data))->container = container;
-  (static_cast<pushState_t>(event->data))->value = value;
-  (static_cast<pushState_t>(event->data))->extra = extra;
+  ((pushState_t)(event->data))->type = type;
+  ((pushState_t)(event->data))->container = container;
+  ((pushState_t)(event->data))->value = value;
+  ((pushState_t)(event->data))->extra = extra;
 
 #if HAVE_SMPI
   if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
     smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
-    (static_cast<pushState_t>(event->data))->filename   = loc->filename;
-    (static_cast<pushState_t>(event->data))->linenumber = loc->linenumber;
+    ((pushState_t)(event->data))->filename   = loc->filename;
+    ((pushState_t)(event->data))->linenumber = loc->linenumber;
   }
 #endif
 
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, static_cast<int>(event->event_type), event->timestamp);
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
 }
@@ -384,8 +379,8 @@ void new_pajePopState (double timestamp, container_t container, type_t type)
   event->print = active_writer.print_PopState;
   event->free                            = &free_paje_event;
   event->data = xbt_new0(s_popState_t, 1);
-  (static_cast<popState_t>(event->data))->type = type;
-  (static_cast<popState_t>(event->data))->container = container;
+  ((popState_t)(event->data))->type = type;
+  ((popState_t)(event->data))->container = container;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -401,16 +396,16 @@ void new_pajeResetState (double timestamp, container_t container, type_t type)
   event->print = active_writer.print_ResetState;
   event->free                              = &free_paje_event;
   event->data = xbt_new0(s_resetState_t, 1);
-  (static_cast<resetState_t>(event->data))->type = type;
-  (static_cast<resetState_t>(event->data))->container = container;
+  ((resetState_t)(event->data))->type = type;
+  ((resetState_t)(event->data))->container = container;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
 }
 
-void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer,
-                                const char *value, const char *key, int size)
+void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
+                        const char *value, const char *key)
 {
   paje_event_t event = xbt_new0(s_paje_event_t, 1);
   event->event_type = PAJE_StartLink;
@@ -418,24 +413,37 @@ void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t
   event->print = active_writer.print_StartLink;
   event->free                                   = &free_paje_event;
   event->data = xbt_new0(s_startLink_t, 1);
-  (static_cast<startLink_t>(event->data))->type = type;
-  (static_cast<startLink_t>(event->data))->container = container;
-  (static_cast<startLink_t>(event->data))->sourceContainer = sourceContainer;
-  (static_cast<startLink_t>(event->data))->value = xbt_strdup(value);
-  (static_cast<startLink_t>(event->data))->key = xbt_strdup(key);
-  (static_cast<startLink_t>(event->data))->size = size;
-
+  ((startLink_t)(event->data))->type = type;
+  ((startLink_t)(event->data))->container = container;
+  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+  ((startLink_t)(event->data))->value = xbt_strdup(value);
+  ((startLink_t)(event->data))->key = xbt_strdup(key);
+  ((startLink_t)(event->data))->size = -1;
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
   insert_into_buffer (event);
 }
 
-void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
-                        const char *value, const char *key)
+void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer,
+                                const char *value, const char *key, int size)
 {
-  new_pajeStartLinkWithSize(timestamp, container, type, sourceContainer, value, key, -1);
-}
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_StartLink;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_StartLink;
+  event->free                                   = &free_paje_event;
+  event->data = xbt_new0(s_startLink_t, 1);
+  ((startLink_t)(event->data))->type = type;
+  ((startLink_t)(event->data))->container = container;
+  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+  ((startLink_t)(event->data))->value = xbt_strdup(value);
+  ((startLink_t)(event->data))->key = xbt_strdup(key);
+  ((startLink_t)(event->data))->size = size;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
+  insert_into_buffer (event);
+}
 
 void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer,
                       const char *value, const char *key)
@@ -446,11 +454,11 @@ void new_pajeEndLink (double timestamp, container_t container, type_t type, cont
   event->print = active_writer.print_EndLink;
   event->free                               = &free_paje_event;
   event->data = xbt_new0(s_endLink_t, 1);
-  (static_cast<endLink_t>(event->data))->type = type;
-  (static_cast<endLink_t>(event->data))->container = container;
-  (static_cast<endLink_t>(event->data))->destContainer = destContainer;
-  (static_cast<endLink_t>(event->data))->value = xbt_strdup(value);
-  (static_cast<endLink_t>(event->data))->key = xbt_strdup(key);
+  ((endLink_t)(event->data))->type = type;
+  ((endLink_t)(event->data))->container = container;
+  ((endLink_t)(event->data))->destContainer = destContainer;
+  ((endLink_t)(event->data))->value = xbt_strdup(value);
+  ((endLink_t)(event->data))->key = xbt_strdup(key);
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
 
@@ -465,9 +473,9 @@ void new_pajeNewEvent (double timestamp, container_t container, type_t type, val
   event->print = active_writer.print_NewEvent;
   event->free                            = &free_paje_event;
   event->data = xbt_new0(s_newEvent_t, 1);
-  (static_cast<newEvent_t>(event->data))->type = type;
-  (static_cast<newEvent_t>(event->data))->container = container;
-  (static_cast<newEvent_t>(event->data))->value = value;
+  ((newEvent_t)(event->data))->type = type;
+  ((newEvent_t)(event->data))->container = container;
+  ((newEvent_t)(event->data))->value = value;
 
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);