Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
get rid of this awful blue line around the picture
[simgrid.git] / ChangeLog
index fcecf53..6593e27 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,176 @@
+2005-02-08 Martin
+  - Doxygenification of all GRAS. gtk-doc-tools is dead in SimGrid now.
+  - Automatically extract all existing logging categories, and add the list
+    to the documentation (long standing one, to say the less)
+  - Cleanup the known architecture table. Reorder the entries to group what
+    should be, and use a more consistant naming scheme.
+    (some of the test dataset are still to be regenerated)
+
+2005-02-07 Arnaud
+  - Bug fix in the lmm_solver.
+  - Interface to Paje (see http://www-id.imag.fr/Logiciels/paje/) through
+    the function MSG_paje_output.
+  - Introducing two new functions MSG_process_kill() and MSG_process_killall().
+
+2005-02-04 Martin
+  - Reenable GRAS/RL; keep GRAS/SG disabled for now
+  - Various cleanups to the autotools stuff
+  - Begin to move Gras examples to examples/gras/
+  - Let make distcheck work again (yeah!)
+
+2005-01-31 Arnaud
+  Version 2.90: "the long awaited one"
+  - Finished rewriting and debugging MSG. Rewrote the documentation.
+  - disable GRAS for now since it needs to be ported to the newest SG
+
+2004-12-16 Martin
+  - Finish the port to windows (using mingw32 for cross-compile)
+
+2004-11-28 Arnaud
+  - Main loop and datastructures of SURF. A cpu resource object is
+    functionnal. Surf can thus be used to create cpu's with variable
+    performance on which you can execute some actions.
+       
+2004-11-15 Martin Quinson
+  - Port to ARM. Simply added the alignment and size descriptions. Should
+    work, but the ARM machines are so slow that I didn't had the opportunity
+    to 'make check' overthere yet.
+
+2004-11-15 Arnaud Legrand
+  - Trace manager now written. It uses a heap structure and is therefore
+    expected to be efficient. It may however be speeded up (particularly
+    when many events occur at the same date) by using red and black
+    trees. One day maybe... 
+  - Max-min linear system solver written. It uses a sparse matrix
+    structure taking advantage of its expected use. Most operations are
+    O(1) and free/calloc are called as few as possible. The computation of
+    the minimum could however be improved by using a red and black tree
+    (again ! ;).
+
+2004-11-03 Arnaud Legrand
+  - Rename every gras_* function that was in xbt/ to its xbt_
+    counterpart.
+  - Add a heap and a doubly-linked list to xbt
+  - Added a dichotomy to the dictionnaries. make check works as well before
+    so I assume that the patch is correct. I do not know however if things
+    run effectively faster than before now. :)
+
+  Inclusion of the SimGrid tree in the GRAS one. The archive is renamed to
+  SimGrid, and the version number is bumped to 2.x
+
+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.
+  
+2004-09-08 Martin Quinson
+  - Reduce the number of system headers loaded, overload some more system
+    calls (such as malloc to cast the result of the system one, and work
+    properly on AIX)
+  - Fix and reintroduce the config support
+
 2004-09-07 Martin Quinson
-  Version 0.6.3 (protocol not changed; API changed)
-  - Source code reorganization to allow Arnaud to put the surf in the same
-    tree.
+  - Source code reorganization to allow Arnaud to surf all over there.
+  - Allow to document the logging categories.
+  - Remove all uppercase from logging categories and useless cleanup in names.
 
 2004-08-18 Martin Quinson
   Version 0.6.2 (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
     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).