en:docs:tk:som

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:docs:tk:som [2024/11/09 13:03] prokusheven:docs:tk:som [2025/06/05 14:11] (current) prokushev
Line 3: Line 3:
   * [[en:docs:tk:som:sc|somFree Compiler and Emitter Framework]]   * [[en:docs:tk:som:sc|somFree Compiler and Emitter Framework]]
  
-Quick history:+====== Quick history ======
  
-SOM 1.0 - came out with OS/2 2.0 and used to build WorkPlaceShell +  * IBM SOM 1.0 - came out with OS/2 2.0 and used to build WorkPlaceShell. It includes only SOMObject, SOMClass and SOMClsMgr classes. Object Interface Definition Language was used to describe interfaces. 
- +  * IBM SOM 2.0 - aligned with CORBA 1.1, used CORBA IDL and added DSOM. SOM Compiler was reworked and Emitter Framework was added. C++ bindings that allow you to implement and invoke your classes in C++. The Distributed, Persistence, Replication and Emitter Frameworks. CORBA compliance, SOM classes are now described in CORBA's Interface Definition Language (IDL) instead of OIDL. Support for multiple inheritance. Interface Repository for run-time typing information
-SOM 2.0 - aligned with CORBA 1.1, used CORBA IDL and added DSOM. +  * IBM SOM 2.1 - Persistence and Replication Frameworks removed. DirectToSOM (DTS) C++ support added. 32-bit TCP/IP support. New initialization. DSOM changes to support CORBA memory management. Metaclasses Framework. 
- +  SOM adopted by Apple to move OpenDoc from C++ to a language neutral framework. 
-SOM adopted by Apple to move OpenDoc from C++ to a language neutral framework. +  * IBM SOM 3.0 - added IIOP support, referencing counting for SOMObject and more CORBA frameworks and object services 
- +  * somFree 1.x - Roger Brown reimplementation of IBM SOM, but some parts missing and some reverted (like Persistence framework). Initial stubs for CORBA 2+ support. 
-SOM 3.0 - added IIOP support, referencing counting for SOMObject and more CORBA frameworks+  * osFree somFree - enhanced version of somFree which attempts to return SOM Compiler and Emitter Framework design to somFree. And add CORBA 2+ support.
  
 SOM was available on OS/2 2.0 upwards, Windows NT, AIX 4, OS/390 and OS/400. SOM was available on OS/2 2.0 upwards, Windows NT, AIX 4, OS/390 and OS/400.
  
-Why somFree?+====== 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.+somFree 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 Main differences from IBM SOM
  
   - IDL compiler is a C++ program rather than a SOM based framework. This solves a chicken-and-egg problem.   - 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.   - 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 just hollow stubs, such as SOMP.
- 
   - Some components are not fully functional, eg somossvr.   - 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.   - 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.   - No security functions implemented.
  
 ===== Changes ===== ===== Changes =====
  
-Changes from original somFree compiler:+Changes to osFree version from original somFree compiler:
  
-  * Most of internal structures now also present as in old IBM SOM 2.1 NT Toolkit.+  * Added and mostly documented SOM Compiler library - SOMC. Most of the internal structures now also present as in old IBM SOM 2.1 Toolkit. SOMLINK style functions for most of SOM Compiler library added (NT version used optlink for some functions). somtShowEntry function outputs more info. Undocumented SOMTTypes now documented. 
 +  * SOM Compiler now supports emitters too.
   * New emitters:   * New emitters:
     * LNK - Open Watcom WLink support.     * LNK - Open Watcom WLink support.
Line 43: Line 39:
     * PAS - Pascal client support.     * PAS - Pascal client support.
     * IPAS - Pascal implementation classes support.     * IPAS - Pascal implementation classes support.
-  * SOM Compiler library now mostly documented. 
-  * SOMLINK style functions for most of SOM Compiler library added. 
   * Emitters now IBM SOM 2.1 and IBM SOM 3.0 compatible without recompilation.   * Emitters now IBM SOM 2.1 and IBM SOM 3.0 compatible without recompilation.
   * somFree Compiler supports IBM SOM 2.1, IBM SOM 3.0, and somFree 1.0 emitters.   * somFree Compiler supports IBM SOM 2.1, IBM SOM 3.0, and somFree 1.0 emitters.
-  * somtShowEntry function outputs more info. 
-  * Undocumented SOMTTypes now documented. 
   * SOMIPC now supports IDL 4.2 specification.   * SOMIPC now supports IDL 4.2 specification.
   * CORBA C Language Mapping Specification 1.0 now supported by default instead of CORBA 1.1 C Language mapping.   * CORBA C Language Mapping Specification 1.0 now supported by default instead of CORBA 1.1 C Language mapping.
   * Added support of OIDL files   * Added support of OIDL files
-  * +  * PDL improvements to be close to original PDL 
 +  * Core IDLs revised and some documenting was added