Replacing generated procedure calls with generated inter-process communication
AssigneeInternational Business Machines Corporation
InventorsAllan H. Kielstra, Artur Kink
Life of this patent
Estimating the term…
Abstract
A package generated by a compiler of a computing environment is to be used in inter-process communication between one module and another module running in a single address space of the computing environment. The one module is one class of module and the other module is another class of module, in which the one class of module is different from the other class of module. The one module calls the other module using the inter-process communication, which employs the package generated by the compiler. The called module performs one or more operations, and the one module is placed in a wait state.
Claims20
A computer program product for facilitating processing using compiler-defined inter-process communication mechanisms within a computing environment, the computer program product comprising:
- a computer readable storage medium readable by a processor and storing instructions for performing a method comprising:
- replacing a generated procedure call between one module and another module with an inter-process communication, absent using user-defined software structures, including:
- obtaining a package generated by a compiler of the computing environment to be used in inter-process communication between the one module and the other module, which are running in different memory enclaves in a single address space of the computing environment, wherein the package includes a corresponding inter-process communication call to be used in place of the generated procedure call, wherein the corresponding inter-process communication call is generated by the compiler absent using user-defined software structures, and absent recompiling the one module and the other module, wherein the package includes one or more data conversions of data between the one module and the other module, wherein the one module is one class of module in one memory enclave of the different memory enclaves, wherein the other module is another class of module in another memory enclave of the different memory enclaves, wherein the one class of module is different from the other class of module, wherein the compiler is of a language of the one module, and wherein the different memory enclaves are different logical runtime structures that support the execution of different classes of modules;
- calling, by the one module, the other module using the inter-process communication, wherein calling the other module includes the compiler checking a method signature of the other modules in a repository section and comparing the method signature with actual arguments and return types satisfied to determine whether a compilation error has occurred, wherein the inter-process communication includes one or more communication objects comprising pairs of synchronization objects and corresponding primitives used to synchronize communication between the different memory enclaves, wherein the one or more communication objects are generated by the compiler and used in place of the generated procedure call to communicate between the one module and the other module, and wherein the inter-process communication employs the package generated by the compiler;
- and
- performing, based on calling the other module, one or more operations by the other module.
A computer system for facilitating processing within a computing environment, the computer system comprising:
- a memory;
- and
- a processor in communication with the memory, wherein the computer system is configured to perform a method comprising:
- replacing a generated procedure call between one module and another module with an inter-process communication, absent using user-defined software structures, including:
- obtaining a package generated by a compiler of the computing environment to be used in inter-process communication between the one module and the other module, which are running in different memory enclaves in a single address space of the computing environment, wherein the package includes a corresponding inter-process communication call to be used in place of the generated procedure call, wherein the corresponding inter-process communication call is generated by the compiler absent using user-defined software structures, and absent recompiling the one module and the other module, wherein the package includes one or more data conversions of data between the one module and the other module, wherein the one module is one class of module in one memory enclave of the different memory enclaves, wherein the other module is another class of module in another memory enclave of the different memory enclaves, wherein the one class of module is different from the other class of module, wherein the compiler is of a language of the one module, and wherein the different memory enclaves are different logical runtime structures that support the execution of different classes of modules;
- calling, by the one module, the other module using the inter-process communication, wherein calling the other module includes the compiler checking a method signature of the other modules in a repository section and comparing the method signature with actual arguments arc return types satisfied to determine whether a compilation error has occurred, wherein the inter-process communication includes one or more communication objects comprising pairs of synchronization objects and corresponding primitives used to synchronize communication between the different memory enclaves, wherein the one or more communication objects are generates by the compiler and used in place of the generated procedure call to communicate between the one module and the other module, and wherein the inter-process communication employs the package generated by the compiler;
- and
- performing, based on calling the other module, one or more operations by the other module.
A computer-implemented method of facilitating processing within a computing environment, the computer-implemented method comprising:
- replacing a generated procedure call between one module and another module with an inter-process communication, absent using user-defined software structures, including:
- obtaining a package generated by a compiler of the computing environment to be used in inter-process communication between the one module and the other module, which are running in different memory enclaves in a single address space of the computing environment, wherein the package includes a corresponding inter-process communication call to be used in place of the generated procedure call, wherein the corresponding inter-process communication call is generated by the compiler absent using user-defined software structures, and absent recompiling the one module and the other module, wherein the package includes one or more data conversions of data between the one module and the other module, wherein the one module is one class of module in one memory enclave of the different memory enclaves, wherein the other module is another class of module in another memory enclave of the different memory enclaves, wherein the one class of module is different from the other class of module, wherein the compiler is of a language of the one module, and wherein the different memory enclaves are different logical runtime structures that support the execution of different classes of modules;
- calling, by the one module, the other module using the inter-process communication, wherein calling the other module includes the compiler checking a method signature of the other modules in a repository section and comparing the method signature with actual arguments and return types satisfied to determine whether a compilation error has occurred, wherein the inter-process communication includes one or more communication objects comprising pairs of synchronization objects and corresponding primitives used to synchronize communication between the different memory enclaves, wherein the one or more communication objects are generated by the compiler and used in place of the generated procedure call to communicate between the one module and the other module, and wherein the inter-process communication employs the package generated by the compiler;
- and
- performing, based on calling the other module, one or more operations by the other module.
Dependencies are inferred from the claim text.