# The CorbaScript Language

CorbaScript is an interpreted object-oriented scripting language dedicated to CORBA environments. Scripts (i.e. CorbaScript programs) can invoke any operation, get and set any attribute of any CORBA object. Moreover, any OMG IDL interface can be implemented by scripts. CorbaScript provides a dynamic binding to OMG IDL descriptions: no OMG IDL stub or skeleton need to be generated. OMG IDL descriptions are extracted from the Interface Repository and are made directly available to scripts. Invocations of CORBA objects are achieved by the CORBA DII mechanism. The CORBA DSI is used to implement CORBA objects with CorbaScript. Moreover scripts can invoke any world-wide CORBA object through IIOP.

CorbaScript fully hides these complex CORBA mechanisms via a simple, attractive and powerful scripting language. Finally CorbaScript is the first implementation of the OMG's IDL Script specification.

- Availability.
- Downloading CorbaScript.
- The Hello Example.
- CorbaScript Features.
- CorbaScript Demonstrations.
- CorbaScript Modules.
- CorbaWeb Environment.
- Statement Of Compliance for Year 2000.
- Users' Contributions.
- Getting Help.

Some other documents:

- COPYRIGHT.
- Changes since CorbaScript 1.3.4.
- The CORBA Scripting Language Specification 1.0 (937Ko Adobe PDF).
- CorbaScript documentation (303Ko Adobe PDF).
- CorbaScript slides (1Mo Adobe PDF).
- CorbaScript User's Guide.
- Frequently Asked Questions.

- Current CORBA Scripting Language Specification at http://www.omg.org/technology/documents/formal/corba_script_language_mapping.htm
- Current OMG IDLscript RTF at http://www.omg.org/techprocess/meetings/schedule/IDLscript_December_2000_RTF.html
- Previous OMG IDLscript FTF at http://cgi.omg.org/techprocess/meetings/schedule/IDL_Script_FTF.html

Commercial CorbaScript distributor sites:

- The Primary Interface Corporation's CORBA Explorer product includes CorbaScript: http://www.primaryinterface.com
- Vertel Corporation distributes the CORBA Explorer product including CorbaScript: http://www.vertel.com/products/corbaexplorer.asp

# Availability

The CorbaScript interpreter is written in C++ and is available on most common Unix-based operating systems and Windows. Moreover, it is built to be easily ported on any ORB environment, operating system and C++ compiler.

## Current tested ORBs

CorbaScript can be compiled on the following ORBs:

- MICO available at http://diamant-atm.vsb.cs.uni-frankfurt.de/~mico/ .

  The 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.8, 2.1.0, 2.2.0, 2.2.1, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.2.7, 2.3.0, 2.3.1, 2.3.3, 2.3.4, 2.3.5, and 2.3.6 releases.
  For the 2.2.7, 2.3.1, and 2.3.3 releases, see patches into the FAQ/MICO file.

- OAK available at http://www.paragon-software.com .

  The 5.2.7, 5.2.8, 5.2.9 and 5.3.4 releases.

- OmniBroker available at http://www.ooc.com/ob/ .

  The 2.0.2, 2.0.3 and 2.0.4 releases.

- omniORB available at http://www.uk.research.att.com/omniORB/omniORB.html .

  The 2.8.0, 3.0.3, and 3.0.4 releases.
  Require the omniifr package available at http://www.factoriax.com/projects/omniifr/ or a lastest ORBacus 3.x Interface Repository.

- ORBacus (formerly known as OmniBroker) available at http://www.ooc.com/ob/ .

  The 3.0, 3.0.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.2, 3.2.1, 3.3, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 4.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, and 4.1.0 releases.
  For the 3.3 release, see patches into the FAQ/ORBacus file.

- Orbix 2000 available at http://www.iona.com .

  The 1.2, 1.2.1, and 2.0 releases.

