Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implement SD_task_schedule, SD_task_unschedule and other SimDag stuff.
[simgrid.git] / TODO
diff --git a/TODO b/TODO
index ea8fd6f..bd0098b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,11 +1,24 @@
 ###
 ### Ongoing stuff
 ###
+/* FIXME: better place? */
+int vasprintf  (char **ptr, const char *fmt, va_list ap);
+char *bprintf(const char*fmt, ...) _XBT_GNUC_PRINTF(1,2);
 
-* tcp->incoming_socks
-  sock specific tcp (buffsize) useless
+Module renamings:
+ - rename SWAG to RING?
+ - Rename cursor to iterator
 
-* use the exception everywhere
+log.h still contains @name which break doxygen:
+xbt/log.h:/** \name DEBUG
+xbt/log.h:/** \name VERB
+xbt/log.h:/** \name INFO
+xbt/log.h:/** \name WARN
+xbt/log.h:/** \name ERROR
+xbt/log.h:/** \name CRITICAL
+
+gras_socket_close should be blocking until all the data sent have been
+received by the other side (implemented with an ACK mechanism).
 
 ###
 ### Planned
@@ -18,6 +31,8 @@
 [autoconf]
   * Check the gcc version on powerpc. We disabled -floop-optimize on powerpc,
     but versions above 3.4.0 should be ok.
+  * check whether we have better than jmp_buf to implement exceptions, and
+    use it (may need to generate a public .h, as glib does)
 
 *
 * XBT
@@ -35,7 +50,7 @@
     The first ones should be repported to the user, the second should kill
     the program (or, yet better, only the msg handler)
   * Allows the use of an error handler depending on the current module (ie,
-    the same philosophy than log4c using GSL's error functions)
+    the same philosophy as log4c using GSL's error functions)
 
 [logs]
   * Hijack message from a given category to another for a while (to mask
@@ -50,7 +65,9 @@
 
 [modules]
   * better formalisation of what modules are (amok deeply needs it)
-    configuration + init() + exit() + dependencies
+    configuration + init() + join() + exit() + leave() + dependencies
+    init and exit are run only once
+    join and leave are run for each process.
   * allow to load them at runtime
     check in erlang how they upgrade them without downtime
 
   * we may need a round-robin database module, and a statistical one
   * a hook module *may* help cleaning up some parts. Not sure yet.
   * Some of the datacontainer modules seem to overlap. Kill some of them?
+    - replace fifo with dynars
+    - replace set with SWAG
 
 *
 * GRAS
 ******
 
 [doc]
-  * add the token ring as official example
   * implement the P2P protocols that macedon does. They constitute great
     examples, too
 
   * gras_datadesc_import_nws?
 
 [Messaging]
-  * A proper RPC mecanism
-    - gras_rpctype_declare_v (name,ver, payload_request, payload_answer)
-      (or gras_msgtype_declare_rpc_v). 
-    - Attaching a cb works the same way.
-    - gras_msg_rpc(peer, &request, &answer)
-    - On the wire, a byte indicate the message type:
-      - 0: one-way message (what we have for now)
-      - 1: method call (answer expected; sessionID attached)
-      - 2: successful return (usual datatype attached, with sessionID)
-      - 3: error return (payload = exception)
-      - other message types are possible (forwarding request, group
-        communication)
+  * Other message types than oneway & RPC are possible:
+     - forwarding request, group communication
   * Message priority
   * Message forwarding
   * Group communication
   * watchdog in RL (ie, while (1) { fork; exec the child, wait in father })
   * Allow [homogeneous] dico to be sent
   * Make GRAS thread safe by mutexing what needs to be
-  * Use a xbt_set for gras_procdata_t->libdata instead of a dict
-    so that the search can be linear.
 
 *
 * AMOK