--------------------------------------------------------
Future
------
1. Performance: 
  - 'ce_perf -rpc' spends A LOT of time converting ML sockets to C sockets.
  - Check other cases
  - perhaps write a paper on performance improvements and software experience
    between 1.00v and 1.36v.
2. The 32bit counter in ce_outboard, that counts stack ids, can overflow.
3. Convert from C directly to ML actions, instead of going through an intermidiate representation. 
4. Split out security and groupd
5. write a configure script (in ML)
6. Add -fPIC to the CFLAGS.
7. Debug groupd : 
   - bug 1: uncaught exception
10. Prompt for a view change if the current sequence number is close 
    to wrapping around. 
2. Convert the java demos to jar format, should be easy. 
3. Allow CE to work with ENSCONF_unix, not just ENSCONF_skt.
5. Check the flow control protocols, use Window instead of Mflow?
4. Use a configuration file instead of environment variables. 
1. Makefiles 
   - Cleanup the makefiles, who is using preamble? 
   - Use an object directory, and send all created objects there. 
   - Stop copying executables
2. port the security-infrastructure to win32 (Xavier library).
   Add support for GnuPG (www.gnupg.org) ?
--------------------------------------------------------

done: 1.41
-------------
1. Fix the various Maestro bugs.
   - merge code bases for win32/unix
   - fix the Jonathan bug
2. Fix bug not allowing the use of a specific IP address for an Ensemble process
3. Fix total-ordering bug in Seqbb

--------------------------------------------------------
done: 1.40
-------------
*  Report a bug in Ocaml, -I does not work. 
0. Fixed a bug affecting gossip on win32 systems. Previously, when an
   application using a gossip server died, the gossip server could go
   into an infinite loop due to an endless sequence of socket errors. To
   solve this, we now close down the gossip-server socket, and open a new
   one in these cases.
4. Check what happens when we move sockets to OVERLAPPED on win32
5. Create DLLs for win32
7. Use a simple mechanism for passing actions to the Ensemble thread, 
   instead of using sockets.

--------------------------------------------------------

done: 1.39
----------
1. Port to Solaris and HPUX, donated by Bernd Harries (bha@gmx.de).
2. Removed the need for ENS_ABSROOT.
3. Improved SEQBB performance. 
4. Fixed ref-count and correctness bugs in SEQUENCER, TOTEM, TOTAL.
5. Reworked the socket library
   - Use the new Unix setsock calls 
   - split between the Unix stuff and win32 stuff, this gets read of the
     #ifdefs. 
   - Rewritten the makefiles
   - cleanup
6. Fixed the : "rand -add_prop total -s 13000" bug
7. Added a first version of a document describing the Ensemble lower-level 
   transport and io-vector system.

todo:
1. run long tests on SEQBB, SEQUENCER, TOTEM , TOTAL.
2. Set the total layer to SEQBB by default in the end. 
+ 3. Return the situation with Socksupp back to where it was
+ 4. Fix the dependency issues: we need to create .depend files in all the 
     right places. 
5. Fix the Hsys.recvfrom bugs on win32. This occurs with both usocket.cma 
   and ssocket.cma. Simply run a gossip server, an mtalk program and kill mtalk. 
6. Test :
   - interoperatbility between Unix and win32
   - UDP,TCP,DEERING 
--------------------------------------------------------

Check
-----
1. hot +
2. maestro + 
3. groupd +-  (rand -groupd_local)
4. HOT, outboard interface. + (need to run a VERY long test)
5. protos.
6. Check Hsyssupp. +
7. PGP, encryption/authentication +
8. Java.

ML suggestions:
---------------
1. Add a third generation to the GC.
2. optimize using registers returned tuples.
3. A substring library. 
4. Functional arrays and strings. This would allow
   optimizing "Array.map ident". 
    Array.map ident alpah_arr === alpha_arr.
5. Simple escape-analysis.

