New features in version 0.27.0 ============================== Configurator utility has been changed to check existing of the PG-PVM monitoring tool. Configurator utility has been changed to include -pipe option into Makefiles (if it is supported by the compiler) to make compilation faster. Configurator utility has been extended to check compiler and linker options that are required to produce shared libraries. GRP parser ---------- Parser sub-package has been extended to produce shared version of Grapnel Library. Shared library is produced with full version number including major, minor, and patch level number. Library name stored in library contains major and minor version numbers only. It means that every time when library is upgraded and new version has different major and minor version numbers, programs that are using Parser Library should be relinked. Rule of `DataTypeDef' has been changed from DataTypeDef::= | DataType "[" IntNumber "]". to DataTypeDef::= | DataType | DataType "[" IntNumber "]". It means, that in port data type definition it is not required to specify the number of the data. If it is not specified 1 is assumed. Rule of `IntNumber' has been changed from IntNumber::= Sign DigitList. to Hex:= | "0x" | "0X". IntNumber::= Sign Hex DigitList. It means that integer constants in the GRP files are handled in same way as C compilers does in C programs. Normally, constants are decimal numbers. If the number begins with zero (0), it is in octal. If the constant begins with "0x" or "0X", it is in hexadecimal. GRP code generator ------------------ Bug in code generation when any case of an IF structure is empty, has been fixed. Generated Makefile has been extended to support PG-PVM. Generated Makefile will not produce unnecessary object files during compilation to save disk space. GRP library ----------- New version of grapnel libarary has been introduced. New version supports PG-PVM monitoring tool. TAPE-EVENT version of the grapnel library has been extended with more event generation. Process creation procedure (`grp_create_proc' function) creates an event which supports process ID, process name, and host name for the visualization tool. ID of this event is `event_PROCNAME' which has been defined in `grpdef.h'. An other event which has been introduced is `event_CHANNEL' which reports information about channel for the visualization tool. This event reports message tag (identifier of the channel), name of the processes that are connected together by the channel, and ID and type of the ports which are at the ends of the channel. New grapnel function has been introduced to report these informations, its name is `grp_report_channel' and it is defined in `grapnel.h'. Definition of the function `grp_create_channel' has been changed from void grp_create_channel(int src, int dest, int msgtag, int src_idx, int dest_idx); to void grp_create_channel(TProcessInfo src, TProcessInfo dest, int msgtag, int src_idx, int dest_idx); New structure type has been introduced in `grptyps.h'. `TChanDefP' structure is used in processes to define array of channels. Generated programs recognizes a new option. It has been introduced into `Init' function of the ddstuff library in `ddstuff.c'. Using this -n option, the generated program will not call `gred_xxx' functions, so it must be used if the application is started by "hand" instead of the GRED, or more precisely if GRED is not running. Some definitions have been moved from `grpdef.h' file into `grptyps.h'. These definitions are target independent. `grp_send' function has been removed. `grp_send_array' function has been removed. `grp_recv' function has been removed. `grp_recv_array' function has been removed. Parameters of `grp_pre_send' have been changed from int grp_pre_send(struct channel ch, char type); to int grp_pre_send(struct channel ch, int magic); Parameters of `grp_post_send' have been changed from int grp_post_send(struct channel ch, char type); to int grp_post_send(struct channel ch, int magic); Parameters of `grp_pre_recv' have been changed from int grp_pre_recv(struct channel ch, char type, int *block_send); to int grp_pre_recv(struct channel ch, int *magic); New definitions for magic number have been introduced (MagicXXXX constants in `grptyps.h'). These constants can be used to build up magic information which is sent in every messages but administrative ones. Jan 8, 1997.