- TAO available at http://ace.cs.wustl.edu/Download.html .

  The 1.0.9, 1.0.10, 1.0.11, 1.0.12, 1.0.13, 1.1, 1.1.17, 1.1.18, 1.1.19, and 1.2 releases.
  Releases between 1.1.1 and 1.1.16 can not be supported due to some important changes around the TAO's Interface Repository stubs.
  Before release 1.1, it is needed to use a lastest ORBacus 3.x Interface Repository.
  For the 1.1.17 and 1.1.19 releases, see patches into the FAQ/TAO file.
  For the 1.1.18 release, no patches are required!

- VisiBroker available at http://www.inprise.com .

  The 3.2, 3.3 and 4.5 releases.

  Warning, releases 4.0 and 4.1 are not supported!

## Current tested C++ compilers

CorbaScript can be compiled on the following C++ compilers:

- AIX C Set ++ (xlC 3.1.4.6)

- egcs 1.0.1, 1.0.2, 1.1, 1.1.1 and 1.1.2

- DEC C++ V6.0-010 and 6.2-024

- GNU C++ Compiler 2.7.2 and 2.8.1

- GNU C++ Compiler 2.95.1 and 2.95.2

- HP aC++ A.01.00, A.01.03, A.01.15, and A.01.21

- Microsoft Visual C++ 5.0 and 6.0

- SGI C++ Compiler 7.0.1 and 7.1

- SUN Microsystems C++ Compiler 4.1 and 4.2

- SUN Microsystems Forte 6 C++ 5.2
  Let's note that at least the following patches must be applied:
  - 108434-02 Shared library patch for C++
  - 108435-01 SunOS 5.8: Shared library patch for 64bit C++
  - 109508-03 C++ 5.2: Patch for Forte Development 6 update 1 C++ compiler
  - 109510-03 Forte Developer 6 update 1: Patch for Debugger

## Current tested configurations

