Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:docs:tk:som [2024/11/09 13:03] – prokushev | en:docs:tk:som [2025/06/05 14:11] (current) – prokushev | ||
---|---|---|---|
Line 3: | Line 3: | ||
* [[en: | * [[en: | ||
- | 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, | |
- | 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. | + | * IBM SOM 3.0 - added IIOP support, referencing counting for SOMObject and more CORBA frameworks |
- | + | * 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? | + | ====== |
- | 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 |
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/ | - Assembler is not used for thunking, somResolve() uses macros and apply/ | ||
- | |||
- 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 ' | - You can have both C and C++ header files generated. The choice of ' | ||
- | |||
- No security functions implemented. | - No security functions implemented. | ||
===== Changes ===== | ===== Changes ===== | ||
- | Changes from original somFree compiler: | + | Changes |
- | * 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 |