History for LAM/MPI =================== This file contains the main features as well as overviews of specific bug fixes (and other actions) for each version of LAM since version 1.0. 7.1.3 ----- - A number of man page cleanups suggested by Eric Raymond. - Search $PATH for tkill, in addition to the default install location and $LAMHOME/bin. Also, do not segfault if tkill is not found after searching all these locations. Thanks to Josh Lehan and Jeff Squyres for the patch. - Abort rather than hang if lamboot is unable to get the list of local network devices. - Fix for hangs in 64 bit builds on Mac OS X systems (Intel and PowerPC) - Correct check for localhost in hostfiles during lamboot to check for 127.0.0.0/8 instead of 127.0.0.1/32, to meet RFC 1700. Thanks to Martin Knoblauch for the patch. - Added support for Fortran types MPI_REAL{4,8,16} for predefined reduction operations supported by floating point types (MPI_MAX, MPI_MIN, MPI_SUM, MPI_PROD). - Fixed error in IB rpi that could cause compiler errors with some compilers. Thanks to Jens Klostermann for bringing this to our attention. - Fixed error with MPI_COMM_ACCEPT on Fedora 4 that would cause a "bad address error". Thanks to Orion Poplawski for the fix. - Renamed internal strtonum function lam_strtonum to avoid clashes with a function of the same name in FreeBSD. - Fixed installation issue on Cygwin when trying to make symlinks to executables (such as lamwipe -> wipe). - Fix bug with comments in hostfiles where a comment in the middle of a line would cause the entire line to be ignored. Thanks to Christian Siebert for bringing this to our attention. - Build the totalview queue debugging shared object as a dynamically loaded shared object instead of a shared library. Fixes an issue on Mac OS X where the TotalView library could not be found. - Cleanup restart logic in 'cr self' module. Add a bunch of documentation regarding this module to the man page, and user docs. Thanks to Jeff Squyres for helping in this effort. 7.1.2 ----- - Fix MPI_COMM_SPAWN problem with app schema info keys. - Fix assembly problem for AIX in 64 bit mode with usysv. - Fix bad cast in C++ bindings with MPI::Win::Create() that was causing an invalid MPI_Comm to be passed to the underlying MPI_Win_create() call. - Woarkaround for newer MVAPI implementations that call free() in VAPI_deregister_mr(), which was causing hangs in certain situations. As a result, sbrk() is not called with a negative value, so for a very small number of applications, memory usage might be slightly higher. - Fixed references to cr_base_dir in user docs -- the SSI parameters is actually cr_blcr_base_dir. - Fixed error that resulted in wipe not properly using the session directory prefix/suffix options. Thanks to Richard Winnett for bringing this to our attention. - Fix two errors in ptmalloc2 code. The "TSD hack" was not properly enabled, causing an infinite loop leading to a segfault. Also, we were not properly intercepting munmap(). - Fix a bug deep within MPI_INIT that prevented using IMPI. - Updated to GNU Libtool 1.5.22. - Add another setsid() in hboot to facilite working in SGE environments. - Fixed a command-line parsing problem with mpiexec. Thanks to Michael Lees for bringing this to our attention. - Renable a few virtual destructors in the C++ bindings. Thanks to Geoffrey Irving for pointing these out to us. - Updated to GNU Automake 1.9.6. - Don't add external declarations for the PMPI_W{TICK,TIME} functions if profiling isn't enabled. It appers that some compilers (g95) will try to resolve the symbols if they are prototyped. - Added work around for Apple's mis-interpretation of the use of semctl's 4th argument, as specified in IEEE Std 1003.1, 2004 Edition. Correct reading would say that the 4th argument when cmd is SETVAL should be the specified union, with the val having meaning. Apple interpreted it to mean the 4th argument should be an integer. There is significant difference on big-endian LP64 machines. Note that every other 64 bit big endian Unix (including Linux, Solaris, AIX, and IRIX) take the first interpretation. - Added support for Fortran types MPI_INTEGER{1,2,4,8} for predefined reduction operations supported by Fortran integer types (MPI_MAX, MPI_MIN, MPI_SUM, MPI_PROD, MPI_BAND, MPI_BOR, MPI_BXOR). - Fix problem where singletons and jobs launched via mpirun could not MPI_COMM_CONNECT / MPI_COMM_ACCEPT each other. Thanks to Lei@ICS for pointing this out to us. - Fix silly putenv() mistake in hboot.c. Thanks to Guillaume Thomas-Collignon for bringing this to our attention. - Work around bug in net/if.h header file on OS X 10.4 in 64bit mode that was preventing ioctl(..., SIOCGIFCONF, ...) from working. Thanks to the Apple engineering team for the suggestion. - Fixed corner case in the rsh boot SSI module where we were invoking .profile on the remote side for Bash shells, when it really wasn't necessary (because bash will invoke .bashrc automatically). - Properly handle MPI_*_NULL for the MPI_*_c2f functions. Thanks to Anthony Chan for bringing this to our attention. - Added missing MPI_ROOT definition to mpif.h.in. Thanks to Roland Krause for pointing this out. - Always populate mpirun's MPIR_proctable structure so that parallel debuggers can find all processes in the job. Previously, the table was only populated if mpirun was also starting a parallel debugger daemon on all the nodes (ie, -tv was given as an option to mpirun). Thanks to the Absoft engineers for bringing this to our attention. - Added access to the Fortran datatypes from the C mpi.h. Thanks to Anthony Chan for asking for this feature. - Change default behavior of lamhalt to wait until all lamds are dead before returning. Add "-i" (immediate) option that replicates older (deprecated) behavior -- lamhalt returns immediately, most likely before the universe is completely halted. Thanks to Pierre Valiron (and others who have previously run into this behavior) for shaming us into fixing properly. - Added some missing man pages to LAM tarballs (lamnodes, lamhalt). - Make the lack of a PATH environment variable in hboot not be an error. Thanks to Swan for pointing this out to us. - Added $LDFLAGS and $LIBS to various configure tests that link Fortran executables so that systems with icky Fortran installations can add additional linker flags / libraries. Documented that OS X Tiger (10.4) users should probably add LIBS=-lSystemStubs to their configure line because gfortran doesn't do it automatically, and not having it will cause several of our tests to [incorrectly] fail due to missing symbols. - MPI_GET_VERSION checked to see if MPI_INIT had already been called, which is erroneous (MPI-2, 3.1). Thanks to Dries Kimpe for bringing this to our attention. - Somehow the processing for lamboot's -b option was removed; fixed. Thanks to Davide Cesari for pointing this out. - Per advice from the ROMIO maintainers, remove some NFS locking tests from romio/configure. - Fixed a problem with the upper and lower bounds when creating DARRAY datatypes. Thanks to Florin Isaila for identifying the problem, and to George Bosilca for helping with the fix. - Fixed number of prefix 0's generated in SLURM host lists. Thanks to Dave Henseler for helping with the fix. - Fixed MPI_ALLTOALLW fortran wrapper. Thanks to Roderick Johnstone for supplying the fix. - Fixed a potential infinite loop in tkill if some system calls returned bogus values. - Make BSD systems have a default of "none" for the memory manager. Thanks to William Bierman for bringing this to our attention. - The SLURM boot SSI module help messages all accidentally had the wrong filename, so if anything ever went wrong, no help message would be printed. Fixed. - Workaround for a bug in some versions of gcc that masked the debugging definition of struct _proc, which caused problems when using the TotalView debugger. Thanks to Ilya Lashuk for bringing this to our attention, and for Josh the Etnus support engineer for suggesting the workaround. - Changed LAM Basic MPI_Bcast binomial tree algorithm to complete send to one process before starting the next send, resulting in much better performance in some situations. Thanks to Olaf Hartmann for both discovering the issue and supplying a patch. - Fixed bug in smp collective module that would cause corrupted collective operation if multiple communicators with different sizes were created. Thanks to Bob Felderman for help tracking down the issue. - Fixed bug that allowed multi-word $CC values to accidentally propagate to incorrect places (like WRAPPER_EXTRA_LDFLAGS). Thanks for Rodney Mach for identifying this issue. - Fix ROMIO test for Fotran linking convention on OS X by using nm instead of strings on that platform - Update to the Totalview docs for TV v6.6; thanks to the Etnus and Absoft support engineers who brought this to our attention. - Fixed problem with zero padding in Slurm host list parsing. Thanks to Stuart Watson and Bryan O'Sullivan for pointing this out to us. - Add support for BProc implementations without bproc_vexecmove support. Thanks to Massimiliano Fatica and Josh Lehan for supplying the patches. - Fixed bad egrepping in configure to snarf LDFLAGS and LIBS from generated Makefiles. Thanks to Ralf Wildenhues for finding and fixing this problem. - Fixed errors in pthread tests that could result in incorrect flags being set for threading when f77 is used for linking. Also fixed an error where the Linux pthreads test could give a harmless false positive - Converted IMPI coll module to coll API v1.1.0. - Fixed verbosity in coll selection to print the module that was selected, not the last module that was examined. - Fix problem with the usysv RPI on the Apple G5 platform. The G5 can reorder writes to improve memory performance, which was causing failures in the synchronization routines. Added "sync" instruction to force data / lock writes to be ordered. Thanks to Jacob Vos for bringing the problem to our attention. - Expanded ib RPI configure tests to look for vapi.h and the VAPI libraries in odd places for some IB implementations. Thanks to Greg Kurtzer for pointing this out. - Fix some forgotten / bit-rot compile errors in the impi coll module. Thanks to Luiz Angelo Barchet-Estefanel for pointing these out. - Set a number of LAM daemon sockets to be close on exec to eliminate wasted file descriptors in clients - Reordered tkill shutdown to better support platforms with /tmp in NFS. - Patch libtool to recognize Portland C compilers so that snarfing flags from libtool does the right thing in the MPI wrapper compilers. Thanks to Greg Kurtzner for pointing this out. - Fixed compile problem with recent gcc versions (missing #include in a really old source file). Thanks to Ryuta Suzuki and Tim Prins for bringing this to our attention. - Fix a problem with some ancient F77 compilers and remove all single and double quotes from mpif.h. Thanks to Arun Rodrigues (formerly of LAM/MPI fame) for pointing this out. - Fix a problem inadvertantly caused by bug 682: instead of trying to rectify crmpi modules that are sent by MPI processes to the spawning agent, simply disallow MPI_COMM_SPAWN'ed processes from being checkpointable. Thanks to ducong and Neville Lee for bringing this to our attention. - LAM no longer examines the (argc, argv) that comes in from MPI_INIT because it can cause problems in some scenarios. Thanks to Gareth Williams for pointing this out. - Fix an uninitialized variable that can cause seg faults in the rsh boot SSI. Thanks to Ricardo Pereira for pointing this out. - Re-enable stdin for rank 0; this was accidentally disabled in 7.1. Thanks to Carlo Carloni Calame for pointing this out. - Add a configure test for inet_ntop() in the slurm boot module so that environments that do not have that function (e.g., Cygwin) will not attempt to compile the slurm module. Thanks to Siegmar Gross for pointing this out. - Fix wrapper compiler LDFLAGS and LIBS. Thanks to Robin Humble for pointing this out. - Updated User Guide to clarify the ib RPI module scalability restrictions. - Re-enable a virtual destructor for MPI::Comm_null. Thanks to Fredrik Hedman for pointing this out. - Escape linker flags added to the wrapper compilers' LDFLAGS to support the OS X malloc intercept code with -Wl,. The XL compilers were getting confused by the -u _lam_darwin_malloc_linker_hack option when it was passed to them. - Add zsh to the list of shells that do not have the .profile script explicitly run for lamboot. This list includes csh-derived shells and bash, as both have a set of scripts run for non-interactive logins. - Fix missing space in test for the existance of a .profile script when using an sh-derived shell. 7.1.1 ----- - Upgraded to Libtool v1.5.8. - Added rpi_ib_mtu SSI param (see User Guide for more info). - Fixed minor problem with ib RPI startup code that prevented it from working on some vendor IB stacks. - Fixed problem with --export-dynamic showed up in the wrapper compiler underlying commands. Thanks to several LAM users who brought it to our attention. - Don't emit warning on stderr and abort if we get a permission denied when killing a process with tkill. If the lamd dies uncleanly, it is possible for another process (possibly with another user) to end up with that lamd's pid which will cause tkill to have problems later (if the pid is another users). Thanks to Phil Ehrens for bringing this one to our attention. 7.1 --- - Add the --with-memory-manager=external flag that allows LAM to be configured to allow external triggering of its sbrk() interception code. See the LAM/MPI Installation Guide release notes on Myrinet and Infiniband for more details. - Added first version of Infiniband RPI module (ib). - Fix a problem where $includedir/lam_config.h may end up with permissions affected by the installer's default umask instead of being set to 0644. Thanks to Ming Kin Lai for pointing this out, as well as various documentation fixes. - Added preliminary support for the upcoming BProc 4.0 release. Thank you to Luke Palmer and Daniel Gruner for helping test the changes. - Added ability for mpirun to start applications that have execute but not read permissions (thanks to dling@mtu.edu for pointing this out). Only works if the -s option is not given to mpirun. Also fixed path searching problem when ./test was specified as command to mpirun. - mpirun is now better about returning non-zero in the cases where the launched job aborts before calling MPI_INIT. - Add support for ptmalloc2 and Apple Darwin/OS X memory managers when catching deallocations for unpinning user memory. - Added possibility of using IMPI_HOST_NAME environment variable for external name publishing. Thanks to Alexander Inyukhin for contributing a path for this. - Fixed ordering of LAM_SESSION_SUFFIX and batch system ID evaluation when determining the session directory suffix. Thanks to Rich Drake for pointing out this problem. - Added collectives for inter-communicators. - Added SHMEM coll SSI module. - Add C++ constants MPI::ARGV_NULL and MPI::ARGVS_NULL - Added rpi_tcp_sockbuf and rpi_crtcp_sockbuf SSI params to set OS socket buffering sizes. - Added support for optional MPI datatypes MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4, MPI_REAL4, and MPI_REAL8. Added support for non-existant MPI datatypes (!) MPI_INTEGER8, MPI_REAL16. - Added boot_rsh_ignore_stderr SSI parameter for users too lazy to fix their "dot" files. :-) Thanks to Randy Bramley for suggesting this feature. - Added SLURM boot SSI module. - Added support for run-time dynamically loaded SSI modules. A LAM installation can therefore be extended by simply adding a shared library SSI module into a specific directory. - Various gm RPI fixes: - Added --with-rpi-gm-lib option to specify a non-default location for the GM library. Thanks to Tom Crockett for pointing this out. - Fix for incorrectly handling when gm dropped packets. Thanks to several LAM users pointing this out to us. - Performance improvements in the gm RPI; no more "short" message protocol -- only "tiny" and "long". - Added "fast" support for the gm rpi module, although it's unreliable for communication-intense applications (and therefore disabled by default). - Support for building the gm rpi module dynamically. - The gm RPI module now supports checkpoint/restart (must set the rpi_gm_cr SSI parameter to 1), but only when used with gm_get() (see below). - Enable experimental use of the gm 2.x gm_get() function for long messages when explicitly asked for with the --with-rpi-gm-get configure switch. - Added smp-aware collective algorithms for the following MPI functions: MPI_ALLGATHER, MPI_ALLGATHERV, MPI_REDUCE_SCATTER, MPI_SCAN. - Added new MPI functions: MPI_EXSCAN and MPI_ALLTOALLW. - Added the feature of preventing cascading of help messages (on a per helpfile basis). This feature can be turned off by setting the LAM_MPI_ALLOW_CASCADE_HELP environment variable. - Added "mpi_hostmap" SSI parameter to transform the IP addresses supplied by the LAM run-time environment to an alternate set of addresses that will be used for MPI communications. Thanks to Jean-Marie Teuler and Robin Humble for suggesting this feature. - Added option "-prefix " in lamboot and lamwipe to allow users to switch between LAM installations without having to modify their local environments. - Added "prefix" parameter for the rsh boot module boot schema files to allow users to specify different LAM installation paths on different nodes. - Added a new MPI_COMM_SPAWN info key (lam_no_root_node_schedule) to disallow processes to be spawned on the root node. - Wrapper compilers now do not add any additional flags unless there is at least one argv that does not begin with "-" (e.g., "mpicc -v" will not add any additional LAM/MPI-specific flags). - Added options:cxx_exceptions output in laminfo to indicate whether LAM was configured --with-cxx-exceptions or not. - Added -param option to laminfo to display available SSI parameters and their default values. - Added -showme:compile and -showme:link flags to the wrapper compilers for printing out the compiler and linker flags, respectively. For example "cc foo.c `mpicc -showme:compile`" and "cc foo.o `mpicc -showme:link` -o foo". - Renamed "wipe" command to "lamwipe" per request from the Mandrake Cooker team. The name "wipe" is now deprecated, and will be removed in some future release. - Added "lamcheckpoint" and "lamrestart" commands. These commands can be used to call the module-specific Checkpoint and Restart functions. 7.0.7 (unreleased; all changes included in 7.1) ----------------------------------------------- - Removed the reset of the MAKE macro in romio/Makefile.in that disallowed using a make other that what is found at configure time. Thanks to Richard Hadsell for tracking this down. - Fixed some missing header files that caused unresolved symbols on some platforms. Thanks to Richard Hadsell for tracking this down. - Added possitiblity of --without-exflags to force *not* using any special C++ exception compiler flags. Thanks to Richard Hadsell for pointing this out. - Fix man page sections. Thanks to Camm Maguire for pointing out these errors. - Only execute .profile if it exists in the rsh module. Thanks for the patch from Camm Maguire. - Fixed error in lamnet code used to find available interfaces when we don't pre-allocate enough space (on FreeBSD - thanks to Masakazu Higaki for pointing out this problem). 7.0.6 ----- - Fixed error in lamnet code used to find available interfaces when we don't pre-allocate enough space. - Fixed ordering of LAM_SESSION_SUFFIX and batch system ID evaluation when determining the session directory suffix. Thanks to Rich Drake for pointing out this problem. 7.0.5 ----- - Fix an obscure race condition that could occur if running in a LAM universe with more than 255 nodes. Thanks to Robin Humble for pointing this out. - Changed the lam-helpfile to correct the error in lamboot synopsis. Added '-s' and delineate the options -bdhHlsvVx. Thanks to Richard Hadsell for pointing this out. Also corrected all those cases where all options were lumped together. - Add fix to set TCP socket buffer size to run-time value of ssi_rpi_tcp_short / ssi_rpi_crtcp_short in all rpi modules, as relevant. - Fix minor prototype problem with lam_ksignal(). Thanks to Satya Gosula for pointing this out. - Make network interface code allow for arbitrary numbers of interfaces on the localhost. Thanks to Neil Storer for pointing this out. - Add dependant libraries for the PBS TM library on Solaris. Thanks to Tom Crockett for pointing this out. - Fixes to the SGE detection logic for the session directory. Thanks to the SGE Development Team for assistance with the correct logic. - Updates to documentation about Globus module. Thanks to Siva (sbandham) for pointing this out to us. 7.0.4 ----- - Update docs to reflect true behavior of LAM_MPI_SESSION_PREFIX. - Do not propagate LAM_MPI_SESSION_PREFIX via mpirun. Thanks to Andras Laszloffy for pointing this out. - Fixed crtcp rpi deadlock handling for deferred writes during a checkpoint in the presence of other blocking reads. - Better fix for libtool 1.5 broken icc -c/-o test; patch the generated configure script to remove the bad commands. - Fixed minor typo in blcr cr module configure scripts. 7.0.3 ----- - Minor fixes with bad printf() formats in the kenyad and blcr/crlam. Thanks to Paul Hargrove for pointing these out to us. - Workaround for libtool 1.5 bug with the Intel compiler (libtool didn't think that icc supported -c and -o at the same time). Thanks to Jon Bernard for bringing this to our attention. - Changed LAM_CONFIGURE_* macros from -D command line arguments to #define's to prevent problems with some compilers that don't like -D values with embedded spaces. Thanks to Harshu for bringing this to our attention. - Changed search order for Fortran compilers to look for GNU g77 before f77 so that the default matches the defaults for the C and C++ compilers. Thanks to Siegmar Gross for pointing this out. - Removed LAM_NEED_SYS_SELECT_H, instead including sys/select.h any time it is available. - Updated SYS V semaphore and shmem tests to check for functionality. Adds -lrt (Solaris) and -lcygipc (Cygwin) if needed. - Added configure switch --with-fd-setsize to increase the size of an FD_SET and increase the soft per-process file descriptor limit on platforms that support such things. This should allow larger TCP LAM jobs on platforms that support large FD_SET arrays. Be sure to read the release notes for your platform before using this option. - Fix issue with timeouts in the lamd's ACK code. It appears this was due to a longstanding confusion as to whether TO_DLO_ACK was in seconds or microseconds. 7.0.2 ----- - Fixed a problem in LAM's distribution scripts that accidentally left out the gm RPI from the 7.0.1 tarballs. 7.0.1 ----- - Added a workaround for Portland 5.0 C++ compiler bug in the C++ bindings. - Removed legacy function panic() because it conflicts with a function in OS X's system headers with the same name. - Fixed a problem with the sbrk() declaration in ptmalloc.c and the Portland C compiler. - Fixed a problem with the boot_rsh_agent SSI parameter not being recognized properly. Thanks to Andre Gosselin for pointing this out. - Fixed a problem with mpirun's default running with tracing enabled. Tracing is now only enabled if -t, -ton, or -toff is specified on the mpirun command line (see mpirun(1) for more information). Thanks to Thomas Klein for pointing this out. - Fixed a memory leak when freeing a datatype created by MPI_Type_create_hindexed. Thanks to Thomas Klein for bringing this to our attention. - Fixed a minor problem with the cr_base_dir SSI parameter. - Fixed a couple of problems with duplicate symbols on OS X when using the Fortran bindings. - Fixed thread configure tests to test a much wider variety of thread compiler and linker flags. - Ensure that relevant compiler and linker flags are propgated properly to SSI configure scripts so that we compile all of LAM with the same flags. - Added support for GM-2.x in the gm rpi module. - Removed errant "-" typo in MPI_Intercomm_merge. Thanks to Andrew Cunningham for pointing this out. - Minor #include fixes for FreeBSD 4.x. Thanks to Brooks Davis for pointing this out. - Made the tests for getsockopt() and recvfrom() more robust. - Fixed a problem with opening unix sockets with really long filenames (e.g., in PBS Pro environments). Thanks to Jon Bernard, Steven Wilson, and Lev Gorenstein for identifying the problem. - Add --with-romio-libs=LIBS to allow passing of arbitrary LDFLAGS/LIBS args down to the environment of ROMIO's configure script and also into the wrapper compilers. e.g., when building ROMIO with PVFS support, "-lpvfs" needs to be added in both places. Thanks to Randy Bramley and Cathy Yuan for pointing this out. 7.0 --- - Allow ROMIO to be built even if LAM is built with shared libraries. This is still experimental, but seems to work. - Allow the internal "name" (argv[0] to underlying MPI_Init) for FORTRAN programs to be overridden by the environment variable LAM_MPI_PROCESS_NAME. - Fixed file descriptor leak for non-MPI processes (and MPI procs that do not exit properly) in the lamd. Avoid passing stdin Trollius fd around, so that it doesn't get leaked. - Added mpiexec for portable MPI process startup (described in MPI 2 standard). mpiexec also has support for "one shot" lamboot, mpirun and lamhalt. - Restore umask to original value when launching application from the lamd, as the lamd runs with a umask of 077. - Updated ROMIO to v1.2.5.1. Revamped ROMIO configure/build process to be better integrated with LAM. - bproc boot SSI support added; can now lamboot on bproc clusters (still launches a lamd on every node). Added bonus that "mpirun [C|N] foo" will, by default, not run on the bproc head node. Thanks to Nicholas Henke for oodles of patches, development, and general advice. - lamnodes now reports per-node flags, such as "origin", "this_node", and "no_schedule". - Re-activated long-unused feature in LAM to not schedule MPI and serial processes on selected nodes. For example, you can lamboot on a head node and some compute nodes and have "mpirun C foo" only run on the compute nodes. - Added new laminfo command to get detailed information about LAM's configuration, including available SSI modules and their various version numbers. - Added support for attaching TotalView debugger to MPI processes launched by mpirun, including support for the partial-attach feature provided by TotalView. Also include support for examining messages queues. - Increased the number of MPI tags and communicator contexts available in all RPIs where this was possible (i.e., everything except lamd). MPI jobs that do not use the lamd RPI will now automatically get use of more MPI tags and simultaneous communicators. Additionally, increased the efficiency of the communicator context ID allocation algorithm (at the expense of communication efficiency during communicator construction). - MPI collectives have been SSI-ized. The LAM collective algorithms have been moved into a module named lam_basic. See lamssi_coll(7). - Try to use -pthread when compiling with POSIX threads and GNU compilers, since many Linux / BSD-flavored distributions include this flag in the local configurations. Failing that, fall back to -D_REENTRANT and -lpthread. Thanks to Todd Fries for the suggestion. - When the LAM daemon is killed by SIGTERM, it will gracefully kill all of its sub-processes, release all of its resources, and die nicely (as opposed to just dying). - LAM will use the $TMPDIR environment variable to determine where to create temporary files - Added "promiscuous" and "expected" modes for base SSI boot protocols, where connections are accepted from any IP address or only from the IP addresses listed in the boot schema, respectively. - The back-end process for lamboot (and friends) have been SSI-ized with the "boot" SSI kind. See lamssi_boot(7). Currently have two boot modules available: rsh (which also does ssh) and tm (for PBS). - Added the MPI-2 C++ bindings implementation for "MPI::Win". - Added --with-wrapper-extra-ldflags option to configure that parses the output of libtool to get the extra compiler/linker flags and put them into the wrapper compilers (e.g., shared library run-time search path). - The memcpy() in glibc performs poorly if the copy size is not divisable by 4. Added a workaround to significantly increase LAM's shmem RPIs and unexpected message buffering performance in these cases, as well as command line configure switches to enable/disable this behavior (--with-prefix-memcpy and --without-prefix-memcpy). Thanks to Dr. Dave Turner for identifying this problem and suggesting fixes. - Changed the bit mapping in error codes that are used in MPI because the field specifying the MPI function was only 8 bits, yet there are 300+ functions in MPI. This unfortunately changes the bit mapping of the errorcode argument in MPI_Abort; see the MPI_Abort(3) man page for more information. - Added functionality per MPI-2:4.8 -- attributes added to MPI_COMM_SELF will be deleted as nearly the first thing in MPI_FINALIZE, effectively allowing user-specified functions during MPI_FINALIZE. - Removed MPIL_Spawn (LAM-specific, pre-MPI-2 spawn call). - MPI thread support now MPI_THREAD_SERIALIZED. We don't enforce any distinction between FUNNELED or SERIALIZED, so it is possible to write a threaded application that runs fine on LAM but causes issues on other platforms. - Print out friendly error message from wrapper compilers if underlying compiler isn't found. - There are now lots of run-time tunable parameters for the various RPIs. See the lamssi_rpi(7) man page for a list of the tunable parameters that can be passed in to each RPI. - The first System Services Interface (SSI) kind has been added -- the RPI layers have been converted to SSI. Now all available RPI's are compiled in simultaneously and you can choose which to use at run-time. See the mpirun(1), lamssi(7), and lamssi_rpi(7) man pages. - Fixed a problem where if $prefix is /usr, hf77 would complain that it could not find the ROMIO and MPI-2 C++ libraries. This isn't too important for 6.6.x since we've totally re-written the wrapper compilers, but we record the bug fix anyway. Thanks to Trond Eivind Glomsrod for pointing this out. - Completely rewrote the Myri/gm RPI. It's smaller, faster, and generally mo' better. - Only install lam-bhost.def if one does not exist in $(sysconfdir). Thanks for Martin Siegert for the suggestion. - Renamed lam-conf.lam and lam-conf.otb to lam-conf.lamd and lam-conf.separate to make the meanings more obvious and less confusing with the corresponding lam-bhost.* files. Renamed lam-conf.lam to be lam-conf.example to make its purpose more obvious, and no longer install it under $(sysconfdir). - Added the MPI-2 C++ bindings implementation for "MPI::Info". - Make mpirun's error message about abnormal MPI process exit distinguish between deaths caused by signals and by deaths caused by abnormal exit statuses. - Added the "C++ only" datatypes specified in the MPI-2 standard: MPI_BOOL, MPI_COMPLEX, MPI_DOUBLE_COMPLEX, and MPI_LONG_DOUBLE_COMPLEX, as well as the built-in operands specified in the standard. Note that the complex types will *only* work if the implementation of complex allows casting to struct { float r ; float i; } ; (and likewise for double and long double). This seems to be the case everywhere we have seen. - Fixed a couple small problems that prevented running the lamd as a group of processes. Moved -b from $inet_topo to $socket_suffix in the lam-conf files. - Added version checking for applications - a nice error message will be printed if user runs under one version of LAM and has compile against some other version of LAM. - Added output of IP address to failure notice in mpirun (in addition to the node number, which only has meaning in that particular LAM run-time environment. Thanks to Matthias Troyer for the suggestion. - Add version checking into the LAM commands and MPI_INIT. If a user attempts to run a LAM or MPI program that does not match the version of the lamd that is running, a warning message will be displayed and the program will bail. - Able to finally remove the automake_bogosity.[c|h] files and extra noinst_HEADERS/noinst_PROGRAMS rules from various directories/Makefile.am's. - Add -nn and -np options to lamboot, recon, and wipe to prevent adding "-n" to the remote agent command line and to prevent the execution of $HOME/.profile on the remote side, even if the remote shell is Bourne. - In addition to the syslog, send lamd debugging output to the lam-debug-log.txt file in the LAM session directory. This is particularly helpful since many linux distributions do not allow normal users to view the syslog. - Related to the note below (LAM session directory located on a networked filesystem), add a workaround in the flatd when attempting to open a new flatd temp file in the LAM session directory with O_APPEND. If the first attempt to open a new file fails, try again without O_APPEND. - Pass "-d" to tkill during lamboot (through hboot) if lamboot was invoked with "-d". - Some fixes to the gm RPI, particularly with respect to allocating and freeing memory. - Add specific error message for the case where the gm RPI is unable allocate a gm port. This is much more helpful than an amorphous "something went wrong during MPI_INIT" message. - Robust-ized lamhalt such that it will timeout (after 15 seconds) if it doesn't receive all the HALT ACKs back that it thinks that it should receive -- and prints out an appropriate error message indicating which nodes it didn't get ACKs from. - Various minor improvements in the build system. - Integrated the C++ bindings into the configure/build system better. - Revamped the configure system for future extensibility. Updated build system to use Autoconf 2.52, Automake 1.5, and Libtool 1.4.2 (or higher). - Added a specific check to ensure MPI_INIT is not called after MPI_FINALIZE. This is a special case of the check that no MPI function was called after MPI_FINALIZE, as new users tend not to realize that you can't re-INIT a process. 6.6b1 ----- - Removed the LAM-version-checking code from the mpi2c++ bindings; they're really not necessary since we're inside LAM anyway. - Fixed ambiguity of RTF_KENYA flag being used for two purposes (forked from the kenyad and attached to the kenyad), and split it into RTF_KEYNA_CHILD and RTF_KEYNA_ATTACH. - Changed the behavior of the --with-rsh option in configure. Now, rather than always putting the full path in lam_config.h, it only adds the full path when an absolute or relative path was given (as opposed to just a binary name). - First public release of Myrinet/gm support in the gm RPI. - Fixed a problem where two different flags had the accidentally same value on a request, which lead to truncation errors in one-sided communications in lamd mode when the daemons were compiled separately. - Added better support to mpirun and the kenyad to catch when an MPI process dies without first detaching (i.e., calling MPI_FINALIZE). - Re-added hooks to create/remove the "impirun" sym link in $(bindir) during "make install"/"make uninstall". These were lost when we converted to an automake-style build. Thanks to Brian Vinter for bringing this to our attention. - Fixed a bug in dlo_inet in fault tolerant mode. On some OSes, recvfrom() can return ECONNREFUSED, which should not cause an abort in FT mode. Thanks to Pavel for the bug report. - Fixed a problem when a process sends a LAM signal to itself via kdoom(); the signal handler would erroneously get triggered twice. Thanks to Sethuram Rajamani for pointing this out. - Added the MPI_Info key "lam_spawn_sched_round_robin" on MPI_COMM_SPAWN to allow finer-grained control on the placement of spawned MPI processes without the need to write an app schema to a temporary file (and allows functionality that you can't really do with an app schema, anyway). See MPI_Comm_spawn(1) for more information on this key. - Renamed the MPI_Info key name on MPI_COMM_SPAWN "file" to "lam_spawn_file". Since it is a LAM-specific key, it should have a LAM-specific name. While the "file" key still exists for backwards compatability, its use is deprecated. - Added two predefined attributes on MPI_COMM_WORLD: LAM_UNIVERSE_NCPUS and LAM_UNIVERSE_NNODES. They return the number of CPUs in the current LAM universe and the number of nodes in the current LAM universe (respectively). Note that these values can be larger than their corresponding counts from the application's MPI_COMM_WORLD. - Increase the default optimization flags in configure to be -O3 for gcc/g++, -O for all other compilers. - Moved the handling of signals in user code from signal handlers installed by MPI_INIT to the lamd and mpirun. That is, the lamd will now detect that a process died due to a signal and send back that information to mpirun. mpirun will print out the appropriate error messages. This has the side effect of allowing the OS default signal handlers to be used in user programs rather than the LAM singal handlers. In at least some cases, this is a good thing -- some users want core dumps, for example. Two new options have been added to mpirun -- "-sigs" and "-nsigs", to enable / disable the LAM signal handlers from MPI_INIT . "-nsigs" is now the default, since the lamd/mpirun make these signal handlers redundant. However, "-sigs" will enable the old behavior for backwards compatibility. - Fixed a bunch of potential signed / unsigned comparison problems. This was a real bug in at least one case, which could effectively result in garbage being sent to the lamd, which would cause the lamd to eventually die. - Fixed up lamnodes to print more intelligible error messages when you specify an illegal node/CPU. - Ensure that the directory where the lamd named socket lives is not left around if you invoke a LAM command when there is no lamd running. Moved the function lam_rmdir() from tkill.c to share/etc/kill.c, and renamed it to be lam_rmsocknamedir(), and ensured that it is called when kinit() fails because there is no lamd. Thanks to Scott Morton for pointing this out. - Made LAM's signal handler a bit smarter by checking to see if it is already in ths signal handler. e.g., if a callback function has been registered via atexit()/onexit() and causes a seg fault after the signal handler has been triggered the first time, this can cause a loop of seg faults which is quite difficult to kill. LAM's signal handler will now detect this situation and gracefully abort(). This has come up before on the LAM list; the most recent was from Camm Maguire. 6.5.10 ------ - In the signal handler for the C++ test suite, use the POSIX function sigemptyset() to zero out the sa_mask instead of just assigning 0. This is necessary for the Linux icc (C++) compiler, which will generate an error if you try to just assign 0 (no valid constructor to cast from 0 to the appropriate type). Thanks to Jon Bernard for pointing this out. 6.5.9 ----- - Fixed behavior of hf77 (mpif77) to always -I$prefix/include, even when $prefix == /usr. This is different than hcc (mpicc/mpiCC), because the fortran compiler will not look in /usr/include by default, but the C/C++ compiler will. - Updated BSD4.4 file descriptor passing (again). Now have support for API defined in RFC 2292 (Advanced Sockets API for IPv6), as suggested by the Suse AMD Hammer team and implemented in 6.5.8 and the API defined in POSIX.1g, which is basically the support provided before 6.5.8. - Passed architecture of "freebsd" to ROMIO configure when building on Mac OS X or Darwin, removing the need for the -DNO_AIO hack. Thanks to the ROMIO team for the hint. - Cleaned up use and declaration of errno in LAM. There are no more extern int errno declarations. Files include either terror.h (which includes errno.h) or errno.h. - Added to share/etc/kill.c and otb/sys/flatd/flatd.c so that snprintf mapping to lam_snprintf would happen properly on architectures that do not have snprintf. - Changed --with-fc / $FC handling to allow passing of command line switches to propogate through to mpif77. This is the same behavior as --with-cc / $CC and --with-cxx / $CXX. Thanks to Mike Pacey for pointing this out. 6.5.8 ----- - Updated BSD4.4 file descriptor passing to fit expected use. Thanks to the Suse AMD Hammer crew for all the help. - Removed duplicate free in fortran SPWAN_MULTIPLE call 6.5.7 ----- - Removed some duplicate free's in fortran MPI calls. - Change LAM's registry to not depend on the O_EXCL flag to open(). Use an alternative locking mechanism if it is determined (at run time) that O_EXCL will not work in the LAM session directory. This can happen when the LAM session directory is on a networked filesystem. Thanks to Yusuke Tanimura for initially bringing the problems with having a LAM session directory on a networked fileystem (e.g., Linux NFS) to our attention, and the generous use of his cluster to figure out how to fix it. - Update for MPI 2.1 errata: MPI_GET_COUNT behavior with respect to 0 byte datatypes now returns 0 (vs. MPI_UNDEFINED) when 0 data bytes have been transferred. - Fix the lamd kernel to set the kill file to be close-on-exec so that it is not inherited by child processes (this can cause a problem during lamhalt if the LAM session directory is on NFS -- tkill will inherit the open file descriptor and then remove the file. NFS will then created a ".nfsXXXXX" cache file entry, which will prevent the removal of the directory). - Removed linking to the C++ bindings when using mpicc and mpif77 because this creates a problem when using gcc 3.0, and it doesn't make sense anyway. Thanks to Camm Maguire for pointing this out. - Fixed minor issue with show_help() that could cause problems for help messages with large numbers of arguments. Thanks to wierenga for contributing the patch. - Fixed a problem in the main lamd kernel on NetBSD where select() will zero out fd_sets even on "accepted" failures. Thanks to Tom Everett for access to a NetBSD machine to test on. - Fixed a problem in the kernel where we were assuming that all "ready" FDs in a set would be set in a select() was causing a file descriptor "leak" (it was cleaned up by lamclean) that would result in the inability to launch MPI jobs under Mac OS X. - Updated man page installation to not install man pages with conflicting names on file systems that are not case sensitive. - Removed use of .so nroff "include" directive in man pages; it didn't work on all platforms. Also updated some text in the mpicc and mpif77 man pages. - Changed name of binary for C++ compiler to mpic++. On most systems, there will be a symlink from mpiCC -> mpic++. On systems without a case sensitive file system (like HFS+ on Mac OS X), this symlink will not be created, as it conflicts with mpicc. - Add checks for if running under an LSF job, and automatically set the socket suffix to be the LSF job ID (a la how PBS jobs are already handled). - Fixed a problem where the IMPI client was not properly endianizing IMPI_CMD_FINI before sending it to the IMPI server. Thanks to Dzmitry Vadalazhski for pointing this out. - Fixed a problem where if $prefix is /usr, hf77 would complain that it could not find the ROMIO and MPI-2 C++ libraries. Thanks to Trond Eivind Glomsrod for pointing this out. - Fixed problem in lamopenlog(), where we passed a priority to openlog() instead of a level. Thanks to Martin-D. Lacasse for pointing this out. - In share/etc/kill.c, kill off LAM directory with rmdir(), not remove() - it appears that MacOS X will not allow remove() to be called on a directory. 6.5.6 ----- - Fixed a problem with mpi++.h in the Linux RPMs. - Fixed two typos in MPI_INIT that prevented MPI_F_DOUBLE_COMPLEX from being initialized properly. Thanks for Heinz Bast for pointing this out. - Fixed some name clashes with the Fortran interface when the linking semantics are FORTRANUPPERCASE. There is a name clash between some C and Fortran constants in this case. A longer discussion of the problem can be found in MPISYSF.h. In addition, reworked our Fotran alignment and data type size configure tests so that they work with Fortran compilers that actually have mixed case linking semantics - Worked around a bug in FreeBSD 4.2 with the CMSG_DATA macro. On FreeBSD, CMSG_DATA uses a macro named ALIGN, which was not included in the proper header files. We include sys/param.h if needed to make programs using CMSG_DATA link properly. - Added support for platforms without SysV semaphores. Configure will not allow selection of the SYSV or USYSV RPIs if on a platform without SysV semaphores. Edited share/etc/registry.c to remove all references to SysV semaphores if they don't exist. 6.5.5 ----- - Made IMPI extensions be part of the main distribution, but with them disabled by default. The whole division between the 6.4 series and the other [stable] LAM version was too confusing, anyway. HISTORY, INSTALL, and RELEASE_NOTES were updated -- their 6.4 counterparts were merged in and the originals removed from CVS. - Fixed some annoying ROMIO issues. - Fixed a problem that if --prefix was not specified to configure and lamtree was found in the $path, the prefix would be set to the directory where lamtree was found, not its parent. - Fixed a long-standing problem with 'localhost' appearing in boot schemas with multiple hosts. If the origin node in a boot schema resolves to 127.0.0.1 and there is more than one node in the boot schema, a warning is displayed and lamboot will not attempt to boot the cluster - Removed two sections of #undef's from share/include/MPISYSF.h that were mistakenly left in the FORTRANUNDERSCORE case which caused problems with some fortran compilers (e.g., Absoft). Thanks to Ricardo Fonseca for pointing this out. - Fixed bug in hcc that didn't check for ROMIO and MPI 2 C++ libraries when the prefix is /usr. Thanks to Jean-Baptiste Cazier for pointing this bug. - Found an obscure name clash with LAM's tputs() and termcap/ncurses. This has show up before on the LAM list (a long time ago) was was misdiagnosed. The problem is that some libreadline.so's are compiled with a dependency for libncurses. So even if you compile with "mpicc foo.c -lreadline", the linker will effectively translate this into "cc foo.c -lreadline ...LAM libs... -lncurses", which means that LAM's tputs() will get used instead of ncurses'. To fix the majority of these problems, tputs() was changed to a #define in LAM, and the function was renamed to be lam_tputs(). This won't work if the user includes (a trillium header file) and tries to call the termcap/ncurses tputs(), but I think the chances of that happening are pretty darn low. Thanks to Glenn Maynard for pointing this out. - Fixed a bug in snprintf.c where %c just didn't work. This was only a problem on platforms that don't have a native snprintf() function. Thanks to John Turner for pointing this out. - Fix a name clash between AIX 4.3.? and LAM -- change the ALIGNMENT macro to LAM_ALIGNMENT. Thanks to Jalel Chergui for pointing this out. - Added a fix for some OS's (e.g., RH 7.1) where the CMSG_DATA macro in socket.h (or wherever it is actually defined) is broken for non-gcc compilers. The fix is a test in configure.in and a workaround in share/etc/srfd.c. Thanks to many LAM users for helping to locate this bug. - Fixed a pair of bugs that were directly related to having a large number of nodes in the LAM universe. mpirun had some fixed length strings that would be overrun for large numbers of hosts with "mpirun C foo", and the protocol for ldogetlinks() (internal LAM call to obtain the routing table from the lamd/dlo) had to be redone to keep the message sizes beneath MAXNMSGLEN. See the comment in share/trillium/ldolinks.c. Thanks to Jeff Oishi for letting us use his big cluster to track down these bugs. - Changed the type of the first parameter to the C++ binding for MPI_Get_processor_name from (char*&) to (char*). - Fixed an issue in the MPI 2 C++ bindings where linking the mpi2c++.h file could result in the link pointing to the wrong directory during make install if DESTDIR is used. Thanks to Todd Fries for pointing this out. 6.5.4 ----- - Fixed problem with MPI_COMPLEX and MPI_DOUBLE_COMPLEX first posted by Richard Winnett. In an heterogenous environment, LAM was not properly byte-swapping the datatype. - Fixed problem with -lutil not being added to the arguments list passed by mpi{cc,CC,f77} to the underlying compiler when needed for pty support. Thanks to Gordon Gere for the inital post about the bug on the LAM mailing list. 6.5.3 ----- - The ROMIO library was being installed under the wrong name. This was a problem because mpicc/mpif77 check for the presence of the library before linking to them with -l. Hence, mpicc/mpif77 effectively ignored the ROMIO library, even if LAM was compiled with ROMIO support. Thanks to Jay for bringing this to our attention. - The LAM-specific MPIL_* man pages are now installed properly. Thanks to Aaron Fein for pointing out this problem. - Fixed some problems with ROMIO's build/installation procedure when using a VPATH build. libmpio.a was previously built in the source tree, not the build tree (among other things). - Fixed an issue with duplicate symbols when compiling either of the shmem RPIs as shared libraries with some linkers. Thanks to Ferenc Tamas Gyurcsan and Camm Maguire for pointing this out. - If $prefix is /usr and we're not building LAM, don't -I/usr/include and -L/usr/lib in hcc/hf77. This causes problems for some linux distrubitions, because it disrupts the natural search order of include/library directories (particularly when mixed with C++ header files). Thanks to Trond Eivind Glomsrod for pointing this out. 6.5.2 ----- - Fixed two problems in the ROMIO installation: 1) where all files under $prefix/lib would be set to permissions 0755, and 2) ROMIO was overwriting several LAM man pages (MPI_Info_* and two MPI_Type_* files). Thanks to multiple LAM users for pointing this out (tthomas and David Shattuck, especially). - Fixed a problem in the MPI-2 C++ bindings installation where mpi++.h could get linked to the wrong place under a certain set of circumstances. Thanks to Todd Fries for pointing this out. 6.5.1 ----- - Fixed a stupid configure test that prevented pty support from working properly under Linux. Thanks to JeongYeop Kim for initially pointing this out to us. - Fixed initializer for the MPI::DOUBLE_INT constant in the C++ bindings. Thanks to Gustavo Romero Lopez for pointing this out. 6.5 --- - Fixed problems on some OS's (cough cough HP-UX cough cough) where telling the kenyad to detach a process that was loaded via the flatd would try to call unlink() and fail becuase the process was actually still running (on most OS's this is fine). Now we defer the detach and unlink() procedure until the died catches the child's death. - Fixed problem with Fortran version of MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE. Thanks to John Pormann for pointing this out. - Added the environment variable LAM_MPI_SOCKET_SUFFIX that will allow the same user to run multiple lamd's on the same node. This is a generalization of the extension for PBS for the "overlapping LAM" problem. - Added a "-s" option to lamboot that will force the closing of stdout/stderr of the locally-launched lamd. Normally, the stdout/stderr of the local lamd is left open so that tstdio(3) will work properly. Using -s will break tstdio(3), but this isn't a great loss because most people don't use it anyway. :-) Using -s will allow things like the following to work: rsh somenode lamboot -s hostfile Since rsh waits for two conditions to complete: lamboot to finish, and stdout/stderr to close. Without -s, stdout/stderr would not close, and rsh would hang. Thanks to John Turner and Nina Thiessen for suggesting this. - Added man pages for all MPI-1 and MPI-2 functions. - Changed from the lamboot bootschema ":num" syntax to "cpu=num" syntax because of potential abbiguity problems with IPv6 addresses. This also changed the "username" optional argument to become "username=foo". Jeremiah Willcock donated the parsing code in share/boot/bhostparse.c for this. After a bunch of discussion, we preserved backward compatibility; if the first word after a hostname has no "=" in it, it is treated as the username. - Fixed a problems on BSD machines where ROMIO incorrectly used the preprocessor symbol PVFS to determine if the PVFS filesystem was installed or not. On BSD machines, PVFS is #define'd to some kind of priority in ; it has nothing to do with whether the PVFS filesystem is installed or not. So all instances in ROMIO were changed to ROMIO_HAVE_PVFS. - MPIL_Spawn (which is deprecated, anyway) and MPI_Comm_spawn (when used with an appschema) did not automatically export LAM_MPI_* environment variables. This has been fixed. - Fixed error code reporting and problems with the root rank still using maxprocs when the MPI_Info key "file" was used. Thanks to Le Dinh An for pointing out this problem. - Added some more example programs: alltoall (C), pi (C and fortran), and ring (C). - Added more tests to the lamtests package. Also added ability for user to setenv CFLAGS and LDFLAGS to pass in arbitrary flags to the compile/link process. - Gave ROMIO the ability to set the number of bytes received in a LAM MPI_Status object. Otherwise, calling MPI_Get_count on a MPI_Status that was returned from a ROMIO function would give erroneous (random!) results. Thanks to Nina Thiessen for bringing this to our attention. - Fixed a crazy error that only seems to happen on AIX 4.3.3 that has to do with blocking vs. non-blocking sockets in the TCP RPI's (and the others that derived from the TCP RPI). fcntl() didn't seem to work properly when attempting to switch between blocking/non-blocking modes on the socket, so ioctl(fd, FIONBIO, &flag) is now used on systems where FIONBIO is defined (seems pretty portable, though). Note that there are other places where we use fcntl() -- they may need to be updated to ioctl/FIONBIO as well. Thanks to Shahryar Nikandish for pointing this out, and the cast of thousands who helped resolve it (literally; there were too many people and too many e-mails to list here). - Added the use of the openpty() for -pty support to mpirun under Linux. - Added prototypes for MPI_Op_f2c and MPI_Op_c2f in (they were missing). Thanks to Anthony Chan for pointing this out. - Fixed some environment variable issues in hboot, lamboot, recon, and wipe. Thanks to William Yu for pointing this out. - Sped up lamboot, recon, and wipe by removing frequently-unnecessary second rsh (used to determine if the user has the bourne shell, in which case .profile must be executed manually). This can be invoked with the "-b" option to lamboot/recon/wipe. Bourne and Korn shell users (*not* including bash users) cannot use the "-b" switch. - Added XMPI_Buoy(), XMPI_Coloron(), and XMPI_Coloroff() functions for additional XMPI control. See their respective man pages for details. - Added some missing quotes in lamtests/make-defs that prevented the tests from running under some picky shells. - Change to print entire error messages out in stderr, not just the top and bottom bars, or the potential "I can't find the help file" message. Thanks to Karganov Konstantin for pointing this out. - Fixed some 64-bit casting issues in share/etc/ttime.c (i.e., MPI_WTIME); probably not strictly necessary, but it can't hurt. Thanks to Jeff Bachtel for pointing this out. - Moved the LAM version number to $top_srcdir/VERSION, and trigger share/include/mpif.h and share/include/patchlevel.h from it. patchlevel.h is only left there for third party tools that use it to determine LAM's version number. - Closed duplicated unix file socket descriptors when the lamd forks off a new process (e.g., via mpirun). This wasn't technically a leak, since it didn't introduce any new file descriptors into the OS, but it wasn't Right, either. - Added more verbose error messages for errors during MPI_INIT, particularly those dealing with the lamd. Made the routines for finding the helpfile a bit more robust, particularly in pathalogic situations. - Caused fortran versions of MPI_INIT and MPI_INIT_THREAD to forge argv[0] so that libraries like MPE have some nice program name to generate output files to. Thanks to Anthony Chan for pointing this out. - Ensured that all files used internally by LAM are opened with secure permissions (i.e., don't rely on the user's umask). And since some OS's (cough cough Solaris cough cough) don't want to abide by the umask when one opens a named unix socket, moved all LAM internal/temporary files to their own locked directory. - Added a small bit in mpi.h to ensure that LAM_BUILDING is always defined before we use #if !LAM_BUILDING and it is not defined, gcc 2.95.2 will give a warning if you compile with -Wundef. Thanks to Frits Kuijlman for pointing this out. - Added some syslog calls to the lamd when launched via "lamboot -d per suggestion from Balasubramanian Sundaram. Messages are logged with a LOG_INFO severity. - Fixed logic with --with-rsh when used with non-absolute filenames. Thanks to Frits Kuijlman for pointing this out. - Made "there is no lamd running" error messages more user-friendly and descriptive. Applied these messages to all the LAM/MPI executables and to MPI_Init. - Added some ACK code to share/etc/srfd.c to fix a race condition on some operating systems (e.g., SCO) such that sending file descriptor messages to another process could get buffered and then discarded (before the receiver got the messages) when the pipe was closed. Making the sender wait for the receiver's ACK solves this problem. Thanks to Keith Pereira for a **large** number of e-mails to figure this problem out. - Changed LAM_CHECK_PROTOS to use $CPPFLAGS instead of $CFLAGS. In some cases, this would pass things like "-O" to /lib/cpp, which would abort and therefore configure would think that the prototype did not exist (regardless of whether it did or not). Thanks to Chan Siu Pang for pointing this out. - Add -DSVR4 to CFLAGS when compiling under SCO. Thanks to Keith Pereira for pointing this out. - Fixed some race conditions in share/boot/inetexec.c that sometimes caused lamboot to fail seemingly without reason. It was really due to a mixture of bad logic dealing with stderr closing, or select() getting interrupted by SIGCHLD (i.e., the child died before all the output was read), and we forgot to check for EINTR. Oops. Thanks to Eray Ozkural and Camm Maguire for initially pointing this out (http://www.jp.debian.org/Bugs/db/65/65795.html), and big thanks to John Bartelt and Seth Hettich for both finally figuring out what the problem was and providing patience and a test bed to get the code "just right". - Made some changes to the build/run process in the lamtests suite to make it much easier to run with a different implementation of MPI. - Changed some MPI_Send/MPI_Recv pairs in the lamtests suite to MPI_Sendrecv. It seems that some users are using the lamtests suite for other MPI implementations (MPICH/gm), and they were deadlocking (assumedly, MPICH/gm has a pretty small "small" message size). Thanks to Troy Baer for pointing this out. - When checking the value of MPI_TAG_UB in the lamtests, if you're not using LAM/MPI, it now only prints a warning if the value that is obtained is not what is expected. Gotta love that LAM_MPI preprocessor symbol! Thanks for Troy Baer for pointing this out. - Fixed what looked like a simple problem in tping (it wasn't) where the wrong number of nodes would be printed for various node specifications on the command line. - Added/cleaned up some man pages, specifically with respect to new commands, deprecated commands, etc. - Fixed problem with --with-lamd-* parameters not getting propogated down to their respective .c files correctly. - Fixed problem in lamhalt to repeatedly use nid_get() instead of ldogetlinks() so that lamhalt will operate properly when a lamd prematurely dies (provided that lamboot was invoked with the -x fault tolerance option). - Removed -Wall from ROMIO's configure when on Linux (it didn't check whether the compiler was gcc or not; it was simpler just to remove it altogether). - Moved lam_init_comm_world from share/mpi/init.c to share/mpi/laminit.c to avoid duplicate symbols when "-lpmpi -lmpi" and using both names MPI_Init and PMPI_Init in a single program. Thanks to Anthony Chan for pointing this out. - Added the necessary magic to the "make dist" mojo to automatically create man pages and stick them in the distribution. Thanks to Bill Gropp and the MPICH team for providing the handy program to make the man pages, the initial formatting, and some of the initial text in the MPI-1 man pages. - Fixed type in configure.in/acconfig.h that didn't pass the value of LAM_HAVE_SVR4_FD_PASSING to share/include/lam_config.h properly. Thanks to Keith Pereira for pointing this out. - Fixed buffer overflow in mpirun that could happen if length of all command line arguments to be passed to ranks was too long. - Changed the checks for "-lsocket -lnsl" from architecture-dependant stuff to use the real AC_CHECK_LIB tests. Thanks to Keith Pereira for pointing out that other OS's besides Solaris require "-lsocket -lnsl". - Changed some paramter types from (char), (short), and others to (int)/(unsigned int) in varargs situations since C promotes all arugments to integers anyway. Thanks to Trond Glomsrød for pointing this out. - Added uninstall target to ROMIO. - Updated INSTALL reflect the fact that ROMIO does not obey configure's --foo switches regarding specific directory placement (e.g., "--libdir"). The ROMIO authors have been notified of this issue. Thanks to Trond Glomsrød for pointing this out. - Ditch mktemp in favor of mkstemp because of a possible race condition in mktemp (thanks to the OpenBSD gcc for pointing this out. :-) - Make singleton init processes start with the RTF_MPIC2C flag, mainly so that they can MPI_Comm_connect/MPI_Comm_accept to most processes launched by mpirun (which are -c2c by default). Thanks to Scott Wilcox for pointing this out. - Changed MPI_Initialized to always return 1 after calling MPI_Init, per MPI-1.2 (instead of returning 0 after calling MPI_Finalize). Thanks to Jeremiah Willcock for pointing this out. - Added MPI_Finalized. - Expanded error message for calling MPI functions before MPI_Init, and added error message for calling MPI functions after MPI_Finalize. - Changed some of the lamtests to alloc memory from the heap and not try to statically allocate it on the stack. Thanks to James Lupo for pointing out that this had problems on at least Alpha/OSF 4.0a. - Added some missing MPIL_ #defines for profiling. - Added MPI_Alloc_mem and MPI_Free_mem, mainly in anticipation of their use with the Myrinet and VIA RPIs. - Added optional RPI calls _rpi_c2c_alloc_mem and _rpi_c2c_free_mem to support MPI_Alloc_mem and MPI_Free_mem. If the RPI does not supply them, they will be wrappers to malloc() and free(). - Changed share/mpi/lamcid.c to maintain a bitmap of used communicator IDs. Still use the "take the highest unclaimed CID" algorithm, but when we COMM_FREE a communicator, we set the corresponding bit to 0. Hence, you can reclaim CIDs, particularly for 3rd party libraries that make a bunch of communicators and then free them all. Thanks to Ed D'Azevedo for pointing this out. - Had to add some automake_bogosity.h files in random places around the LAM source tree so that "make depend" would work properly (they have no other purpose. This is a problem with automake 1.4 -- hope it gets fixed in automake 1.5. - Similarly, there are a few automake_bogosity.c files around the tree for similar reasons (library linking is broken in automake 1.4 unless there is at least one .c file -- hope that this, too, gets fixed in automake 1.5). - Fixed sfh_sock_open_clt_unix_stm() to not loop upon ECONNREFUSED or ETIMEDOUT to fix "hang" behavior on Linux when invoking a LAM command with no lamd running (thanks to Joe Griffin for pointing this out). - Fixed overlapping errno/LAM error numbers and strange behavior of strerror() on Linux in terror.c routines. - Moved all RPI code into its own subdirectory tree (share/rpi), and made each RPI be its own convenience library (sort of). This greatly cleaned up the automake ugliness of getting the RPI code to be selected by configure and yet compile into the same library (while still doing dependencies properly). - Added check in configure for , and appropriate #if statements in various .c files (thanks to Dave Hassett). - Added --with-romio-flags switch for configure (thanks to Christophe Prud'homme for requesting this). - Added 2 patches to ROMIO distribution from http://www-unix.mcs.anl.gov/romio/patch.html; one for a seg fault in collective reads and writes, another for a problem with the pvfs implementation (thanks to Christophe Prud'homme for pointing this out). Added romio/README_LAM to note which ROMIO patches have been added. - Added some (void*) casting magic to eliminate some compiler warnings and [unlikely] potential problems on 64 bit problems. - Ensured that compiler flags from configure get passed down to the examples (a helpful LAM user pointed this out, but I've lost his name!). - Fixed a gradual memory leak in various MPI_*_c2f functions -- the fortran handles were never freed in the corresponding MPI_*_free functions (thanks to Richard Day for pointing this out). - MPI_Request_c2f just didn't work; fixed (thanks to Richard Day for pointing this out). - Fix problem in MPI_Info_get where valuelen Now we *really* fixed it, by reserving events 0x40000000 and above, as well as all negative events (negative events were already reserved) for nsend and friends. This will only affect people using the API below MPI (i.e., native LAM stuff). Also, all the events in changed; this definitely breaks backwards binary compatability (although I think it's already broken because of CPU counts during lamboot, for example). - Fix for "Interrupted system call" errors during process startup. - Can specify a hostname more than once in a boot schema, or have ":num" suffix on a hostname, where "num" is a number specifiying how many CPUs are available for use on that host. If the ":num" suffix is not used, ":1" is assumed. If a hostname is listed more than once, the CPU count for that host is incremented by the CPU count on that line. This is particularly useful in batch systems (e.g., PBS), where the hostfile provided by the batch may list a hostname more than once (indicating mulitple CPUs have been scheduled for the job). --> This comment is somewhat superceded by a comment above -- changed away from the ":num" syntax to a "cpu=num" syntax. - Per above bullet, introduced "C" and "cX" notation in mpirun and appschemas. "mpirun C foo" will run one instance of "foo" on every available CPU. "mpirun c0-3 foo" will run one instance of "foo" on CPUs numbered 0 through 3. Ranks in MPI_COMM_WORLD will be adjacent on machines with multiple CPUs. For example, 2 on 4-way SMPs, "mpirun C foo" will place ranks 0-3 on n0, and 4-7 on n1. - -np now also schedules per CPU (vs. per node). So if you have lambooted on 2 4-way SMPs and "mpirun -np 6 foo", ranks 0-3 will be on n0, and 4-5 will be on n1. - MPI_UNIVERSE_SIZE will now report the total CPU count, not the total node count. - Re-discovered MPI_Info key for spawn: file. Allows users to pass in an appschema. This has existed for some time, but was not documented. - Changed spawn and spawn_multiple to pass along LAM_MPI_* (and associated) environment variables automatically. Necessary for doing unique unix socket names in batch environments, actually. - Added "lamnodes" command to retrieve hostnames from LAM nX nomenclature. - Added "lamhalt" command to shut down LAM. This command replaces the "wipe" command (we've always hated that name, anyway!). lamhalt does not require a boot schema (hostfile) to shutdown LAM, and is much faster than wipe. Everyone should use lamhalt instead of wipe. - Fixed "overlapping LAM" problem for batch systems. When running under a batch system (PBS is currently the only one supported), LAM will now use the batch job ID as part of the local unix socket names in /tmp. This allows the scheduler to place multiple LAM/MPI jobs from the same user on a single node (e.g., for SMP runs) without hosing any previous instances of the LAM daemon. - Make wrapper compilers handle -lpmpi properly. Still need to manually specify -lpmpi for ROMIO jobs. - Updated MPI 2 C++ to verson 1.0.6. - No longer install all the Trillium .h files by default. They are not required for correct MPI use (which is the vast majority of LAM/MPI usage, anyway), and can cause name conflicts in the $(includedir). The --with-trillium configure flag is provided to still install these files, if desired. - Build the profiling layer in MPI by default (ROMIO works nicer that way, actually). Added --without-profile configure switch to turn it off, but it will complain/barf if you do --with-romio (default) and --without-profile. - Made builds of ROMIO and MPI-2-C++ a bit more robust from the top -- won't reconfigure/rebuild every time you "make". - Fixed share/args/snprintf.c and share/tstdio/tprint.c to have a few casts when dealing with varargs kinds of things; allows LAM to compile under LinuxPPC (thanks to Tom Rini). - Made lamd default values --with switches to configure, and moved them to acconfig.h, instead of having -D switches to the compile line. - Made -DSHORTCIRCUIT the default, moved it to acconfig.h instead of a compile line switch. - Updated ROMIO to version 1.0.2, and made --with-romio the default. - Renamed all LAM libraries to have a "lam" prefix (except libmpi.a and libpmpi). Consolidated all auxilary LAM libraries into liblam.a. Fixed up wrapper compilers to match. - Improved some of the error/help messages in mpirun. - Moved default location of installed schema files to $prefix/share/lam/. - Moved default location of installed lam-helpfile to $prefix/share/lam/lam-helpfile. - The values from configure that were put in share/include/rpi.*.h are now put in share/include/lam_config.h. Fixed some problems with those substitutions, too. - Renamed share/h to share/include (finally!). - Used automake's integrated libtool functionality to build everything. - Fully automake-ized the build process; now we have separated "make all" and "make install" (finally!). Also have VPATH build ability (which took a lot more effort than it should have!). - Added note in lam_printfunc() that the rank displayed is relative to MPI_COMM_WORLD. - Fixed MPIL_Spawn to use the new startup protocols (thanks to Gyurcsan Ferenc Tamas). - Updated config.guess and config.sub from the latest autoconf distribution (2.13) to recognize a few more flavors of Linux (thanks to Camm Maguire). - "-pty", pseudo tty support, is now on by default. Use "-npty" to disable 6.4a8 (6.5.1) ------------- - NOTE: This marks the end of the 6.4 series. All future IMPI HISTORY items will be in the main [stable] 6.5 series, starting with 6.5.2. - Critical bug fix, corresponding to LAM 6.5.1 6.4a7 (6.5) ----------- - Fixed issues with overtaking messages/violations of MPI's message ordering guarantee when you mix long and short messages with the same signature through the IMPI host. Thanks to CQ from HP for pointing this out. - Fixed problem with DATASYNC and SYNCACK pings from the impid to the LAM rank potentially getting mixed up. Thanks to CQ from HP for pointing this out. - Changed IMPI hiwater/ackmark behavior to adhere to the new specs in the errata IMPI version 0.0 (i.e., one global hiwater/ackmark, not per host pair). - Ditched the "-" in the 6.4a4 version number. Makes it easier for the distribution generating scripts. :-) - Automatically export IMPI_* environment variables from mpirun to the running jobs - Fixed some endian problems between machines with opposite endians. - Added functionality for MPI_Barrier, MPI_Reduce, and MPI_Allreduce. - Automake-ized along with the rest of LAM (6.5). - Fixed numerous endian problems in the IMPI client code in the impid. - Added four predefined keys on MPI_COMM_WORLD: IMPI_CLIENT_SIZE, IMPI_CLIENT_COLOR, IMPI_HOST_SIZE, IMPI_HOST_COLOR, per IMPI standard Section 2.5. 6.4a4 through 6.4a6 ------------------- - Internal releases. Minor compile/testing issues fixed, nothing really of interest. They were only separate releases so that they could be shared with external parties. End results are discussed in 6.4a7 section, above. 6.4-a3 (6.3.2) -------------- - Critical bug fix, corresponding to LAM 6.3.2. 6.4-a2 (6.3.1) -------------- - Only the following MPI communications functions are supported in IMPI jobs: MPI_Send*, MPI_*send*, MPI_Recv*, MPI_*recv* MPI_Wait*, MPI_Test* MPI_Barrier - No IMPI-wide collectives other than MPI_Barrier have been implemented. - IMPI communicator attribute colors (per IMPI 2.5) are not implemented. - First release to the world. 6.4-a1 ------ - Internal ND IMPI release, separate from the stable LAM series. Too ugly to talk about. :-) 6.3.2 ----- - Fixed syncronization issues with sysv and usysv RPI's that could cause corrupted data on a reciever. 6.3.1 ----- - Discovered/worked around bug in autoconf such that AC_PROG_CC blindly changes the value of CFLAGS. 6.3 --- - Updated the MPI-2-C++ package to version 1.0.5. - Added LAM_MAJOR_VERSION, LAM_MINOR_VERSION, LAM_RELEASE_VERSION constants (both in C and Fortran) to allow checking of versions of executables and libraries, etc. Particularly for the case where users have old copies of mpif.h in their cwd and wonder why LAM/MPI seems to stop working when they upgrade. 6.3-b3 ------ - Fixed problem in share/mpi/accept.c and share/mpi/connect.c where connect.c wasn't calling nrecv() for the right node; it incorrectly used nh_node to identify the sender. Fixed the sender to put its nodeid in nh_data[0] so that we can properly identify the sender. - Added some more LAM_ZERO_ME's into the lamd. - Fixed up the distscript.csh to also create .bz2 versions of LAM tarballs (thanks to Nicholas McGuire). - Fixed problem where $(CFLAGS) and $(FFLAGS) were not getting used when building the "trivial" example. - Fixed obscure problems with data packing -- discovered via the ScaLAPACK test suite (thanks to Camm Maguire). - Renamed the drop-in replacement for snprintf() to be lam_snprintf(). This should fix some of those seg faults on OS's that claim not to have snprintf(), but really do (only matters when printing diagnostic and help messages). - Fixed problem with fortran attributes in deprecated function MPI_ATTR_GET in 64 bit environments per MPI-2 section 4.12.7. 6.3-b2 ------ - Fix MPI_Cart_sub for case where remain_dims array is all falses. - Found obscure race condition in lamd, in which a read from unallocated error, if timed badly (really -- don't ask) would cause Bad Things (otb/sys/filed/fqsimplex.c:fqrmfd()). - Fixed some small (but addative) memory leaks in the lamd. - Added some --with-purify things to the lamd to aid in debugging. - Changed the type of ki_jobid to be struct jobid_t, which contains 2 int4s: the PID and the nodeid. This allows using the full size of the PID, and avoids only using the lower 15 bits of the PID (which was causing problems on some OS's). mpirun (and all other job-launching files) were changed to accomodate this. - Check for snprintf prototype in ./configure so that we can be -Wall clean - Added endian swapper for the mandelbrot example for the rasterfile file header, so that little endian machines can dump out a proper sun rasterfile. - Added "'s in the hcp script so that we can have multi-word C++ compilers and not crash the hcp script (doh!). - Made LAM and MPI 2 C++ bindings -Wall clean (can't speak for ROMIO, but their next release should be much cleaner), and *wow* were there many warnings in the lamtests package... - Fixed slight spec bug in MPI::Get_error_string(), as pointed out by Bill Gropp. - Verified LAM in 64 bit (Solaris 7); added docs to advise users who want this to use --with-cflags='-xarch=v9' --with-ldflags='-xarch=v9' (in addition to any other flags that they want). - Moved all the getsockopt/setsockopt stuff into a single file. - Somehow the sysv RPI got eliminated from the list of valid RPI's to use the SHORTCIRCUIT optimization. Put it back in configure.in. - Put in fix for the shared memory RPIs to take care of the case where the processes sharing a shared memory area happen to map it in at different base addresses. Have seen this a few times on a multi-processor Sun E6000. - Added extra strings to the lamboot/wipe banners indicating if IMPI, C++, and/or ROMIO support was compiled in. - Had to do some major cleanup in the C++ bindings to meet new Solaris Workshop C++ compiler pickyness. (void*) is evil!! Also had to extern "C" {} signal handlers and other C intercept functions. - Added "#define LAM_MPI 1" to , for those users who need to differentiate between different implementations of MPI. - Made ./configure much more C++ friendly (in preparation for IMPI) - Fixed problem in MPI_Accumulate where user's buffer was erroneously being freed (or attempting to be freed) -- just like the MPI_Put error that was fixed for 6.3-b1. - Added missing lam_resetfunc() in shortcircuit MPI_Recv. - Implicitly add "." to PATH on local/remote nodes so that we can do "mpirun N foo", even if "." is not in your path on the remote nodes (this mainly applies to the global filesystem case). - Added LAM_ prefix to all preprocessor symbols that the user could clash with that are not directly from autoconf. - Added "-d" debug message in lambootagent.c for showing exactly what is being executed on the local node (the message was already there for remote nodes; we missed the local message somehow). - Added IMPI source code to tree, but disabled it for LAM distribution tarballs (makes it much easier on us developers!). - Various enhancements to Makefile structure; use centralized permissions, etc. - Smarter treatment of perror() in hcc/hf77 -- only call it if return status of underlying compiler != 0 and errno != 0. - Fixed up bunches of memory leaks in MPI_Comm_spawn* (is it *that* obvious that we're working on IMPI?) - Fixed bug in MPI_Comm_spawn*; app schema environment is now set to a dummy (empty) environment rather than NULL. - Fixed bug in MPI_Comm_spawn*; maxprocs and array_of_errcodes is now broadcast to the non-root nodes (even though this doesn't make sense; MPI-2 88:13 says that maxprocs is only significant at the root, but it says that array_of_errcodes is significant everywhere). So this is MPI-2 conformant, but nonsensical. - Made changes to make "mpirun N foo 'a b'" to do the Expected Thing -- that the launched processes will get "a b" as argv[1], not "a" as argv[1], and "b" as argv[2]. - Changed all uses of "rm/cp" in Makefiles to use the install-sh script - Added check in configure to see if OS defines int2, uint2, int4, uin4, int8, uin8, float4, and float8 before definiting them in LAM. - Stopped making link from $prefix/include/mpi2c++/mpi++.h to $prefix/include, both in Makefile.in and mpi2c++/Makefile.in (updated mpi2c++ CVS tree as well). Caused confusion in include files, because doesn't include , it only includes . - Fixed some g++ -Wall minor warnings in the C++ bindings (it didn't like the order of initializers in some constructors). Also updated in the MPI 2 C++ CVS tree. - Fixed subtle problem with using MPI_PROC_NULL when using non-blocking communication (such as Sendrecv). - Removed ZERO_ME from lamreqs.c:_mpi_build_req() that was masking some illegitamte RUI's (such as the MPI_PROC_NULL problem) - Fixed bizzarre snprintf error for arches/compilers that don't have a native snprintf (some didn't like the snprintf() wrapper to va_snprintf -- go figure). - Fixed error message (for stderr output) in share/boot/inetexec.c. - Changed hcp to search for hcc in LAMHOME, TROLLIUSHOME, $prefix, and $PATH (in that order) rather than just use $prefix. - Made configure fail when it can't find a fortran compiler when compiling with fortran support. Previous screwy logic made it warn, not fail. - Fixed an inconsistency in share/tstdio/tfprint.c with varargs; made tvsprintf() and tvfprintf() have same non-K&R arg lists as all the other functions. 6.3-b1 ------ - Changed default prefix to be /usr/local/lam-VERSION - Made be conditionally included (HP 10.20 doesn't have one) - Fixed problem in MPI_Put where user's buffer was erroneously being freed (or attempting to be freed) - Fixed minor memory leak in MPI_Finalize to free user errorhandlers on MPI_COMM_WORLD and MPI_COMM_SELF, if they existed - Added stolen IBM MPI test suite to CVS tree; this makes a separate tarball (lamtests-VERSION). Cleaned up the tests to be bcheck -all clean. - Added ability to export environment variables; all variables named LAM_MPI_* are exported by default (but can be disabled by mpirun), and via the -x option to mpirun. Many more details in CVS logs. - Changed behavior of -D in mpirun -- do chdir after the fork but before the exec in the lamd so that when the user's application starts, it is already in the "right" directory (i.e., it doesn't have to wait for MPI_INIT). - Added pty support. Still experimental (sort of), so it's not the default in mpirun (yet). Many more details in CVS logs. - Fixed MPI 2 C++ bug (here and in MPI 2 C++ CVS repository) where $prefix directories, if created, could get incorrect Unix perms - Made distscript much more friendly and useful; we now distribute a tarball with the internal LAM .h dependencies already generated - Fixed a duplicate/bad free in share/mpi/c2cbuf.c:_cbuf_delete() for Issend's to MPI_PROC_SELF that had not yet had a matching receive posted - Fixed some places in share/mpi/rpi.*.c:connect_all() where some OS's getsockopt may not set the parameter properly, causing a "read from uninitialized" error - Fixed small memory leaks in share/mpi/rpi.*.c:connect_all() - Added --with-ldflags ./configure flag; changed Makefiles (i.e., the LIBBIND macro) to use USER_LDFLAGS instead of CFLAGS. - Fixed subtle bug in share/mpi/c2cbuf.c that would effect a duplicate/bad free in special case optimization for unmatched issend's in TCP RPI - Made wipe now use the default boot schema ($LAMHOME/boot/bhost.def) if you do not specify a on the command line (just like lamboot) - Updated many man pages; added mpicc.1, mpiCC.1, mpif77.1, lamd.1, lam-helpfile.5, conf.5 - Added -H and V options to wipe for symmetry with lamboot - Added a warning in RELEASE_NOTES that MPI_CANCEL does not cancel (or even attempt to cancel) sends (and the web pages) - Added more debug messages to recon, lamboot, wipe, tkill, and hboot. Made existing verbose messages more descriptive; added suggested solutions to common problems when errors occur (prints messages from the ASCII help file) - Added an ASCII help file to store common error messages - Added --with-purify configure flag - Added ROMIO (from http://www-unix.mcs.anl.gov/romio/) - Added MPI 2 C++ bindings - Added ability to mpirun non-LAM programs. This rocks. - Renamed all variables that were named "new" (still can't compile LAM with a C++ compiler, but it's a start) - Fixed problem with Sun Workshop compiler not getting prototypes - Renamed $LAMHOME/h directory to be $LAMHOME/include (with a symbolic link to "h" for backward compatability) - Top level "examples" target to build LAM, MPI 2 C++, and ROMIO examples - Changed docs to reflect correct e-mail addresses - Fixed up examples codes to reflect new order of arguments in boot schemas - Fixed fortran compiler problems in ./configure; ensured that --with-fc will propogate the fortran compiler to hf77, etc. - Fixed warnings and __STDC__ strangeness with Sun Workshop compilers in the tstdio varargs functions - Changed wrapper compilers to -I/-L/-l ROMIO and C++ bindings stuff - Changed default make target to compile LAM and C++ bindings, as well as perform "make depend" if necessary. - Added compiling the LAM specific ROMIO as a configure option. - Fixed subtle problem with logic in mreadv and mwritev where iov could end up pointing beyond its allocated memory - ./configure now bails when common utilities (e.g., ar) are not found - Removed mpicc/mpif77, made them symbolic links to hcc/hf77 (respectively), and created mpiCC which is a sym link to hcp - Wrapper compilers now get compilers that are set/used in ./configure - Made -lmpi implicit in wrapper compilers - Merged some makefiles to make "tags" and "cscope" targets in main Makefile (for development) - Changed the assignment of elements to/from a struct status to be a bit more portable (especially for the Portland Group's C/C++ compiler) - Changed MPI_MAX_NAME_LEN to MPI_MAX_PORT_NAME to comply with MPI-2. - Made errget.c increment the error handler's refcount. - Made MPI_Wtime and MPI_Wtick real4 instead of double precision in mpif.h. - Moved #include before #include in /share/mpi/lamsig.c and otb/mpirun/mpirun.c 6.2b ---- - New user level locking shared memory RPI transport. - Special case fast send and receive. - Signal catching to aid the termination of batch jobs. - Full standard conforming support for dynamic processes. - Limited support for MPI_2 one-sided communication. - Many MPI-2 support functions implemented. - More basic datatypes supported. - Support for shared libraries on Linux and Solaris. - Various small bug fixes. *** With the release of LAM 6.2b, we have moved to CVS for version *** control. Accountability for individual changes is now stored in *** the CVS logs. Everything above this line in this file shows the *** "main" features, changes, and bug fixes. Everything below this *** line reflects the manual log of changes up until this point. AUTHOR DESCRIPTION ------- ------------------------ GDB Greg Burns VAR Vibha Radiya NJN Nick Nevin RBD Raja Daoud JRV Jim Vaigl AKP Andy Pfiffer (Informix) DLF Dave Fielding (Cornell) MB Moshe Braner (Cornell) JRB Jim Beers (Cornell) VSD Vibha Dixit (OSU) RBD Raja Daoud (OSU) RYL Roslyn Leibensperger (Cornell) RKM Raghu Machiraju (OSU) STATUS DESCRIPTION rel release point fix fixed bug mod upgrade/change/modification bug outstanding bug with previous release 6.1 --- DATE AUTHOR STATUS DESCRIPTION 11/27 rel LAM 6.1 12/3 NJN mod Use ndi_parse1(). (share/boot/asc_parse.c) 12/6 NJN fix Extra includes needed for SunOS. (share/h/ksignal.h, rpisys.h) 12/12 NJN mod Set exit status to LAM_EEXIT in case of a LAM specific error. (lib/otb/t/etc/panic.c, fail.c, otb/lamclean/lamclean.c) 12/13 NJN fix Static modifier for f2c_argvs(). (share/mpi/f77/spawnmult_f.c) 12/13 NJN fix Static modifier for private function. (otb/mpirun/mpirun.c) 12/13 NJN fix Don't use strerror(), its not available under SunOS 4.1.3. (share/mpi/sysvslop.c) 12/27 NJN mod Do reversal inline. (share/etc/rev.c) 2/13 NJN mod Clean up buffers last. (otb/lamclean/lamclean.c) 1/27 NJN fix Flush standard IO. (share/kreq/kexit.c) 1/27 NJN fix Flush IO before replying to parent process to avoid a race between finishing mpirun and seeing the output. (otb/sys/kenyad/pqdetach.c) 1/27 NJN fix Semaphore locking operation must be retried if interrupted. (share/mpi/shm.sysv.c, share/h/shm.sysv.h) 1/27 NJN mod Locking macro name changes. (share/h/shm.sysv.h, shm.sgi.h, shm.hpux.h, shm.sol.h, share/mpi/shm.low.c) 1/27 NJN mod New datatype flags for packing control. (share/h/mpisys.h) 1/27 NJN mod Alignment macros. (share/h/mpi_types.h) 1/28 NJN fix Blocking time determination for blocking writes. (share/mpi/tcp.low.c) 2/24 NJN mod Rearrange includes to support direct copying of dungeon files into XMPI source tree. (share/h/all_list.h, app_mgmt.h, app_schema.h, args.h, blktype.h, lamnet.h, mpitrace.h, ndi.h, share/args/all_argv.c, ndi_parse.c, share/etc/all_list.c, blktype.c, getworkdir.c, stoi.c) 2/24 NJN fix Show progress in blocking probe. (share/mpi/shm.low.c) 2/24 NJN mod New element counting function. (share/mpi/getelem.c) 2/24 NJN mod Compute count directly. (share/mpi/getcount.c) 2/24 NJN mod Use improved determination of when packing is unnecessary. No longer calculate counts. (share/mpi/lambuf.c) 2/24 NJN mod Revamped packing/unpacking. Optimizations for vectors. (share/mpi/lampack.c, lamunpack.c) 2/24 NJN mod Bound calculation etc. now done in lam_dtblock(). Set packing and extent adjustment flags. (share/mpi/tvector.c, thvector.c, tstruct.c, tindex.c, thindex.c, tcontig.c) 2/24 NJN mod Count determination is now always deferred. (share/mpi/lamreqs.c) 2/24 NJN mod Optimize datatype copy. More rigorous datatype bounds calculation. Set extent adjustment flag. (share/mpi/lamdtype.c) 6.0 --- DATE AUTHOR STATUS DESCRIPTION 3/3 rel LAM 6.0 3/5 NJN fix Don't error check insignificant arguments. (share/mpi/gather.c, gatherv.c, scatter.c, scatterv.c) 3/6 NJN fix MPI_ERROR declaration inserted. (share/h/mpif.h) 3/12 NJN fix Typos in the defintion of FORTRAN interface to LAM extensions to MPI. (share/h/MPI.c) 3/12 NJN fix Linux does not support setting socket buffer sizes. (otb/sys/dli_inet/di_bootagent.c, di_bootcmd.c, otb/sys/kernel/kernelio.c, lib/otb/t/kreq/clientio.c, share/mpi/rpi.c2c.c) 3/13 NJN fix In C predefined attributes are pointers to the actual values rather than the values cast to pointers. In FORTRAN they are the values themselves. (share/mpi/init.c, MPI.c, share/h/mpisys.h) 3/13 NJN fix Datatype extent calculation and upper/lower bound determination overhauled. 3/13 NJN fix Non-blocking communication with peer MPI_PROC_NULL leads to segmentation fault. 3/20 NJN fix Typo in graph topology copying. (share/mpi/cdup.c) 3/20 NJN fix Persistent bsends not flagged as orphaned. (share/mpi/lamsend.c, lamreqs.c) 3/27 NJN fix State hanged when mpirun -w was waiting on a process that had not properly exited. (otb/sys/kenyad/pqdetach.c) 3/27 NJN mod Do an MPI_Finalize() for processes that neglect to do so themselves. (share/mpi/laminit.c) 3/27 NJN fix MPIL_Comm_gps() semantics extended to intercommunicators. (share/mpi/mpil_id.c) 4/12 NJN bug Recon should give a better error message when tkill cannot be found and when a host cannot be found (should report the name). 4/18 NJN fix In struct iovec field iov_base may be of type void *. (share/etc/mrw.c, share/mpi/rpi.c2c.c) 4/29 NJN fix Request status not properly initialized for buffered and non-blocking sends. (share/mpi/lamreqs.c, ibsend.c, bsendinit.c) 4/29 NJN fix Clash between MPI_CANCEL_SOURCE and MPI_PROC_NULL. (share/h/mpisys.h) 4/29 NJN mod Lam_rtrstore now in libetc and not libtrillium. 5/1 NJN fix PMPI_Type_size prototype. (share/h/mpisys.h) 5/21 NJN fix lamtrace -h and the usage line said -s when the option is really -R. Add to usage. (otb/lamtrace/lamtrace.c) 5/29 NJN fix tkill -N killed the daemons. (tools/tkill/tkill.c) 6/11 NJN fix Initialize bmalloc to FALSE in rload(). (share/trillium/rload.c) 6/11 NJN fix Clear RTF_FLAT. (share/mpi/mpil_spawn.c) 6/12 NJN fix When tping is not supplied with any nodeids on the command line set errno to EUSAGE. (otb/tping/tping.c) 6/25 NJN fix Test index first to avoid illegal reference. (trillium/otb/sys/kenyad/kenyad.c) 6/26 NJN mod Split into part that does actual free and MPI function part. (share/mpi/tfree.c, cfree.c) 6/26 NJN mod Use 'const char *' rather than 'char const *'. (share/tstdio/tfprint.c) 7/10 NJN mod Use initialized flag to avoid getpid() syscall. (share/mpi/laminited.c) 7/10 NJN mod Made variables global to allow macro versions. (share/mpi/lamupdown.c) 7/15 NJN mod Option -showme for seeing command line run. (tools/hcc/hcc.c, tools/hf77/hf77.c) 7/25 NJN mod Initialize IO node. Add IO daemon to boot table. (otb/sys/lamd/kiproc.c) 7/25 NJN mod Set IO node. (lib/otb/t/kreq/clientio.c, share/kreq/kinit.c) 7/25 NJN mod New flags for stdio redirection. (share/h/kio.h) 7/25 NJN mod New event for IO daemon. (share/h/events.h) 7/25 NJN mod IO redirection support. (otb/mpirun/mpirun.c) 7/25 NJN mod Pass file descriptor to interrupt function. (otb/sys/kernel/kernelio.c) 7/26 NJN fix Check sockname() return value. (lib/otb/t/kreq/clientio.c) 7/26 NJN mod Make Trollius stdio one way. (otb/loadgo/loadgo.c, share/kreq/kinit.c) 7/28 NJN mod New function kio_intr_clr(). Clears kernel interrupt function. (otb/sys/kernel/kernelio.c) 8/10 NJN mod Support for job identifier. (share/trillium/rpcreate.c, otb/sys/kenyad/pqcreate.c, share/kreq/kinit.c, lib/otb/t/kreq/clientio.c, share/trillium/rpgo.c, share/h/kio.h, share/h/preq.h, otb/mpirun/mpirun.c) 8/19 GDB bug In lam_kexit(), _cio_cleanup() is called outside the check for initialized LAM process. Why? This does not seem right. 8/23 NJN fix Add NOBUF flag. (share/trillium/ldolinks.c) 8/23 NJN mod Connect UNIX stdio to iod. (share/kreq/kinit.c) 8/24 NJN mod Show file open count in fstate output. (otb/fstate/fstate.c, share/freq/rfstate.c, share/h/freq.h) 8/26 NJN fix Plugged memory leak. (share/mpi/cfree.c) 8/26 NJN fix Added handling of MPI_SHORT_INT by the MAXLOC and MINLOC reduction functions. (share/mpi/lamreduce.c) 8/27 NJN mod IO daemon now closes LAM stdio for remote processes. (share/freq/rfatexit.c) 9/13 GDB bug Get rid of (errno = 0) in getrtype() in getrent.c. It sucks and we don't need the "dumb route" for LAM. (share/rreq/getrent.c) 9/15 GDB fix Use argvadd() in argvdup() to create a consistent malloc() pattern for argvfree(). (share/args/all_argv.c) 9/16 NJN fix Add definition of _ufd. (otb/sys/lamd/kiproc.c) 9/17 NJN fix Fully parenthesize macro arguments. (share/h/all_list.h) 9/18 NJN fix Pass parent root to spawned processes. (share/mpi/mpil_spawn.c) 9/23 NJN mod Return undefined if not integral number of elements. (share/mpi/lamunpack.c) 9/25 NJN mod Support for name publishing. (share/traced/trbuf.c) 10/2 NJN mod In F77 case pass pointers to attributes and add error code argument. (share/mpi/attrdel.c, attrput.c) 10/14 NJN mod Split F77 wrappers into separate files. (share/mpi/f77/*) 10/14 NJN mod Don't reset the SIGCHLD handler. POSIX.1 says it is not reset to default when the handler is entered. We are using sigaction() which is POSIX.1 so it should be safe to assume POSIX.1 semantics. (otb/sys/kenyad/pqdetach.c) 10/16 NJN mod Improved FORTRAN datatype support. (share/h/mpi.h, share/h/mpif.h, share/h/mpitrace.h, share/etc/mpiformout.c, share/mpi/lamtrace.c, share/mpi/finalize.c, share/mpi/lamdtype.c, share/mpi/lampack.c, share/mpi/lamreduce.c, share/mpi/init.c, share/mpi/lamunpack.c, share/mpi/f77/init_f.c) 10/17 NJN fix Comparsion must return weakest of two group tests for intercommunicators. (share/mpi/ccmp.c) 10/21 NJN mod Use Software for Humanity. (tools/hboot/hboot.c) 10/22 NJN mod Use new error string function and be thread nice. (share/mpi/errstring.c) 10/23 NJN mod If comm is null default to MPI_COMM_WORLD. (share/mpi/lamupdown.c) 10/23 NJN fix Check for NULL handle. (share/mpi/f77/errset_f.c) 10/23 NJN fix Check for user argument > communicator size. (share/mpi/cartmap.c) 10/23 NJN mod Return already inited error on MPI_COMM_WORLD. (share/mpi/init.c) 10/24 NJN fix Fix calculation of rank in new group. (share/mpi/ginter.c, gdiff.c, gexcl.c) 10/30 NJN mod Set node list to 0 and let asc_schedule() take care of it. (share/mpi/spawn.c, spawnmult.c) 11/8 NJN fix Commutative ops require buffering and correct ordering of the reduction. (share/mpi/scan.c) 11/13 NJN fix Take care of alignment of user supplied buffer. (share/mpi/lambuf.c) 11/14 NJN mod Do RPI mop up. (otb/sys/kenyad/pqdoom.c) 11/14 NJN bug Cannot do in place btye swapping when packing. We may get segfault if buffer is in read only store which can happen with some Fortran compilers when contants are passed as arguments to procedures which then use the formal parameter as a buffer in a MPI call. 11/17 NJN fix Move global variables to laminit.c so they do not get doubly defined when using the profile library. (share/mpi/init.c) 11/24 GDB mod Set up 0/1/2 on remote nodes as /dev/null. (otb/sys/filed/filed.c, fqopen.c, fqsimplex.c) 11/27 GDB fix Calling lamd_findfwd() means that something advanced. Return accordingly from lam_testany(). (share/mpi/rpi.lamd.c) Additional notes for 6.0: Tue Nov 26 15:46:23 1996 Nick Nevin * share/mpi/rpi.lamd.c (lamd_findfwd): Pass pack movement indication from lamd_adv1(). Sun Nov 17 14:30:54 1996 Nick Nevin * share/mpi/init.c: Move global variables to laminit.c so pdo not get double defined when using profile library. Fri Nov 15 10:48:30 1996 Nick Nevin * lib/otb/t/etc/ieee.c: Removed #ifndef SCO test. Thu Nov 14 14:55:33 1996 Nick Nevin * otb/sys/kenyad/pqdoom.c (pdoom): Do RPI mop up. * otb/sys/kernel/kernelio.c (kio_init): Free kill file name. Wed Nov 13 10:36:47 1996 Nick Nevin * share/mpi/lambuf.c (lam_bufattach): Alignment. Fri Nov 8 10:39:54 1996 Nick Nevin * share/mpi/scan.c (MPI_Scan): Commutative ops require buffering and correct ordering of the reduction. Wed Oct 30 13:01:01 1996 Nick Nevin * share/mpi/spawn.c (build_app): * share/mpi/spawnmult.c (build_app): Set node list to 0 and let asc_schedule() take care of it. Thu Oct 24 10:10:46 1996 Nick Nevin * share/mpi/ginter.c (MPI_Group_intersection): Fix rank in new group calculation. * share/mpi/gexcl.c (MPI_Group_excl): Fix rank in new group calculation. * share/mpi/gdiff.c (MPI_Group_difference): Fix rank in new group calculation. Wed Oct 23 09:22:25 1996 Nick Nevin * share/mpi/cartmap.c (MPI_Cart_map): Check for #procs > communicator size. * share/mpi/f77/errset_f.c (mpi_errhandler_set_): Check for NULL handle. * share/mpi/lamupdown.c (lam_errfunc): If comm is null default to MPI_COMM_WORLD. * share/mpi/init.c (MPI_Init): Return already inited error on MPI_COMM_WORLD. Tue Oct 22 10:33:00 1996 Nick Nevin * share/mpi/errstring.c (MPI_Error_string): Use new error string function and be thread nice. Mon Oct 21 20:40:47 1996 Nick Nevin * tools/hboot/hboot.c (main): Use SFH. Thu Oct 17 09:53:45 1996 Nick Nevin * share/mpi/ccmp.c (MPI_Comm_compare): Comparsion must return weakest of two intercommunicator tests. * share/h/mpi.h, share/h/mpif.h, share/h/mpitrace.h, share/etc/mpiformout.c, share/mpi/lamtrace.c, share/mpi/finalize.c, share/mpi/lamdtype.c, share/mpi/lampack.c, share/mpi/lamreduce.c, share/mpi/init.c, share/mpi/lamunpack.c, share/mpi/f77/init_f.c: Revamped F77 datatype support. Mon Oct 14 11:45:29 1996 Nick Nevin * otb/sys/kenyad/pqdetach.c (childtrap): Don't reset the SIGCHLD/ handler. POSIX.1 says it is not reset to default when the handler is entered. We are using sigaction() which is POSIX.1 so it should be safe to assume POSIX.1 semantics. Wed Oct 2 06:54:27 1996 Nick Nevin * share/args/do_args.c: Include string.h. * share/args/pdi_parse.c (id_range): * share/args/ndi_parse.c (id_range): * share/args/parse_id.c (id_range): Accept ranges where end is same as start, e.g. n1-1. * share/mpi/attrdel.c (MPI_Attr_delete): Errcode is argument in F77 case. * share/mpi/attrput.c (MPI_Attr_put): In F77 case pass pointers to attributes. Errcode is argument. Tue Oct 1 14:54:32 1996 Nick Nevin * share/mpi/finalize.c (MPI_Finalize): Clean up published names. * share/trillium/rtrname.c (lam_rtrnamesweep): New function. Wed Sep 25 14:02:38 1996 Nick Nevin * share/traced/trbuf.c (trqnameget): New function. (trqnamedel): New function. (trqnamepub): New function. * share/trillium/rtrname.c: New file. LAM name publishing library functions. * share/h/terror.h: Added publishing error codes. * share/etc/terror.c: Added publishing error codes. * share/trillium/rtrget.c (rtr): Fix comment. Tue Sep 24 09:23:36 1996 Nick Nevin * share/mpi/init.c (init_comm): * share/mpi/mpil_spawn.c (MPIL_Spawn): * share/mpi/grincl.c (MPI_Group_range_incl): * share/mpi/ginter.c (MPI_Group_intersection): * share/mpi/gunion.c (MPI_Group_union): * share/mpi/spawn.c (MPI_Spawn): * share/mpi/iccreate.c (MPI_Intercomm_create): * share/mpi/gincl.c (MPI_Group_incl): * share/mpi/gexcl.c (MPI_Group_excl): * share/mpi/gdiff.c (MPI_Group_difference): * share/mpi/connect.c (MPI_Connect): * share/mpi/accept.c (MPI_Accept): Reference count processes. * share/mpi/gfree.c (MPI_Group_free): Free processes in group whose refcount falls to zero. Mon Sep 23 11:17:53 1996 Nick Nevin * lib/otb/t/kreq/clientio.c (_cio_init): GER on by default. * share/mpi/lamunpack.c (lam_docount): Return undefined if not integral number of elements. * share/mpi/init.c (init_comm, init_intercomm): Update process reference counts. * share/h/rpisys.h: New reference count field for processes. Wed Sep 18 08:52:28 1996 Nick Nevin * share/mpi/mpil_spawn.c (spawn): Pass parent root to spawned processes. * otb/mpirun/mpirun.c (set_stdio): Use ufds 0, 1, 2. * share/freq/lfopenfd.c (lam_lfopenfd): No longer take ufd array as argument, use ufds 0, 1, 2. * share/mpi/infocreate.c: New file. * share/mpi/infodup.c: New file. * share/mpi/infofree.c: New file. * share/mpi/infoget.c: New file. * share/mpi/infogetnkeys.c: New file. * share/mpi/infogetnth.c: New file. * share/mpi/infogetvlen.c: New file. * share/mpi/infoset.c: New file. * share/mpi/spawn.c: New file. Implements MPI_Spawn. * share/trillium/rpgo.c (rpgo): Do file descritpor passing. * share/trillium/rploadgo.c (rploadgo): Check for spawning. * share/mpi/init.c (MPI_Init): Use parent root. * share/mpi/laminit.c (__lam_linit_): Return parent root if any. * share/mpi/mpil_signal.c (MPIL_Signal): Fix return from rpdoom error. * share/mpi/mpil_spawn.c (locate_aschema): New function. No longer use app_locate(). * lib/otb-obj/mpi/Makefile: Define DEFPSCHEMA. Tue Sep 17 01:33:43 1996 Nick Nevin * share/etc/mpitr_dtype.c: Split into mpitr_dtype.c and mpitr_dtprint.c. * share/etc/mpitr_dtprint.c: New file. * share/h/all_list.h (al_top, al_bottom): Fully parenthesize arguments. Mon Sep 16 15:44:34 1996 Nick Nevin * share/mpi/lamclocks.c (sync_fill): New function. Use SQL synch to avoid clash with mpirun/xmpi. * otb/sys/lamd/kiproc.c: Add defn. of _ufd. Thu Sep 12 10:10:57 1996 Nick Nevin * otb/tping/tping.c (main): Set errno to EUSAGE. * otb/lamtrace/lamtrace.c (main): In usage description -s changed to -R. * lib/otb/t/etc/socket.c: New file. Socket utilities. * lib/otb/t/etc/srfd.c (sfh_send_fd): New file. File descriptor passing. Wed Aug 28 13:17:49 1996 Nick Nevin * otb/sys/dli_inet/di_bootagent.c: Use sfh. Tue Aug 27 08:53:53 1996 Nick Nevin * share/freq/rfatexit.c (rfatexit): IO daemon now closes LAM stdio for remote processes. * share/trillium/rploadgo.c (rploadgo): Set IO flags. * otb/mpirun/mpirun.c (setstdio): Pass stdout and stderr to filed. * lib/otb/t/kreq/kcreate.c (redirect_stdio): New function. (kcreate): Redirect new process's stdio. * otb/sys/kenyad/pqcreate.c (exit_protocol): New function. (pqcreate): Exit fd passing protocol server if error. (pcreate): Receive passed file descriptors and pass on to kcreate(). * share/trillium/rpcreate.c (rpcreate): Send stdio file descriptors to kenyad. * otb/sys/iod/iod.c: New file. * otb/sys/iod/io_main.c: New file. * otb/sys/iod/iod.ext.c: New file. * otb/sys/lamd/iod.int.c: New file. * otb/sys/filed/fqopenfd.c (fqopenfd): New file. * share/freq/lfopenfd.c (lam_lfopenfd): New file. Mon Aug 26 17:47:03 1996 Nick Nevin * share/mpi/MPI.c: Handle MPI_BOTTOM as an external function. * share/h/mpif.h: Handle MPI_BOTTOM as an external function. Sun Aug 25 20:12:22 1996 Nick Nevin * otb/sys/kenyad/kenyad.c: Take server field into account when doing byte conversion. Sat Aug 24 08:38:14 1996 Nick Nevin * share/h/freq.h: New fs_count field. * share/freq/rfstate.c (lam_rfstate): Return fs_count. * share/mpi/cfree.c (_lam_comm_free): Squash memory leaks. Fri Aug 23 13:05:40 1996 Nick Nevin * share/trillium/ldolinks.c (ldogetlinks): Add NOBUF flag. * lib/otb/t/kreq/clientio.c (_cio_init): Connect UNIX stdio to iod. * share/boot/app_schema.c (fdincr): Increment the correct file descriptors. Sat Aug 3 08:56:45 1996 Nick Nevin * share/trillium/rpcreate.c (rpcreate): Set job identifier. Fri Aug 2 11:01:49 1996 Nick Nevin * otb/sys/kenyad/pqcreate.c (pcreate): Set job identifier. * share/kreq/kinit.c (kinit): Initialize job identifier. * lib/otb/t/kreq/clientio.c (_cio_init): Initialize job identifier. * share/trillium/rpgo.c (rpgo): Set job identifier. * share/h/kio.h (kio_t): Add job identifier field. * share/h/preq.h (preq): Add job identifier field. Sun Jul 28 18:47:57 1996 Nick Nevin * otb/sys/kernel/kernelio.c (kio_intr_clr): New function. Clear kernel interrupt function. Fri Jul 26 01:33:53 1996 Nick Nevin * share/mpi/rpi.shm.c (_c2c_matchenv): Envelope depends on protocol. * share/mpi/finalize.c (MPI_Finalize): Unset initialized flag. * share/mpi/laminit.c (finalize): Check if entered MPI lib. * lib/otb/t/kreq/clientio.c (_cio_init): Check sockname return value. * otb/loadgo/loadgo.c (setstdio): Make Trollius stdio one way. * share/kreq/kinit.c (kinit): Make Trollius stdio one way. Thu Jul 25 11:06:20 1996 Nick Nevin * share/kreq/ksr.c: Add prototypes. * otb/sys/lamd/kiproc.c (kboot): Initialize io node. Add io daemon to boot table. * lib/otb/t/kreq/clientio.c (_cio_init): Set io node. * share/kreq/kinit.c (kinit): Set io node. * otb/mpirun/mpirun.c (setmode): UNIX io daemon flag. (setstdio): Open standard io descriptors with one way flag. * share/h/kio.h (RTF_UNIXIO): Add UNIX io daemon flag. * otb/sys/kernel/kernelio.c (kio_req): Pass interrupt fd to interrupt function. * share/freq/rfwrite.c (lam_rfwrite): Call lower level _lam_rfwrite. (_lam_rfwrite): New function. Low level remote write. * share/h/typical.h (LAMPATHMAX): New constant. Max file path length. * share/h/events.h (EVIOD): IO daemon event. Mon Jul 15 17:23:01 1996 Nick Nevin * share/etc/kill.c (killname): Increase expansion spaces to 16. * tools/hcc/hcc.c (main): New -showme option. (main): Add OS and CPU defines to the command line. Sat Jul 13 16:44:09 1996 Nick Nevin * share/etc/lamunix.c: New configuration support. Thu Jul 11 11:40:40 1996 Nick Nevin * share/mpi/mpil_spawn.c, share/h/mpisys.h, share/mpi/init.c, share/mpi/laminit.c, share/mpi/shm.sgi.c: Support for 'job key'. * share/h/shm.sysv.h (C2C_SHMPERMS): Set to 0600. Wed Jul 10 16:38:28 1996 Nick Nevin * share/mpi/lamipc.c: Various fixes. * share/mpi/shm.sgi.c (getarenaname): Return 0 not LAMERROR. * share/mpi/tcp.low.c (_tcp_readpipe): Removed unreachable breaks. * share/mpi/rpi.shm.c (addanysrc): Added cast. * share/mpi/rpi.tcp.c: Removed tcppipe() macro defn. Wed Jul 10 15:21:56 1996 Nick Nevin * share/tstdio/tfprint.c: Made order of const char * consistent. * share/mpi/recv.c (MPI_Recv): Some function calls now macros. * share/mpi/lamsend.c (__lam_send_): Some function calls now macros. * share/mpi/lamupdown.c: Made variables global to allow macro versions. * share/mpi/laminit.db.c: New file. Adds two local processes only initialization to usual init. * share/mpi/laminited.c: Use flag to avoid getpid() syscall. Tue Jul 9 10:17:39 1996 Nick Nevin * tkill.c (shmcleanup): New function to clean up shmem traces. Wed Jun 26 12:13:11 1996 Nick Nevin * share/h/terror.h: Include errno.h. * share/tstdio/tfprint.c: Use 'const char *' rather than 'char const *'. * share/mpi/tfree.c: Split into part that does actual free and MPI function part. * share/mpi/cfree.c: Split into part that does actual free and MPI function part. Tue Jun 25 10:24:58 1996 Nick Nevin * kenyad.c (pfind): Test index first to avoid illegal reference. Wed Jun 19 09:35:45 1996 Nick Nevin * share/mpi/rpi.tcp.h (commdead): Macro to reduce overhead. * share/mpi/rpi.tcp.c: Introduce commdead macro. * share/mpi/tcp.low.c: Introduce commdead macro. * share/mpi/c2cbuf.c (_cbuf_find): Don't bother to hash if table empty. Tue Jun 11 11:34:48 1996 Nick Nevin * share/mpi/mpil_spawn.c (spawn): clear RTF_FLAT. * share/trillium/rload.c (rload): initialize bmalloc to FALSE. 5.2 --- DATE AUTHOR STATUS DESCRIPTION 8/22 rel LAM 5.2 8/25 GDB bug Running lamd from straight from a shell produces an error from filed. 8/25 JRV mod Assume UDP datagrams are at least 8K. (share/h/trillium/net.h, lib/otb/t/kreq/clientio2.udp.c) 8/26 GDB fix Check -O before ltot() on acks. (otb/sys/dli_inet/dli_inet.c) 8/31 GDB mod Remove printing. (share/boot/parsehost.c) 8/31 GDB bug Lamd exits when invoked directly from a shell with "filed (fmyinit): Not owner" 9/1 JRV fix Free realloc'd ponters, not the malloc'd ones. (otb/mpirun/mpirun.c) 9/2 JRV fix Don't modify pointers you intend to use later. (otb/mpirun/mpirun.c) 9/8 RBD fix Change _kio_cleanup() to _cio_cleanup() in pvm_exit(). (share/pvm/exit.c) 9/9 RBD fix Change _cio_kreqfront() error condition. (lib/otb/t/kreq/kdetach.c) 9/12 JRV fix Set pvm_errno if tid not found in pvm_gettid(). (share/pvm/group.c) 9/14 GDB fix Correct nh_type synchronization. (share/bufferd/bufferd.c) 9/16 RBD mod Do no XDR on SCO. (lib/otb/t/etc/ieee.c) 9/16 RBD fix Do not check for NULL buffers (MPI_BOTTOM is NULL). (share/mpi/{allgather.c, allgatherv.c, allreduce.c, alltoall.c, alltoallv.c, bcast.c, gather.c, gatherv.c, lamchkarg.c, pack.c, reduce.c, reducescatter.c, scan.c, scatter.c, scatterv.c, unpack.c}) 9/20 GDB mod Remove extraneous sys/file.h. (otb/sys/loadd/loadd.c) 9/20 RBD fix Do not sync negative wsync1 messages with wildcard. (share/bufferd/bfsql.c) 9/26 RBD fix Return correct source rank (misunderstanding). (share/mpi/cartshift.c) 9/26 RBD fix Nullify the user's request if done. (share/mpi/waitany.c) 9/26 RBD fix Increment communicator ref. count for persistent reqs. and decrement when requests are deallocated. (share/mpi/{lammkreq.c, reqfree.c}) 9/26 RBD fix Pass values by ref. to F77 functions. (share/mpi/{attrdel.c, cdup.c}) 9/26 RBD fix Increment error handler's ref. count. (share/mpi/errset.c) 9/26 RBD fix Delete the key entry without freeing the key. (share/mpi/lamattr.c) 9/26 RBD fix Take care of NULL F77 handles. (share/mpi/{MPI.c, MPI.RS6K.c}) 9/26 RBD mod Print the "topology" line in debug mode only. (tools/lamboot/lamboot.c) 10/18 RBD mod Upgrade to new network description. Bye bye NaIL. (share/boot/parsehost.c, tools/lamboot/{lamboot.c, lamface.c}, tools/recon/recon.c, tools/wipe/wipe.c) 10/20 GDB fix Defer error checking on krecvback(). (share/kreq/krecv.c) 10/20 GDB mod Split ksr() and dsfr() into front/back. (share/kreq/ksr.c, share/nreq/dsfr.c, share/h/trillium/kreq.h, net.h, lib/otb/t/kreq/couter.c, otb/sys/lamd/couter.c) 11/4 GDB mod Use -R to clean up SQL requests. (otb/bfctl/sweep) 11/4 GDB fix Allocate named group IDs in user range. Do not remove system group IDs on GQWIPE (temp hack). (share/groupd/groupd.c) 11/28 RBD fix Define different RSH path for SGI. (share/boot/inetexec.c) 11/29 RBD fix Switch global/local caller rank. (otb/mpitask/mpis_procinfo.c) 12/22 RBD mod Remove low-level tracing from nsend() & nrecv(). (share/nreq/{nrecv.c, nsend.c}) 2/22 GDB mod Add LAMERROR. Remove HOME. (share/h/trillium/typical.h) 2/22 RBD mod Use + face-lift the code. (share/etc/{all_hash.c, all_queue.c}, share/pvm/{spawn.c, tasks.c}) 3/13 GDB mod Rename addarg() to argvadd(). Add argvfree(). Remove split(). (share/h/args.h) 3/17 RBD mod Remove MPI_Type_count(). (share/mpi/{MPI.c, MPI.RS6K.c}) 3/17 RBD mod Change "value" from (void **) to (void *). (share/mpi/attrget.c) 3/17 RBD fix Fix complex product + face-lift. (share/mpi/lamreduce.c) 3/29 RBD fix MPI_PACKED matches all datatypes. (share/mpi/{getcount.c, getelem.c}) 3/30 RBD mod Don't reuse MPI context IDs. (share/mpi/lamcid.c) 4/20 RBD fix al_top/bottom return NULL for empty non-NULL list. (share/h/all_list.h) 5/28 GDB mod Add Fortran to C handle conversion. (share/mpi/MPI.c, MPI.RS6K.c) 5/31 RBD mod Switch mpif.h from C to F77 syntax. (share/h/mpif.h) 6/9 GDB mod Revise prototypes. Prune obsolete definitions. (share/h/net.h) 6/9 RBD mod Remove groupd cleaning in lamclean. (otb/lamclean/lamclean.c) 6/9 RBD mod Use errno value when exiting. (share/mpi/abort.c) 6/13 RBD mod Add MPI_ERR_IN_STATUS, MPI_ERR_PENDING. (share/mpi/errstring.c) 6/25 RBD mod Include for Ultrix. (share/freq/rfstat.c) 6/28 RBD mod Add MPI_ERR_SYSRESOURCE. (share/mpi/errstring.c) 6/29 RBD mod MPI_BOTTOM is now (void *), so cast it to MPI_Aint. (share/mpi/address.c) 7/5 RBD mod Upgrade hcc and hf77 to use LAMHOME and LAMHCC. Upgrade hcc to use argvbreak() and argvcount(). (tools/hcc/hcc.c, tools/hf77/hf77.c) 7/6 RBD mod Move RSH definitions to config files + face-lift. Place RSH args. before hostname to please Linux. (share/boot/inetexec.c) 7/6 RBD mod Add ah_setcmp() and ah_*_elm() functions. (share/h/all_hash.h, share/etc/all_hash.c) 7/21 RBD mod Remove non-MPI function types. (share/h/blktype.h, share/etc/blktype.c) 8/8 GDB mod Revise help message. (otb/doom/doom.c) 8/21 RBD mod Move shared functions to mpietc.c. (share/mpi/lamcid.c) 8/25 RBD mod Send MPI errors to tstdout instead of tstderr. (share/mpi/lamdeferr.c) 9/1 GDB mod Revise node parsing. (otb/doom/doom.c, otb/fctl/fctl.c, otb/tping/tping.c) 9/2 GDB mod Remove extinct libtools. (tools/hcc/hcc.c, tools/hf77/hf77.c) 9/12 RBD mod Add RS6K macros. Remove group functions & arecv(). (share/etc/T.c, share/trillium/TRIL.c) 9/12 RBD mod Spell out rank/comm/node/pid in fatal error message. (share/mpi/lamdeferr.c) 9/28 GDB mod MPI 1.0 and 1.1 say that type size is an int. (share/mpi/tsize.c) 10/12 GDB mod Simplify and trim priorities. (share/h/priority.h) 10/18 GDB mod Remove Cubix and backwards compatibility. (share/h/FREQ.h, freq.h) 10/18 GDB mod Remove group, cast and LED functionality. Remove backwards compatibility. (share/h/NET.h) 10/24 GDB fix Return LAMERROR, not exit error code. (share/boot/inetexec.c) 11/13 GDB mod Print process ID instead of event. (otb/fstate/fstate.c) 11/16 GDB mod Remove obsolete functions. Rename TPOSIX() calls to lamf_rfposix(). Add HPUX to RS6K category. (share/etc/T.c, share/trillium/TRIL.c) 11/18 GDB mod Use existing bfrecv() from libt. (share/bforward/bforward.c) 11/20 GDB mod Add fault tolerant signals. Qualify names for LAM. (share/h/ksignal.h) 11/20 GDB mod Do not use NULL. (otb/sys/filed/fqf77.c) 11/20 GDB fix Cast IEEE buffers to (void *). (lib/otb/t/etc/ieee.c) 11/20 GDB fix Cast arguments to rev4() to (void *). (share/etc/rev.c) 11/20 GDB mod Remove unreached return. (lib/otb/t/kreq/kcreate.c) 11/21 GDB mod Be explicit about signed char for SGI bozos. (share/tstdio/tscan.c) 11/21 GDB fix Return zero in integer functions. (otb/sys/lamd/stub.c) 11/23 GDB mod Add signed keyword. (share/h/portable.h) 12/20 GDB mod Add DINT2MSG conversion. (share/etc/nmsgconv.c) 1/12 GDB mod Remove port extension on kernel entry. (otb/sys/kernel/kkill.c) 1/12 GDB mod Overhaul. (otb/sys/kernel/kouter.c, share/kernel/kinner.c, share/kreq/ktrace.c) 1/12 GDB mod Add lam_kexit() to cleanup but not terminate. (share/kreq/kexit.c) 1/12 GDB mod Remove O_NOCBX. (share/kreq/kinit.c) 1/12 GDB mod Remove ETIMEDOUT for TCP kernel. Add block time tracing. (share/kreq/krecv.c, ksend.c, ksr.c) 1/13 GDB mod Obtain process fyi structure from the kernel. (share/kreq/kstate.c) 1/13 GDB mod Add sigflush(). Add de-rigeur name wrappers. (share/kreq/ksignal.c) 1/13 GDB mod Remove client ports for TCP kernel. (lib/otb/t/kreq/kattach.c) 1/13 GDB mod Revise for TCP kernel. (lib/otb/t/kreq/couter.c, share/nreq/dsfr.c) 1/15 GDB mod Use updated portable.h. (share/nreq/trecv.c tsend.c) 1/15 GDB mod Send the overall length of a multipacket message in nh_data[0] of the first packet. (share/nreq/nsend.c) 1/15 GDB mod Get the overall length of a long message from nh_data[0] of the first packet. Move bfrecv() to bfrecv.c. Preserve nh_msg's local pointer. (share/nreq/nrecv.c) 1/15 GDB mod Re-implement as a simple wrapper for bfiprobe(). (share/nreq/nprobe.c) 1/15 GDB mod Pass all network level flags to the kernel level. (share/nreq/frecv.c, dsend.c) 1/15 GDB fix Set the length to the minimum length. (share/nreq/drecv.c) 1/18 GDB fix Use msg type RSMART for router request. (share/rreq/getnodes.c, getrent.c) 1/18 GDB mod Overhaul. Remove process state information. (share/bufferd/bufferd.c, share/h/bfreq.h) 1/18 GDB mod Add/delete error codes. (share/etc/terror.c, share/h/terror.h) 1/18 GDB mod Overhaul for new parse_id.c and all_opts.c packages. (share/h/args.h) 1/19 GDB mod Add LAM/MPI extensions. (share/etc/blktype.c, share/etc/blktype.h) 1/19 GDB mod Remove dirt concept and user space limit. (otb/bfctl/bfctl.c) 1/19 GDB mod Remove user space limit. Do not collect packets; use nh_data[0] for total message length. (otb/bfstate/bfstate.c) 1/19 GDB mod Do not pass client port in kernel request. (otb/kdump/kdump.c) 1/19 GDB mod Clean up trace daemon. Spin print nodeids. (otb/lamclean/lamclean.c) 1/25 GDB mod Clean up declarations. (share/tstdio/tfscan.c, tscan.c) 2/1 GDB mod Remove cubix support into a separate library/product. (otb/sys/filed/*.c) 2/4 GDB mod Modernize with several new internal functions and libraries. (otb/loadgo/loadgo.c, state/state.c) 2/6 GDB mod Add EBADHOST. (share/etc/terror.c, share/h/terror.h, lib/otb/t/etc/getinetaddr.c) 2/7 GDB mod Remove lamfail() into a separate module. (lib/otb/t/etc/panic.c) 2/7 GDB mod Add stream, UNIX domain, socket functions. (lib/otb/t/etc/sockface.str.c) 2/10 GDB mod Catch tkill/kernel termination and clean up. (otb/sys/flatd/fl_main.c) 2/10 GDB mod Add clean-up function. Remove address from reply. (otb/sys/flatd/flatd.c, share/trillium/rget.c, share/h/flatreq.h) 2/10 GDB mod Add sockname(). (share/etc/kill.c) 2/10 GDB fix Do not forward KTRACE. (share/bufferd/bufferd.c) 2/10 GDB mod Add _lam_atexit(). (share/etc/lamunix.c) 2/11 GDB mod Remove command line options. (share/router/r_main.c) 2/11 GDB mod Merge rrload() and rrsetrent() into rrsetrents(). (share/router/router.c, share/h/rreq.h) 2/11 GDB mod Determine full pathname of local files. Add process ID and index as output parameters. (share/trillium/rload.c, rploadgo.c) 2/11 GDB mod Add process ID and index as output parameters. (share/trillium/rpcreate.c, rpgo.c, rpspawn.c) 2/14 NJN fix Retry insertion of new entry after table expansion. (share/router/router.c) 2/16 GDB mod Remove user space buffer parameter. (share/trillium/rbfparms.c, rbfstate.c) 2/16 GDB mod Use name macros for HPUX. Use new rploadgo() binding. (share/trillium/TRIL.c) 2/18 GDB mod Replace SELECT_BLKD with SELECT_MPI. (share/h/preq.h) 2/18 GDB mod Remove atexit() macro. Use _lam_atexit(). (share/h/portable.h) 2/18 GDB mod Add DINT2MSG. (share/h/net.h) 2/18 GDB mod Overhaul. (share/h/kio.h, kreq.h, ktrace.h, mpi.h, mpisys.h, trreq.h) 2/18 GDB mod Upgrade to MPI 1.1. (share/h/mpif.h) 2/18 GDB mod Replace EVDLMOM with EVDLI. (share/h/events.h) 2/18 GDB mod Add fault tolerant and dynamic node features. (share/h/dl_inet.h) 2/18 GDB mod Overhaul. (share/mpi/*) 2/22 GDB mod Overhaul. (otb/sys/mpimsg/mpimsg.c, mpirun/mpirun.c, mpitask/mpitask.c) 2/22 NJN fix Skip inactive requests. (share/mpi/waitsome.c) 2/23 GDB mod Remove homogeneous feature and add fault tolerance. (otb/sys/dli_inet/di_main.c, dli_inet.c, otb/sys/dlo_inet/dlo_inet.c, do_main.c, do_wait.ext.c) 2/24 GDB mod Remove -lsun for SGI. (tools/hcc/hcc.c, hf77/hf77.c) 2/24 GDB mod Just allocate the table - don't fill it. (otb/sys/router/rtdinit.lam.c) 2/24 GDB mod Use new file searching module. (otb/sys/loadd/loadd.c) 2/26 GDB mod Remove getsmart(). (otb/sys/lamd/rreq.c) 2/26 GDB mod Quadruple buffer space limit. (share/h/bfreq.h) 2/26 GDB mod Revise process list and call subsystem cleanup functions. (otb/sys/lamd/kiproc.c) 2/26 GDB mod Enqueue non-syncing KTRY requests. (otb/sys/lamd/couter.c) 2/26 GDB fix Don't check return value of void kio_intr(). (otb/sys/lamd/di_wait.int.c) 2/26 GDB mod Overhaul. (otb/sys/lamd/do_wait.int.c) 2/26 GDB mod Remove setsid(). (otb/sys/filed/fface.c) 2/27 NJN fix Ignore sendto ENOBUFS error. (otb/sys/dli_inet/dli_inet.c) 2/27 GDB mod Modernize and tweak. (otb/sys/kenyad/*.c) 2/27 GDB mod Use modern libraries and share modules. Remove chaff. (tools/hboot/hboot.c) 2/28 GDB mod Pass all runtime flags to daemon. (lib/otb/trillium/lpattach.c) 2/28 GDB mod Use unblock instead of restore on preemption signal. (lib/otb/t/kreq/couter.c) 2/28 GDB mod Do not forward certain message flags. (share/bforward/bforward.c) 2/28 GDB mod Overhaul. (share/boot/bhostparse.c) 2/28 GDB mod Chop down to bare necessities. (share/boot/boot.h) 2/28 GDB mod Support LINUX and bash. (share/boot/inetexec.c) 2/28 GDB mod Use lambootagent module. (tools/lamboot/lamboot.c) 2/28 GDB mod Overhaul. (tools/recon/recon.c, wipe/wipe.c) 2/28 GDB mod Upgrade to TCP kernel. (tools/tkill/tkill.c) 2/28 NJN fix Send GPS arrays as MPI_INT. (share/mpi/iccreate.c) 2/28 NJN fix Wait at barrier for all to initialize. (share/mpi/init.c) 3/1 GDB fix Common block lamblk_ must be renamed for HP/IBM. (share/mpi/MPI.c) 3/1 GDB fix Convert byte order of new link number. (otb/sys/dli_inet/dli_inet.c) 3/3 NJN fix Attribute copy and delete functionality brought up to standard. (share/h/mpi.h, mpisys.h, mpif.h share/mpi/init.c, cdup.c, attrdel.c, dupfn.c, MPI.c) 5.1 --- DATE AUTHOR STATUS DESCRIPTION 5/18 rel LAM 5.1 5/19 GDB fix Code around gcc/ANSI &(void **a)[i] problem. (share/mpi/MPI.c, MPI.RS6K.c) 5/19 GDB fix Gcc on Solaris 2.3 was not happy with the placement of stdlib.h among other LAM header files. (otb/mpirun/mpirun.c) 5/19 GDB fix Dlo now gets -O from the command line, not from dli. (otb/sys/dli_inet/dli_inet.c, otb/sys/dlo_inet/dlo_inet.c, do_main.c) 5/19 GDB fix Add semi-colon after the last member of a struct definition. (share/mpi/lamreduce.c) 5/23 GDB fix Fix prototype for MPI_Type_hvector(). (share/h/trillium/mpi.h) 5/23 JRV fix Fix schema parsing bug, and don't free 'fullpath' until all copies are loaded. (otb/mpirun/mpirun.c) 5/25 GDB fix Use struct bftask for bufferd process status. (share/bufferd/bufferd.c, share/h/trillium/bfreq.h, share/trillium/rbfprocstat.c, otb/pvmtask/pvmtask.c, otb/mpitask/mpitask.c) 6/14 RBD fix Fix a silly typo in wait.c (share/mpi/wait.c) 6/20 RBD fix In F77, make MPI_BOTTOM a global variable and convert it to the C NULL pointer when used. (share/h/trillium/mpif.h, share/mpi/{MPI.c, MPI.RS6K.c}) 6/30 RBD fix Set the max. # of predefined types. Affects MPI-F77-RS6K only. (share/mpi/MPI.RS6K.c) 7/27 RBD mod Add EVXMPI. (share/h/trillium/events.h) 7/27 RBD mod Add undocumented -x option to mpirun for xmpi. (otb/mpirun/mpirun.c) 7/28 RBD mod Change _kio_cleanup() to _cio_cleanup() in MPI. (share/mpi/finalize.c) 8/2 RBD mod Change MPI_Get_count(), MPI_Get_elements, and MPI_Test_cancelled() to take pointer to MPI_Status. (share/h/trillium/{mpi.h, mpisys.h}) 8/2 RBD mod Use MPI_Aint instead of int in MPI_Type_extent(), MPI_Type_size(), MPI_Type_lb(), and MPI_Type_ub(). (share/h/trillium/mpi/h, share/mpi/{textent.c, tsize.c, tlb.c, tub.c}) 8/2 RBD fix Check and cache -x option early in the code. Mpirun has side-effect argument parsing. (otb/mpirun/mpirun.c) 8/4 RBD fix Fix bugs in typealloc() and typefree(). (share/mpi/{MPI.c, MPI.RS6K.c}) 8/10 RBD mod Allow non-networked stand-alone systems to boot. (share/boot/nail.lam.c) 8/12 RBD fix Fixed recon (do_recon()) return error. (tools/recon/recon.c) 8/12 RBD mod Cast an (int *) pointer to (char *). (share/mpi/{MPI.c, MPI.RS6K.c}) 8/16 RBD fix Fixed rbfprocstate() prototype. (share/h/trillium/bfreq.h) 8/16 RBD mod Support variable length addresses. (share/boot/nail.lam.c) 8/17 RBD mod Move ARCV() wrapper to the T.c file and make it take a function pointer as argument. (share/etc/{T.c, T.RS6K.c}) 8/17 RBD mod Change MPI_Waitall() to a loop of MPI_Waitany(). (share/mpi/waitall.c) 8/17 RBD mod Change MPI_GET_COUNT(), MPI_GET_ELEMENTS() and MPI_TEST_CANCELLED() to follow the MPI errata sheet. (share/mpi/{MPI.c, MPI.RS6K.c}) 8/18 GDB mod Use buffers so as not to confuse ksr() in kenyad. (lib/otb/trillium/lpattach.c, otb/sys/kenyad/pqstate.c, share/trillium/lpdetach.c, rpstate.c) 8/18 GDB mod Client cleanup is now _cipc_cleanup(). (lib/otb/t/etc/panic.c) 8/18 GDB mod Overhaul kernel. (lib/otb/t/kreq/clientio.udp.c, couter.c, kattach.c, kcreate.c, kdetach.c, otb/kdump/kdump.c, otb/mpitask/mpitask.c, otb/pvmtask/pvmtask.c, otb/state/state.c, otb/sys/kernel/kernelio.udp.c, kkill.c, kouter.c, otb/sys/lamd/couter.c, di_wait.int.c, kexit.c, kiproc.c, nrecv.c, share/bforward/bforward.c, share/h/trillium/dl_inet.h, kio.h, kreq.h, net.h, share/kernel/kinner.c, share/kreq/kdoom.c, kexit.c, kinit.c, krecv.c, ksend.c, ksignal.c, kstate.c, share/nreq/bfprobesql.c, bfprobesqlblk.c, bfrecvsql.c, bfsyncsqlany.c, dsend.c, frecv.c, nprobe.c, nrecv.c, share/rreq/getnodes.c, getrent.c) 8/18 GDB mod Remove dependence on router for LOCAL service. (otb/fstate/fstate.c, share/freq/rfstate.c) 8/18 GDB mod Overhaul for new kernel. Use non-Trollius methods for acks and timeouts. (otb/sys/dli_inet/di_wait.ext.c, dli_inet.c, otb/sys/dlo_inet/dlo_inet.c) 8/18 JRV mod Add HP-UX support, including no more #elif's. (otb/sys/fface.c, share/boot/initexec.c, share/etc/getworkdir.c, share/h/trillium/{portable.h, t_types.h}, tools/hf77/hf77.c, tools/hcc/hcc.c) 8/18 JRV mod Upgrade to act more like xmpi. (otb/mpitask.c) 8/19 RBD mod Only SUN4_OS needs to map atexit() to on_exit(). (share/h/trillium/portable.h) 8/19 GDB mod Do not exit on client send timeout. (otb/sys/kernel/kernelio.udp.c) 8/19 RBD mod Add SCO support. (share/boot/inetexec.c, share/etc/{getworkdir.c, kill.c}, share/h/trillium/{portable.h, t_types.h}, otb/sys/kernel/kkill.c, otb/sys/filed/fface.c, otb/sys/dli_inet/dli_inet.c, lib/otb/t/nreq/psend.c, tools/hcc/hcc.c, tools/hf77/hf77.c) 8/19 GDB fix Convert byte order on ACK message. (otb/sys/dli_inet/dli_inet.c) 8/19 GDB mod Invoke wipe with matching verbose flag and minimum number of nodes. (tools/lamboot/lamboot.c, lamface.c) 8/19 GDB mod Add -n option to limit # of wiped nodes. Remove -V option. (tools/wipe/wipe.c) 8/22 GDB mod Add robutsness. (otb/lamclean/lamclean.c) 8/22 GDB mod Cast inet structure. (otb/sys/dli_inet/dli_inet.c) 8/22 rel LAM 5.2 2.3 --- DATE AUTHOR STATUS DESCRIPTION 4/26 OSU rel Ohio LAM 2.3 5/2 JRV mod Add special handling for MPI_ANY_TAG, MPI_ANY_SOURCE. (otb/mpitask/mpitask.c) 5/3 JRV mod Check to see if caller is a child of a fork() on init. (share/pvm/mytid.c) 5/4 RBD mod Remove the -m option from loadgo. (otb/loadgo/loadgo.c) 5/5 GDB bug Somehow we forgot to set nh_dl_event prior to using dsend() in nprobe(). (share/nreq/nprobe.c) 5/11 GDB mod Reflect slight changes in bfclient structure. (otb/pvmtask/pvmtask.c) 5/11 GDB mod Clean up abnormally terminated non-child clients. (otb/sys/kenyad/pqdetach.c, pqstate.c) 5/13 JRV mod Do not print messages with negative tags. (otb/mpimsg/mpimsg.c) 5/13 JRV mod Add RTF_MPIRUN. (share/h/trillium/kio.h) 5/16 RBD mod Add -ltstdio in hf77, it is needed by MPI. (tools/hf77/hf77.c) 5/17 GDB fix Do not close stdio on origin with FQRMFD. (otb/sys/filed/fqsimplex.c) 5/17 GDB mod Move SQL code to bfsql.c and upgrade it to full MPI. (share/bufferd/bfsql.c, bufferd.c, share/h/trillium/bfreq.h) 5/18 JRV mod Print rank in MPI_COMM_WORLD's group in "{}". (otb/mpimsg/mpimsg.c) 5/18 JRV mod Upgrade for new-and-improved libmpi. (otb/mpitask/mpitask.c) 5/18 GDB mod Print nh_type for MPI and PVM messages. (otb/bfstate/bfstate.c) 5/18 GDB mod Change name to fctl and minor facelift. (otb/fctl/fctl.c) 5/18 GDB mod Fully support KTRY. (share/nreq/nrecv.c, nsend.c) 5/18 GDB fix Set nh_dl_event before sending to bufferd. (share/nreq/nprobe.c) 5/18 GDB mod Bypass buffers when the server is local. (share/trillium/rpstate.c) 5/18 RBD mod Add MPI function types. (share/etc/blktype.c, share/h/trillium/blktype.h) 5/18 RBD mod Add terrorstr(), EMPIINIT, EMPINOINIT. (share/etc/terror.c, share/h/trillium/terror.h) 5/18 GDB mod Add PRCMD for all commands. (share/h/trillium/priority.h) 5/18 RBD mod Add _vcfree() to clean virtual circuit table. (share/etc/vctable.c) 5/18 RBD mod Free the virtual circuit table of a forked process. (share/kreq/kinit.c) 5/18 rel LAM 5.1 2.2 --- DATE AUTHOR STATUS DESCRIPTION 5/1/92 OSU rel Ohio Trollius 2.2 5/5 GDB fix Repair two types in introc document. (doc/src/introc.doc.fm) 5/6 GDB fix Return proper error value if locks dir not found. (otb/sys/kernel/kkill.c) 5/6 GDB fix Give the whole world permissions on the locks dir. (tools/hboot/Makefile) 5/6 GDB mod Attach first at priority 0 to detect OTB kernel absence. (share/bufferd/bufferd.c, share/router/router.c) 5/8 RBD fix Un-comment the castd entry in the conf.otb files for the meiko, b014, vmtm and arch ports. (machine/{meiko, b014, vmtm, arch}/schema/conf.otb) 5/14 GDB fix Use rfopen() instead of non-existant rfcreat(). (lib/itb/t/unix/creat.c) 5/14 RBD fix Fixed non-orthodox dsend() call in rrhold(). (share/rreq/rrhold.c) 5/23 RBD mod Added the man pages for the tsize and tvw tools. (man/manl/{tsize.l, tvw.l}) 5/24 RBD mod Make structure declarations preceed their typedef usage in order to remove ULS compiler warnings. (share/h/trillium/{all_hash.h, all_queue.h}) 5/25 RBD mod Replaced the cold booting command by the set timer command in the ULS version of moses. (tools/moses.t4/moses.uls.s) 5/30 GDB fix Keep reloc and symbol tables contiguous for patching. (tools/cboot/cboot.c) 6/5 RBD fix Use uint4 (declared in portable.h) instead of unsigned int4, which is a no-no. (otb/sys/filed/fface.c) 6/10 RBD mod Added f77 wrappers for rrnodewait(), ncombine(), rcasttype(), ktrstart() and ktrstop() and cosmetics. (lib/{itb, otb}/T/nreq/NCOMBINE.c, lib/{itb, otb}/T/trillium/{RCAST.c, RRNODEWAIT.c} lib/{itb, otb}/T/kreq/KTR.c) 6/10 RBD fix Fixed a typo in the RCASK() function naming. (lib/{itb, otb}/T/trillium/RCASK.c) 6/15 GDB fix Repair typo in help(). (otb/vboot/vboot.c) 6/17 JRV fix Added missing 'stderr' in an fprintf. (tools/moses/moses.c) 7/15 GDB fix Correct DEFPPROGH for 2.2. (share/boot/boot.h) 7/19 GDB fix Remove kernel.h. (otb/mstate/mstate.c) 8/3 GDB fix Find full pathnames. (otb/loadgo/loadgo.c) 8/12 GDB fix Set nh_event and nh_node for dsend(). (share/rreq/getnodes.c, getsmart.c rrattach.c) 8/30 RBD mod Make al_count() an O(1) operation. (share/etc/all_list.c, share/h/trillium/all_list.h) 9/2 RBD mod Increase hard-coded limits from 8 to 16. (share/args/do_args.c) 9/8 GDB mod Give facelift due to LAM OTB servers. (share/trillium/rcreate.c rdoom.c rflat.c rget.c rloadgo.c rpdetach.c rpwait.c rspawn.c rstate.c) 9/23 GDB mod Eliminate floating point arithmetic. (itb/sys/mallocd/mallocd.c) 9/25 GDB mod Remove rf.c from ITB t library. (lib/itb/t/etc/Makefile) 9/25 GDB mod Move ttime.c over to LSTT dungeon. (lib/itb/t/etc/ttime.c) 9/25 GDB mod Selectively start dl processes. (itb/sys/dl_t4/dl_mom.c) 9/25 GDB mod Use "all" for CPU type instead of t800. (lib/itb/t/kreq/siesta.lstt.s) 9/25 GDB mod Give facelift due to LAM OTB servers. (lib/itb/trillium/rpattach.c) 9/26 GDB mod Establish mailbox for boot link address. (machine/*/share/h/machine/maconfig.h) 9/26 GDB mod Add detecter for onchip RAM size - optional module for newer transputers. (machine/*/itb/sys/mallocd/maconfig.pid) 9/26 GDB mod Allow buffers to suit stateful dl_t4. (share/trillium/ldlattach.c) 9/27 GDB mod Fill bootlink mailbox. (tools/moses.t4/moses.*.s) 11/30 GDB mod Increase kattach timeout. (lib/otb/t/kreq/clientio.udp.c) 12/2 GDB mod Add i860 coprocessor addresses. (machine/arch/share/h/machine/maconfig.h) 12/15 RBD mod Added free_nodes() to the node parsing package. (share/args/parse_nodes.c) 12/18 GDB mod Use tputer instead of itb. (lib/itb/t/kreq/clientio.c) 12/18 GDB mod Move addresses to maconfig.h. (lib/itb/t/etc/panic.c) 1/8/93 GDB fix Clean up properly if no memory error. (itb/sys/mallocd/mallocd.c) 1/19 GDB fix Add robustness to network startup. (otb/sys/kernel/kernelio.udp.c, lib/otb/t/kreq/clientio.udp.c) 1/22 RBD mod Remove the AHFIXED constant from all_hash. (itb/sys/bootd/btroute.c, share/boot/{routeio.c, naily.y}, share/castd/castd.c, share/h/trillium/all_hash.h, tools/map/{map_funct.c, map_route1.c, map_route2.c}) 2/2 GDB mod Move atoi() from libc to libt and rewrite. (share/etc/atoi.c) 2/2 GDB mod Eliminate my_atoi() and rewrite. (share/etc/terror.c) 2/9 RBD fix Issue the reset command in solder (nt1000 version). (machine/nt1000/tools/solder/solder.c) 2/10 GDB mod Change p_flags to p_rtf plus give minor facelift. (otb/state/state.c) 2/10 GDB mod Overhaul to match new OTB version. (itb/sys/flatd/flatd.c) 2/10 GDB mod Add environ variable. (itb/sys/shared/shared.c) 2/10 GDB mod Add magic routine. (share/etc/tout.c) 2/10 GDB mod Remove RTF_NODEID and add RTF_FLAT. (share/h/trillium/kio.h) 2/17 RBD mod Support the NT_ME node type field. (tools/map/map.c, tools/rasm/rasm.c) 2/17 RBD mod Specify the origin node in the first trout command. (tools/spread/spread.c) 2/18 RBD mod Support the NT_ORIGIN node type field. (otb/trout/trout.c) 2/18 RBD mod Support the NT_ME node type field and remove the origin node from the route table header. (share/boot/routeio.c) 2/18 RBD mod Remove the origin node from the route table header. (share/boot/rtio.h) 2/18 GDB mod Remove declaration of getroute2() that clashes with shared.h. (share/castd/castd.c, combine.c) 2/18 GDB mod Upgrade for stds and rewrite for new route loading procedure. (share/rreq/*.c, share/router/router.c, share/h/trillium/rreq.h) 2/18 GDB mod Revise for new router runtime system. (share/h/trillium/net.h) 2/19 RBD mod In cnfexec(), make child process call exit() and make parent call waitpid(). (share/boot/conf.c) 2/19 RBD mod Define atexit() on Sun machines. (share/h/trillium/portable.h) 2/23 JRV fix Repair help menu of the export tool. (tools/export/export.c) 2/23 RBD mod Make split() add a blank argument to the argv structure if a blank string is given. (share/args/split.c) 3/19 RBD mod Attach to kenyad using lpattach() and kisysgen(). (share/castd/castd.c, share/echod/echod.c, share/router/router.c, otb/sys/filed/filed.c, otb/sys/loadd/loadd.c) 3/19 GDB mod Change kattach() to kinit(), which is in shared. Add lpattach() and kisysgen(). (share/bufferd/bufferd.c) 3/19 RBD mod Make terror() accept a NULL message. (share/etc/terror.c) 3/22 GDB mod Add DEFP, the default installation directory. (share/boot/boot.h) 4/12 RBD mod Use the new mltoti4() and mttoli4() macros. (share/trillium/rcast.c, otb/trout/trout.c) 4/28 JRV mod Add -k capability to bypass kenyad. (otb/state/state.c) 4/30 GDB mod Remove pointers from state information. (otb/state/state.c, otb/sys/kenyad/pqstate.c, share/h/trillium/preq.h, share/trillium/rstate.c) 5/3 GDB mod Restrict stat() to POSIX fields. Use off_t with lseek(). (otb/sys/filed/fface.c, share/freq/rfstat.c) 5/3 GDB mod Use frecv() instead of DFORWARD. (share/bufferd/bufferd.c, share/castd/{castd.c, combine.c}) 5/3 GDB mod Mutate dld from a subroutine of dl_mom to a standalone daemon. (share/dld/dld.c) 5/3 RBD mod Add frecv() to receive a forwarded message unchanged. Drecv() uses frecv() without supporting DFORWARD. (share/nreq/{drecv.c, frecv.c}) 5/3 RBD mod Change request from NSEND to KSEND. (share/nreq/{nrecv.c, nsend.c}) 5/3 GDB mod major refit of router code (otb/sys/sa_rtr/sa_rtr.c) 5/3 GDB mod facelift, better error reporting, portability (otb/sys/kernel/kernelio.udp.c) 5/3 GDB mod Increase portability. Use automatic port assignment with bind(). (lib/otb/t/kreq/clientio.udp.c) 5/3 GDB mod Reorder header files. (otb/spawn/spawn.c) 5/3 RBD mod Lock file = username@hostname. Get username from password file entry. (otb/sys/kernel/kkill.c, tools/tkill/tkill.c) 5/3 GDB mod Use off_t with ftruncate(). (otb/sys/kernel/kkill.c) 5/4 RBD mod No ftok() declaration for SGI. (lib/otb/t/kreq/clientio.msg.c, otb/sys/kernel/kernelio.msg.c, tools/tkill/kio.msg.c) 5/4 RBD mod Include for AIX. (lib/otb/t/kreq/clientio.udp.c) 5/4 RBD mod Declare cleanup() and include for malloc(). (otb/tping/tping.c) 5/4 RBD mod Declare _kio to be extern. (otb/sys/bufferd/bfcreate.c) 5/4 RBD mod Comment out the "extern int" function declarations. Compact the buffer filling in conv_stat(). (otb/sys/filed/fface.c) 5/4 RBD mod Upgraded to support LAM. (tools/hboot/hboot.c, share/boot/{confl.l, confy.y, y.conf.h}, share/boot/{nail.h, nail.c, naily.y}) 5/4 RBD mod Did a cosmetic overhaul. (share/boot/y.nail.h) 5/4 RBD fix Fixed nodeid skipping bug in _fnparse(). (share/freq/rfaux.c) 5/4 RBD mod Compact the buffer filling in conv_stat(). (share/freq/rfstat.c) 5/4 RBD mod Remove macros after #endif, make them comments. (share/h/trillium/{FREQ.h, T_TYPES.h, bufreq.h, shared.h, terror.h}) 5/4 RBD mod Support new CPUs and new function interface. (share/h/trillium/t_types.h) 5/4 RBD mod Support new CPUs. (share/h/trillium/portable.h) 5/4 RBD mod Upgraded to support LAM and compute node definition. (share/h/trillium/net.h) 5/4 GDB mod Move MAXNLINK from dlreq.h to machine.h. (share/h/trillium/dlreq.h) 5/4 GDB mod Add EVBRENDAD. (share/h/trillium/events.h) 5/4 GDB mod Rewrite for ITB/OTB portability. (share/h/trillium/flatreq.h, preq.h) 5/4 GDB mod Initialize my nodeid and origin caches; facelift. (share/kreq/kinit.c) 5/5 RBD mod Give full path to rsh to stop collisions with the restricted shell, both named "rsh". (share/boot/inetexec.c) 5/6 RBD mod Change the dl_oevent() constant to 64K. (share/h/trillium/net.h) 5/6 RBD fix Change message byte order if not destined to dlo_inets. This is a tighter test of message destination locality. (otb/sys/dl_inet/dli_inet.c) 5/6 RBD mod Make castd support large number of links on a node. (share/h/trillium/castreq.h, share/castd/castd.c) 5/6 GDB mod Change getnitb() to getncomp(). (otb/sys/filed/fcast.c) 5/7 GDB mod Add -ltstdio. (tools/hcc/hcc.c) 5/7 GDB mod Remove stdio dependence. (share/kreq/kinit.c, lib/otb/t/kreq/clientio.*.c) 5/7 RBD mod Use NT_WASTE instead of NT_COMP in SA-T router. (otb/sys/sa_rtr/sa_rtr.c) 5/7 GDB mod recv_req() returns 0 so we can code a break statement in the kernel for (;;) loop. (otb/sys/kernel/kernelio.*.c, share/kernel/kernel.c) 5/7 GDB mod Change argument to lpattach(). Add a break statement in the for (;;) loop. (all OTB daemons) 5/7 GDB mod Cast yytext to (char *) because some machines define it as (unsigned char *). (share/boot/confl.l) 5/10 RBD fix Fix clashes betweeen Trollius stdio package and UNIX. (share/h/trillium/tstdio.h, share/tstdio/*.c) 5/10 RBD mod Make NaIL parser more portable. Do not declare malloc(), use ; make yywrap() global. (share/boot/naill.l) 5/10 RBD mod Portability: declare the "static int" do_* functions. (share/bufferd/bufferd.c) 5/10 RBD mod Portability: declare the count_ntype() function. (otb/sys/sa_rtr/sa_rtr.c) 5/11 RBD mod Get full machine names for all hosts in find_hosts(). (share/boot/nail.c) 5/11 RBD mod Get full name of machine dl_inet runs on. (otb/sys/dl_inet/dl_mom.c) 5/11 RBD fix Set full hostname in 1-node networks with no hostname. (share/boot/nail.c) 5/11 RBD fix Don't malloc() negative amounts in castd (sprout()). (share/castd/castd.c) 5/14 RBD fix Do not re-initialize the route cache in getrentc(). (share/rreq/getrent.c) 5/14 JRV mod Add wrappers for getnodes (getitbs, getotbs, ...). (share/h/trillium/h/net.h) 5/24 GDB fix BYSIZE test should be <=. (itb/sys/mallocd/malist.c) 5/25 JRV fix Make all inherited files close-on-exec, not just stdio. (tools/hboot/hboot.c) 5/25 JRV mod Extend parse_nodes to handle 'o', 'I', 'O', 'N', etc. (share/args/parse_nodes.c, mnemonic.c) 5/25 RBD mod Change to new NaIL pretty-printing format. (share/boot/nail.c) 5/25 RBD mod Delete pvm pretty-printing format. (share/boot/parsepvm.c) 5/25 RBD mod Change to new pretty-printing format. (tools/lamboot/lamboot.c, tools/recon/recon.c, tools/wipe/wipe.c) 5/27 JRV mod Removed redundant NOTNODE and NOTPROCESS definitions. (share/args/range.h) 5/27 RBD mod Add the default host file "bhost.def". (share/boot/nail.h) 5/27 RBD mod Upgrade recon/lamboot/wipe to handle host files. (tools/recon/recon.c, tools/lamboot/lamboot.c, tools/wipe/wipe.c) 6/18 RBD fix Fix route caching bug in ahs_kick() call in getrentc(). (share/rreq/getrent.c) 6/18 GDB mod Pass RTF_SYSGEN through TROLLIUSHOME. kisysgen() is obsolete. (tools/hboot/hboot.c) 6/23 JRV fix Fix stupid cut-paste bug in remapfd(). (share/tstdio/iomap.c) 6/25 JRV fix Make stdout, stdin, and stderr point to /dev/null, rather just closing; Fortran doesn't like that. (tools/hboot/hboot.c) 6/29 RBD fix Exclude NT_CAST nodeids from HOST2ITB predef. (share/etc/predef.c) 7/2 RBD mod Added mnnodeid() to get a nodeid from a node mnemonic. (share/args/mnemonic.c) 7/6 RBD mod Remove selection by load address in parse_procs(). (share/args/parse_procs.c) 7/6 JRV mod Facelift and upgrade arg parsing. (otb/doom.c) 7/6 JRV mod Facelift and upgrade mnusage(). (otb/state.c) 7/6 JRV mod Update program name on multiple lpattach()s. (otb/sys/kenyad/pqdetach.c) 7/9 RBD mod Modify request and state kenyad structures. (share/h/trillium/preq.h) 7/9 RBD mod Add support for host network address. (share/boot/nail.h, share/etc/bootsockio.c, tools/lamboot/{lamboot.c, lamface.c}, otb/sys/dl_inet/dl_mom.c) 7/9 RBD mod Use kenter() and new panic() and do a face-lift. (share/castd/{castd.c, combine.c}, share/echod/echod.c, otb/sys/lamrouter/lamrouter.c) 7/9 RBD mod Use new panic() and non-block. nrecv() + face-lift. (share/dld/dld.c) 7/9 RBD mod Repeat the call after an EINTR error. (share/etc/{mread.c, mwrite.c}) 7/9 RBD mod Don't search absolute paths in findpath(). (share/etc/search.c) 7/9 RBD mod Support host network addr. + repeat call after EINTR. (share/etc/sockface.c) 7/9 RBD mod Functions replace old macros to "do_" function. (share/nreq/{drecv.c, dsend.c, nrecv.c, nsend.c) 7/9 RBD mod Change do_frecv() to frecv(). remove V.C. support. (share/nreq/frecv.c) 7/9 RBD mod Change SA-T header and do a face-lift. (tools/hboot/saboot) 7/9 RBD mod Use new access to root host info in bschema structure. (tools/recon/recon.c, tools/wipe/wipe.c) 7/9 RBD mod Allow command multicasting from origin node only. (otb/doom/doom.c) 7/9 RBD mod Overhaul loadgo to better support LAM. (otb/loadgo/loadgo.c) 7/9 RBD mod Modify dl_inet to use interrupts for the new kernel. (otb/sys/dl_inet/{dli_inet.c, dlo_inet.c}) 7/9 RBD mod Overhaul loadd for LAM. (otb/sys/loadd/loadd.c) 7/12 JRV mod Added expand_nodes() to libargs. (share/args/parse_nodes.c) 7/12 JRV mod Minor facelift and upgrade arg handling for LAM. (otb/{bfstate.c, buffer.c, cast.c, cstate.c, fstate.c, tfile.c, tping.c}) 7/12 GDB mod Reverse flag polarity. RTF_NOWAIT becomes RTF_WAIT. (otb/sys/kenyad/pqdetach.c, pqspawn.c, otb/loadgo/loadgo.c, lib/otb/trillium/lpattach.c) 7/12 GDB mod Check malloc() error. (share/T/freq/TOPEN.c) 7/12 GDB mod Remove several useless F77 wrappers. (share/T/) 7/12 GDB mod Add KENTER() F77 wrapper. (share/T/kreq/KINIT.c) 7/12 GDB mod Add IGNCMP() and remove IGNCST(). (share/T/nreq/GETNTYPE.c) 7/13 RBD mod Overhaul F77 byte ordering routines. (share/T/nreq/{LTOT.c, TTOL.c}) 7/15 JRV fix Fix bad pointer reference in expand_el(). (share/args/parse_nodes.c) 7/15 RBD mod Add -lsun for SGI machines in the hcc tool. (tools/hcc/hcc.c) 7/15 RBD mod Declare reply2agent() a static function in dl_inet. (otb/sys/dl_inet/dl_mom.c) 7/17 GDB mod Overhaul error codes one more time for LAM. (share/etc/terror.h, share/h/trillium/terror.h) 7/17 GDB mod Upgrade to new kernel. Change panic() argument. (share/bufferd/bfworker.c, bufferd.c) 7/17 GDB mod Upgrade to new kernel. (share/h/trillium/kio.h, ksignal.h, priority.h) 7/17 GDB mod Remove useless constants. Add HOME, the default installation directory. (share/h/trillium/typical.h) 7/19 GDB mod Revise for LAM. (share/h/trillium/net.h, share/kreq/kexit.c, kinit.c, ksignal.c ktrace.c) 7/19 GDB mod Change to standard naming. Add local node optimization. (share/trillium/rpstate.c, rpdoom.c) 7/20 RBD mod Change host network address to 4 unsigned bytes. Enhance error reporting in booting step. (otb/sys/dl_inet/dl_mom.c, share/boot/nail.h, share/etc/{bootsockio.c, sockface.c}, tools/lamboot/{lamboot.c, lamface.c}) 7/20 RBD mod Use kenter() and set priority of filed. (otb/sys/filed/filed.c) 7/20 RBD mod Open /dev/null in filed and make is Trollius fd #0. Do not allow "/dev/" files to be opened for "read". 7/20 RBD mod Replace "." in user's path by loadgo's current dir. (otb/loadgo/loadgo.c) 7/21 RBD fix Retry select() if EINTR error in accepttmout(). (share/etc/sockface.c) 7/21 GDB mod Revise parameters. Use new rpgo() and rpcreate(). (share/trillium/rploadgo.c) 7/21 GDB mod Change functionality from flat tag to file name. Revise parameters and change to standard naming. (share/trillium/rpcreate.c) 7/21 GDB mod Change parameter to message string. (lib/otb/t/etc/panic.c) 7/21 GDB mod Remove SUCCESS. Don't panic. (lib/otb/t/etc/ttime.c) 7/21 GDB mod Clean up kio before calling exec(). (lib/otb/t/kreq/kcreate.c) 7/21 GDB mod Upgrade to new kernel. (otb/sys/bufferd/bfcreate.c, otb/sys/flatd/flatd.c) 7/22 GDB mod Upgrade to new kernel. Search for programs using PATH. Fix process cleanup. (otb/sys/kenyad/*) 7/22 GDB mod Overhaul for new kernel. (otb/sys/kernel/kernelio.udp.c, kkill.c) 7/22 GDB mod Remove inter-user killing. (tools/tkill/tkill.c) 7/22 RBD mod Add a fake exit point in dli_inet to fool optimizers. (otb/sys/dl_inet/dli_inet.c) 7/27 RBD mod Accept "localhost" as the root hostname in find_root(). (share/boot/nail.lam.c) 8/17 RBD mod Add -ltools, -ltrillium, and -largs in hcc and hf77. (tools/hcc/hcc.c, tools/hf77/hf77.c) 8/24 RBD fix Use rsh -n option to avoid rsh bug. Close child process' dup2()'ed pipes. (share/boot/inetexec.c) 8/25 RBD fix Close the pipes of the parent process in inetexec(). (share/boot/inetexec.c) 9/1 RBD mod Use new getroute() call. (share/nreq/nsend.c) 9/2 RBD mod Add link #s in route table. Remove dumb route code. (otb/sys/lamrouter/lamrouter.c) 9/2 RBD mod Change getroute() interface and remove getroute2(). (share/rreq/getrent.c) 9/2 RBD mod Change rsetroute() interface + face-lift. (share/rreq/rsetroute.c) 9/2 RBD mod Support independent link # and event in castd and dld. (share/castd/{castd.c, combine.c}, share/dld/dld.c) 9/3 RBD mod Support independent link # and forwarding event. (share/h/trillium/rreq.h) 9/7 RBD mod Upgrade ncombine() to new bufferd: NOBUF drecv(). (share/nreq/ncombine.c) 9/15 RBD mod Declare ANSI C and C++ function prototypes. (share/h/trillium/{all_hash.h, all_list.h, all_queue.h, all_slist.h, castreq.h, ereq.h, freq.h, ksignal.h, ktrace.h, preq.h, t_types.h, terror.h, trreq.h, tstdio.h}) 9/16 GDB mod Add errno declaration. (share/h/trillium/terror.h) 9/24 RBD mod Block signals before nsend() in do_rcstate(). (share/trillium/rcstate.c) 9/24 RBD mod Add multiplication combining, remove cask(), keep count of fully reeled messages + face-lift. Upgrade castd to support the new buffering and combine all supported data types. (share/h/trillium/castreq.h, otb/cstate/cstate.c, share/cast/{castd.c, combine.c}) 10/4 GDB mod Restructure for lint. (lib/otb/t/kreq/kcreate.c) 10/12 JRV fix Mod for SCO ANSI C compilation. (share/tstdio/{tscan.c, tfprint.c}) 10/13 GDB fix Add kr_sigs, for status as opposed to delivered signals. (share/kreq/kstate.c) 10/13 RBD mod Verify with ki_pid, not RTF_KERNEL. (share/kreq/kinit.c, kexit.c) 10/13 GDB mod Add ki_siglast, the last signal received. (share/kreq/krecv.c, ksend.c, kwait.c) 10/13 GDB mod Rewrite, given new kernel. (share/dld/dld.c, share/h/trillium/dlreq.h) 10/13 GDB mod Add SIGARECV, for arecv() support. (share/h/trillium/ksignal.h) 10/13 GDB mod Add ki_siglast and ki_pid. (share/h/trillium/kio.h) 10/13 GDB mod Add separate preempt flag, request. Add kr_sigs, for status as opposed to delivered signals. (share/h/trillium/kreq.h) 10/13 GDB mod Remove rq_src_node. Router does not handle remote requests. (share/h/trillium/kreq.h) 10/13 GDB mod Changes reflect new bufferd, PRMAX for KSUPER, groupd. (share/h/trillium/priority.h) 10/13 GDB mod Add errno and other miscellaneous changes. (share/h/trillium/terror.h) 10/13 GDB mod Rrnodewait() becomes getnewnode(). (share/rreq/rrnodewait.c, getnewnode.c) 10/13 GDB mod Remote remote replies. Use KSUPER. (share/rreq/getnet.c, getnodes.c, getrent.c, getsmart.c, rroute.c, rsetroute.c) 10/13 GDB fix Move ksigblock() before nsend() due to new kernel. (share/trillium/lpdetach.c, recho.c, rflat.c, rflclean.c, rget.c, rload.c, rp*.c, lib/otb/t/nreq/lpattach.c) 10/13 GDB mod Verify with ki_pid, not RTF_KERNEL. Remove ESURRENDER. (lib/otb/t/kreq/clientio.udp.c, couter.c) 10/14 GDB mod Use prototypes from header file. (otb/state/state.c) 10/14 GDB mod Always use buffers. (otb/sys/filed/fqstate.c, otb/sys/kenyad/pqdetach.c, pqstate.c) 10/14 GDB mod Add a couple of declarations. (otb/sys/kernel/kernelio.udp.c) 10/14 GDB mod Add KPENDING, KPREEMPT and KQPREEMPT. Re-organize mainline for KPENDING and to repair signal delivery bug. (otb/sys/kernel/kouter.c) 10/14 GDB mod Add KSUPER. (share/kernel/kinner.c) 10/14 GDB mod Do not attach to kenyad and never use buffers. Separate datalink events and links. (otb/sys/lamrouter/lamrouter.c) 10/14 RBD mod Add EVGROUPD, change EVBUFFER to EBVFORWARD and change the datalink events. (share/h/trillium/events.h) 10/14 RBD mod Added nh_dl_link (output link #) to struct nmsg. Added ANSI C and C++ function prototypes. Cleanup/upgrade of nh_flags constants. Fixed typo in getjones() macro. 10/14 RBD mod Getrentc() replaces getroute2() in shared library. (share/h/trillium/shared.h, itb/sys/shared/shared.c) 10/14 RBD mod Support UDP communication between OTB nodes. Maintain the OTB nodes order as in the boot schema. (share/boot/nail.h, share/boot/nail.lam.c) 10/14 GDB mod Add PRBFORWARD. (share/h/trillium/priority.h) 10/14 GDB mod Upgrade to new bufferd. (share/trillium/bfprobe.c, rbfstate.c, otb/bfstate/bfstate.c, otb/buffer/buffer.c) 10/15 RBD mod Store (test) pid to indicate (check if) the process is attached to the kernel. (lib/otb/t/kreq/{kdetach.c, clientio.msg.c}) 10/15 RBD mod Upgrade dl_inet to support multiple links and reliably use UDP socket for inter-dl_inet communication. (otb/sys/dl_inet/{dl_mom.c, dli_inet.c, dlo_inet.c}) 10/15 RBD mod Add support for the dl_inet UDP port. (share/etc/bootsockio.c) 10/15 RBD mod Pass -v to tkill in wipe debug mode only. (tools/wipe/wipe.c) 10/15 RBD mod Pass -v to hboot in lamboot debug mode only. Print the hostname of the node being booted. (tools/lamboot/lamface.c) 10/15 RBD mod New lamboot strategy: get host ports right after booting the node, and don't get final ACK from hosts. (tools/lamboot/lamboot.c) 10/15 RBD mod Block signals before nsend() + face-lift. (share/trillium/rcast.c) 10/15 RBD mod Don't use buffers, change nsend() to dsend(). (share/trillium/ldlattach.c) 10/15 RBD mod Add EINGROUP and EGMAXPROC, remove ESURRENDER. (share/etc/terror.c) 10/15 GDB mod Declare collect(). (otb/bfstate/bfstate.c) 10/15 GDB mod Declare static functions. Include select.h for AIX. (otb/sys/dl_inet/dlo_inet.c) 10/15 RBD fix Handle the no-node case in rqgetnodes(). (otb/sys/lamrouter/lamrouter.c) 10/15 RBD mod Declare forkdlio(). (otb/sys/dl_inet/dl_mom.c) 10/15 RBD mod Change function names to recvmessage(), sendmessage(). (otb/sys/dl_inet/dlo_inet.c) 10/15 RBD fix Pass the -s option to hboot for remote nodes only. (tools/lamboot/lamface.c) 10/15 GDB fix Do not malloc() 0 bytes. (otb/bfstate/bfstate.c) 10/15 GDB fix Free() only space from malloc(). (otb/loadgo/loadgo.c) 10/15 RBD fix Use dl_inet header to communicate to other dl_inets. Trollius header has char *, and sizeof(char *) varies. (otb/sys/dl_inet/{dl_inet.h, dli_inet.c, dlo_inet.c}) 10/18 GDB fix Skip loop on -c, -a, before printing anything. (otb/fstate/fstate.c) 10/18 RBD fix Detach from kernel after receiving neighbour info. (otb/sys/dl_inet/dl_mom.c) 10/18 all rel Ohio LAM 2.2.3.3 10/25 RBD mod Check for duplicate hosts in topology tools. (share/boot/nail.lam.c) 10/29 RBD mod Add default -I and -L paths after the user command. (tools/hcc/hcc.c, tools/hf77/hf77.c) 11/9 RBD mod Add PRGROUP. (share/h/trillium/priority.h) 11/9 RBD mod Add EGSINGLETON. (share/etc/terror.c, share/h/trillium/terror.h) 11/11 RBD mod Add EBADGROUP and EGNOTPROC. (share/etc/terror.c, share/h/trillium/terror.h) 11/12 RBD mod Include in net.h for convenience. (share/h/trillium/net.h) 11/12 RBD mod Move the combining functions to libt.a. They will be used by castd and group communication. (share/castd/combine.c) 11/17 GDB mod Pass filename to kkillopen(). (otb/sys/kernel/kkill.c, kernelio.udp.c) 11/17 RBD fix Make find_root() change "localhost" to the hostname. (share/boot/nail.lam.c) 11/21 RBD fix Handle the case where malloc() fails. (share/T/etc/TERROR.c) 11/22 RBD fix Make KENTER() call malloc() before kinit(). (share/T/kreq/KINIT.c) 11/22 RBD mod Add rcasttype() wrapper and do a face-lift. (share/T/trillium/RCAST.c) 11/23 RBD mod Add the predefexp() stub (full Trollius version). (share/etc/predef.c) 11/23 GDB mod Add new prototypes; remove old ones. (share/h/trillium/net.h) 11/23 GDB fix Do not copy network message descriptor. (share/nreq/arecv.c) 11/23 RBD mod Make tping accept multiple nodes + face-lift. (otb/tping/tping.c) 11/23 RBD mod Make these command work with and without castd. (otb/buffer/buffer.c, otb/doom/doom.c, otb/loadgo/loadgo.c) 12/1 RBD mod Upgrade NET.h to the new F77 wrappers. (share/h/trillium/NET.h) 12/2 GDB fix Increment nh_msg by byte count. (share/trillium/rbfstate.c) 12/2 RBD mod Open filed stdio on origin node only. (otb/sys/filed/filed.c) 12/5 GDB mod Convert to internal process. (share/bufferd/bufferd.c, share/echod/echod.c, share/router/router.c, share/h/trillium/rreq.h) 12/5 GDB mod Add buckeye daemons. (share/h/trillium/priority.h) 12/5 GDB mod Add parent node and event to status record. (share/h/trillium/preq.h, share/trillium/rpstate.c, otb/sys/kenyad/pqdetach.c, pqstate.c) 12/5 JRV fix Repair function header comment. (otb/doom/doom.c) 12/6 GDB mod Use one way protocol. (lib/otb/trillium/lpattach.c, otb/sys/kenyad/pqdetach.c) 12/6 GDB mod Define KPKTLEN (used to be in kreq.h). (lib/otb/t/kreq/clientio.udp.c) 12/6 GDB mod Remove -t option to router. (tools/lamboot/lamboot.c, lamface.c) 12/7 GDB mod Add const to prototypes. (share/h/trillium/kreq.h) 12/8 GDB mod Add PRBRENDAD. (share/h/trillium/priority.h) 12/8 GDB mod Support internal processes. (share/kernel/kinner.c, otb/sys/kernel/kouter.c, kernelio.udp.c) 12/8 rel Ohio LAM 2.2.6 12/11 RBD mod Use const in prototypes in several header files. 12/16 JRV fix Change LOCAL to getnodeid() for remote requests. (otb/loadgo/loadgo.c) 12/16 JRV mod Upgrade to make flatd stateless. (share/trillium/rflat.c, otb/sys/flatd/flatd.c, share/trillium/h/trillium/flatreq.h) 12/20 JRV mod Add more robust error handling. (share/h/trillium/flatreq.h, otb/sys/flatd/flatd.c) 1/4/94 RBD mod Make prime package not rely on libm (sqrt()). (share/etc/prime.c) 1/4 RBD mod Add support for gudie(), gwipe(), and group names. (share/h/trillium/greq.h, share/groupd/groupd.c) 1/7 RBD fix Include to fix getroute() prototype. (share/h/trillium/rreq.h) 1/7 RBD fix Fix ahs_init() prototype. (share/h/trillium/all_hash.h) 1/7 RBD mod Change lfreeall() to return void + face-lift. (share/trillium/rmalloc.c) 1/7 RBD mod Make list elements (void *) instead of (char *). (share/h/trillium/{all_list.h, all_slist.h}, share/trillium/etc/{all_list.c, all_slist.c}) 1/7 RBD mod Make system macros compiler-independent. (share/h/trillium/{portable.h, t_types.h}) 1/7 RBD mod Use new SGI system macro. (tools/hcc/hcc.c, tools/hf77/hf77.c) 1/7 RBD fix Do not modify string, use internal copy + face-lift. (share/args/split.c) 1/8 GDB mod Remove dependence on bootreq.h. (share/boot/conf.c) 1/8 RBD mod Remove const from functions and prototypes. (share/h/trillium/{all_hash.h, all_list.h, all_queue.h, all_slist.h}, share/etc/all_list.c) 1/8 RBD mod Use getcltstrsock() without timeout in precvopen(). (lib/otb/t/nreq/precv.c) 1/9 RBD mod Remove -lT from hf77. (tools/hf77/hf77.c) 1/9 RBD mod The F77 wrappers are in libt and libtrillium now. LibT no longer exist. 1/11 RBD mod Upgrade dl_inet to a sliding-window protocol (otb/sys/dl_inet/{dl_inet.h, dli_inet.c, dlo_inet.c}) 1/12 RBD mod Do not exchange nodeid between dl_inet and lamboot. (share/etc/bootsockio.c, tools/lamboot/lamboot.c, otb/sys/dl_inet/dl_mom.c) 1/12 RBD mod Upgrade state to print blocking function name. (otb/state/state.c) 1/13 GDB mod Reconfigure as internal process. (share/dld/dld.c, dl_main.c) 1/15 RBD mod Make dlo_inet a separate program initialized by dli_inet. Remove valve signals, use message passing. (otb/sys/dlo_inet/dlo_inet.c) 1/18 RBD mod Make dli_inet a separate program. (otb/sys/dli_inet/dli_inet.c) 1/18 JRV mod Add event parsing with 'e' to parse_procs(). (share/args/parse_procs.c) 1/18 JRV mod Refit libpvm to remove brendad, and misc. polishing. (share/pvm/bfprobew.c, bfrecvw.c, bufutil.c, config.c, group.c, initsend.c, kill.c, pvmdata.h, recv.c, send.c, spawn.c, tasks.c) 1/27 JRV mod Remove lpvmd from the dungeon. (otb/sys/lpvmd) 1/27 JRV fix Remove remapfd() from tstdio. (share/tstdio/iomap.c) 1/31 JRV mod Reinsert stdin redirection. (otb/loadgo/loadgo.c) 2/4 RBD mod Add group caching. (share/greq/{gexch.c, ggetgroup.c, ggetproc.c, grecv.c, gsend.c, gsimple.c}, share/h/trillium/greq.h) 2/4 RBD mod Limit # pending messages per link. (share/h/trillium/dl_inet.h) 2/4 RBD mod Add events: EVMPI, EVPVM, EVDLOINIT, EVTIMEOUTD. (share/h/trillium/events.h) 2/4 RBD mod Add priorities: PRTIMEOUTD, PRPVMMSG, PRPVMTASK. Bump up the value of PRDLI. (share/h/trillium/priority.h) 2/4 GDB mod Save priority in kio. (lib/otb/t/kreq/kattach.c) 2/4 GDB mod Use portable kbgetpid(). (lib/otb/trillium/lpattach.c) 2/7 RBD mod Set TCP_NODELAY on the psend() socket. (lib/otb/t/nreq/psend.c) 2/11 RBD mod Use f2cstring() in libpvm F77 wrappers. (share/pvm/LIBPVM.c) 2/15 GDB mod Rewrite as a wrapper for rpstate() and rploadgo(). (share/trillium/rpspawn.c) 2/15 GDB mod Revise for ANSI C and small facelift. (share/trillium/rload.c) 2/15 GDB mod Revise bufferd request codes. (share/trillium/rbfparms.c, rbfstate.c, rbfsweep.c) 2/15 RBD mod Include for malloc(). (share/boot/confy.y) 2/15 RBD mod Include + face-lift. (share/freq/rfwrite.c) 2/15 RBD mod Add -lsocket and -lnsl for Solaris machines. (tools/hcc/hcc.c, tools/hf77/hf77.c) 2/15 RBD mod Use setvbuf() instead of setlinebuf(). (otb/sys/kernel/kkill.c) 2/15 RBD mod Upgrade to use POSIX signal blocking. (lib/otb/t/kreq/{couter.c, kattach.c, kdetach.c, kwait2.c}) 2/15 RBD mod Use getcwd() in Solaris. (share/etc/getworkdir.c) 2/15 RBD mod Change to . (lib/otb/trillium/lpattach.c) 2/15 RBD mod Remove memcpy() declaration. (lib/otb/t/etc/sockface.str.c) 2/15 RBD mod Upgrade to use the CONST macro. (share/trillium/recho.c) 2/16 RBD mod Add homogeneous system option to lamboot. (tools/lamboot/{lamboot.c, lamface.c}) 2/16 GDB mod Convert to internal process. (otb/sys/dli_inet/dli_inet.c, otb/sys/dlo_inet/dlo_inet.c, otb/sys/filed/*, otb/sys/flatd/flatd.c, otb/sys/kenyad/*, otb/sys/loadd/loadd.c, share/bforward/bforward.c, share/groupd/groupd.c, share/h/trillium/lreq.h, share/h/trillium/preq.h) 2/16 RBD mod Add selective sweeping by event and pid. Change the command name from buffer to bfctl. (otb/bfctl/bfctl.c) 2/16 GDB mod Add kbgetpid(). (otb/sys/kernel/kiproc.c) 2/16 GDB mod Complete internal process support. (otb/sys/kernel/kernelio.udp.c, kouter.c, share/kernel/kinner.c) 2/16 GDB mod Revise interface and argument parsing. (otb/sys/router/rtdinit.lam.c) 2/16 RBD mod Add the CONST macro. (share/h/trillium/portable.h) 2/16 RBD mod Add SUN4_SOL (share/h/trillium/portable.h) 2/16 RBD mod Change the default byte ordering. Add SUN4_SOL. (share/h/trillium/t_types.h) 2/16 RBD mod Remove some consts in prototypes. (share/h/trillium/args.h) 2/16 RBD mod Upgrade to use the CONST macro. (share/kreq/ktrace.c, share/etc/terror.c, share/freq/{rfopen.c, rfsimplex.c, rfstat.c, rfwrite.c}, share/trillium/{rpcreate.c, rtrstore.c}, share/tstdio/{tfdopen.c, tfopen.c, tfputs.c, tfwrite.c}, share/greq/{gexch.c, gsend.c}, lib/otb/trillium/lpattach.c) 2/16 RBD fix Fix recvfrom() bug. mod Use POSIX signal blocking. Don't use setlinebuf() and getdtablesize(). (lib/otb/t/kreq/clientio.udp.c) 2/16 GDB mod Revise node ID printing. (share/args/mnemonic.c) 2/16 GDB mod Add "SQL" synchronization for other paradigms. (share/bufferd/bufferd.c, share/h/trillium/bfreq.h) 2/16 GDB mod Change name of kill file. Agree with SysV constants. (share/etc/kill.c) 2/16 GDB mod Add greq.h. Remove compatibility for ancient versions. Remove link to/from event conversion. Revise datalink filter types. (share/h/trillium/net.h) 2/16 GDB mod Remove dlreq.h. (share/nreq/dsend.c) 2/16 GDB mod Rename datalink type filter. Rename bfprobe() to nprobe() and add compatibility wrapper for bfprobe(). (share/nreq/nrecv.c, share/nreq/nprobe.c) 2/16 GDB mod Rename datalink type filter. Pass my priority to bufferd. (share/nreq/arecv.c) 2/16 GDB mod Examine but do not parse arguments here. (share/router/r_main.c) 2/16 GDB mod Facelift one more time. Change interface to rtdinit(). (share/router/router.c) 2/16 GDB mod Move getntype() from getnet.c to getnodes.c. (share/rreq/getnet.c, getnodes.c) 2/16 GDB mod Change buffer to bfctl. (otb/bfctl/sweep) 2/17 RBD fix Use not . (share/trillium/rget.c) 2/17 RBD mod Cast filename to non-const (char *). (share/trillium/rload.c) 2/17 JRV fix Add 'const' for gcc. Fix bad realloc ptr use. mod (share/pvm/{bfrecvw.c, bufutil.c, config.c, group.c, pack.c, perror.c, recv.c, send.c, spawn.c, unsup.c}) 2/17 JRV mod Make "O" the default node selection. (otb/pvmmsg/pvmmsg.c) 2/17 RBD mod Replace getdtablesize() by a reasonable constant. (tools/hboot/hboot.c) 2/17 RBD mod Use getcwd() in Solaris. (otb/sys/filed/fface.c) 2/17 GDB fix _kio is extern. (share/nreq/arecv.c) 2/18 GDB mod Use portable _lam_signal(). (lib/otb/t/kreq/clientio.udp.c, couter.c, otb/sys/kenyad/kenyad.c, otb/sys/kernel/kernelio.udp.c) 2/18 RBD mod Include and . (lib/otb/t/nreq/psend.c) 2/18 GDB mod No match on SELECT_APPL is not an error. (otb/sys/kenyad/pqdoom.c) 2/18 RBD mod NOBUF dli_inet's ACK messages. (otb/sys/dli_inet/dli_inet.c) 2/19 RBD mod Add compiler-dependent macros as a safety guard. Force a parsing error if no system macros are defined. (share/h/trillium/{portable.h, t_types.h}) 2/19 GDB fix Do not assume that nh_msg points to msg. (share/bufferd/bufferd.c) 2/21 GDB mod Initialize kio signal variables. (otb/sys/lamd/kiproc.c) 2/21 GDB fix Rewrite message receive to be int/ext portable. (share/bforward/bforward.c) 2/21 RBD mod Remove CUBIX backward compatibility functions. (share/freq/{rf77.c, rfatexit.c, rfclose.c, rfcubix.c, rfopen.c, rfread.c, rfsimplex.c, rfstat.c rfwrite.c) 2/21 RBD mod Change some F77 f2c function names to remove clashes with C functions on RS6K. (share/etc/T.c, share/nreq/ARECV.c, share/trillium/TRILLIUM.c) 2/22 GDB fix Make MAXOTBNLINK a large number. (share/h/trillium/net.h) 2/22 GDB fix Malloc space for neighbour nodeids. (share/bufferd/bufferd.c) 2/23 RBD mod Decrease # dlo_inet window slots to 8. (share/h/trillium/dl_inet.h) 2/24 GDB fix Use argvglue() to pack argv. (share/trillium/rpcreate.c, rploadgo.c) 2/24 GDB fix Use argvbreak() to unpack argv. (otb/sys/kenyad/pqcreate.c, pqdetach.c) 2/24 GDB mod Remove patch_argv() and pack_argv(). (share/h/trillium/args.h) 2/24 GDB fix Save and restore nh_msg in buffer(). (share/bufferd/bufferd.c) 2/24 RBD mod Declare our own LAM_O_ file flags and use them. Do the LAM -> UNIX flag conversion in fface.c. (share/h/trillium/{freq.h, FREQ.h}, otb/fstate/fstate.c, otb/loadgo/loadgo.c, otb/sys/filed/{fdesc.c, fface.c, fqcubix.c, fqf77.c, fqopen.c, fqread.c}, share/freq/{rfcubix.c, rfopen.c, rfwrite.c}) 2/25 GDB mod Use SIGKILL as last resort. (tools/tkill/tkill.c) 2/28 rel Ohio LAM 2.2.7 3/7 JRV fix Don't argvbreak() null program names. (otb/sys/kenyad/pqdetach.c) 3/7 JRV fix Use specific sync info to recv multipacket messages. (share/pvm/recv.c) 3/14 JRV mod Pretty-print MPI and PVM events. (otb/bfstate/bfstate.c) 3/15 GDB mod Keep a close count on the valve. (otb/sys/dlo_inet/dlo_inet.c) 3/16 GDB mod You can't discern a dlo message, forwarded or not, by just looking at nh_type. (otb/sys/dlo_inet/dlo_inet.c) 3/16 GDB mod Rename to 2.2.8. (tools/lamboot/lamboot.c) 3/21 RBD mod Add blocking types for gquorum() and gbarrier(). Do not block their doom signals. (share/greq/{gquorum.c, gsimple.c}) 3/22 GDB mod Allow the user to pass MPI world population from loadgo to _kio in new processes. (share/h/trillium/kio.h, preq.h, otb/loadgo/loadgo.c, share/trillium/rpcreate.c, rpgo.c, otb/sys/kenyad/pqcreate.c, lib/otb/t/kreq/clientio.udp.c) 3/22 GDB mod Add extra sync information to sql requests. Add a block sql probe request. (share/bufferd/bufferd.c, share/nreq/bfrecvsql.c, share/h/trillium/bfreq.h) 3/22 GDB mod Properly filter datalink ack messages. (share/nreq/dsend.c) 3/23 RBD mod Add blocking-types for MPI, gbarrier() and gquorum(). (share/h/trillium/blktype.h, share/etc/blktype.c) 3/23 GDB mod Include DDLI in ack message. (otb/sys/dli_inet/dli_inet.c) 3/24 GDB mod Add extra parameter for pq_world. (otb/sys/kenyad/kenyad.c) 3/24 rel Ohio LAM 2.2.8 3/30 JRV fix Fix normalize loop for floats/doubles to check for 0. (share/tstdio/tprint.c) 3/30 JRV fix Make pvm_gettid() find the right instance. (share/pvm/group.c) 4/8 JRV fix Add PvmTaskDefault flag and fix parameter checking. (share/pvm/spawn.c, share/h/trillium/pvm3.h) 4/20 RBD fix Add ok-to-connect protocol when creating the VC. Block SIGUSR1 in psendopen() during accept(). Loop trying to connect() in precvopen(). (lib/otb/t/nreq/{psend.c, precv.c}) 4/21 RBD fix Add support for hosts with multiple network interfaces. (share/boot/nail.lam.c) 4/22 GDB fix Return badd node errors to client. (otb/sys/loadd/loadd.c) 4/26 GDB fix Fool smart-ass compilers about abort(). (share/mpi/abort.c) 4/26 rel Ohio LAM 2.3 2.1 --- DATE AUTHOR STATUS DESCRIPTION 3/21/91 OSU rel Ohio Trollius 2.1 3/25 GDB fix Reorder headers and add conditional compilation to avoid clashes on size_t in SunOS 4.1. (lstt/itb/libc/stdio/fdopen.c, fopen.c, lib/h/lstt/stddef.h) 3/27 RBD fix The dl_mom binary file is renamed dl_dev in the b014 installation. (machine/b014/bin/sys/dl_dev/Makefile) 3/27 RBD fix The filesys daemon is renamed filed in the B014 installation. (machine/b014/tools/bin/confs/conf.{otb, SA}) 3/27 RBD fix Added the exit(0) call to the export and cboot toolkit layer programs, upon successful termination. This was done in all three installations: nt1000, meiko, b014. (machine/nt1000/tools/bin/cboot/cboot.c, machine/nt1000/tools/bin/export/export.c, machine/meiko/tools/bin/cboot/cboot.c, machine/meiko/tools/bin/export/export.c, machine/b014/tools/bin/cboot/cboot.c, machine/b014/tools/bin/export/export.c) 4/1 RBD mod Upgraded the B014 version of the solder tool to enable it to read the device name from the NaIL file. (machine/b014/tools/bin/solder/solder.[ch]) 4/4 GDB fix Use the portable ReadLink() in the b014 moses not read()! (machine/b014/tools/bin/moses/mosesy.y) 4/8 GDB fix Rehabilitate export, cboot and thaw in b014 port to conform to link.c standard. 4/8 GDB fix Clean up error checking in b014 dl_dev to conform to link.c standard. (b014/bin/sys/dl_dev/dl_idiot.c) 4/8 GDB fix Replace b014 memory auto-sizer with more robust model. (b014/itb/sys/mallocd/maconfig.c) 4/8 GDB fix Set DEFPCONFIG override in thaw Makefile to correct directory. 4/10 GDB mod Change root transputer to host link number to 0 from 1 in b014 boot schemata. 4/15 RBD fix Added the exit(0) call to fish upon successful termination. This was done in two installations: meiko and b014 (nt1000 already had the exit(0)). (machine/meiko/tools/bin/fish/fish.c, machine/b014/tools/bin/fish/fish.c) 4/19 GDB fix Remove ack protocol from b014 dl_dev for compatibility with dl_ortho. (machine/b014/bin/sys/dl_dev/dl_idiot.c, dli_dev.c, dlo_dev.c) 4/19 GDB fix Add dl_ortho program (similar to dl_meiko) for the host connection of the device connected ITB node in the b014 dungeon. This is not needed for the b014 but for non device driver ports based on b014. (machine/b014/itb/sys/dl_ortho) 4/19 GDB mod Seperate remote ITB reset portion of boot daemon into machine dependent subdungeon. (machine/*/itb/sys/bootd/btreset.c, itb/sys/bootd/image.c, frozen.c) 4/24 GDB fix Remove hanging wires from the old filesys. (bin/sys/kernel/kernelio.msg.c) 4/24 GDB rel VMTM port, 2.1 4/28 GDB mod Add F77 IATOI() to ITB and OTB. (tools/otb/libT/etc/IATOI.c, tools/uls/itb/libf77/gen/IATOI.c) 5/1 GDB fix Substitute local variable err for volatile errno. (bin/sys/filed/fqread.c) 5/6 GDB fix Watch out for null prefix. (lib/etc/search.c) 5/8 GDB fix What is GENESYS? (uls/itb/libf77/uf77io/errmsg.c) 5/22 RBD fix Enhanced the portability of filed by adding a few casts to int4. (lib/freq/rfsimplex.c, lib/h/trillium/freq.h) 5/22 RBD fix Incremented the length of the do_getwd() string to account for the NULL character. (bin/sys/filed/fqsimplex.c) 5/23 RBD fix Modified the nail.l man page to refer to getnet.l in regards to the node type bit field. (man/nail.l) 5/26 RBD fix Fixed a typo in the error message of tping in the case of a negative message size. (bin/tping/tping.c) 5/26 RBD fix Check if the EOF is reached with a comment is still open, while parsing a NaIL file. (lib/boot/naill.l) 5/29 RBD fix Free the malloc'ed memory within trout_e(). Fixed a typo in the error message when malloc fails. (bin/trout/trout.c) 6/03 RBD fix Corrected signal masking in ksigblock(). (lib/rreq/{getnet.c, getnodes.c, getrent.c, rrattach.c, rroute.c, rsetroute.c}, lib/trillium/rmalloc.c) 6/04 RBD fix Fixed a bug in the precedence rules of the loop termination expression in itoa(). Added an OTB version of itoa(). Fixed the calling of ito() in the ITB version of perror(). (tools/lstt/itb/libc/{gen/itoa.c, etc/perror.c}, tools/otb/libt/etc/itoa.c) 6/05 GDB fix I can't see any reason to modify the parent reply event in kenyad and rpwait(). Beside, it was implemented incorrectly. It has now been removed. (lib/trillium/rpwait.c, itb/sys/kenyad/pdetach.c) 6/05 GDB fix Pass the pointer not the whole stat structure in stat() and fstat(). (bin/sys/filed/fface.c) 6/05 RBD fix Enhanced the portability of code that was supposed to be portable to the PC: the boring int/int4 question. (lib/etc/all_queue.c, lib/boot/{nail.c, naily.y}, tools/bin/spread/spread.c) 6/10 RBD fix Changed both ITB and OTB itoa() to return nothing. Fixed the itoa() call in the ITB perror(). This should have been done correctly the first time. (tools/lstt/itb/libc/{gen/itoa.c, etc/perror.c}, tools/otb/libt/etc/itoa.c) 6/11 GDB mod Keep a better record of clients in chcx. (bin/sys/filed/fqcubix.c) 6/27 VAR fix Deleted line in tsend.c which incorrectly set nhead->nh_flags to 0. This was nullifying all flags (e.g data conversion flags) set by user. (lib/nreq/tsend.c) 7/10 RBD fix Fixed the function referencing in the byte-ordering Fortran wrappers on the host. They call the C macros instead of other Fortrans wrappers. (tools/otb/libT/nreq/{TTOL.c, LTOT.c}) 7/12 RBD fix Enhanced the portability of FTTOLF, FLTOTF and FRF to run on all Sun architectures. Gave the files a face-lift. (tools/otb/libT/nreq/{TTOL.c, LTOT.c, REVERSE.c}) 7/15 RBD fix Changed the words to be reversed to unsigned quantities as they should be. This fixes a 'dirty code' problem when using the ULS compiler. (lib/etc/rw.c) 8/7 RBD fix Another place where local variable err replaces errno. (bin/sys/filed/fqread.c) 10/3 GDB mod Add i860d and traced events. (lib/h/trillium/events.h) 10/3 GDB mod Change SIGROUTE (never used) to SIGTRACE. (lib/h/trillium/ksignal.h) 10/3 GDB mod Add runtime support for traced. (lib/h/trillium/kio.h, lib/kreq/kinit.c, lib/nreq/nrecv.c, lib/nreq/nsend.c, lib/h/trillium/ktrace.h, lib/kreq/ktrace.c, tools/itb/crt0/crt0.c) 10/6 GDB mod Change moses M_COLD to M_STTIMER. (lib/h/trillium/moses.h, tools/lstt/itb/moses/moses.ts) 10/6 GDB mod Add function to synchronize neighbour's clock. (itb/sys/bootd/bmoses.c, frozen.c, image.c) 10/8 GDB mod Add runtime support for traced. (lib/trillium/rtrattach.c, rtrstore.c) 10/9 GDB mod Add OTB ldtimer() to match ITB function. (tools/otb/libt/etc/ldtimer.c) 10/9 GDB mod Use upgraded portable.h. (lots of files) 10/9 GDB fix Rmstate() was ill-designed and is substantially rewritten. (lib/trillium/rmstate.c) 10/9 GDB fix Receiving a zero length datagram seems to be a bad idea. (tools/otb/libt/kreq/clientio.udp.c) 10/9 GDB mod Allow mallocd descriptor blocks to be reported by mstate as memory regions allocated to mallocd. (itb/sys/mallocd/mallocd.c, madesc.c) 10/20 GDB mod Add static and dynamic list processing packages. (lib/etc/all_list.c, all_slist.c) 10/20 GDB fix Use more modern, portable fcntl.h. (lib/trillium/rdrain.c) 10/20 RBD mod Add static and dynamic hash table processing packages. It replaces the old hashing functions. (lib/etc/all_shash.c, nall_hash.c) 10/20 RBD mod Add static queue processing package and overhaul the dynamic queue package to fit the new interface. (lib/etc/all_squeue.c, all_queue.c) 10/20 RBD mod Add the string splitting function, split(), to libargs. (lib/args/split.c) 10/20 RBD mod Make tsend/trecv compatible with nsend/nrecv. (lib/nreq/tsend.c, trecv.c) 10/22 RBD mod Make TSEND/TRECV compatible with NSEND/NRECV. (tools/itb/libf77/nreq/TSENDRECV.c, tools/otb/libT/nreq/TSENDRECV.c) 10/24 GDB mod Declare global variables for tempermental compilers. (lib/freq/rflseek.c, rfread.c, rfwrite.c) 10/24 GDB mod Make sure MAXPATHLEN is defined. (lib/freq/rfsimplex.c) 10/24 RBD mod Add the Basic message passing calls: bsend/brecv, sendb/recvb, and BSEND/BRECV. (lib/nreq/bsend.c, brecv.c, sendb.c, recvb.c, tools/itb/libf77/nreq/BSENDRECV.c, tools/otb/libT/nreq/BSENDRECV.c) 10/27 GDB mod Change O_ASYNC to O_NOCBX to avoid conflicts. (lib/h/trillium/freq.h, lib/freq/rfopen.c, lib/freq/rfcubix.c, bin/sys/filed/fqopen.c) 10/27 GDB mod Change lseek() constants to Sys V world. (bin/sys/filed/fqopen.c, bin/sys/filed/fdesc.c, bin/sys/filed/fqf77.c) 10/27 GDB mod Use fcntl.h for open() flags. (lib/kreq/kinit.c) 10/27 GDB mod Exit functions are declared type void. (tools/otb/libt/kreq/clientio.udp.c) 11/1 GDB fix Correct cpp bug and include i860 and 386i. (lib/h/trillium/t_types.h) 11/1 GDB fix Signal() accepts ptr to func returning void. (bin/sys/kernel/clientio.udp.c) 11/10 GDB mod Minor overhaul of mallocd and friends fixes several problems. (every file related to mallocd) 11/11 RBD mod Moved is_prime() and next_prime() to lib/etc. (lib/etc/prime.c) 11/11 GDB mod Add CRAY to t_types.h. 11/13 GDB mod Remove unportable pointer arithmetic. (lib/kernel/kkenya.c) 11/13 GDB mod Don't allocate buffer space if length is 0. (bin/tping/tping.c) 11/13 GDB mod Remove declarations for non-existant functions. (bin/sys/sa_rtr.c) 11/19 GDB mod Malloc()'s argument is universally unsigned int, not int4. (bin/sys/filed/fqf77.c) 11/26 RBD mod Modified the NaIL parser and support functions to use libtools and include a second route table. (lib/boot/naily.y, nail.c, nail.h) 11/26 RBD mod Total redesign of the route tools support code. (lib/boot/routeio.c, routeio.h) 11/26 RBD mod New rasm tool: less memory, less code, 2nd route table. (tools/bin/rasm/rasm.c) 11/26 RBD mod Modified trout to use the new route support functions. (bin/trout/trout.c) 11/26 RBD mod Modified spread to use libtools. Did a small face-lift. (tools/bin/spread/spread.c) 11/26 RBD mod Overhaul of map: less memory, less code, 2nd route table, use libtools, major face-lift. (tools/bin/map/map.c, map.h, map_funct.c, map_route1.c, map_route2.c) 11/27 RBD mod Modified some router requests to support the second route table and added the new rrnodewait request. (lib/rreq/getrent.c, rroute.c, rsetroute.c) (lib/rreq/rrnodewait.c, lib/h/trillium/rreq.h) 11/27 RBD mod Added integer array byte ordering macros. (lib/h/trillium/t_types.h) 11/27 RBD mod Modified the router to support the second route table and use the functions in libtools. Added suport for the RNODEWAIT request. (lib/router/router.c) 11/27 RBD mod Modified the NT1000 solder tool to use libtools and the new search module. (machine/nt1000/tools/bin/solder/solder.c) 11/27 GDB fix Declare rmalloc(), bozo. (tools/itb/libc/kreq/kpar_Fe.c) 12/3 GDB mod Make sure MAXPATHLEN is defined. (bin/tfile/tfile.c) 12/4 RBD mod Added link weight option to route2 algorithm. (tools/bin/map/map.c, map_route2.c, map.h) 12/9 RBD mod Moved the route file templates and constants from routeio.h to rtio.h. DEFPROUTE is now in boot.h. (lib/boot/routeio.h, rtio.h, boot.h) 12/16 GDB mod Add RTF_TRACE carry-over from parent. (tools/itb/libc/kreq/kpar_Fe.c) 12/16 GDB mod Remove bootd runtime functions from shared library. (lib/h/trillium/shared.h, itb/sys/shared/shared.c) 12/16 GDB mod Use tout module instead of bootd for load module relocation work. (itb/sys/kenyad/pcreate.c, pspawn.c) 12/16 GDB mod Use RTF_MALLOC as the initialization switch. (tools/itb/libc/unix/malloc.c) 12/17 GDB fix Remove O_CREAT and O_TRUNC from the save Unix flags. (bin/sys/filed/fqopen.c) 12/18 GDB mod Redecorate and bring up to date with 2.2 state of the art. (bin/launch/launch.c) 12/18 GDB mod Use int4 cast on constants in comparison operation. (bin/fstate/fstate.c) 12/18 GDB mod Juggle sprintf value declarations. (bin/state/state.c) 12/18 GDB mod Use NOCTTY and setsid() to get away from process groups and controlling terminals. Also add a Unicos interface for filed. (bin/sys/filed/fface.c, fface.unicos.c) 12/20 GDB mod Permit the packages of a zero vector argv structure. It only contains the null pointer. (lib/args/pack_argv.c) 1/7 GDB fix Declare rmalloc(). (tools/itb/libc/kreq/kcreate.c) 1/10 GDB mod Use new tout module and toutrev() function. (bin/sys/loadd/loadd.c) 1/10 GDB mod Add TID, the process's trace identifier. (lib/h/trillium/kio.h, ktrace.h, lib/kreq/ktrace.c, lib/nreq/nrecv.c, nsend.c) 1/11 GDB mod Overhaul integer constants and add string version of pathname separator. (lib/h/trillium/portable.h) 1/11 GDB mod Add the VERBOSE macro. (lib/h/trillium/debug.h) 1/19 GDB mod Bring Fortran constants into sync with current features. (lib/h/trillium/FREQ.h, KREQ.h, NET.h, T_TYPES.h) 1/19 GDB mod Upgrade Fortran manual pages. 1/19 GDB mod Move dl_event() macro. (lib/h/trillium/events.h, net.h) 1/19 GDB mod In support of the new bootd, remove a few undeserving functions from the shared library and add a few useful ones. (lib/h/trillium/shared.h, itb/sys/shared/shared.c) 1/20 GDB fix findpath() never worked correctly. It now uses access() instead of stat(). (lib/etc/search.c) 1/20 GDB mod Stoi() is now an int4 function. It should probably be called stoi4(), but it's not. (lib/etc/stoi.c) 1/20 GDB mod Take a first crack at abstracting the load module format. (lib/etc/tout.c) 1/20 GDB mod Former remote function members of the shared library now *use* the shared library. (lib/rreq/rroute.c, rsetnet.c, rsetroute.c) 1/20 GDB mod Replace old bootd remote functions with the new. (lib/trillium/rboot.c, rpatch.c, rbt*.c) 1/21 GDB fix Exit explicitly as required in SunOS 4.1.1. (uls/bin/tbn/main.c, tdis/main.c) 1/24 GDB mod Replace boot daemon with fully new model. (machine/*/itb/sys/bootd, itb/sys/bootd, lib/h/trillium/bootreq.h) 1/27 RBD fix Made errno returns consitent in the new hash library. (lib/etc/nall_hash.c) 1/27 GDB mod Increase data structure limits in the kernel, bufferd and kenyad. (lib/h/trillium/kernel.h, bufreq.h, itb/sys/kenyad/kenya.h) 1/27 GDB mod Remove ENOPORT. (lib/h/trillium/terror.h, lib/etc/terror.c) 1/27 GDB fix Return ENOTNODE if node not found in route table. (lib/router/router.c) 1/31 GDB mod Look at the environment for the boot schema filename. (tools/bin/map/map.c, spread/spread.c, rasm/rasm.c, machine/*/tools/bin/solder/solder.c) 1/31 GDB mod Upgrade spread to suit the new boot subsystem. (tools/bin/spread/*.c) 2/1 RBD mod Cosmetic change in the help menu of spread. (tools/bin/spread/spread.c) 2/3 GDB mod Add trace support. (bin/loadgo/loadgo.c) 2/4 GDB fix Fully initialize new file descriptors. (bin/sys/filed/fqopen.c) 2/6 GDB mod Let execv(3) locate programs. (bin/launch/launch.c) 2/6 GDB mod Add data representation conversion open flags. Change internal organization of descriptor list. (bin/fstate/fstate.c, lib/h/trillium/freq.h, bin/sys/filed/*) 2/12 GDB mod major dungeon reorganization 2/12 GDB mod Remove conditional non-Trollius compilation. (tools/tsize/tsize.c) 2/23 GDB fix Initialize the error variable. (share/trillium/rbtspread.c) 2/23 GDB mod Remove or #ifdef assembly macros file, c.h, to facilitate make depend. (various) 2/23 GDB mod Allow make in the absence of ULS F77. (lib/itb/T/freq/IUTOD.c) 2/23 GDB mod Change O_ASYNC to O_NOCBX. (lib/itb/T/freq/RFCHCX.c, RUCHCX.c) 2/23 GDB mod toolkit layer overhaul (share/boot/boot.h, *conf*) 2/23 GDB mod Add EVMTVD and move EVTRACED. (share/h/trillium/events.h) 2/23 GDB mod As part of tkill project, init and cleanup functions now return void. (share/kreq/kinit.c, kexit.c) 2/23 GDB mod Add a link.c module for the nt1000.. (machine/nt1000/share/etc/link.c) 2/23 GDB mod Fish becomes tfish. 2/24 GDB mod Disallow C-style comments. (share/boot/confl.l) 2/24 RBD fix Fixed a clash between C-style comments and strings starting with '/' in the NaIL grammar. (share/boot/naill.l) 2/24 GDB mod Add vendor solder tool. (tools/share/h/machine/machine.h) 2/27 GDB mod Overhaul for robustness. (lib/itb/t/etc/perror.c) 2/28 GDB mod Give our best effort on remote stat() and fstat(). (share/freq/rfsimplex.c, rfstat.c, rfstat.unicos.c, otb/sys/filed/fface.c, fqsimplex.c) 2/28 GDB mod Replace move() with memcpy(). (share/nreq/drecv.c) 2/28 GDB mod Replace bcopy() with memcpy(). (share/nreq/getrent.c) 3/2 GDB mod Replace bcopy() with memcpy(). (share/freq/rfstate.c, share/trillium/rbfstate.c) 3/5 GDB fix Kludge termination event so as not to clash with rloadgo(). (share/trillium/rpwait.c, itb/sys/kenyad/pdetach.c) 3/12 GDB fix Don't use rmalloc(). (share/router/router.c, otb/sys/sa_rtr/sa_rtr.c) 3/16 GDB mod Add i860 hooks. Replace bcopy() with memcpy(). (lib/itb/t/unix/malloc.c) 4/2 GDB fix Give adequate space to formatting buffer. (otb/state/state.c) 4/4 GDB mod Always show last used (blocked or not) event and type. (share/kernel/kipc.c) 4/8 GDB mod Rewrite kill file when process detaches. (share/kernel/kkenya.c, itb/sys/kernel/kernelio.c) 4/26 GDB mod Support buffer flow control. 4/27 GDB mod Enhance general robustness and give facelift. (lib/otb/t/kreq/clientio.*.c) 4/27 GDB mod Overhaul machine independent code. (machine/*/tools/solder/*) 4/27 GDB mod Add buffer flow control capability. (dl*, share/bufferd/bufferd.c) 4/27 GDB mod Monitor user space threshold. (otb/bfstate/bfstate.c) 4/27 GDB mod Control user space threshold. (otb/buffer/buffer.c) 4/27 RBD mod Use new multicast procedure in commands. (otb/buffer/buffer.c, doom/doom.c, load/load.c, loadgo/loadgo.c, tping/tping.c) 4/27 GDB mod Print new verbose messages. (otb/trout/trout.c) 4/27 GDB mod Enhance robustness and use new tkill procedure. (otb/sys/kernel/kernelio.*.c) 4/27 GDB mod Add buffer flow control of user messages. (share/bufferd/*, share/h/trillium/bufreq.h, priority.h, share/nreq/dsend.c, share/router/router.c) 4/27 RBD mod Handle multireeling packet numbering in nsend(). (share/nreq/nsend.c) 4/27 RBD fix Tsend() sends the message body on a unique event retuned by trecv() to fix same-event packet mixups. (share/nreq/tsend.c, trecv.c) 4/27 RBD mod Use CFSYS message type in castd requests. Add rcasttype() cast registration request. (share/trillium/rcast.c, rcask.c) 4/27 RBD mod Add rwcpy() to byte-flip an array of integers. Cosmetic changes and enhanced portability. (share/etc/rw.c) 4/27 RBD fix Ttolcpy() and ltotcpy() macros call the rwcpy() function. No variable clashes with the "i" index. (share/h/trillium/t_types.h) 4/27 GDB mod Add support flags for buffering and pktizing. (share/h/trillium/net.h) 2.0 --- DATE AUTHOR STATUS DESCRIPTION 2/20/90 GDB rel Homo erectus (beta) 2.0 release. 2/21 GDB fix Forgot to initialize last process descriptor to SFREE. (kernel.c) 2/28 GDB fix Removed debris file, itb/libc/unix/kexit.c. 3/1 GDB fix major flaw: Floating variables "full" in all_hash.c and "open_desc_count" in freq library were causing conflicts with the shared resident library and were removed. This fix resolved several small bugs. 3/1 GDB fix lstt/itb/Makefile and lstt/bin/Makefile did not propagate the GROUP macro 3/6 GDB fix Placed #ifdef around tools/c.h for compatibility with stand-alone system. (drecv.c) 3/6 GDB fix Added -l option. (bfstate.c) 3/11 RBD fix Added NT_CAST to typemask of getnotb macro. (net.h) 3/14 RYL mod Upgraded several man pages. 3/27 MB fix Upgraded print.c to 89.1 LSTT. (lstt/itb/libc/stdio) 3/27 GDB fix Added GROUP macro defintion in lstt/itb/Makefile. 4/6 VSD fix Modified all *SENDRECV files in /tools/otb/libT and /tools/itb/libf77. Changed int ndsize to int *ndsize to take care of FORTRAN-C interface. Made changes to ensure the same order of parameters for OTB and ITB calls. 4/11 RBD fix In tkill: added quotes around the userid of the notified person so that it does not interfere with the aliases in the .mailrc of the "killer". 4/26 RBD mod Added yywrap() in naill.l returning 1. 4/26 RBD mod Upgrade of spread to work also on PC Trollius. Disable the tkill, hboot and its trout and invoke tserver at the end for PCT, stay the same for Unix. Added -o option passing to vboot for PCT. General beautify for spread (comments, tabs and modularity). 4/26 RBD mod Added NT_ERROR, NOTTYPE and tisbad() in net.h to handle error conditions for the future gettype(). 5/2 VSD fix Changed D***DATA to D***MSG for nh_msg field in bin/sys/dl_dev/dli_dev.c and dlo_dev.c. 5/3 GDB fix For some reason, RCS directories did not exist in tools/itb/libf77, though the RCS files did exist. 5/3 GDB fix Removed debris file tools/itb/libc/unix/ppdep. 5/6 RBD mod Added the bfprobe function and its C man-page. 5/9 GDB fix Removed debris file lib/h/trillium/router.h. 5/10 RBD mod Removed the caching code from nsend. Routing caching is done by the new function getrentc. Getrtype was added and getroute changed. They both call getrentc which invokes the router via getrent. Makefiles and rreq.h were slightly modified for the new setup. 5/13 RBD fix Modified the RGETROUTE request in the router so that it returns route table entries as is without modifying the r_event field for a local node. Getroute() handles the case of a local node by returning the destination event, and nsend() does not check for this condition anymore. This solves a cache consistency problem in case getroute() is called for the local node following a getrtype() call for that node. (lib/router/router.c) 5/15 GDB fix Correctly set k_index in kernel descriptor upon re-attachment of a client process. This was causing multiple calls to kinit() to fail if interspersed with other kernel calls. (lib/kernel/kkenya.c) 5/16 RBD mod Installed the man page for getrent(), getrentc(), getroute() and getrtype(). 5/16 GDB mod State prints very negative event numbers in hexadecimal notation. (bin/state/state.c) 5/16 GDB fix Added extra reply from flatd to its client to ensure that the data is loaded before the client starts announcing the tag value. (lib/trillium/rflat.c, itb/sys/flatd/flatd.c) 5/19 RBD mod Modified RGETROUTE in sa_rtr to handle the getrent functions. It returns NOTEVENT do indicate the local node and NT_OTB to indicate an otb node. Also modified RGETNTYPE to allow true nodetype masking. (bin/sys/sa_rtr/sa_rtr.c) 5/22 RBD mod Installed the new bfprobe.l and getrent.l man pages (enhanced by Ros). Created a stub Makefile under man/lstt to enable installing the man pages with no error reports. 6/1 GDB fix Upgraded select() on KATTACH to use more robust Unix file descriptor bit masks. This is needed by SunOS 4.0 and hopefully is Unix portable. (tools/otb/libt/kreq/clientio.udp.c) 6/1 GDB fix Removed stray debugging message. (tools/otb/libT/freq/TOPEN.c) 6/1 GDB fix Removed stray y.tab.h in tools/bin-mc68020/moses. 6/1 GDB fix Various lex and yacc files did not originally find their way into RCS. 6/4 GDB fix ITB panic now stores error code and stack location into onchip RAM locations noted in mareq.h. (lib/h/trillium/mareq.h, tools/itb/libc/etc/panic.c) 6/5 GDB fix Corrected invocation of intparam(). Abided by the -i option when used with -Z. Reorganized the mainline so that unused files, tools or devices are not located. (tools/bin/sboot/sboot.c) 6/6 GDB fix Corrected error message typo in bin/sys/dl_dev/dli_dev.c 6/7 GDB mod Updated Trollius Installation Guide. (doc/install.doc.ps) 6/11 GDB fix Bufferd's calculation of total buffer space used now properly includes buffer descriptor size. 6/12 GDB fix Duplicate copy of tlib.c was removed from tools/lstt/bin/tlnk. 6/13 GDB mod Installed final upgrade to full 89.1 LSTT. (tools/lstt) 6/14 GDB fix Corrected vendor node assignment in the supplied NT1000 boot schemata. 6/14 GDB fix Moved final process termination from _kexit() to system dependent routine _kbail(). This solves a bug with stdio cleanup on otb nodes. (lib/kreq/kexit.c, tools/otb/libt/kreq/clientio.*.c, tools/itb/libc/kreq/clientio.c, itb/sys/dl_t4/clientio.c) 6/15 VSD fix Fixed bug in bcopy in *SENDRECV files in /tools/otb/libT and /tools/itb/libf77. 6/15 VSD mod Changed function names of all FORTRAN wrappers in /tools/otb/libT and /tools/itb/libf77 to atmost 6-letter names. All functions start with 'I' (returning integer) or 'F' (returning double), and all subroutines provide 'errno'. 6/15 VSD mod Deleted file ATOR.c, replaced GETROUTE.c by GETRENT.c and included file BFPROBE.c in /tools/otb/libT/nreq and /tools/itb/libf77/nreq. Deleted file EXIT.c in /tools/itb/libf77/unix. 6/19 RYL mod Upgraded several man papges. 6/20 GDB fix Changed NOTTYPE to NOTNODETYPE. (net.h, lib/rreq/getnet.c, lib/rreq/getrent.c, lib/router/router.c) Always set errno in functions with vague return values. (lib/rreq/getnet.c) 6/20 GDB fix Detached filesys from controlling terminal to prevent interruption from TTIN signal. This was causing things to blow up on reading from stdin. Solution courtesy of K-par. (bin/sys/filesys/filesys.c) 6/20 MB/GDB fix Gave proper permission bits to file created by -o. (bin/loadgo/loadgo.c) 6/20 GDB fix Added missing options to loadgo man page. 6/20 RKM fix Changed exit() to kexit() after kinit() and added kexit(0) in file bin/sys/launch/launch.c 6/22 GDB fix Checked destination nodeids more closely for castids and set source node accordingly in various remote libtrillium functions. (lib/trillium/rcreate.c, lib/trillium/rdoom.c, lib/trillium/rechod.c, lib/trillium/rflat.c) 6/25 GDB fix In ULS stdio, transformed exit() into fcloseall(). However, nobody registers fcloseall() yet as is done in LSTT. (uls/itb/libc/stdio/fcloseall.c) 6/28 GDB fix Reversed polarity in both conditionals in sleep() to achieve correct behaviour. Bug identification courtesy of K-par. (tools/itb/libc/unix/sleep.c) 6/28 VSD fix Fixed LSTT stdio bug of overflow in /tools/lstt/itb/libc/stdio/print.c. 6/29 GDB fix Corrected brain damaged ksigblock() call all over libfreq and libtrillium. Bug identification courtesy of K-par. 7/2 GDB fix Removed SUCCESS from GETSMART.c in favour of 0. (tools/otb/libT/nreq/GETSMART.c) 7/4 GDB fix Castd's spanning tree generation code has been largely rewritten for robustness. (lib/castd/castd.c, lib/h/trillium/terror.h, lib/h/trillium/castreq.h, lib/etc/terror.c, lib/trillium/rcast.c) 7/6 RYL mod Upgraded major user manuals. (doc/*.doc.ps) 7/9 RYL fix Upgraded and corrected several man pages. 7/9 GDB fix Protect size_t against clashes with Unix. (lib/h/lstt/stddef.h) 7/12 GDB fix Changed header Makefiles to use install instead of cp. 7/13 GDB rel Homo sapien 2.0 7/27 GDB fix Added TOOLS macro to libc/Makefile. 7/31 VSD fix Fixed bug in file /bin/sys/dli_dev.c. Read nh_msg from device before performing conversions. 8/14 VSD fix Fixed bug in /bin/launch.c. Return error if no valid nodes are specified in command line. 9/7 GDB mod Added _kexit() to the resident shared library. (itb/sys/shared/shared.c, lib/h/trillium/shared.h) 9/10 GDB fix Corrected t800 version of MemStart. (lib/h/transputer/transputer.h) 9/10 RBD mod Moved tools/bin/confs to the machine dependent sub-dungeon. 9/11 GDB mod Remove non-portable device names from boot.h. No longer search for device names in sboot. Remove non-portable thaw function to separate tool. (lib/boot/boot.h, tools/bin/sboot/sboot.c) 9/13 GDB mod Separated mallocd into machine dependent and machine independent parts. 9/13 GDB mod Remove hboot from controlling terminal's process group. 9/13 GDB mod Do not maintain filesys process group when detaching from controlling terminal. (bin/sys/filesys/filesys.c) 9/13 GDB mod Include machine dependent memory region header file in itb/libc/kreq/kcreate.c. 9/17 GDB fix Eliminated code in moses that was causing timing problems for frozen booting. (moses/moses.ts) 9/22 GDB mod Added N_TDB to t.out.h. 9/25 RBD mod Added support for the RNODES and RGETSMART requests in sa_rtr. Modified the send_reply() function to accept sending a message. Added count_ntype() for internal use. (bin/sys/sa_rtr/sa_rtr.c) 9/26 GDB mod Converted to the modern portable.h. (portable.h, kernel/kipc.c, kreq/krecv.c, kreq/ksend.c, nreq/precv.c, dlo_dev.c) 10/3 GDB mod Added the Meiko VCS machine dependent directory. (machine/meiko) 10/5 GDB mod Overhauled most of the lower order toolkit layer programs due in part to Meiko port. (machine/nt1000) 10/5 GDB fix Upgraded Meiko specific datalinks to modern portable.h. (meiko/bin/sys/dl_dev/dlo_dev.c, meiko/itb/sys/dl_meiko/dlo_meiko.c) 10/7 GDB rel 2.0 Mk (an in-between release) 10/13 RKM mod Changed brenda command so that it can pick up brendad from default directories in the absence of one in the current working directory. 10/15 RKM mod Changed the format of debug and error messages in command brenda so that they conform to the standard. 10/15 GDB mod Added EBLOWN to indicate stack overflow. (lib/h/trillium/terror.h, lib/etc/terror.c) 10/18 GDB fix Otb _kbail exits with a caller supplied code. (libt/kreq/clientio.udp.c, libt/kreq/clientio.msg.c) 10/18 GDB mod Added RTF_DEBUG, a hook for debuggers. (lib/h/trillium/kio.h) 10/29 GDB mode Upgraded saboot banner to 2.1. (tools/bin/hboot/saboot) 11/11 GDB fix Changed constant expression to avoid ULS bug. (machine/nt1000/itb/sys/mallocd/maconfig.c, machine/meiko/itb/sys/mallocd/maconfig.c) 11/12 GDB fix Switch the link mask in castd to unsigned. ULS signed shift right causes problems for the NT1000 system. (castreq.h, castd.c) 11/15 RKM fix Allowed the use of the -L option on tcc command line, changed the order of search of library directories. ( tcc.c ) 11/15 RKM fix Changed function name IRD to FRD. ( itb/libf77/nreq/REVERSE.c ) 11/15 RKM fix Changed RW and RS to reflect argument types. ( T_TYPES.h ) 11/16 RBD mod Added the siesta queue to allow multiple transputer high priority processes to communicate with the kernel. The datalinks were made high priority to for faster communication through a computation intensive node. (itb/sys/kernel/kernelio.c, itb/sys/dl_t4/clientio.c, itb/sys/dl_t4/dli_t4.c, itb/sys/dl_t4/dlo_t4.c, tools/lstt/itb/libc/ { kreq/clientio.c, t4/siesta.c }, tools/uls/itb/libc/ { kreq/clientio.c, t4/siesta.c }, 11/16 RBD mod Overhaul of the NaIL tools. Same functionality but different data structures. Made more portable and up to the Trollius coding standard. (lib/boot/ { nail.c, nail.h, naily.y, naill.l }, tools/bin/spread/ { spread.c, face.c }, machine/nt1000/tools/bin/solder/ { solder.c, solder.h }) 11/19 RBD mod The optional weights in the TLINK and TORDER tuples get their default values from the TWEIGHT tuple if it is defined/re-defined, otherwise they are set to DEFTWEIGHT. (lib/boot/naily.y) 11/20 GDB mod Added function declarations to net.h and ksignal.h. 11/20 VSD mod Added NT_JONES in net.h. Removed DEBUG, min(), odd() macros from routeio.h. They are defined in typical.h or nail.h. Changed DEBUG to DBUG in routeio.c. 11/20 VSD mod Modified rasm.c and rasm_funct.c due to overhauling of the NaIL data structures. 11/20 VSD mod Modified map.c and map_funct.c due to overhauling of the NaIL data structures. Added hop_wt and NT_JONES in map. 11/27 GDB mod Replaced file daemon errors for new filed. (terror.h, terror.c) 11/27 GDB mod Changed event name for new filed. (events.h) 11/27 GDB mod Added four byte 0 constant to portable.h. 11/28 GDB mod Added because no longer includes it. (loadgo.c) 11/29 GDB mod Renamed min and max so as not to conflict with defined macros. (tping.c) 11/29 GDB fix Shared.h is dangerous and should be included last. (kenyad) 11/29 GDB mod Upgraded client file descriptor data structure with the new file daemon. (dl_t4/clientio.c, kinit.c, clientio.udp.c, clientio.msg.c, crt0.c, shared.c) 11/30 RBD mod Minor modifications in trout due to the overhaul of the topology layer tools (bin/trout/trout.c) 12/5 GDB fix Removed parentheses around db macro. (debug.h) 12/13 GDB fix Added terror.h to get EUSAGE and fixed a few linting bugs. (lib/diag/filedr/filedr.c) 1/8/91 GDB mod Added EBADREC. (terror.h, terror.c) 1/14 GDB fix Process state is not touched for ready or active processes. (kernel/kkenya.c) Pick_aux and pick_auxd are now local parameters in ksend/krecv. (ksend.c, krecv.c, clientio.c, kio.h) 2/4 GDB mod Bumped up default maximum workders in bufferd. (lib/h/trillium/bufreq.h) 2/5 RBD mod Added NT_BOOT to the node types. (lib/h/trillium/net.h) Modified map to generate this flag in the route tables. (tools/bin/map/map_funct.c) 2/20 GDB bug Added check for invalid table entries in getnodes(). (router.c) 2/27 GDB mod Installed new file daemon, libraries and commands. (lib/freq, bin/sys/filed, bin/fstate, bin/tfile) 3/10 GDB mod Moved search.c into the portable etc directory. (lib/etc/search.c) 3/10 GDB mod Completed major overhaul of trout and included support for recursive booting. 3/10 GDB mod Added support for recursive booting. (vboot.c, lib/h/trillium/bootreq.h, bootd/bootd.c, bootd/image.c, bootd/btroute.c) 3/10 RBD mod Added support for recursive booting. (spread/spread.c, spread/face.c) 3/10 GDB mod Added machine dependent subdungeon for B014. (machine/b014) 3/12 GDB mod Converted kinit.c to support the new file daemon. 3/12 GDB fix Added extra checking for ENOTATTACHED to kernel message passing library. (ksend.c, krecv.c) 3/18 GDB mod Completed installation of new ULS (genesys) compiler. (lib/h/uls, man/uls, tools/uls) 3/18 GDB mod Change open flags to new values consistent with freq.h. (FILE.h) 3/19 RBD mod Overhaul of the solder tool for the Meiko port. Same functionality but different data structures. (machine/meiko/tools/bin/solder/ { solder.c, solder.h }) 3/19 VAR/GDB mod Corrected, shined and augmented Fortran wrappers for freq library ITB and OTB. (itb/libf77/freq, otb/libT/freq) 3/19 RBD mod Added the GRENT and GRENTC calls to Fortran. (itb/libf77/nreq/GETRENT.c, otb/libT/nreq/GETRENT.c) 3/19 GDB mod Upgraded loadgo for compatibility with the new filed. 3/19 GDB fix Be more careful with NOBUF in replies from kenyad. 3/19 GDB fix Use a modified reply event to avoid conflict on remote nodes. (lib/trillium/rflat.c, rpwait.c) 3/19 GDB mod Print node type in hexadecimal. (lib/boot/routeio.c) 3/19 GDB mod Allow buffering in trout related functions. (lib/rreq/rroute.c, rsetroute.c) 3/19 GDB mod Reorganize memory map and add siesta locations. (machine/*/lib/h/machine/maconfig.h) 3/19 GDB mod Define lstt macro in pp so we can tell lstt from uls. (lstt/bin/pp/pp1.c) 3/21 GDB fix The main memory auto-sizer for the nt1000 is redesigned. (machine/nt1000/itb/sys/mallocd/maconfig.c) 1.1 --- 06/08/88 tools/Makefile Added dependency for $(BASE) directory. 06/08/88 libieee/Makefile Removed a stray period. 06/09/88 libieee/itens.c, libieee/uptup.c, penguin/ieee.h Padded DUNPK to be compatible with screwy suns. 06/09/88 tas/Makefile, tas/ieee.c, tas/ieee.h, tas/std.h Created a specially brewed ieee conversion package eliminating the need for the full ieee library. 06/09/88 tools/bin-*/Makefile, tools/bin/libieee/* Eliminated the ieee library. 06/10/88 bin/h/Makefile, bin/h/penguin/* Eliminated the penguin header directory. 06/10/88 vecbrd.h Added the setmux macro from its previous home in dl_t4.h. 06/10/88 dl_t4.h, dli_init.c, dlo_init.c Removed dl_t4.h; replaced with vecbrd.h where needed. 06/29/88 libc/gen/itoa.c *s++ = '-', rather than *p = '-'. 06/30/88 Added: libm/matherr.c Includes _matherr, the function called by the math library functions upon exceptions, matherr, the user-modifiable stub called by _matherr, and NaN, a function to generate the IEEE NaN bit pattern. (libc/h/trillium/math.h modified to suit) Modified acos, acosh, acsc, asec, atanh, cot, coth, csc, csch, ipow, log, pow, sec, sqrt and tan to call _matherr. 07/07/88 lib/trillium/rmalloc.c (compiled into libc) rmalloc(): - check for amount==0, its EMEMORY - if successful and local, call _memrec rfree(): - if local call _rfree _memrec(): added function. - records rmalloc'd local allocations _free(): added function. - allows either removal of an entry in _memrec tables or an rfree() of all the entries. The latter is supposed to be done from _kexit(). 07/07/88 libc/unix/malloc.c (new file) This file holds our new "library malloc", that efficiently allocates bits and pieces for an application. It calls rmalloc(), but not rfree(). (The old Unidot malloc.c has been renamed malloc.dot.c. It was never used.) 07/07/88 man/rmalloc.l Rewritten to describe the new rmalloc/malloc scheme. 07/07/88 malloc.h - removed 07/07/88 kenyad/kenya.h, bufferd/bufferd.c Added malloc and free macros to avoid the new malloc runtime system. 07/12/88 c0/c02.c c1/c14.c c1/c17.c gentp/p3.doc gentp/mkops.awk gentp/p3emit.c gentp/p3expr.c gentp/p3flag.c gentp/p3fopstk.c gentp/p3gen.c gentp/p3opasm.c gentp/p3opcnt.c gentp/p3opname.c gentp/p3ops.d gentp/p3opstk.c gentp/p3spec.c gentp/p3sym.h incl/limits.h incl/tout.h incl/ulsmch.h libf77/CDDIV.c libf77/CDIV.c libf77/CPOW.c libf77/log.c libf77/pow.c libm/abs.c libm/log.c fp/dneq.ts fp/fneq.ts libuls/ctim.c tcc/ucc.h tcc/ucc0.c tcc/ucc1.c tcc/ucc2.c tcc/ucc3.c tcc/ucc9.c uf/uf0a.c uf/uf3.c uf/uf4.c uf/uf5.c tld/tld.c It's that time again! Another update from the Penguin. Most files listed above were changed. Two files, p3sym.h and tout.h were removed and two other files, abs.c and fneq.ts were added. 07/12/88 libm/rand1.c, libm/rand2.c, libm/rand3.c Added new random number generators supplied by the Penguin. Only the first one is currently compiled into libm. 07/12/88 libc/gen/reverse.c Added new reverse string routine suppled by the Penguin. 07/13/88 libstdio/_filb.c, _flsb.c, fclose.c, setbuf.c Refer to malloc() and free() as standard in UNIX. >>>OSU<<< 07/29/88 tools/bin/h/Makefile Removed another reference to /usr/include/penguin. 08/21/88 tools/bin/moses/gram.y, tokens.l, y.tab.h Slightly improved the grammar to support quit/exit and null statements. 09/17/88 tools/bin/tsim Added link and event devices, new monitor and floating point instructions for t414. This is a new release (3.0). 09/18/88 tools/bin/tti Added the transputer threaded interpreter to the Trillium toolset. 09/19/88 *-gould, *-vax Removed. These are simply copies of *-sun, which is now the major development platform. 09/29/88 tti/cvt.ts Use tti.h like every other tti source file. 09/29/88 tti/tti.h Use a local copy of T414.h. This makes tti a stand-alone tool. 09/30/88 tti/ Moved tti to the tools/itb directory from the tools/bin directory. 10/26/88 terror.h Added EINTR to support signal delivery in a new kernel. 11/17/88 terror.h, terror.c changed obsolete ENOTINFO to ENOKERNEL 1.0 --- ??/??/?? some Makefile change somewhere -- we forgot where or what it was (update: It might be libvpu/Makefile.) 01/05/88 setpri.c moved the workspace pointer way out so that the stopp doesn't trash a (possibly) valid stack frame. 01/11/88 conf.y/tokens.l make the booters abort on a syntax error 01/11/88 tkill fixed a silly error with the verbose flag. The internal variable "Kflag" was often unset causing the script to abort with an undefined variable. 01/12/88 kipc.c Added a few more comments. 01/12/88 kernel.c Fixed the bug that had the kernel returning ENOEVENT when the event table filled up with vacant descriptors. 01/14/88 crt0.c Set _wp to the correct value. 01/26/88 uf/ Installed update received from the Penguin. 01/27/88 incl/ Installed update received from the Penguin. 01/27/88 libuls/ Installed update received from the Penguin. This only consisted of adding the new file uf77io.c which is much different (smaller and looks like older code) than the same file in libf77. It isn't used by anybody but it's stuck in there anyways. 01/28/88 fp/ Installed update received from the Penguin. This involved many new files, mostly enhancements to double precision operations. Also, frel.ts became obsolete. It remains in the RCS directory but is not checked out and does not come with most source releases. 01/29/88 itb/gnat/, itb-0123/gnat/, itb-3210/gnat/ Installed our nifty little demo for using the rspawn() routine. 01/29/88 tools/bin/tcc/gentp Finally installed the updated code generator from the update tape from the Penguin. 02/01/88 libvpu/ The FPS C00 math library resides here. Most of this stuff is straight out of the can from FPS. In pb.ts, we poll for completion of the vector operation instead of interrupt. In extdefs.c we can't use their declaration of the parameter blocks because we don't use their relocation pass with the backend tools. 02/01/88 mldefs.h We have a special define for the parameter blocks to locate them on-chip. 02/01/88 itb/vpu/ Added two VPU demo programs, pbtest.c for parameter block usage and gentest.c for generic routine usage. 02/08/88 libm/pow.c libm/sqrt.c Changed _pow to pow. I have no idea why it was _pow. I guess something else will break now... >>>Ultix1.2a and T40 problems found at MTU<<< 02/08/88 libuls/ctim.c Changed timezone to timzone to make cc happy. 02/10/88 lots of Makefiles in ,,,/bin/,,, and ,,,/bin-vax/,,, Nixed -L option to search directories for libraries. Even Ultrix 2.0 doesn't have this option for ld. The -L option was removed from the affected Makefiles and replaced by the full pathname of the library. This never amounted to more than "../lib/libx.ta" for example. The gould and sun Makefiles were left alone. They can be changed as source Makefiles are copied to the object directories in the course of normal development. 02/10/88 confs/Q/Makefile, confs/S/Makefile Rewrote to take care of two problems. First, Ultrix "install" won't take a directory as the target for a shell script. Second, we were freezing before installing and that's just dumb. 02/12/88 libvpu/Makefile This Makefile had never been tested on a clean box. The problem centered around the automatically generated pb_entry.h which was not installed prioir to a make depend or compilation of libvpu. It has been substantially rewritten. 02/12/88 tlorder/Makefile Same "install" problem as above. 02/12/88 lboot Changed to boot out link 2 instead of link 1. This change is needed for multi-cabinet configurations. 02/12/88 conf.L Bumped up the stacksize of bootd. Completely rearranged the loop datalink servers. Upstream is link 2, downstream is link 1. This is due to the way system boards are actually wired up - we must boot the next module in the *same* cabinet first. 02/13/88 router.c Is_downstream was not normalizing the system node field before calculating the loop offset. Definitely wrong, but forgiven on a T20. 02/15/88 h/fps/Makefile T.h, a symbolic link, needed to be "touch"ed after installation. Otherwise the modified date of the link target remains unchanged and all relevant Makefiles check the target date and not the link itself. Ergo, the recompilations to not fire. 02/15/88 tkill/Makefile Tkill and sakill are shell scripts and the Makefile's install commands had the same Ultrix problem as the conf/ Makefiles noted above. 02/15/88 bootd/boot.h, bootd/image.c Several major blunders in bootd prohibited T40 system ring booting. 02/24/88 newfish/fish.c A typo caused the device pathname to be null. Open caused a segmentation fault on Ultrix 1.2A. 03/30/88 conf.S Same as conf.L above. Whoops! Forgot to do this earlier. That is why the initial T100 test at FPS did not work. >>>libm was in poor shape<<< 02/11/88 libm/sqrt.c mb: Rewrote completely: does NOT call pow(). Does range reduction to (0.5,2.0] and then uses Heron's (?) iterative procedure (faster). 02/11/88 libm/ipow.c errno set if exponent negative 02/11/88 libm/pow.c pow(): calls powi() if y is an integer (faster) pow(): error if x<0 && y not an integer _powi(): renamed powi() powi(): uses the algorithm from ipow() (faster) _ipow(): removed (there is an ipow() in ipow.c) 02/11/88 libm/floor.c changed "y = x - n;" (wrong!) to "y = n;" 02/11/88 libm/ceil.c changed "y = x - n;" (wrong!) to "y = n;" 02/11/88 libm/frac.c mb: rewritten with different definition for function: frac(123.4) is now 0.4, frac (-123.4) is -0.4. 02/11/88 libm/fabs.c mb: rewritten: simply zap the sign bit (much faster). Note that this is nonportable, since we need to know where the sign bit is. 02/11/88 libm/log.c errno set if argument nonpositive >>><<< 02/13/88 man/ Changed the Makefile to properly create the manl directory on a clean machine. It appears that Ultrix man will not look in manl. If you got an Ultrix machine, we recommend you copy the whole show to man9 (or alter the Makefile accordingly). Also, nothing in man was under RCS, a wrong which has now been righted. 02/19/88 vboot/pack_argv.c vboot/Makefile Removed pack_argv.c since it is available from the "args" library. 02/24/88 unix/mkdir.c Repaired a syntax error. Who knows how it ever compiled before? 02/24/88 bin/buffer/buffer.c Rewrote the printing routine to display information on buffers in a fashion more understandable to the user. 02/24/88 kpar_He.c, kpar_Na.c, kpar_Fe.c Added new support for lightweight processes. 02/25/88 kpar_He.c, kpar_Na.c, kpar_Fe.c ...and already they're busted. Parameters were being pushed in the wrong order. 02/29/88 kenyad/pdoom.c kenyad/pstate.c Neither state nor doom would work with processes not attached to kenyad. The problem was an uninitialized flag. 03/03/88 lib/h/trillium/Makefile, lib/h/trillium/NET.h A barebones (another word for Fortran) version of net.h was added for f77 support. 03/03/88 libf77/Makefile, libf77/unix/ Added a new directory called unix as in libc. A place was needed for getpid() and exit(). 03/04/88 maconfig.h We forgot to leave five slices of memory available at the top of RAM for use by the VPU library. It had not caused a problem since nobody had ever allocated all of bank A0. 03/04/88 rflat.c The type field, used to ensure proper sequencing, was not properly set. 03/05/88 mldefs.h, extdefs.c A few VPU variables were still left in off-chip RAM instead of being #defined to their proper locations in on-chip RAM. 03/07/88 maconfig.h No allowance was made for a partially used bitmap word. 03/07/88 mallocd.c When searching across regions, do_malloc() was trying to free a null sized chunk, a dangerous practice in some cases. 03/07/88 libc/unix/Makefile, libc/nreq/Makefile, libtrillium/Makefile, lib/trillium, lib/nreq, We moved rmalloc and set_order to libc to support the kpar calls. 03/07/88 tools/qlt/driver-vax/ultrix-1.2/ This is the result of the first Ultrix install. >>>Problems found at FPS<<< 03/14/88 confs/*/Makefile Some of the Makefiles for the conf files still did not specify the full destination file for install. 03/14/88 libstdio/Makefile The actions for install were commented out. 03/14/88 tools/otb/nreq/Makefile VPATH had to be augmented to find set_order's new location in trillium/lib/nreq. >>><<< 03/16/88 libf77/nreq/TSEND.c This routine was simply never converted to Fortran glue code. 03/16/88 libf77/nreq/TRECV.c Removed an extraneous comment. 03/16/88 libf77/nreq/DSEND.c Removed an unneeded parameter. 03/16/88 libf77/nreq/TWRITE.c Changed tprintf to TPRINT. 03/16/88 terror.c It was converted to use write instead of fprintf, thus eliminating the need to use the standard I/O library. This was of particular importance ITB. 03/21/88 libf77/kreq/KEXIT.c, libf77/kreq/Makefile Added KEXIT to the Fortran library, which is the equivalent of _kexit in C. 03/25/88 libf77/gen/exit.c Made this routine the equivalent of _exit in C. 03/27/88 NET.h Corrected NOBUF and added SYSINC. 03/27/88 libf77/Makefile, libf77/t4 Added the transputer access routines SETPRI() and LDTIMER(), thus starting the f77 equivalent of libc/t4. 03/27/88 libf77/unix/Makefile, libf77/unix/ERRNO.c Added f77 access to the global error variable errno. 03/28/88 libf77/gen/Makefile, libf77/gen Added ITOA() and GCVT(). 03/28/88 lib/h/trillium Added FILE.h 03/29/88 sboot/main.c The -n option was previously ignored. It will now override the nodeid in the configuration file. 03/29/88 TWRITE.c Rewrote TPRINT() to accept a FORTRAN `character string' rather than a simple pointer. The string as given from FORTRAN is copied with editing (\n, \t, \7 and \0 are converted to the obvious), then passed to tprint(). A null is appended at the end if there is no explicit '\0'. 03/29/88 ITOA.c Rewrote to accept a FORTRAN `character string' rather than a simple pointer. 03/29/88 GCVT.c Rewrote GCVT() and FTOA() to accept a FORTRAN `character string' rather than a simple pointer. 03/29/88 tbn/ A new tbn has been received from the Penguin featuring major performance gains. 03/31/88 TOPEN.c and TCREAT.c The pathname argument is now a FORTRAN `character string' rather than a simple pointer. A copy of the string is made and a null char is appended. 03/31/88 FILE.h Added O_APPEND. 03/31/88 introf.tblms Added the Fortran tutorial to the documentation series. >>>Lboot and vboot now feature frozen booting.<<< 04/01/88 bootreq.h Two more fields were added to struct bootreq to hold frozen tag and length. 04/01/88 vboot/ Vboot now understands the z option. A further option e is the equivalent of fz in sboot and specifies the name of the frozen file. Fastboot option f can be used in conjunction with z on vector boards only. 04/01/88 bootd/ Bootd has two new requests to support frozen booting. The module frozen.c was added. Other modules were reorganized between files to consolidate data structures. 04/01/88 confs/L/Makefile, confs/V/Makefile A frozen configuration file will now be created as part of make install. 04/01/88 lboot Added the extra option 'e' to support frozen booting. 04/01/88 confs/L/Makefile, confs/V/Makefile Eliminated the condition for creating a frozen configuration file. >>><<< 04/01/88 sboot/main.c When certain flags are set eliminating the need for certain devices and files, their existance is not checked. 04/01/88 install.tr A couple of installation experiences have contributed to a new revision of the installation notes. 04/15/88 pcreate.c The contents of the BSS segment will now be initialized to zero. >>>Problems found at NiCHE<<< 04/18/88 doom.c A null pointer was being indirected. This is bad news on some machines. 04/27/88 lib/trillium/terror.c Changed _atoi to my_atoi and expanded sbuf to 16 bytes. 04/28/88 boot/moses/*/Makefile tools/qlt/boot/moses/Makefile Changed cc -E to the more portable /lib/cpp -P. 04/25/88 RDIST The obsolete remote distribution directory was removed. 04/26/88 * All of the obsolete tty compatible programs were removed. 04/28/88 lib/h/trillium/maconfig.h Moved maconfig.h from the mallocd directory to the general trillium header directory. 04/30/88 sboot/doargs.c, qboot, tools/qlt/Makefile, tools/bin/Makefile Changed qexport to export. >>><<< 04/18/88 LOC.c Added to libf77/gen: PEEK/POKE stuff 04/18/88 IOR.c Added to libf77/gen: bitwise logical ops 04/18/88 STT.c, STOP.c (libf77/gen) - calls to exit() replaced with _kexit() 04/20/88 RVALLOC.c Added to libf77/gen: wrappers for MALLOC, FREE, RMALLOC, RFREE, VALLOC, RVALLOC 04/20/88 ARG.c Added to libf77/gen: utility to pass arguments from one fortran function to another BY VALUE. Allows practical use of the pointers returned by MALLOC. 04/20/88 IOR.c Added IEOR (same as IXOR) and ISHFT(a,n) (same as ISHFTL(a,n) for n>0, same as ISHFTR(a,-n) for n<0). This is to be more compatible with FPS literature. 04/20/88 libc/h/fps/mldefs.f Added the FPS file for FORTRAN use of the VPU (this is a FORTRAN source file, NOT #defines!) 04/20/88 libc/h/fps/MLDEFS.h Added an include file for FORTRAN use of the VPU via cpp and the Generic FPS Math Library functions. Also includes #defines for ANYBANK, BANKA0, etc since we do not have a FORTRAN version of . 04/25/88 libf77/unix Added BCOPY.c: a FORTRAN wrapper to access bcopy(). 04/25/88 man/ man pages added: BCOPY, LDTIMER, SETPRI 04/28/88 h/*/Makefile Made depend less verbose. 04/28/88 libc/Makefile Eliminated redundancy from make depend. 04/28/88 libc/h/fps/Makefile Added support for .f files. 04/28/88 libf77/gen/ARG.c ARG() renamed FUNARGS(), SUBARGS() added to support calling FORTRAN subroutines (not just functions) passing some parameters by value. 05/06/88 /doc New versions of introc, introf, refc, refu with system-specific details isolated in appendices, reff.tblms added. 05/17/88 libc/gen/itoa.c Expanded sbuf to 16 bytes. 05/19/88 kenyad/pcreate.c Do not use argv tag if argc is 0. 05/24/88 loadd.c Fixed loadd file descriptors to close on error. 05/24/88 libstdio/kexit.c Removed call to pdetach. 05/24/88 libstdio/Makefile Added a missing default BASE macro. 05/25/88 rmread() and rmwrite() are macros in and the parameter order is always (node, src, dest, nbytes) - corrected in rmwrite.l 05/25/88 libf77/RMWRITE.c New file: wrappers for rmread() and rmwrite(). 06/01/88 ulsmch/*-trillium Added libm to the default Fortran library list. 06/01/88 doc/overview.tr an updated, glossier version 06/01/88 kenyad.c Removed redundant (with nreq) set_order function. 06/01/88 rloadgo.c, bloadgo.c Used different flat tags for argv structure and load module. 06/01/88 libstdio/_doprnt.c isinf() and isnan() had the word ordering inside a 'double' wrong for the transputer. They should also be enclosed in an "#if FLOAT / #endif" pair. >>>Various revisions with respect to the loadgo functionality.<<< 06/01/88 rflat.c, bflat.c Updated to use new stateless protocol with flatd. 06/01/88 flatd.c Rewrote FL_LOAD request to spawn a separate process which receives data messages in any order. Added FL_DONE request to clean up after worker process. 06/01/88 flatreq.h Added FL_DONE. 06/01/88 kenyad/pdetach.c Wait until the client is dead before releasing its memory. >>><<< 06/01/88 kenyad.c Removed the redundant (with nreq) stub function. 06/04/88 fish.tty Deleted one remaining trace of tty days. Fish is now a stub on goulds and suns. 06/05/88 sboot.tty Deleted some more tty debris from the sun and gould object directories.