Currently, CorbaScript has been successfully tested on the following configurations:

      ORB             OS              C++ Compiler                    NAME
    ------------------------------------------------------------------------------
    MICO		  any		any				MICO_GENERIC
    								MICO_GENERIC_shared_libs

    MICO		  AIX	  	GNU C++ Compiler 2.7.2		MICO_AIX_GCC

    MICO		  AIX		egcs 1.0.1			MICO_GENERIC

    MICO		  HP-UX		egcs 1.0.1			MICO_GENERIC

    MICO		  Linux		egcs 1.0.2			MICO_GENERIC

    MICO		  Linux	  	GNU C++ Compiler 2.7.2		MICO_LINUX_GCC

    MICO		  Solaris	egcs 1.0.1			MICO_GENERIC

    MICO		  Solaris  	GNU C++ Compiler 2.7.2		MICO_SUN_GCC

    MICO		  Solaris  	GNU C++ Compiler 2.95.1		MICO_GENERIC

    MICO		  Solaris	SUN C++ Compiler 4.1 and 4.2	MICO_GENERIC

    MICO		  Windows 95/NT Cygnus egcs 1.1			MICO_GENERIC

    MICO		  Windows 95/NT	MS Visual C++ 5.0/6.0		MICO_WIN_MSVC

    OAK		  Linux		egcs				OAK_LINUX_EGCS

    OAK		  Solaris	GNU C++ Compiler 2.8.1		OAK_SUN_GCC

    OAK		  Solaris	SUN C++ Compiler 4.1 and 4.2	OAK_SUN_CC

    OAK		  Windows NT	MS Visual C++ 5.0/6.0		OAK_WIN_MSVC

    OmniBroker	  AIX 4.2	AIX C Set ++ (xlC 3.1.4.6)	OB_AIX_xlC

    OmniBroker	  HP-UX		aC++ A.01.00 and A.01.03	OB_HP_aCC

    OmniBroker	  Linux		GNU C++ Compiler 2.7.2		OB_LINUX_GCC

    OmniBroker	  Solaris	GNU C++ Compiler 2.7.2		OB_SUN_GCC272

    OmniBroker	  Solaris	GNU C++ Compiler 2.8.1		OB_SUN_GCC281

    OmniBroker	  Solaris	SUN C++ Compiler 4.1 and 4.2	OB_SUN_CC

    OmniBroker	  IRIX SGI	SGI C++ Compiler 7.0.1 and 7.1	OB_SGI_CC

    OmniBroker	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB_WIN_MSVC

    omniORB 2.8.0	  Linux		egcs 1.0.2/1.1			omniORB2_LINUX_EGCS

    omniORB 2.8.0	  Solaris	SUN C++ Compiler 4.1 and 4.2	omniORB2_SUN_CC

    omniORB 2.8.0	  Windows 95/NT	MS Visual C++ 5.0/6.0		omniORB2_WIN_MSVC

    omniORB 3.0.3	  Linux		GNU C++ Compiler 2.95.x		omniORB3_LINUX_GCC295
    								omniORB3_LINUX_GCC295_shared_libs

    omniORB 3.0.3	  Solaris	GNU C++ Compiler 2.95.x		omniORB3_SUN55_GCC295
    								omniORB3_SUN55_GCC295_shared_libs
    								omniORB3_SUN57_GCC295
    								omniORB3_SUN57_GCC295_shared_libs

    omniORB 3.0.3	  Solaris	SUN C++ Compiler 4.2		omniORB3_SUN_CC

    omniORB 3.0.3	  Windows 95/NT	MS Visual C++ 5.0/6.0		omniORB3_WIN_MSVC

    ORBacus 3.x	  HP-UX		aC++ A.01.xx			OB3_HP_aCC

    ORBacus	3.x	  Linux		egcs 1.0.2/1.1			OB3_LINUX_EGCS
    								OB3_LINUX_EGCS_shared_libs

    ORBacus	3.x	  Linux		GNU C++ Compiler 2.95.x		OB3_LINUX_GCC295
    								OB3_LINUX_GCC295_shared_libs

    ORBacus	3.x	  OSF1 V4.0	GNU C++ Compiler 2.7.2		OB3_OSF_GCC

    ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.7.2		OB3_SUN_GCC

    ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.8.1		OB3_SUN_GCC281

    ORBacus	3.x 	  Solaris	GNU C++ Compiler 2.95.1		OB3_SUN_GCC295
    								OB3_SUN_GCC295_shared_libs

    ORBacus	3.x	  Solaris	SUN C++ Compiler 4.1 and 4.2	OB3_SUN_CC

    ORBacus	3.x	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB3_WIN_MSVC

    ORBacus 4.x	  HP-UX		aC++ A.01.xx			OB4_HP_aCC

    ORBacus	4.x	  Linux		GNU C++ Compiler 2.95.x		OB4_LINUX_GCC295
    								OB4_LINUX_GCC295_shared_libs

    ORBacus	4.x	  OSF1 V4.0	DEC C++ 6.2-024			OB4_OSF_cxx

    ORBacus	4.x 	  Solaris	GNU C++ Compiler 2.95.1		OB4_SUN_GCC295
    								OB4_SUN_GCC295_shared_libs

    ORBacus	4.x	  Solaris	SUN C++ Compiler 5.x		OB4_SUN_CC

    ORBacus	4.x	  Windows 95/NT	MS Visual C++ 5.0/6.0		OB4_WIN_MSVC

    Orbix2000	  Linux		GNU C++ Compiler 2.95.x		Orbix2000_LINUX_GCC295

    Orbix2000	  Solaris	SUN C++ Compiler 4.1 and 4.2	Orbix2000_SUN_CC

    Orbix2000	  Solaris	GNU C++ Compiler 2.95.x		Orbix2000_SUN_GCC295

    Orbix2000	  Windows 95/NT	MS Visual C++ 5.0/6.0		Orbix2000_WIN_MSVC

    TAO 1.1		  Solaris	GNU C++ Compiler 2.95.1		TAO_1_1_SUN_GCC295

    TAO 1.1		  Solaris	SUN C++ Compiler 4.1 and 4.2	TAO_1_1_SUN_CC

    TAO 1.1		  Windows 95/NT	MS Visual C++ 5.0/6.0		TAO_1_1_WIN_MSVC

    TAO 1.2		  Linux		GNU C++ Compiler 2.95.x		TAO_1_2_LINUX_GCC295
    								TAO_1_2_LINUX_GCC295_shared_libs

    TAO 1.2		  Solaris	GNU C++ Compiler 2.95.1		TAO_1_2_SUN_GCC295
    								TAO_1_2_SUN_GCC295_shared_libs

    TAO 1.2		  Solaris	SUN C++ Compiler 4.2		TAO_1_2_SUN_CC

    TAO 1.2		  Windows 95/NT	MS Visual C++ 5.0/6.0		TAO_1_2_WIN_MSVC

    VisiBroker 3.3.x  HP-UX		aC++ A.01.15			VB3_HP_aCC

    VisiBroker 3.3	  Solaris	GNU C++ Compiler 2.95.1		VB3_SUN_GCC295

    VisiBroker 3.3	  Solaris	SUN C++ Compiler 4.1 and 4.2	VB3_SUN_CC

    VisiBroker 3.3	  Windows 95/NT	MS Visual C++ 5.0/6.0		VB3_WIN_MSVC

    VisiBroker 4.5	  Linux		GNU C++ Compiler 2.95.x		VB4_LINUX_GCC295

    VisiBroker 4.5	  Solaris	SUN C++ Compiler 5.2		VB4_SUN_CC

    VisiBroker 4.5	  Windows 2000	MS Visual C++ 5.0/6.0		VB4_WIN_MSVC
    ------------------------------------------------------------------------------

