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