somFree Getting Started

somFree Programming Guide

somFree Compiler and Emitter Framework

Quick history:

SOM 1.0 - came out with OS/2 2.0 and used to build WorkPlaceShell

SOM 2.0 - aligned with CORBA 1.1, used CORBA IDL and added DSOM.

SOM adopted by Apple to move OpenDoc from C++ to a language neutral framework.

SOM 3.0 - added IIOP support, referencing counting for SOMObject and more CORBA frameworks

SOM was available on OS/2 2.0 upwards, Windows NT, AIX 4, OS/390 and OS/400.

Why somFree?

This project provides a clean-room implementation of the major SOM components and is built to be very portable. The name comes from the method used to delete a SOMObject.

Main differences from IBM SOM

IDL compiler is a C++ program rather than a SOM based framework. This solves a chicken-and-egg problem.

Assembler is not used for thunking, somResolve() uses macros and apply/dispatch stubs.

Some components are just hollow stubs, such as SOMP.

Some components are not fully functional, eg somossvr.

You can have both C and C++ header files generated. The choice of 'somcorba' or 'somstars' comes from managing the 'SOMSTAR' macro.

No security functions implemented.