## Experimental ports

CorbaScript is ported on the following configurations but it does not work correctly.

      ORB		  OS		  C++ Compiler			  NAME
    ------------------------------------------------------------------------------
    ORBacus		  AIX 4.2	AIX C Set ++ (xlC 3.1.4.6)	OB3_AIX_xlC

    ORBacus		  OSF1 V4.0	DIGITAL C++ V6.0-010		OB3_OSF_cxx

    VisiBroker 3.2	  Solaris	SUN C++ Compiler 4.1 and 4.2	VB3_SUN_CC

    VisiBroker 3.x	  IRIX SGI	SGI C++ Compiler 7.0.1 and 7.1	VB3_SGI_CC

    VisiBroker 3.x    HP-UX	aC++ 	A.01.xx				VB3_HP_aCC

    VisiBroker 3.2	  Windows 95/NT	MS Visual C++ 5.0		VB3_WIN_MSVC
    ------------------------------------------------------------------------------

The following ports can be compiled but don't work correctly (perhaps due to the broken exception handling in GNU C++ 2.7.2).

      ORB		  OS		  C++ Compiler			  NAME
    ------------------------------------------------------------------------------
    OmniBroker 2.0.3  HP-UX		GNU C++ Compiler 2.7.2		OB_HP_GCC

    OmniBroker 2.0.3  IRIX SGI	GNU C++ Compiler 2.7.2		OB_SGI_GCC

    MICO 2.0.4	  IRIX SGI	GNU C++ Compiler 2.7.2		MICO_SGI_GCC
    ------------------------------------------------------------------------------

## Future ports

If you try to compile CorbaScript on other configurations (ORB/OS/C++ compiler), please report us any problem and/or success. In future releases, we plan to port CorbaScript on:

- Other MICO, OAK, OmniBroker, omniORB, ORBacus, Orbix 2000, TAO and VisiBroker supported environments,
- Other CORBA 2.3 compliant products.

Please contact us for other ports on another ORB, another OS or another C++ compiler.

Note that there is no direct plan to support the Orbix 3.0 product because currently, it does not provide the DynAny API. However, Orbix servers can be invoked by a CorbaScript interpreter if they were compiled to support the Internet Inter-Orb Protocol.
However CorbaScript supports the better Orbix 2000 product;-)

