ILU Reference Manual
Bill Janssen
<janssen@parc.xerox.com>
Denis Severson
<severson@parc.xerox.com>
Mike Spreitzer
<spreitzer.parc@xerox.com>
ILU Concepts
Introduction
Objects
Instantiation
Singleton Object Types
String Binding Handle
Inheritance
Subtype Relationships
Siblings
Garbage Collection
Error Signalling
ILU and the OMG CORBA
The ISL Interface Language
General Syntax
Identifiers
Reserved Words
Statement Syntax
The Interface Header
Type Declarations
Primitive types
Constructor overview
Array Declarations
Sequence Declarations
Generalized Array Declarations
Record Declarations
Union Declarations
Optional Declarations
Enumeration Declarations
Object Type Declarations
Exception Declarations
Constant Declarations
Integer, Cardinal, and Byte Constants
Real Constants
ilu.CString Constants
Examples of Constants
ilu.isl
ISL Grammar
Using ILU with Common Lisp
ILU
Mappings to
Common Lisp
Generating Common Lisp Surrogate and True Stubs
Packages & Symbols
Types
Using a Module from Common Lisp
Implementing a Module in Common Lisp
Publishing
Debugging
Dumping an image with
ILU
The Portable DEFSYSTEM Module
ILU Common Lisp Lightweight Processes
Using ILU with C++
Introduction
Mapping ILU ISL to C++
Names
Types
Sequence types
Object types
Exceptions
Constants
Examples
Using an ILU module from C++
Implementing an ILU Module in C++
Servers
Event dispatching
Publishing
ILU API for C++
Generating ILU stubs for C++
Tailoring C++ Names
Other ILU Considerations For C++
Libraries and Linking
Makefiles
Using ILU with ANSI C
Introduction
The ISL Mapping to ANSI C
Names
Mapping Type Constructs Into ANSI C
Records
Unions
Floating Point Values
Sequences
Objects and Methods
Inheritance
Object Implementation
Exceptions
True Module (Server Module) Construction
Using ILU Modules
Stub Generation
Tailoring Identifier Names
Libraries and Linking
ILU C API
Type Manipulation
Object Manipulation
Server Manipulation
CORBA Compatibility Macros
Using ILU with Modula-3
Mapping ILU ISL to Modula-3
Names
Types
Exceptions
Example
Importing an ILU interface in Modula-3
Exporting an ILU interface in Modula-3
ILU API for Modula-3
Simple Binding
Generating ILU stubs for Modula-3
Libraries and Linking
Using ILU with Python
Introduction
The ISL Mapping to Python
Names
Interface
Constant
Exception
Types
Basic Types
Enumeration
Array
Sequence
Record
Union
Object
Optional
Methods and Parameters
Using an ILU module from Python
Implementing an ILU module in Python
Implementation Inheritance
True Servers
Exporting Objects
Holding References to Exported Objects
Animating Servers
Using Alarms
Using the Simple Binding Service
Summary of the ILU Python Runtime
Stub Generation
Single-Threaded and Multi-Threaded Programming
Introduction
Multi-Threaded Programs
Multi-Threaded Programming in C
Switching the Runtime Kernel to Multi-Threaded Operation
Single-Threaded Programs
ILU Main Loop Functional Spec
Using ILU's Default Main Loop
Using an External Main Loop
A Hybrid Aproach
Threadedness in Distributed Systems
Using OMG IDL with ILU
Invocation
Translation
Anonymous types
Topmodules mode
Imports mode
Unsupported constructs
ILU Simple Binding
Debugging ILU Programs
Registration of interfaces
C++ static instance initialization
ILU trace debugging
Use of
islscan
Bug Reporting and Comments
Use of
gdb
Error handling
Installation of ILU
Installing on a UNIX System
Prerequisites
Configuration
Building
Environment Variables
Notes on Specific Systems
DEC ALPHA with OSF/1
SunOS 4.1.x
Solaris 2
Examples
Bug Reporting and Comments
Using Imake with ILU
Creating
`Makefile'
s from
`Imakefile'
s
ANSI C
Usage
ANSI C
ILU
imake
Macros
C++
Usage
C++
ILU
imake
Macros
Modula-3
Usage
Modula-3
ILU
imake
Macros
The ILU Protocol
The ILU Protocol
Message Types
Parameter Types
ILU Transport Semantics
Mapping of the ILU Protocol onto the
Sun RPC
Protocol
Message Mappings
Mapping of Standard Types
Mapping of the ILU Protocol onto the
Xerox Courier
Protocol
Message Mappings -- Courier Layer 3
Mapping of Standard Types -- Courier Layer 2
The TIM Documentation Language
TIM
TIM Tools
The ILU Common Lisp Portable DEFSYSTEM Module
Pathname Support
The ILU Common Lisp Lightweight Process System
Introduction
Overview Of The ILU CL Process Model
The Scheduler Process
States Of Processes
Removing Or Killing Processes
Properties Of Processes
Process Locks
Functional Overview
Implementation Architecture
General Limitations
How To Use The ILU CL Process Interface
How To Program The ILU CL Process Interface
The ILU CL Process Interface
The Process Object
Querying The Status Of The Scheduler And All Processes
Starting And Killing Processes
Waiting A Process
Activating And Deactivating Processes
Accessing And Modifying The Properties Of A Process
Miscellaneous Process/Scheduler Functions And Macros
Process Locks Interface
Handling Errors
Notes
References
Porting ILU to Common Lisp Implementations
Providing the
ILU
notion of foreign-function calls.
Network Garbage Collection
Thread and/or Event Loops
Converting between character sets.
Possible ISL Name Mappings for Target Languages
C mapping
C++ mapping
Modula-3 mapping
Index of Concepts
Index of Functions, Variables, and Types