Cover Eric's changes in the Changelog
[charm.git] / CHANGES
1 This file describes the most significant changes. For more detail, use
2 git log on a clone of the charm repository.
3 ===========================================
4
5 What's new in Charm++ 6.2.0 (since 6.1)
6 =======================================
7
8 Charm++
9  - Cross-array and cross-group sections
10
11 Multiphase Shared Arrays (MSA)
12  - Typed handles to enforce phases
13  - Split-phase synchronization to enable message-driven execution
14  - 3D arrays
15  - Major implementation cleanup
16
17 Adaptive MPI (AMPI)
18  - Improved MPI standard conformance, and documentation of non-conformance
19
20 TCharm: Automate tracing of API calls for simulation and analysis.
21 Structured Dagger (SDAG): Support templated arguments properly
22
23 Architecture-specific changes:
24 ------------------------------
25 MPI
26  - Default to using mpicxx instead of mpiCC
27 Power 7
28  - Support for VSX in SIMD abstraction API
29
30
31 Note that changes between 5.4 and 6.1 are not documented here. A
32 partial list can be found on the charm download page, or by reading
33 through version control logs.
34
35 What's New since Charm++ 5.4 release 1
36 ========================================
37
38 --------------------------------------------------------------------------------
39 New Supported Platforms:
40 --------------------------------------------------------------------------------
41 1. Charm++ ported to IA64 Itanium running Win2K and Linux, Charm++ also support
42    Intel C/C++ compilers;
43
44 2. Charm++ ported to Power Macintosh powerpc running Darwin;
45
46 3. Charm++ ported to Myrinet networking with GM API;
47
48 --------------------------------------------------------------------------------
49 Summary of New Features:
50 --------------------------------------------------------------------------------
51 1. Structure Dagger
52    Structured Dagger is a coordination language built on top of CHARM++.
53    Structured Dagger allows easy expression of dependences among messages and 
54    computations and also among computations within the same object using 
55    when-blocks and various structured constructs. 
56
57 2. Entry functions support parameter marshalling
58    Now you can declare and invoke remote entry functions using parameter 
59    marshalling instead of defining messages.
60
61 3. Easier running - standalone mode
62    For net-* version running locally, you can now run Charm programs without 
63    charmrun. Running a node program directly from command line is now the
64    same as "charmrun +p1 <program>"; for SMP version, you can also specify 
65    multiple (local) processors, as in "program +p2".
66    
67
68 --------------------------------------------------------------------------------
69 Summary of Changes:
70 --------------------------------------------------------------------------------
71 1. "build" changed for compilation of Charm++
72    To build Charm++ from scratch, we now take additional command line options
73    to compile with addon features and using different compilers other than gcc.
74    For example, to build Linux IA64 with Myrinet support, type command:
75    ./build net-linux-ia64  gm
76
77
78                 *******   Old Change histories *******
79
80
81 What's New in Charm++ 5.4 release 1 since 5.0
82 ===============================================================
83
84 --------------------------------------------------------------------------------
85 New Supported Platforms:
86 --------------------------------------------------------------------------------
87
88 1. Win9x/2000/NT:  with Visual C++ or Cygwin gcc/g++, you can compile and run 
89    Charm++ programs on all Win32 platforms.
90    
91 2. Scyld Beowulf:  Charm++ has been ported to the Linux-based Scyld Beowulf 
92    operating system. For more information on Scyld, see <http://www.scyld.com>
93
94 3. MPI with VMI:   Charm++ has been ported to NCSA's Virtual Machine Interface,
95    which is an efficient messaging library for heterogeneous cluster 
96    communication.
97
98
99 --------------------------------------------------------------------------------
100 Summary of New Features:
101 --------------------------------------------------------------------------------
102 1. Dynamic Load balancing:
103    Chare migration is supported in the new release. Migration-based dynamic 
104    load balancing framework with various load balancing strategies library has 
105    been added.
106
107 2. Chare Array
108    Charm++ array is supported. You can now create an array of Chare objects
109    and use array index to refer the Charm++ array elements. A reduction
110    library on top of Chare array has been implemented and included.
111
112 3. Projections
113    Projections, a Java application for Charm++ program performance analysis and 
114    visualization, has been included and distributed in the new release. Two
115    trace modes are available: trace-projections and trace-summary. Trace-summary
116    is a light-weight trace library compared to trace-projections.
117
118 4. AMPI
119    AMPI is a load-balancing based library for porting legacy MPI applications 
120    to Charm++. With few changes in the original MPI code to AMPI, the new
121    legacy MPI application on Charm++ will gain from Charm++'s adptive 
122    load balancing ability.
123
124 5. Easier invocation
125    "Charmrun" is now available on all platforms, with a uniform command line 
126    syntax. You can forget the difference between net-* versions and MPI versions,
127    and run charm++ application with this same charmrun command syntax. 
128    ++local option is added in charmrun for net-* version, it provides
129    simple local use of Charm and no longer require the ability to 
130    "rsh localhost" or a nodelist file in order to run charm only on the local
131    machine. This is especially attractive when you run Charm++ on Windows.
132
133 6. New libraries:
134    Many new libraries have been added in this release. They include:
135    1) master-slave library: for writing manager-worker paradigm programs.
136    2) receiver library: provide asynchronous communication mode for chare array.
137    3) f90charm:  provides Fortran90 bindings for Charm++ Array.
138    4) BlueGene:  a Charm++/Converse emulator for IBM proposed Blue Gene.
139
140 --------------------------------------------------------------------------------
141 Summary of Changes:
142 --------------------------------------------------------------------------------
143 1. message declaration syntax in .ci file:
144    The message declaration syntax for packed/varsize messages has been changed.
145    The packed/varsize keywords are eliminated, and you can specify the actual
146    actual varsize arrays in the interface file and have the translator generate
147    alloc, pack and unpack.
148
149
150 Here is the detailed list of Changes:
151
152 --------------------------------------------------------------------------------
153 Major Features:
154 --------------------------------------------------------------------------------
155
156 10/06/1999      rbrunner        Added migration-based dynamic load balancing
157                                 framework.
158 11/15/1999      olawlor         Added reduction support foe Charm++ arrays
159 02/06/2000      milind          Added AMPI, an implementation of MPI with
160                                 dynamic load balancing
161 02/18/2000      paranjpy        New platforms supported: net-win32, and                                         net-win32-smp
162 04/04/2000      olawlor         Added arbitrarily indexed Charm++ arrays.
163                                 Also, added translator support for new arrays.
164 04/15/2000      olawlor         Added "puppers" for packing and unpacking 
165                                 objects.
166 06/14/2000      milind          Added the threaded FEM framework.
167
168 --------------------------------------------------------------------------------
169 Minor Features:
170 --------------------------------------------------------------------------------
171
172 10/09/1999      rbrunner        Added packlib, a library for C and C++ to 
173                                 pack-unpack data to/from Charm++ messages.
174 10/13/1999      gzheng          New LB strategy: RefineLB
175 10/13/1999      paranjpy        New LB Strategy: Heap
176 10/14/1999      milind          New LB Strategy: Metis
177 10/19/1999      olawlor         New test program for testing LB strategies.
178 10/21/1999      gzheng          New trace mode: trace-summary
179 10/28/1999      milind          New supported platform: net-sol-x86
180 10/29/1999      milind          Added runtime checks for ChareID assignment.
181 11/10/1999      rbrunner        Added Neighborhood base strategy for LB 
182                                 framework.
183 11/15/1999      olawlor         conv-host now reads in a startup file 
184                                 ~/.conv-hostrc
185 11/15/1999      olawlor         New test program for testing array reductions.
186 11/16/1999      rbrunner        Added processor-speed checking functions to
187                                 LB framework
188 11/19/1999      milind          Mapped SIGUSR to a Ccd condtion handler
189 11/22/1999      rbrunner        New LB strategy: WSLB
190 11/29/1999      ruiliu          Modified Metis LB strategy to deal with 
191                                 different processor speeds
192 12/16/1999      rbrunner        New LB strategy: GreedyRef
193 12/16/1999      rbrunner        New LB strategy: RandRef
194 12/21/1999      skumar2         New LB strategy: CommLB
195 01/03/2000      rbrunner        New LB strategy: RecBisectBfLB
196 01/08/2000      skumar2         New LB strategy: Comm1LB, with varying processor
197                                 speeds
198 01/18/2000      milind          Modified SM library syntax, and added a test
199                                 program for SM.
200 01/19/2000      gzheng          Added irecv, a library to simplify conversion
201                                 of message-passing programs to Charm++
202 02/20/2000      olawlor         Added preliminary broadcast support to Charm++
203                                 arrays.
204 02/23/2000      paranjpy        Added converse-level quiescence detection
205 03/02/2000      milind          Added ++server-port option to pre-specify
206                                 CCS port.
207 03/10/2000      wilmarth        Random seed-based load balancer now uses
208                                 bit-vector for active PEs.
209 03/21/2000      gzheng          Added support for marking user-defined events 
210                                 in trace-summary.
211 03/28/2000      wilmarth        Added CMK_TRUECRASH. Very helpful for
212                                 post-mortem debugging of Charm++ programs on
213                                 net-* versions.
214 03/31/2000      jdesouza        Added Fortran90 support to the Charm++ 
215                                 interface translator.
216 03/09/2000      milind          Added support for -LANG and -rpath options 
217                                 in charmc for Origin2000.
218 04/28/2000      milind          Added prioritized converse threads.
219 05/01/2000      milind          Added test programs for TeMPO, AMPI and irecv.
220 05/04/2000      milind          New supported platform: mpi-sp.
221 05/04/2000      gzheng          Added irecv pingpong program.
222 05/17/2000      olawlor         Each chare, group and array element now has to
223                                 have migration constructor.
224 05/24/2000      milind          Added Jacobi3D programs for irecv and AMPI both.
225 05/24/2000      milind          Made migratable an optional attribute of 
226                                 chares, groups, and nodegroups.  
227                                 Arrays are by default migratable.
228 05/29/2000      paranjpy        Added pup methods to arrays, reductions etc 
229                                 internal objects.
230 06/13/2000      milind          Made CtvInitialize idempotent.  That is, it 
231                                 can be called by any number of threads now, 
232                                 only the first one will actually do 
233                                 CtvInitialize.
234 06/20/2000      milind          Added a simple test program for the FEM 
235                                 framework.
236 07/06/2000      milind          Imported Metis 4.0 sources in the CVS tree. 
237                                 Also added code to make metis libraries and 
238                                 executables to Makefile.
239 07/07/2000      milind          Added more meaningfull error messages using 
240                                 perror in addition to a cryptic error codes in
241                                 net-* versions.
242 07/10/2000      milind          fem and femf are now recognized as "languages" 
243                                 by charmc.
244 07/10/2000      saboo           Added the derived datatypes library.
245 07/13/2000      milind          Added +idle_timeout functionality. It takes a 
246                                 commandline parameter denoting milliseconds of 
247                                 maximum consecutive idle time allowed per 
248                                 processor.
249 07/14/2000      milind          Added group multicast. Added 
250                                 CkSendMsgBranchMulti, CldEnqueueMulti, and 
251                                 translator changes to support it.
252 07/14/2000      milind          SUPER_INSTALL now takes "-*" arguments prior 
253                                 to the target, that will be passed to make as 
254                                 "makeflags". This makes it easy to suppress 
255                                 make's output of commands etc (with the -s 
256                                 flag). As a result of this, several Makefiles 
257                                 have been massaged.
258 07/18/2000      milind          Added support for using "dbx" on suns as 
259                                 debugger.
260 07/19/2000      milind          Added ability to tracemode projections which 
261                                 produces binary trace files. Use flag 
262                                 +binary-trace on the command line.
263 07/26/2000      milind          Separated AMPI from TeMPO.
264 07/28/2000      milind          Added test programs to test reduce, alltoall 
265                                 and allreduce functionality of AMPI.
266 08/02/2000      milind          Added an option to let the user specify which 
267                                 "xterm" to use.  For example, on some systems 
268                                 (CDE), only dtterm is installed.  So, by 
269                                 putting ++xterm dtterm on the conv-host 
270                                 commandline, one can use dtterm when ++in-xterm
271                                 option is specified on conv-host commandline.
272 08/14/2000      milind          FEM Framework: Added capabilities to handle 
273                                 esoteric meshes to standalone offline programs.
274                                 Makefile now produces gmap and fgmap programs, 
275                                 which are used for this purpose.  They convert 
276                                 the mesh to a graph before partitioning it 
277                                 using Metis.
278 08/24/2000      milind          Added the 2D crack propagation program as a 
279                                 test program for FEM framework.
280 08/25/2000      milind          Initial implementation of isomalloc-based 
281                                 threads.  This implementation uses a fixed 
282                                 stack size for all threads (can be set at 
283                                 runtime.)
284 08/26/2000      milind          Added a macro CtvAccessOther that lets you 
285                                 get/set a Ctv variable of any thread.  It 
286                                 should be invoked as CtvAccessOther(thread,
287                                 varname); Added CthGetData function to each of 
288                                 the threads implementation.  This function is 
289                                 used in the CtvAccessOther macro.
290 08/27/2000      milind          FEM Framework: Separated mesh to graph 
291                                 conversion capability into a separate program.
292                                 This way, the generated graph can be partitioned
293                                 repeatedly.
294 09/04/2000      milind          Added the class static readonly variables to 
295                                 ci file syntax.
296 09/05/2000      milind          FEM Framework: A very fast O(n) algorithm for 
297                                 mesh2graph , uses more memory, but the tradeoff
298                                 was worth it. Coded by Karthik Mahesh, minor 
299                                 optimizations by Milind.
300 09/05/2000      milind          Added a barebones charm kernel scheduling 
301                                 overhead measurement program.
302 09/15/2000      milind          Added pup support for AMPI and FEM framework.
303 09/20/2000      olawlor         Added capability to have an array of base type 
304                                 where individual element could be of derived 
305                                 types.
306 10/03/2000      gzheng          New supported platform: net-linux-axp
307 10/05/2000      skumar2         Added program littleMD to the test suite.
308 10/07/2000      skumar2         New job scheduler (Faucets projects).
309 10/15/2000      milind          Improved support for Fortran90 in charmc.
310 11/04/2000      jdesouza        Made the Faucets scheduler multi-threaded.
311 11/05/2000      olawlor         FEM Framework: supports multiple element types,
312                                 mesh re-assembly, etc.
313 11/15/2000      gzheng          New platform support: net-cygwin
314 11/18/2000      gzheng          conv-host no longer needs /bin/csh to start 
315                                 remote program.  set 
316                                 CMK_CONV_HOST_CSH_UNAVAILABLE to 1 to use 
317                                 /bin/sh instead.
318 11/25/2000      milind          Finished experimental implementation of 
319                                 converse-threads based on co-operative pthreads.
320 11/25/2000      milind          Added a benchmark suite of all pingpongs in
321                                 Charm++.
322 11/28/2000      milind          Removed deletion of _idx at the end of every 
323                                 send or doneInserting call.  Instead now it is 
324                                 in the destructor of the proxy. This allows us 
325                                 to cache proxies, when proxy creation becomes 
326                                 a bottleneck.
327 11/28/2000      olawlor         Added "seek blocks" to puppers.  This should 
328                                 allow out-of-order pup'ing without the ugliness
329                                 of getBuf; and in a way that works with all 
330                                 PUP::ers.
331 11/29/2000      olawlor         Simplified and regularized command-line-argument
332                                 handling.
333 11/29/2000      milind          AMPI: Added multiple-communicators capability.
334 12/05/2000      gzheng          Now /bin/sh is default shell to fork node 
335                                 program on remote machines.
336 12/13/2000      olawlor         Added charmrun wrapper for poe on mpi-sp.
337 12/14/2000      milind          Added bluegene emulator sources and test 
338                                 programs.  Added "bluegene" as a language known
339                                 to charmc.  Makefile now has a target called 
340                                 bluegene.  Added preliminary bluegene 
341                                 documentation.  (copied from Arun's webpage.)
342 12/15/2000      gzheng          f90charm addition to Makefile and charmc. Also,
343                                 added fixed size arrays support to f90charm. A 
344                                 test program f90charm/hello is checked in.
345 12/17/2000      milind          Added rtest test program. Contributed by jim to
346                                 test Converse message transmission.
347 12/20/2000      olawlor         Added charmconfig script. Enables automatic 
348                                 determination of C++ compiler properties, 
349                                 replacing the verbose and error-prone 
350                                 conv-mach.h entries for CMK_BOOL, 
351                                 CMK_STL_USE_DOT_H, CMK_CPP_CAST_OK, ...
352 12/20/2000      olawlor         Charm++ Arrays optimizations: Key and object 
353                                 now variable-length fields, instead of pointers.
354                                 This extra flexibility lets us save many 
355                                 dynamic allocations in the array framework.
356 12/20/2000      olawlor         Added PUP::able support-- dynamic type 
357                                 identification, allocation, and deletion.  
358                                 Allows you to write:   p(objPtr); and 
359                                 objPointer will be properly identified, 
360                                 allocated, packed, and deallocated (depending 
361                                 on the PUP::er).  Requires you to register any 
362                                 such classes with DECLARE_PUPable and 
363                                 DEFINE_PUPable.
364 12/20/2000      olawlor         Arrays optimizations: Made CkArrayIndex 
365                                 fixed-size.  This significantly improves 
366                                 messaging speed (7 us instead of 10 us 
367                                 roundtrip).  Move spring cleaning check into a 
368                                 CcdCallFnAfter, which gains more speed (down to
369                                 4 us roundtrip).
370 12/20/2000      olawlor         More optimizations: Minor speed tweaks-- 
371                                 conv-ccs.c uses hashtable for handler lookup; 
372                                 conv-conds skips timer test until needed; 
373                                 convcore.c scheduler loop optmizations (no 
374                                 superfluous EndIdle calls); threads.c 
375                                 CMK_OPTIMIZE-> no mprotect.
376 12/20/2000      olawlor         More Optimizations: Minor speed tweaks-- ck.C 
377                                 groups cldEnqueue skip; init.h defines 
378                                 CkLocalBranch inline; and supporting changes.
379 12/22/2000      gzheng          IA64 support for Converse user level threads.
380 01/02/2001      olawlor         CCS: Minor update-- enabled CcsProbe, cleaned 
381                                 up superflous debug messages in server, added 
382                                 Java interface (originally written for 
383                                 AppSpecter).
384 01/09/2001      gzheng          charmconfig converted to autoconf style, need 
385                                 to change configure.in and conv-autoconfig.h.in,
386                                 and run autoconf to get configure and copy to 
387                                 charmconfig.  added fortran subroutine name 
388                                 test and get libpthread.a
389 01/10/2001      milind          Added telnet method of getting libpthread.a 
390                                 from charm webserver.
391 01/11/2001      olawlor         Moved projections files here from 
392                                 CVSROOT/projections-java.  Added fast Java 
393                                 versions of the .log file input routines in 
394                                 LogReader, LogLoader, LogAnalyzer, and 
395                                 UsageCalc.  Added "U.java" user interface 
396                                 utility file, allowing times to be input in 
397                                 seconds, milliseconds, or microseconds, 
398                                 instead of just microseconds.
399 01/15/2001      gzheng          add +trace-root to specify the directory to 
400                                 put log files in. this is need in Scyld cluster
401                                 where there is no NFS mounting and no i/o 
402                                 access to home directory sharing on nodes.
403 01/15/2001      milind          Made AMPI into a f90 module instead of 
404                                 'ampif.h' inclusion.  AMPI f90 bindings are 
405                                 now more inclusive.  Fixed argc,argv handling 
406                                 bugs in ArgsInfo message.  Fixed a bug in pup 
407                                 that caused thread not to be sized, but was 
408                                 packed nevertheless. Moved irecv to waitall 
409                                 instead of at in ampi_start.  Made 
410                                 AMPI_COMM_WORLD to be 0, because it clashed 
411                                 with wildcard(-1).  AMPI_COMM_UNIVERSE is now 
412                                 handled properly in the AMPI module.  
413                                 C/C++ data members are NOT visible to 
414                                 Fortran 90.
415 01/18/2001      gzheng          New supported platform: net-linux-scyld
416 01/20/2001      olawlor         Moved array index field from CMessage_* to the 
417                                 Ck envelope itself.  This is the right thing 
418                                 to do, because any message may be sent to/from 
419                                 an array element.  To reduce the wasted space 
420                                 in a message, a union is used to overlay the 
421                                 fields for the various possible message types.
422 01/29/2001      olawlor         Freed charmrun on net-* version from using
423                                 remote shell to fork off processes. One can now
424                                 use a daemon provided in the distribution.
425 02/07/2001      olawlor         Added debugging support to puppers.
426 02/13/2000      gzheng          Added ++local option to charmrun to start node 
427                                 program locally without any daemon; fix the 
428                                 hang program if you type wrong pgm name in 
429                                 scyld version, and redirect all output to 
430                                 /dev/null, otherwise all node program can send 
431                                 its output to console in scyld. Also implemented                                ++local in net-win32 version.
432 02/26/2000      milind          Changed the varsize syntax. Now one can specify
433                                 actual varsize arrays in the interface file
434                                 and have the translator generate alloc, pack 
435                                 and unpack.
436
437 --------------------------------------------------------------------------------
438 Bug Fixes:
439 --------------------------------------------------------------------------------
440
441 10/29/1999      milind          Replaced jmemcpy by memcpy in net versions, as
442                                 it was causing a bit to flip (bug reported
443                                 by jim.)
444 10/29/1999      milind          Fixed multiline macros in all header files.
445 02/05/2000      milind          Fixed linking errors by getting the order of
446                                 libraries right from the charmc command-line.
447 02/18/2000      paranjpy        Fixed Charm++ initialization bug on SMPs.
448 02/21/2000      milind          Fixed a context-switching bug in mipspro version
449                                 of QuickThreads.
450 02/25/2000      milind          Charm++ interface translator was segfaulting
451                                 on interface file errors. Fixed that. Also,
452                                 added linenumbers to error messages.
453 03/02/2000      milind          Made CCS work on SMPs.
454 03/07/2000      milind          Made ConverseInit consistent with the manual on
455                                 Origin2000 version.
456 04/18/2000      milind          Fixed a bug in CkWaitFuture, which was caching 
457                                 a variable locally, while it was changed by 
458                                 another thread.
459 05/04/2000      paranjpy        Fixed argv deletion bug on net-win32-smp.
460 06/08/2000      milind          sp3 version: changed optimization flags, which 
461                                 where power2 processor-specific.
462 06/20/2000      milind          mpi-* versions: Fixed ConverseExit since it was
463                                 not obeying the following statement in the MPI 
464                                 standard: The user must ensure that all pending
465                                 communications involving a process completes 
466                                 before the process calls MPI_FINALIZE.
467 07/05/2000      milind          Fixed a nasty bug in charmc in the -cp option. 
468                                 It used to append the name provided to -o flag 
469                                 to the directory provided to the -cp flag.  
470                                 Thus, -o ../pgm -cp ../bin options meant that 
471                                 the pgm would be copied to ../bin/.., which is 
472                                 not the expected behavior. This fix correctly 
473                                 copies pgm to ../bin.
474 07/07/2000      milind          Removed variable arg_myhome, as it was not 
475                                 being used anywhere, and also, setting it was 
476                                 causing problems of env var HOME was not set.
477 07/27/2000      milind          thishandle for the arrayelement was not being 
478                                 correctly set.  Bug was reported by Neelam.
479 08/26/2000      milind          Origin2000: Changed the page alignment to 
480                                 reflect the mmap alignment.  The mmap man page 
481                                 specifically states that it is not the same as 
482                                 page size.
483 09/02/2000      milind          Fixed a bug in code generated for threaded 
484                                 (void) entry methods of array elements. The 
485                                 dummy message that is passed to that method in 
486                                 a thread has to be deleted before calling the 
487                                 object method, because upon object method's 
488                                 return, the thread might have migrated.
489 09/03/2000      olawlor         Minor fix-fixes: 1.) Change to LBObjid hash 
490                                 function would fail for >4-int object indices.
491                                 Replaced with proper function, which also 
492                                 preserves the 1-int case.  2.) Array element 
493                                 sends must go via the message queue to prevent 
494                                 stack build-up for deep single-processor call 
495                                 chains. These might happen, e.g., in a driver 
496                                 element calling itself for the main time loop.
497                                 Messages are now properly noted as sent, then 
498                                 wait through the queue for delivery.  This 
499                                 entailed minor reorganization of the message 
500                                 delivery subsystem.
501 09/21/2000      olawlor         Tiny SMP thread fix-- registrations of a 
502                                 thread-private variable now reserve space on 
503                                 calls after the first.  This wastes space for 
504                                 multiple CthInitialize's-- it's a quick hack to
505                                 get threads working again on SMP versions.
506 10/16/2000      olawlor         A few CCS fixes:   -Added split-phase reply 
507                                 (delay reply indefinitely)  -Cleaned up error
508                                 handling -Pass user data as "void *" instead of
509                                 "char *"
510 11/03/2000      wilmarth        Removed 0 size array allocation in Charm++ 
511                                 quiescence detection.
512 11/20/2000      gzheng          Rewrote part of Fiber thread, including a bug 
513                                 fix for a the non thread-safe function, and a 
514                                 different fiber free strategy.
515 11/29/2000      gzheng          The LB init procedure tried to allocate 
516                                 65536*160 as initial size, which is 10M memory 
517                                 for communication table, which is too big. 
518                                 Cut it down to roughly 1M, and it can expand 
519                                 in later code.
520 12/05/2000      gzheng          In many cases, conv-host exits without print 
521                                 out the error message from remote shell. try 
522                                 to fix it by calling sync to flush the pipe 
523                                 before exit 1.
524 12/10/2000      milind          net-linux: Made static linking the default 
525                                 option because dynamic linking runtime causes 
526                                 isomalloc threads to crash.
527 12/18/2000      milind          Increased portability of isomalloc threads by 
528                                 removing dependence on alloca.
529 12/28/2000      milind          Fixed ctrl-getone abort bug on SMP.
530 12/28/2000      milind          Made _groupTable a pointer on which a 
531                                 constructor is explicitly called.  Since it 
532                                 was a Cpv variable, its constructor was not 
533                                 called by default in case of an SMP version.
534 12/29/2000      olawlor         Prevent infinite copy constructor recursion on 
535                                 Origin2000.
536 01/10/2001      olawlor         Added "explicit" keyword to remove ambiguity 
537                                 for KCC, which was confused by the private 
538                                 PUP::er(int) "cast" constructor and the operator
539                                 |(PUP::er &p,T &t) into rejecting all operator|
540                                 (int,int) as ambiguous.
541 2001/01/17      gzheng          fix the charmconfig bug on paragon-red: the 
542                                 failure testing of fortran won't stop the 
543                                 compilation.
544 01/20/2001      olawlor         Arrays reduction:  Fixed bug-- reduction may end
545                                 because all contributors migrate away. 
546 01/29/2001      olawlor         Fix heap-corrupting bug-- call ->init() on 
547                                 nodeGroupTable, which sets the "pending" 
548                                 message queue to NULL.  This prevents a nasty 
549                                 delete-unitialized-data bug later on.  Also 
550                                 delayed queue creation until messages actually 
551                                 arrive.
552
553 --------------------------------------------------------------------------------
554 Documentation Changes:
555 --------------------------------------------------------------------------------
556
557 01/31/2000      milind          Installation manual: Fixed bugs pointed out by
558                                 quantum TA
559 02/28/2000      wilmarth        Added a new look Charm++ manual.
560 06/20/2000      milind          Added pdflatex support to generate PDF versions
561                                 of manuals from LaTeX sources.
562 12/05/2000      milind          Added Orion's FEM manual. Converted from HTML.
563 12/10/2000      milind          Added pplmanual.sty for all manuals.
564 12/17/2000      milind          Added master-slave library documentation to
565                                 convext manual.
566 12/21/2000      saboo           Added DDT documentation.
567 01/02/2001      olawlor         Updated for new CCS version.
568
569 --------------------------------------------------------------------------------
570 Other Changes:
571 --------------------------------------------------------------------------------
572
573 10/24/1999      olawlor         charmc is changed to Bourne shell script 
574                                 instead of csh. All conv-mach.csh are
575                                 replaced by conv-mach.sh.
576 10/25/1999      olawlor         SUPER_INSTALL is converted to use bourne shell.
577 10/28/1999      milind          All Makefiles now take OPTS commandline
578                                 arguments.
579 01/16/2000      olawlor         Simplified Charm++ interface translator.
580 02/23/2000      ruiliu          Changed rand() calls from all over the codes
581                                 to the new Converse random number generator.
582 02/26/2000      milind          Simplified the converse scheduler loop by 
583                                 combining the maxmsgs and poll modes.
584 08/31/2000      milind          Imported system documentation into the CVS tree.
585                                 Also added super_install target for docs with 
586                                 necessary Makefile modifications.
587 09/08/2000      olawlor         Made soft links use relative pathnames instead 
588                                 of absolute.  This lets you move a charm++ 
589                                 installation without having to recompile 
590                                 anything.
591 09/11/2000      olawlor         Grouped commonly needed code in the new util
592                                 directory. Also, added pup_c a C wrapper for
593                                 puppers.
594 09/11/2000      olawlor         Slightly reorganized header structure.  Now no 
595                                 headers should need to be listed twice (once in
596                                 ALLHEADERS, again in CKHEADERS).  Now headers 
597                                 are soft-linked instead of copied.  This makes 
598                                 development much easier.  Added support for the
599                                 new Common/util directory.
600 09/21/2000      olawlor         Major reorganization of net-* codes. Now all 
601                                 the TCP socket routines are in separate files.
602                                 Also combined windoes NT code with unix codes.
603 09/21/2000      olawlor         Major rewrite of CCS-- underlying protocol is 
604                                 now binary (send/recv binary data everywhere); 
605                                 conv-host forwards requests to nodes; and 
606                                 source has been significantly re-arranged.  
607                                 (especially if NODE_0_IS_CONVHOST).
608 11/22/2000      milind          Removed IDL translator from distribution.
609 12/01/2000      olawlor         Renamed conv-host charmrun; added test for 
610                                 script conv-host. Also added charmrun for most 
611                                 other machines.
612 12/17/2000      milind          Moved List related data structures into 
613                                 cklists.h in util. Removed most of the redundant
614                                 list implementations.
615 12/20/2000      gzheng          SUPER_INSTALL: format the output of list of 
616                                 versions and make the help page fit into one 
617                                 page of xterm.
618 12/24/2000      milind          Added test-{charm,converse,ampi,fem} targets to 
619                                 super_install.
620 12/28/2000      milind          net-sol-smp now uses pthreads.
621 01/29/2001      olawlor         Merged windowsNT and unix build procedures by
622                                 basing the Windows build on cygwin. Added 
623                                 scripts to deal with unix and windows 
624                                 differences.