# Downloading CorbaScript

CorbaScript is an academic project available in full source form and free of charge for any use.
Try it and give us feedback to improve it.

Click here to download CorbaScript 1.3.5 now!

# The Hello Example

Imagine the following well-known OMG IDL interface:

      interface Hello {
        void hello ();
        void display (in string message);
      };

With CorbaScript, we can interactively invoke a CORBA object that implements this OMG IDL interface:

      unix_prompt> cssh
      CorbaScript 1.3.5 (Jul 20 2001) for ORBacus 4.0.5 for C++
      Copyright 1996-2001 LIFL, France
      >>> # the `hello' variable refers to a CORBA `Hello' object.
      >>> hello = Hello("IOR:....")
      >>> # the 'hello' operation is invoked on this CORBA object.
      >>> hello.hello()
      >>> # the 'display' operation is invoked on this CORBA object.
      >>> hello.display("Hello World!")

      >>> # we obtain the CORBA Naming Service.
      >>> NS = CORBA.ORB.resolve_initial_references ("NameService")
      >>> # we resolve a name into the CORBA Naming Service.
      >>> object = NS.resolve(CosNaming.Name(CosNaming.NameComponent("anHelloObject","")))
      >>> # we can use an easier syntax because CorbaScript can automatically
      >>> # convert array values into OMG IDL sequences and structures.
      >>> object = NS.resolve ([["anHelloObject",""]])

      >>> # Now we can invoke OMG IDL Hello operations on this object.
      >>> object.display("Hello World!")

Then invoking CORBA objects becomes very simple and user-friendly with CorbaScript.

