Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
renamed xbt_(*.[ch]) to \1.
[simgrid.git] / ChangeLog
index 0c2ce27..cf3d091 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,103 @@
-Version 0.7 (protocol not changed; API changed)
+2004-10-29 Martin Quinson
+  - Introduction of the remote errors. 
+    They are the result of a RMI/RPC on the remote machine.
+    ErrCodes being scalar values, you can't get the host on which those
+    errors did happen. Extending the error mecanism as in Gnome is possible.
+    No idea yet whether it is a good idea.
+    
+2004-10-28 Martin Quinson
+  - Interface revolution: the Starred Structure Eradication.
+    I used to do typedef struct {} toto_t; and then handle *toto_t.
+    Arnaud (and Oli) didn't like it, and I surrendered. Now, you have:
+      - ???_t is a valid type (builded with typedef)
+      - s_toto_t is a structure (access to fields with .)
+      - s_toto   is a structure needing 'struct' keyword to be used
+      - e_toto_t is an enum
+      -   toto_t is an 'object' (struct*)
+    Exemple:
+      typedef struct s_toto {} s_toto_t, *toto_t;
+      typedef enum {} e_toto_t;
+    Moreover, only toto_t (and e_toto_t) are public. The rest (mainly
+     s_toto_t) is private.
+    
+  - While I was at it, all gras_<obj>_free() functions want a gras_<obj>_t*
+    so that it can set the variable to NULL. It was so for dicts and sets,
+    it changed for dynars.
+    
+  - Fix a bunch of memleaks in dict_remove
+  - Fix a bug in sg/server_socket opening: it failed all the time.
+
+2004-10-07 Martin Quinson
+  - Speed up dynar lookup operation a bit.
+  
+    gras_dynar_get is dead. 
+    
+    Now, you can choose between gras_dynar_get_cpy (the old gras_dynar_get
+    but should be avoided for efficiency reasons) and gras_dynar_get_ptr
+    (which gives you the address of the stored data).
+    
+    gras_dynar_get_as is an helpful macro which allows you to retrieve a
+    copy of the data using an affectation to do the job and not a memcpy.
+    
+    int toto = gras_dynar_get_as(dyn,0,int); rewrites itself to
+    int toto = *(int*)gras_dynar_get_ptr(dyn,0);
+    
+    It does not really speedup the dynar test because they are
+    setting elements all the time (and look them seldom). But the dict does
+    far more lookup than setting.
+
+    So, this brings the dict_crash test from ~33s to ~25s (200000 elms).
+
+2004-10-05 Martin Quinson
+  - Allow to (en/dis)able the cycle detection at run time.
+  
+    Whether we should check for cycle or not is now a property of each
+    datatype. When you think there may be some cycle, use datadesc_cycle_set.
+    datadesc_cycle_unset allow to remove this property when previously set.
+    
+    Note that the cycle detection is off by default since it impacts the 
+    performance. Watch the data you feed GRAS with ;)
+    
+    This property is hereditary. Any element embeeded in a structure having it
+    set have it set for the time of this data exchange.
+    
+    You should set it both on sender and receiver side. If you don't set it on
+    sender side, it will enter an endless loop. If you forget on receiver
+    side, the cycles won't be recreated after communication.
+    
+  - Header reorganization.
+    Kill gras_private.h, each submodule must load the headers it needs.
+
+2004-10-04 Martin Quinson
+  - Interface revolution: do not try to survive to malloc failure.
+  
+    Now, gras_malloc and friends call gras_abort() on failure.
+    As a conclusion, malloc_error is not a valid error anymore, and all
+      functions for which it was the only gras_error_t return value are
+      changed. They now return void, or there result directly. 
+    This simplify the API a lot.
+
+2004-09-29 Martin Quinson
+  - Re-enable raw sockets.
+    Created by gras_socket_{client,server}_ext;
+    Used with gras_raw_{send,recv}
+    No select possible.
+    
+    It should allow to kill the last bits of gras first version soon.
+  
+    This is not completely satisfactory yet (dupplicate code with
+     chunk_{send,recv}; a bit out of the plugin mecanism), but it should
+     work. 
+
+  - Simplify transport plugin (internal) interface by not passing any
+    argument to _server and _client, but embeeding them in the socket
+    struct directly. 
+
+2004-09-28 Martin Quinson
+  - Finish the port to AIX.
+    autoconf was my problem (segfault within the malloc replacement
+    function. No idea why)
+        
 2004-09-16 Martin Quinson
   - Fix some size_t madness on 64bit architectures.
   
@@ -10,7 +109,7 @@ Version 0.7 (protocol not changed; API changed)
 
 2004-09-07 Martin Quinson
   - Source code reorganization to allow Arnaud to surf all over there.
-  - Allow to document the logging categories
+  - Allow to document the logging categories.
   - Remove all uppercase from logging categories and useless cleanup in names.
 
 2004-08-18 Martin Quinson
@@ -34,7 +133,7 @@ Version 0.7 (protocol not changed; API changed)
   Version 0.5 (protocol not changed; ABI changed)
   - Allow to off turn the cycle detection code in data exchange at
     compilation time. It should be at run time, but I'm short of time (and
-    the config stuff is still broken). That way, we keep dict of of the
+    the config stuff is still broken). That way, we keep dict out of the
     critical path, which is good because the performance is poor:
      - search not dichotomial yet
      - dynar give no way to access their content and memcpy everytime
@@ -43,7 +142,7 @@ Version 0.7 (protocol not changed; API changed)
     of the critical path, which is good since they rely on dynar and
     dictionnaries. The only loose of that is that we cannot detect the
     redeclaration of a structure/union with another content (but I'm not sure 
-    the code detected this error well before anyway). We still can detect
+    the code detected well this error before anyway). We still can detect
     the redefinition discrepancy for the other types.
   - Use a whole bunch of optimisation flags (plus -fno-strict-aliasing since
     it breaks the code because of type-punning used all over the place).