But, how could we implement the `Hello' interface with CorbaScript?

      unix_prompt> cssh
      CorbaScript 1.3.5 (Jul 20 2001) for ORBacus 4.0.5 for C++
      Copyright 1996-2001 LIFL, France
      >>> # a script class is defined.
      >>> class HelloImpl
          {
            # This is the constructor.
            proc __HelloImpl__(self)
            {
            }
            # This is the implementation of the OMG IDL `hello' operation.
            proc hello (self)
            {
              println ("The OMG IDL `hello' operation is invoked.")
            }
            # This is the implementation of the OMG IDL `display' operation.
            proc display (self,message)
            {
              println (message)
            }
          }
      >>> # we create an HelloImpl instance.
      >>> hello = HelloImpl()
      >>> # We can locally invoke this instance.
      >>> hello.hello()
      The OMG IDL `hello' operation is invoked.
      >>> hello.display("Hello World!")
      Hello World!

      >>> # Now we connect it to the CORBA bus and fix what
      >>> # OMG IDL interface this instance implements.
      >>> CORBA.ORB.connect(hello,Hello)
      >>> # we register it into the CORBA Naming Service.
      >>> NS = CORBA.ORB.resolve_initial_references ("NameService")
      >>> NS.bind ([["anHelloObject",""]],hello._this)

      >>> # Now, this instance is an available CORBA object.

What do you think about this small example?
Could you invoke and implement CORBA objects more easily than with CorbaScript?

More complex examples are provided in the CorbaScript distribution like a CORBA Naming Service shell and a CORBA CosNaming implementation.

# CorbaScript Features

The syntax of this new language looks like the C++ and Java languages but type checking is done at runtime. It reuses some interesting features of the Python and SmallTalk languages: everything is an object, source code is translated into a pseudo code executed by a Virtual Object Oriented Machine that includes a simple garbage collector. Current CorbaScript features are:

## Basic Scripting Features

- interpreted language.
- interactive or batch shell.
- dynamic type checking at runtime.

- basic value types: long, double, boolean, char, string, array, dictionnary.
- variables and scopes.
- control flow management: if-else, while, do-while, for-in.
- exception management: throw, try-catch-finally.
- procedures.
- modules: reusable scripts.
- classes: polymorphism, multiple inheritance.

- simple garbage collecting based on reference counting.

## CORBA Scripting Features

- invocation of any CORBA object through the CORBA DII (the Dynamic Invocation Interface)
  to implement CORBA client programs or tools.

- management of CORBA system exceptions and OMG IDL exceptions.

- implementation of any CORBA object through the CORBA DSI (the Dynamic Skeleton Interface)
  to implement CORBA server programs.

- access to any IDL description, calls with any OMG IDL argument types like basic types and also complex types (struct,union,array,sequence), in, out and inout modes supported. Complex OMG IDL types are managed by the CORBA DynAny API.

- type checking done thanks to the CORBA IFR (the Interface Repository).

- an IFR cache to improve the performance of type checking.

- OMG IDL information displaying to , for instance, view functionalities provided by an OMG IDL interface.

## Advanced Scripting Features

- access to any dynamic C library.

- access to a Java virtual machine (under work).

- an extensible runtime: add your own code or new objects in C++.

# CorbaScript Demontrations

This distribution provides the following CorbaScript demonstrations:

- calc: Illustrates a simple client/server calculator application.

- chat: Illustrates a CORBA Chat service.
  This uses the Factory and Observer Design Patterns.

- component: Illustrates implicit connections of client callback objects.
  This uses the Observer Design Pattern.

- computer: Illustrates a prime number service.

- event: Illustrates CorbaScript with the OMG Event Service.
  Provides also an implementation of an Event Channel.

- grid: Illustrates a factory of grid objects.

- hello: Illustrates a simple client/server application.
  This is the 'Hello World' CorbaScript example.

- ir: Illustrates the navigation into the Interface Repository.

- linked: Illustrates recursive distant and local invocations between two linked objects.

- naming: Illustrates CorbaScript with the OMG Name Service.
  Provides a shell to this service and an implementation of this service.

- test: Illustrates various argument types and passing modes.

- worker: Illustrates deferred invocations.
  A client invokes several servers and servers work simultaneously.

- remote_cssh: Provides a general scripting engine OMG IDL API, remote CorbaScript engines and a shell to deal with them.

- process: Illustrates a CORBA process factory service and accessing objects by URL.

# CorbaScript Modules

In CorbaScript, any script files is potentially a module, i.e. a script which can be imported by other scripts. This distribution offers the following main useful modules:

- LIBC: This module dynamically loads the standard C library. Then it provides some standard C functions like malloc, free, errno, and so on.

- IO: This module provides classes to access binary and text files.

- math: This module provides functions of the standard math library.

- posix: This module provides standard posix functions like system, fork, and so on.

- socket: This module provides classes to make client and server TCP/IP sockets.

- IOR: This module provides functions to easily store and retreive IORs into files and the Name Service.

- NSTools: This module provides classes to administrate the Naming Service. Moreover, a Naming Service Shell is provided.

- CosNamingImpl: This module provides an implementation of the Name Service.

- shell: This module provides a base class to implement shell programs.

- SMTP: This module provides a Simple Mail Transfer Protocol (SMTP) implementation according to RFC0821 & RFC0822.

- time: This module provides time/date management features.

This distribution contains various other modules not presented here.

# CorbaWeb Environment

## What is CorbaWeb?

CorbaWeb is a powerful environment providing a generic gateway to integrate the CORBA and World Wide Web worlds. More precisily, CorbaWeb allows Web users to browse and invoke CORBA objects via their Web browsers. Then Web users interact with their CORBA objects via Web documents (MIME, HTML, forms, etc) dynamically generated on the fly. Then CorbaWeb can be seen as a generic and dynamic CORBA objects browser.

Technically, CorbaWeb is composed of two parts:

- HttpServer: This module provides the implementation of an HTTP server which manages MIME files and servlets written in CorbaScript.

- CorbaWeb: This module provides a servlet which implements the functionnalities of the generic CORBA Object Browser.

Browsing CORBA objects via CorbaWeb just needs to load OMG IDL specifications into the Interface Repository and start the HTTP server of the CorbaWeb environment.

Then users access via their browsers to the CorbaWeb servlet running into the HttpServer. Automatically, CorbaWeb generates HTML forms representing OMG IDL operations and attributes of CORBA objects accessed by users. These forms allow users to invoke operations, get and set attributes.

Moreover, the CorbaWeb administrator can provide scripts to specialize the Web representation for each CORBA object type. Some specialization scripts are already provided for the CorbaScript demonstrations. Interesting and reusable scripts allow one to browse:

- The Name Service.
- The Interface Repository.

## Current tested configurations

As the CorbaWeb environment is fully written in CorbaScript, it could potentially work with any ORB products supported by CorbaScript.

Currently, we have only tested CorbaWeb on the following configurations:

- ORBacus 3.2 on HP-UX.
- MICO 2.2.6 on Linux.
- OAK 5.2.7 and 5.2.9 on Linux.
- ORBacus 3.1.3/3.2 on Linux.
- TAO 1.1.17/18/19 on Linux.
- MICO 2.2.7/2.3.1 on Solaris.
- OAK 5.2.7 and 5.2.9 on Solaris.
- omniORB 3.0.3 on Solaris.
- ORBacus 3.1.3/3.2/3.3.1/3.3.3/3.3.4/4.0/4.0.4 on Solaris.
- VisiBroker 3.3 on Solaris.
- ORBacus 3.1.3/3.2/3.3.1 on Windows 95/98/NT.

Future releases will be tested on other configurations!

# Statement Of Compliance for Year 2000

As the C++ code implementing CorbaScript never manipulates times and dates then CorbaScript is fully Year 2000 compliant.

But as CorbaScript uses an ORB product which uses an operating system then CorbaScript will perfectly work after Year 2000 as long as the used ORB and OS is compliant with the Year 2000 :-)

As CorbaWeb is fully written in CorbaScript then it is also Year 2000 compliant.

# Users' Contributions

Here are listed some CorbaScript users' contributions:

- Generic CORBA Tools with CorbaScript
  - Authors: Oleg Lodygensky & Serge Du
  - Description: Generic CORBA tools used in the Babar project and developed at the LAL of the IN2P3.
  - URL: http://corba.lal.in2p3.fr

- Web CorbaScript
  - Authors: Brian Bray & Tim Cook
  - Description: Web CorbaScript is a CGI processor for CorbaScript that runs under Apache, and other HTTP servers.
  - Documentation URL: http://www.minoru-development.com/corbascript/index.html
  - Downloading URL: http://sourceforge.net/project/?group_id=4751

- Inside CorbaScript and OMG IDL fixed types
  - Author: Rudolf Weber
  - Description: Investigations around internal CorbaScript design to support OMG IDL fixed types.
  - URL: http://www.infnet.verein.de/home/rw/cs/

Contact us at goode-support@lifl.fr if you have some CorbaScript contributions which can be added into this list.

We would also like to thank all the following people who have also contributed to CorbaScript over the years:

# Getting Help

You should not have any problems compiling the source, but do not hesitate to send requests for assistance.

Just send an e-mail to goode-support@lifl.fr.

There is also a CorbaScript mailing list. To subscribe, just send an e-mail to listserv@univ-lille1.fr with the command:

        SUB goode Your_Real_Name

in the body of your e-mail message.

To unsubscribe, just send an e-mail to listserv@univ-lille1.fr with the command:

        SIG goode Your_Email_Address

in the body of your e-mail message. You could also go to http://wwsympa.univ-lille1.fr/wws/signoff/goode to unsubscribe yourself.

To post a message to the mailing list, send your message as an e-mail to goode@univ-lille1.fr.

This public mailing list is also accessible at: http://wwsympa.univ-lille1.fr/wws/info/goode

And public list archives are accessible at: http://wwsympa.univ-lille1.fr/wws/arc/goode

You can find the latest information on CorbaScript on our Web-Site http://corbaweb.lifl.fr.

Some scientific information can be found in papers.